📄 build_menus.c
字号:
glade_menuitem = gtk_menu_item_new_with_label (_("Downsample")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (new_menu), glade_menuitem); gtk_signal_connect (GTK_OBJECT (glade_menuitem), "activate", GTK_SIGNAL_FUNC (on_bayer_menu_activate), (int*)BAYER_DECODING_DOWNSAMPLE); gtk_option_menu_set_menu (GTK_OPTION_MENU (new_option_menu), new_menu); // menu history pthread_mutex_lock(&camera->uimutex); gtk_option_menu_set_history(GTK_OPTION_MENU(lookup_widget(main_window, "bayer_menu")),camera->bayer); pthread_mutex_unlock(&camera->uimutex); }voidBuildBayerPatternMenu(void){ GtkWidget* new_option_menu; GtkWidget* new_menu; GtkWidget* glade_menuitem; // build bayer option menu: gtk_widget_destroy(GTK_WIDGET(lookup_widget(main_window,"pattern_menu"))); // remove previous menu new_option_menu = gtk_option_menu_new (); gtk_widget_ref (new_option_menu); gtk_object_set_data_full (GTK_OBJECT (main_window), "pattern_menu", new_option_menu, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (new_option_menu); gtk_table_attach (GTK_TABLE (lookup_widget(main_window,"table61")), new_option_menu, 0, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_container_set_border_width (GTK_CONTAINER (new_option_menu), 1); new_menu = gtk_menu_new (); // add BGGR option glade_menuitem = gtk_menu_item_new_with_label (_("BGGR")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (new_menu), glade_menuitem); gtk_signal_connect (GTK_OBJECT (glade_menuitem), "activate", GTK_SIGNAL_FUNC (on_bayer_pattern_menu_activate), (int*)COLOR_FILTER_FORMAT7_BGGR); // add GRBG option glade_menuitem = gtk_menu_item_new_with_label (_("GRBG")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (new_menu), glade_menuitem); gtk_signal_connect (GTK_OBJECT (glade_menuitem), "activate", GTK_SIGNAL_FUNC (on_bayer_pattern_menu_activate), (int*)COLOR_FILTER_FORMAT7_GRBG); // add RGGB option glade_menuitem = gtk_menu_item_new_with_label (_("RGGB")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (new_menu), glade_menuitem); gtk_signal_connect (GTK_OBJECT (glade_menuitem), "activate", GTK_SIGNAL_FUNC (on_bayer_pattern_menu_activate), (int*)COLOR_FILTER_FORMAT7_RGGB); // add GBRG option glade_menuitem = gtk_menu_item_new_with_label (_("GBRG")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (new_menu), glade_menuitem); gtk_signal_connect (GTK_OBJECT (glade_menuitem), "activate", GTK_SIGNAL_FUNC (on_bayer_pattern_menu_activate), (int*)COLOR_FILTER_FORMAT7_GBRG); /* // add Auto option glade_menuitem = gtk_menu_item_new_with_label (_("Auto")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (new_menu), glade_menuitem); gtk_signal_connect (GTK_OBJECT (glade_menuitem), "activate", GTK_SIGNAL_FUNC (on_bayer_pattern_menu_activate), (int*)0); */ gtk_option_menu_set_menu (GTK_OPTION_MENU (new_option_menu), new_menu); // menu history pthread_mutex_lock(&camera->uimutex); gtk_option_menu_set_history(GTK_OPTION_MENU(lookup_widget(main_window, "pattern_menu")), camera->bayer_pattern); pthread_mutex_unlock(&camera->uimutex); }voidBuildStereoMenu(void){ GtkWidget* new_option_menu; GtkWidget* new_menu; GtkWidget* glade_menuitem; // build bayer option menu: gtk_widget_destroy(GTK_WIDGET(lookup_widget(main_window,"stereo_menu"))); // remove previous menu new_option_menu = gtk_option_menu_new (); gtk_widget_ref (new_option_menu); gtk_object_set_data_full (GTK_OBJECT (main_window), "stereo_menu", new_option_menu, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (new_option_menu); gtk_table_attach (GTK_TABLE (lookup_widget(main_window,"table61")), new_option_menu, 0, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_container_set_border_width (GTK_CONTAINER (new_option_menu), 1); new_menu = gtk_menu_new (); // add no stereo option glade_menuitem = gtk_menu_item_new_with_label (_("No Stereo")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (new_menu), glade_menuitem); gtk_signal_connect (GTK_OBJECT (glade_menuitem), "activate", GTK_SIGNAL_FUNC (on_stereo_menu_activate), (int*)NO_STEREO_DECODING); // add interlaced option glade_menuitem = gtk_menu_item_new_with_label (_("St. Interlaced")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (new_menu), glade_menuitem); gtk_signal_connect (GTK_OBJECT (glade_menuitem), "activate", GTK_SIGNAL_FUNC (on_stereo_menu_activate), (int*)STEREO_DECODING_INTERLACED); // add field option glade_menuitem = gtk_menu_item_new_with_label (_("St. Field")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (new_menu), glade_menuitem); gtk_signal_connect (GTK_OBJECT (glade_menuitem), "activate", GTK_SIGNAL_FUNC (on_stereo_menu_activate), (int*)STEREO_DECODING_FIELD); gtk_option_menu_set_menu (GTK_OPTION_MENU (new_option_menu), new_menu); // menu history pthread_mutex_lock(&camera->uimutex); gtk_option_menu_set_history(GTK_OPTION_MENU(lookup_widget(main_window, "stereo_menu")),camera->stereo); pthread_mutex_unlock(&camera->uimutex); }voidBuildOverlayPatternMenu(void){ GtkWidget* new_option_menu; GtkWidget* new_menu; GtkWidget* glade_menuitem; // build bayer option menu: gtk_widget_destroy(GTK_WIDGET(lookup_widget(main_window,"overlay_pattern_menu"))); // remove previous menu new_option_menu = gtk_option_menu_new (); gtk_widget_ref (new_option_menu); gtk_object_set_data_full (GTK_OBJECT (main_window), "overlay_pattern_menu", new_option_menu, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (new_option_menu); gtk_table_attach (GTK_TABLE (lookup_widget(main_window,"table80")), new_option_menu, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_container_set_border_width (GTK_CONTAINER (new_option_menu), 1); new_menu = gtk_menu_new (); // OFF glade_menuitem = gtk_menu_item_new_with_label (_("OFF")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (new_menu), glade_menuitem); gtk_signal_connect (GTK_OBJECT (glade_menuitem), "activate", GTK_SIGNAL_FUNC (on_overlay_pattern_menu_activate), (int*)OVERLAY_PATTERN_OFF); // Rectangle glade_menuitem = gtk_menu_item_new_with_label (_("Rectangle")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (new_menu), glade_menuitem); gtk_signal_connect (GTK_OBJECT (glade_menuitem), "activate", GTK_SIGNAL_FUNC (on_overlay_pattern_menu_activate), (int*)OVERLAY_PATTERN_RECTANGLE); // Small cross glade_menuitem = gtk_menu_item_new_with_label (_("Small Cross")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (new_menu), glade_menuitem); gtk_signal_connect (GTK_OBJECT (glade_menuitem), "activate", GTK_SIGNAL_FUNC (on_overlay_pattern_menu_activate), (int*)OVERLAY_PATTERN_SMALL_CROSS); // Large cross glade_menuitem = gtk_menu_item_new_with_label (_("Large Cross")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (new_menu), glade_menuitem); gtk_signal_connect (GTK_OBJECT (glade_menuitem), "activate", GTK_SIGNAL_FUNC (on_overlay_pattern_menu_activate), (int*)OVERLAY_PATTERN_LARGE_CROSS); // Golden mean (rem: golden mean is more complex and involves the golden ratio of 1.618... // The "thirds" is a simplification glade_menuitem = gtk_menu_item_new_with_label (_("Thirds")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (new_menu), glade_menuitem); gtk_signal_connect (GTK_OBJECT (glade_menuitem), "activate", GTK_SIGNAL_FUNC (on_overlay_pattern_menu_activate), (int*)OVERLAY_PATTERN_GOLDEN_MEAN); /* // Image glade_menuitem = gtk_menu_item_new_with_label (_("Custom image")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (new_menu), glade_menuitem); gtk_signal_connect (GTK_OBJECT (glade_menuitem), "activate", GTK_SIGNAL_FUNC (on_overlay_pattern_menu_activate), (int*)OVERLAY_PATTERN_IMAGE); */ gtk_option_menu_set_menu (GTK_OPTION_MENU (new_option_menu), new_menu); // menu history pthread_mutex_lock(&camera->uimutex); gtk_option_menu_set_history(GTK_OPTION_MENU(lookup_widget(main_window, "overlay_pattern_menu")),camera->prefs.overlay_pattern); pthread_mutex_unlock(&camera->uimutex); }voidBuildOverlayTypeMenu(void){ GtkWidget* new_option_menu; GtkWidget* new_menu; GtkWidget* glade_menuitem; // build bayer option menu: gtk_widget_destroy(GTK_WIDGET(lookup_widget(main_window,"overlay_type_menu"))); // remove previous menu new_option_menu = gtk_option_menu_new (); gtk_widget_ref (new_option_menu); gtk_object_set_data_full (GTK_OBJECT (main_window), "overlay_type_menu", new_option_menu, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (new_option_menu); gtk_table_attach (GTK_TABLE (lookup_widget(main_window,"table80")), new_option_menu, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_container_set_border_width (GTK_CONTAINER (new_option_menu), 1); new_menu = gtk_menu_new (); // Replace glade_menuitem = gtk_menu_item_new_with_label (_("Replace")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (new_menu), glade_menuitem); gtk_signal_connect (GTK_OBJECT (glade_menuitem), "activate", GTK_SIGNAL_FUNC (on_overlay_type_menu_activate), (int*)OVERLAY_TYPE_REPLACE); // Random glade_menuitem = gtk_menu_item_new_with_label (_("Random")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (new_menu), glade_menuitem); gtk_signal_connect (GTK_OBJECT (glade_menuitem), "activate", GTK_SIGNAL_FUNC (on_overlay_type_menu_activate), (int*)OVERLAY_TYPE_RANDOM); // Invert glade_menuitem = gtk_menu_item_new_with_label (_("Invert")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (new_menu), glade_menuitem); gtk_signal_connect (GTK_OBJECT (glade_menuitem), "activate", GTK_SIGNAL_FUNC (on_overlay_type_menu_activate), (int*)OVERLAY_TYPE_INVERT); /* // Average glade_menuitem = gtk_menu_item_new_with_label (_("Average")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (new_menu), glade_menuitem); gtk_signal_connect (GTK_OBJECT (glade_menuitem), "activate", GTK_SIGNAL_FUNC (on_overlay_type_menu_activate), (int*)OVERLAY_TYPE_AVERAGE); */ gtk_option_menu_set_menu (GTK_OPTION_MENU (new_option_menu), new_menu); // menu history pthread_mutex_lock(&camera->uimutex); gtk_option_menu_set_history(GTK_OPTION_MENU(lookup_widget(main_window, "overlay_type_menu")),camera->prefs.overlay_type); pthread_mutex_unlock(&camera->uimutex); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -