bool SVGroupview::triggerSlot(WObject *sender, const WSlot_ *slot, void **args) { if (slot == slots_ + 0) { sender_ = sender; MenuItemRequestProc(*((MENU_REQUEST *)args[0])); return true; } if (slot == slots_ + 1) { sender_ = sender; backParent(); return true; } if (slot == slots_ + 2) { sender_ = sender; AddNewGroup(); return true; } if (slot == slots_ + 3) { sender_ = sender; EditGroupParam(*((string *)args[0])); return true; } if (slot == slots_ + 4) { sender_ = sender; showIconView(); return true; } if (slot == slots_ + 5) { sender_ = sender; showListView(); return true; } if (slot == slots_ + 6) { sender_ = sender; AddGroupData(*((string *)args[0]), *((string *)args[1])); return true; } if (slot == slots_ + 7) { sender_ = sender; EditGroupData(*((string *)args[0]), *((string *)args[1])); return true; } if (slot == slots_ + 8) { sender_ = sender; ChangeGroupState(*((string *)args[0]), *((int *)args[1])); return true; } if (slot == slots_ + 9) { sender_ = sender; showMainView(); return true; } if (slot == slots_ + 10) { sender_ = sender; AddNewDevice(); return true; } if (slot == slots_ + 11) { sender_ = sender; AddDevice2nd(*((string *)args[0])); return true; } if (slot == slots_ + 12) { sender_ = sender; EnumDevice(*((string *)args[0])); return true; } if (slot == slots_ + 13) { sender_ = sender; EditDeviceByIndex(*((string *)args[0])); return true; } if (slot == slots_ + 14) { sender_ = sender; AddNewDeviceSucc(*((string *)args[0]), *((string *)args[1])); return true; } if (slot == slots_ + 15) { sender_ = sender; EditDeviceSuccByID(*((string *)args[0]), *((string *)args[1])); return true; } if (slot == slots_ + 16) { sender_ = sender; ChangeDeviceState(*((string *)args[0]), *((int *)args[1])); return true; } if (slot == slots_ + 17) { sender_ = sender; EnterDeviceByID(*((string *)args[0])); return true; } if (slot == slots_ + 18) { sender_ = sender; EnterNewDeviceByID(*((string *)args[0])); return true; } if (slot == slots_ + 19) { sender_ = sender; AddMonitor(*((string *)args[0]), *((string *)args[1])); return true; } if (slot == slots_ + 20) { sender_ = sender; CancelAddMonitor(); return true; } if (slot == slots_ + 21) { sender_ = sender; AddNewMonitorByType(*((int *)args[0]), *((string *)args[1])); return true; } if (slot == slots_ + 22) { sender_ = sender; AddMonitorSucc(*((string *)args[0]), *((string *)args[1])); return true; } if (slot == slots_ + 23) { sender_ = sender; EditMonitorSuccByID(*((string *)args[0]), *((string *)args[1])); return true; } if (slot == slots_ + 24) { sender_ = sender; EditMonitorByIndex(*((string *)args[0])); return true; } if (slot == slots_ + 25) { sender_ = sender; BackMonitorList(); return true; } if (slot == slots_ + 26) { sender_ = sender; BackGroupDeviceList(*((string *)args[0])); return true; } if (slot == slots_ + 27) { sender_ = sender; EditSVSESuccByIndex(*((string *)args[0]), *((string *)args[1])); return true; } if (slot == slots_ + 28) { sender_ = sender; EditSVSEByIndex(*((string *)args[0])); return true; } if (slot == slots_ + 29) { sender_ = sender; enterSVSE(*((string *)args[0])); return true; } if (slot == slots_ + 30) { sender_ = sender; enterGroup(*((string *)args[0])); return true; } if (slot == slots_ + 31) { sender_ = sender; backSVSEView(); return true; } if (slot == slots_ + 32) { sender_ = sender; DelDeviceByIdProc(*((string *)args[0]), *((string *)args[1])); return true; } if (slot == slots_ + 33) { sender_ = sender; DelGroupByIdProc(*((string *)args[0]), *((string *)args[1])); return true; } if (slot == slots_ + 34) { sender_ = sender; BatchAddMonitor(); return true; } if (slot == slots_ + 35) { sender_ = sender; ReloadCurrentView(); return true; } if (slot == slots_ + 36) { sender_ = sender; SortObjects(*((int *)args[0])); return true; } if (slot == slots_ + 37) { sender_ = sender; RefreshCurrentList(); return true; } if (slot == slots_ + 38) { sender_ = sender; enterGroupByID(*((const std::string *)args[0])); return true; } if (slot == slots_ + 39) { sender_ = sender; Translate(); return true; } if (slot == slots_ + 40) { sender_ = sender; ExChange(); return true; } if (slot == slots_ + 41) { sender_ = sender; CopyNewDeviceSucc(*((string *)args[0]), *((string *)args[1])); return true; } if (slot == slots_ + 42) { sender_ = sender; CopyNewMonitorSucc(*((string *)args[0]), *((string *)args[1])); return true; } return WContainerWidget::triggerSlot(sender, slot, args); }
/* AddDevice() * ======================================================================= * Add a new device. * int adevice - > devnum to add. * int AHotDriver-> Index into driver list of driver for the device. * */ void AddDevice( void ) { GRECT rect; DEV_PTR temp_device; wait_up(); if( form_alert( 1, alert2 ) == 2 ) { deselect( tree, EADD ); return; } SetChangeFlag(); temp_device = AddNewDevice( adevice ); if( temp_device ) { /* found a slot and added it to the device linked list array. */ DNAME( temp_device ) = AHotDriver; if( IsSelected( AROM ) ) DTYPE( temp_device ) = 'P'; if( IsSelected( ARES ) ) DTYPE( temp_device ) = 'R'; xdevice = temp_device; InitActiveEdit(); /* re-init the inactive devices. * we only need to check for the device, not everything else. */ adevice = MIN_DEV; /* Set the initial device - unless its a device...*/ /* Check to see if the device exists. If it does, increment and check again * until we don't have an active device. */ while( find_device( adevice ) ) adevice++; /* Set a global index number for the device editor so that we * know which one is currently being displayed. Note that this is * for the active drivers. */ /* Display the device number in text form. */ sprintf( ADeviceText, "%d", adevice ); TedText( ANUM ) = &ADeviceText[0]; Objc_draw( tree, CURNUM, MAX_DEPTH, NULL ); Objc_draw( tree, CURNAME, MAX_DEPTH, NULL ); Objc_draw( tree, CURROM, MAX_DEPTH, NULL ); Objc_draw( tree, CURRES, MAX_DEPTH, NULL ); Objc_draw( tree, ANUM, MAX_DEPTH, NULL ); /* turn on/off the EDELETE button here too */ rect = ObRect( EDELETE ); objc_offset( tree, EDELETE, &rect.g_x, &rect.g_y ); rect.g_x -= 3; rect.g_y -= 3; rect.g_w += 6; rect.g_h += 6; if( DDEV( temp_device ) > 9 ) { MakeExit( EDELETE ); Enable( EDELETE ); } else { NoExit( EDELETE ); Disable( EDELETE ); } Deselect( EDELETE ); Objc_draw( tree, ROOT, MAX_DEPTH, &rect ); device_count++; } /* Reset the driver name to NONE */ strcpy( ADriverText, driver_null ); TedText( ANAME ) = &ADriverText[0]; Objc_draw( tree, ANAME, MAX_DEPTH, NULL ); /* Set the ROM/RES flags */ deselect( tree, AROM ); deselect( tree, ARES ); AHotDriver = -1; /* turn off the EADD button here too */ rect = ObRect( EADD ); objc_offset( tree, EADD, &rect.g_x, &rect.g_y ); rect.g_x -= 3; rect.g_y -= 3; rect.g_w += 6; rect.g_h += 6; NoExit( EADD ); Disable( EADD ); Deselect( EADD ); Objc_draw( tree, ROOT, MAX_DEPTH, &rect ); }
/* mover_button() *========================================================================== * Handles the button events for the CPX Mover/Rename Function * IN: int obj: The RCS Object clicked on. * OUT: BOOLEAN: TRUE - Exit the CPX Mover Config * FALSE - Remain in the CPX Mover Config * */ void mover_button( int obj ) { MRETS mk; int ox,oy; HDEVICE_PTR curptr; DEV_PTR temp_device; Old_Slit = Cur_Slit; if( obj == Mup ) { sl_arrow( tree, Mbase, Mslider, Mup, -1, max( Total - MAX_SLITS, 0 ), 0, &Cur_Slit, VERTICAL, Draw_Slit ); return; } if( obj == Mdown ) { sl_arrow( tree, Mbase, Mslider, Mdown, 1, max( Total - MAX_SLITS, 0 ), 0, &Cur_Slit, VERTICAL, Draw_Slit ); return; } if( obj == Mslider ) { MF_Save(); if( AES_Version >= 0x0320 ) graf_mouse( FLAT_HAND, 0L ); if(( AES_Version >= 0x0330 ) && ( gl_ncolors > LWHITE ) ) XSelect( tree, Mslider ); graf_mkstate( ( int *)&mk.x, &oy, (int *)&mk.buttons, ( int *)&mk.kstate ); do { graf_mkstate( (int *)&mk.x, (int *)&mk.y, (int *)&mk.buttons, ( int *)&mk.kstate ); }while( mk.buttons && ( mk.y == oy )); if( mk.buttons && ( mk.y != oy )) { sl_dragy( tree, Mbase, Mslider, max( Total - MAX_SLITS, 0 ), 0, &Cur_Slit, Draw_Slit ); } if(( AES_Version >= 0x0330 ) && ( gl_ncolors > LWHITE ) ) XDeselect( tree, Mslider ); MF_Restore(); return; } if( obj == Mbase ) { Graf_mkstate( &mk ); objc_offset( tree, Mslider, &ox, &oy ); ox = (( mk.y < oy ) ? ( -MAX_SLITS ) : ( MAX_SLITS ) ); sl_arrow( tree, Mbase, Mslider, -1, ox, max( Total - MAX_SLITS, 0 ), 0, &Cur_Slit, VERTICAL, Draw_Slit ); return; } if(( obj >= Obj_Beg ) && ( obj <= Obj_End )) { if( !IsSelected( obj ) ) { curptr = Active_Slit[ obj - First_Obj ]; if( !curptr ) return; /* SetChangeFlag();*/ Undo_Fnodes( hdriver_head ); HFLAG( curptr ) = TRUE; XSelect( tree, obj ); cur_cdriver = HNAME( curptr ); strcpy( driver_text, cdrivers[ HNAME( curptr )] ); TedText( FPRINTER ) = &driver_text[0]; Objc_draw( tree, FPRINTER, MAX_DEPTH, NULL ); temp_device = find_device( 21 ); /* find the printer device */ if( !temp_device ) { /* Add the Device if necessary */ temp_device = AddNewDevice( 21 ); if( temp_device ) { /* found a slot and added it to the device linked list array. */ DNAME( temp_device ) = cdriver_array[ cur_cdriver ]; } } else /* Else, just change the device name */ DNAME( temp_device ) = cdriver_array[ cur_cdriver ]; if( IsDisabled( FREMOVE ) ) ChangeButton( tree, FREMOVE, TRUE ); if( strstr( cdrivers[ cur_cdriver ], NonSpeedo ) ) { if( !IsDisabled( FCONFIG ) ) ChangeButton( tree, FCONFIG, FALSE ); } else { if( IsDisabled( FCONFIG ) ) ChangeButton( tree, FCONFIG, TRUE ); } /* WRITE THE ASSIGN.SYS IMMEDIATELY */ write_assign(); } } }