GtkWidget *XttMethodToolbarGtk::build() { pwr_tFileName fname; // Toolbar m_toolbar_w = (GtkWidget *) g_object_new(GTK_TYPE_TOOLBAR, NULL); for ( int i = 0; i < m_size; i++) { if ( m_method_mask & (1 << i)) { char tooltip[200]; strcpy( tooltip, m_data[i].tooltip); strcat( tooltip, m_tooltip_suffix); m_button_w[i] = gtk_button_new(); dcli_translate_filename( fname, m_data[i].image); gtk_container_add( GTK_CONTAINER(m_button_w[i]), gtk_image_new_from_file( fname)); g_signal_connect( m_button_w[i], "clicked", G_CALLBACK(activate_button), &m_cb[i]); g_object_set( m_button_w[i], "can-focus", FALSE, NULL); gtk_toolbar_append_widget( GTK_TOOLBAR(m_toolbar_w), m_button_w[i], CoWowGtk::translate_utf8( tooltip), ""); } } return m_toolbar_w; }
static VALUE rg_append(int argc, VALUE *argv, VALUE self) { GtkWidget* ret = NULL; VALUE type = Qnil; VALUE widget, stock_id, element_type, text, ttext, ptext, icon, func; if (argc > 0) type = argv[0]; if (NIL_P(type) || TYPE(type) == T_STRING){ rb_scan_args(argc, argv, "05", &text, &ttext, &ptext, &icon, &func); if (NIL_P(func)) func = rb_block_proc(); G_RELATIVE(self, func); ret = gtk_toolbar_append_item(_SELF(self), N_RVAL2CSTR(text), N_RVAL2CSTR(ttext), N_RVAL2CSTR(ptext), N_RVAL2WIDGET(icon), GTK_SIGNAL_FUNC(exec_callback), (gpointer)func); } else if (TYPE(type) == T_FIXNUM) { rb_scan_args(argc, argv, "07", &element_type, &widget, &text, &ttext, &ptext, &icon, &func); if (NIL_P(func)) func = rb_block_proc(); G_RELATIVE(self, func); ret = gtk_toolbar_append_element(_SELF(self), RVAL2GENUM(element_type, GTK_TYPE_TOOLBAR_CHILD_TYPE), N_RVAL2WIDGET(widget), N_RVAL2CSTR(text), N_RVAL2CSTR(ttext), N_RVAL2CSTR(ptext), N_RVAL2WIDGET(icon), GTK_SIGNAL_FUNC(exec_callback), (gpointer)func); if (RVAL2GENUM(element_type, GTK_TYPE_TOOLBAR_CHILD_TYPE) == GTK_TOOLBAR_CHILD_SPACE) ret = NULL; } else if (TYPE(type) == T_SYMBOL) { rb_scan_args(argc, argv, "13", &stock_id, &ttext, &ptext, &func); if (NIL_P(func)) func = rb_block_proc(); G_RELATIVE(self, func); ret = gtk_toolbar_insert_stock(_SELF(self), rb_id2name(SYM2ID(stock_id)), N_RVAL2CSTR(ttext), N_RVAL2CSTR(ptext), GTK_SIGNAL_FUNC(exec_callback), (gpointer)func, -1); } else { rb_scan_args(argc, argv, "12", &widget, &ttext, &ptext); gtk_toolbar_append_widget(_SELF(self), GTK_WIDGET(RVAL2GOBJ(widget)), N_RVAL2CSTR(ttext), N_RVAL2CSTR(ptext)); return widget; } return ret ? GOBJ2RVAL(ret) : Qnil; }
GtkWidget* create_bsv_main_win (void) { GtkWidget *bsv_main_win; GtkWidget *vbox1; GtkWidget *menubar1; GtkWidget *menuitem4; GtkWidget *menuitem4_menu; GtkWidget *preferences_main; GtkWidget *image18; GtkWidget *separatormenuitem1; GtkWidget *quit1; GtkWidget *menuitem5; GtkWidget *menuitem5_menu; GtkWidget *preferences_driver; GtkWidget *image19; GtkWidget *information2; GtkWidget *handlebox1; GtkWidget *toolbar1; GtkWidget *start_but; GtkWidget *alignment1; GtkWidget *hbox24; GtkWidget *image20; GtkWidget *label10; GtkWidget *stop_but; GtkWidget *alignment2; GtkWidget *hbox25; GtkWidget *image21; GtkWidget *label11; GtkWidget *handlebox2; GtkWidget *toolbar2; GtkWidget *chansel_combo; GtkWidget *combo_entry1; GtkWidget *label12; GtkObject *mag_spinbut_adj; GtkWidget *mag_spinbut; GtkWidget *label13; GtkWidget *combo1; GtkWidget *combo_entry2; GtkWidget *apply_but; GtkWidget *hbox18; GtkWidget *drawingarea; GtkWidget *vscrollbar1; GtkWidget *statusbar; GtkAccelGroup *accel_group; accel_group = gtk_accel_group_new (); bsv_main_win = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (bsv_main_win), _("BSView")); gtk_window_set_default_size (GTK_WINDOW (bsv_main_win), 500, 300); vbox1 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (bsv_main_win), vbox1); menubar1 = gtk_menu_bar_new (); gtk_widget_show (menubar1); gtk_box_pack_start (GTK_BOX (vbox1), menubar1, FALSE, FALSE, 0); menuitem4 = gtk_menu_item_new_with_mnemonic (_("_Viewer")); gtk_widget_show (menuitem4); gtk_container_add (GTK_CONTAINER (menubar1), menuitem4); menuitem4_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem4), menuitem4_menu); preferences_main = gtk_image_menu_item_new_with_mnemonic (_("_Preferences")); gtk_widget_show (preferences_main); gtk_container_add (GTK_CONTAINER (menuitem4_menu), preferences_main); image18 = gtk_image_new_from_stock ("gtk-preferences", GTK_ICON_SIZE_MENU); gtk_widget_show (image18); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (preferences_main), image18); separatormenuitem1 = gtk_menu_item_new (); gtk_widget_show (separatormenuitem1); gtk_container_add (GTK_CONTAINER (menuitem4_menu), separatormenuitem1); gtk_widget_set_sensitive (separatormenuitem1, FALSE); quit1 = gtk_image_menu_item_new_from_stock ("gtk-quit", accel_group); gtk_widget_show (quit1); gtk_container_add (GTK_CONTAINER (menuitem4_menu), quit1); menuitem5 = gtk_menu_item_new_with_mnemonic (_("_Driver")); gtk_widget_show (menuitem5); gtk_container_add (GTK_CONTAINER (menubar1), menuitem5); menuitem5_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem5), menuitem5_menu); preferences_driver = gtk_image_menu_item_new_with_mnemonic (_("_Preferences")); gtk_widget_show (preferences_driver); gtk_container_add (GTK_CONTAINER (menuitem5_menu), preferences_driver); image19 = gtk_image_new_from_stock ("gtk-preferences", GTK_ICON_SIZE_MENU); gtk_widget_show (image19); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (preferences_driver), image19); information2 = gtk_image_menu_item_new_from_stock ("gtk-dialog-info", accel_group); gtk_widget_show (information2); gtk_container_add (GTK_CONTAINER (menuitem5_menu), information2); handlebox1 = gtk_handle_box_new (); gtk_widget_show (handlebox1); gtk_box_pack_start (GTK_BOX (vbox1), handlebox1, FALSE, FALSE, 0); toolbar1 = gtk_toolbar_new (); gtk_widget_show (toolbar1); gtk_container_add (GTK_CONTAINER (handlebox1), toolbar1); gtk_toolbar_set_style (GTK_TOOLBAR (toolbar1), GTK_TOOLBAR_ICONS); start_but = gtk_button_new (); gtk_widget_show (start_but); gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar1), start_but, _("Start Aquistion"), NULL); alignment1 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment1); gtk_container_add (GTK_CONTAINER (start_but), alignment1); hbox24 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox24); gtk_container_add (GTK_CONTAINER (alignment1), hbox24); image20 = gtk_image_new_from_stock ("gtk-yes", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image20); gtk_box_pack_start (GTK_BOX (hbox24), image20, FALSE, FALSE, 0); label10 = gtk_label_new_with_mnemonic (_("_Start")); gtk_widget_show (label10); gtk_box_pack_start (GTK_BOX (hbox24), label10, FALSE, FALSE, 0); stop_but = gtk_button_new (); gtk_widget_show (stop_but); gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar1), stop_but, _("Stop Aquistion"), NULL); gtk_widget_set_sensitive (stop_but, FALSE); alignment2 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment2); gtk_container_add (GTK_CONTAINER (stop_but), alignment2); hbox25 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox25); gtk_container_add (GTK_CONTAINER (alignment2), hbox25); image21 = gtk_image_new_from_stock ("gtk-no", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image21); gtk_box_pack_start (GTK_BOX (hbox25), image21, FALSE, FALSE, 0); label11 = gtk_label_new_with_mnemonic (_("St_op")); gtk_widget_show (label11); gtk_box_pack_start (GTK_BOX (hbox25), label11, FALSE, FALSE, 0); handlebox2 = gtk_handle_box_new (); gtk_widget_show (handlebox2); gtk_box_pack_start (GTK_BOX (vbox1), handlebox2, FALSE, FALSE, 0); toolbar2 = gtk_toolbar_new (); gtk_widget_show (toolbar2); gtk_container_add (GTK_CONTAINER (handlebox2), toolbar2); gtk_toolbar_set_style (GTK_TOOLBAR (toolbar2), GTK_TOOLBAR_ICONS); chansel_combo = gtk_combo_box_new_text(); gtk_widget_show(chansel_combo); gtk_toolbar_append_widget(GTK_TOOLBAR(toolbar2), chansel_combo, NULL, NULL); gtk_widget_set_sensitive(chansel_combo, FALSE); /* chansel_combo = gtk_combo_new (); g_object_set_data (G_OBJECT (GTK_COMBO (chansel_combo)->popwin), "GladeParentKey", chansel_combo); gtk_widget_show (chansel_combo); gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar2), chansel_combo, NULL, NULL); gtk_widget_set_sensitive (chansel_combo, FALSE); combo_entry1 = GTK_COMBO (chansel_combo)->entry; gtk_widget_show (combo_entry1); */ label12 = gtk_label_new (_(" Mag in %: ")); gtk_widget_show (label12); gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar2), label12, NULL, NULL); mag_spinbut_adj = gtk_adjustment_new (1, 0, 100, 1, 10, 10); mag_spinbut = gtk_spin_button_new (GTK_ADJUSTMENT (mag_spinbut_adj), 1, 0); gtk_widget_show (mag_spinbut); gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar2), mag_spinbut, NULL, NULL); gtk_widget_set_sensitive (mag_spinbut, FALSE); label13 = gtk_label_new (_(" Notch: ")); gtk_widget_show (label13); gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar2), label13, NULL, NULL); combo1 = gtk_combo_box_new_text(); gtk_widget_show(combo1); gtk_toolbar_append_widget(GTK_TOOLBAR(toolbar2), combo1, NULL, NULL); gtk_widget_set_sensitive(combo1, FALSE); /* combo1 = gtk_combo_new (); g_object_set_data (G_OBJECT (GTK_COMBO (combo1)->popwin), "GladeParentKey", combo1); gtk_widget_show (combo1); gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar2), combo1, NULL, NULL); combo_entry2 = GTK_COMBO (combo1)->entry; gtk_widget_show (combo_entry2); */ apply_but = gtk_button_new_from_stock ("gtk-apply"); gtk_widget_show (apply_but); gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar2), apply_but, _("Start Aquistion"), NULL); gtk_widget_set_sensitive (apply_but, FALSE); hbox18 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox18); gtk_box_pack_start (GTK_BOX (vbox1), hbox18, TRUE, TRUE, 0); drawingarea = gtk_drawing_area_new (); gtk_widget_show (drawingarea); gtk_box_pack_start (GTK_BOX (hbox18), drawingarea, TRUE, TRUE, 0); vscrollbar1 = gtk_vscrollbar_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 10, 1, 1, 1))); gtk_widget_show (vscrollbar1); gtk_box_pack_start (GTK_BOX (hbox18), vscrollbar1, FALSE, TRUE, 0); gtk_widget_set_sensitive (vscrollbar1, FALSE); statusbar = gtk_statusbar_new (); gtk_widget_show (statusbar); gtk_box_pack_start (GTK_BOX (vbox1), statusbar, FALSE, FALSE, 0); g_signal_connect ((gpointer) bsv_main_win, "delete-event", G_CALLBACK (main_quit), NULL); g_signal_connect ((gpointer) preferences_main, "activate", G_CALLBACK (run_viewer_preference_dlg), NULL); g_signal_connect ((gpointer) quit1, "activate", G_CALLBACK (gtk_main_quit), NULL); g_signal_connect ((gpointer) preferences_driver, "activate", G_CALLBACK (run_driver_perferences_dlg), NULL); g_signal_connect ((gpointer) information2, "activate", G_CALLBACK (run_driver_info_dlg), NULL); g_signal_connect ((gpointer) start_but, "clicked", G_CALLBACK (start_acquistion), NULL); g_signal_connect ((gpointer) stop_but, "clicked", G_CALLBACK (stop_acquistion), NULL); g_signal_connect ((gpointer) apply_but, "clicked", G_CALLBACK (apply_but_clicked), NULL); g_signal_connect ((gpointer) drawingarea, "expose_event", G_CALLBACK (resize_area), NULL); g_signal_connect ((gpointer) vscrollbar1, "value_changed", G_CALLBACK (vsbar_value_changed), NULL); g_signal_connect ((gpointer) chansel_combo, "changed", G_CALLBACK (chansel_combo_changed), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (bsv_main_win, bsv_main_win, "bsv_main_win"); GLADE_HOOKUP_OBJECT (bsv_main_win, vbox1, "vbox1"); GLADE_HOOKUP_OBJECT (bsv_main_win, menubar1, "menubar1"); GLADE_HOOKUP_OBJECT (bsv_main_win, menuitem4, "menuitem4"); GLADE_HOOKUP_OBJECT (bsv_main_win, menuitem4_menu, "menuitem4_menu"); GLADE_HOOKUP_OBJECT (bsv_main_win, preferences_main, "preferences_main"); GLADE_HOOKUP_OBJECT (bsv_main_win, image18, "image18"); GLADE_HOOKUP_OBJECT (bsv_main_win, separatormenuitem1, "separatormenuitem1"); GLADE_HOOKUP_OBJECT (bsv_main_win, quit1, "quit1"); GLADE_HOOKUP_OBJECT (bsv_main_win, menuitem5, "menuitem5"); GLADE_HOOKUP_OBJECT (bsv_main_win, menuitem5_menu, "menuitem5_menu"); GLADE_HOOKUP_OBJECT (bsv_main_win, preferences_driver, "preferences_driver"); GLADE_HOOKUP_OBJECT (bsv_main_win, image19, "image19"); GLADE_HOOKUP_OBJECT (bsv_main_win, information2, "information2"); GLADE_HOOKUP_OBJECT (bsv_main_win, handlebox1, "handlebox1"); GLADE_HOOKUP_OBJECT (bsv_main_win, toolbar1, "toolbar1"); GLADE_HOOKUP_OBJECT (bsv_main_win, start_but, "start_but"); GLADE_HOOKUP_OBJECT (bsv_main_win, alignment1, "alignment1"); GLADE_HOOKUP_OBJECT (bsv_main_win, hbox24, "hbox24"); GLADE_HOOKUP_OBJECT (bsv_main_win, image20, "image20"); GLADE_HOOKUP_OBJECT (bsv_main_win, label10, "label10"); GLADE_HOOKUP_OBJECT (bsv_main_win, stop_but, "stop_but"); GLADE_HOOKUP_OBJECT (bsv_main_win, alignment2, "alignment2"); GLADE_HOOKUP_OBJECT (bsv_main_win, hbox25, "hbox25"); GLADE_HOOKUP_OBJECT (bsv_main_win, image21, "image21"); GLADE_HOOKUP_OBJECT (bsv_main_win, label11, "label11"); GLADE_HOOKUP_OBJECT (bsv_main_win, handlebox2, "handlebox2"); GLADE_HOOKUP_OBJECT (bsv_main_win, toolbar2, "toolbar2"); GLADE_HOOKUP_OBJECT (bsv_main_win, chansel_combo, "chansel_combo"); // GLADE_HOOKUP_OBJECT (bsv_main_win, combo_entry1, "combo_entry1"); GLADE_HOOKUP_OBJECT (bsv_main_win, label12, "label12"); GLADE_HOOKUP_OBJECT (bsv_main_win, mag_spinbut, "mag_spinbut"); GLADE_HOOKUP_OBJECT (bsv_main_win, label13, "label13"); GLADE_HOOKUP_OBJECT (bsv_main_win, combo1, "combo1"); // GLADE_HOOKUP_OBJECT (bsv_main_win, combo_entry2, "combo_entry2"); GLADE_HOOKUP_OBJECT (bsv_main_win, apply_but, "apply_but"); GLADE_HOOKUP_OBJECT (bsv_main_win, hbox18, "hbox18"); GLADE_HOOKUP_OBJECT (bsv_main_win, drawingarea, "drawingarea"); GLADE_HOOKUP_OBJECT (bsv_main_win, vscrollbar1, "vscrollbar1"); GLADE_HOOKUP_OBJECT (bsv_main_win, statusbar, "statusbar"); gtk_window_add_accel_group (GTK_WINDOW (bsv_main_win), accel_group); return bsv_main_win; }
WPkgGtk::WPkgGtk( GtkWidget *wa_parent_wid, void *wa_parent_ctx) : WPkg(wa_parent_ctx), parent_wid(wa_parent_wid), clock_cursor(0) { const int window_width = 600; const int window_height = 600; int sts; pwr_tFileName fname; toplevel = (GtkWidget *) g_object_new( GTK_TYPE_WINDOW, "default-height", window_height, "default-width", window_width, "title", "Distributor", NULL); g_signal_connect( toplevel, "delete_event", G_CALLBACK(delete_event), this); g_signal_connect( toplevel, "destroy", G_CALLBACK(destroy_event), this); g_signal_connect( toplevel, "focus-in-event", G_CALLBACK(action_inputfocus), this); CoWowGtk::SetWindowIcon( toplevel); GtkAccelGroup *accel_g = (GtkAccelGroup *) g_object_new(GTK_TYPE_ACCEL_GROUP, NULL); gtk_window_add_accel_group(GTK_WINDOW(toplevel), accel_g); GtkMenuBar *menu_bar = (GtkMenuBar *) g_object_new(GTK_TYPE_MENU_BAR, NULL); // File Entry GtkWidget *file_history = gtk_menu_item_new_with_mnemonic( "_History"); g_signal_connect( file_history, "activate", G_CALLBACK(WPkgGtk::activate_history), this); GtkWidget *file_close = gtk_image_menu_item_new_from_stock(GTK_STOCK_CLOSE, accel_g); g_signal_connect(file_close, "activate", G_CALLBACK(WPkgGtk::activate_exit), this); GtkMenu *file_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_history); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_close); GtkWidget *file = gtk_menu_item_new_with_mnemonic("_File"); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), file); gtk_menu_item_set_submenu(GTK_MENU_ITEM(file), GTK_WIDGET(file_menu)); // Functions Entry GtkWidget *functions_distribute = gtk_menu_item_new_with_mnemonic( "_Distribute"); g_signal_connect( functions_distribute, "activate", G_CALLBACK(WPkgGtk::activate_distribute), this); gtk_widget_add_accelerator( functions_distribute, "activate", accel_g, 'd', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkWidget *functions_createpkg = gtk_menu_item_new_with_mnemonic( "_Create Package"); g_signal_connect( functions_createpkg, "activate", G_CALLBACK(WPkgGtk::activate_createpkg), this); GtkWidget *functions_deletepkg = gtk_menu_item_new_with_mnemonic( "D_elete Package"); g_signal_connect( functions_deletepkg, "activate", G_CALLBACK(WPkgGtk::activate_deletepkg), this); GtkMenu *functions_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(functions_menu), functions_distribute); gtk_menu_shell_append(GTK_MENU_SHELL(functions_menu), functions_createpkg); gtk_menu_shell_append(GTK_MENU_SHELL(functions_menu), functions_deletepkg); GtkWidget *functions = gtk_menu_item_new_with_mnemonic("F_unctions"); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), functions); gtk_menu_item_set_submenu(GTK_MENU_ITEM(functions), GTK_WIDGET(functions_menu)); // View menu GtkWidget *view_zoom_in = gtk_image_menu_item_new_from_stock(GTK_STOCK_ZOOM_IN, NULL); g_signal_connect(view_zoom_in, "activate", G_CALLBACK(WPkgGtk::activate_zoom_in), this); gtk_widget_add_accelerator( view_zoom_in, "activate", accel_g, 'i', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); GtkWidget *view_zoom_out = gtk_image_menu_item_new_from_stock(GTK_STOCK_ZOOM_OUT, NULL); g_signal_connect(view_zoom_out, "activate", G_CALLBACK(WPkgGtk::activate_zoom_out), this); gtk_widget_add_accelerator( view_zoom_out, "activate", accel_g, 'o', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); GtkWidget *view_zoom_reset = gtk_image_menu_item_new_from_stock(GTK_STOCK_ZOOM_100, NULL); g_signal_connect(view_zoom_reset, "activate", G_CALLBACK(WPkgGtk::activate_zoom_reset), this); GtkWidget *view_dmode_filediff = gtk_check_menu_item_new_with_mnemonic( "_Display File Differences"); g_signal_connect( view_dmode_filediff, "activate", G_CALLBACK(WPkgGtk::activate_dmode_filediff), this); GtkWidget *view_dmode_filetime = gtk_check_menu_item_new_with_mnemonic( "Display Files In _Time Order"); g_signal_connect( view_dmode_filetime, "activate", G_CALLBACK(WPkgGtk::activate_dmode_filetime), this); GtkWidget *view_dmode_filepath = gtk_check_menu_item_new_with_mnemonic( "Display File _Path"); g_signal_connect( view_dmode_filepath, "activate", G_CALLBACK(WPkgGtk::activate_dmode_filepath), this); GtkMenu *view_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_in); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_out); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_reset); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_dmode_filediff); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_dmode_filetime); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_dmode_filepath); GtkWidget *view = gtk_menu_item_new_with_mnemonic("_View"); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), view); gtk_menu_item_set_submenu(GTK_MENU_ITEM(view), GTK_WIDGET(view_menu)); // Menu Help GtkWidget *help_help = gtk_image_menu_item_new_with_mnemonic("_Help"); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(help_help), gtk_image_new_from_stock( "gtk-help", GTK_ICON_SIZE_MENU)); g_signal_connect(help_help, "activate", G_CALLBACK(WPkgGtk::activate_help), this); gtk_widget_add_accelerator( help_help, "activate", accel_g, 'h', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); GtkMenu *help_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(help_menu), help_help); GtkWidget *help = gtk_menu_item_new_with_mnemonic("_Help"); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), help); gtk_menu_item_set_submenu(GTK_MENU_ITEM(help), GTK_WIDGET(help_menu)); // Toolbar GtkToolbar *tools = (GtkToolbar *) g_object_new(GTK_TYPE_TOOLBAR, NULL); GtkWidget *tools_distribute = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/wpkg_distribute.png"); gtk_container_add( GTK_CONTAINER(tools_distribute), gtk_image_new_from_file( fname)); g_signal_connect(tools_distribute, "clicked", G_CALLBACK(WPkgGtk::activate_distribute), this); g_object_set( tools_distribute, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_distribute, "Distribute", ""); GtkWidget *tools_zoom_in = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_zoom_in.png"); gtk_container_add( GTK_CONTAINER(tools_zoom_in), gtk_image_new_from_file( fname)); g_signal_connect(tools_zoom_in, "clicked", G_CALLBACK(WPkgGtk::activate_zoom_in), this); g_object_set( tools_zoom_in, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_zoom_in, "Zoom in", ""); GtkWidget *tools_zoom_out = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_zoom_out.png"); gtk_container_add( GTK_CONTAINER(tools_zoom_out), gtk_image_new_from_file( fname)); g_signal_connect(tools_zoom_out, "clicked", G_CALLBACK(WPkgGtk::activate_zoom_out), this); g_object_set( tools_zoom_out, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_zoom_out, "Zoom out", ""); GtkWidget *tools_zoom_reset = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_zoom_reset.png"); gtk_container_add( GTK_CONTAINER(tools_zoom_reset), gtk_image_new_from_file( fname)); g_signal_connect(tools_zoom_reset, "clicked", G_CALLBACK(WPkgGtk::activate_zoom_reset), this); g_object_set( tools_zoom_reset, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_zoom_reset, "Zoom reset", ""); GtkWidget *vbox = gtk_vbox_new( FALSE, 0); utility = ((WUtility *)parent_ctx)->utype; wpkgnav = new WPkgNavGtk( (void *)this, vbox, "Packages", utility, &brow_widget, &sts); ((WPkgNav *)wpkgnav)->message_cb = message_cb; ((WPkgNav *)wpkgnav)->set_clock_cursor_cb = set_clock_cursor_cb; ((WPkgNav *)wpkgnav)->reset_cursor_cb = reset_cursor_cb; GtkWidget *statusbar = gtk_hbox_new( FALSE, 0); msg_label = gtk_label_new( ""); gtk_box_pack_start( GTK_BOX(statusbar), msg_label, FALSE, FALSE, 20); gtk_widget_show_all( statusbar); gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(menu_bar), FALSE, FALSE, 0); gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(tools), FALSE, FALSE, 0); gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(brow_widget), TRUE, TRUE, 0); gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(statusbar), FALSE, FALSE, 3); gtk_container_add( GTK_CONTAINER(toplevel), vbox); gtk_widget_show_all( toplevel); wow = new CoWowGtk( toplevel); if ( utility == wb_eUtility_Wtt) { ((Wtt *)parent_ctx)->register_utility( (void *) this, wb_eUtility_Distributor); } }
RtTraceGtk::RtTraceGtk( void *tr_parent_ctx, GtkWidget *tr_parent_wid, pwr_tObjid tr_objid, pwr_tStatus *status) : RtTrace( tr_parent_ctx, tr_objid, status), parent_wid(tr_parent_wid), toplevel(0), nav_shell(0) { const int window_width = 900; const int window_height = 800; const int nav_width = 180; pwr_tStatus sts; pwr_tObjid window_objid; pwr_tClassId cid; char title[220]; pwr_tOName hostname; pwr_tOName plcconnect; pwr_tFileName fname; sts = gdh_ObjidToName( tr_objid, name, sizeof(name), cdh_mNName); if (EVEN(sts)) { *status = sts; return; } strcpy( title, "Trace "); strcat( title, name); /* Find plcwindow */ sts = gdh_GetObjectClass( tr_objid, &cid); if ( EVEN(sts)) { *status = sts; return; } if ( !(cid == pwr_cClass_windowplc || cid == pwr_cClass_windowcond || cid == pwr_cClass_windoworderact || cid == pwr_cClass_windowsubstep )) { sts = gdh_GetChild( tr_objid, &window_objid); if ( EVEN(sts)) { *status = sts; return; } } else window_objid = tr_objid; sts = gdh_GetObjectClass( window_objid, &cid); if ( EVEN(sts)) { *status = sts; return; } if ( !(cid == pwr_cClass_windowplc || cid == pwr_cClass_windowcond || cid == pwr_cClass_windoworderact || cid == pwr_cClass_windowsubstep )) { *status = 0; return; } sts = get_filename( window_objid, filename, &m_has_host, hostname, plcconnect); if ( EVEN(sts)) { *status = sts; return; } /* Create object context */ objid = window_objid; if ( m_has_host) { strcpy( m_hostname, hostname); strcpy( m_plcconnect, plcconnect); } char *titleutf8 = g_convert( title, -1, "UTF-8", "ISO8859-1", NULL, NULL, NULL); // Gtk toplevel = (GtkWidget *) g_object_new( GTK_TYPE_WINDOW, "default-height", window_height, "default-width", window_width, "title", titleutf8, NULL); g_free( titleutf8); g_signal_connect( toplevel, "delete_event", G_CALLBACK(delete_event), this); g_signal_connect( toplevel, "destroy", G_CALLBACK(destroy_event), this); CoWowGtk::SetWindowIcon( toplevel); GtkAccelGroup *accel_g = (GtkAccelGroup *) g_object_new(GTK_TYPE_ACCEL_GROUP, NULL); gtk_window_add_accel_group(GTK_WINDOW(toplevel), accel_g); GtkMenuBar *menu_bar = (GtkMenuBar *) g_object_new(GTK_TYPE_MENU_BAR, NULL); // File Entry // Submenu Print GtkWidget *file_print = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Print")); g_signal_connect( file_print, "activate", G_CALLBACK(activate_print), this); GtkWidget *file_print_select = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("Print _Selected Documents")); g_signal_connect( file_print_select, "activate", G_CALLBACK(activate_printselect), this); GtkWidget *file_savetrace = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("Save _Trace")); g_signal_connect( file_savetrace, "activate", G_CALLBACK(activate_savetrace), this); GtkWidget *file_restoretrace = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Restore Trace")); g_signal_connect( file_restoretrace, "activate", G_CALLBACK(activate_restoretrace), this); GtkWidget *file_cleartrace = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("C_lear Trace")); g_signal_connect( file_cleartrace, "activate", G_CALLBACK(activate_cleartrace), this); GtkWidget *file_close = gtk_image_menu_item_new_from_stock(GTK_STOCK_CLOSE, accel_g); g_signal_connect(file_close, "activate", G_CALLBACK(activate_close), this); GtkMenu *file_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_print); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_print_select); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_savetrace); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_restoretrace); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_cleartrace); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_close); GtkWidget *file = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_File")); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), file); gtk_menu_item_set_submenu(GTK_MENU_ITEM(file), GTK_WIDGET(file_menu)); // Functions Entry GtkWidget *functions_open_object = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Open Object")); g_signal_connect( functions_open_object, "activate", G_CALLBACK(activate_open_object), this); gtk_widget_add_accelerator( functions_open_object, "activate", accel_g, 'a', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkWidget *functions_open_subwindow = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("Open S_ubwindow")); g_signal_connect( functions_open_subwindow, "activate", G_CALLBACK(activate_open_subwindow), this); gtk_widget_add_accelerator( functions_open_subwindow, "activate", accel_g, 'l', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkWidget *functions_display_object = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Display object in Navigator")); g_signal_connect( functions_display_object, "activate", G_CALLBACK(activate_display_object), this); gtk_widget_add_accelerator( functions_display_object, "activate", accel_g, 'd', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkWidget *functions_show_cross = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Show Crossreferences")); g_signal_connect( functions_show_cross, "activate", G_CALLBACK(activate_show_cross), this); gtk_widget_add_accelerator( functions_show_cross, "activate", accel_g, 'r', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkWidget *functions_open_classgraph = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Open ObjectGraph")); g_signal_connect( functions_open_classgraph, "activate", G_CALLBACK(activate_open_classgraph), this); gtk_widget_add_accelerator( functions_open_classgraph, "activate", accel_g, 'g', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkWidget *functions_collect_insert = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Collect Insert")); g_signal_connect( functions_collect_insert, "activate", G_CALLBACK(activate_collect_insert), this); gtk_widget_add_accelerator( functions_collect_insert, "activate", accel_g, 'v', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkMenu *functions_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(functions_menu), functions_open_object); gtk_menu_shell_append(GTK_MENU_SHELL(functions_menu), functions_open_subwindow); gtk_menu_shell_append(GTK_MENU_SHELL(functions_menu), functions_display_object); gtk_menu_shell_append(GTK_MENU_SHELL(functions_menu), functions_show_cross); gtk_menu_shell_append(GTK_MENU_SHELL(functions_menu), functions_open_classgraph); gtk_menu_shell_append(GTK_MENU_SHELL(functions_menu), functions_collect_insert); GtkWidget *functions = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Functions")); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), functions); gtk_menu_item_set_submenu(GTK_MENU_ITEM(functions), GTK_WIDGET(functions_menu)); // View Entry GtkWidget *view_zoom_in = gtk_image_menu_item_new_from_stock(GTK_STOCK_ZOOM_IN, NULL); g_signal_connect( view_zoom_in, "activate", G_CALLBACK(activate_zoomin), this); gtk_widget_add_accelerator( view_zoom_in, "activate", accel_g, 'i', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkWidget *view_zoom_out = gtk_image_menu_item_new_from_stock(GTK_STOCK_ZOOM_OUT, NULL); g_signal_connect( view_zoom_out, "activate", G_CALLBACK(activate_zoomout), this); gtk_widget_add_accelerator( view_zoom_out, "activate", accel_g, 'o', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkWidget *view_zoom_reset = gtk_image_menu_item_new_from_stock(GTK_STOCK_ZOOM_100, NULL); g_signal_connect( view_zoom_reset, "activate", G_CALLBACK(activate_zoomreset), this); gtk_widget_add_accelerator( view_zoom_reset, "activate", accel_g, 'b', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); // Submenu ScanTime GSList *view_sc_group = NULL; GtkWidget *view_scantime1 = gtk_radio_menu_item_new_with_mnemonic( view_sc_group, "0.50 s"); view_sc_group = gtk_radio_menu_item_get_group( GTK_RADIO_MENU_ITEM(view_scantime1)); g_signal_connect( view_scantime1, "activate", G_CALLBACK(activate_scantime1), this); GtkWidget *view_scantime2 = gtk_radio_menu_item_new_with_mnemonic( view_sc_group, "0.20 s"); view_sc_group = gtk_radio_menu_item_get_group( GTK_RADIO_MENU_ITEM(view_scantime1)); g_signal_connect( view_scantime2, "activate", G_CALLBACK(activate_scantime2), this); GtkWidget *view_scantime3 = gtk_radio_menu_item_new_with_mnemonic( view_sc_group, "0.10 s"); view_sc_group = gtk_radio_menu_item_get_group( GTK_RADIO_MENU_ITEM(view_scantime1)); g_signal_connect( view_scantime3, "activate", G_CALLBACK(activate_scantime3), this); GtkWidget *view_scantime4 = gtk_radio_menu_item_new_with_mnemonic( view_sc_group, "0.05 s"); view_sc_group = gtk_radio_menu_item_get_group( GTK_RADIO_MENU_ITEM(view_scantime1)); g_signal_connect( view_scantime4, "activate", G_CALLBACK(activate_scantime4), this); GtkWidget *view_scantime5 = gtk_radio_menu_item_new_with_mnemonic( view_sc_group, "0.02 s"); g_signal_connect( view_scantime5, "activate", G_CALLBACK(activate_scantime5), this); GtkWidget *view_sc = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_ScanTime")); GtkMenu *view_sc_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(view_sc_menu), view_scantime1); gtk_menu_shell_append(GTK_MENU_SHELL(view_sc_menu), view_scantime2); gtk_menu_shell_append(GTK_MENU_SHELL(view_sc_menu), view_scantime3); gtk_menu_shell_append(GTK_MENU_SHELL(view_sc_menu), view_scantime4); gtk_menu_shell_append(GTK_MENU_SHELL(view_sc_menu), view_scantime5); gtk_menu_item_set_submenu(GTK_MENU_ITEM(view_sc), GTK_WIDGET(view_sc_menu)); GtkMenu *view_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_in); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_out); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_reset); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_sc); GtkWidget *view = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_View")); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), view); gtk_menu_item_set_submenu(GTK_MENU_ITEM(view), GTK_WIDGET(view_menu)); // Mode entry GSList *mode_group = NULL; GtkWidget *mode_view = gtk_radio_menu_item_new_with_mnemonic( mode_group, CoWowGtk::translate_utf8("V_iew")); mode_group = gtk_radio_menu_item_get_group( GTK_RADIO_MENU_ITEM(mode_view)); g_signal_connect( mode_view, "activate", G_CALLBACK(activate_view), this); GtkWidget *mode_trace = gtk_radio_menu_item_new_with_mnemonic( mode_group, CoWowGtk::translate_utf8("_Trace")); mode_group = gtk_radio_menu_item_get_group( GTK_RADIO_MENU_ITEM(mode_trace)); g_signal_connect( mode_trace, "activate", G_CALLBACK(activate_trace), this); GtkWidget *mode_simulate = gtk_radio_menu_item_new_with_mnemonic( mode_group, CoWowGtk::translate_utf8("_Simulate")); gtk_widget_add_accelerator( mode_simulate, "activate", accel_g, 's', GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK), GTK_ACCEL_VISIBLE); g_signal_connect( mode_simulate, "activate", G_CALLBACK(activate_simulate), this); GtkMenu *mode_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(mode_menu), mode_view); gtk_menu_shell_append(GTK_MENU_SHELL(mode_menu), mode_trace); gtk_menu_shell_append(GTK_MENU_SHELL(mode_menu), mode_simulate); GtkWidget *mode = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Mode")); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), mode); gtk_menu_item_set_submenu(GTK_MENU_ITEM(mode), GTK_WIDGET(mode_menu)); // Menu Help GtkWidget *help_help = gtk_image_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("On _Trace")); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(help_help), gtk_image_new_from_stock( "gtk-help", GTK_ICON_SIZE_MENU)); g_signal_connect(help_help, "activate", G_CALLBACK(activate_help), this); gtk_widget_add_accelerator( help_help, "activate", accel_g, 'h', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); GtkWidget *help_plcpgm = gtk_check_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("On _PlcPgm")); g_signal_connect( help_plcpgm, "activate", G_CALLBACK(activate_helpplc), this); GtkMenu *help_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(help_menu), help_help); gtk_menu_shell_append(GTK_MENU_SHELL(help_menu), help_plcpgm); GtkWidget *help = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Help")); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), help); gtk_menu_item_set_submenu(GTK_MENU_ITEM(help), GTK_WIDGET(help_menu)); // Toolbar GtkToolbar *tools = (GtkToolbar *) g_object_new(GTK_TYPE_TOOLBAR, NULL); GtkWidget *tools_display_object = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_navigator.png"); gtk_container_add( GTK_CONTAINER(tools_display_object), gtk_image_new_from_file( fname)); g_signal_connect(tools_display_object, "clicked", G_CALLBACK(activate_display_object), this); gtk_toolbar_append_widget( tools, tools_display_object, "Display object in Navigator", ""); GtkWidget *tools_show_cross = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_crossref.png"); gtk_container_add( GTK_CONTAINER(tools_show_cross), gtk_image_new_from_file( fname)); g_signal_connect(tools_show_cross, "clicked", G_CALLBACK(activate_show_cross), this); gtk_toolbar_append_widget( tools, tools_show_cross, "Show Crossreferences", ""); GtkWidget *tools_zoom_in = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_zoom_in.png"); gtk_container_add( GTK_CONTAINER(tools_zoom_in), gtk_image_new_from_file( fname)); g_signal_connect(tools_zoom_in, "clicked", G_CALLBACK(activate_zoomin), this); gtk_toolbar_append_widget( tools, tools_zoom_in, "Zoom in", ""); GtkWidget *tools_zoom_out = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_zoom_out.png"); gtk_container_add( GTK_CONTAINER(tools_zoom_out), gtk_image_new_from_file( fname)); g_signal_connect(tools_zoom_out, "clicked", G_CALLBACK(activate_zoomout), this); gtk_toolbar_append_widget( tools, tools_zoom_out, "Zoom out", ""); GtkWidget *tools_zoom_reset = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_zoom_reset.png"); gtk_container_add( GTK_CONTAINER(tools_zoom_reset), gtk_image_new_from_file( fname)); g_signal_connect(tools_zoom_reset, "clicked", G_CALLBACK(activate_zoomreset), this); gtk_toolbar_append_widget( tools, tools_zoom_reset, "Zoom reset", ""); // Flow widget GtkWidget *flow_scrolled = scrolledflowwidgetgtk_new( init_flow, this, &flow_widget); gtk_widget_show_all(flow_widget); nav_widget = flownavwidgetgtk_new( flow_widget); GtkWidget *paned = gtk_hpaned_new(); gtk_paned_pack1( GTK_PANED(paned), flow_scrolled, TRUE, TRUE); gtk_paned_pack2( GTK_PANED(paned), nav_widget, FALSE, TRUE); GtkWidget *vbox = gtk_vbox_new( FALSE, 0); gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(menu_bar), FALSE, FALSE, 0); gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(tools), FALSE, FALSE, 0); gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(paned), TRUE, TRUE, 0); gtk_container_add( GTK_CONTAINER(toplevel), vbox); gtk_widget_show_all( toplevel); gtk_paned_set_position( GTK_PANED(paned), window_width - nav_width); #if 0 // Navigator window nav_shell = (GtkWidget *) g_object_new( GTK_TYPE_WINDOW, "default-height", 200, "default-width", 200, "title", "Navigator", NULL); g_signal_connect( nav_shell, "delete_event", G_CALLBACK(nav_delete_event), this); nav_widget = flownavwidgetgtk_new( flow_widget); gtk_container_add( GTK_CONTAINER(nav_shell), nav_widget); gtk_widget_show_all( nav_shell); #endif wow = new CoWowGtk( toplevel); trace_timerid = wow->timer_new(); viewsetup(); flow_Open( flow_ctx, filename); gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( mode_trace), TRUE); gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( view_scantime1), TRUE); //trasetup(); //trace_start(); #if defined OS_LINUX { struct stat info; if ( stat( filename, &info) != -1) version = info.st_ctime; } #endif // Check version unsigned int flow_version; pwr_tUInt32 window_version; pwr_tAName aname; flow_GetCtxUserVersion( flow_ctx, &flow_version); strcpy( aname, name); strcat( aname, ".Version"); sts = gdh_GetObjectInfo( aname, &window_version, sizeof(window_version)); if ( EVEN(sts)) return; if ( flow_version > window_version) wow->DisplayError( "Version mismatch", "Trace file is newer than database version"); else if ( flow_version < window_version) wow->DisplayError( "Version mismatch", "Trace file is older than database version"); }
GeCurveGtk::GeCurveGtk( void *gc_parent_ctx, GtkWidget *parent_widget, char *curve_name, char *filename, GeCurveData *curve_data, int pos_right, int gc_width, int gc_height, unsigned int gc_options, int gc_color_theme, void *basewidget) : GeCurve( gc_parent_ctx, curve_name, filename, curve_data, pos_right, gc_width, gc_height, gc_options, gc_color_theme), minmax_widget(0), export_widget(0), disable_timecombo_callback(0), clock_cursor(0) { int window_width = 900; int window_height = 700; const int names_height = 150; const int nav_height = 120; pwr_tFileName fname; float height_scale = 1; int nonav = 0; if ( gc_width != 0) window_width = gc_width; if ( gc_height != 0) { height_scale = (float)gc_height / window_height; window_height = gc_height; } cdh_StrncpyCutOff( title, curve_name, sizeof(title), 1); // Gtk if ( !(options & curve_mOptions_Embedded)) { toplevel = (GtkWidget *) g_object_new( GTK_TYPE_WINDOW, "default-height", window_height, "default-width", window_width, "title", CoWowGtk::convert_utf8(title), NULL); g_signal_connect( toplevel, "delete_event", G_CALLBACK(delete_event), this); g_signal_connect( toplevel, "destroy", G_CALLBACK(destroy_event), this); g_signal_connect( toplevel, "focus-in-event", G_CALLBACK(action_inputfocus), this); CoWowGtk::SetWindowIcon( toplevel); } else { toplevel = parent_widget; } GtkAccelGroup *accel_g = (GtkAccelGroup *) g_object_new(GTK_TYPE_ACCEL_GROUP, NULL); gtk_window_add_accel_group(GTK_WINDOW(toplevel), accel_g); GtkMenuBar *menu_bar = (GtkMenuBar *) g_object_new(GTK_TYPE_MENU_BAR, NULL); // File Entry menu_add = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Add")); g_signal_connect( menu_add, "activate", G_CALLBACK(activate_madd), this); GtkWidget *file_refresh = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Refresh")); g_signal_connect( file_refresh, "activate", G_CALLBACK(activate_configure), this); gtk_widget_add_accelerator( file_refresh, "activate", accel_g, 'r', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkWidget *file_print = gtk_image_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Print")); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(file_print), gtk_image_new_from_stock( "gtk-print", GTK_ICON_SIZE_MENU)); g_signal_connect(file_print, "activate", G_CALLBACK(activate_print), this); menu_export = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Export")); g_signal_connect(menu_export, "activate", G_CALLBACK(activate_export), this); menu_new = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_New")); g_signal_connect(menu_new, "activate", G_CALLBACK(activate_new), this); menu_save = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("S_ave")); g_signal_connect(menu_save, "activate", G_CALLBACK(activate_save), this); gtk_widget_add_accelerator( menu_save, "activate", accel_g,'s', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); menu_open = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Open")); g_signal_connect(menu_open, "activate", G_CALLBACK(activate_open), this); menu_snapshot = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Snapshot")); g_signal_connect(menu_snapshot, "activate", G_CALLBACK(activate_snapshot), this); gtk_widget_add_accelerator( menu_snapshot, "activate", accel_g,'n', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkWidget *file_close = gtk_image_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Close")); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(file_close), gtk_image_new_from_stock( "gtk-close", GTK_ICON_SIZE_MENU)); g_signal_connect(file_close, "activate", G_CALLBACK(activate_exit), this); gtk_widget_add_accelerator( file_close, "activate", accel_g,'w', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkMenu *file_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), menu_add); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_refresh); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_print); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), menu_new); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), menu_open); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), menu_save); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), menu_snapshot); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), menu_export); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_close); GtkWidget *file = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_File")); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), file); gtk_menu_item_set_submenu(GTK_MENU_ITEM(file), GTK_WIDGET(file_menu)); // View menu GtkWidget *view_zoom_in = gtk_image_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("Zoom _In")); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(view_zoom_in), gtk_image_new_from_stock( "gtk-zoom-in", GTK_ICON_SIZE_MENU)); g_signal_connect(view_zoom_in, "activate", G_CALLBACK(activate_zoomin), this); gtk_widget_add_accelerator( view_zoom_in, "activate", accel_g, 'i', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); GtkWidget *view_zoom_out = gtk_image_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("Zoom _Out")); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(view_zoom_out), gtk_image_new_from_stock( "gtk-zoom-out", GTK_ICON_SIZE_MENU)); g_signal_connect(view_zoom_out, "activate", G_CALLBACK(activate_zoomout), this); gtk_widget_add_accelerator( view_zoom_out, "activate", accel_g, 'o', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); GtkWidget *view_zoom_reset = gtk_image_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("Zoom _Reset")); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(view_zoom_reset), gtk_image_new_from_stock( "gtk-zoom-100", GTK_ICON_SIZE_MENU)); g_signal_connect(view_zoom_reset, "activate", G_CALLBACK(activate_zoomreset), this); GtkWidget *view_background = gtk_check_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Background Color")); g_signal_connect( view_background, "activate", G_CALLBACK(activate_background), this); GtkWidget *view_showname = gtk_check_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Show Names")); g_signal_connect( view_showname, "activate", G_CALLBACK(activate_showname), this); gtk_widget_add_accelerator( view_showname, "activate", accel_g, 'w', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkWidget *view_filledcurves = gtk_check_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Filled Curves")); g_signal_connect( view_filledcurves, "activate", G_CALLBACK(activate_filledcurves), this); GtkWidget *view_xlimits = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_X-Axis Limits")); g_signal_connect( view_xlimits, "activate", G_CALLBACK(activate_xlimits), this); GtkMenu *view_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_in); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_out); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_reset); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_background); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_showname); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_filledcurves); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_xlimits); GtkWidget *view = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_View")); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), view); gtk_menu_item_set_submenu(GTK_MENU_ITEM(view), GTK_WIDGET(view_menu)); // Menu Help GtkWidget *help_help = gtk_image_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Help")); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(help_help), gtk_image_new_from_stock( "gtk-help", GTK_ICON_SIZE_MENU)); g_signal_connect(help_help, "activate", G_CALLBACK(activate_help), this); gtk_widget_add_accelerator( help_help, "activate", accel_g, 'h', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); GtkMenu *help_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(help_menu), help_help); GtkWidget *help = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Help")); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), help); gtk_menu_item_set_submenu(GTK_MENU_ITEM(help), GTK_WIDGET(help_menu)); // Toolbar GtkToolbar *tools = (GtkToolbar *) g_object_new(GTK_TYPE_TOOLBAR, NULL); GtkWidget *tools_zoom_in = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_zoom_in.png"); gtk_container_add( GTK_CONTAINER(tools_zoom_in), gtk_image_new_from_file( fname)); g_signal_connect(tools_zoom_in, "clicked", G_CALLBACK(activate_zoomin), this); g_object_set( tools_zoom_in, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_zoom_in, CoWowGtk::translate_utf8("Zoom in"), ""); GtkWidget *tools_zoom_out = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_zoom_out.png"); gtk_container_add( GTK_CONTAINER(tools_zoom_out), gtk_image_new_from_file( fname)); g_signal_connect(tools_zoom_out, "clicked", G_CALLBACK(activate_zoomout), this); g_object_set( tools_zoom_out, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_zoom_out, CoWowGtk::translate_utf8("Zoom out"), ""); GtkWidget *tools_zoom_reset = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_zoom_reset.png"); gtk_container_add( GTK_CONTAINER(tools_zoom_reset), gtk_image_new_from_file( fname)); g_signal_connect(tools_zoom_reset, "clicked", G_CALLBACK(activate_zoomreset), this); g_object_set( tools_zoom_reset, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_zoom_reset, CoWowGtk::translate_utf8("Zoom reset"), ""); GtkWidget *tools_page_left = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/ge_page_left.png"); gtk_container_add( GTK_CONTAINER(tools_page_left), gtk_image_new_from_file( fname)); g_signal_connect(tools_page_left, "clicked", G_CALLBACK(activate_page_left), this); g_object_set( tools_page_left, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_page_left, CoWowGtk::translate_utf8("Page left"), ""); GtkWidget *tools_scroll_left = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/ge_scroll_left.png"); gtk_container_add( GTK_CONTAINER(tools_scroll_left), gtk_image_new_from_file( fname)); g_signal_connect(tools_scroll_left, "clicked", G_CALLBACK(activate_scroll_left), this); g_object_set( tools_scroll_left, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_scroll_left, CoWowGtk::translate_utf8("Scroll left"), ""); GtkWidget *tools_scroll_right = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/ge_scroll_right.png"); gtk_container_add( GTK_CONTAINER(tools_scroll_right), gtk_image_new_from_file( fname)); g_signal_connect(tools_scroll_right, "clicked", G_CALLBACK(activate_scroll_right), this); g_object_set( tools_scroll_right, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_scroll_right, CoWowGtk::translate_utf8("Scroll right"), ""); GtkWidget *tools_page_right = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/ge_page_right.png"); gtk_container_add( GTK_CONTAINER(tools_page_right), gtk_image_new_from_file( fname)); g_signal_connect(tools_page_right, "clicked", G_CALLBACK(activate_page_right), this); g_object_set( tools_page_right, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_page_right, CoWowGtk::translate_utf8("Page right"), ""); tools_snapshot = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_snapshot.png"); gtk_container_add( GTK_CONTAINER(tools_snapshot), gtk_image_new_from_file( fname)); g_signal_connect(tools_snapshot, "clicked", G_CALLBACK(activate_snapshot), this); g_object_set( tools_snapshot, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_snapshot, CoWowGtk::translate_utf8("Snapshot"), ""); tools_add = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_add.png"); gtk_container_add( GTK_CONTAINER(tools_add), gtk_image_new_from_file( fname)); g_signal_connect(tools_add, "clicked", G_CALLBACK(activate_add), this); g_object_set( tools_add, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_add, CoWowGtk::translate_utf8("Add"), ""); // Time box GtkToolbar *timetools = (GtkToolbar *) g_object_new(GTK_TYPE_TOOLBAR, NULL); GtkWidget *sea_time_start_label = gtk_label_new( CoWowGtk::translate_utf8("Time")); gtk_widget_set_size_request( sea_time_start_label, 70, -1); gtk_misc_set_alignment( GTK_MISC(sea_time_start_label), 0.0, 0.5); gtk_toolbar_append_widget( timetools, sea_time_start_label, "", ""); // Time option menu timebox_timecombo = gtk_combo_box_new_text(); for ( int i = 0; curve_timecombo_text[i].text[0]; i++) gtk_combo_box_append_text( GTK_COMBO_BOX(timebox_timecombo), CoWowGtk::translate_utf8(curve_timecombo_text[i].text)); g_signal_connect(timebox_timecombo, "changed", G_CALLBACK(activate_timecombo), this); gtk_toolbar_append_widget( timetools, timebox_timecombo, 0, ""); timebox_start_time = gtk_entry_new(); gtk_widget_set_size_request( timebox_start_time, 160, -1); gtk_toolbar_append_widget( timetools, timebox_start_time, "", ""); GtkWidget *sea_time_stop_label = gtk_label_new( CoWowGtk::translate_utf8("-")); gtk_widget_set_size_request( sea_time_stop_label, 20, -1); gtk_toolbar_append_widget( timetools, sea_time_stop_label, "", ""); timebox_stop_time = gtk_entry_new(); gtk_widget_set_size_request( timebox_stop_time, 160, -1); gtk_toolbar_append_widget( timetools, timebox_stop_time, "", ""); GtkWidget *timebox_prev_period = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/ge_scroll_left.png"); gtk_container_add( GTK_CONTAINER(timebox_prev_period), gtk_image_new_from_file( fname)); g_signal_connect(timebox_prev_period, "clicked", G_CALLBACK(activate_prev_period), this); g_object_set( timebox_prev_period, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( timetools, timebox_prev_period, CoWowGtk::translate_utf8("Previous period"), ""); GtkWidget *timebox_next_period = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/ge_scroll_right.png"); gtk_container_add( GTK_CONTAINER(timebox_next_period), gtk_image_new_from_file( fname)); g_signal_connect(timebox_next_period, "clicked", G_CALLBACK(activate_next_period), this); g_object_set( timebox_next_period, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( timetools, timebox_next_period, CoWowGtk::translate_utf8("Next period"), ""); GtkWidget *timebox_increase_period = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_up.png"); gtk_container_add( GTK_CONTAINER(timebox_increase_period), gtk_image_new_from_file( fname)); g_signal_connect(timebox_increase_period, "clicked", G_CALLBACK(activate_increase_period), this); g_object_set( timebox_increase_period, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( timetools, timebox_increase_period, CoWowGtk::translate_utf8("Increase period"), ""); GtkWidget *timebox_decrease_period = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_down.png"); gtk_container_add( GTK_CONTAINER(timebox_decrease_period), gtk_image_new_from_file( fname)); g_signal_connect(timebox_decrease_period, "clicked", G_CALLBACK(activate_decrease_period), this); g_object_set( timebox_decrease_period, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( timetools, timebox_decrease_period, CoWowGtk::translate_utf8("Decrease period"), ""); GtkWidget *timebox_reload = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/ge_reload.png"); gtk_container_add( GTK_CONTAINER(timebox_reload), gtk_image_new_from_file( fname)); g_signal_connect(timebox_reload, "clicked", G_CALLBACK(activate_reload), this); g_object_set( timebox_reload, "can-focus", FALSE, NULL); // gtk_toolbar_append_widget( timetools, timebox_reload, CoWowGtk::translate_utf8("Update"), ""); GtkWidget *timebox_add = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_add.png"); gtk_container_add( GTK_CONTAINER(timebox_add), gtk_image_new_from_file( fname)); g_signal_connect(timebox_add, "clicked", G_CALLBACK(activate_add), this); g_object_set( timebox_add, "can-focus", FALSE, NULL); // gtk_toolbar_append_widget( timetools, timebox_add, CoWowGtk::translate_utf8("Add curve item"), ""); GtkWidget *timebox_remove = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_remove.png"); gtk_container_add( GTK_CONTAINER(timebox_remove), gtk_image_new_from_file( fname)); g_signal_connect(timebox_remove, "clicked", G_CALLBACK(activate_remove), this); g_object_set( timebox_remove, "can-focus", FALSE, NULL); // gtk_toolbar_append_widget( timetools, timebox_remove, CoWowGtk::translate_utf8("Remove selected curve"), ""); GtkToolbar *curvebuttonbox = (GtkToolbar *) g_object_new(GTK_TYPE_TOOLBAR, NULL); //GtkWidget *curvebuttonbox = gtk_hbox_new( FALSE, 0); gtk_toolbar_append_widget( curvebuttonbox, timebox_reload, CoWowGtk::translate_utf8("Update curve"), ""); gtk_toolbar_append_widget( curvebuttonbox, timebox_add, CoWowGtk::translate_utf8("Add curve item"), ""); sea_timebox = gtk_hbox_new( FALSE, 0); // gtk_box_pack_start( GTK_BOX(sea_timebox), sea_time_start_label, FALSE, FALSE, 0); // gtk_box_pack_start( GTK_BOX(sea_timebox), timebox_timecombo, FALSE, FALSE, 10); // gtk_box_pack_start( GTK_BOX(sea_timebox), timebox_start_time, FALSE, FALSE, 0); // gtk_box_pack_start( GTK_BOX(sea_timebox), sea_time_stop_label, FALSE, FALSE, 0); // gtk_box_pack_start( GTK_BOX(sea_timebox), timebox_stop_time, FALSE, FALSE, 0); gtk_box_pack_start( GTK_BOX(sea_timebox), GTK_WIDGET(timetools), FALSE, FALSE, 0); gtk_box_pack_start( GTK_BOX(sea_timebox), gtk_hseparator_new(), FALSE, FALSE, 10); gtk_box_pack_start( GTK_BOX(sea_timebox), GTK_WIDGET(curvebuttonbox), FALSE, FALSE, 0); GtkWidget *w; grownames_main_widget = scrolledgrowwidgetgtk_new( init_grownames_cb, this, &w); if ( nonav) growcurve_main_widget = scrolledcurvewidgetgtk_new( init_growcurve_cb, this, &w); else growcurve_main_widget = curvewidgetgtk_new( init_growcurve_cb, this); growaxis_main_widget = growwidgetgtk_new( init_growaxis_cb, this); if (!nonav) nav_widget = curvenavwidgetgtk_new( growcurve_main_widget); GtkWidget *hbox = gtk_hbox_new( FALSE, 0); gtk_box_pack_start( GTK_BOX(hbox), growaxis_main_widget, FALSE, FALSE, 0); gtk_box_pack_start( GTK_BOX(hbox), growcurve_main_widget, TRUE, TRUE, 0); gtk_widget_show_all( hbox); GtkWidget *vpaned1 = gtk_vpaned_new(); GtkWidget *vpaned2 = gtk_vpaned_new(); gtk_paned_add1( GTK_PANED(vpaned1), grownames_main_widget); gtk_paned_add2( GTK_PANED(vpaned1), vpaned2); gtk_widget_show_all( vpaned1); gtk_paned_pack1( GTK_PANED(vpaned2), hbox, TRUE, TRUE); if ( !nonav) gtk_paned_pack2( GTK_PANED(vpaned2), nav_widget, FALSE, TRUE); gtk_widget_show_all( vpaned2); GtkWidget *tools_box = gtk_hbox_new( FALSE, 0); gtk_box_pack_start( GTK_BOX(tools_box), GTK_WIDGET(tools), FALSE, FALSE, 0); // gtk_box_pack_start( GTK_BOX(tools_box), GTK_WIDGET(sea_timebox), FALSE, FALSE, 0); vbox = gtk_vbox_new( FALSE, 0); gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(menu_bar), FALSE, FALSE, 0); gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(tools_box), FALSE, FALSE, 0); gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(sea_timebox), FALSE, FALSE, 0); gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(vpaned1), TRUE, TRUE, 0); if ( !(options & curve_mOptions_Embedded)) { gtk_container_add( GTK_CONTAINER(toplevel), vbox); gtk_widget_show_all( toplevel); } else gtk_widget_set_size_request( vbox, window_width, window_height); gtk_paned_set_position( GTK_PANED(vpaned1), names_height * height_scale); gtk_paned_set_position( GTK_PANED(vpaned2), (window_height - names_height - nav_height - 50) * height_scale); g_object_set( sea_timebox, "visible", FALSE, NULL); g_object_set( menu_new, "visible", FALSE, NULL); g_object_set( menu_save, "visible", FALSE, NULL); g_object_set( menu_open, "visible", FALSE, NULL); g_object_set( menu_snapshot, "visible", FALSE, NULL); g_object_set( menu_export, "visible", FALSE, NULL); g_object_set( tools_snapshot, "visible", FALSE, NULL); g_object_set( tools_add, "visible", FALSE, NULL); wow = new CoWowGtk( toplevel); gtk_combo_box_set_active( GTK_COMBO_BOX(timebox_timecombo), 2); if ( !(options & curve_mOptions_Embedded)) { if ( options & curve_mOptions_FullScreen) gtk_window_fullscreen( GTK_WINDOW(toplevel)); else if ( options & curve_mOptions_Maximize) gtk_window_maximize( GTK_WINDOW(toplevel)); // TODO else if ( options & curve_mOptions_FullMaximize) gtk_window_maximize( GTK_WINDOW(toplevel)); else if ( options & curve_mOptions_Iconify) gtk_window_iconify( GTK_WINDOW(toplevel)); else if ( options & curve_mOptions_Invisible) g_object_set( toplevel, "visible", FALSE, NULL); if ( basewidget) gtk_window_set_transient_for(GTK_WINDOW(toplevel), GTK_WINDOW(basewidget)); } }
void init_main_win( void ) { GtkAttachOptions xOpt, yOpt; gMapWin = gtk_window_new( GTK_WINDOW_TOPLEVEL ); if( gMapWin == NULL ){ print_msg( FLG_MSG_ERR, "gtk_window_new()" ); exit_game( EXIT_FAILURE ); } GtkWidget *vBox = gtk_vbox_new( FALSE, 0 ); gtk_container_add( GTK_CONTAINER( gMapWin ), vBox ); gtk_widget_show( vBox ); // メイン・ウィンドウへのイベント・ハンドラを設定 gtk_signal_connect( GTK_OBJECT( gMapWin ), "delete_event", GTK_SIGNAL_FUNC( handle_delete ), NULL ); gtk_signal_connect( GTK_OBJECT( gMapWin ), "destroy", GTK_SIGNAL_FUNC( handle_destroy ), NULL ); gtk_signal_connect( GTK_OBJECT( gMapWin ), "key-press-event", GTK_SIGNAL_FUNC( handleKeyPress ), NULL ); // ツール・バーを作成 GtkWidget *handleBox = gtk_handle_box_new(); gtk_box_pack_start( GTK_BOX( vBox ), handleBox, FALSE, FALSE, 0 ); gtk_widget_show( handleBox ); GtkWidget *toolBar = gtk_toolbar_new(); gtk_toolbar_set_orientation( GTK_TOOLBAR( toolBar ), GTK_ORIENTATION_HORIZONTAL ); gtk_toolbar_set_style( GTK_TOOLBAR( toolBar ), GTK_TOOLBAR_ICONS ); gtk_widget_show( toolBar ); gtk_container_add( GTK_CONTAINER( handleBox ), toolBar ); // ツール・バーのボタンを作成 btnMapExec = gtk_button_new_with_label( MSG_GUI_MAP_EXEC ); gMapButtonContExec = gtk_button_new_with_label( MSG_GUI_MAP_CONT_EXEC_OFF ); #if FLAG_BTN_MAP_LABEL_IS_NAME btnMapAutoMark = gtk_button_new_with_label( MSG_GUI_MAP_AUTO_MARK ); btnMapUserMenu = gtk_button_new_with_label( MSG_GUI_MAP_USER_MENU ); btnMapSpell = gtk_button_new_with_label( MSG_GUI_MAP_SPELL ); btnMapSquare = gtk_button_new_with_label( MSG_GUI_MAP_SQUARE ); #else btnMapAutoMark = gtk_button_new_with_label( " / " ); btnMapUserMenu = gtk_button_new_with_label( " * " ); btnMapSpell = gtk_button_new_with_label( " - " ); btnMapSquare = gtk_button_new_with_label( " + " ); #endif btnMapCancel = gtk_button_new_with_label( MSG_GUI_MAP_CANCEL ); btnMapOk = gtk_button_new_with_label( MSG_GUI_MAP_OK ); gtk_toolbar_append_widget( GTK_TOOLBAR( toolBar ), btnMapExec, MSG_GUI_MAP_TOOL_TIP_EXEC, NULL ); gtk_toolbar_append_widget( GTK_TOOLBAR( toolBar ), gMapButtonContExec, MSG_GUI_MAP_TOOL_TIP_CONT_EXEC, NULL ); gtk_toolbar_append_widget( GTK_TOOLBAR( toolBar ), btnMapAutoMark, MSG_GUI_MAP_TOOL_TIP_AUTO_MARK, NULL ); gtk_toolbar_append_widget( GTK_TOOLBAR( toolBar ), btnMapUserMenu, MSG_GUI_MAP_TOOL_TIP_USER_MENU, NULL ); gtk_toolbar_append_widget( GTK_TOOLBAR( toolBar ), btnMapSpell, MSG_GUI_MAP_TOOL_TIP_SPELL, NULL ); gtk_toolbar_append_widget( GTK_TOOLBAR( toolBar ), btnMapSquare, MSG_GUI_MAP_TOOL_TIP_SQUARE, NULL ); gtk_toolbar_append_widget( GTK_TOOLBAR( toolBar ), btnMapCancel, MSG_GUI_MAP_TOOL_TIP_CANCEL, NULL ); gtk_toolbar_append_widget( GTK_TOOLBAR( toolBar ), btnMapOk, MSG_GUI_MAP_TOOL_TIP_OK, NULL ); gtk_widget_show( btnMapExec ); gtk_widget_show( gMapButtonContExec ); gtk_widget_show( btnMapAutoMark ); gtk_widget_show( btnMapUserMenu ); gtk_widget_show( btnMapSpell ); gtk_widget_show( btnMapSquare ); gtk_widget_show( btnMapCancel ); gtk_widget_show( btnMapOk ); // ツール・バーへのイベント・ハンドラを設定 gtk_signal_connect( GTK_OBJECT( btnMapExec ), "clicked", GTK_SIGNAL_FUNC( handle_exec_clicked ), NULL ); gtk_signal_connect( GTK_OBJECT( gMapButtonContExec ), "clicked", GTK_SIGNAL_FUNC( handle_cont_exec_clicked ), NULL ); gtk_signal_connect( GTK_OBJECT( btnMapAutoMark ), "clicked", GTK_SIGNAL_FUNC( handle_auto_mark_clicked ), NULL ); gtk_signal_connect( GTK_OBJECT( btnMapUserMenu ), "clicked", GTK_SIGNAL_FUNC( handle_user_menu_clicked ), NULL ); gtk_signal_connect( GTK_OBJECT( btnMapSpell ), "clicked", GTK_SIGNAL_FUNC( handle_spell_clicked ), NULL ); gtk_signal_connect( GTK_OBJECT( btnMapSquare ), "clicked", GTK_SIGNAL_FUNC( handle_square_clicked ), NULL ); gtk_signal_connect( GTK_OBJECT( btnMapCancel ), "clicked", GTK_SIGNAL_FUNC( handle_cancel_clicked ), NULL ); gtk_signal_connect( GTK_OBJECT( btnMapOk ), "clicked", GTK_SIGNAL_FUNC( handle_ok_clicked ), NULL ); // 描画エリアを作成 GtkWidget *pTab = gtk_table_new( 2, 2, FALSE ); gtk_box_pack_start( GTK_BOX( vBox ), pTab, TRUE, TRUE, 0 ); gtk_widget_show( pTab ); gMapDrawingArea = gtk_drawing_area_new(); if( gMapDrawingArea == NULL ){ print_msg( FLG_MSG_ERR, "gtk_drawing_area_new()" ); exit_game( EXIT_FAILURE ); } gtk_drawing_area_size( GTK_DRAWING_AREA( gMapDrawingArea ), MAP_WIN_INIT_WIDTH(), MAP_WIN_INIT_HEIGHT() ); xOpt = (GtkAttachOptions)(GTK_EXPAND | GTK_SHRINK | GTK_FILL); yOpt = (GtkAttachOptions)(GTK_EXPAND | GTK_SHRINK | GTK_FILL); gtk_table_attach( GTK_TABLE( pTab ), gMapDrawingArea, 0, 1, 0, 1, xOpt, yOpt, 0, 0 ); gtk_widget_show( gMapDrawingArea ); // 描画エリアへのイベント・ハンドラを設定 gtk_signal_connect( GTK_OBJECT( gMapDrawingArea ), "expose_event", GTK_SIGNAL_FUNC( handle_map_expose ), NULL ); gtk_signal_connect( GTK_OBJECT( gMapDrawingArea ), "configure_event", GTK_SIGNAL_FUNC( handle_map_configure ), NULL ); // 描画エリアのマウス・モーションのイベント・ハンドラを設定 gtk_signal_connect( GTK_OBJECT( gMapDrawingArea ), "motion_notify_event", GTK_SIGNAL_FUNC( handle_map_motion_notify ), NULL ); gtk_signal_connect( GTK_OBJECT( gMapDrawingArea ), "button_press_event", GTK_SIGNAL_FUNC( handle_map_button_press ), NULL ); gtk_signal_connect( GTK_OBJECT( gMapDrawingArea ), "button_release_event", GTK_SIGNAL_FUNC( handle_map_button_release ), NULL ); gtk_signal_connect( GTK_OBJECT( gMapDrawingArea ), "scroll_event", GTK_SIGNAL_FUNC( handle_map_scroll ), NULL ); gtk_widget_set_events( gMapDrawingArea, (GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_SCROLL_MASK) ); // 水平スクロール・バーの調整を作成 gMapHScrollBarAdjustment = gtk_adjustment_new( 0, 0, MAP_PIX_MAX_X(), 1 * TILE_X_SIZE(), AREA_MAX_X * TILE_X_SIZE() / 2, AREA_MAX_X * TILE_X_SIZE() ); if( gMapHScrollBarAdjustment == NULL ){ print_msg( FLG_MSG_ERR, "gtk_adjustment_new()" ); exit_game( EXIT_FAILURE ); } // 水平スクロール・バーの調整のイベント・ハンドラを設定 gtk_signal_connect( GTK_OBJECT( gMapHScrollBarAdjustment ), "changed", GTK_SIGNAL_FUNC( handle_map_scroll_changed ), NULL ); gtk_signal_connect( GTK_OBJECT( gMapHScrollBarAdjustment ), "value_changed", GTK_SIGNAL_FUNC( handle_map_scroll_changed ), NULL ); // 水平スクロール・バーを作成 gMapHScrollBar = gtk_hscrollbar_new( GTK_ADJUSTMENT( gMapHScrollBarAdjustment ) ); if( gMapHScrollBar == NULL ){ print_msg( FLG_MSG_ERR, "gtk_hscrollbar_new()" ); exit_game( EXIT_FAILURE ); } xOpt = (GtkAttachOptions)(GTK_SHRINK | GTK_FILL); yOpt = (GtkAttachOptions)(GTK_FILL); gtk_table_attach( GTK_TABLE( pTab ), gMapHScrollBar, 0, 1, 1, 2, xOpt, yOpt, 0, 0 ); gtk_widget_show( gMapHScrollBar ); // 垂直スクロール・バーの調整を作成 gMapVScrollBarAdjustment = gtk_adjustment_new( 0, 0, MAP_PIX_MAX_Y(), 1 * TILE_Y_SIZE(), AREA_MAX_Y * TILE_Y_SIZE() / 2, AREA_MAX_Y * TILE_Y_SIZE() ); if( gMapVScrollBarAdjustment == NULL ){ print_msg( FLG_MSG_ERR, "gtk_adjustment_new()" ); exit_game( EXIT_FAILURE ); } // 垂直スクロール・バーの調整のイベント・ハンドラを設定 gtk_signal_connect( GTK_OBJECT( gMapVScrollBarAdjustment ), "changed", GTK_SIGNAL_FUNC( handle_map_scroll_changed ), NULL ); gtk_signal_connect( GTK_OBJECT( gMapVScrollBarAdjustment ), "value_changed", GTK_SIGNAL_FUNC( handle_map_scroll_changed ), NULL ); // 垂直スクロール・バーを作成 gMapVScrollBar = gtk_vscrollbar_new( GTK_ADJUSTMENT( gMapVScrollBarAdjustment ) ); if( gMapVScrollBar == NULL ){ print_msg( FLG_MSG_ERR, "gtk_vscrollbar_new()" ); exit_game( EXIT_FAILURE ); } xOpt = (GtkAttachOptions)(GTK_FILL); yOpt = (GtkAttachOptions)(GTK_SHRINK | GTK_FILL); gtk_table_attach( GTK_TABLE( pTab ), gMapVScrollBar, 1, 2, 0, 1, xOpt, yOpt, 0, 0 ); gtk_widget_show( gMapVScrollBar ); // ステータス・バーを作成 statBarMap = gtk_statusbar_new(); if( statBarMap == NULL ){ print_msg( FLG_MSG_ERR, "gtk_statusbar_new()" ); exit_game( EXIT_FAILURE ); } gtk_box_pack_start( GTK_BOX( vBox ), statBarMap, FALSE, FALSE, 0 ); statBarMapContextId = gtk_statusbar_get_context_id( GTK_STATUSBAR( statBarMap ), "Status bar" ); gtk_statusbar_set_has_resize_grip( GTK_STATUSBAR( statBarMap ), TRUE ); statBarMapMesId = gtk_statusbar_push( GTK_STATUSBAR( statBarMap ), statBarMapContextId, "OK" ); gtk_widget_show( statBarMap ); // メイン・ウィンドウを表示 gWinPos[WIN_KIND_MAP].draw( WIN_KIND_MAP ); gtk_drawing_area_size( GTK_DRAWING_AREA( gMapDrawingArea ), MAP_WIN_MIN_WIDTH(), MAP_WIN_MIN_HEIGHT() ); }
GtkWidget *create_main_toolbar(GtkWidget *parent, MainToolbar *toolbar) { GtkWidget *toolbar1; GtkWidget *toolbar_newf; GtkWidget *toolbar_open; GtkWidget *toolbar_save; GtkWidget *toolbar_zplus; GtkWidget *toolbar_yplus; GtkWidget *toolbar_yminus; GtkWidget *toolbar_xplus; GtkWidget *toolbar_xminus; GtkWidget *toolbar_iso; GtkWidget *toolbar_target; GtkWidget *toolbar_abox; GtkWidget *toolbar_apyr; GtkWidget *toolbar_atel; GtkWidget *toolbar_alnk; GtkWidget *toolbar_abas; GtkWidget *toolbar_slider; GtkTooltips *tooltips; GtkWidget *tmp_toolbar_icon; GtkAdjustment *sa; tooltips = gtk_tooltips_new(); toolbar1 = gtk_toolbar_new(); gtk_toolbar_set_orientation(GTK_TOOLBAR(toolbar1), GTK_ORIENTATION_HORIZONTAL); gtk_widget_ref(toolbar1); gtk_widget_show(toolbar1); tmp_toolbar_icon = gtk_image_new_from_stock(GTK_STOCK_NEW, GTK_ICON_SIZE_SMALL_TOOLBAR); toolbar_newf = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Create a new BZFlag world"), NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref(toolbar_newf); gtk_widget_show(toolbar_newf); tmp_toolbar_icon = gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_SMALL_TOOLBAR); toolbar_open = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Open a BZFlag world"), NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref(toolbar_open); gtk_widget_show(toolbar_open); tmp_toolbar_icon = gtk_image_new_from_stock(GTK_STOCK_SAVE, GTK_ICON_SIZE_SMALL_TOOLBAR); toolbar_save = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Save the current world"), NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref(toolbar_save); gtk_widget_show(toolbar_save); gtk_toolbar_append_space(GTK_TOOLBAR(toolbar1)); tmp_toolbar_icon = gnome_pixmap_new_from_xpm_d(TB::zplus_xpm); toolbar_zplus = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("View from above"), NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref(toolbar_zplus); gtk_widget_show(toolbar_zplus); gtk_toolbar_append_space(GTK_TOOLBAR(toolbar1)); tmp_toolbar_icon = gnome_pixmap_new_from_xpm_d(TB::yplus_xpm); toolbar_yplus = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("View from +Y"), NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref(toolbar_yplus); gtk_widget_show(toolbar_yplus); tmp_toolbar_icon = gnome_pixmap_new_from_xpm_d(TB::yminus_xpm); toolbar_yminus = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("View from -Y"), NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref(toolbar_yminus); gtk_widget_show(toolbar_yminus); gtk_toolbar_append_space(GTK_TOOLBAR(toolbar1)); tmp_toolbar_icon = gnome_pixmap_new_from_xpm_d(TB::xplus_xpm); toolbar_xplus = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("View from +X"), NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref(toolbar_xplus); gtk_widget_show(toolbar_xplus); tmp_toolbar_icon = gnome_pixmap_new_from_xpm_d(TB::xminus_xpm); toolbar_xminus = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("View from -X"), NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref(toolbar_xminus); gtk_widget_show(toolbar_xminus); gtk_toolbar_append_space(GTK_TOOLBAR(toolbar1)); tmp_toolbar_icon = gnome_pixmap_new_from_xpm_d(TB::iso_xpm); toolbar_iso = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Isometric view"), NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref(toolbar_iso); gtk_widget_show(toolbar_iso); gtk_toolbar_append_space(GTK_TOOLBAR(toolbar1)); tmp_toolbar_icon = gnome_pixmap_new_from_xpm_d(TB::target_xpm); toolbar_target = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Center view on (0, 0, 0)"), NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref(toolbar_target); gtk_widget_show(toolbar_target); gtk_toolbar_append_space(GTK_TOOLBAR(toolbar1)); tmp_toolbar_icon = gnome_pixmap_new_from_xpm_d(TB::addbox_xpm); toolbar_abox = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Add a box"), NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref(toolbar_abox); gtk_widget_show(toolbar_abox); tmp_toolbar_icon = gnome_pixmap_new_from_xpm_d(TB::addpyr_xpm); toolbar_apyr = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Add a pyramid"), NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref(toolbar_apyr); gtk_widget_show(toolbar_apyr); tmp_toolbar_icon = gnome_pixmap_new_from_xpm_d(TB::addtele_xpm); toolbar_atel = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Add a teleporter"), NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref(toolbar_atel); gtk_widget_show(toolbar_atel); tmp_toolbar_icon = gnome_pixmap_new_from_xpm_d(TB::addlink_xpm); toolbar_alnk = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Add a link"), NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref(toolbar_alnk); gtk_widget_show(toolbar_alnk); tmp_toolbar_icon = gnome_pixmap_new_from_xpm_d(TB::addbase_xpm); toolbar_abas = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Add a base"), NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref(toolbar_abas); gtk_widget_show(toolbar_abas); sa = GTK_ADJUSTMENT(gtk_adjustment_new(100.0, 0.0, 100.0, 1.0, 10.0, 0.0)); toolbar_slider = gtk_hscale_new(sa); gtk_widget_set_size_request(toolbar_slider, 75, -1); gtk_scale_set_draw_value(GTK_SCALE(toolbar_slider), FALSE); gtk_toolbar_append_widget(GTK_TOOLBAR(toolbar1), toolbar_slider, NULL, NULL); gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips), toolbar_slider, _("Transparency"), NULL); gtk_widget_ref(toolbar_slider); gtk_widget_show(toolbar_slider); gtk_signal_connect(GTK_OBJECT(toolbar_newf), "clicked", GTK_SIGNAL_FUNC(CB::MW::newf), NULL); gtk_signal_connect(GTK_OBJECT(toolbar_open), "clicked", GTK_SIGNAL_FUNC(CB::MW::open), NULL); gtk_signal_connect(GTK_OBJECT(toolbar_save), "clicked", GTK_SIGNAL_FUNC(CB::MW::save), NULL); gtk_signal_connect(GTK_OBJECT(toolbar_zplus), "clicked", GTK_SIGNAL_FUNC(CB::MW::tb_zplus), NULL); gtk_signal_connect(GTK_OBJECT(toolbar_yplus), "clicked", GTK_SIGNAL_FUNC(CB::MW::tb_yplus), NULL); gtk_signal_connect(GTK_OBJECT(toolbar_yminus), "clicked", GTK_SIGNAL_FUNC(CB::MW::tb_yminus), NULL); gtk_signal_connect(GTK_OBJECT(toolbar_xplus), "clicked", GTK_SIGNAL_FUNC(CB::MW::tb_xplus), NULL); gtk_signal_connect(GTK_OBJECT(toolbar_xminus), "clicked", GTK_SIGNAL_FUNC(CB::MW::tb_xminus), NULL); gtk_signal_connect(GTK_OBJECT(toolbar_iso), "clicked", GTK_SIGNAL_FUNC(CB::MW::tb_iso), NULL); gtk_signal_connect(GTK_OBJECT(toolbar_target), "clicked", GTK_SIGNAL_FUNC(CB::MW::tb_target), NULL); gtk_signal_connect(GTK_OBJECT(toolbar_abox), "clicked", GTK_SIGNAL_FUNC(CB::MW::tb_addbox), NULL); gtk_signal_connect(GTK_OBJECT(toolbar_apyr), "clicked", GTK_SIGNAL_FUNC(CB::MW::tb_addpyr), NULL); gtk_signal_connect(GTK_OBJECT(toolbar_atel), "clicked", GTK_SIGNAL_FUNC(CB::MW::tb_addtel), NULL); gtk_signal_connect(GTK_OBJECT(toolbar_alnk), "clicked", GTK_SIGNAL_FUNC(CB::MW::tb_addlnk), NULL); gtk_signal_connect(GTK_OBJECT(toolbar_abas), "clicked", GTK_SIGNAL_FUNC(CB::MW::tb_addbas), NULL); gtk_signal_connect(GTK_OBJECT(sa), "value_changed", GTK_SIGNAL_FUNC(CB::MW::tb_trans), NULL); gtk_signal_connect(GTK_OBJECT(sa), "changed", GTK_SIGNAL_FUNC(CB::MW::tb_trans), NULL); toolbar->toolbar = toolbar1; toolbar->newf = toolbar_newf; toolbar->open = toolbar_open; toolbar->save = toolbar_save; toolbar->zplus = toolbar_zplus; toolbar->yplus = toolbar_yplus; toolbar->yminus = toolbar_yminus; toolbar->xplus = toolbar_xplus; toolbar->xminus = toolbar_xminus; toolbar->iso = toolbar_iso; toolbar->target = toolbar_target; toolbar->abox = toolbar_abox; toolbar->apyr = toolbar_apyr; toolbar->atel = toolbar_atel; toolbar->alnk = toolbar_alnk; toolbar->abas = toolbar_abas; toolbar->slider = toolbar_slider; return toolbar1; }
GtkWidget* create_app (void) { GtkWidget *app; GtkWidget *dock1; GtkWidget *toolbar1; GtkWidget *tmp_toolbar_icon; GtkWidget *button_new; GtkWidget *button_open; GtkWidget *button_save; GtkWidget *button_save_as; GtkWidget *hexentry; GtkWidget *button_upload; GtkWidget *radiobutton_spline; GtkWidget *radiobutton_linear; GtkWidget *radiobutton_free; GtkWidget *vbox1; GtkWidget *hbox1; GtkWidget *vbox2; GtkWidget *table1; GtkWidget *label1; GtkWidget *label2; GtkWidget *label3; GtkWidget *label4; GtkWidget *label5; GtkWidget *label6; GtkObject *minx_adj; GtkWidget *minx; GtkWidget *type; GList *type_items = NULL; GtkWidget *typeentry; GtkObject *maxx_adj; GtkWidget *maxx; GtkObject *miny_adj; GtkWidget *miny; GtkObject *maxy_adj; GtkWidget *maxy; GtkObject *count_adj; GtkWidget *count; GtkWidget *label10; GtkWidget *label11; GtkWidget *label12; GtkObject *scale_adj; GtkWidget *scale; GtkObject *base_adj; GtkWidget *base; GtkWidget *label13; GtkWidget *scrolledwindow1; GtkWidget *clist; GtkWidget *label8; GtkWidget *label9; GtkWidget *toolbar2; GtkWidget *list_open; GtkWidget *list_save; GtkWidget *list_add; GtkWidget *list_remove; GtkWidget *list_use; GtkWidget *curve; GtkWidget *appbar1; app = gnome_app_new ("Curvegen", _("PSXDEV Curve Generator")); gtk_object_set_data (GTK_OBJECT (app), "app", app); dock1 = GNOME_APP (app)->dock; gtk_widget_ref (dock1); gtk_object_set_data_full (GTK_OBJECT (app), "dock1", dock1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (dock1); gnome_app_create_menus (GNOME_APP (app), menubar1_uiinfo); gtk_widget_ref (menubar1_uiinfo[0].widget); gtk_object_set_data_full (GTK_OBJECT (app), "file1", menubar1_uiinfo[0].widget, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_ref (file1_menu_uiinfo[0].widget); gtk_object_set_data_full (GTK_OBJECT (app), "exit1", file1_menu_uiinfo[0].widget, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_ref (menubar1_uiinfo[1].widget); gtk_object_set_data_full (GTK_OBJECT (app), "help1", menubar1_uiinfo[1].widget, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_ref (help1_menu_uiinfo[0].widget); gtk_object_set_data_full (GTK_OBJECT (app), "about1", help1_menu_uiinfo[0].widget, (GtkDestroyNotify) gtk_widget_unref); toolbar1 = gtk_toolbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_BOTH); gtk_widget_ref (toolbar1); gtk_object_set_data_full (GTK_OBJECT (app), "toolbar1", toolbar1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (toolbar1); gnome_app_add_toolbar (GNOME_APP (app), GTK_TOOLBAR (toolbar1), "toolbar1", GNOME_DOCK_ITEM_BEH_EXCLUSIVE, GNOME_DOCK_TOP, 1, 0, 0); gtk_container_set_border_width (GTK_CONTAINER (toolbar1), 1); gtk_toolbar_set_space_size (GTK_TOOLBAR (toolbar1), 16); gtk_toolbar_set_space_style (GTK_TOOLBAR (toolbar1), GTK_TOOLBAR_SPACE_LINE); gtk_toolbar_set_button_relief (GTK_TOOLBAR (toolbar1), GTK_RELIEF_NONE); tmp_toolbar_icon = gnome_stock_pixmap_widget (app, GNOME_STOCK_PIXMAP_NEW); button_new = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1), GTK_TOOLBAR_CHILD_BUTTON, NULL, _("New"), _("New File"), NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref (button_new); gtk_object_set_data_full (GTK_OBJECT (app), "button_new", button_new, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (button_new); tmp_toolbar_icon = gnome_stock_pixmap_widget (app, GNOME_STOCK_PIXMAP_OPEN); button_open = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1), GTK_TOOLBAR_CHILD_BUTTON, NULL, _("Open"), _("Open File"), NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref (button_open); gtk_object_set_data_full (GTK_OBJECT (app), "button_open", button_open, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (button_open); gtk_widget_set_sensitive (button_open, FALSE); tmp_toolbar_icon = gnome_stock_pixmap_widget (app, GNOME_STOCK_PIXMAP_SAVE); button_save = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1), GTK_TOOLBAR_CHILD_BUTTON, NULL, _("Save"), _("Save File"), NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref (button_save); gtk_object_set_data_full (GTK_OBJECT (app), "button_save", button_save, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (button_save); tmp_toolbar_icon = gnome_stock_pixmap_widget (app, GNOME_STOCK_PIXMAP_SAVE_AS); button_save_as = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1), GTK_TOOLBAR_CHILD_BUTTON, NULL, _("Save As"), NULL, NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref (button_save_as); gtk_object_set_data_full (GTK_OBJECT (app), "button_save_as", button_save_as, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (button_save_as); hexentry = gtk_entry_new (); gtk_widget_ref (hexentry); gtk_object_set_data_full (GTK_OBJECT (app), "hexentry", hexentry, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hexentry); gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar1), hexentry, _("Address of curve in PlayStation memory..."), NULL); tmp_toolbar_icon = gnome_stock_pixmap_widget (app, GNOME_STOCK_PIXMAP_MAIL_FWD); button_upload = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1), GTK_TOOLBAR_CHILD_BUTTON, NULL, _("Upload"), NULL, NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref (button_upload); gtk_object_set_data_full (GTK_OBJECT (app), "button_upload", button_upload, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (button_upload); gtk_toolbar_append_space (GTK_TOOLBAR (toolbar1)); tmp_toolbar_icon = gnome_stock_pixmap_widget (app, GNOME_STOCK_PIXMAP_CONVERT); radiobutton_spline = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1), GTK_TOOLBAR_CHILD_RADIOBUTTON, NULL, _("SPLINE"), NULL, NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref (radiobutton_spline); gtk_object_set_data_full (GTK_OBJECT (app), "radiobutton_spline", radiobutton_spline, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (radiobutton_spline); gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (radiobutton_spline), FALSE); tmp_toolbar_icon = gnome_stock_pixmap_widget (app, GNOME_STOCK_PIXMAP_CONVERT); radiobutton_linear = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1), GTK_TOOLBAR_CHILD_RADIOBUTTON, radiobutton_spline, _("LINEAR"), NULL, NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref (radiobutton_linear); gtk_object_set_data_full (GTK_OBJECT (app), "radiobutton_linear", radiobutton_linear, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (radiobutton_linear); gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (radiobutton_linear), FALSE); tmp_toolbar_icon = gnome_stock_pixmap_widget (app, GNOME_STOCK_PIXMAP_CONVERT); radiobutton_free = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1), GTK_TOOLBAR_CHILD_RADIOBUTTON, radiobutton_spline, _("FREE"), NULL, NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref (radiobutton_free); gtk_object_set_data_full (GTK_OBJECT (app), "radiobutton_free", radiobutton_free, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (radiobutton_free); gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (radiobutton_free), FALSE); vbox1 = gtk_vbox_new (FALSE, 0); gtk_widget_ref (vbox1); gtk_object_set_data_full (GTK_OBJECT (app), "vbox1", vbox1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vbox1); gnome_app_set_contents (GNOME_APP (app), vbox1); hbox1 = gtk_hbox_new (FALSE, 0); gtk_widget_ref (hbox1); gtk_object_set_data_full (GTK_OBJECT (app), "hbox1", hbox1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox1), hbox1, TRUE, TRUE, 0); vbox2 = gtk_vbox_new (FALSE, 0); gtk_widget_ref (vbox2); gtk_object_set_data_full (GTK_OBJECT (app), "vbox2", vbox2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vbox2); gtk_box_pack_start (GTK_BOX (hbox1), vbox2, FALSE, TRUE, 0); table1 = gtk_table_new (10, 2, FALSE); gtk_widget_ref (table1); gtk_object_set_data_full (GTK_OBJECT (app), "table1", table1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table1); gtk_box_pack_start (GTK_BOX (vbox2), table1, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (table1), 4); gtk_table_set_row_spacings (GTK_TABLE (table1), 1); gtk_table_set_col_spacings (GTK_TABLE (table1), 2); label1 = gtk_label_new (_("Min X")); gtk_widget_ref (label1); gtk_object_set_data_full (GTK_OBJECT (app), "label1", label1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1); gtk_table_attach (GTK_TABLE (table1), label1, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label1), 7.45058e-09, 0.5); label2 = gtk_label_new (_("Max X")); gtk_widget_ref (label2); gtk_object_set_data_full (GTK_OBJECT (app), "label2", label2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label2); gtk_table_attach (GTK_TABLE (table1), label2, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label2), 7.45058e-09, 0.5); label3 = gtk_label_new (_("Min Y")); gtk_widget_ref (label3); gtk_object_set_data_full (GTK_OBJECT (app), "label3", label3, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label3); gtk_table_attach (GTK_TABLE (table1), label3, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label3), 7.45058e-09, 0.5); label4 = gtk_label_new (_("Max Y")); gtk_widget_ref (label4); gtk_object_set_data_full (GTK_OBJECT (app), "label4", label4, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label4); gtk_table_attach (GTK_TABLE (table1), label4, 0, 1, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label4), 7.45058e-09, 0.5); label5 = gtk_label_new (_("Count")); gtk_widget_ref (label5); gtk_object_set_data_full (GTK_OBJECT (app), "label5", label5, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label5); gtk_table_attach (GTK_TABLE (table1), label5, 0, 1, 8, 9, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label5), 0, 0.5); label6 = gtk_label_new (_("Type")); gtk_widget_ref (label6); gtk_object_set_data_full (GTK_OBJECT (app), "label6", label6, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label6); gtk_table_attach (GTK_TABLE (table1), label6, 0, 1, 9, 10, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label6), 0, 0.5); minx_adj = gtk_adjustment_new (0, -1e+13, 1e+13, 1, 10, 10); minx = gtk_spin_button_new (GTK_ADJUSTMENT (minx_adj), 1, 4); gtk_widget_ref (minx); gtk_object_set_data_full (GTK_OBJECT (app), "minx", minx, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (minx); gtk_table_attach (GTK_TABLE (table1), minx, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (minx), TRUE); type = gtk_combo_new (); gtk_widget_ref (type); gtk_object_set_data_full (GTK_OBJECT (app), "type", type, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (type); gtk_table_attach (GTK_TABLE (table1), type, 1, 2, 9, 10, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_combo_set_value_in_list (GTK_COMBO (type), TRUE, FALSE); gtk_combo_set_use_arrows_always (GTK_COMBO (type), TRUE); type_items = g_list_append (type_items, _("u_char")); type_items = g_list_append (type_items, _("char")); type_items = g_list_append (type_items, _("u_short")); type_items = g_list_append (type_items, _("short")); type_items = g_list_append (type_items, _("u_long")); type_items = g_list_append (type_items, _("long")); type_items = g_list_append (type_items, _("float")); type_items = g_list_append (type_items, _("double")); type_items = g_list_append (type_items, _("fixed (4+12)")); gtk_combo_set_popdown_strings (GTK_COMBO (type), type_items); g_list_free (type_items); typeentry = GTK_COMBO (type)->entry; gtk_widget_ref (typeentry); gtk_object_set_data_full (GTK_OBJECT (app), "typeentry", typeentry, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (typeentry); gtk_entry_set_editable (GTK_ENTRY (typeentry), FALSE); gtk_entry_set_text (GTK_ENTRY (typeentry), _("u_char")); maxx_adj = gtk_adjustment_new (1, -1e+13, 1e+13, 1, 10, 10); maxx = gtk_spin_button_new (GTK_ADJUSTMENT (maxx_adj), 1, 4); gtk_widget_ref (maxx); gtk_object_set_data_full (GTK_OBJECT (app), "maxx", maxx, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (maxx); gtk_table_attach (GTK_TABLE (table1), maxx, 1, 2, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (maxx), TRUE); miny_adj = gtk_adjustment_new (0, -1e+13, 1e+13, 1, 10, 10); miny = gtk_spin_button_new (GTK_ADJUSTMENT (miny_adj), 1, 4); gtk_widget_ref (miny); gtk_object_set_data_full (GTK_OBJECT (app), "miny", miny, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (miny); gtk_table_attach (GTK_TABLE (table1), miny, 1, 2, 3, 4, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (miny), TRUE); maxy_adj = gtk_adjustment_new (1, -1e+13, 1e+13, 1, 10, 10); maxy = gtk_spin_button_new (GTK_ADJUSTMENT (maxy_adj), 1, 4); gtk_widget_ref (maxy); gtk_object_set_data_full (GTK_OBJECT (app), "maxy", maxy, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (maxy); gtk_table_attach (GTK_TABLE (table1), maxy, 1, 2, 4, 5, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (maxy), TRUE); count_adj = gtk_adjustment_new (1, 1, 1e+22, 1, 10, 10); count = gtk_spin_button_new (GTK_ADJUSTMENT (count_adj), 1, 0); gtk_widget_ref (count); gtk_object_set_data_full (GTK_OBJECT (app), "count", count, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (count); gtk_table_attach (GTK_TABLE (table1), count, 1, 2, 8, 9, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); label10 = gtk_label_new (_("Curve Interval:")); gtk_widget_ref (label10); gtk_object_set_data_full (GTK_OBJECT (app), "label10", label10, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label10); gtk_table_attach (GTK_TABLE (table1), label10, 0, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label10), 7.45058e-09, 0.5); label11 = gtk_label_new (_("Datatype:")); gtk_widget_ref (label11); gtk_object_set_data_full (GTK_OBJECT (app), "label11", label11, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label11); gtk_table_attach (GTK_TABLE (table1), label11, 0, 2, 5, 6, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label11), 7.45058e-09, 0.5); label12 = gtk_label_new (_("Scale")); gtk_widget_ref (label12); gtk_object_set_data_full (GTK_OBJECT (app), "label12", label12, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label12); gtk_table_attach (GTK_TABLE (table1), label12, 0, 1, 6, 7, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label12), 0, 0.5); scale_adj = gtk_adjustment_new (1, 1, 1e+22, 1, 10, 10); scale = gtk_spin_button_new (GTK_ADJUSTMENT (scale_adj), 1, 0); gtk_widget_ref (scale); gtk_object_set_data_full (GTK_OBJECT (app), "scale", scale, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (scale); gtk_table_attach (GTK_TABLE (table1), scale, 1, 2, 6, 7, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); base_adj = gtk_adjustment_new (0, 0, 1e+22, 1, 10, 10); base = gtk_spin_button_new (GTK_ADJUSTMENT (base_adj), 1, 0); gtk_widget_ref (base); gtk_object_set_data_full (GTK_OBJECT (app), "base", base, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (base); gtk_table_attach (GTK_TABLE (table1), base, 1, 2, 7, 8, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); label13 = gtk_label_new (_("Base")); gtk_widget_ref (label13); gtk_object_set_data_full (GTK_OBJECT (app), "label13", label13, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label13); gtk_table_attach (GTK_TABLE (table1), label13, 0, 1, 7, 8, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label13), 0, 0.5); scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_ref (scrolledwindow1); gtk_object_set_data_full (GTK_OBJECT (app), "scrolledwindow1", scrolledwindow1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (scrolledwindow1); gtk_box_pack_start (GTK_BOX (vbox2), scrolledwindow1, TRUE, TRUE, 0); gtk_widget_set_sensitive (scrolledwindow1, FALSE); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); clist = gtk_clist_new (2); gtk_widget_ref (clist); gtk_object_set_data_full (GTK_OBJECT (app), "clist", clist, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (clist); gtk_container_add (GTK_CONTAINER (scrolledwindow1), clist); gtk_clist_set_column_width (GTK_CLIST (clist), 0, 28); gtk_clist_set_column_width (GTK_CLIST (clist), 1, 80); gtk_clist_column_titles_show (GTK_CLIST (clist)); label8 = gtk_label_new (_("Type")); gtk_widget_ref (label8); gtk_object_set_data_full (GTK_OBJECT (app), "label8", label8, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label8); gtk_clist_set_column_widget (GTK_CLIST (clist), 0, label8); label9 = gtk_label_new (_("Name")); gtk_widget_ref (label9); gtk_object_set_data_full (GTK_OBJECT (app), "label9", label9, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label9); gtk_clist_set_column_widget (GTK_CLIST (clist), 1, label9); toolbar2 = gtk_toolbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_BOTH); gtk_widget_ref (toolbar2); gtk_object_set_data_full (GTK_OBJECT (app), "toolbar2", toolbar2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (toolbar2); gtk_box_pack_start (GTK_BOX (vbox2), toolbar2, FALSE, FALSE, 0); gtk_widget_set_sensitive (toolbar2, FALSE); tmp_toolbar_icon = gnome_stock_pixmap_widget (app, GNOME_STOCK_PIXMAP_OPEN); list_open = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar2), GTK_TOOLBAR_CHILD_BUTTON, NULL, _("Open"), NULL, NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref (list_open); gtk_object_set_data_full (GTK_OBJECT (app), "list_open", list_open, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (list_open); tmp_toolbar_icon = gnome_stock_pixmap_widget (app, GNOME_STOCK_PIXMAP_SAVE); list_save = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar2), GTK_TOOLBAR_CHILD_BUTTON, NULL, _("Save"), NULL, NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref (list_save); gtk_object_set_data_full (GTK_OBJECT (app), "list_save", list_save, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (list_save); tmp_toolbar_icon = gnome_stock_pixmap_widget (app, GNOME_STOCK_PIXMAP_ADD); list_add = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar2), GTK_TOOLBAR_CHILD_BUTTON, NULL, _("Add"), NULL, NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref (list_add); gtk_object_set_data_full (GTK_OBJECT (app), "list_add", list_add, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (list_add); tmp_toolbar_icon = gnome_stock_pixmap_widget (app, GNOME_STOCK_PIXMAP_REMOVE); list_remove = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar2), GTK_TOOLBAR_CHILD_BUTTON, NULL, _("Remove"), NULL, NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref (list_remove); gtk_object_set_data_full (GTK_OBJECT (app), "list_remove", list_remove, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (list_remove); tmp_toolbar_icon = gnome_stock_pixmap_widget (app, GNOME_STOCK_PIXMAP_EXEC); list_use = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar2), GTK_TOOLBAR_CHILD_BUTTON, NULL, _("Use"), NULL, NULL, tmp_toolbar_icon, NULL, NULL); gtk_widget_ref (list_use); gtk_object_set_data_full (GTK_OBJECT (app), "list_use", list_use, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (list_use); curve = gtk_curve_new (); gtk_widget_ref (curve); gtk_object_set_data_full (GTK_OBJECT (app), "curve", curve, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (curve); gtk_box_pack_start (GTK_BOX (hbox1), curve, TRUE, TRUE, 0); gtk_widget_set_usize (curve, 256, 256); gtk_curve_set_range (GTK_CURVE (curve), 0, 1, 0, 1); appbar1 = gnome_appbar_new (FALSE, TRUE, GNOME_PREFERENCES_NEVER); gtk_widget_ref (appbar1); gtk_object_set_data_full (GTK_OBJECT (app), "appbar1", appbar1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (appbar1); gnome_app_set_statusbar (GNOME_APP (app), appbar1); gtk_signal_connect (GTK_OBJECT (app), "delete_event", GTK_SIGNAL_FUNC (on_app_delete_event), NULL); gtk_signal_connect (GTK_OBJECT (button_new), "clicked", GTK_SIGNAL_FUNC (on_button_new_clicked), NULL); gtk_signal_connect (GTK_OBJECT (button_open), "clicked", GTK_SIGNAL_FUNC (on_button_open_clicked), NULL); gtk_signal_connect (GTK_OBJECT (button_save), "clicked", GTK_SIGNAL_FUNC (on_button_save_clicked), NULL); gtk_signal_connect (GTK_OBJECT (button_save_as), "clicked", GTK_SIGNAL_FUNC (on_button_save_as_clicked), NULL); gtk_signal_connect (GTK_OBJECT (button_upload), "clicked", GTK_SIGNAL_FUNC (on_button_upload_clicked), NULL); gtk_signal_connect (GTK_OBJECT (radiobutton_spline), "clicked", GTK_SIGNAL_FUNC (on_radiobutton_spline_clicked), NULL); gtk_signal_connect (GTK_OBJECT (radiobutton_linear), "clicked", GTK_SIGNAL_FUNC (on_radiobutton_linear_clicked), NULL); gtk_signal_connect (GTK_OBJECT (radiobutton_free), "clicked", GTK_SIGNAL_FUNC (on_radiobutton_free_clicked), NULL); gtk_signal_connect (GTK_OBJECT (minx), "changed", GTK_SIGNAL_FUNC (on_minx_changed), NULL); gtk_signal_connect (GTK_OBJECT (maxx), "changed", GTK_SIGNAL_FUNC (on_maxx_changed), NULL); gtk_signal_connect (GTK_OBJECT (miny), "changed", GTK_SIGNAL_FUNC (on_miny_changed), NULL); gtk_signal_connect (GTK_OBJECT (maxy), "changed", GTK_SIGNAL_FUNC (on_maxy_changed), NULL); gtk_signal_connect (GTK_OBJECT (list_open), "clicked", GTK_SIGNAL_FUNC (on_list_open_clicked), NULL); gtk_signal_connect (GTK_OBJECT (list_save), "clicked", GTK_SIGNAL_FUNC (on_list_save_clicked), NULL); gtk_signal_connect (GTK_OBJECT (list_add), "clicked", GTK_SIGNAL_FUNC (on_list_add_clicked), NULL); gtk_signal_connect (GTK_OBJECT (list_remove), "clicked", GTK_SIGNAL_FUNC (on_list_remove_clicked), NULL); gtk_signal_connect (GTK_OBJECT (list_use), "clicked", GTK_SIGNAL_FUNC (on_list_use_clicked), NULL); return app; }
XttTblGtk::XttTblGtk(GtkWidget* a_parent_wid, void* a_parent_ctx, sevcli_tCtx a_sevcli, sevcli_sHistItem* itemlist, int item_cnt) : XttTbl(a_parent_ctx, a_sevcli), parent_wid(a_parent_wid) { int sts; pwr_tFileName fname; toplevel = (GtkWidget*)g_object_new(GTK_TYPE_WINDOW, "default-height", 700, "default-width", 500, "title", "SevXtt Navigator", NULL); g_signal_connect(toplevel, "delete_event", G_CALLBACK(delete_event), this); g_signal_connect(toplevel, "destroy", G_CALLBACK(destroy_event), this); g_signal_connect( toplevel, "focus-in-event", G_CALLBACK(xtttbl_focus_in_event), this); CoWowGtk::SetWindowIcon(toplevel); GtkWidget* vbox = gtk_vbox_new(FALSE, 0); // Menu // Accelerators GtkAccelGroup* accel_g = (GtkAccelGroup*)g_object_new(GTK_TYPE_ACCEL_GROUP, NULL); gtk_window_add_accel_group(GTK_WINDOW(toplevel), accel_g); GtkMenuBar* menu_bar = (GtkMenuBar*)g_object_new(GTK_TYPE_MENU_BAR, NULL); // File entry GtkWidget* file_print = gtk_image_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Print")); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(file_print), gtk_image_new_from_stock("gtk-print", GTK_ICON_SIZE_MENU)); g_signal_connect(file_print, "activate", G_CALLBACK(activate_print), this); GtkWidget* file_login = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Login")); g_signal_connect(file_login, "activate", G_CALLBACK(activate_login), this); GtkWidget* file_logout = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("Log_Out")); g_signal_connect(file_logout, "activate", G_CALLBACK(activate_logout), this); GtkWidget* file_close = gtk_image_menu_item_new_from_stock(GTK_STOCK_CLOSE, accel_g); g_signal_connect(file_close, "activate", G_CALLBACK(activate_close), this); GtkMenu* file_menu = (GtkMenu*)g_object_new(GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_print); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_login); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_logout); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_close); GtkWidget* file = gtk_menu_item_new_with_mnemonic("_File"); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), file); gtk_menu_item_set_submenu(GTK_MENU_ITEM(file), GTK_WIDGET(file_menu)); // Functions entry GtkWidget* functions_opensevhist = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Open Process History")); g_signal_connect(functions_opensevhist, "activate", G_CALLBACK(activate_opensevhist), this); gtk_widget_add_accelerator(functions_opensevhist, "activate", accel_g, 'g', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkWidget* functions_command = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("Co_mmand")); g_signal_connect( functions_command, "activate", G_CALLBACK(activate_command), this); gtk_widget_add_accelerator(functions_command, "activate", accel_g, 'b', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkWidget* functions_delete_item = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Delete Item")); g_signal_connect(functions_delete_item, "activate", G_CALLBACK(activate_delete_item), this); GtkMenu* functions_menu = (GtkMenu*)g_object_new(GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(functions_menu), functions_opensevhist); gtk_menu_shell_append(GTK_MENU_SHELL(functions_menu), functions_command); gtk_menu_shell_append(GTK_MENU_SHELL(functions_menu), functions_delete_item); GtkWidget* functions = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Functions")); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), functions); gtk_menu_item_set_submenu( GTK_MENU_ITEM(functions), GTK_WIDGET(functions_menu)); // View menu GtkWidget* view_tree_layout = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Tree Layout")); g_signal_connect( view_tree_layout, "activate", G_CALLBACK(activate_tree_layout), this); GtkWidget* view_list_layout = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_List Layout")); g_signal_connect( view_list_layout, "activate", G_CALLBACK(activate_list_layout), this); GtkWidget* view_zoom_in = gtk_image_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("Zoom _In")); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(view_zoom_in), gtk_image_new_from_stock("gtk-zoom-in", GTK_ICON_SIZE_MENU)); g_signal_connect( view_zoom_in, "activate", G_CALLBACK(activate_zoom_in), this); gtk_widget_add_accelerator(view_zoom_in, "activate", accel_g, 'i', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); GtkWidget* view_zoom_out = gtk_image_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("Zoom _Out")); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(view_zoom_out), gtk_image_new_from_stock("gtk-zoom-out", GTK_ICON_SIZE_MENU)); g_signal_connect( view_zoom_out, "activate", G_CALLBACK(activate_zoom_out), this); gtk_widget_add_accelerator(view_zoom_out, "activate", accel_g, 'o', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); GtkWidget* view_zoom_reset = gtk_image_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("Zoom _Reset")); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(view_zoom_reset), gtk_image_new_from_stock("gtk-zoom-100", GTK_ICON_SIZE_MENU)); g_signal_connect( view_zoom_reset, "activate", G_CALLBACK(activate_zoom_reset), this); GtkMenu* view_menu = (GtkMenu*)g_object_new(GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_tree_layout); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_list_layout); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_in); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_out); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_reset); GtkWidget* view = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_View")); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), view); gtk_menu_item_set_submenu(GTK_MENU_ITEM(view), GTK_WIDGET(view_menu)); // Help entry GtkWidget* help_overview = gtk_image_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Overview")); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(help_overview), gtk_image_new_from_stock("gtk-help", GTK_ICON_SIZE_MENU)); g_signal_connect(help_overview, "activate", G_CALLBACK(activate_help), this); gtk_widget_add_accelerator(help_overview, "activate", accel_g, 'h', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); GtkWidget* help_project = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Project")); g_signal_connect( help_project, "activate", G_CALLBACK(activate_help_project), this); GtkWidget* help_proview = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_About Proview")); g_signal_connect( help_proview, "activate", G_CALLBACK(activate_help_proview), this); GtkMenu* help_menu = (GtkMenu*)g_object_new(GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(help_menu), help_overview); gtk_menu_shell_append(GTK_MENU_SHELL(help_menu), help_project); gtk_menu_shell_append(GTK_MENU_SHELL(help_menu), help_proview); GtkWidget* help = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Help")); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), help); gtk_menu_item_set_submenu(GTK_MENU_ITEM(help), GTK_WIDGET(help_menu)); // Toolbar GtkToolbar* tools = (GtkToolbar*)g_object_new(GTK_TYPE_TOOLBAR, NULL); GtkWidget* tools_opensevhist = gtk_button_new(); dcli_translate_filename(fname, "$pwr_exe/xtt_meth_trend.png"); gtk_container_add( GTK_CONTAINER(tools_opensevhist), gtk_image_new_from_file(fname)); g_signal_connect( tools_opensevhist, "clicked", G_CALLBACK(activate_opensevhist), this); g_object_set(tools_opensevhist, "can-focus", FALSE, NULL); gtk_toolbar_append_widget(tools, tools_opensevhist, CoWowGtk::translate_utf8("Open history item"), ""); GtkWidget* tools_zoom_in = gtk_button_new(); dcli_translate_filename(fname, "$pwr_exe/xtt_zoom_in.png"); gtk_container_add( GTK_CONTAINER(tools_zoom_in), gtk_image_new_from_file(fname)); g_signal_connect( tools_zoom_in, "clicked", G_CALLBACK(activate_zoom_in), this); g_object_set(tools_zoom_in, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_zoom_in, CoWowGtk::translate_utf8("Zoom in"), ""); GtkWidget* tools_zoom_out = gtk_button_new(); dcli_translate_filename(fname, "$pwr_exe/xtt_zoom_out.png"); gtk_container_add( GTK_CONTAINER(tools_zoom_out), gtk_image_new_from_file(fname)); g_signal_connect( tools_zoom_out, "clicked", G_CALLBACK(activate_zoom_out), this); g_object_set(tools_zoom_out, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_zoom_out, CoWowGtk::translate_utf8("Zoom out"), ""); GtkWidget* tools_zoom_reset = gtk_button_new(); dcli_translate_filename(fname, "$pwr_exe/xtt_zoom_reset.png"); gtk_container_add( GTK_CONTAINER(tools_zoom_reset), gtk_image_new_from_file(fname)); g_signal_connect( tools_zoom_reset, "clicked", G_CALLBACK(activate_zoom_reset), this); g_object_set(tools_zoom_reset, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_zoom_reset, CoWowGtk::translate_utf8("Zoom reset"), ""); // Statusbar and cmd input GtkWidget* statusbar = gtk_hbox_new(FALSE, 0); msg_label = gtk_label_new(""); gtk_widget_set_size_request(msg_label, -1, 25); cmd_prompt = gtk_label_new("xtt > "); gtk_widget_set_size_request(cmd_prompt, -1, 25); cmd_recall = new CoWowRecall(); cmd_entry = new CoWowEntryGtk(cmd_recall); cmd_input = cmd_entry->widget(); gtk_widget_set_size_request(cmd_input, -1, 25); g_signal_connect( cmd_input, "activate", G_CALLBACK(valchanged_cmd_input), this); gtk_box_pack_start(GTK_BOX(statusbar), msg_label, FALSE, FALSE, 20); gtk_box_pack_start(GTK_BOX(statusbar), cmd_prompt, FALSE, FALSE, 20); gtk_box_pack_start(GTK_BOX(statusbar), cmd_input, TRUE, TRUE, 20); gtk_widget_show_all(statusbar); tblnav = new TblNavGtk(this, toplevel, itemlist, item_cnt, &brow_widget, &sts); tblnav->message_cb = &XttTbl::message; tblnav->is_authorized_cb = &XttTbl::is_authorized; tblnav->command_cb = &XttTbl::command_cb; gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(menu_bar), FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(tools), FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(brow_widget), TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(statusbar), FALSE, FALSE, 3); gtk_container_add(GTK_CONTAINER(toplevel), vbox); gtk_widget_show_all(toplevel); g_object_set(cmd_prompt, "visible", FALSE, NULL); g_object_set(cmd_input, "visible", FALSE, NULL); // Create help window CoXHelp* xhelp = new CoXHelpGtk(toplevel, this, xhelp_eUtility_Xtt, &sts); CoXHelp::set_default(xhelp); wow = new CoWowGtk(toplevel); if (!is_authorized(pwr_mAccess_AllSev, 0)) open_login(); if (!quiet) { if (cologin) // Set login window as parent to warranty as focus is left to parent. ((CoWowGtk*)wow)->SetParent(((CoLoginGtk*)cologin)->widgets.toplevel); wow->DisplayWarranty(); if (cologin) ((CoWowGtk*)wow)->SetParent(toplevel); } }
void ags_notation_toolbar_init(AgsNotationToolbar *notation_toolbar) { GtkLabel *label; GtkMenu *menu; GtkMenuItem *item; notation_toolbar->flags = 0; /* position */ notation_toolbar->position = (GtkToggleToolButton *) g_object_new(GTK_TYPE_TOGGLE_TOOL_BUTTON, "label", i18n("Position"), "stock-id", GTK_STOCK_JUMP_TO, NULL); gtk_toolbar_append_widget((GtkToolbar *) notation_toolbar, (GtkWidget *) notation_toolbar->position, i18n("position cursor"), NULL); /* edit */ notation_toolbar->edit = (GtkToggleToolButton *) g_object_new(GTK_TYPE_TOGGLE_TOOL_BUTTON, "stock-id", GTK_STOCK_EDIT, "active", TRUE, NULL); gtk_toolbar_append_widget((GtkToolbar *) notation_toolbar, (GtkWidget *) notation_toolbar->edit, i18n("edit notes"), NULL); notation_toolbar->selected_edit_mode = notation_toolbar->edit; /* clear */ notation_toolbar->clear = (GtkToggleToolButton *) g_object_new(GTK_TYPE_TOGGLE_TOOL_BUTTON, "stock-id", GTK_STOCK_CLEAR, NULL); gtk_toolbar_append_widget((GtkToolbar *) notation_toolbar, (GtkWidget *) notation_toolbar->clear, i18n("clear notes"), NULL); /* select */ notation_toolbar->select = (GtkToggleToolButton *) g_object_new(GTK_TYPE_TOGGLE_TOOL_BUTTON, "label", i18n("Select"), "stock-id", GTK_STOCK_SELECT_ALL, NULL); gtk_toolbar_append_widget((GtkToolbar *) notation_toolbar, (GtkWidget *) notation_toolbar->select, i18n("select notes"), NULL); /* copy */ notation_toolbar->copy = (GtkToolButton *) g_object_new(GTK_TYPE_TOOL_BUTTON, "stock-id", GTK_STOCK_COPY, NULL); gtk_toolbar_append_widget((GtkToolbar *) notation_toolbar, (GtkWidget *) notation_toolbar->copy, i18n("copy notes"), NULL); /* cut */ notation_toolbar->cut = (GtkToolButton *) g_object_new(GTK_TYPE_TOOL_BUTTON, "stock-id", GTK_STOCK_CUT, NULL); gtk_toolbar_append_widget((GtkToolbar *) notation_toolbar, (GtkWidget *) notation_toolbar->cut, i18n("cut notes"), NULL); /* paste */ notation_toolbar->paste_tool = (GtkMenuToolButton *) g_object_new(GTK_TYPE_MENU_TOOL_BUTTON, "stock-id", GTK_STOCK_PASTE, NULL); menu = (GtkMenu *) gtk_menu_new(); item = g_object_new(GTK_TYPE_CHECK_MENU_ITEM, "label", i18n("match audio channel"), "active", TRUE, NULL); gtk_menu_shell_append((GtkMenuShell *) menu, (GtkWidget *) item); item = g_object_new(GTK_TYPE_CHECK_MENU_ITEM, "label", i18n("no duplicates"), "active", TRUE, NULL); gtk_menu_shell_append((GtkMenuShell *) menu, (GtkWidget *) item); gtk_menu_tool_button_set_menu(notation_toolbar->paste_tool, (GtkWidget *) menu); gtk_widget_show_all((GtkWidget *) menu); gtk_toolbar_append_widget((GtkToolbar *) notation_toolbar, (GtkWidget *) notation_toolbar->paste_tool, i18n("paste notes"), NULL); /* invert */ notation_toolbar->invert = (GtkButton *) g_object_new(GTK_TYPE_TOOL_BUTTON, "icon-widget", (GtkWidget *) gtk_image_new_from_icon_name("object-flip-vertical", GTK_ICON_SIZE_LARGE_TOOLBAR), "label", i18n("Invert"), NULL); gtk_toolbar_append_widget((GtkToolbar *) notation_toolbar, (GtkWidget *) notation_toolbar->invert, i18n("invert notes"), NULL); /* menu tool */ notation_toolbar->menu_tool = (GtkMenuToolButton *) g_object_new(GTK_TYPE_MENU_TOOL_BUTTON, "label", i18n("Tool"), "stock-id", GTK_STOCK_EXECUTE, NULL); gtk_toolbar_append_widget((GtkToolbar *) notation_toolbar, (GtkWidget *) notation_toolbar->menu_tool, i18n("additional tools"), NULL); /* menu tool - tool popup */ notation_toolbar->tool_popup = ags_notation_toolbar_tool_popup_new(notation_toolbar); gtk_menu_tool_button_set_menu(notation_toolbar->menu_tool, (GtkWidget *) notation_toolbar->tool_popup); /* menu tool - dialogs */ notation_toolbar->move_note = (GtkDialog *) ags_move_note_dialog_new(NULL); notation_toolbar->crop_note = (GtkDialog *) ags_crop_note_dialog_new(NULL); notation_toolbar->select_note = (GtkDialog *) ags_select_note_dialog_new(NULL); notation_toolbar->position_notation_cursor = (GtkDialog *) ags_position_notation_cursor_dialog_new(NULL); /* zoom */ label = (GtkLabel *) gtk_label_new(i18n("Zoom")); gtk_toolbar_append_widget((GtkToolbar *) notation_toolbar, (GtkWidget *) label, NULL, NULL); notation_toolbar->zoom_history = 2; notation_toolbar->zoom = (GtkComboBoxText *) ags_zoom_combo_box_new(); gtk_combo_box_set_active((GtkComboBox *) notation_toolbar->zoom, 2); gtk_toolbar_append_widget((GtkToolbar *) notation_toolbar, (GtkWidget *) notation_toolbar->zoom, NULL , NULL); /* opacity */ label = (GtkLabel *) gtk_label_new(i18n("Opacity")); gtk_container_add(GTK_CONTAINER(notation_toolbar), (GtkWidget *) label); notation_toolbar->opacity = (GtkSpinButton *) gtk_spin_button_new_with_range(0.0, 1.0, 0.001); gtk_spin_button_set_value(notation_toolbar->opacity, 0.8); gtk_toolbar_append_widget((GtkToolbar *) notation_toolbar, (GtkWidget *) notation_toolbar->opacity, NULL, NULL); }
GtkWidget * sp_gradient_toolbox_new(SPDesktop *desktop) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); GtkWidget *tbl = gtk_toolbar_new(); gtk_object_set_data(GTK_OBJECT(tbl), "dtw", desktop->canvas); gtk_object_set_data(GTK_OBJECT(tbl), "desktop", desktop); GtkTooltips *tt = gtk_tooltips_new(); sp_toolbox_add_label(tbl, _("<b>New:</b>")); // TODO replace aux_toolbox_space(tbl, AUX_SPACING); { GtkWidget *cvbox = gtk_vbox_new (FALSE, 0); GtkWidget *cbox = gtk_hbox_new (FALSE, 0); { GtkWidget *button = sp_button_new_from_data( Inkscape::ICON_SIZE_DECORATION, SP_BUTTON_TYPE_TOGGLE, NULL, "fill_gradient", _("Create linear gradient"), tt); g_signal_connect_after (G_OBJECT (button), "clicked", G_CALLBACK (gr_toggle_type), tbl); g_object_set_data(G_OBJECT(tbl), "linear", button); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), prefs->getInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_LINEAR) == SP_GRADIENT_TYPE_LINEAR); gtk_box_pack_start(GTK_BOX(cbox), button, FALSE, FALSE, 0); } { GtkWidget *button = sp_button_new_from_data( Inkscape::ICON_SIZE_DECORATION, SP_BUTTON_TYPE_TOGGLE, NULL, "fill_radial", _("Create radial (elliptic or circular) gradient"), tt); g_signal_connect_after (G_OBJECT (button), "clicked", G_CALLBACK (gr_toggle_type), tbl); g_object_set_data(G_OBJECT(tbl), "radial", button); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), prefs->getInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_LINEAR) == SP_GRADIENT_TYPE_RADIAL); gtk_box_pack_start(GTK_BOX(cbox), button, FALSE, FALSE, 0); } gtk_box_pack_start(GTK_BOX(cvbox), cbox, TRUE, FALSE, 0); gtk_toolbar_append_widget( GTK_TOOLBAR(tbl), cvbox, "", "" ); } // TODO replace aux_toolbox_space(tbl, AUX_SPACING); sp_toolbox_add_label(tbl, _("on"), false); // TODO replace aux_toolbox_space(tbl, AUX_SPACING); { GtkWidget *cvbox = gtk_vbox_new (FALSE, 0); GtkWidget *cbox = gtk_hbox_new (FALSE, 0); { GtkWidget *button = sp_button_new_from_data( Inkscape::ICON_SIZE_DECORATION, SP_BUTTON_TYPE_TOGGLE, NULL, "controls_fill", _("Create gradient in the fill"), tt); g_signal_connect_after (G_OBJECT (button), "clicked", G_CALLBACK (gr_toggle_fillstroke), tbl); g_object_set_data(G_OBJECT(tbl), "fill", button); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), prefs->getBool("/tools/gradient/newfillorstroke", true)); gtk_box_pack_start(GTK_BOX(cbox), button, FALSE, FALSE, 0); } { GtkWidget *button = sp_button_new_from_data( Inkscape::ICON_SIZE_DECORATION, SP_BUTTON_TYPE_TOGGLE, NULL, "controls_stroke", _("Create gradient in the stroke"), tt); g_signal_connect_after (G_OBJECT (button), "clicked", G_CALLBACK (gr_toggle_fillstroke), tbl); g_object_set_data(G_OBJECT(tbl), "stroke", button); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), !prefs->getBool("/tools/gradient/newfillorstroke", true)); gtk_box_pack_start(GTK_BOX(cbox), button, FALSE, FALSE, 0); } gtk_box_pack_start(GTK_BOX(cvbox), cbox, TRUE, TRUE, 3); gtk_toolbar_append_widget( GTK_TOOLBAR(tbl), cvbox, "", "" ); } sp_toolbox_add_label(tbl, _("<b>Change:</b>")); // TODO replace aux_toolbox_space(tbl, AUX_SPACING); { GtkWidget *vectors = gr_change_widget (desktop); gtk_toolbar_append_widget( GTK_TOOLBAR(tbl), vectors, "", "" ); } gtk_widget_show_all(tbl); sp_set_font_size_smaller (tbl); return tbl; }
WbExpWGtk::WbExpWGtk ( void *expw_parent_ctx, GtkWidget *expw_parent_wid, ldh_tSession expw_ldhses, const char *expw_name, int l_type, int l_editmode, pwr_tStatus *status) : WbExpW( expw_parent_ctx, expw_ldhses, expw_name, l_type, l_editmode, status), parent_wid(expw_parent_wid) { const int window_width = 1100; const int window_height = 600; toplevel = (GtkWidget *) g_object_new( GTK_TYPE_WINDOW, "default-height", window_height, "default-width", window_width, "title", expw_name, NULL); g_signal_connect( toplevel, "delete_event", G_CALLBACK(delete_event), this); g_signal_connect( toplevel, "destroy", G_CALLBACK(destroy_event), this); g_signal_connect( toplevel, "focus-in-event", G_CALLBACK(WbExpWGtk::action_inputfocus), this); CoWowGtk::SetWindowIcon( toplevel); GtkAccelGroup *accel_g = (GtkAccelGroup *) g_object_new(GTK_TYPE_ACCEL_GROUP, NULL); gtk_window_add_accel_group(GTK_WINDOW(toplevel), accel_g); GtkMenuBar *menu_bar = (GtkMenuBar *) g_object_new(GTK_TYPE_MENU_BAR, NULL); // File Entry GtkWidget *file_close = gtk_image_menu_item_new_from_stock(GTK_STOCK_CLOSE, accel_g); g_signal_connect(file_close, "activate", G_CALLBACK(WbExpWGtk::activate_exit), this); file_export = gtk_menu_item_new_with_mnemonic( btext); g_signal_connect(file_export, "activate", G_CALLBACK(WbExpWGtk::activate_export), this); GtkMenu *file_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_export); GtkWidget *file = gtk_menu_item_new_with_mnemonic("_File"); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), file); gtk_menu_item_set_submenu(GTK_MENU_ITEM(file), GTK_WIDGET(file_menu)); // Edit menu GtkWidget *edit_update = gtk_menu_item_new_with_mnemonic( "_Update"); g_signal_connect(edit_update, "activate", G_CALLBACK(WbExpWGtk::activate_update), this); gtk_widget_add_accelerator( edit_update, "activate", accel_g, 'u', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); edit_check_all = gtk_menu_item_new_with_mnemonic( "_Check all"); g_signal_connect(edit_check_all, "activate", G_CALLBACK(WbExpWGtk::activate_check_all), this); edit_check_clear = gtk_menu_item_new_with_mnemonic( "C_heck clear"); g_signal_connect(edit_check_clear, "activate", G_CALLBACK(WbExpWGtk::activate_check_clear), this); edit_check_reset = gtk_menu_item_new_with_mnemonic( "Check _reset"); g_signal_connect(edit_check_reset, "activate", G_CALLBACK(WbExpWGtk::activate_check_reset), this); edit_show_all = gtk_check_menu_item_new_with_mnemonic( "_Show all"); g_signal_connect( edit_show_all, "activate", G_CALLBACK(activate_show_all), this); gtk_widget_add_accelerator( edit_show_all, "activate", accel_g, 'a', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); GtkMenu *edit_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(edit_menu), edit_update); gtk_menu_shell_append(GTK_MENU_SHELL(edit_menu), edit_check_all); gtk_menu_shell_append(GTK_MENU_SHELL(edit_menu), edit_check_clear); gtk_menu_shell_append(GTK_MENU_SHELL(edit_menu), edit_check_reset); gtk_menu_shell_append(GTK_MENU_SHELL(edit_menu), edit_show_all); GtkWidget *edit = gtk_menu_item_new_with_mnemonic("_Edit"); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), edit); gtk_menu_item_set_submenu(GTK_MENU_ITEM(edit), GTK_WIDGET(edit_menu)); // View menu GtkWidget *view_zoom_in = gtk_image_menu_item_new_from_stock(GTK_STOCK_ZOOM_IN, NULL); g_signal_connect(view_zoom_in, "activate", G_CALLBACK(WbExpWGtk::activate_zoom_in), this); gtk_widget_add_accelerator( view_zoom_in, "activate", accel_g, 'i', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); GtkWidget *view_zoom_out = gtk_image_menu_item_new_from_stock(GTK_STOCK_ZOOM_OUT, NULL); g_signal_connect(view_zoom_out, "activate", G_CALLBACK(WbExpWGtk::activate_zoom_out), this); gtk_widget_add_accelerator( view_zoom_out, "activate", accel_g, 'o', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); GtkWidget *view_zoom_reset = gtk_image_menu_item_new_from_stock(GTK_STOCK_ZOOM_100, NULL); g_signal_connect(view_zoom_reset, "activate", G_CALLBACK(WbExpWGtk::activate_zoom_reset), this); GtkMenu *view_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_in); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_out); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_reset); GtkWidget *view = gtk_menu_item_new_with_mnemonic("_View"); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), view); gtk_menu_item_set_submenu(GTK_MENU_ITEM(view), GTK_WIDGET(view_menu)); // Help Entry GtkWidget *help_help = gtk_image_menu_item_new_from_stock(GTK_STOCK_HELP, accel_g); g_signal_connect(help_help, "activate", G_CALLBACK(WbExpWGtk::activate_help), this); GtkMenu *help_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(help_menu), help_help); GtkWidget *help = gtk_menu_item_new_with_mnemonic("_Help"); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), help); gtk_menu_item_set_submenu(GTK_MENU_ITEM(help), GTK_WIDGET(help_menu)); // Toolbar GtkToolbar *tools = (GtkToolbar *) g_object_new(GTK_TYPE_TOOLBAR, NULL); pwr_tFileName fname; GtkWidget *tools_export = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/wb_export.png"); gtk_container_add( GTK_CONTAINER(tools_export), gtk_image_new_from_file( fname)); g_signal_connect(tools_export, "clicked", G_CALLBACK(activate_export), this); g_object_set( tools_export, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_export, action, ""); GtkWidget *tools_update = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/ge_update.png"); gtk_container_add( GTK_CONTAINER(tools_update), gtk_image_new_from_file( fname)); g_signal_connect(tools_update, "clicked", G_CALLBACK(activate_update), this); g_object_set( tools_update, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_update, "Update", ""); GtkWidget *tools_zoom_in = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_zoom_in.png"); gtk_container_add( GTK_CONTAINER(tools_zoom_in), gtk_image_new_from_file( fname)); g_signal_connect(tools_zoom_in, "clicked", G_CALLBACK(activate_zoom_in), this); g_object_set( tools_zoom_in, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_zoom_in, "Zoom in", ""); GtkWidget *tools_zoom_out = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_zoom_out.png"); gtk_container_add( GTK_CONTAINER(tools_zoom_out), gtk_image_new_from_file( fname)); g_signal_connect(tools_zoom_out, "clicked", G_CALLBACK(activate_zoom_out), this); g_object_set( tools_zoom_out, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_zoom_out, "Zoom out", ""); GtkWidget *tools_zoom_reset = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_zoom_reset.png"); gtk_container_add( GTK_CONTAINER(tools_zoom_reset), gtk_image_new_from_file( fname)); g_signal_connect(tools_zoom_reset, "clicked", G_CALLBACK(activate_zoom_reset), this); g_object_set( tools_zoom_reset, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_zoom_reset, "Zoom reset", ""); form = gtk_vbox_new( FALSE, 0); // Create expwnav expwnav = new WbExpWNavGtk( this, form, expw_ldhses, l_type, l_editmode, &nav_widget); gtk_box_pack_start( GTK_BOX(form), GTK_WIDGET(menu_bar), FALSE, FALSE, 0); gtk_box_pack_start( GTK_BOX(form), GTK_WIDGET(tools), FALSE, FALSE, 0); gtk_box_pack_start( GTK_BOX(form), GTK_WIDGET(nav_widget), TRUE, TRUE, 0); gtk_container_add( GTK_CONTAINER(toplevel), form); gtk_widget_show_all( toplevel); wow = new CoWowGtk( toplevel); show(); // expwnav->check_all(); }
static GtkWidget * gtk2perl_toolbar_insert_internal (GtkToolbar * toolbar, SV * type, SV * widget, SV * text, SV * tooltip_text, SV * tooltip_private_text, SV * icon, SV * callback, SV * user_data, SV * position, WhichInsert which, WhichOp op) { GtkWidget * w = NULL; const char * real_tooltip_text = NULL; const char * real_tooltip_private_text = NULL; /* _ornull is not always right for text, but is for the others. */ real_tooltip_text = SvGChar_ornull (tooltip_text); real_tooltip_private_text = SvGChar_ornull (tooltip_private_text); switch (which) { case STOCK: /* stock with NULL text (the stock id) makes no sense, * so let's make sure perl will issue an uninitialized * value warning for undef passed here for text. */ w = gtk_toolbar_insert_stock (toolbar, SvGChar (text), real_tooltip_text, real_tooltip_private_text, NULL, NULL, SvIV (position)); break; case ITEM: { const gchar * real_text = SvGChar_ornull (text); GtkWidget * real_icon = SvGtkWidget_ornull (icon); switch (op) { case PREPEND: w = gtk_toolbar_prepend_item (toolbar, real_text, real_tooltip_text, real_tooltip_private_text, real_icon, NULL, NULL); break; case APPEND: w = gtk_toolbar_append_item (toolbar, real_text, real_tooltip_text, real_tooltip_private_text, real_icon, NULL, NULL); break; case INSERT: w = gtk_toolbar_insert_item (toolbar, real_text, real_tooltip_text, real_tooltip_private_text, real_icon, NULL, NULL, SvIV (position)); break; default: g_assert_not_reached (); } } break; case ELEMENT: { GtkToolbarChildType real_type = SvGtkToolbarChildType(type); const gchar * real_text = SvGChar_ornull (text); GtkWidget * real_widget = SvGtkWidget_ornull (widget); GtkWidget * real_icon = SvGtkWidget_ornull (icon); switch (op) { case PREPEND: w = gtk_toolbar_prepend_element (toolbar, real_type, real_widget, real_text, real_tooltip_text, real_tooltip_private_text, real_icon, NULL, NULL); break; case APPEND: w = gtk_toolbar_append_element (toolbar, real_type, real_widget, real_text, real_tooltip_text, real_tooltip_private_text, real_icon, NULL, NULL); break; case INSERT: w = gtk_toolbar_insert_element (toolbar, real_type, real_widget, real_text, real_tooltip_text, real_tooltip_private_text, real_icon, NULL, NULL, SvIV (position)); break; default: g_assert_not_reached (); } } break; case WIDGET: { w = SvGtkWidget (widget); switch (op) { case PREPEND: gtk_toolbar_prepend_widget (toolbar, w, real_tooltip_text, real_tooltip_private_text); break; case APPEND: gtk_toolbar_append_widget (toolbar, w, real_tooltip_text, real_tooltip_private_text); break; case INSERT: gtk_toolbar_insert_widget (toolbar, w, real_tooltip_text, real_tooltip_private_text, SvIV (position)); break; default: g_assert_not_reached (); } } break; default: g_assert_not_reached (); } if (gperl_sv_is_defined (callback)) gperl_signal_connect (newSVGtkWidget (w), "clicked", callback, user_data, 0); return w; }
NodelistGtk::NodelistGtk( void *nodelist_parent_ctx, GtkWidget *nodelist_parent_wid, const char *nodelist_name, int nodelist_mode, int nodelist_view_node_descr, int msgw_pop, pwr_tStatus *status) : Nodelist( nodelist_parent_ctx, nodelist_name, nodelist_mode, nodelist_view_node_descr, status), parent_wid(nodelist_parent_wid), clock_cursor(0), add_india_widget(0) { pwr_tStatus sts; toplevel = (GtkWidget *) g_object_new( GTK_TYPE_WINDOW, "default-height", 300, "default-width", 850, "title", nodelist_name, NULL); g_signal_connect( toplevel, "delete_event", G_CALLBACK(delete_event), this); g_signal_connect( toplevel, "destroy", G_CALLBACK(destroy_event), this); g_signal_connect( toplevel, "focus-in-event", G_CALLBACK(action_inputfocus), this); CoWowGtk::SetWindowIcon( toplevel); GtkWidget *vbox = gtk_vbox_new( FALSE, 0); // Menu // Accelerators GtkAccelGroup *accel_g = (GtkAccelGroup *) g_object_new(GTK_TYPE_ACCEL_GROUP, NULL); gtk_window_add_accel_group(GTK_WINDOW(toplevel), accel_g); GtkMenuBar *menu_bar = (GtkMenuBar *) g_object_new(GTK_TYPE_MENU_BAR, NULL); // File entry GtkWidget *file_close = gtk_image_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Close")); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(file_close), gtk_image_new_from_stock( "gtk-close", GTK_ICON_SIZE_MENU)); g_signal_connect(file_close, "activate", G_CALLBACK(activate_exit), this); gtk_widget_add_accelerator( file_close, "activate", accel_g, 'w', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); GtkWidget *file_add_node = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Add Node")); g_signal_connect(file_add_node, "activate", G_CALLBACK(activate_add_node), this); GtkWidget *file_modify_node = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Modify Node")); g_signal_connect(file_modify_node, "activate", G_CALLBACK(activate_modify_node), this); GtkWidget *file_remove_node = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Remove Node")); g_signal_connect(file_remove_node, "activate", G_CALLBACK(activate_remove_node), this); pwr_tFileName fname; GtkWidget *file_open_xtt = gtk_image_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("Open Runtime _Navigator")); dcli_translate_filename( fname, "$pwr_exe/xtt_navigator.png"); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(file_open_xtt), gtk_image_new_from_file( fname)); g_signal_connect(file_open_xtt, "activate", G_CALLBACK(activate_open_xtt), this); GtkWidget *file_open_opplace = gtk_image_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Open Operatorplace")); dcli_translate_filename( fname, "$pwr_exe/xtt_op.png"); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(file_open_opplace), gtk_image_new_from_file( fname)); g_signal_connect(file_open_opplace, "activate", G_CALLBACK(activate_open_opplace), this); GtkWidget *file_open_rtmon = gtk_image_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("Open Runtime _Monitor")); dcli_translate_filename( fname, "$pwr_exe/xtt_rtmon.png"); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(file_open_rtmon), gtk_image_new_from_file( fname)); g_signal_connect(file_open_rtmon, "activate", G_CALLBACK(activate_open_rtmon), this); GtkWidget *file_save = gtk_image_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Save Configuration")); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(file_save), gtk_image_new_from_stock( "gtk-save", GTK_ICON_SIZE_MENU)); g_signal_connect(file_save, "activate", G_CALLBACK(activate_save), this); GtkMenu *file_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_save); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_add_node); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_modify_node); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_remove_node); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_open_xtt); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_open_opplace); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_open_rtmon); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_close); GtkWidget *file = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_File")); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), file); gtk_menu_item_set_submenu(GTK_MENU_ITEM(file), GTK_WIDGET(file_menu)); // View menu GtkWidget *view_show_events = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("Show _Events")); g_signal_connect(view_show_events, "activate", G_CALLBACK(activate_show_events), this); GtkWidget *view_pop_events = gtk_check_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Pop Events")); g_signal_connect(view_pop_events, "activate", G_CALLBACK(activate_pop_events), this); // Submenu Remote GUI GSList *rg_group = NULL; GtkWidget *view_gui_gtk = gtk_radio_menu_item_new_with_mnemonic( rg_group, "_GTK"); rg_group = gtk_radio_menu_item_get_group( GTK_RADIO_MENU_ITEM(view_gui_gtk)); g_signal_connect( view_gui_gtk, "activate", G_CALLBACK(activate_gui_gtk), this); GtkWidget *view_gui_motif = gtk_radio_menu_item_new_with_mnemonic( rg_group, "_Motif"); rg_group = gtk_radio_menu_item_get_group( GTK_RADIO_MENU_ITEM(view_gui_motif)); g_signal_connect( view_gui_motif, "activate", G_CALLBACK(activate_gui_motif), this); GtkWidget *view_gui = gtk_menu_item_new_with_mnemonic( "_Remote GUI"); GtkMenu *view_gui_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(view_gui_menu), view_gui_gtk); gtk_menu_shell_append(GTK_MENU_SHELL(view_gui_menu), view_gui_motif); gtk_menu_item_set_submenu(GTK_MENU_ITEM(view_gui), GTK_WIDGET(view_gui_menu)); // Submenu Mode GSList *mode_group = NULL; GtkWidget *view_mode_systemstatus = gtk_radio_menu_item_new_with_mnemonic( mode_group, "_SystemStatus"); mode_group = gtk_radio_menu_item_get_group( GTK_RADIO_MENU_ITEM(view_mode_systemstatus)); g_signal_connect( view_mode_systemstatus, "activate", G_CALLBACK(activate_mode_systemstatus), this); GtkWidget *view_mode_userstatus1 = gtk_radio_menu_item_new_with_mnemonic( mode_group, "UserStatus_1"); mode_group = gtk_radio_menu_item_get_group( GTK_RADIO_MENU_ITEM(view_mode_userstatus1)); g_signal_connect( view_mode_userstatus1, "activate", G_CALLBACK(activate_mode_userstatus1), this); GtkWidget *view_mode_userstatus2 = gtk_radio_menu_item_new_with_mnemonic( mode_group, "UserStatus_2"); mode_group = gtk_radio_menu_item_get_group( GTK_RADIO_MENU_ITEM(view_mode_userstatus2)); g_signal_connect( view_mode_userstatus2, "activate", G_CALLBACK(activate_mode_userstatus2), this); GtkWidget *view_mode_userstatus3 = gtk_radio_menu_item_new_with_mnemonic( mode_group, "UserStatus_3"); mode_group = gtk_radio_menu_item_get_group( GTK_RADIO_MENU_ITEM(view_mode_userstatus3)); g_signal_connect( view_mode_userstatus3, "activate", G_CALLBACK(activate_mode_userstatus3), this); GtkWidget *view_mode_userstatus4 = gtk_radio_menu_item_new_with_mnemonic( mode_group, "UserStatus_4"); mode_group = gtk_radio_menu_item_get_group( GTK_RADIO_MENU_ITEM(view_mode_userstatus4)); g_signal_connect( view_mode_userstatus4, "activate", G_CALLBACK(activate_mode_userstatus4), this); GtkWidget *view_mode_userstatus5 = gtk_radio_menu_item_new_with_mnemonic( mode_group, "UserStatus_5"); mode_group = gtk_radio_menu_item_get_group( GTK_RADIO_MENU_ITEM(view_mode_userstatus5)); g_signal_connect( view_mode_userstatus5, "activate", G_CALLBACK(activate_mode_userstatus5), this); GtkWidget *view_mode = gtk_menu_item_new_with_mnemonic( "_Mode"); GtkMenu *view_mode_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(view_mode_menu), view_mode_systemstatus); gtk_menu_shell_append(GTK_MENU_SHELL(view_mode_menu), view_mode_userstatus1); gtk_menu_shell_append(GTK_MENU_SHELL(view_mode_menu), view_mode_userstatus2); gtk_menu_shell_append(GTK_MENU_SHELL(view_mode_menu), view_mode_userstatus3); gtk_menu_shell_append(GTK_MENU_SHELL(view_mode_menu), view_mode_userstatus4); gtk_menu_shell_append(GTK_MENU_SHELL(view_mode_menu), view_mode_userstatus5); gtk_menu_item_set_submenu(GTK_MENU_ITEM(view_mode), GTK_WIDGET(view_mode_menu)); GtkWidget *view_zoom_in = gtk_image_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("Zoom _In")); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(view_zoom_in), gtk_image_new_from_stock( "gtk-zoom-in", GTK_ICON_SIZE_MENU)); g_signal_connect(view_zoom_in, "activate", G_CALLBACK(activate_zoom_in), this); gtk_widget_add_accelerator( view_zoom_in, "activate", accel_g, 'i', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); GtkWidget *view_zoom_out = gtk_image_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("Zoom _Out")); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(view_zoom_out), gtk_image_new_from_stock( "gtk-zoom-out", GTK_ICON_SIZE_MENU)); g_signal_connect(view_zoom_out, "activate", G_CALLBACK(activate_zoom_out), this); gtk_widget_add_accelerator( view_zoom_out, "activate", accel_g, 'o', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); GtkWidget *view_zoom_reset = gtk_image_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("Zoom _Reset")); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(view_zoom_reset), gtk_image_new_from_stock( "gtk-zoom-100", GTK_ICON_SIZE_MENU)); g_signal_connect(view_zoom_reset, "activate", G_CALLBACK(activate_zoom_reset), this); GtkMenu *view_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_show_events); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_pop_events); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_gui); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_mode); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_in); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_out); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_reset); GtkWidget *view = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_View")); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), view); gtk_menu_item_set_submenu(GTK_MENU_ITEM(view), GTK_WIDGET(view_menu)); // Menu Help GtkWidget *help_help = gtk_image_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Help")); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(help_help), gtk_image_new_from_stock( "gtk-help", GTK_ICON_SIZE_MENU)); g_signal_connect(help_help, "activate", G_CALLBACK(activate_help), this); gtk_widget_add_accelerator( help_help, "activate", accel_g, 'h', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); GtkMenu *help_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(help_menu), help_help); GtkWidget *help = gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Help")); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), help); gtk_menu_item_set_submenu(GTK_MENU_ITEM(help), GTK_WIDGET(help_menu)); msg_window = new MsgWindowGtk( this, toplevel, "Status Events", &sts); msg_window->find_wnav_cb = find_node_cb; msg_window->msg( 'I', "Status Montitor started"); nodelistnav = new NodelistNavGtk( this, vbox, msg_window, 0, mode, view_node_descr, msgw_pop, &nodelistnav_widget); // Toolbar GtkToolbar *tools = (GtkToolbar *) g_object_new(GTK_TYPE_TOOLBAR, NULL); GtkWidget *tools_save = gtk_button_new(); gtk_container_add( GTK_CONTAINER(tools_save), gtk_image_new_from_stock( "gtk-save", GTK_ICON_SIZE_SMALL_TOOLBAR)); g_signal_connect(tools_save, "clicked", G_CALLBACK(activate_save), this); g_object_set( tools_save, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_save, CoWowGtk::translate_utf8("Save configuration"), ""); GtkWidget *tools_add_node = gtk_button_new(); gtk_container_add( GTK_CONTAINER(tools_add_node), gtk_image_new_from_stock( "gtk-add", GTK_ICON_SIZE_SMALL_TOOLBAR)); g_signal_connect(tools_add_node, "clicked", G_CALLBACK(activate_add_node), this); g_object_set( tools_add_node, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_add_node,CoWowGtk::translate_utf8("Add node"), ""); GtkWidget *tools_remove_node = gtk_button_new(); gtk_container_add( GTK_CONTAINER(tools_remove_node), gtk_image_new_from_stock( "gtk-remove", GTK_ICON_SIZE_SMALL_TOOLBAR)); g_signal_connect(tools_remove_node, "clicked", G_CALLBACK(activate_remove_node), this); g_object_set( tools_remove_node, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_remove_node,CoWowGtk::translate_utf8("Remove node"), ""); GtkWidget *tools_xtt = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_navigator.png"); gtk_container_add( GTK_CONTAINER(tools_xtt), gtk_image_new_from_file( fname)); g_signal_connect(tools_xtt, "clicked", G_CALLBACK(activate_open_xtt), this); g_object_set( tools_xtt, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_xtt,CoWowGtk::translate_utf8("Start Runtime Navigator on selected node"), ""); GtkWidget *tools_op = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_op.png"); gtk_container_add( GTK_CONTAINER(tools_op), gtk_image_new_from_file( fname)); g_signal_connect(tools_op, "clicked", G_CALLBACK(activate_open_opplace), this); g_object_set( tools_op, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_op,CoWowGtk::translate_utf8("Start Operatorplace on selected node"), ""); GtkWidget *tools_rtmon = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_rtmon.png"); gtk_container_add( GTK_CONTAINER(tools_rtmon), gtk_image_new_from_file( fname)); g_signal_connect(tools_rtmon, "clicked", G_CALLBACK(activate_open_rtmon), this); g_object_set( tools_rtmon, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_rtmon,CoWowGtk::translate_utf8("Start Runtime Monitor on selected node"), ""); GtkWidget *tools_zoom_in = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_zoom_in.png"); gtk_container_add( GTK_CONTAINER(tools_zoom_in), gtk_image_new_from_file( fname)); g_signal_connect(tools_zoom_in, "clicked", G_CALLBACK(activate_zoom_in), this); g_object_set( tools_zoom_in, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_zoom_in,CoWowGtk::translate_utf8("Zoom in"), ""); GtkWidget *tools_zoom_out = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_zoom_out.png"); gtk_container_add( GTK_CONTAINER(tools_zoom_out), gtk_image_new_from_file( fname)); g_signal_connect(tools_zoom_out, "clicked", G_CALLBACK(activate_zoom_out), this); g_object_set( tools_zoom_out, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_zoom_out,CoWowGtk::translate_utf8("Zoom out"), ""); GtkWidget *tools_zoom_reset = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_zoom_reset.png"); gtk_container_add( GTK_CONTAINER(tools_zoom_reset), gtk_image_new_from_file( fname)); g_signal_connect(tools_zoom_reset, "clicked", G_CALLBACK(activate_zoom_reset), this); g_object_set( tools_zoom_reset, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_zoom_reset,CoWowGtk::translate_utf8("Zoom reset"), ""); gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(menu_bar), FALSE, FALSE, 0); gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(tools), FALSE, FALSE, 0); gtk_box_pack_end( GTK_BOX(vbox), GTK_WIDGET(nodelistnav_widget), TRUE, TRUE, 0); gtk_container_add( GTK_CONTAINER(toplevel), vbox); gtk_widget_show_all( toplevel); wow = new CoWowGtk( toplevel); *status = 1; }
EvAlaGtk::EvAlaGtk( void *ev_parent_ctx, GtkWidget *ev_parent_wid, char *ala_name, pwr_tObjid ev_user, int ev_eventname_seg, int ev_width, int ev_height, int ev_x, int ev_y, pwr_tObjid ev_view, unsigned int ev_options, void *widget, pwr_tStatus *status) : EvAla( ev_parent_ctx, ala_name, ev_user, ev_eventname_seg, ev_width, ev_height, ev_x, ev_y, ev_view, ev_options, status), parent_wid(ev_parent_wid), toplevel(0) { pwr_tStatus sts; pwr_sClass_OpPlace *opp; pwr_tFileName fname; int ala_width = 700; int ala_height = 300; *status = 1; if ( ev_width != 0 && ev_height != 0) { ala_width = ev_width; ala_height = ev_height; } // Check user object if ( cdh_ObjidIsNull( user)) { *status = XNAV__NOUSER; return; } sts = gdh_ObjidToPointer( user, (pwr_tAddress *) &opp); if ( EVEN(sts)) { *status = XNAV__NOUSER; return; } ala_size = opp->MaxNoOfAlarms; // create_aliaslist( opp); // Ala Window if ( !(options & ev_mAlaOptions_Embedded)) { toplevel = (GtkWidget *) g_object_new( GTK_TYPE_WINDOW, "default-height", ala_height, "default-width", ala_width, "title", CoWowGtk::translate_utf8(ala_name), NULL); parent_wid_ala = toplevel; g_signal_connect( parent_wid_ala, "delete_event", G_CALLBACK(ala_delete_event), this); g_signal_connect( parent_wid_ala, "destroy", G_CALLBACK(ala_destroy_event), this); g_signal_connect( parent_wid_ala, "focus-in-event", G_CALLBACK(ala_action_inputfocus), this); CoWowGtk::SetWindowIcon( parent_wid_ala); } else parent_wid_ala = (GtkWidget *)widget; ala_vbox = gtk_vbox_new( FALSE, 0); // Menu // Accelerators GtkAccelGroup *accel_g = (GtkAccelGroup *) g_object_new(GTK_TYPE_ACCEL_GROUP, NULL); gtk_window_add_accel_group(GTK_WINDOW(parent_wid_ala), accel_g); GtkMenuBar *menu_bar = (GtkMenuBar *) g_object_new(GTK_TYPE_MENU_BAR, NULL); // File entry GtkWidget *file_print = gtk_image_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Print")); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(file_print), gtk_image_new_from_stock( "gtk-print", GTK_ICON_SIZE_MENU)); g_signal_connect(file_print, "activate", G_CALLBACK(ala_activate_print), this); GtkWidget *file_close = gtk_image_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Close")); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(file_close), gtk_image_new_from_stock( "gtk-close", GTK_ICON_SIZE_MENU)); g_signal_connect(file_close, "activate", G_CALLBACK(ala_activate_exit), this); gtk_widget_add_accelerator( file_close, "activate", accel_g, 'w', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkMenu *file_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_print); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_close); GtkWidget *file = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_File")); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), file); gtk_menu_item_set_submenu(GTK_MENU_ITEM(file), GTK_WIDGET(file_menu)); // Functions entry GtkWidget *functions_ack_last = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Acknowledge")); g_signal_connect( functions_ack_last, "activate", G_CALLBACK(ala_activate_ack_last), this); gtk_widget_add_accelerator( functions_ack_last, "activate", accel_g, 'k', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkWidget *functions_ack_all = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("A_cknowledge All")); g_signal_connect( functions_ack_all, "activate", G_CALLBACK(ala_activate_ack_all), this); GtkWidget *functions_open_plc = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("Open _Program")); g_signal_connect( functions_open_plc, "activate", G_CALLBACK(ala_activate_open_plc), this); gtk_widget_add_accelerator( functions_open_plc, "activate", accel_g, 'l', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkWidget *functions_display_object = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Display object in Navigator")); g_signal_connect( functions_display_object, "activate", G_CALLBACK(ala_activate_display_in_xnav), this); gtk_widget_add_accelerator( functions_display_object, "activate", accel_g, 'd', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkMenu *func_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(func_menu), functions_ack_last); gtk_menu_shell_append(GTK_MENU_SHELL(func_menu), functions_ack_all); gtk_menu_shell_append(GTK_MENU_SHELL(func_menu), functions_open_plc); gtk_menu_shell_append(GTK_MENU_SHELL(func_menu), functions_display_object); GtkWidget *functions = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Functions")); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), functions); gtk_menu_item_set_submenu(GTK_MENU_ITEM(functions), GTK_WIDGET(func_menu)); // View entry GtkWidget *view_shift_view = gtk_image_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("S_hift View")); g_signal_connect( view_shift_view, "activate", G_CALLBACK(ala_activate_shift_view), this); gtk_widget_add_accelerator( view_shift_view, "activate", accel_g, 'n', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkWidget *view_zoom_in = gtk_image_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("Zoom _In")); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(view_zoom_in), gtk_image_new_from_stock( "gtk-zoom-in", GTK_ICON_SIZE_MENU)); g_signal_connect( view_zoom_in, "activate", G_CALLBACK(ala_activate_zoom_in), this); gtk_widget_add_accelerator( view_zoom_in, "activate", accel_g, 'i', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkWidget *view_zoom_out = gtk_image_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("Zoom _Out")); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(view_zoom_out), gtk_image_new_from_stock( "gtk-zoom-out", GTK_ICON_SIZE_MENU)); g_signal_connect( view_zoom_out, "activate", G_CALLBACK(ala_activate_zoom_out), this); gtk_widget_add_accelerator( view_zoom_out, "activate", accel_g, 'o', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkWidget *view_zoom_reset = gtk_image_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("Zoom _Reset")); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(view_zoom_reset), gtk_image_new_from_stock( "gtk-zoom-100", GTK_ICON_SIZE_MENU)); g_signal_connect( view_zoom_reset, "activate", G_CALLBACK(ala_activate_zoom_reset), this); gtk_widget_add_accelerator( view_zoom_reset, "activate", accel_g, 'b', GdkModifierType(GDK_CONTROL_MASK), GTK_ACCEL_VISIBLE); GtkWidget *view_disp_hundredth = gtk_check_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Display hundredth")); g_signal_connect( view_disp_hundredth, "activate", G_CALLBACK(ala_activate_disp_hundredth), this); GtkWidget *view_hide_object = gtk_check_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Hide Event Name")); g_signal_connect( view_hide_object, "activate", G_CALLBACK(ala_activate_hide_object), this); GtkWidget *view_hide_text = gtk_check_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("Hide _Event Text")); g_signal_connect( view_hide_text, "activate", G_CALLBACK(ala_activate_hide_text), this); // Submenu Select View GtkWidget *view_select_flat = gtk_menu_item_new_with_mnemonic( "_Flat"); g_signal_connect( view_select_flat, "activate", G_CALLBACK(ala_activate_select_flat), this); GtkWidget *view_select = gtk_menu_item_new_with_mnemonic( "_Select View"); GtkMenu *view_select_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(view_select_menu), view_select_flat); for ( unsigned int i = 0; i < sizeof(opp->AlarmViews)/sizeof(opp->AlarmViews[0]); i++) { pwr_sClass_AlarmView *viewp; if ( cdh_ObjidIsNull( opp->AlarmViews[i])) break; sts = gdh_ObjidToPointer( opp->AlarmViews[i], (void **)&viewp); if ( ODD(sts)) { alarm_views[i] = opp->AlarmViews[i]; GtkWidget *view_select_view = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8(viewp->Name)); switch ( i) { case 0: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view1), this); break; case 1: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view2), this); break; case 2: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view3), this); break; case 3: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view4), this); break; case 4: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view5), this); break; case 5: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view6), this); break; case 6: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view7), this); break; case 7: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view8), this); break; case 8: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view9), this); break; case 9: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view10), this); break; case 10: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view11), this); break; case 11: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view12), this); break; case 12: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view13), this); break; case 13: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view14), this); break; case 14: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view15), this); break; case 15: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view16), this); break; case 16: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view17), this); break; case 17: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view18), this); break; case 18: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view19), this); break; case 19: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view20), this); break; case 20: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view21), this); break; case 21: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view22), this); break; case 22: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view23), this); break; case 23: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view24), this); break; case 24: g_signal_connect( view_select_view, "activate", G_CALLBACK(ala_activate_select_view25), this); break; } gtk_menu_shell_append(GTK_MENU_SHELL(view_select_menu), view_select_view); } } gtk_menu_item_set_submenu(GTK_MENU_ITEM(view_select), GTK_WIDGET(view_select_menu)); GtkMenu *view_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_shift_view); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_select); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_in); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_out); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_reset); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_disp_hundredth); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_hide_object); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_hide_text); GtkWidget *view = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_View")); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), view); gtk_menu_item_set_submenu(GTK_MENU_ITEM(view), GTK_WIDGET(view_menu)); // Help entry GtkWidget *help_help = gtk_image_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Help")); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(help_help), gtk_image_new_from_stock( "gtk-help", GTK_ICON_SIZE_MENU)); g_signal_connect(help_help, "activate", G_CALLBACK(ala_activate_help), this); gtk_widget_add_accelerator( help_help, "activate", accel_g, 'h', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); GtkWidget *help_helpevent = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("Help Selected Event")); g_signal_connect( help_helpevent, "activate", G_CALLBACK(ala_activate_helpevent), this); GtkMenu *help_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(help_menu), help_help); gtk_menu_shell_append(GTK_MENU_SHELL(help_menu), help_helpevent); GtkWidget *help = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("_Help")); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), help); gtk_menu_item_set_submenu(GTK_MENU_ITEM(help), GTK_WIDGET(help_menu)); // Create ala evlist ala = new EvListGtk( this, ala_vbox, ev_eType_AlarmList, ala_size, eventname_seg, &ala_widget, ala_init_cb); ala->start_trace_cb = &ala_start_trace_cb; ala->display_in_xnav_cb =&ala_display_in_xnav_cb; ala->name_to_alias_cb = &ala_name_to_alias_cb; ala->popup_menu_cb = &ala_popup_menu_cb; ala->sound_cb = &ala_sound_cb; ala->help_event_cb = &help_event_cb; ala->selection_changed_cb = &ala_selection_changed_cb; // Toolbar GtkToolbar *tools = (GtkToolbar *) g_object_new(GTK_TYPE_TOOLBAR, NULL); GtkWidget *tools_ack = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_acknowledge.png"); gtk_container_add( GTK_CONTAINER( tools_ack), gtk_image_new_from_file( fname)); g_signal_connect(tools_ack, "clicked", G_CALLBACK(ala_activate_ack_last), this); g_object_set( tools_ack, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_ack, CoWowGtk::translate_utf8("Acknowledge"), ""); GtkWidget *tools_zoom_in = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_zoom_in.png"); gtk_container_add( GTK_CONTAINER(tools_zoom_in), gtk_image_new_from_file( fname)); g_signal_connect(tools_zoom_in, "clicked", G_CALLBACK(ala_activate_zoom_in), this); g_object_set( tools_zoom_in, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_zoom_in,CoWowGtk::translate_utf8("Zoom in"), ""); GtkWidget *tools_zoom_out = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_zoom_out.png"); gtk_container_add( GTK_CONTAINER(tools_zoom_out), gtk_image_new_from_file( fname)); g_signal_connect(tools_zoom_out, "clicked", G_CALLBACK(ala_activate_zoom_out), this); g_object_set( tools_zoom_out, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_zoom_out,CoWowGtk::translate_utf8("Zoom out"), ""); GtkWidget *tools_zoom_reset = gtk_button_new(); dcli_translate_filename( fname, "$pwr_exe/xtt_zoom_reset.png"); gtk_container_add( GTK_CONTAINER(tools_zoom_reset), gtk_image_new_from_file( fname)); g_signal_connect(tools_zoom_reset, "clicked", G_CALLBACK(ala_activate_zoom_reset), this); g_object_set( tools_zoom_reset, "can-focus", FALSE, NULL); gtk_toolbar_append_widget( tools, tools_zoom_reset,CoWowGtk::translate_utf8("Zoom reset"), ""); ala_methodtoolbar = new XttMethodToolbarGtk(0, 0, ~0, ""); GtkToolbar *tools_meth = (GtkToolbar *) ((XttMethodToolbarGtk *)ala_methodtoolbar)->build(); ala_methodtoolbar->m_xnav = (XNav *)((Ev *)parent_ctx)->parent_ctx; ala_methodtoolbar->m_parent_ctx = ala; ala_methodtoolbar->get_select_cb = ala->get_select; ala_sup_methodtoolbar = new XttMethodToolbarGtk(0, 0, mt_mMethod_OpenPlc | mt_mMethod_RtNavigator, " for supervisory object"); GtkToolbar *tools_sup = (GtkToolbar *) ((XttMethodToolbarGtk *)ala_sup_methodtoolbar)->build(); ala_sup_methodtoolbar->m_xnav = (XNav *)((Ev *)parent_ctx)->parent_ctx; ala_sup_methodtoolbar->m_parent_ctx = ala; ala_sup_methodtoolbar->get_select_cb = ala->get_select_supobject; GtkWidget *ala_toolsbox = gtk_hbox_new( FALSE, 0); gtk_box_pack_start( GTK_BOX(ala_toolsbox), GTK_WIDGET(tools), FALSE, FALSE, 0); gtk_box_pack_start( GTK_BOX(ala_toolsbox), GTK_WIDGET(gtk_separator_tool_item_new()), FALSE, FALSE, 4); gtk_box_pack_start( GTK_BOX(ala_toolsbox), GTK_WIDGET(tools_sup), FALSE, FALSE, 0); gtk_box_pack_start( GTK_BOX(ala_toolsbox), GTK_WIDGET(gtk_separator_tool_item_new()), FALSE, FALSE, 4); gtk_box_pack_start( GTK_BOX(ala_toolsbox), GTK_WIDGET(tools_meth), FALSE, FALSE, 0); gtk_box_pack_start( GTK_BOX(ala_vbox), GTK_WIDGET(menu_bar), FALSE, FALSE, 0); gtk_box_pack_start( GTK_BOX(ala_vbox), GTK_WIDGET(ala_toolsbox), FALSE, FALSE, 0); gtk_box_pack_end( GTK_BOX(ala_vbox), GTK_WIDGET(ala_widget), TRUE, TRUE, 0); if ( !(options & ev_mAlaOptions_Embedded)) { gtk_container_add( GTK_CONTAINER(parent_wid_ala), ala_vbox); } // gtk_widget_show_all( parent_wid_ala); ala_methodtoolbar->set_sensitive(); ala_sup_methodtoolbar->set_sensitive(); // } if ( !(options & ev_mAlaOptions_Embedded)) { gtk_widget_show_all( parent_wid_ala); if ( !(x == 0 && y == 0)) { // Set position gtk_window_move( GTK_WINDOW(parent_wid_ala), x, y); } } else gtk_widget_set_size_request( ala_vbox, ala_width, ala_height); ala_displayed = 1; wow = new CoWowGtk( parent_wid_ala); *status = 1; }
void ags_automation_toolbar_init(AgsAutomationToolbar *automation_toolbar) { GtkMenuToolButton *menu_tool_button; GtkMenu *menu; GtkLabel *label; GtkCellRenderer *cell_renderer; automation_toolbar->position = g_object_new(GTK_TYPE_TOGGLE_BUTTON, "image\0", gtk_image_new_from_stock(GTK_STOCK_JUMP_TO, GTK_ICON_SIZE_LARGE_TOOLBAR), "relief\0", GTK_RELIEF_NONE, NULL); gtk_toolbar_append_widget((GtkToolbar *) automation_toolbar, (GtkWidget *) automation_toolbar->position, "position cursor\0", NULL); automation_toolbar->edit = g_object_new(GTK_TYPE_TOGGLE_BUTTON, "image\0", gtk_image_new_from_stock(GTK_STOCK_EDIT, GTK_ICON_SIZE_LARGE_TOOLBAR), "relief\0", GTK_RELIEF_NONE, NULL); automation_toolbar->selected_edit_mode = automation_toolbar->edit; gtk_toolbar_append_widget((GtkToolbar *) automation_toolbar, (GtkWidget *) automation_toolbar->edit, "edit automation\0", NULL); automation_toolbar->clear = g_object_new(GTK_TYPE_TOGGLE_BUTTON, "image\0", gtk_image_new_from_stock(GTK_STOCK_CLEAR, GTK_ICON_SIZE_LARGE_TOOLBAR), "relief\0", GTK_RELIEF_NONE, NULL); automation_toolbar->select = g_object_new(GTK_TYPE_TOGGLE_BUTTON, "image\0", gtk_image_new_from_stock(GTK_STOCK_SELECT_ALL, GTK_ICON_SIZE_LARGE_TOOLBAR), "relief\0", GTK_RELIEF_NONE, NULL); gtk_toolbar_append_widget((GtkToolbar *) automation_toolbar, (GtkWidget *) automation_toolbar->select, "select automation\0", NULL); automation_toolbar->copy = (GtkButton *) g_object_new(GTK_TYPE_BUTTON, "image\0", gtk_image_new_from_stock(GTK_STOCK_COPY, GTK_ICON_SIZE_LARGE_TOOLBAR), "relief\0", GTK_RELIEF_NONE, NULL); gtk_toolbar_append_widget((GtkToolbar *) automation_toolbar, automation_toolbar->copy, "copy automation\0", NULL); automation_toolbar->cut = (GtkButton *) g_object_new(GTK_TYPE_BUTTON, "image\0", gtk_image_new_from_stock(GTK_STOCK_CUT, GTK_ICON_SIZE_LARGE_TOOLBAR), "relief\0", GTK_RELIEF_NONE, NULL); gtk_toolbar_append_widget((GtkToolbar *) automation_toolbar, automation_toolbar->cut, "cut automation\0", NULL); automation_toolbar->paste = (GtkButton *) g_object_new(GTK_TYPE_BUTTON, "image\0", gtk_image_new_from_stock(GTK_STOCK_PASTE, GTK_ICON_SIZE_LARGE_TOOLBAR), "relief\0", GTK_RELIEF_NONE, NULL); gtk_toolbar_append_widget((GtkToolbar *) automation_toolbar, automation_toolbar->paste, "paste automation\0", NULL); /* */ automation_toolbar->zoom_history = 4; label = gtk_label_new("zoom\0"); gtk_container_add(GTK_CONTAINER(automation_toolbar), label); automation_toolbar->zoom = ags_zoom_combo_box_new(); gtk_combo_box_set_active(automation_toolbar->zoom, 4); gtk_toolbar_append_widget((GtkToolbar *) automation_toolbar, (GtkWidget *) automation_toolbar->zoom, NULL, NULL); /* */ label = gtk_label_new("port\0"); gtk_container_add(GTK_CONTAINER(automation_toolbar), label); automation_toolbar->port = gtk_combo_box_new(); cell_renderer = gtk_cell_renderer_toggle_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(automation_toolbar->port), cell_renderer, FALSE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(automation_toolbar->port), cell_renderer, "active\0", 0, NULL); gtk_cell_renderer_toggle_set_activatable(cell_renderer, TRUE); cell_renderer = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(automation_toolbar->port), cell_renderer, FALSE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(automation_toolbar->port), cell_renderer, "text\0", 1, NULL); gtk_toolbar_append_widget((GtkToolbar *) automation_toolbar, (GtkWidget *) automation_toolbar->port, NULL, NULL); }