/* SetSymbols() * ==================================================================== * Sets the flags and buttons for the outline dialog box Symbol and * Hebrew font setups. See above when they are used. * Also used when the user selects the button to enable/disable the * symbol/hebrew font. */ BOOLEAN SetSymbols( BOOLEAN *flag, int Text, int Title, char *filename, char *title_field, BOOLEAN draw_flag ) { BOOLEAN out_flag; ObString( Text ) = &none_text[0]; Disable( Title ); Disable( Text ); out_flag = TRUE; if( *flag ) { Enable( Title ); Enable( Text ); if( *filename ) ObString( Text ) = filename; else out_flag = SymButton( filename, Title, Text, title_field, flag ); } if( draw_flag ) { Objc_draw( tree, Title, MAX_DEPTH, NULL ); Objc_draw( tree, Text, MAX_DEPTH, NULL ); return( out_flag ); } return( FALSE ); }
/* SymButton() * ==================================================================== * Handles the routine when the Symbol Text button or Hebrew Text button * is pressed. A file selector is brought up to allow the user to select * a new Symbol font or Hebrew font. */ BOOLEAN SymButton( char *filename, int Title, int Text, char *title_field, BOOLEAN *flag ) { int out; long i; if( !IsDisabled( Text ) ) { Deselect( Text ); strcpy( newpath, dirpath ); for( i = strlen( newpath ); i && ( newpath[i] != '\\'); newpath[ i-- ] = '\0' ); if( strlen( filename ) ) { strcat( newpath, filename ); strcat( newpath, ".QFM" ); } out = fsel_name( FALSE, newpath, "*.QFM", title_field ); if( ( ( out == A_OK ) || ( out == A_CANCEL )) && ( newpath[0] != '\0' ) ) { if( out == A_OK ) { for( i = strlen( newpath ); i && ( newpath[i] != '.'); newpath[ i-- ] = '\0' ); newpath[i--] = '\0'; for( i = strlen( newpath ); i && ( newpath[i] != '\\'); i-- ); strcpy( filename, &newpath[ i + 1 ] ); ObString( Text ) = filename; } else { /* Clicked on OK with no filename, so we'll put none there */ filename[0] = '\0'; ObString( Text ) = &none_text[0]; out = A_OK; } Objc_draw( tree, Text, MAX_DEPTH, NULL ); Change_Flag = TRUE; } } if( !(*filename) ) { Disable( Title ); Disable( Text ); *flag = FALSE; Objc_draw( tree, Title, MAX_DEPTH, NULL ); Objc_draw( tree, Text, MAX_DEPTH, NULL ); Change_Flag = TRUE; } return( out == A_OK ); }
/* Driver_Dialog() * ================================================================ */ int driver_dialog( void ) { int flag; static int sflag = FALSE; /* Setup the Printer Menu */ if( !sflag ) { sflag = TRUE; SetPrinterMenu(); } else { menu_icheck( ad_submenu, SNONE + gl_printer, 0 ); menu_icheck( ad_submenu, SNONE, 1 ); gl_printer = 0; } ActiveTree( ad_driver ); ObString( PBUTTON ) = anone; SetDriverWindow(); flag = driver_handler(); return( flag ); }
/* SymHebFontChange() * ==================================================================== * Called whenever the Symbol or Hebrew Font is changed, turned on * or turned off. */ void SymHebFontChange( void ) { #if 0 Current.Width = FALSE; ObString( WIDTHFLG ) = width_text[ Current.Width ]; /* Objc_draw( tree, WIDTHFLG, MAX_DEPTH, NULL );*/ CacheCheck( 0 ); /* Do I need to check if the cache is large enuf? NO!*/ #endif /* This is to prevent the warning from popping up all the time. * It will show ONCE and that is that. It is initialized when * the CPX or desk accessory is first opened. */ if( !Symbol_Change ) { Objc_draw( tree, ROOT, MAX_DEPTH, NULL ); form_alert( 1, sym_alert ); } Symbol_Change = TRUE; Make_Width_Flag = TRUE; /* Make sure we prompt for a make * width tables after an extend.sys */ }
/* Do_Font_Setup() * ==================================================================== * Setup the variables for outline tree dialog. */ void Do_Font_Setup( void ) { Undo_Fnodes( hdptr, ( FON_PTR )NULL ); Reset_Tree( Oxtree ); /* Setup the variables appropriately for the OUTLINE Font Setup */ /* Width Table */ ObString( WIDTHFLG ) = width_text[ Current.Width ]; /* Font Directory Path */ strcpy( dirpath, Current.FontPath ); strcat( dirpath, "\\*.QFM"); dircount = 0; dirsize = ( int )strlen( dirpath ); strcpy( view_path, underbar ); strncpy( view_path, dirpath, ( DIR_MAX, dirsize ) ); if( dirsize > DIR_MAX ) view_path[ DIR_MAX - 1 ] = 0xAF; TedText( FSMPATH ) = view_path; /* Hebrew and Symbol Font Setup */ SetSymbols( &Current.SymbolFlag, SYMTEXT, SYMTITLE, Current.SymbolFont, title_symbol, FALSE ); SetSymbols( &Current.HebrewFlag, HEBTEXT, HEBTITLE, Current.HebrewFont, title_hebrew, FALSE ); Objc_draw( tree, ROOT, MAX_DEPTH, NULL ); push_outline(); }
/* DoCopy() * ================================================================ */ void DoCopy( char *fname ) { GRECT area; int flag; if( ad_tree == ad_copy ) flag = TRUE; else flag = FALSE; ActiveTree( ad_copy ); ObString( CFNAME ) = fname; if( !flag ) { SetNewDialog( ad_copy ); ObjcDraw( ad_copy, ROOT, MAX_DEPTH, NULL ); } else { objc_xywh( ad_copy, CFNAME, &area ); Do_Redraw( ad_copy, &area ); } }
int ObPermInfoKey::build_get_param(ObGetParam & get_param) { int ret = OB_SUCCESS; ObCellInfo cell_info; ObRowkey rowkey; ObObj rowkey_obj; ObVersionRange ver_range; int64_t pos = 0; if (NULL == buffer_) { buffer_ = reinterpret_cast<char*>(ob_malloc(BUF_SIZE, ObModIds::OB_PERM_INFO)); } if (NULL != buffer_) { int64_t encode_pos = pos; ret = serialization::encode_i64(buffer_, BUF_SIZE, encode_pos, table_id_); if (OB_SUCCESS != ret) { TBSYS_LOG(ERROR, "encode failed table_id=%ld", table_id_); } else { memcpy(buffer_ + encode_pos, user_name_, length_); encode_pos += length_; rowkey_obj.set_varchar( ObString(0, static_cast<int32_t>(encode_pos - pos), buffer_ + pos)); rowkey.assign(&rowkey_obj, 1); get_param.set_is_result_cached(true); cell_info.table_id_ = PERM_TABLE_ID; cell_info.row_key_ = rowkey; cell_info.column_id_ = PERM_COL_ID; ret = get_param.add_cell(cell_info); if (OB_SUCCESS != ret) { TBSYS_LOG(ERROR, "Get param add cell failed table_id[%lu]", cell_info.table_id_); } else { ver_range.start_version_ = 0; ver_range.end_version_ = INT64_MAX - 1; ver_range.border_flag_.set_inclusive_start(); ver_range.border_flag_.set_inclusive_end(); get_param.set_version_range(ver_range); } } } else { TBSYS_LOG(ERROR, "malloc key buffer failed"); ret = OB_ERROR; } return ret; }
int ObSKeyInfoKey::build_get_param(ObGetParam& get_param) { int ret = OB_SUCCESS; ObCellInfo cell_info; ObRowkey rowkey; ObObj rowkey_obj; ObVersionRange ver_range; int64_t pos = 0; if (NULL == buffer_) { buffer_ = reinterpret_cast<char*>(ob_malloc(BUF_SIZE, ObModIds::OB_SKEY_INFO_KEY)); } ret = serialization::encode_i64(buffer_, BUF_SIZE, pos, skey_version_); if (OB_SUCCESS != ret) { TBSYS_LOG(ERROR, "encode failed pkey_version=%ld", skey_version_); } else { rowkey_obj.set_varchar(ObString(0, static_cast<int32_t>(pos), buffer_)); rowkey.assign(&rowkey_obj, 1); get_param.reset(); get_param.set_is_result_cached(true); cell_info.table_id_ = SKEY_TABLE_ID; cell_info.row_key_ = rowkey; cell_info.column_id_ = SKEY_COL_ID; ret = get_param.add_cell(cell_info); if (OB_SUCCESS != ret) { TBSYS_LOG(ERROR, "Get param add cell failed table_id[%lu]", cell_info.table_id_); } else { ver_range.start_version_ = 0; ver_range.end_version_ = INT64_MAX - 1; ver_range.border_flag_.set_inclusive_start(); ver_range.border_flag_.set_inclusive_end(); get_param.set_version_range(ver_range); } } return ret; }
/* SetPrinterMenu() * ================================================================ */ void SetPrinterMenu( void ) { int i; int obj; ActiveTree( ad_submenu ); menu_icheck( ad_submenu, SNONE, 1 ); for( i = 0; i < gl_num_printers; i++ ) { obj = i + SNONE + 1; ObString( obj ) = MenuNode[i + 1].mname; } for( i = SLAST; i > obj; i-- ) { objc_delete( ad_submenu, i ); ObH( ROOT ) -= gl_hchar; } }
TEST_F(TestObSingleLogReader, test_tmp) { ObFileReader file; ASSERT_EQ(file.open(ObString(5, 5, "ttttt"), true), OB_FILE_NOT_EXIST); }
/* driver_handler() * ================================================================ */ int driver_handler( void ) { int msg[8]; int button; int done; GRECT clip; int dummy; MENU Menu; MENU MData; GRECT rect; done = FALSE; do { button = xform_do( ad_tree, 0, msg ); switch( button ) { case DSETUP: done = TRUE; Deselect( DSETUP ); break; case DEXIT: CheckExit(); deselect( ad_tree, DEXIT ); break; case PMETA: case PMETA2: gl_meta ^= 1; if( gl_meta ) { objc_xywh( ad_driver, PMETA2, &clip ); msg[3] = wid; msg[4] = clip.g_x; msg[5] = clip.g_y; msg[6] = clip.g_w; msg[7] = clip.g_h; driver_redraw( msg ); } else ObjcDraw( ad_driver, PMETA2, MAX_DEPTH, NULL ); evnt_button( 1, 1, 0, &dummy, &dummy, &dummy, &dummy ); break; case PMEM: case PMEM2: gl_mem ^= 1; if( gl_mem ) { objc_xywh( ad_driver, PMEM2, &clip ); msg[3] = wid; msg[4] = clip.g_x; msg[5] = clip.g_y; msg[6] = clip.g_w; msg[7] = clip.g_h; driver_redraw( msg ); } else ObjcDraw( ad_driver, PMEM2, MAX_DEPTH, NULL ); evnt_button( 1, 1, 0, &dummy, &dummy, &dummy, &dummy ); break; case PBUTTON: select( ad_driver, PBUTTON ); evnt_button( 1, 1, 0, &dummy, &dummy, &dummy, &dummy ); select( ad_driver, PTITLE ); objc_xywh( ad_driver, PBUTTON, &rect ); Menu.mn_tree = ad_submenu; Menu.mn_menu = ROOT; Menu.mn_item = SNONE + gl_printer; Menu.mn_scroll = FALSE; if( menu_popup( &Menu, rect.g_x, rect.g_y, &MData )) { menu_icheck( ad_submenu, SNONE + gl_printer, 0 ); gl_printer = MData.mn_item - SNONE; menu_icheck( ad_submenu, SNONE + gl_printer, 1 ); if( gl_printer ) { ObString( PBUTTON ) = MenuNode[ gl_printer ].name; } else ObString( PBUTTON ) = anone; } deselect( ad_driver, PTITLE ); Deselect( PBUTTON ); objc_xywh( ad_driver, PBUTTON, &rect ); rect.g_x -= 1; rect.g_w += 2; ObjcDraw( ad_driver, PBUTTON, MAX_DEPTH, &rect ); break; default: if( button == NIL ) { switch( msg[0] ) { case WM_REDRAW: driver_redraw( msg ); break; case WM_CLOSED: return( FALSE ); break; case CT_KEY: if( msg[3] == K_F10 ) CheckExit(); break; default: break; } } break; } }while( !done ); return( TRUE ); }
namespace meta_table_cname { const ObString TID(0, static_cast<int32_t>(strlen(SCOL_TID)), SCOL_TID); const ObString TABLET_VERSION[OB_TABLET_MAX_REPLICA_COUNT] = { ObString(0, static_cast<int32_t>(strlen(SCOL_TABLET_VERSION[0])), SCOL_TABLET_VERSION[0]), ObString(0, static_cast<int32_t>(strlen(SCOL_TABLET_VERSION[1])), SCOL_TABLET_VERSION[1]), ObString(0, static_cast<int32_t>(strlen(SCOL_TABLET_VERSION[2])), SCOL_TABLET_VERSION[2]), ObString(0, static_cast<int32_t>(strlen(SCOL_TABLET_VERSION[3])), SCOL_TABLET_VERSION[3]), ObString(0, static_cast<int32_t>(strlen(SCOL_TABLET_VERSION[4])), SCOL_TABLET_VERSION[4]), ObString(0, static_cast<int32_t>(strlen(SCOL_TABLET_VERSION[5])), SCOL_TABLET_VERSION[5]), }; const ObString OCCUPY_SIZE[OB_TABLET_MAX_REPLICA_COUNT] = { ObString(0, static_cast<int32_t>(strlen(SCOL_OCCUPY_SIZE[0])), SCOL_OCCUPY_SIZE[0]), ObString(0, static_cast<int32_t>(strlen(SCOL_OCCUPY_SIZE[1])), SCOL_OCCUPY_SIZE[1]), ObString(0, static_cast<int32_t>(strlen(SCOL_OCCUPY_SIZE[2])), SCOL_OCCUPY_SIZE[2]), ObString(0, static_cast<int32_t>(strlen(SCOL_OCCUPY_SIZE[3])), SCOL_OCCUPY_SIZE[3]), ObString(0, static_cast<int32_t>(strlen(SCOL_OCCUPY_SIZE[4])), SCOL_OCCUPY_SIZE[4]), ObString(0, static_cast<int32_t>(strlen(SCOL_OCCUPY_SIZE[5])), SCOL_OCCUPY_SIZE[5]), }; const ObString ROW_COUNT[OB_TABLET_MAX_REPLICA_COUNT] = { ObString(0, static_cast<int32_t>(strlen(SCOL_ROW_COUNT[0])), SCOL_ROW_COUNT[0]), ObString(0, static_cast<int32_t>(strlen(SCOL_ROW_COUNT[1])), SCOL_ROW_COUNT[1]), ObString(0, static_cast<int32_t>(strlen(SCOL_ROW_COUNT[2])), SCOL_ROW_COUNT[2]), ObString(0, static_cast<int32_t>(strlen(SCOL_ROW_COUNT[3])), SCOL_ROW_COUNT[3]), ObString(0, static_cast<int32_t>(strlen(SCOL_ROW_COUNT[4])), SCOL_ROW_COUNT[4]), ObString(0, static_cast<int32_t>(strlen(SCOL_ROW_COUNT[5])), SCOL_ROW_COUNT[5]), }; const ObString PORT[OB_TABLET_MAX_REPLICA_COUNT] = { ObString(0, static_cast<int32_t>(strlen(SCOL_PORT[0])), SCOL_PORT[0]), ObString(0, static_cast<int32_t>(strlen(SCOL_PORT[1])), SCOL_PORT[1]), ObString(0, static_cast<int32_t>(strlen(SCOL_PORT[2])), SCOL_PORT[2]), ObString(0, static_cast<int32_t>(strlen(SCOL_PORT[3])), SCOL_PORT[3]), ObString(0, static_cast<int32_t>(strlen(SCOL_PORT[4])), SCOL_PORT[4]), ObString(0, static_cast<int32_t>(strlen(SCOL_PORT[5])), SCOL_PORT[5]), }; const ObString IPV4[OB_TABLET_MAX_REPLICA_COUNT] = { ObString(0, static_cast<int32_t>(strlen(SCOL_IPV4[0])), SCOL_IPV4[0]), ObString(0, static_cast<int32_t>(strlen(SCOL_IPV4[1])), SCOL_IPV4[1]), ObString(0, static_cast<int32_t>(strlen(SCOL_IPV4[2])), SCOL_IPV4[2]), ObString(0, static_cast<int32_t>(strlen(SCOL_IPV4[3])), SCOL_IPV4[3]), ObString(0, static_cast<int32_t>(strlen(SCOL_IPV4[4])), SCOL_IPV4[4]), ObString(0, static_cast<int32_t>(strlen(SCOL_IPV4[5])), SCOL_IPV4[5]), }; const ObString IPV6_HIGH[OB_TABLET_MAX_REPLICA_COUNT] = { ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_HIGH[0])), SCOL_IPV6_HIGH[0]), ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_HIGH[1])), SCOL_IPV6_HIGH[1]), ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_HIGH[2])), SCOL_IPV6_HIGH[2]), ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_HIGH[3])), SCOL_IPV6_HIGH[3]), ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_HIGH[4])), SCOL_IPV6_HIGH[4]), ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_HIGH[5])), SCOL_IPV6_HIGH[5]), }; const ObString IPV6_LOW[OB_TABLET_MAX_REPLICA_COUNT] = { ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_LOW[0])), SCOL_IPV6_LOW[0]), ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_LOW[1])), SCOL_IPV6_LOW[1]), ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_LOW[2])), SCOL_IPV6_LOW[2]), ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_LOW[3])), SCOL_IPV6_LOW[3]), ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_LOW[4])), SCOL_IPV6_LOW[4]), ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_LOW[5])), SCOL_IPV6_LOW[5]), }; const ObString CHECKSUM[OB_TABLET_MAX_REPLICA_COUNT] = { ObString(0, static_cast<int32_t>(strlen(SCOL_CHECKSUM[0])), SCOL_CHECKSUM[0]), ObString(0, static_cast<int32_t>(strlen(SCOL_CHECKSUM[1])), SCOL_CHECKSUM[1]), ObString(0, static_cast<int32_t>(strlen(SCOL_CHECKSUM[2])), SCOL_CHECKSUM[2]), ObString(0, static_cast<int32_t>(strlen(SCOL_CHECKSUM[3])), SCOL_CHECKSUM[3]), ObString(0, static_cast<int32_t>(strlen(SCOL_CHECKSUM[4])), SCOL_CHECKSUM[4]), ObString(0, static_cast<int32_t>(strlen(SCOL_CHECKSUM[5])), SCOL_CHECKSUM[5]), }; const ObString STARTKEY_OBJ_PREFIX(0, static_cast<int32_t>(strlen(SCOL_STARTKEY_OBJ_PREFIX)), SCOL_STARTKEY_OBJ_PREFIX); const ObString ENDKEY_OBJ_PREFIX(0, static_cast<int32_t>(strlen(SCOL_ENDKEY_OBJ_PREFIX)), SCOL_ENDKEY_OBJ_PREFIX); } // end namespace meta_table_columns_name
/* Outline_Buttons() * ==================================================================== * Handle the button events for the outline font dialog. */ int Outline_Buttons( int button, WORD *msg ) { int quit = FALSE; int out; long i; MRETS mk; if( ( button != -1 ) && ( button & 0x8000 ) ) button &= 0x7FFF; switch( button ) { case OCANCEL:pop_outline(); /* restore */ case OEXIT: Deselect( button ); if( OEXIT == button ) { /* Read in ONLY if new directory path */ if( strcmp( Current.FontPath, Backup.FontPath ) ) { MF_Save(); push_outline(); Scan_Message( ad_scan, TRUE ); read_fonts( 1 ); Scan_Message( ad_scan, FALSE ); pop_outline(); MF_Restore(); } } Return_To_Maintree( Maintree ); break; case SETCACHE: deselect( tree, SETCACHE ); Do_Cache_Size(); break; case DEFPOINT: Deselect( button ); Do_Point_Sizes( 0, DEFAULT_POINTS ); break; case FSMLEFT: select( tree, FSMLEFT ); do { Graf_mkstate( &mk ); if( dircount ) { dircount--; strncpy( view_path, &dirpath[ dircount ], min( DIR_MAX, dirsize - dircount ) ); if( dircount ) view_path[0] = 0xAE; if((dirsize - dircount ) > DIR_MAX ) view_path[ DIR_MAX - 1 ] = 0xAF; TedText( FSMPATH ) = view_path; Objc_draw( tree, FSMPATH, MAX_DEPTH, NULL ); } }while( mk.buttons ); deselect( tree, FSMLEFT ); break; case FSMRIGHT: select( tree, FSMRIGHT ); do { Graf_mkstate( &mk ); if( ( dirsize > DIR_MAX ) && ((dircount + DIR_MAX ) < dirsize )) { dircount++; strncpy( view_path, &dirpath[ dircount], min( DIR_MAX, dirsize - dircount) ); view_path[0] = 0xAE; if( (dirsize - dircount) > DIR_MAX ) view_path[ DIR_MAX - 1 ] = 0xAF; TedText( FSMPATH ) = view_path; Objc_draw( tree, FSMPATH, MAX_DEPTH, NULL ); } }while( mk.buttons ); deselect( tree, FSMRIGHT ); break; case FSMPATH: wait_up(); strcpy( newpath, dirpath ); for( i = strlen( newpath ); i && ( newpath[i] != '\\'); newpath[ i-- ] = '\0' ); out = fsel_name( FALSE, newpath, "*.QFM", title_fsmpath ); if( ( ( out == A_OK ) || ( out == A_CANCEL )) && ( newpath[0] != '\0' ) ) { for( i = strlen( newpath ); i && ( newpath[i] != '\\'); newpath[ i-- ] = '\0' ); strcpy( dirpath, newpath ); newpath[i] = '\0'; /* Get rid of the '\\' */ strcpy( Current.FontPath, newpath ); strcat( dirpath, "*.QFM" ); dirsize = (int)strlen( &dirpath[0] ); strcpy( view_path, underbar ); strncpy( view_path, dirpath, min( DIR_MAX, dirsize) ); dircount = 0; if( dirsize > DIR_MAX ) view_path[ DIR_MAX - 1 ] = 0xAF; TedText( FSMPATH ) = view_path; Objc_draw( tree, FSMPATH, MAX_DEPTH, NULL ); Change_Flag = TRUE; } break; case WIDTHFLG: Current.Width ^= TRUE; deselect( tree, button ); ObString( WIDTHFLG ) = width_text[ Current.Width ]; Objc_draw( tree, WIDTHFLG, MAX_DEPTH, NULL ); Change_Flag = TRUE; CacheCheck( 0 ); break; case SYMFLAG: Current.SymbolFlag ^= TRUE; if( SetSymbols( &Current.SymbolFlag, SYMTEXT, SYMTITLE, Current.SymbolFont, title_symbol, TRUE ) ) SymHebFontChange(); deselect( tree, SYMFLAG ); Change_Flag = TRUE; break; case HEBFLAG: Current.HebrewFlag ^= TRUE; if( SetSymbols( &Current.HebrewFlag, HEBTEXT, HEBTITLE, Current.HebrewFont, title_hebrew, TRUE )) SymHebFontChange(); deselect( tree, HEBFLAG ); Change_Flag = TRUE; break; case SYMTEXT: if( SymButton( Current.SymbolFont, SYMTITLE, SYMTEXT, title_symbol, &Current.SymbolFlag ) ) SymHebFontChange(); break; case HEBTEXT: if( SymButton( Current.HebrewFont, HEBTITLE, HEBTEXT, title_hebrew, &Current.HebrewFlag ) ) SymHebFontChange(); break; default: if( button == -1 ) { switch( msg[0] ) { case WM_REDRAW: break; case AC_CLOSE: quit = TRUE; break; case WM_CLOSED: quit = TRUE; do_write_extend( FALSE ); break; case CT_KEY: break; default: break; } } break; } return( quit ); }
/* * Initialize CPX */ CPXINFO * cdecl cpx_init( XCPB *Xcpb ) { OBJECT *tree; xcpb = Xcpb; ma_installed = xcpb->getcookie( COOKIE, (long *)(&ma_info) ); if( xcpb->booting ) { Supexec( (long(*)())get_ptime ); /* Read in defaults and set the options */ if( ma_installed ) set_info( ma_info, &save_info ); } else { if( !xcpb->SkipRshFix ) { xcpb->rsh_fix( NUM_OBS, NUM_FRSTR, NUM_FRIMG, NUM_TREE, rs_object, rs_tedinfo, rs_strings, rs_iconblk, rs_bitblk, rs_frstr, rs_frimg, rs_trindex, rs_imdope ); tree = (OBJECT *)rs_trindex[MACCEL]; switch (xcpb->Country_Code) { case CP_FRG: ObString(OK) = (char *)rs_frstr[FRGOK]; ObString(CANCEL) = (char *)rs_frstr[FRGCAN]; ObString(SAVE) = (char *)rs_frstr[FRGSAVE]; alertbox = (char *)rs_frstr[FRGLOAD]; break; case CP_FRA: ObString(OK) = (char *)rs_frstr[FRAOK]; ObString(CANCEL) = (char *)rs_frstr[FRACAN]; ObString(SAVE) = (char *)rs_frstr[FRASAVE]; alertbox = (char *)rs_frstr[FRALOAD]; break; case CP_SPA: ObString(OK) = (char *)rs_frstr[SPAOK]; ObString(CANCEL) = (char *)rs_frstr[SPACAN]; ObString(SAVE) = (char *)rs_frstr[SPASAVE]; alertbox = (char *)rs_frstr[SPALOAD]; break; case CP_ITA: ObString(OK) = (char *)rs_frstr[ITAOK]; ObString(CANCEL) = (char *)rs_frstr[ITACAN]; ObString(SAVE) = (char *)rs_frstr[ITASAVE]; alertbox = (char *)rs_frstr[ITALOAD]; break; case CP_SWE: ObString(OK) = (char *)rs_frstr[SWEOK]; ObString(CANCEL) = (char *)rs_frstr[SWECAN]; ObString(SAVE) = (char *)rs_frstr[SWESAVE]; alertbox = (char *)rs_frstr[SWELOAD]; break; default: alertbox = (char *)rs_frstr[NOLOAD]; } } cpxinfo.cpx_call = cpx_call; cpxinfo.cpx_draw = NULL; cpxinfo.cpx_wmove = NULL; cpxinfo.cpx_timer = NULL; cpxinfo.cpx_key = NULL; cpxinfo.cpx_button = NULL; cpxinfo.cpx_m1 = NULL; cpxinfo.cpx_m2 = NULL; cpxinfo.cpx_hook = NULL; cpxinfo.cpx_close = NULL; } return &cpxinfo; }
/* show configuration dial, return 1 to cancel installation */ int configure( void ) { OBJECT *tree = rs_object; int quit = 0; int x, y, w, h, ox, oy; MRETS mk; int savelinear, saveudset, savetime, saveptime; if( ma_info == &start ) /* ma_info points at our start */ ObString(OK) = (char *)(rs_frstr[INSTRING]); /* set accel buttons */ savelinear = ma_info->linear; set_accelbox( savelinear ); /* set screensave buttons */ saveudset = ma_info->udset; set_screenbox( saveudset ); savetime = (ma_info->timeout)/3600; sl_x( SAVEBOX, savetime, SAVE_MIN, SAVE_MAX ); /* set modem switch */ if( ma_info->watch ) { Select(MODEM); } else { Deselect(MODEM); } /* set stacy options box */ if( ma_info->stacy ) { ObFlags( SWITCH ) = ObFlags( LITE ) = TOUCHEXIT; if( ma_info->stacmask & SH_SCREEN ) Select( SWITCH ); if( ma_info->stacmask & SH_LIGHT ) Select( LITE ); } else { ObFlags(SWITCH) = ObFlags(LITE) = NONE; ObState(SWITCH) = ObState(LITE) = DISABLED; /* deselects */ } /* set up park box */ Supexec((long(*)())get_parktime); if( parktime >= 0 ) parktime = ma_info->savepark; saveptime = parktime; if( saveptime == 0 ) saveptime = 1; set_parkbox(); if( parktime >= 0 ) sl_x( PARKBOX, parktime, PARK_MIN, PARK_MAX ); /* set appropriate icons */ graf_handle( &x, &y, &w, &h ); if( y < 16 ) { /* if char cell is < 16 pixels high, use 8 pixel icons */ ObSpec(IACCOFF).bitblk = (BITBLK *)(rs_frimg[ACCOFF8]); ObSpec(IACCSLOW).bitblk = (BITBLK *)(rs_frimg[ACCSLOW8]); ObSpec(IACCFAST).bitblk = (BITBLK *)(rs_frimg[ACCFAST8]); ObSpec(ISCREEN).bitblk = (BITBLK *)(rs_frimg[SCREEN8]); ObSpec(SAVEUP).bitblk = (BITBLK *)(rs_frimg[TIMEHI8]); ObSpec(SAVEDOWN).bitblk = (BITBLK *)(rs_frimg[TIMELO8]); ObSpec(IMODEM).bitblk = (BITBLK *)(rs_frimg[MODEM8]); ObSpec(IPARK).bitblk = (BITBLK *)(rs_frimg[PARK8]); ObSpec(PARKUP).bitblk = (BITBLK *)(rs_frimg[TIMEHI8]); ObSpec(PARKDOWN).bitblk = (BITBLK *)(rs_frimg[TIMELO8]); ObSpec(ILITE).bitblk = (BITBLK *)(rs_frimg[LITE8]); ObSpec(ISWITCH).bitblk = (BITBLK *)(rs_frimg[SCREEN8]); } form_center( rs_object, &x, &y, &w, &h ); form_dial( FMD_START, 0, 0, 0, 0, x, y, w, h ); form_dial( FMD_GROW, 0, 0, 0, 0, x, y, w, h ); objc_draw( tree, 0, MAX_DEPTH, x, y, w, h ); graf_mouse( ARROW, 0L ); do { switch( form_do( rs_object, 0 ) & 0x7fff ) { case LITE: if( IsSelected(LITE) ) { /* deselecting */ /* don't allow user to select screensave without litesave */ Deselect(SWITCH); Deselect(LITE); } else { Select(LITE); } Objc_draw( tree, STACOPTS, MAX_DEPTH, NULL ); break; case SWITCH: if( IsSelected(SWITCH) ) { /* deselecting */ Deselect(SWITCH); } else { /* don't allow user to select screensave without litesave */ Select(LITE); Select(SWITCH); } Objc_draw( tree, STACOPTS, MAX_DEPTH, NULL ); break; case SCREEN: /* floggle the bit */ ma_info->udset ^= 1; ma_info->updown = ma_info->udset; set_screenbox( ma_info->udset ); Objc_draw( tree, SCRNSECT, MAX_DEPTH, NULL); break; case ACCOFF: ma_info->linear = -1; break; case ACCSLOW: ma_info->linear = 1; break; case ACCFAST: ma_info->linear = 0; break; case SAVEUP: sl_arrow( SAVEBOX, SAVEUP, 1, SAVE_MIN, SAVE_MAX, &savetime ); break; case SAVEDOWN: sl_arrow( SAVEBOX, SAVEDOWN, -1, SAVE_MIN, SAVE_MAX, &savetime ); break; case SAVESLID: sl_drag( SAVEBOX, SAVE_MIN, SAVE_MAX, &savetime ); break; case SAVEBOX: Graf_mkstate( &mk ); objc_offset( tree, SAVESLID, &ox, &oy ); if( mk.x < ox ) oy = -SAVE_PAGE; else oy = SAVE_PAGE; sl_arrow( SAVEBOX, -1, oy, SAVE_MIN, SAVE_MAX, &savetime ); break; case PARK: if( IsSelected( PARK ) ) { /* deselecting */ saveptime = parktime; parktime = 0; } else { parktime = saveptime; sl_x( PARKBOX, parktime, PARK_MIN, PARK_MAX ); } set_parkbox(); Objc_draw( tree, PARKSECT, MAX_DEPTH, NULL ); break; case PARKUP: sl_arrow( PARKBOX, PARKUP, 1, PARK_MIN, PARK_MAX, &parktime ); break; case PARKDOWN: sl_arrow( PARKBOX, PARKDOWN, -1, PARK_MIN, PARK_MAX, &parktime ); break; case PARKSLID: sl_drag( PARKBOX, PARK_MIN, PARK_MAX, &parktime ); break; case PARKBOX: Graf_mkstate( &mk ); objc_offset( tree, PARKSLID, &ox, &oy ); if( mk.x < ox ) oy = -PARK_PAGE; else oy = PARK_PAGE; sl_arrow( PARKBOX, -1, oy, PARK_MIN, PARK_MAX, &parktime ); break; case SAVE: save_conf( savetime ); rs_object[SAVE].ob_state = NORMAL; Objc_draw( tree, ROOT, MAX_DEPTH, NULL ); break; case OK: quit = OK; break; case CANCEL: quit = CANCEL; break; } /* delay after touchexit objects */ wait_bup(); } while (!quit); form_dial( FMD_SHRINK, 0, 0, 0, 0, x, y, w, h ); form_dial( FMD_FINISH, 0, 0, 0, 0, x, y, w, h ); if( quit == CANCEL ) { ma_info->updown = ma_info->udset = saveudset; ma_info->linear = savelinear; } else { if( IsSelected(MODEM) ) ma_info->watch = 1; else ma_info->watch = 0; if( ma_info->stacy ) { if( IsSelected(SWITCH) ) { ma_info->stacmask |= SH_SCREEN; } else { ma_info->stacmask &= ~SH_SCREEN; } if( IsSelected(LITE) ) { ma_info->stacmask |= SH_LIGHT; } else { ma_info->stacmask &= ~SH_LIGHT; } } ma_info->timeout = savetime * 3600; ma_info->savepark = parktime; Supexec((long(*)())set_ptime); } return (quit == CANCEL); }
/* MAIN() * ================================================================ */ VOID main( VOID ) { WORD button; BOOLEAN done; OBJECT *tree; appl_init(); phys_handle = graf_handle( &gl_wchar, &gl_hchar, &gl_wbox, &gl_hbox ); open_vwork(); graf_mouse( ARROW, 0L ); rsrc_load( "DEMO.RSC" ); rsrc_gaddr( 0, MENUBAR, &ad_menubar ); rsrc_gaddr( 0, ATREE, &ad_tree ); rsrc_gaddr( 0, FONTTREE, &ad_fonts ); rsrc_gaddr( 0, STREE, &ad_style ); rsrc_gaddr( 0, POSTREE, &ad_position ); rsrc_gaddr( 0, CTREE, &ad_color ); rsrc_gaddr( 0, PTREE, &ad_pattern ); rsrc_gaddr( 0, MTREE, &ad_modem ); rsrc_gaddr( 0, BAUDRATE, &ad_baudrate ); rsrc_gaddr( 0, PARTREE, &ad_parity ); rsrc_gaddr( 0, BITTREE, &ad_bittree ); rsrc_gaddr( 0, STOPTREE, &ad_stoptree ); rsrc_gaddr( 0, PORTTREE, &ad_porttree ); rsrc_gaddr( 0, FLOWTREE, &ad_flowtree ); rsrc_gaddr( 0, LTREE, &ad_list ); rsrc_gaddr( 0, TOOLBOX, &ad_tools ); rsrc_gaddr( 0, BLANK, &ad_blank ); rsrc_gaddr( 0, TOOLBOX2, &ad_box2 ); rsrc_gaddr( 0, TOOLBAR, &ad_box3 ); rsrc_gaddr( 0, FONT2, &ad_font2 ); /* Attach all Submenus that are being attached */ AttachMenus(); /* CheckMark the Current Menu Items in their respective menus */ menu_icheck( ad_baudrate, CurBaudRate, 1 ); menu_icheck( ad_parity, CurParity, 1 ); menu_icheck( ad_bittree, CurBits, 1 ); menu_icheck( ad_stoptree, CurStopBits, 1 ); menu_icheck( ad_porttree, CurPort, 1 ); menu_icheck( ad_flowtree, CurFlow, 1 ); menu_icheck( ad_style, CurStyle, 1 ); menu_icheck( ad_position, CurPos, 1 ); menu_icheck( ad_fonts, CurFonts, 1 ); menu_icheck( ad_font2, CurFont2, 1 ); /* display menubar stuff here */ menu_bar( ad_menubar, TRUE ); /* initialize windows */ wind_get( 0, WF_FULLXYWH, &desk.g_x, &desk.g_y, &desk.g_w, &desk.g_h ); cur_tree = ad_tools; menu_flag = TRUE; /* Set Toggle Flags */ SubFlag = TRUE; ToolFlag = TRUE; CurRect.g_x = desk.g_x; CurRect.g_y = desk.g_y; CurRect.g_w = 320; CurRect.g_h = 200; InitObjects(); InitWindow(); menu_ienable( ad_menubar, FOPEN, 0 ); menu_ienable( ad_menubar, FCLOSE, 1 ); done = FALSE; do { evnt_mesag( msg ); wind_update( BEG_UPDATE ); if( msg[0] == MN_SELECTED ) { /* msg[7] is the parent of FQUIT - which the user can't know */ ptr = ( OBJECT **)&msg[5]; if( *ptr == ad_menubar ) { switch( msg[4] ) { case FQUIT: button = form_alert( 1, "[1][ | EXIT PROGRAM? ][OK|Cancel]"); if( button == 1 ) done = TRUE; break; case ABOUTX: execform( ad_tree, 0 ); break; case PHONE: do_modem(); break; case TABOUT: /* Enable, Disable About PLUS change TEXT */ menu_flag ^= 1; menu_ienable( ad_menubar, ABOUTX, menu_flag ); menu_text( ad_menubar, TABOUT, TextAbout[ menu_flag ] ); if( menu_flag ) menu_text( ad_menubar, ABOUTX, " About Demo... " ); else menu_text( ad_menubar, ABOUTX, " Disabled... " ); break; case TSUB: /* Enable/Disable all Submenus */ SubFlag ^= 1; menu_text( ad_menubar, TSUB, TextSubMenu[ SubFlag ] ); if( SubFlag ) AttachMenus(); else DetachMenus(); break; case SLISTS: DoList(); /* Do A Drop Down List Dialog */ break; case TOOLFLAG: /* Enable/Disable ToolBox */ ToolFlag ^= 1; menu_text( ad_menubar, TOOLFLAG, TextToolBox[ ToolFlag ] ); if( ToolFlag ) { *( (LONG *)&tree_data[0] ) = ( LONG )cur_tree; wind_set( wid, WF_TOOLBAR, tree_data[0], tree_data[1], dummy, dummy ); } else wind_set( wid, WF_TOOLBAR, 0, 0, dummy, dummy ); break; case SWITCH: /* Switch ToolBoxes */ if( cur_tree == ad_tools ) cur_tree = ad_box2; else if( cur_tree == ad_box2 ) { cur_tree = ad_box3; ActiveTree( ad_fonts ); textptr = ObString( CurFonts ); strncpy( &tbuff[0], &textptr[1], 28 ); ActiveTree( ad_box3 ); TedText( FBUTT1 ) = &tbuff[0]; } else cur_tree = ad_tools; *( (LONG *)&tree_data[0] ) = ( LONG )cur_tree; ToolFlag = TRUE; menu_text( ad_menubar, TOOLFLAG, TextToolBox[ ToolFlag ] ); wind_set( wid, WF_TOOLBAR, tree_data[0], tree_data[1], dummy, dummy ); break; case FCLOSE: /* close Window */ if( wid ) { wind_get( wid, WF_CURRXYWH, &CurRect.g_x, &CurRect.g_y, &CurRect.g_w, &CurRect.g_h ); wind_close( wid ); wind_delete( wid ); wid = 0; menu_ienable( ad_menubar, FCLOSE, 0 ); menu_ienable( ad_menubar, FOPEN, 1 ); } break; case FOPEN: /* open Window */ if( !wid ) { InitWindow(); menu_ienable( ad_menubar, FOPEN, 0 ); menu_ienable( ad_menubar, FCLOSE, 1 ); } break; default: break; } } /* MENU SELECTED -> Font Style Menu Clicked on as a SUBMENU from the Menubar*/ if( *ptr == ad_style ) { menu_icheck( ad_style, CurStyle, 0 ); /* Turn OFF Old Checkmark */ menu_icheck( ad_style, msg[4], 1 ); /* Turn ON New CheckMark */ CurStyle = msg[4]; /* Update Current Var */ menu_istart( 1, ad_style, ROOT, CurStyle ); /* Reset Starting Position*/ } /* MENU SELECTED -> Font Position Clicked on as a SUBMENU from the menubar */ if( *ptr == ad_position ) { menu_icheck( ad_position, CurPos, 0 ); menu_icheck( ad_position, msg[4], 1 ); CurPos = msg[4]; menu_istart( 1, ad_position, ROOT, CurPos ); } /* MENU SELECTED -> Fonts Menu Clicked on as a SUBMENU from the menubar */ if( *ptr == ad_fonts ) { menu_icheck( ad_fonts, CurFonts, 0 ); menu_icheck( ad_fonts, msg[4], 1 ); CurFonts = msg[4]; menu_istart( 1, ad_fonts, ROOT, CurFonts ); } menu_tnormal( ad_menubar, msg[3], TRUE ); } if( msg[0] != MN_SELECTED ) { switch( msg[0] ) { case WM_FULLED: DoFull( msg[3] ); break; case WM_REDRAW: DoRedraw( msg ); break; case WM_ARROWED: case WM_HSLID: case WM_VSLID: break; case WM_MOVED: if( msg[3] == wid ) { wind_set( wid, WF_CURRXYWH, msg[4], msg[5], msg[6], msg[7] ); } break; case WM_TOPPED: if( msg[3] == wid ) { wind_set( wid, WF_TOP ); } break; case WM_CLOSED: if( msg[3] == wid ) { wind_get( wid, WF_CURRXYWH, &CurRect.g_x, &CurRect.g_y, &CurRect.g_w, &CurRect.g_h ); wind_close( wid ); wind_delete( wid ); wid = 0; menu_ienable( ad_menubar, FCLOSE, 0 ); menu_ienable( ad_menubar, FOPEN, 1 ); } break; case WM_SIZED: DoSizer( msg ); break; case WM_TOOLBAR: if( msg[3] == wid ) { /* Button Handling for ToolBox #1 */ if( cur_tree == ad_tools ) { switch( msg[4] ) { case T1B1: button = B1B1; break; case T1B2: button = B1B2; break; case T1B3: button = B1B3; break; case T1B4: button = B1B4; break; case T1B5: button = B1B5; break; } } /* Button Handling for TOOLBOX 2 */ if( cur_tree == ad_box2 ) { switch( msg[4] ) { case T2I1: button = T2B1; break; case T2I2: button = T2B2; break; case T2I3: button = T2B3; break; case T2I4: button = T2B4; break; case T2I5: button = T2B5; break; } } /* Word Processing Tree */ if( cur_tree == ad_box3 ) { switch( msg[4] ) { case FBUTT1: case FBUTT2: DoFonts(); break; default: break; } } if( cur_tree != ad_box3 ) { if( cur_tree[ button ].ob_state & SELECTED ) cur_tree[ button ].ob_state &= ~SELECTED; else cur_tree[ button ].ob_state |= SELECTED; objc_offset( cur_tree, button, &r.g_x, &r.g_y ); r.g_x -= 2; r.g_y -= 2; r.g_w = cur_tree[ button ].ob_width + 4; r.g_h = cur_tree[ button ].ob_height + 4; do_redraw( cur_tree, button, &r ); } } /* end of msg[3] == wid */ break; case WM_ICONIFY: if( msg[3] == wid ) wind_set( msg[3], WF_ICONIFY, msg[4], msg[5], msg[6], msg[7] ); break; case WM_UNICONIFY: if( msg[3] == wid ) wind_set( msg[3], WF_UNICONIFY, msg[4], msg[5], msg[6], msg[7] ); break; default: break; } /* end of switch */ } wind_update( END_UPDATE ); }while( !done ); if( wid > 0 ) wind_delete( wid ); menu_bar( ad_menubar, FALSE ); graf_mouse( ARROW, 0L ); rsrc_free(); close_vwork(); appl_exit(); }