diff options
Diffstat (limited to 'ldmicro/maincontrols.cpp')
-rw-r--r-- | ldmicro/maincontrols.cpp | 770 |
1 files changed, 385 insertions, 385 deletions
diff --git a/ldmicro/maincontrols.cpp b/ldmicro/maincontrols.cpp index b390f8f..06143ad 100644 --- a/ldmicro/maincontrols.cpp +++ b/ldmicro/maincontrols.cpp @@ -30,7 +30,7 @@ #include "ldmicro.h" // Menu IDs - HMENU MNU_NEW; +HMENU MNU_NEW; HMENU MNU_OPEN; HMENU MNU_SAVE; HMENU MNU_SAVE_AS; @@ -135,91 +135,91 @@ static BOOL RealTimeSimulationRunning; //----------------------------------------------------------------------------- void MakeMainWindowControls(void) { - GtkWidget* PackBox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); - GtkWidget* grid = gtk_grid_new(); - GtkWidget* pane = gtk_paned_new (GTK_ORIENTATION_VERTICAL); - GtkListStore* IoList = gtk_list_store_new (5, - G_TYPE_STRING, - G_TYPE_STRING, - G_TYPE_STRING, - G_TYPE_STRING, - G_TYPE_STRING); - GtkWidget* view; - GtkTreeViewColumn* column; - - int typeWidth = 85; - int pinWidth = 100; - int portWidth = 90; - - // Creating a list - view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(IoList)); - gtk_tree_view_set_model (GTK_TREE_VIEW (view), GTK_TREE_MODEL (IoList)); - - column = gtk_tree_view_column_new_with_attributes("Name", - gtk_cell_renderer_text_new(), - "text", LV_IO_NAME, - NULL); - gtk_tree_view_append_column(GTK_TREE_VIEW(view), column); - gtk_tree_view_column_set_min_width (column, 250); - - column = gtk_tree_view_column_new_with_attributes("Type", - gtk_cell_renderer_spin_new(), - "text", LV_IO_TYPE, - NULL); - gtk_tree_view_append_column(GTK_TREE_VIEW(view), column); - gtk_tree_view_column_set_min_width (column, typeWidth); - - column = gtk_tree_view_column_new_with_attributes("State", - gtk_cell_renderer_text_new(), - "text", LV_IO_STATE, - NULL); - gtk_tree_view_append_column(GTK_TREE_VIEW(view), column); - gtk_tree_view_column_set_min_width (column, 100); - - column = gtk_tree_view_column_new_with_attributes("Pin on Processor", - gtk_cell_renderer_text_new(), - "text", LV_IO_PIN, - NULL); - gtk_tree_view_append_column(GTK_TREE_VIEW(view), column); - gtk_tree_view_column_set_min_width (column, pinWidth); - - column = gtk_tree_view_column_new_with_attributes("MCU Port", - gtk_cell_renderer_text_new(), - "text", LV_IO_PORT, - NULL); - gtk_tree_view_append_column(GTK_TREE_VIEW(view), column); - gtk_tree_view_column_set_min_width (column, portWidth); - - // Appending Menus to grid - gtk_grid_attach (GTK_GRID (grid), MakeMainWindowMenus(), 0, 0, 1, 1); - - // Creating Scrolled Window - GtkWidget* ScrollWindow = gtk_scrolled_window_new (NULL, NULL); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (ScrollWindow), - GTK_POLICY_AUTOMATIC, - GTK_POLICY_ALWAYS); - - // Creating a pane to separate Scrolled Window and other widgets - gtk_paned_add1 (GTK_PANED (pane), ScrollWindow); - gtk_paned_set_position (GTK_PANED (pane), 0); - gtk_widget_set_vexpand (ScrollWindow, TRUE); - gtk_widget_set_hexpand (ScrollWindow, TRUE); - - // Appending tree view to pane and pane to grid - gtk_paned_add2 (GTK_PANED(pane), view); - gtk_paned_set_position (GTK_PANED (pane), 250); - gtk_grid_attach (GTK_GRID (grid), pane, 0, 0, 1, 1); - - // Creating Status Bar and attaching to grid - StatusBar = gtk_statusbar_new(); - gtk_statusbar_push (GTK_STATUSBAR (StatusBar), - gtk_statusbar_get_context_id (GTK_STATUSBAR (StatusBar), "Introduction"), - "LDMicro Started"); - - // Appneding Status Bar to box which is then added to Main Window - gtk_box_pack_start(GTK_BOX(PackBox), grid, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(PackBox), StatusBar, FALSE, FALSE, 0); - gtk_container_add(GTK_CONTAINER(MainWindow), PackBox); + // GtkWidget* PackBox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); + // GtkWidget* grid = gtk_grid_new(); + // GtkWidget* pane = gtk_paned_new (GTK_ORIENTATION_VERTICAL); + // GtkListStore* IoList = gtk_list_store_new (5, + // G_TYPE_STRING, + // G_TYPE_STRING, + // G_TYPE_STRING, + // G_TYPE_STRING, + // G_TYPE_STRING); + // GtkWidget* view; + // GtkTreeViewColumn* column; + + // int typeWidth = 85; + // int pinWidth = 100; + // int portWidth = 90; + + // // Creating a list + // view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(IoList)); + // gtk_tree_view_set_model (GTK_TREE_VIEW (view), GTK_TREE_MODEL (IoList)); + + // column = gtk_tree_view_column_new_with_attributes("Name", + // gtk_cell_renderer_text_new(), + // "text", LV_IO_NAME, + // NULL); + // gtk_tree_view_append_column(GTK_TREE_VIEW(view), column); + // gtk_tree_view_column_set_min_width (column, 250); + + // column = gtk_tree_view_column_new_with_attributes("Type", + // gtk_cell_renderer_spin_new(), + // "text", LV_IO_TYPE, + // NULL); + // gtk_tree_view_append_column(GTK_TREE_VIEW(view), column); + // gtk_tree_view_column_set_min_width (column, typeWidth); + + // column = gtk_tree_view_column_new_with_attributes("State", + // gtk_cell_renderer_text_new(), + // "text", LV_IO_STATE, + // NULL); + // gtk_tree_view_append_column(GTK_TREE_VIEW(view), column); + // gtk_tree_view_column_set_min_width (column, 100); + + // column = gtk_tree_view_column_new_with_attributes("Pin on Processor", + // gtk_cell_renderer_text_new(), + // "text", LV_IO_PIN, + // NULL); + // gtk_tree_view_append_column(GTK_TREE_VIEW(view), column); + // gtk_tree_view_column_set_min_width (column, pinWidth); + + // column = gtk_tree_view_column_new_with_attributes("MCU Port", + // gtk_cell_renderer_text_new(), + // "text", LV_IO_PORT, + // NULL); + // gtk_tree_view_append_column(GTK_TREE_VIEW(view), column); + // gtk_tree_view_column_set_min_width (column, portWidth); + + // // Appending Menus to grid + // gtk_grid_attach (GTK_GRID (grid), MakeMainWindowMenus(), 0, 0, 1, 1); + + // // Creating Scrolled Window + // GtkWidget* ScrollWindow = gtk_scrolled_window_new (NULL, NULL); + // gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (ScrollWindow), + // GTK_POLICY_AUTOMATIC, + // GTK_POLICY_ALWAYS); + + // // Creating a pane to separate Scrolled Window and other widgets + // gtk_paned_add1 (GTK_PANED (pane), ScrollWindow); + // gtk_paned_set_position (GTK_PANED (pane), 0); + // gtk_widget_set_vexpand (ScrollWindow, TRUE); + // gtk_widget_set_hexpand (ScrollWindow, TRUE); + + // // Appending tree view to pane and pane to grid + // gtk_paned_add2 (GTK_PANED(pane), view); + // gtk_paned_set_position (GTK_PANED (pane), 250); + // gtk_grid_attach (GTK_GRID (grid), pane, 0, 0, 1, 1); + + // // Creating Status Bar and attaching to grid + // StatusBar = gtk_statusbar_new(); + // gtk_statusbar_push (GTK_STATUSBAR (StatusBar), + // gtk_statusbar_get_context_id (GTK_STATUSBAR (StatusBar), "Introduction"), + // "LDMicro Started"); + + // // Appneding Status Bar to box which is then added to Main Window + // gtk_box_pack_start(GTK_BOX(PackBox), grid, TRUE, TRUE, 0); + // gtk_box_pack_start(GTK_BOX(PackBox), StatusBar, FALSE, FALSE, 0); + // gtk_container_add(GTK_CONTAINER(MainWindow), PackBox); } //----------------------------------------------------------------------------- @@ -228,23 +228,23 @@ void MakeMainWindowControls(void) //----------------------------------------------------------------------------- void UpdateMainWindowTitleBar(void) { - char line[PATH_MAX+100]; - if(InSimulationMode) { - if(RealTimeSimulationRunning) { - strcpy(line, "LDmicro - Simulation (Running)"); - } else { - strcpy(line, "LDmicro - Simulation (Stopped)"); - } - } else { - strcpy(line, "LDmicro - Program Editor"); - } - if(strlen(CurrentSaveFile) > 0) { - sprintf(line+strlen(line), " - %s", CurrentSaveFile); - } else { - strcat(line, " - (not yet saved)"); - } +// char line[PATH_MAX+100]; +// if(InSimulationMode) { +// if(RealTimeSimulationRunning) { +// strcpy(line, "LDmicro - Simulation (Running)"); +// } else { +// strcpy(line, "LDmicro - Simulation (Stopped)"); +// } +// } else { +// strcpy(line, "LDmicro - Program Editor"); +// } +// if(strlen(CurrentSaveFile) > 0) { +// sprintf(line+strlen(line), " - %s", CurrentSaveFile); +// } else { +// strcat(line, " - (not yet saved)"); +// } - gtk_window_set_title (GTK_WINDOW (window), line); +// gtk_window_set_title (GTK_WINDOW (window), line); } //----------------------------------------------------------------------------- @@ -332,272 +332,272 @@ void SetUndoEnabled(BOOL undoEnabled, BOOL redoEnabled) //----------------------------------------------------------------------------- HMENU MakeMainWindowMenus(void) { - HMENU MenuBox; // Box for alignment - HMENU PackedMenuBox; // Stores the packed box - HMENU TopMenu; // Menu Bar - HWID FileLabel; // File menu label - HWID EditLabel; // Edit menu label - HWID InstructionLabel; // Instruction menu label - HWID SettingsLabel; // Settings menu label - HWID CompileLabel; // Compile menu label - HWID HelpLabel; // Help menu label - HWID SimulateLabel; // Simulate menu label - // HMENU file_menu_items; // File menu item - // HMENU edit_menu_items; // Edit menu item - // HMENU instruction_menu_items; // Instruction menu item - // HMENU settings_menu_items; // Settings menu item - HMENU ProcessorMenuItems; // Processor menu items - // HMENU compile_menu_items; // Compile menu item - // HMENU help_menu_items; // Help menu item - // HMENU simulate_menu_items; // Simulate menu item - HMENU FileMenuSeparator; // File menu separator - HMENU EditMenuSeparator; // Edit menu separator - HMENU InstructionMenuSeparator; // Instruction menu separator - HMENU SimulateMenuSeparator; // Simulate menu separator - - int i; - // Creating a box for desired orientation - MenuBox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); - - // Create new menu bar to hold menu and add it to window - TopMenu = gtk_menu_bar_new(); - - // Creating various menus - FileMenu = gtk_menu_new(); - EditMenu = gtk_menu_new(); - settings = gtk_menu_new(); - ProcessorMenu = gtk_menu_new(); - InstructionMenu = gtk_menu_new(); - SimulateMenu = gtk_menu_new(); - compile = gtk_menu_new(); - help = gtk_menu_new(); - - // Creating labels for each menu - FileLabel = gtk_menu_item_new_with_label("File"); - EditLabel = gtk_menu_item_new_with_label("Edit"); - SettingsLabel = gtk_menu_item_new_with_label("Settings"); - InstructionLabel = gtk_menu_item_new_with_label("Instructions"); - SimulateLabel = gtk_menu_item_new_with_label("Simulate"); - CompileLabel = gtk_menu_item_new_with_label("Compile"); - HelpLabel = gtk_menu_item_new_with_label("Help"); - - // Creating labels for File Menu - MNU_NEW = gtk_menu_item_new_with_label("New"); - MNU_OPEN = gtk_menu_item_new_with_label("Open"); - MNU_SAVE = gtk_menu_item_new_with_label("Save"); - MNU_SAVE_AS = gtk_menu_item_new_with_label("Save As"); - MNU_EXPORT = gtk_menu_item_new_with_label("Export As Text"); - MNU_EXIT = gtk_menu_item_new_with_label("Exit"); + // HMENU MenuBox; // Box for alignment + // HMENU PackedMenuBox; // Stores the packed box + // HMENU TopMenu; // Menu Bar + // HWID FileLabel; // File menu label + // HWID EditLabel; // Edit menu label + // HWID InstructionLabel; // Instruction menu label + // HWID SettingsLabel; // Settings menu label + // HWID CompileLabel; // Compile menu label + // HWID HelpLabel; // Help menu label + // HWID SimulateLabel; // Simulate menu label + // // HMENU file_menu_items; // File menu item + // // HMENU edit_menu_items; // Edit menu item + // // HMENU instruction_menu_items; // Instruction menu item + // // HMENU settings_menu_items; // Settings menu item + // HMENU ProcessorMenuItems; // Processor menu items + // // HMENU compile_menu_items; // Compile menu item + // // HMENU help_menu_items; // Help menu item + // // HMENU simulate_menu_items; // Simulate menu item + // HMENU FileMenuSeparator; // File menu separator + // HMENU EditMenuSeparator; // Edit menu separator + // HMENU InstructionMenuSeparator; // Instruction menu separator + // HMENU SimulateMenuSeparator; // Simulate menu separator + + // int i; + // // Creating a box for desired orientation + // MenuBox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); + + // // Create new menu bar to hold menu and add it to window + // TopMenu = gtk_menu_bar_new(); + + // // Creating various menus + // FileMenu = gtk_menu_new(); + // EditMenu = gtk_menu_new(); + // settings = gtk_menu_new(); + // ProcessorMenu = gtk_menu_new(); + // InstructionMenu = gtk_menu_new(); + // SimulateMenu = gtk_menu_new(); + // compile = gtk_menu_new(); + // help = gtk_menu_new(); + + // // Creating labels for each menu + // FileLabel = gtk_menu_item_new_with_label("File"); + // EditLabel = gtk_menu_item_new_with_label("Edit"); + // SettingsLabel = gtk_menu_item_new_with_label("Settings"); + // InstructionLabel = gtk_menu_item_new_with_label("Instructions"); + // SimulateLabel = gtk_menu_item_new_with_label("Simulate"); + // CompileLabel = gtk_menu_item_new_with_label("Compile"); + // HelpLabel = gtk_menu_item_new_with_label("Help"); + + // // Creating labels for File Menu + // MNU_NEW = gtk_menu_item_new_with_label("New"); + // MNU_OPEN = gtk_menu_item_new_with_label("Open"); + // MNU_SAVE = gtk_menu_item_new_with_label("Save"); + // MNU_SAVE_AS = gtk_menu_item_new_with_label("Save As"); + // MNU_EXPORT = gtk_menu_item_new_with_label("Export As Text"); + // MNU_EXIT = gtk_menu_item_new_with_label("Exit"); - // Appending menu items (labels) to File menu and adding separators - gtk_menu_shell_append(GTK_MENU_SHELL (FileMenu), MNU_NEW); // Appending menu items - gtk_menu_shell_append(GTK_MENU_SHELL (FileMenu), MNU_OPEN); - gtk_menu_shell_append(GTK_MENU_SHELL (FileMenu), MNU_SAVE); - gtk_menu_shell_append(GTK_MENU_SHELL (FileMenu), MNU_SAVE_AS); - FileMenuSeparator = gtk_separator_menu_item_new(); - gtk_menu_shell_append(GTK_MENU_SHELL (FileMenu), FileMenuSeparator); - gtk_menu_shell_append(GTK_MENU_SHELL (FileMenu), MNU_EXPORT); - FileMenuSeparator = gtk_separator_menu_item_new(); - gtk_menu_shell_append(GTK_MENU_SHELL (FileMenu), FileMenuSeparator); - gtk_menu_shell_append(GTK_MENU_SHELL (FileMenu), MNU_EXIT); - - // Creating labels for Edit Menu - MNU_UNDO = gtk_menu_item_new_with_label("Undo"); - MNU_REDO = gtk_menu_item_new_with_label("Redo"); - MNU_INSERT_RUNG_BEFORE = gtk_menu_item_new_with_label("Insert rung Before"); - MNU_INSERT_RUNG_AFTER = gtk_menu_item_new_with_label("Insert Rung After"); - MNU_PUSH_RUNG_UP = gtk_menu_item_new_with_label("Move Selected Rung Up"); - MNU_PUSH_RUNG_DOWN = gtk_menu_item_new_with_label("Move Selected Rung Down"); - MNU_DELETE_ELEMENT = gtk_menu_item_new_with_label("Delete Selected Element"); - MNU_DELETE_RUNG = gtk_menu_item_new_with_label("Delete Rung"); - - // Appending menu items to Edit menu and adding separators - gtk_menu_shell_append(GTK_MENU_SHELL (EditMenu), MNU_UNDO); - gtk_menu_shell_append(GTK_MENU_SHELL (EditMenu), MNU_REDO); - EditMenuSeparator = gtk_separator_menu_item_new(); - gtk_menu_shell_append(GTK_MENU_SHELL(EditMenu), EditMenuSeparator); - gtk_menu_shell_append(GTK_MENU_SHELL (EditMenu), MNU_INSERT_RUNG_BEFORE); - gtk_menu_shell_append(GTK_MENU_SHELL (EditMenu), MNU_INSERT_RUNG_AFTER); - gtk_menu_shell_append(GTK_MENU_SHELL (EditMenu), MNU_PUSH_RUNG_UP); - gtk_menu_shell_append(GTK_MENU_SHELL (EditMenu), MNU_PUSH_RUNG_DOWN); - EditMenuSeparator = gtk_separator_menu_item_new(); - gtk_menu_shell_append(GTK_MENU_SHELL(EditMenu), EditMenuSeparator); - gtk_menu_shell_append(GTK_MENU_SHELL (EditMenu), MNU_DELETE_ELEMENT); - gtk_menu_shell_append(GTK_MENU_SHELL (EditMenu), MNU_DELETE_RUNG); - - // Creating labels for Settings Menu - MNU_MCU_SETTINGS = gtk_menu_item_new_with_label ("MCU Parameters..."); - MNU_PROCESSOR_0 = gtk_menu_item_new_with_label ("Microcontroller"); - - // Appending menu items to Settings menu - gtk_menu_shell_append (GTK_MENU_SHELL (settings), MNU_MCU_SETTINGS); - gtk_menu_shell_append (GTK_MENU_SHELL (settings), MNU_PROCESSOR_0); - - for (i = 0; i < NUM_SUPPORTED_MCUS; i++){ - ProcessorMenuItems = gtk_check_menu_item_new_with_label (SupportedMcus[i].mcuName); - gtk_menu_shell_append (GTK_MENU_SHELL (ProcessorMenu), ProcessorMenuItems); - } - - ProcessorMenuItems = gtk_check_menu_item_new_with_label ("(no microcontroller)"); - gtk_menu_shell_append (GTK_MENU_SHELL (ProcessorMenu), ProcessorMenuItems); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(MNU_PROCESSOR_0), ProcessorMenu); - - // Creating labels for Instruction Menu and adding separators - MNU_INSERT_COMMENT = gtk_menu_item_new_with_label("Insert Comment"); - MNU_INSERT_CONTACTS = gtk_menu_item_new_with_label("Insert Contacts"); - MNU_INSERT_OSR = gtk_menu_item_new_with_label("Insert OSR (One Shot Rising)"); - MNU_INSERT_OSF = gtk_menu_item_new_with_label("Insert OSF (One Shot Falling)"); - MNU_INSERT_TON = gtk_menu_item_new_with_label("Insert TON (Delayed Turn On)"); - MNU_INSERT_TOF = gtk_menu_item_new_with_label("Insert TOF (Delayed Turn Off)"); - MNU_INSERT_RTO = gtk_menu_item_new_with_label("Insert RTO (Retentive Delayed Turn On)"); - MNU_INSERT_CTU = gtk_menu_item_new_with_label("Insert CTU (Count Up)"); - MNU_INSERT_CTD = gtk_menu_item_new_with_label("Insert CTD (Count Down)"); - MNU_INSERT_CTC = gtk_menu_item_new_with_label("Insert CTC (Count Circular)"); - MNU_INSERT_EQU = gtk_menu_item_new_with_label("Insert EQU (Compare for Equals)"); - MNU_INSERT_NEQ = gtk_menu_item_new_with_label("Insert NEQ (Compare for Not Equals)"); - MNU_INSERT_GRT = gtk_menu_item_new_with_label("Insert GRT (Compare for Greater Than)"); - MNU_INSERT_GEQ = gtk_menu_item_new_with_label("Insert GEQ (Compare for Greater Than or Equal)"); - MNU_INSERT_LES = gtk_menu_item_new_with_label("Insert LES (Compare for Less Than)"); - MNU_INSERT_LEQ = gtk_menu_item_new_with_label("Insert LEQ (Compare for Less Than or Equal)"); - MNU_INSERT_OPEN = gtk_menu_item_new_with_label("Insert Open Circuit"); - MNU_INSERT_SHORT = gtk_menu_item_new_with_label("Insert Short Circuit"); - MNU_INSERT_MASTER_RLY = gtk_menu_item_new_with_label("Insert Master Control Relay"); - MNU_INSERT_COIL = gtk_menu_item_new_with_label("Insert Coil"); - MNU_INSERT_RES = gtk_menu_item_new_with_label("Insert RES (Counter/RTO Reset)"); - MNU_INSERT_MOV = gtk_menu_item_new_with_label("Insert MOV (Move)"); - MNU_INSERT_ADD = gtk_menu_item_new_with_label("Insert ADD (16-bit Integer Ad)"); - MNU_INSERT_SUB = gtk_menu_item_new_with_label("Insert SUB (16-bit Integer Subtract)"); - MNU_INSERT_MUL = gtk_menu_item_new_with_label("Insert MUL (16-bit Integer Multiply)"); - MNU_INSERT_DIV = gtk_menu_item_new_with_label("Insert DIV (16-bit Integer Division)"); - MNU_INSERT_SHIFT_REG = gtk_menu_item_new_with_label("Insert Shift Register"); - MNU_INSERT_LUT = gtk_menu_item_new_with_label("Insert Look-Up Table"); - MNU_INSERT_PWL = gtk_menu_item_new_with_label("Insert Piecewise Linear"); - MNU_INSERT_FMTD_STR = gtk_menu_item_new_with_label("Insert Formatted String Over UART"); - MNU_INSERT_UART_SEND = gtk_menu_item_new_with_label("Insert UART Send"); - MNU_INSERT_UART_RECV = gtk_menu_item_new_with_label("Insert UART Receive"); - MNU_INSERT_SET_PWM = gtk_menu_item_new_with_label("Insert Set PWM Output"); - MNU_INSERT_READ_ADC = gtk_menu_item_new_with_label("Insert A/D Converter Read"); - MNU_INSERT_PERSIST = gtk_menu_item_new_with_label("Insert Make Persistent"); - MNU_MAKE_NORMAL = gtk_menu_item_new_with_label("Make Normal"); - MNU_NEGATE = gtk_menu_item_new_with_label("Make Negated"); - MNU_MAKE_SET_ONLY = gtk_menu_item_new_with_label("Make Set-Only"); - MNU_MAKE_RESET_ONLY = gtk_menu_item_new_with_label("Make Reset-Only"); - - // Appending menu items to Instruction menu and adding separators - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_COMMENT); - InstructionMenuSeparator = gtk_separator_menu_item_new(); - gtk_menu_shell_append (GTK_MENU_SHELL(InstructionMenu), InstructionMenuSeparator); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_CONTACTS); - InstructionMenuSeparator = gtk_separator_menu_item_new(); - gtk_menu_shell_append (GTK_MENU_SHELL(InstructionMenu), InstructionMenuSeparator); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_OSR); - InstructionMenuSeparator = gtk_separator_menu_item_new(); - gtk_menu_shell_append (GTK_MENU_SHELL(InstructionMenu), InstructionMenuSeparator); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_OSF); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_TON); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_TOF); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_RTO); - InstructionMenuSeparator = gtk_separator_menu_item_new(); - gtk_menu_shell_append (GTK_MENU_SHELL(InstructionMenu), InstructionMenuSeparator); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_CTU); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_CTD); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_CTC); - InstructionMenuSeparator = gtk_separator_menu_item_new(); - gtk_menu_shell_append (GTK_MENU_SHELL(InstructionMenu), InstructionMenuSeparator); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_EQU); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_NEQ); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_GRT); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_GEQ); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_LES); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_LEQ); - InstructionMenuSeparator = gtk_separator_menu_item_new(); - gtk_menu_shell_append (GTK_MENU_SHELL(InstructionMenu), InstructionMenuSeparator); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_OPEN); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_SHORT); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_MASTER_RLY); - InstructionMenuSeparator = gtk_separator_menu_item_new(); - gtk_menu_shell_append (GTK_MENU_SHELL(InstructionMenu), InstructionMenuSeparator); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_COIL); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_RES); - InstructionMenuSeparator = gtk_separator_menu_item_new(); - gtk_menu_shell_append (GTK_MENU_SHELL(InstructionMenu), InstructionMenuSeparator); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_MOV); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_ADD); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_SUB); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_MUL); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_DIV); - InstructionMenuSeparator = gtk_separator_menu_item_new(); - gtk_menu_shell_append (GTK_MENU_SHELL(InstructionMenu), InstructionMenuSeparator); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_SHIFT_REG); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_LUT); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_PWL); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_FMTD_STR); - InstructionMenuSeparator = gtk_separator_menu_item_new(); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), InstructionMenuSeparator); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_UART_SEND); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_UART_RECV); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_SET_PWM); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_READ_ADC); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_PERSIST); - InstructionMenuSeparator = gtk_separator_menu_item_new(); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), InstructionMenuSeparator); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_MAKE_NORMAL); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_NEGATE); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_MAKE_SET_ONLY); - gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_MAKE_RESET_ONLY); - - // Creating labels for Simulation Menu - MNU_COMPILE = gtk_menu_item_new_with_label("Compile"); - MNU_COMPILE_AS = gtk_menu_item_new_with_label("Compile As..."); - - // Appending menu items to Compile menu - gtk_menu_shell_append(GTK_MENU_SHELL (compile), MNU_COMPILE); - gtk_menu_shell_append(GTK_MENU_SHELL (compile), MNU_COMPILE_AS); - - // Creating labels for Simulation Menu - MNU_MANUAL = gtk_menu_item_new_with_label("Manual..."); - MNU_ABOUT = gtk_menu_item_new_with_label("About..."); - - // Appending menu items to Help menu - gtk_menu_shell_append(GTK_MENU_SHELL (help), MNU_MANUAL); - gtk_menu_shell_append(GTK_MENU_SHELL (help), MNU_ABOUT); - - // Creating labels for Simulation Menu - MNU_SIMULATION_MODE = gtk_check_menu_item_new_with_label("Simulation Mode"); - MNU_START_SIMULATION = gtk_menu_item_new_with_label("Start Real-Time Simulation"); - MNU_STOP_SIMULATION = gtk_menu_item_new_with_label("Halt Simulation"); - MNU_SINGLE_CYCLE = gtk_menu_item_new_with_label("Single Cycle"); - - // Appending menu items to Simulate menu and adding separators - gtk_menu_shell_append(GTK_MENU_SHELL (SimulateMenu), MNU_SIMULATION_MODE); - gtk_menu_shell_append(GTK_MENU_SHELL (SimulateMenu), MNU_START_SIMULATION); - gtk_menu_shell_append(GTK_MENU_SHELL (SimulateMenu), MNU_STOP_SIMULATION); - gtk_menu_shell_append(GTK_MENU_SHELL (SimulateMenu), MNU_SINGLE_CYCLE); - SimulateMenuSeparator = gtk_separator_menu_item_new(); - gtk_menu_shell_append(GTK_MENU_SHELL(SimulateMenu), SimulateMenuSeparator); - - // Creating submenus for each menu - gtk_menu_item_set_submenu(GTK_MENU_ITEM(FileLabel), FileMenu); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(EditLabel), EditMenu); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(SettingsLabel), settings); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(InstructionLabel), InstructionMenu); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(SimulateLabel), SimulateMenu); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(CompileLabel), compile); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(HelpLabel), help); - - // Appending the menu item to the menu bar - gtk_menu_shell_append(GTK_MENU_SHELL(TopMenu), FileLabel); - gtk_menu_shell_append(GTK_MENU_SHELL(TopMenu), EditLabel); - gtk_menu_shell_append(GTK_MENU_SHELL(TopMenu), SettingsLabel); - gtk_menu_shell_append(GTK_MENU_SHELL(TopMenu), InstructionLabel); - gtk_menu_shell_append(GTK_MENU_SHELL(TopMenu), SimulateLabel); - gtk_menu_shell_append(GTK_MENU_SHELL(TopMenu), CompileLabel); - gtk_menu_shell_append(GTK_MENU_SHELL(TopMenu), HelpLabel); - - // Packing the menu bar into the box for alignment - gtk_box_pack_start(GTK_BOX(MenuBox), TopMenu, FALSE, FALSE, 0); - - return MenuBox; + // // Appending menu items (labels) to File menu and adding separators + // gtk_menu_shell_append(GTK_MENU_SHELL (FileMenu), MNU_NEW); // Appending menu items + // gtk_menu_shell_append(GTK_MENU_SHELL (FileMenu), MNU_OPEN); + // gtk_menu_shell_append(GTK_MENU_SHELL (FileMenu), MNU_SAVE); + // gtk_menu_shell_append(GTK_MENU_SHELL (FileMenu), MNU_SAVE_AS); + // FileMenuSeparator = gtk_separator_menu_item_new(); + // gtk_menu_shell_append(GTK_MENU_SHELL (FileMenu), FileMenuSeparator); + // gtk_menu_shell_append(GTK_MENU_SHELL (FileMenu), MNU_EXPORT); + // FileMenuSeparator = gtk_separator_menu_item_new(); + // gtk_menu_shell_append(GTK_MENU_SHELL (FileMenu), FileMenuSeparator); + // gtk_menu_shell_append(GTK_MENU_SHELL (FileMenu), MNU_EXIT); + + // // Creating labels for Edit Menu + // MNU_UNDO = gtk_menu_item_new_with_label("Undo"); + // MNU_REDO = gtk_menu_item_new_with_label("Redo"); + // MNU_INSERT_RUNG_BEFORE = gtk_menu_item_new_with_label("Insert rung Before"); + // MNU_INSERT_RUNG_AFTER = gtk_menu_item_new_with_label("Insert Rung After"); + // MNU_PUSH_RUNG_UP = gtk_menu_item_new_with_label("Move Selected Rung Up"); + // MNU_PUSH_RUNG_DOWN = gtk_menu_item_new_with_label("Move Selected Rung Down"); + // MNU_DELETE_ELEMENT = gtk_menu_item_new_with_label("Delete Selected Element"); + // MNU_DELETE_RUNG = gtk_menu_item_new_with_label("Delete Rung"); + + // // Appending menu items to Edit menu and adding separators + // gtk_menu_shell_append(GTK_MENU_SHELL (EditMenu), MNU_UNDO); + // gtk_menu_shell_append(GTK_MENU_SHELL (EditMenu), MNU_REDO); + // EditMenuSeparator = gtk_separator_menu_item_new(); + // gtk_menu_shell_append(GTK_MENU_SHELL(EditMenu), EditMenuSeparator); + // gtk_menu_shell_append(GTK_MENU_SHELL (EditMenu), MNU_INSERT_RUNG_BEFORE); + // gtk_menu_shell_append(GTK_MENU_SHELL (EditMenu), MNU_INSERT_RUNG_AFTER); + // gtk_menu_shell_append(GTK_MENU_SHELL (EditMenu), MNU_PUSH_RUNG_UP); + // gtk_menu_shell_append(GTK_MENU_SHELL (EditMenu), MNU_PUSH_RUNG_DOWN); + // EditMenuSeparator = gtk_separator_menu_item_new(); + // gtk_menu_shell_append(GTK_MENU_SHELL(EditMenu), EditMenuSeparator); + // gtk_menu_shell_append(GTK_MENU_SHELL (EditMenu), MNU_DELETE_ELEMENT); + // gtk_menu_shell_append(GTK_MENU_SHELL (EditMenu), MNU_DELETE_RUNG); + + // // Creating labels for Settings Menu + // MNU_MCU_SETTINGS = gtk_menu_item_new_with_label ("MCU Parameters..."); + // MNU_PROCESSOR_0 = gtk_menu_item_new_with_label ("Microcontroller"); + + // // Appending menu items to Settings menu + // gtk_menu_shell_append (GTK_MENU_SHELL (settings), MNU_MCU_SETTINGS); + // gtk_menu_shell_append (GTK_MENU_SHELL (settings), MNU_PROCESSOR_0); + + // for (i = 0; i < NUM_SUPPORTED_MCUS; i++){ + // ProcessorMenuItems = gtk_check_menu_item_new_with_label (SupportedMcus[i].mcuName); + // gtk_menu_shell_append (GTK_MENU_SHELL (ProcessorMenu), ProcessorMenuItems); + // } + + // ProcessorMenuItems = gtk_check_menu_item_new_with_label ("(no microcontroller)"); + // gtk_menu_shell_append (GTK_MENU_SHELL (ProcessorMenu), ProcessorMenuItems); + // gtk_menu_item_set_submenu(GTK_MENU_ITEM(MNU_PROCESSOR_0), ProcessorMenu); + + // // Creating labels for Instruction Menu and adding separators + // MNU_INSERT_COMMENT = gtk_menu_item_new_with_label("Insert Comment"); + // MNU_INSERT_CONTACTS = gtk_menu_item_new_with_label("Insert Contacts"); + // MNU_INSERT_OSR = gtk_menu_item_new_with_label("Insert OSR (One Shot Rising)"); + // MNU_INSERT_OSF = gtk_menu_item_new_with_label("Insert OSF (One Shot Falling)"); + // MNU_INSERT_TON = gtk_menu_item_new_with_label("Insert TON (Delayed Turn On)"); + // MNU_INSERT_TOF = gtk_menu_item_new_with_label("Insert TOF (Delayed Turn Off)"); + // MNU_INSERT_RTO = gtk_menu_item_new_with_label("Insert RTO (Retentive Delayed Turn On)"); + // MNU_INSERT_CTU = gtk_menu_item_new_with_label("Insert CTU (Count Up)"); + // MNU_INSERT_CTD = gtk_menu_item_new_with_label("Insert CTD (Count Down)"); + // MNU_INSERT_CTC = gtk_menu_item_new_with_label("Insert CTC (Count Circular)"); + // MNU_INSERT_EQU = gtk_menu_item_new_with_label("Insert EQU (Compare for Equals)"); + // MNU_INSERT_NEQ = gtk_menu_item_new_with_label("Insert NEQ (Compare for Not Equals)"); + // MNU_INSERT_GRT = gtk_menu_item_new_with_label("Insert GRT (Compare for Greater Than)"); + // MNU_INSERT_GEQ = gtk_menu_item_new_with_label("Insert GEQ (Compare for Greater Than or Equal)"); + // MNU_INSERT_LES = gtk_menu_item_new_with_label("Insert LES (Compare for Less Than)"); + // MNU_INSERT_LEQ = gtk_menu_item_new_with_label("Insert LEQ (Compare for Less Than or Equal)"); + // MNU_INSERT_OPEN = gtk_menu_item_new_with_label("Insert Open Circuit"); + // MNU_INSERT_SHORT = gtk_menu_item_new_with_label("Insert Short Circuit"); + // MNU_INSERT_MASTER_RLY = gtk_menu_item_new_with_label("Insert Master Control Relay"); + // MNU_INSERT_COIL = gtk_menu_item_new_with_label("Insert Coil"); + // MNU_INSERT_RES = gtk_menu_item_new_with_label("Insert RES (Counter/RTO Reset)"); + // MNU_INSERT_MOV = gtk_menu_item_new_with_label("Insert MOV (Move)"); + // MNU_INSERT_ADD = gtk_menu_item_new_with_label("Insert ADD (16-bit Integer Ad)"); + // MNU_INSERT_SUB = gtk_menu_item_new_with_label("Insert SUB (16-bit Integer Subtract)"); + // MNU_INSERT_MUL = gtk_menu_item_new_with_label("Insert MUL (16-bit Integer Multiply)"); + // MNU_INSERT_DIV = gtk_menu_item_new_with_label("Insert DIV (16-bit Integer Division)"); + // MNU_INSERT_SHIFT_REG = gtk_menu_item_new_with_label("Insert Shift Register"); + // MNU_INSERT_LUT = gtk_menu_item_new_with_label("Insert Look-Up Table"); + // MNU_INSERT_PWL = gtk_menu_item_new_with_label("Insert Piecewise Linear"); + // MNU_INSERT_FMTD_STR = gtk_menu_item_new_with_label("Insert Formatted String Over UART"); + // MNU_INSERT_UART_SEND = gtk_menu_item_new_with_label("Insert UART Send"); + // MNU_INSERT_UART_RECV = gtk_menu_item_new_with_label("Insert UART Receive"); + // MNU_INSERT_SET_PWM = gtk_menu_item_new_with_label("Insert Set PWM Output"); + // MNU_INSERT_READ_ADC = gtk_menu_item_new_with_label("Insert A/D Converter Read"); + // MNU_INSERT_PERSIST = gtk_menu_item_new_with_label("Insert Make Persistent"); + // MNU_MAKE_NORMAL = gtk_menu_item_new_with_label("Make Normal"); + // MNU_NEGATE = gtk_menu_item_new_with_label("Make Negated"); + // MNU_MAKE_SET_ONLY = gtk_menu_item_new_with_label("Make Set-Only"); + // MNU_MAKE_RESET_ONLY = gtk_menu_item_new_with_label("Make Reset-Only"); + + // // Appending menu items to Instruction menu and adding separators + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_COMMENT); + // InstructionMenuSeparator = gtk_separator_menu_item_new(); + // gtk_menu_shell_append (GTK_MENU_SHELL(InstructionMenu), InstructionMenuSeparator); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_CONTACTS); + // InstructionMenuSeparator = gtk_separator_menu_item_new(); + // gtk_menu_shell_append (GTK_MENU_SHELL(InstructionMenu), InstructionMenuSeparator); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_OSR); + // InstructionMenuSeparator = gtk_separator_menu_item_new(); + // gtk_menu_shell_append (GTK_MENU_SHELL(InstructionMenu), InstructionMenuSeparator); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_OSF); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_TON); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_TOF); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_RTO); + // InstructionMenuSeparator = gtk_separator_menu_item_new(); + // gtk_menu_shell_append (GTK_MENU_SHELL(InstructionMenu), InstructionMenuSeparator); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_CTU); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_CTD); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_CTC); + // InstructionMenuSeparator = gtk_separator_menu_item_new(); + // gtk_menu_shell_append (GTK_MENU_SHELL(InstructionMenu), InstructionMenuSeparator); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_EQU); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_NEQ); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_GRT); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_GEQ); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_LES); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_LEQ); + // InstructionMenuSeparator = gtk_separator_menu_item_new(); + // gtk_menu_shell_append (GTK_MENU_SHELL(InstructionMenu), InstructionMenuSeparator); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_OPEN); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_SHORT); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_MASTER_RLY); + // InstructionMenuSeparator = gtk_separator_menu_item_new(); + // gtk_menu_shell_append (GTK_MENU_SHELL(InstructionMenu), InstructionMenuSeparator); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_COIL); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_RES); + // InstructionMenuSeparator = gtk_separator_menu_item_new(); + // gtk_menu_shell_append (GTK_MENU_SHELL(InstructionMenu), InstructionMenuSeparator); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_MOV); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_ADD); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_SUB); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_MUL); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_DIV); + // InstructionMenuSeparator = gtk_separator_menu_item_new(); + // gtk_menu_shell_append (GTK_MENU_SHELL(InstructionMenu), InstructionMenuSeparator); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_SHIFT_REG); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_LUT); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_PWL); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_FMTD_STR); + // InstructionMenuSeparator = gtk_separator_menu_item_new(); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), InstructionMenuSeparator); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_UART_SEND); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_UART_RECV); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_SET_PWM); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_READ_ADC); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_INSERT_PERSIST); + // InstructionMenuSeparator = gtk_separator_menu_item_new(); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), InstructionMenuSeparator); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_MAKE_NORMAL); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_NEGATE); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_MAKE_SET_ONLY); + // gtk_menu_shell_append (GTK_MENU_SHELL (InstructionMenu), MNU_MAKE_RESET_ONLY); + + // // Creating labels for Simulation Menu + // MNU_COMPILE = gtk_menu_item_new_with_label("Compile"); + // MNU_COMPILE_AS = gtk_menu_item_new_with_label("Compile As..."); + + // // Appending menu items to Compile menu + // gtk_menu_shell_append(GTK_MENU_SHELL (compile), MNU_COMPILE); + // gtk_menu_shell_append(GTK_MENU_SHELL (compile), MNU_COMPILE_AS); + + // // Creating labels for Simulation Menu + // MNU_MANUAL = gtk_menu_item_new_with_label("Manual..."); + // MNU_ABOUT = gtk_menu_item_new_with_label("About..."); + + // // Appending menu items to Help menu + // gtk_menu_shell_append(GTK_MENU_SHELL (help), MNU_MANUAL); + // gtk_menu_shell_append(GTK_MENU_SHELL (help), MNU_ABOUT); + + // // Creating labels for Simulation Menu + // MNU_SIMULATION_MODE = gtk_check_menu_item_new_with_label("Simulation Mode"); + // MNU_START_SIMULATION = gtk_menu_item_new_with_label("Start Real-Time Simulation"); + // MNU_STOP_SIMULATION = gtk_menu_item_new_with_label("Halt Simulation"); + // MNU_SINGLE_CYCLE = gtk_menu_item_new_with_label("Single Cycle"); + + // // Appending menu items to Simulate menu and adding separators + // gtk_menu_shell_append(GTK_MENU_SHELL (SimulateMenu), MNU_SIMULATION_MODE); + // gtk_menu_shell_append(GTK_MENU_SHELL (SimulateMenu), MNU_START_SIMULATION); + // gtk_menu_shell_append(GTK_MENU_SHELL (SimulateMenu), MNU_STOP_SIMULATION); + // gtk_menu_shell_append(GTK_MENU_SHELL (SimulateMenu), MNU_SINGLE_CYCLE); + // SimulateMenuSeparator = gtk_separator_menu_item_new(); + // gtk_menu_shell_append(GTK_MENU_SHELL(SimulateMenu), SimulateMenuSeparator); + + // // Creating submenus for each menu + // gtk_menu_item_set_submenu(GTK_MENU_ITEM(FileLabel), FileMenu); + // gtk_menu_item_set_submenu(GTK_MENU_ITEM(EditLabel), EditMenu); + // gtk_menu_item_set_submenu(GTK_MENU_ITEM(SettingsLabel), settings); + // gtk_menu_item_set_submenu(GTK_MENU_ITEM(InstructionLabel), InstructionMenu); + // gtk_menu_item_set_submenu(GTK_MENU_ITEM(SimulateLabel), SimulateMenu); + // gtk_menu_item_set_submenu(GTK_MENU_ITEM(CompileLabel), compile); + // gtk_menu_item_set_submenu(GTK_MENU_ITEM(HelpLabel), help); + + // // Appending the menu item to the menu bar + // gtk_menu_shell_append(GTK_MENU_SHELL(TopMenu), FileLabel); + // gtk_menu_shell_append(GTK_MENU_SHELL(TopMenu), EditLabel); + // gtk_menu_shell_append(GTK_MENU_SHELL(TopMenu), SettingsLabel); + // gtk_menu_shell_append(GTK_MENU_SHELL(TopMenu), InstructionLabel); + // gtk_menu_shell_append(GTK_MENU_SHELL(TopMenu), SimulateLabel); + // gtk_menu_shell_append(GTK_MENU_SHELL(TopMenu), CompileLabel); + // gtk_menu_shell_append(GTK_MENU_SHELL(TopMenu), HelpLabel); + + // // Packing the menu bar into the box for alignment + // gtk_box_pack_start(GTK_BOX(MenuBox), TopMenu, FALSE, FALSE, 0); + + // return MenuBox; } //----------------------------------------------------------------------------- @@ -812,24 +812,24 @@ void RefreshControlsToSettings(void) //----------------------------------------------------------------------------- void GenerateIoListDontLoseSelection(void) { - int i; - GtkTreeIter* iter; - GtkTreeModel **IoListPtr = (GtkTreeModel**)GTK_TREE_MODEL (IoList); - gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(view)), - GTK_SELECTION_SINGLE); - IoListSelectionPoint = -1; - for(i = 0; i < Prog.io.count; i++) { - if(gtk_tree_selection_get_selected (gtk_tree_view_get_selection(GTK_TREE_VIEW(view)), - IoListPtr, iter)) { - IoListSelectionPoint = i; - break; - } - } - IoListSelectionPoint = GenerateIoList(IoListSelectionPoint); - // can't just update the listview index; if I/O has been added then the - // new selection point might be out of range till we refill it - IoListOutOfSync = TRUE; - RefreshControlsToSettings(); + // int i; + // GtkTreeIter* iter; + // GtkTreeModel **IoListPtr = (GtkTreeModel**)GTK_TREE_MODEL (IoList); + // gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(view)), + // GTK_SELECTION_SINGLE); + // IoListSelectionPoint = -1; + // for(i = 0; i < Prog.io.count; i++) { + // if(gtk_tree_selection_get_selected (gtk_tree_view_get_selection(GTK_TREE_VIEW(view)), + // IoListPtr, iter)) { + // IoListSelectionPoint = i; + // break; + // } + // } + // IoListSelectionPoint = GenerateIoList(IoListSelectionPoint); + // // can't just update the listview index; if I/O has been added then the + // // new selection point might be out of range till we refill it + // IoListOutOfSync = TRUE; + // RefreshControlsToSettings(); } //----------------------------------------------------------------------------- |