void ButtonsForStart() { int iCurrentLanguage = SectionArray[ InfosGene->CurrentSection ].Language; gtk_widget_hide (EditorButtonAdd); gtk_widget_hide (EditorButtonIns); gtk_widget_hide (EditorButtonDel); gtk_widget_hide (EditorButtonModify); gtk_widget_show (EditorButtonOk); gtk_widget_show (EditorButtonCancel); ShowPropertiesWindow( TRUE ); // select directly the pointer in toolbar per default... EditDatas.NumElementSelectedInToolBar = EDIT_POINTER; // ...in rung toolbar if ( NumWidgetEditPointer[ NUM_TOOLBAR_FOR_RUNGS ]!=-1 ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(ToolbarBtnRadio[ NumWidgetEditPointer[ NUM_TOOLBAR_FOR_RUNGS ] ]), TRUE ); gtk_widget_set_sensitive( ToolbarTable[ NUM_TOOLBAR_FOR_RUNGS ], TRUE ); } // ...in sequential toolbar if ( NumWidgetEditPointer[ NUM_TOOLBAR_FOR_SEQ ]!=-1 ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(ToolbarBtnRadio[ NumWidgetEditPointer[ NUM_TOOLBAR_FOR_SEQ ] ]), TRUE ); gtk_widget_set_sensitive( ToolbarTable[ NUM_TOOLBAR_FOR_SEQ ], TRUE ); } MessageInStatusBar( iCurrentLanguage==SECTION_IN_LADDER?_("Current rung in edit mode..."):_("Edit mode...") ); }
void OpenSymbolsWindow( void ) { if ( !GTK_WIDGET_VISIBLE( SymbolsWindow ) ) { DisplaySymbols(); gtk_widget_show (SymbolsWindow); MessageInStatusBar(_("opened SYMBOLS window. Press again to close")); #ifdef GTK2 gtk_window_present( GTK_WINDOW(SymbolsWindow) ); #endif } else { gtk_widget_hide( SymbolsWindow ); MessageInStatusBar(""); } }
// This is modified to toggle the vars windows // be click the spyvars button multiple times // one, the other, both, then none of the windows will be shown void OpenSpyVarsWindow( ) { switch (toggle) { case 0 : gtk_widget_show( SpyBoolVarsWindow ); gtk_widget_hide( SpyFreeVarsWindow ); MessageInStatusBar("openned BOOL (bit) variable window. press again for WORD window"); break; case 1 : gtk_widget_hide( SpyBoolVarsWindow ); gtk_widget_show( SpyFreeVarsWindow ); MessageInStatusBar("openned WORD (s32) variable window. press again for both windows"); break; case 2 : gtk_widget_show( SpyBoolVarsWindow ); gtk_widget_show( SpyFreeVarsWindow ); MessageInStatusBar("openned BOTH variable windows. press again to close them."); break; case 3 : gtk_widget_hide( SpyBoolVarsWindow ); gtk_widget_hide( SpyFreeVarsWindow ); MessageInStatusBar(""); break; default:; } toggle++; if (toggle==4) {toggle=0;} }
void EditorButtonsAccordingSectionType( ) { int iCurrentLanguage = SectionArray[ InfosGene->CurrentSection ].Language; // if under edit, cancel current operation if ( EditDatas.ModeEdit ) ButtonCancelCurrentRung( ); #ifdef SEQUENTIAL_SUPPORT if ( iCurrentLanguage==SECTION_IN_SEQUENTIAL ) { gtk_widget_hide( ToolbarTable[ NUM_TOOLBAR_FOR_RUNGS ] ); gtk_widget_show( ToolbarTable[ NUM_TOOLBAR_FOR_SEQ ] ); } else { gtk_widget_hide( ToolbarTable[ NUM_TOOLBAR_FOR_SEQ ] ); gtk_widget_show( ToolbarTable[ NUM_TOOLBAR_FOR_RUNGS ] ); } #endif MessageInStatusBar( "" ); }
void ButtonsForEnd( char ForRung ) { if ( ForRung ) { gtk_widget_show (EditorButtonAdd); gtk_widget_show (EditorButtonIns); gtk_widget_show (EditorButtonDel); gtk_widget_set_sensitive( ToolbarTable[ NUM_TOOLBAR_FOR_RUNGS ], FALSE ); } else { gtk_widget_hide (EditorButtonAdd); gtk_widget_hide (EditorButtonIns); gtk_widget_hide (EditorButtonDel); gtk_widget_set_sensitive( ToolbarTable[ NUM_TOOLBAR_FOR_SEQ ], FALSE ); } gtk_widget_show (EditorButtonModify); gtk_widget_hide (EditorButtonOk); gtk_widget_hide (EditorButtonCancel); ShowPropertiesWindow( FALSE ); MessageInStatusBar( "" ); }
int main( int argc, char *argv[] ) { int used=0, NumRung; static int old_level ; bindtextdomain("linuxcnc", EMC2_PO_DIR); setlocale(LC_MESSAGES,""); setlocale(LC_CTYPE,""); textdomain("linuxcnc"); old_level = rtapi_get_msg_level(); compId=hal_init("classicladder"); //emc if (compId<0) return -1; //emc signal(SIGTERM,do_exit); //emc InitModbusMasterBeforeReadConf( ); if (ClassicLadder_AllocAll()) { char ProjectLoadedOk=TRUE; process_options (argc, argv); if (nogui==TRUE) { rtapi_print(_("INFO CLASSICLADDER- No ladder GUI requested-Realtime runs till HAL closes.\n")); ClassicLadder_InitAllDatas( ); ProjectLoadedOk = LoadProjectFiles( InfosGene->CurrentProjectFileName ); if (pathswitch){ strcpy( InfosGene->CurrentProjectFileName, NewPath ); } InfosGene->LadderState = STATE_RUN; ClassicLadder_FreeAll(TRUE); hal_ready(compId); hal_exit(compId); return 0; } else { for(NumRung=0;NumRung<NBR_RUNGS;NumRung++) { if ( RungArray[NumRung].Used ) used++; } if((used==0) || ( (argc - optind) != 0) ) { ClassicLadder_InitAllDatas( ); ProjectLoadedOk = LoadProjectFiles( InfosGene->CurrentProjectFileName ); InitGtkWindows( argc, argv ); UpdateAllGtkWindows(); if (pathswitch){ strcpy( InfosGene->CurrentProjectFileName, NewPath ); } UpdateWindowTitleWithProjectName( ); MessageInStatusBar( ProjectLoadedOk?_("Project loaded and running"):_("Project failed to load...")); if (!ProjectLoadedOk) { ClassicLadder_InitAllDatas( ); if (modmaster) { PrepareModbusMaster( ); } } }else{ InitGtkWindows( argc, argv ); UpdateAllGtkWindows(); if (pathswitch){ strcpy( InfosGene->CurrentProjectFileName, NewPath ); } UpdateWindowTitleWithProjectName( ); MessageInStatusBar(_("GUI reloaded with existing ladder program")); if (modmaster) { PrepareModbusMaster( ); } } if (modslave) { InitSocketServer( 0/*UseUdpMode*/, ModbusServerPort/*PortNbr*/); } InfosGene->LadderState = STATE_RUN; hal_ready(compId); gtk_main(); rtapi_print(_("INFO CLASSICLADDER- Ladder GUI closed. Realtime runs till HAL closes\n")); ClassicLadder_FreeAll(TRUE); hal_exit(compId); return 0; } } rtapi_print(_("ERROR CLASSICLADDER- Ladder memory allocation error\n")); ClassicLadder_FreeAll(TRUE); rtapi_set_msg_level(old_level); hal_exit(compId); return 0; }