gint main (gint argc, gchar **argv) { GtkWidget *window, *toolbar, *grid, *treeview, *scrolled_window; GtkWidget *hbox, *hbox1, *hbox2, *checkbox, *option_menu, *menu; gint i; static const gchar *toolbar_styles[] = { "icons", "text", "both (vertical)", "both (horizontal)" }; GtkToolItem *item; GtkListStore *store; GtkWidget *image; GtkWidget *menuitem; GtkWidget *button; GtkWidget *label; GIcon *gicon; GSList *group; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_signal_connect (window, "destroy", G_CALLBACK(gtk_main_quit), NULL); grid = gtk_grid_new (); gtk_container_add (GTK_CONTAINER (window), grid); toolbar = gtk_toolbar_new (); gtk_grid_attach (GTK_GRID (grid), toolbar, 0, 0, 2, 1); hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3); gtk_container_set_border_width (GTK_CONTAINER (hbox1), 5); gtk_grid_attach (GTK_GRID (grid), hbox1, 1, 1, 1, 1); hbox2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2); gtk_container_set_border_width (GTK_CONTAINER (hbox2), 5); gtk_grid_attach (GTK_GRID (grid), hbox2, 1, 2, 1, 1); checkbox = gtk_check_button_new_with_mnemonic("_Vertical"); gtk_box_pack_start (GTK_BOX (hbox1), checkbox, FALSE, FALSE, 0); g_signal_connect (checkbox, "toggled", G_CALLBACK (change_orientation), toolbar); checkbox = gtk_check_button_new_with_mnemonic("_Show Arrow"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbox), TRUE); gtk_box_pack_start (GTK_BOX (hbox1), checkbox, FALSE, FALSE, 0); g_signal_connect (checkbox, "toggled", G_CALLBACK (change_show_arrow), toolbar); checkbox = gtk_check_button_new_with_mnemonic("_Set Toolbar Style:"); g_signal_connect (checkbox, "toggled", G_CALLBACK (set_toolbar_style_toggled), toolbar); gtk_box_pack_start (GTK_BOX (hbox1), checkbox, FALSE, FALSE, 0); option_menu = gtk_combo_box_text_new (); gtk_widget_set_sensitive (option_menu, FALSE); g_object_set_data (G_OBJECT (checkbox), "option-menu", option_menu); for (i = 0; i < G_N_ELEMENTS (toolbar_styles); i++) gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (option_menu), toolbar_styles[i]); gtk_combo_box_set_active (GTK_COMBO_BOX (option_menu), gtk_toolbar_get_style (GTK_TOOLBAR (toolbar))); gtk_box_pack_start (GTK_BOX (hbox2), option_menu, FALSE, FALSE, 0); g_signal_connect (option_menu, "changed", G_CALLBACK (change_toolbar_style), toolbar); checkbox = gtk_check_button_new_with_mnemonic("_Set Icon Size:"); g_signal_connect (checkbox, "toggled", G_CALLBACK (set_icon_size_toggled), toolbar); gtk_box_pack_start (GTK_BOX (hbox2), checkbox, FALSE, FALSE, 0); option_menu = gtk_combo_box_text_new (); g_object_set_data (G_OBJECT (checkbox), "option-menu", option_menu); gtk_widget_set_sensitive (option_menu, FALSE); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (option_menu), "small toolbar"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (option_menu), "large toolbar"); gtk_box_pack_start (GTK_BOX (hbox2), option_menu, FALSE, FALSE, 0); g_signal_connect (option_menu, "changed", G_CALLBACK (icon_size_history_changed), toolbar); scrolled_window = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_widget_set_hexpand (scrolled_window, TRUE); gtk_widget_set_vexpand (scrolled_window, TRUE); gtk_grid_attach (GTK_GRID (grid), scrolled_window, 1, 3, 1, 1); store = create_items_list (&treeview); gtk_container_add (GTK_CONTAINER (scrolled_window), treeview); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "document-new"); gtk_tool_button_set_label (GTK_TOOL_BUTTON (item), "Custom label"); add_item_to_list (store, item, "New"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); gdk_threads_add_timeout (3000, (GSourceFunc) timeout_cb, item); gtk_tool_item_set_expand (item, TRUE); menu = gtk_menu_new (); for (i = 0; i < 20; i++) { char *text; text = g_strdup_printf ("Menuitem %d", i); menuitem = gtk_menu_item_new_with_label (text); g_free (text); gtk_widget_show (menuitem); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); } item = gtk_menu_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "document-open"); gtk_tool_button_set_label (GTK_TOOL_BUTTON (item), "Open"); gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (item), menu); add_item_to_list (store, item, "Open"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); gdk_threads_add_timeout (3000, (GSourceFunc) timeout_cb1, item); menu = gtk_menu_new (); for (i = 0; i < 20; i++) { char *text; text = g_strdup_printf ("A%d", i); menuitem = gtk_menu_item_new_with_label (text); g_free (text); gtk_widget_show (menuitem); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); } item = gtk_menu_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "go-previous"); gtk_tool_button_set_label (GTK_TOOL_BUTTON (item), "Back"); gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (item), menu); add_item_to_list (store, item, "BackWithHistory"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_separator_tool_item_new (); add_item_to_list (store, item, "-----"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); image = gtk_image_new_from_icon_name ("dialog-warning", GTK_ICON_SIZE_DIALOG); item = gtk_tool_item_new (); gtk_widget_show (image); gtk_container_add (GTK_CONTAINER (item), image); add_item_to_list (store, item, "(Custom Item)"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "go-previous"); gtk_tool_button_set_label (GTK_TOOL_BUTTON (item), "Back"); add_item_to_list (store, item, "Back"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_separator_tool_item_new (); add_item_to_list (store, item, "-----"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "go-next"); gtk_tool_button_set_label (GTK_TOOL_BUTTON (item), "Forward"); add_item_to_list (store, item, "Forward"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_toggle_tool_button_new (); gtk_tool_button_set_label (GTK_TOOL_BUTTON (item), "Bold"); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "format-text-bold"); g_signal_connect (item, "toggled", G_CALLBACK (bold_toggled), NULL); add_item_to_list (store, item, "Bold"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); item = gtk_separator_tool_item_new (); add_item_to_list (store, item, "-----"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); gtk_tool_item_set_expand (item, TRUE); gtk_separator_tool_item_set_draw (GTK_SEPARATOR_TOOL_ITEM (item), FALSE); g_assert (gtk_toolbar_get_nth_item (GTK_TOOLBAR (toolbar), 0) != 0); item = gtk_radio_tool_button_new (NULL); gtk_tool_button_set_label (GTK_TOOL_BUTTON (item), "Left"); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "format-justify-left"); group = gtk_radio_tool_button_get_group (GTK_RADIO_TOOL_BUTTON (item)); add_item_to_list (store, item, "Left"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_radio_tool_button_new (group); gtk_tool_button_set_label (GTK_TOOL_BUTTON (item), "Center"); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "format-justify-center"); group = gtk_radio_tool_button_get_group (GTK_RADIO_TOOL_BUTTON (item)); add_item_to_list (store, item, "Center"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_radio_tool_button_new (group); gtk_tool_button_set_label (GTK_TOOL_BUTTON (item), "Right"); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "format-justify-right"); add_item_to_list (store, item, "Right"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_tool_button_new (gtk_image_new_from_file ("apple-red.png"), "_Apple"); add_item_to_list (store, item, "Apple"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (item), TRUE); gicon = g_content_type_get_icon ("video/ogg"); image = gtk_image_new_from_gicon (gicon, GTK_ICON_SIZE_LARGE_TOOLBAR); g_object_unref (gicon); item = gtk_tool_button_new (image, "Video"); add_item_to_list (store, item, "Video"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); image = gtk_image_new_from_icon_name ("utilities-terminal", GTK_ICON_SIZE_LARGE_TOOLBAR); item = gtk_tool_button_new (image, "Terminal"); add_item_to_list (store, item, "Terminal"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); image = gtk_spinner_new (); gtk_spinner_start (GTK_SPINNER (image)); item = gtk_tool_button_new (image, "Spinner"); add_item_to_list (store, item, "Spinner"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); gtk_widget_set_hexpand (hbox, TRUE); gtk_grid_attach (GTK_GRID (grid), hbox, 1, 4, 1, 1); button = gtk_button_new_with_label ("Drag me to the toolbar"); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0); label = gtk_label_new ("Drop index:"); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); label = gtk_label_new (""); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); checkbox = gtk_check_button_new_with_mnemonic("_Right to left"); if (gtk_widget_get_default_direction () == GTK_TEXT_DIR_RTL) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbox), TRUE); else gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbox), FALSE); g_signal_connect (checkbox, "toggled", G_CALLBACK (rtl_toggled), NULL); gtk_box_pack_end (GTK_BOX (hbox), checkbox, FALSE, FALSE, 0); gtk_drag_source_set (button, GDK_BUTTON1_MASK, target_table, G_N_ELEMENTS (target_table), GDK_ACTION_MOVE); gtk_drag_dest_set (toolbar, GTK_DEST_DEFAULT_DROP, target_table, G_N_ELEMENTS (target_table), GDK_ACTION_MOVE); g_signal_connect (toolbar, "drag_motion", G_CALLBACK (toolbar_drag_motion), NULL); g_signal_connect (toolbar, "drag_leave", G_CALLBACK (toolbar_drag_leave), NULL); g_signal_connect (toolbar, "drag_drop", G_CALLBACK (toolbar_drag_drop), label); gtk_widget_show_all (window); g_signal_connect (window, "delete_event", G_CALLBACK (gtk_main_quit), NULL); g_signal_connect (toolbar, "popup_context_menu", G_CALLBACK (popup_context_menu), NULL); gtk_main (); return 0; }
GList *a_select_geoname_from_list(GtkWindow *parent, GList *geonames, gboolean multiple_selection_allowed, const gchar *title, const gchar *msg) { GtkTreeIter iter; GtkCellRenderer *renderer; GtkCellRenderer *toggle_render; GtkWidget *view; found_geoname *geoname; gchar *latlon_string; int column_runner; gboolean checked; gboolean to_copy; GtkWidget *dialog = gtk_dialog_new_with_buttons (title, parent, GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL); GtkWidget *label = gtk_label_new ( msg ); GtkTreeStore *store; if (multiple_selection_allowed) { store = gtk_tree_store_new(4, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); } else { store = gtk_tree_store_new(3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); } GList *geoname_runner = geonames; while (geoname_runner) { geoname = (found_geoname *)geoname_runner->data; latlon_string = g_strdup_printf("(%f,%f)", geoname->ll.lat, geoname->ll.lon); gtk_tree_store_append(store, &iter, NULL); if (multiple_selection_allowed) { gtk_tree_store_set(store, &iter, 0, FALSE, 1, geoname->name, 2, geoname->country, 3, latlon_string, -1); } else { gtk_tree_store_set(store, &iter, 0, geoname->name, 1, geoname->country, 2, latlon_string, -1); } geoname_runner = g_list_next(geoname_runner); g_free(latlon_string); } view = gtk_tree_view_new(); renderer = gtk_cell_renderer_text_new(); column_runner = 0; if (multiple_selection_allowed) { toggle_render = gtk_cell_renderer_toggle_new(); g_object_set(toggle_render, "activatable", TRUE, NULL); g_signal_connect(toggle_render, "toggled", (GCallback) buttonToggled, GTK_TREE_MODEL(store)); gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW(view), -1, "Select", toggle_render, "active", column_runner, NULL); column_runner++; } gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW(view), -1, "Name", renderer, "text", column_runner, NULL); column_runner++; gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW(view), -1, "Country", renderer, "text", column_runner, NULL); column_runner++; gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW(view), -1, "Lat/Lon", renderer, "text", column_runner, NULL); gtk_tree_view_set_headers_visible( GTK_TREE_VIEW(view), TRUE); gtk_tree_view_set_model(GTK_TREE_VIEW(view), GTK_TREE_MODEL(store)); gtk_tree_selection_set_mode( gtk_tree_view_get_selection(GTK_TREE_VIEW(view)), multiple_selection_allowed ? GTK_SELECTION_MULTIPLE : GTK_SELECTION_BROWSE ); g_object_unref(store); gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox), label, FALSE, FALSE, 0); gtk_widget_show ( label ); gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox), view, FALSE, FALSE, 0); gtk_widget_show ( view ); while ( gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT ) { GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view)); GList *selected_geonames = NULL; gtk_tree_model_get_iter_first( GTK_TREE_MODEL(store), &iter); geoname_runner = geonames; while (geoname_runner) { to_copy = FALSE; if (multiple_selection_allowed) { gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, 0, &checked, -1); if (checked) { to_copy = TRUE; } } else { if (gtk_tree_selection_iter_is_selected(selection, &iter)) { to_copy = TRUE; } } if (to_copy) { found_geoname *copied = copy_found_geoname(geoname_runner->data); selected_geonames = g_list_prepend(selected_geonames, copied); } geoname_runner = g_list_next(geoname_runner); gtk_tree_model_iter_next(GTK_TREE_MODEL(store), &iter); } if (selected_geonames) { gtk_widget_destroy ( dialog ); return (selected_geonames); } a_dialog_error_msg(parent, _("Nothing was selected")); } gtk_widget_destroy ( dialog ); return NULL; }
WCrrGtk::WCrrGtk( GtkWidget *xa_parent_wid, void *xa_parent_ctx, ldh_tSesContext xa_ldhses, pwr_sAttrRef *xa_objar, int xa_advanced_user, int *xa_sts) : WCrr( xa_parent_ctx, xa_ldhses, xa_objar, xa_advanced_user, xa_sts), parent_wid(xa_parent_wid) { int sts; char *namep; int size; pwr_tAName title; *xa_sts = ldh_AttrRefToName( xa_ldhses, &objar, cdh_mNName, &namep, &size); if ( EVEN(*xa_sts)) return; strncpy( title, namep, sizeof(title)); toplevel = (GtkWidget *) g_object_new( GTK_TYPE_WINDOW, "default-height", 420, "default-width", 600, "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); 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_from_stock(GTK_STOCK_PRINT, accel_g); g_signal_connect(file_print, "activate", G_CALLBACK(activate_print), 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_exit), 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_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_plc = gtk_menu_item_new_with_mnemonic( CoWowGtk::translate_utf8("Open _Program")); g_signal_connect( functions_open_plc, "activate", G_CALLBACK(activate_openplc), this); gtk_widget_add_accelerator( functions_open_plc, "activate", accel_g, 'l', 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_open_plc); 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)); // 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(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(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)); xcrrnav = new WAttNavGtk( (void *)this, wattnav_eType_CrossRef, vbox, "Plant", xa_ldhses, objar, 0, xa_advanced_user, 1, wb_eUtility_AttributeEditor, &brow_widget, &sts); // xcrrnav->popup_menu_cb = &xcrr_popup_menu_cb; // xcrrnav->start_trace_cb = &xcrr_start_trace_cb; // xcrrnav->close_cb = &xcrr_close_cb; gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(menu_bar), FALSE, FALSE, 0); gtk_box_pack_end( GTK_BOX(vbox), GTK_WIDGET(brow_widget), TRUE, TRUE, 0); gtk_container_add( GTK_CONTAINER(toplevel), vbox); gtk_widget_show_all( toplevel); *xa_sts = XATT__SUCCESS; }
/* Add a group of options: create title and layout widgets and then add widgets for all the options in the group. */ static void xkb_options_add_group (XklConfigRegistry * config_registry, XklConfigItem * config_item, GtkBuilder * dialog) { GtkWidget *align, *vbox, *option_check; gboolean allow_multiple_selection = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (config_item), XCI_PROP_ALLOW_MULTIPLE_SELECTION)); GSList *expanders_list = g_object_get_data (G_OBJECT (dialog), EXPANDERS_PROP); gchar *utf_group_name = xci_desc_to_utf8 (config_item); gchar *titlemarkup = g_strconcat ("<span>", utf_group_name, "</span>", NULL); current_expander = gtk_expander_new (titlemarkup); gtk_expander_set_use_markup (GTK_EXPANDER (current_expander), TRUE); g_object_set_data_full (G_OBJECT (current_expander), "utfGroupName", utf_group_name, g_free); g_object_set_data_full (G_OBJECT (current_expander), "groupId", g_strdup (config_item->name), g_free); g_free (titlemarkup); align = gtk_alignment_new (0, 0, 1, 1); gtk_alignment_set_padding (GTK_ALIGNMENT (align), 6, 12, 12, 0); vbox = gtk_vbox_new (TRUE, 6); gtk_container_add (GTK_CONTAINER (align), vbox); gtk_container_add (GTK_CONTAINER (current_expander), align); current_multi_select = (gboolean) allow_multiple_selection; current_radio_group = NULL; current1st_level_id = config_item->name; option_checks_list = NULL; xkl_config_registry_foreach_option (config_registry, config_item->name, (ConfigItemProcessFunc) xkb_options_add_option, dialog); /* sort it */ option_checks_list = g_slist_sort (option_checks_list, (GCompareFunc) xkb_option_checks_compare); while (option_checks_list) { option_check = GTK_WIDGET (option_checks_list->data); gtk_box_pack_start (GTK_BOX (vbox), option_check, TRUE, TRUE, 0); option_checks_list = option_checks_list->next; } /* free it */ g_slist_free (option_checks_list); option_checks_list = NULL; xkb_options_expander_highlight (); expanders_list = g_slist_append (expanders_list, current_expander); g_object_set_data (G_OBJECT (dialog), EXPANDERS_PROP, expanders_list); g_signal_connect (current_expander, "focus-in-event", G_CALLBACK (option_focused_cb), WID ("options_scroll")); }
static void message_clicked_cb(GtkWidget *w, gpointer nul) { GtkWidget *vbox; GtkWidget *hbox; GtkWidget *to_entry; GtkWidget *body_entry; GtkWidget *thread_entry; GtkWidget *subject_entry; GtkWidget *label; GtkWidget *type_combo; GtkSizeGroup *sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); GtkTextIter iter; GtkTextBuffer *buffer; const char *to, *body, *thread, *subject; char *stanza; int result; GtkWidget *dialog = gtk_dialog_new_with_buttons("<message/>", GTK_WINDOW(console->window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL); gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE); gtk_dialog_set_default_response (GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); gtk_container_set_border_width(GTK_CONTAINER(dialog), 12); #if GTK_CHECK_VERSION(2,14,0) vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); #else vbox = GTK_DIALOG(dialog)->vbox; #endif hbox = gtk_hbox_new(FALSE, 3); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); label = gtk_label_new("To:"); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_size_group_add_widget(sg, label); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); to_entry = gtk_entry_new(); gtk_entry_set_activates_default (GTK_ENTRY (to_entry), TRUE); gtk_box_pack_start(GTK_BOX(hbox), to_entry, FALSE, FALSE, 0); hbox = gtk_hbox_new(FALSE, 3); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); label = gtk_label_new("Type:"); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_size_group_add_widget(sg, label); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); type_combo = gtk_combo_box_new_text(); gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "chat"); gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "headline"); gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "groupchat"); gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "normal"); gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "error"); gtk_combo_box_set_active(GTK_COMBO_BOX(type_combo), 0); gtk_box_pack_start(GTK_BOX(hbox), type_combo, FALSE, FALSE, 0); hbox = gtk_hbox_new(FALSE, 3); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); label = gtk_label_new("Body:"); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_size_group_add_widget(sg, label); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); body_entry = gtk_entry_new(); gtk_entry_set_activates_default (GTK_ENTRY (body_entry), TRUE); gtk_box_pack_start(GTK_BOX(hbox), body_entry, FALSE, FALSE, 0); hbox = gtk_hbox_new(FALSE, 3); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); label = gtk_label_new("Subject:"); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_size_group_add_widget(sg, label); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); subject_entry = gtk_entry_new(); gtk_entry_set_activates_default (GTK_ENTRY (subject_entry), TRUE); gtk_box_pack_start(GTK_BOX(hbox), subject_entry, FALSE, FALSE, 0); hbox = gtk_hbox_new(FALSE, 3); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); label = gtk_label_new("Thread:"); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_size_group_add_widget(sg, label); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); thread_entry = gtk_entry_new(); gtk_entry_set_activates_default (GTK_ENTRY (thread_entry), TRUE); gtk_box_pack_start(GTK_BOX(hbox), thread_entry, FALSE, FALSE, 0); gtk_widget_show_all(vbox); result = gtk_dialog_run(GTK_DIALOG(dialog)); if (result != GTK_RESPONSE_ACCEPT) { gtk_widget_destroy(dialog); return; } to = gtk_entry_get_text(GTK_ENTRY(to_entry)); body = gtk_entry_get_text(GTK_ENTRY(body_entry)); thread = gtk_entry_get_text(GTK_ENTRY(thread_entry)); subject = gtk_entry_get_text(GTK_ENTRY(subject_entry)); stanza = g_strdup_printf("<message %s%s%s id='console%x' type='%s'>" "%s%s%s%s%s%s%s%s%s" "</message>", *to ? "to='" : "", *to ? to : "", *to ? "'" : "", g_random_int(), gtk_combo_box_get_active_text(GTK_COMBO_BOX(type_combo)), *body ? "<body>" : "", *body ? body : "", *body ? "</body>" : "", *subject ? "<subject>" : "", *subject ? subject : "", *subject ? "</subject>" : "", *thread ? "<thread>" : "", *thread ? thread : "", *thread ? "</thread>" : ""); buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(console->entry)); gtk_text_buffer_set_text(buffer, stanza, -1); gtk_text_buffer_get_iter_at_offset(buffer, &iter, strstr(stanza, "</message>") - stanza); gtk_text_buffer_place_cursor(buffer, &iter); g_free(stanza); gtk_widget_destroy(dialog); g_object_unref(sg); }
int main(int argc, char **argv) { GtkWidget *label, *terminal, *tophalf, *pane, *window, *sw; AtkObject *obj; char *text, *p; gunichar c; guint count; gtk_init(&argc, &argv); contents = g_array_new(TRUE, FALSE, sizeof(gunichar)); terminal_init(&terminal); #ifdef USE_TEXT_VIEW tophalf = gtk_scrolled_window_new(NULL, terminal_adjustment(terminal)); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(tophalf), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(tophalf), terminal); #else tophalf = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(tophalf), terminal, TRUE, TRUE, 0); gtk_widget_show(terminal); GtkWidget* scrollbar = gtk_vscrollbar_new(terminal_adjustment(terminal)); gtk_box_pack_start(GTK_BOX(tophalf), scrollbar, FALSE, TRUE, 0); gtk_widget_show(scrollbar); #endif gtk_widget_show(terminal); label = gtk_label_new(""); gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); sw = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), label); gtk_widget_show(label); pane = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_paned_pack1(GTK_PANED(pane), tophalf, TRUE, FALSE); gtk_paned_pack2(GTK_PANED(pane), sw, TRUE, FALSE); gtk_widget_show(tophalf); gtk_widget_show(sw); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(gtk_main_quit), NULL); gtk_container_add(GTK_CONTAINER(window), pane); gtk_widget_show(pane); obj = gtk_widget_get_accessible(terminal); g_assert(obj != NULL); g_signal_connect(G_OBJECT(obj), "text-changed::insert", G_CALLBACK(text_changed_insert), label); g_signal_connect(G_OBJECT(obj), "text-changed::delete", G_CALLBACK(text_changed_delete), label); g_signal_connect(G_OBJECT(obj), "text-caret-moved", G_CALLBACK(text_caret_moved), label); g_signal_connect(G_OBJECT(obj), "text-selection-changed", G_CALLBACK(text_selection_changed), label); count = (guint)atk_text_get_character_count(ATK_TEXT(obj)); if (count > 0) { text = atk_text_get_text(ATK_TEXT(obj), 0, count); if (text != NULL) { for (p = text; contents->len < count; p = g_utf8_next_char(p)) { c = g_utf8_get_char(p); g_array_append_val(contents, c); } g_free(text); } } terminal_shell(terminal); gtk_window_set_default_size(GTK_WINDOW(window), 600, 450); gtk_widget_show(window); update_contents(obj, terminal); gtk_main(); g_array_free(contents, TRUE); contents = NULL; return 0; }
void gui_init(struct dt_iop_module_t *self) { self->gui_data = malloc(sizeof(dt_iop_tonecurve_gui_data_t)); dt_iop_tonecurve_gui_data_t *c = (dt_iop_tonecurve_gui_data_t *)self->gui_data; dt_iop_tonecurve_params_t *p = (dt_iop_tonecurve_params_t *)self->params; for (int ch=0; ch<ch_max; ch++) { c->minmax_curve[ch] = dt_draw_curve_new(0.0, 1.0, p->tonecurve_type[ch]); c->minmax_curve_nodes[ch] = p->tonecurve_nodes[ch]; c->minmax_curve_type[ch] = p->tonecurve_type[ch]; for(int k=0; k<p->tonecurve_nodes[ch]; k++) (void)dt_draw_curve_add_point(c->minmax_curve[ch], p->tonecurve[ch][k].x, p->tonecurve[ch][k].y); } c->channel = ch_L; c->mouse_x = c->mouse_y = -1.0; c->selected = -1; self->widget = gtk_vbox_new(FALSE, DT_BAUHAUS_SPACE); // tabs c->channel_tabs = GTK_NOTEBOOK(gtk_notebook_new()); gtk_notebook_append_page(GTK_NOTEBOOK(c->channel_tabs), GTK_WIDGET(gtk_hbox_new(FALSE,0)), gtk_label_new(_(" L "))); g_object_set(G_OBJECT(gtk_notebook_get_tab_label(c->channel_tabs, gtk_notebook_get_nth_page(c->channel_tabs, -1))), "tooltip-text", _("tonecurve for L channel"), NULL); gtk_notebook_append_page(GTK_NOTEBOOK(c->channel_tabs), GTK_WIDGET(gtk_hbox_new(FALSE,0)), gtk_label_new(_(" a "))); g_object_set(G_OBJECT(gtk_notebook_get_tab_label(c->channel_tabs, gtk_notebook_get_nth_page(c->channel_tabs, -1))), "tooltip-text", _("tonecurve for a channel"), NULL); gtk_notebook_append_page(GTK_NOTEBOOK(c->channel_tabs), GTK_WIDGET(gtk_hbox_new(FALSE,0)), gtk_label_new(_(" b "))); g_object_set(G_OBJECT(gtk_notebook_get_tab_label(c->channel_tabs, gtk_notebook_get_nth_page(c->channel_tabs, -1))), "tooltip-text", _("tonecurve for b channel"), NULL); gtk_widget_show_all(GTK_WIDGET(gtk_notebook_get_nth_page(c->channel_tabs, c->channel))); gtk_notebook_set_current_page(GTK_NOTEBOOK(c->channel_tabs), c->channel); g_object_set(G_OBJECT(c->channel_tabs), "homogeneous", TRUE, (char *)NULL); GtkWidget *tb = dtgtk_togglebutton_new(dtgtk_cairo_paint_colorpicker, CPF_STYLE_FLAT); g_object_set(G_OBJECT(tb), "tooltip-text", _("pick gui color from image"), (char *)NULL); GtkWidget *notebook = gtk_hbox_new(FALSE,0); gtk_box_pack_start(GTK_BOX(notebook), GTK_WIDGET(c->channel_tabs), FALSE, FALSE, 0); gtk_box_pack_end(GTK_BOX(notebook), GTK_WIDGET(tb), FALSE, FALSE, 0); GtkWidget *vbox = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(self->widget), vbox, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(notebook), TRUE, TRUE, 0); g_signal_connect(G_OBJECT(c->channel_tabs), "switch_page", G_CALLBACK (tab_switch), self); c->area = GTK_DRAWING_AREA(gtk_drawing_area_new()); //GtkWidget *asp = gtk_aspect_frame_new(NULL, 0.5, 0.5, 1.0, FALSE);//TRUE); gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(c->area), TRUE, TRUE, 0); // gtk_box_pack_start(GTK_BOX(vbox), asp, TRUE, TRUE, 0); // gtk_container_add(GTK_CONTAINER(asp), GTK_WIDGET(c->area)); gtk_drawing_area_size(c->area, 0, 258); g_object_set (GTK_OBJECT(c->area), "tooltip-text", _("double click to reset curve"), (char *)NULL); gtk_widget_add_events(GTK_WIDGET(c->area), GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_LEAVE_NOTIFY_MASK); g_signal_connect (G_OBJECT (c->area), "expose-event", G_CALLBACK (dt_iop_tonecurve_expose), self); g_signal_connect (G_OBJECT (c->area), "button-press-event", G_CALLBACK (dt_iop_tonecurve_button_press), self); g_signal_connect (G_OBJECT (c->area), "motion-notify-event", G_CALLBACK (dt_iop_tonecurve_motion_notify), self); g_signal_connect (G_OBJECT (c->area), "leave-notify-event", G_CALLBACK (dt_iop_tonecurve_leave_notify), self); g_signal_connect (G_OBJECT (c->area), "enter-notify-event", G_CALLBACK (dt_iop_tonecurve_enter_notify), self); g_signal_connect (G_OBJECT (c->area), "configure-event", G_CALLBACK (area_resized), self); g_signal_connect (G_OBJECT(tb), "toggled", G_CALLBACK (pick_toggled), self); g_signal_connect (G_OBJECT (c->area), "scroll-event", G_CALLBACK (scrolled), self); c->autoscale_ab = dt_bauhaus_combobox_new(self); dt_bauhaus_widget_set_label(c->autoscale_ab, _("scale chroma")); dt_bauhaus_combobox_add(c->autoscale_ab, _("auto")); dt_bauhaus_combobox_add(c->autoscale_ab, _("manual")); gtk_box_pack_start(GTK_BOX(self->widget), c->autoscale_ab, TRUE, TRUE, 0); g_object_set (GTK_OBJECT(c->autoscale_ab), "tooltip-text", _("if set to auto, a and b curves have no effect and are not displayed. chroma values (a and b) of each pixel are then adjusted based on L curve data."), (char *)NULL); g_signal_connect(G_OBJECT(c->autoscale_ab), "value-changed", G_CALLBACK(autoscale_ab_callback), self); c->sizegroup = GTK_SIZE_GROUP(gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL)); gtk_size_group_add_widget(c->sizegroup, GTK_WIDGET(c->area)); gtk_size_group_add_widget(c->sizegroup, GTK_WIDGET(c->channel_tabs)); }
static GtkWidget *server_info_page (struct server *s) { GtkWidget *page_vbox; GtkWidget *table; GtkWidget *frame; GtkWidget *hbox; GtkWidget *vbox; GtkWidget *label; GSList *sources; GSList *list; struct master *m; struct server_props *props; char buf[32]; GList *cfgs; int slots_buffer; guint row = 0; props = properties (s); page_vbox = gtk_vbox_new (FALSE, 8); gtk_container_set_border_width (GTK_CONTAINER (page_vbox), 8); /* Address */ table = gtk_table_new (6, 4, FALSE); gtk_table_set_row_spacings (GTK_TABLE (table), 4); gtk_table_set_col_spacings (GTK_TABLE (table), 8); gtk_box_pack_start (GTK_BOX (page_vbox), table, FALSE, FALSE, 0); gtk_table_set_col_spacing (GTK_TABLE (table), 1, 16); label = gtk_label_new (_("IP Address:")); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, row, row+1); gtk_widget_show (label); label = gtk_label_new (inet_ntoa (s->host->ip)); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_table_attach_defaults (GTK_TABLE (table), label, 1, 2, row, row+1); gtk_widget_show (label); label = gtk_label_new (_("Port:")); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_table_attach_defaults (GTK_TABLE (table), label, 2, 3, row, row+1); gtk_widget_show (label); g_snprintf (buf, 32, "%d", s->port); label = gtk_label_new (buf); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_table_attach_defaults (GTK_TABLE (table), label, 3, 4, row, row+1); gtk_widget_show (label); row++; label = gtk_label_new (_("Host Name:")); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, row, row+1); gtk_widget_show (label); if (s->host->name) { label = gtk_label_new (s->host->name); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_table_attach_defaults (GTK_TABLE (table), label, 1, 4, row, row+1); gtk_widget_show (label); } row++; label = gtk_label_new (_("Country:")); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, row, row+1); gtk_widget_show (label); #ifdef USE_GEOIP if (geoip_name_by_id(s->country_id)) { GtkWidget* hbox = gtk_hbox_new (FALSE, 4); struct pixmap* pix = get_pixmap_for_country(s->country_id); if (pix) { GtkWidget *pixmap = gtk_pixmap_new(pix->pix,pix->mask); gtk_box_pack_start (GTK_BOX (hbox), pixmap, FALSE, FALSE, 0); gtk_widget_show (pixmap); } label = gtk_label_new (geoip_name_by_id(s->country_id)); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); gtk_widget_show (label); gtk_table_attach_defaults (GTK_TABLE (table), hbox, 1, 4, row, row+1); gtk_widget_show (hbox); } #endif row++; label = gtk_label_new (_("Refreshed:")); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, row, row+1); gtk_widget_show (label); if (s->refreshed) { char* str = timet2string(&s->refreshed); label = gtk_label_new (str); g_free(str); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_table_attach_defaults (GTK_TABLE (table), label, 1, 4, row, row+1); gtk_widget_show (label); } row++; // translator: last time and date the server answered the query label = gtk_label_new (_("Last answer:")); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, row, row+1); gtk_widget_show (label); if (s->last_answer) { GtkStyle *style; GdkColor color; time_t max_days = 3; // XXX: hardcoded, has to be configurable some time char* str = timet2string(&s->last_answer); label = gtk_label_new (str); g_free(str); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_table_attach_defaults (GTK_TABLE (table), label, 1, 4, row, row+1); if (s->last_answer + max_days*24*60*60 < s->refreshed) { // XXX: I don't know if that is the correct way, it's undocumented :-( style = gtk_widget_get_style(label); gdk_color_parse("red",&color); style->fg [GTK_STATE_NORMAL] = color; style->fg [GTK_STATE_ACTIVE] = color; style->fg [GTK_STATE_PRELIGHT] = color; style->fg [GTK_STATE_SELECTED] = color; style->fg [GTK_STATE_INSENSITIVE] = color; gtk_widget_set_style (label, style); } gtk_widget_show (label); } row++; /*pulp*/ /*Reserved Slots spin widget*/ if (props) { if (props->reserved_slots) { slots_buffer=props->reserved_slots; } else { slots_buffer=0; } } else { slots_buffer=0; } label = gtk_label_new (_("Reserved Slots:")); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, row, row+1); gtk_widget_show (label); adj = (GtkAdjustment *) gtk_adjustment_new (slots_buffer, 0, 9, 1, 2,0); spinner = gtk_spin_button_new (adj, 0, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinner), TRUE); gtk_spin_button_set_update_policy(GTK_SPIN_BUTTON (spinner), GTK_UPDATE_IF_VALID); gtk_table_attach_defaults (GTK_TABLE (table), spinner, 1, 2, row, row+1); gtk_widget_show (spinner); gtk_widget_show (table); /* Sources */ frame = gtk_frame_new (_("Sources")); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_IN); gtk_box_pack_start (GTK_BOX (page_vbox), frame, FALSE, FALSE, 0); vbox = gtk_vbox_new (FALSE, 4); gtk_container_set_border_width (GTK_CONTAINER (vbox), 6); gtk_container_add (GTK_CONTAINER (frame), vbox); sources = references_to_server (s); for (list = sources; list; list = list->next) { m = (struct master *) list->data; label = gtk_label_new (_(m->name)); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); gtk_widget_show (label); } g_slist_free (sources); gtk_widget_show (vbox); gtk_widget_show (frame); /* Custom CFG */ hbox = gtk_hbox_new (FALSE, 8); gtk_box_pack_start (GTK_BOX (page_vbox), hbox, FALSE, FALSE, 0); customcfg_combo = gtk_combo_new (); gtk_entry_set_max_length (GTK_ENTRY (GTK_COMBO (customcfg_combo)->entry), 256); gtk_widget_set_usize (GTK_COMBO (customcfg_combo)->entry, 112, -1); if ((games[s->type].flags & GAME_CONNECT) != 0 && games[s->type].custom_cfgs) { cfgs = (*games[s->type].custom_cfgs) (&games[s->type], NULL, s->game); combo_set_vals (customcfg_combo, cfgs, (props && props->custom_cfg)? props->custom_cfg : NULL); if (cfgs) { g_list_foreach (cfgs, (GFunc) g_free, NULL); g_list_free (cfgs); } } else { gtk_widget_set_sensitive (customcfg_combo, FALSE); } gtk_box_pack_end (GTK_BOX (hbox), customcfg_combo, FALSE, FALSE, 0); gtk_widget_show (customcfg_combo); label = gtk_label_new (_("Custom CFG:")); gtk_box_pack_end (GTK_BOX (hbox), label, FALSE, FALSE, 0); gtk_widget_show (label); gtk_widget_show (hbox); gtk_widget_show (page_vbox); return page_vbox; }
GtkWidget * userlist_create (GtkWidget *box) { GtkWidget *sw, *treeview; static const GtkTargetEntry dnd_dest_targets[] = { {"text/uri-list", 0, 1}, {"XCHAT_CHANVIEW", GTK_TARGET_SAME_APP, 75 } }; static const GtkTargetEntry dnd_src_target[] = { {"XCHAT_USERLIST", GTK_TARGET_SAME_APP, 75 } }; sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), prefs.showhostname_in_userlist ? GTK_POLICY_AUTOMATIC : GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (box), sw, TRUE, TRUE, 0); gtk_widget_show (sw); treeview = gtk_tree_view_new (); gtk_widget_set_name (treeview, "xchat-userlist"); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeview), FALSE); gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)), GTK_SELECTION_MULTIPLE); /* set up drops */ gtk_drag_dest_set (treeview, GTK_DEST_DEFAULT_ALL, dnd_dest_targets, 2, GDK_ACTION_MOVE | GDK_ACTION_COPY | GDK_ACTION_LINK); gtk_drag_source_set (treeview, GDK_BUTTON1_MASK, dnd_src_target, 1, GDK_ACTION_MOVE); /* file DND (for DCC) */ g_signal_connect (G_OBJECT (treeview), "drag_motion", G_CALLBACK (userlist_dnd_motion), treeview); g_signal_connect (G_OBJECT (treeview), "drag_leave", G_CALLBACK (userlist_dnd_leave), 0); g_signal_connect (G_OBJECT (treeview), "drag_data_received", G_CALLBACK (userlist_dnd_drop), treeview); g_signal_connect (G_OBJECT (treeview), "button_press_event", G_CALLBACK (userlist_click_cb), 0); g_signal_connect (G_OBJECT (treeview), "key_press_event", G_CALLBACK (userlist_key_cb), 0); /* tree/chanview DND */ g_signal_connect (G_OBJECT (treeview), "drag_begin", G_CALLBACK (mg_drag_begin_cb), NULL); g_signal_connect (G_OBJECT (treeview), "drag_drop", G_CALLBACK (mg_drag_drop_cb), NULL); g_signal_connect (G_OBJECT (treeview), "drag_motion", G_CALLBACK (mg_drag_motion_cb), NULL); g_signal_connect (G_OBJECT (treeview), "drag_end", G_CALLBACK (mg_drag_end_cb), NULL); userlist_add_columns (GTK_TREE_VIEW (treeview)); gtk_container_add (GTK_CONTAINER (sw), treeview); gtk_widget_show (treeview); return treeview; }
GtkWidget *create_hdhomerun_config(void) { GtkWidget *hdhomerun_config; GtkWidget *hbox1; GtkWidget *frame1; GtkWidget *vbox2; GtkWidget *scrolledwindow1; GtkWidget *DeviceListTree; GtkWidget *RescanBtn; GtkWidget *label1; GtkWidget *Tab; GtkWidget *vbox1; GtkWidget *frame2; GtkWidget *table2; GtkWidget *label11; GtkWidget *label12; GtkWidget *label13; GtkWidget *LaunchVlcBtn; GtkWidget *StopVlcBtn; GtkWidget *hbox2; GtkWidget *ChannelMapEdit; GtkObject *ChannelNumberSpin_adj; GtkWidget *ChannelNumberSpin; GtkWidget *ProgramList; GtkWidget *ScanDownBtn; GtkWidget *ScanUpBtn; GtkWidget *label15; GtkWidget *frame3; GtkWidget *table1; GtkWidget *label5; GtkWidget *label6; GtkWidget *label7; GtkWidget *label8; GtkWidget *SignalStrengthStatus; GtkWidget *SignalQualityStatus; GtkWidget *SymbolQualityStatus; GtkWidget *PhysicalChannelStatus; GtkWidget *label10; GtkWidget *NetworkRateStatus; GtkWidget *label4; GtkWidget *label2; GtkWidget *vbox3; GtkWidget *frame4; GtkWidget *table3; GtkWidget *FirmwareVersion; GtkWidget *UpgradeBtn; GtkWidget *hbox3; GtkWidget *UpgradeFilename; GtkWidget *UpgradeFilenameBtn; GtkWidget *label14; GtkWidget *label3; hdhomerun_config = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(hdhomerun_config), _("HDHomeRun Config")); gtk_window_set_resizable(GTK_WINDOW(hdhomerun_config), FALSE); hbox1 = gtk_hbox_new(FALSE, 6); gtk_widget_show(hbox1); gtk_container_add(GTK_CONTAINER(hdhomerun_config), hbox1); gtk_container_set_border_width(GTK_CONTAINER(hbox1), 3); frame1 = gtk_frame_new(NULL); gtk_widget_show(frame1); gtk_box_pack_start(GTK_BOX(hbox1), frame1, TRUE, TRUE, 0); vbox2 = gtk_vbox_new(FALSE, 3); gtk_widget_show(vbox2); gtk_container_add(GTK_CONTAINER(frame1), vbox2); gtk_container_set_border_width(GTK_CONTAINER(vbox2), 3); scrolledwindow1 = gtk_scrolled_window_new(NULL, NULL); gtk_widget_show(scrolledwindow1); gtk_box_pack_start(GTK_BOX(vbox2), scrolledwindow1, TRUE, TRUE, 0); DeviceListTree = gtk_tree_view_new(); gtk_widget_show(DeviceListTree); gtk_container_add(GTK_CONTAINER(scrolledwindow1), DeviceListTree); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(DeviceListTree), FALSE); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(DeviceListTree), FALSE); RescanBtn = gtk_button_new_with_mnemonic(_("_Rescan")); gtk_widget_show(RescanBtn); gtk_box_pack_start(GTK_BOX(vbox2), RescanBtn, FALSE, FALSE, 0); label1 = gtk_label_new(_("Device")); gtk_widget_show(label1); gtk_frame_set_label_widget(GTK_FRAME(frame1), label1); gtk_label_set_use_markup(GTK_LABEL(label1), TRUE); gtk_misc_set_padding(GTK_MISC(label1), 3, 0); Tab = gtk_notebook_new(); gtk_widget_show(Tab); gtk_box_pack_start(GTK_BOX(hbox1), Tab, TRUE, TRUE, 0); vbox1 = gtk_vbox_new(FALSE, 0); gtk_widget_show(vbox1); gtk_container_add(GTK_CONTAINER(Tab), vbox1); frame2 = gtk_frame_new(NULL); gtk_widget_show(frame2); gtk_box_pack_start(GTK_BOX(vbox1), frame2, TRUE, TRUE, 0); gtk_container_set_border_width(GTK_CONTAINER(frame2), 3); table2 = gtk_table_new(3, 4, TRUE); gtk_widget_show(table2); gtk_container_add(GTK_CONTAINER(frame2), table2); gtk_container_set_border_width(GTK_CONTAINER(table2), 6); gtk_table_set_row_spacings(GTK_TABLE(table2), 3); gtk_table_set_col_spacings(GTK_TABLE(table2), 3); label11 = gtk_label_new(_("Channel")); gtk_widget_show(label11); gtk_table_attach(GTK_TABLE(table2), label11, 0, 1, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); label12 = gtk_label_new(_("Program")); gtk_widget_show(label12); gtk_table_attach(GTK_TABLE(table2), label12, 0, 1, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); label13 = gtk_label_new(_("Scan")); gtk_widget_show(label13); gtk_table_attach(GTK_TABLE(table2), label13, 0, 1, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); LaunchVlcBtn = gtk_button_new_with_mnemonic(_("_View")); gtk_widget_show(LaunchVlcBtn); gtk_table_attach(GTK_TABLE(table2), LaunchVlcBtn, 3, 4, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); StopVlcBtn = gtk_button_new_with_mnemonic(_("_Stop")); gtk_widget_show(StopVlcBtn); gtk_table_attach(GTK_TABLE(table2), StopVlcBtn, 3, 4, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); gtk_widget_set_sensitive(StopVlcBtn, FALSE); hbox2 = gtk_hbox_new(FALSE, 3); gtk_widget_show(hbox2); gtk_table_attach(GTK_TABLE(table2), hbox2, 1, 3, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); ChannelMapEdit = gtk_combo_box_new_text(); gtk_widget_show(ChannelMapEdit); gtk_box_pack_start(GTK_BOX(hbox2), ChannelMapEdit, TRUE, TRUE, 0); ChannelNumberSpin_adj = gtk_adjustment_new(0, 0, 300, 1, 10, 0); ChannelNumberSpin = gtk_spin_button_new(GTK_ADJUSTMENT(ChannelNumberSpin_adj), 1, 0); gtk_widget_show(ChannelNumberSpin); gtk_box_pack_start(GTK_BOX(hbox2), ChannelNumberSpin, FALSE, FALSE, 0); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(ChannelNumberSpin), TRUE); gtk_spin_button_set_snap_to_ticks(GTK_SPIN_BUTTON(ChannelNumberSpin), TRUE); ProgramList = gtk_combo_box_new_text(); gtk_widget_show(ProgramList); gtk_table_attach(GTK_TABLE(table2), ProgramList, 1, 3, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); ScanDownBtn = gtk_toggle_button_new_with_mnemonic("_<<-"); gtk_widget_show(ScanDownBtn); gtk_table_attach(GTK_TABLE(table2), ScanDownBtn, 1, 2, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); ScanUpBtn = gtk_toggle_button_new_with_mnemonic("->_>"); gtk_widget_show(ScanUpBtn); gtk_table_attach(GTK_TABLE(table2), ScanUpBtn, 2, 3, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); label15 = gtk_label_new(_("Configuration")); gtk_widget_show(label15); gtk_frame_set_label_widget(GTK_FRAME(frame2), label15); gtk_label_set_use_markup(GTK_LABEL(label15), TRUE); gtk_misc_set_padding(GTK_MISC(label15), 3, 0); frame3 = gtk_frame_new(NULL); gtk_widget_show(frame3); gtk_box_pack_start(GTK_BOX(vbox1), frame3, TRUE, TRUE, 0); gtk_container_set_border_width(GTK_CONTAINER(frame3), 3); table1 = gtk_table_new(6, 2, FALSE); gtk_widget_show(table1); gtk_container_add(GTK_CONTAINER(frame3), table1); gtk_container_set_border_width(GTK_CONTAINER(table1), 6); gtk_table_set_row_spacings(GTK_TABLE(table1), 2); gtk_table_set_col_spacings(GTK_TABLE(table1), 2); label5 = gtk_label_new(_("Physical Channel")); gtk_widget_show(label5); gtk_table_attach(GTK_TABLE(table1), label5, 0, 1, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); label6 = gtk_label_new(_("Signal Strength %")); gtk_widget_show(label6); gtk_table_attach(GTK_TABLE(table1), label6, 0, 1, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); label7 = gtk_label_new(_("Signal Quality %")); gtk_widget_show(label7); gtk_table_attach(GTK_TABLE(table1), label7, 0, 1, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); label8 = gtk_label_new(_("Symbol Quality %")); gtk_widget_show(label8); gtk_table_attach(GTK_TABLE(table1), label8, 0, 1, 3, 4, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); SignalStrengthStatus = gtk_progress_bar_new(); gtk_widget_show(SignalStrengthStatus); gtk_table_attach(GTK_TABLE(table1), SignalStrengthStatus, 1, 2, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); SignalQualityStatus = gtk_progress_bar_new(); gtk_widget_show(SignalQualityStatus); gtk_table_attach(GTK_TABLE(table1), SignalQualityStatus, 1, 2, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); SymbolQualityStatus = gtk_progress_bar_new(); gtk_widget_show(SymbolQualityStatus); gtk_table_attach(GTK_TABLE(table1), SymbolQualityStatus, 1, 2, 3, 4, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); PhysicalChannelStatus = gtk_entry_new(); gtk_widget_show(PhysicalChannelStatus); gtk_table_attach(GTK_TABLE(table1), PhysicalChannelStatus, 1, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_widget_set_sensitive(PhysicalChannelStatus, FALSE); GTK_WIDGET_UNSET_FLAGS(PhysicalChannelStatus, GTK_CAN_FOCUS); gtk_editable_set_editable(GTK_EDITABLE(PhysicalChannelStatus), FALSE); gtk_entry_set_text(GTK_ENTRY(PhysicalChannelStatus), _("none")); gtk_entry_set_invisible_char(GTK_ENTRY(PhysicalChannelStatus), 9679); label10 = gtk_label_new(_("Network Rate")); gtk_widget_show(label10); gtk_table_attach(GTK_TABLE(table1), label10, 0, 1, 4, 5, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); NetworkRateStatus = gtk_entry_new(); gtk_widget_show(NetworkRateStatus); gtk_table_attach(GTK_TABLE(table1), NetworkRateStatus, 1, 2, 4, 5, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_widget_set_sensitive(NetworkRateStatus, FALSE); GTK_WIDGET_UNSET_FLAGS(NetworkRateStatus, GTK_CAN_FOCUS); gtk_editable_set_editable(GTK_EDITABLE(NetworkRateStatus), FALSE); gtk_entry_set_text(GTK_ENTRY(NetworkRateStatus), _("0.000 Mbps")); gtk_entry_set_invisible_char(GTK_ENTRY(NetworkRateStatus), 9679); label4 = gtk_label_new(_("Status")); gtk_widget_show(label4); gtk_frame_set_label_widget(GTK_FRAME(frame3), label4); gtk_label_set_use_markup(GTK_LABEL(label4), TRUE); gtk_misc_set_padding(GTK_MISC(label4), 3, 0); label2 = gtk_label_new(_("Tuner")); gtk_widget_show(label2); gtk_notebook_set_tab_label(GTK_NOTEBOOK(Tab), gtk_notebook_get_nth_page(GTK_NOTEBOOK(Tab), 0), label2); vbox3 = gtk_vbox_new(FALSE, 0); gtk_widget_show(vbox3); gtk_container_add(GTK_CONTAINER(Tab), vbox3); frame4 = gtk_frame_new(NULL); gtk_widget_show(frame4); gtk_box_pack_start(GTK_BOX(vbox3), frame4, FALSE, TRUE, 0); gtk_container_set_border_width(GTK_CONTAINER(frame4), 3); table3 = gtk_table_new(2, 2, FALSE); gtk_widget_show(table3); gtk_container_add(GTK_CONTAINER(frame4), table3); gtk_container_set_border_width(GTK_CONTAINER(table3), 3); gtk_table_set_row_spacings(GTK_TABLE(table3), 3); gtk_table_set_col_spacings(GTK_TABLE(table3), 3); FirmwareVersion = gtk_label_new(""); gtk_widget_show(FirmwareVersion); gtk_table_attach(GTK_TABLE(table3), FirmwareVersion, 0, 1, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); gtk_misc_set_alignment(GTK_MISC(FirmwareVersion), 0, 0.5); UpgradeBtn = gtk_button_new_with_mnemonic(_("Upgrade")); gtk_widget_show(UpgradeBtn); gtk_table_attach(GTK_TABLE(table3), UpgradeBtn, 1, 2, 1, 2, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 0, 0); gtk_widget_set_sensitive(UpgradeBtn, FALSE); hbox3 = gtk_hbox_new(FALSE, 3); gtk_widget_show(hbox3); gtk_table_attach(GTK_TABLE(table3), hbox3, 0, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); UpgradeFilename = gtk_entry_new(); gtk_widget_show(UpgradeFilename); gtk_box_pack_start(GTK_BOX(hbox3), UpgradeFilename, TRUE, TRUE, 0); gtk_entry_set_invisible_char(GTK_ENTRY(UpgradeFilename), 9679); UpgradeFilenameBtn = gtk_button_new_with_mnemonic("..."); gtk_widget_show(UpgradeFilenameBtn); gtk_box_pack_start(GTK_BOX(hbox3), UpgradeFilenameBtn, FALSE, FALSE, 0); label14 = gtk_label_new(_("Upgrade")); gtk_widget_show(label14); gtk_frame_set_label_widget(GTK_FRAME(frame4), label14); gtk_misc_set_padding(GTK_MISC(label14), 3, 0); label3 = gtk_label_new(_("Upgrade")); gtk_widget_show(label3); gtk_notebook_set_tab_label(GTK_NOTEBOOK(Tab), gtk_notebook_get_nth_page(GTK_NOTEBOOK(Tab), 1), label3); g_signal_connect((gpointer) hdhomerun_config, "destroy", G_CALLBACK(gtk_main_quit), NULL); g_signal_connect((gpointer) hdhomerun_config, "key_press_event", G_CALLBACK(on_hdhomerun_config_key_press_event), NULL); g_signal_connect((gpointer) RescanBtn, "clicked", G_CALLBACK(on_RescanBtn_clicked), NULL); g_signal_connect_after((gpointer) Tab, "switch_page", G_CALLBACK(on_Tab_switch_page), NULL); g_signal_connect((gpointer) LaunchVlcBtn, "clicked", G_CALLBACK(on_LaunchVlcBtn_clicked), NULL); g_signal_connect((gpointer) StopVlcBtn, "clicked", G_CALLBACK(on_StopVlcBtn_clicked), NULL); g_signal_connect((gpointer) ChannelMapEdit, "changed", G_CALLBACK(on_ChannelMapEdit_changed), NULL); g_signal_connect((gpointer) ChannelNumberSpin, "value_changed", G_CALLBACK(on_ChannelNumberSpin_value_changed), NULL); g_signal_connect_after((gpointer) ChannelNumberSpin, "activate", G_CALLBACK(on_ChannelNumberSpin_activate), NULL); g_signal_connect((gpointer) ProgramList, "changed", G_CALLBACK(on_ProgramList_changed), NULL); g_signal_connect((gpointer) ScanDownBtn, "clicked", G_CALLBACK(on_ScanDownBtn_clicked), NULL); g_signal_connect((gpointer) ScanUpBtn, "clicked", G_CALLBACK(on_ScanUpBtn_clicked), NULL); g_signal_connect((gpointer) UpgradeBtn, "clicked", G_CALLBACK(on_UpgradeBtn_clicked), NULL); g_signal_connect((gpointer) UpgradeFilename, "changed", G_CALLBACK(on_UpgradeFilename_changed), NULL); g_signal_connect((gpointer) UpgradeFilenameBtn, "clicked", G_CALLBACK(on_UpgradeFilenameBtn_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF(hdhomerun_config, hdhomerun_config, "hdhomerun_config"); GLADE_HOOKUP_OBJECT(hdhomerun_config, hbox1, "hbox1"); GLADE_HOOKUP_OBJECT(hdhomerun_config, frame1, "frame1"); GLADE_HOOKUP_OBJECT(hdhomerun_config, vbox2, "vbox2"); GLADE_HOOKUP_OBJECT(hdhomerun_config, scrolledwindow1, "scrolledwindow1"); GLADE_HOOKUP_OBJECT(hdhomerun_config, DeviceListTree, "DeviceListTree"); GLADE_HOOKUP_OBJECT(hdhomerun_config, RescanBtn, "RescanBtn"); GLADE_HOOKUP_OBJECT(hdhomerun_config, label1, "label1"); GLADE_HOOKUP_OBJECT(hdhomerun_config, Tab, "Tab"); GLADE_HOOKUP_OBJECT(hdhomerun_config, vbox1, "vbox1"); GLADE_HOOKUP_OBJECT(hdhomerun_config, frame2, "frame2"); GLADE_HOOKUP_OBJECT(hdhomerun_config, table2, "table2"); GLADE_HOOKUP_OBJECT(hdhomerun_config, label11, "label11"); GLADE_HOOKUP_OBJECT(hdhomerun_config, label12, "label12"); GLADE_HOOKUP_OBJECT(hdhomerun_config, label13, "label13"); GLADE_HOOKUP_OBJECT(hdhomerun_config, LaunchVlcBtn, "LaunchVlcBtn"); GLADE_HOOKUP_OBJECT(hdhomerun_config, StopVlcBtn, "StopVlcBtn"); GLADE_HOOKUP_OBJECT(hdhomerun_config, hbox2, "hbox2"); GLADE_HOOKUP_OBJECT(hdhomerun_config, ChannelMapEdit, "ChannelMapEdit"); GLADE_HOOKUP_OBJECT(hdhomerun_config, ChannelNumberSpin, "ChannelNumberSpin"); GLADE_HOOKUP_OBJECT(hdhomerun_config, ProgramList, "ProgramList"); GLADE_HOOKUP_OBJECT(hdhomerun_config, ScanDownBtn, "ScanDownBtn"); GLADE_HOOKUP_OBJECT(hdhomerun_config, ScanUpBtn, "ScanUpBtn"); GLADE_HOOKUP_OBJECT(hdhomerun_config, label15, "label15"); GLADE_HOOKUP_OBJECT(hdhomerun_config, frame3, "frame3"); GLADE_HOOKUP_OBJECT(hdhomerun_config, table1, "table1"); GLADE_HOOKUP_OBJECT(hdhomerun_config, label5, "label5"); GLADE_HOOKUP_OBJECT(hdhomerun_config, label6, "label6"); GLADE_HOOKUP_OBJECT(hdhomerun_config, label7, "label7"); GLADE_HOOKUP_OBJECT(hdhomerun_config, label8, "label8"); GLADE_HOOKUP_OBJECT(hdhomerun_config, SignalStrengthStatus, "SignalStrengthStatus"); GLADE_HOOKUP_OBJECT(hdhomerun_config, SignalQualityStatus, "SignalQualityStatus"); GLADE_HOOKUP_OBJECT(hdhomerun_config, SymbolQualityStatus, "SymbolQualityStatus"); GLADE_HOOKUP_OBJECT(hdhomerun_config, PhysicalChannelStatus, "PhysicalChannelStatus"); GLADE_HOOKUP_OBJECT(hdhomerun_config, label10, "label10"); GLADE_HOOKUP_OBJECT(hdhomerun_config, NetworkRateStatus, "NetworkRateStatus"); GLADE_HOOKUP_OBJECT(hdhomerun_config, label4, "label4"); GLADE_HOOKUP_OBJECT(hdhomerun_config, label2, "label2"); GLADE_HOOKUP_OBJECT(hdhomerun_config, vbox3, "vbox3"); GLADE_HOOKUP_OBJECT(hdhomerun_config, frame4, "frame4"); GLADE_HOOKUP_OBJECT(hdhomerun_config, table3, "table3"); GLADE_HOOKUP_OBJECT(hdhomerun_config, FirmwareVersion, "FirmwareVersion"); GLADE_HOOKUP_OBJECT(hdhomerun_config, UpgradeBtn, "UpgradeBtn"); GLADE_HOOKUP_OBJECT(hdhomerun_config, hbox3, "hbox3"); GLADE_HOOKUP_OBJECT(hdhomerun_config, UpgradeFilename, "UpgradeFilename"); GLADE_HOOKUP_OBJECT(hdhomerun_config, UpgradeFilenameBtn, "UpgradeFilenameBtn"); GLADE_HOOKUP_OBJECT(hdhomerun_config, label14, "label14"); GLADE_HOOKUP_OBJECT(hdhomerun_config, label3, "label3"); return hdhomerun_config; }
static void make_region_dialog(void) { int i, id; regrow *r; chan_info *cp; GtkWidget *infobox, *labels, *labbox; GtkWidget *sep1, *cww, *toppane, *tophbox, *plw, *formw; region_dialog = snd_gtk_dialog_new(); SG_SIGNAL_CONNECT(region_dialog, "delete_event", region_browser_delete_callback, NULL); gtk_window_set_title(GTK_WINDOW(region_dialog), _("Regions")); sg_make_resizable(region_dialog); gtk_container_set_border_width(GTK_CONTAINER(region_dialog), 10); gtk_window_resize(GTK_WINDOW(region_dialog), 400, 500); gtk_widget_realize(region_dialog); help_button = gtk_button_new_from_stock(GTK_STOCK_HELP); gtk_widget_set_name(help_button, "help_button"); dismiss_button = gtk_button_new_from_stock(GTK_STOCK_QUIT); gtk_widget_set_name(dismiss_button, "quit_button"); insert_button = sg_button_new_from_stock_with_label(_("Insert"), GTK_STOCK_PASTE); gtk_widget_set_name(insert_button, "doit_button"); mix_button = sg_button_new_from_stock_with_label(_("Mix"), GTK_STOCK_ADD); gtk_widget_set_name(mix_button, "doit_again_button"); save_as_button = gtk_button_new_from_stock(GTK_STOCK_SAVE_AS); gtk_widget_set_name(save_as_button, "reset_button"); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(region_dialog)->action_area), dismiss_button, true, true, 4); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(region_dialog)->action_area), insert_button, true, true, 4); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(region_dialog)->action_area), mix_button, true, true, 4); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(region_dialog)->action_area), save_as_button, true, true, 4); gtk_box_pack_end(GTK_BOX(GTK_DIALOG(region_dialog)->action_area), help_button, true, true, 4); SG_SIGNAL_CONNECT(insert_button, "clicked", region_insert_callback, NULL); SG_SIGNAL_CONNECT(mix_button, "clicked", region_mix_callback, NULL); SG_SIGNAL_CONNECT(help_button, "clicked", region_help_callback, NULL); SG_SIGNAL_CONNECT(dismiss_button, "clicked", region_ok_callback, NULL); SG_SIGNAL_CONNECT(save_as_button, "clicked", region_save_callback, NULL); gtk_widget_show(insert_button); gtk_widget_show(mix_button); gtk_widget_show(help_button); gtk_widget_show(dismiss_button); gtk_widget_show(save_as_button); region_grf = gtk_vpaned_new(); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(region_dialog)->vbox), region_grf, true, true, 0); gtk_widget_show(region_grf); toppane = gtk_hbox_new(false, 0); gtk_paned_add1(GTK_PANED(region_grf), toppane); gtk_widget_show(toppane); formw = gtk_vbox_new(false, 0); gtk_box_pack_start(GTK_BOX(toppane), formw, true, true, 4); gtk_widget_show(formw); sep1 = gtk_vseparator_new(); /* not hsep -- damned thing insists on drawing a line */ gtk_box_pack_start(GTK_BOX(formw), sep1, false, false, 2); gtk_widget_show(sep1); tophbox = gtk_hbox_new(false, 0); gtk_box_pack_start(GTK_BOX(formw), tophbox, false, false, 4); gtk_widget_show(tophbox); plw = gtk_label_new(_("play")); gtk_box_pack_start(GTK_BOX(tophbox), plw, false, false, 2); gtk_widget_show(plw); sep1 = gtk_vseparator_new(); gtk_box_pack_start(GTK_BOX(formw), sep1, false, false, 2); gtk_widget_show(sep1); region_list = gtk_vbox_new(false, 0); cww = gtk_scrolled_window_new(NULL, NULL); gtk_box_pack_start(GTK_BOX(formw), cww, true, true, 0); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(cww), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(cww), region_list); gtk_widget_show(region_list); gtk_widget_show(cww); infobox = gtk_vbox_new(false, 0); gtk_box_pack_start(GTK_BOX(toppane), infobox, false, false, 2); gtk_widget_show(infobox); region_rows = (regrow **)CALLOC(max_regions(ss), sizeof(regrow *)); region_rows_size = max_regions(ss); for (i = 0; i < max_regions(ss); i++) { r = make_regrow(region_list, (void (*)())region_play_callback, (void (*)())region_focus_callback); region_rows[i] = r; r->pos = i; } update_region_browser(false); /* in Gtk, apparently, labels are just the text, not the background (i.e. they're transparent) */ /* we need a button simply to get the background color, then a vbox to put four labels on the button */ /* but we get a button which flashes whenever the mouse comes near it and has "relief" */ /* if we turn off the relief, the colors go away */ /* all I want is an opaque label with a background color */ labels = gtk_button_new(); gtk_box_pack_start(GTK_BOX(infobox), labels, true, true, 2); gtk_widget_show(labels); gtk_widget_modify_bg(labels, GTK_STATE_NORMAL, ss->sgx->highlight_color); SG_SIGNAL_CONNECT(labels, "enter_notify_event", region_labels_mouse_enter, NULL); labbox = gtk_vbox_new(true, 0); gtk_container_add(GTK_CONTAINER(labels), labbox); gtk_widget_show(labbox); gtk_widget_modify_bg(labbox, GTK_STATE_NORMAL, ss->sgx->highlight_color); srate_text = gtk_label_new(_("srate:")); sg_left_justify_label(srate_text); gtk_box_pack_start(GTK_BOX(labbox), srate_text, false, false, 2); gtk_widget_show(srate_text); chans_text = gtk_label_new(_("chans:")); sg_left_justify_label(chans_text); gtk_box_pack_start(GTK_BOX(labbox), chans_text, false, false, 2); gtk_widget_show(chans_text); length_text = gtk_label_new(_("length:")); sg_left_justify_label(length_text); gtk_box_pack_start(GTK_BOX(labbox), length_text, false, false, 2); gtk_widget_show(length_text); maxamp_text = gtk_label_new(_("maxamp:")); sg_left_justify_label(maxamp_text); gtk_box_pack_start(GTK_BOX(labbox), maxamp_text, false, false, 2); gtk_widget_show(maxamp_text); edit_button = gtk_button_new_with_label(_("edit")); SG_SIGNAL_CONNECT(edit_button, "clicked", region_edit_callback, NULL); gtk_box_pack_start(GTK_BOX(infobox), edit_button, true, true, 2); gtk_widget_show(edit_button); gtk_widget_modify_bg(edit_button, GTK_STATE_NORMAL, ss->sgx->lighter_blue); gtk_widget_modify_bg(edit_button, GTK_STATE_ACTIVE, ss->sgx->red); print_button = gtk_button_new_with_label(_("print")); SG_SIGNAL_CONNECT(print_button, "clicked", region_print_callback, NULL); gtk_box_pack_start(GTK_BOX(infobox), print_button, true, true, 2); gtk_widget_show(print_button); gtk_widget_modify_bg(print_button, GTK_STATE_NORMAL, ss->sgx->lighter_blue); gtk_widget_modify_bg(print_button, GTK_STATE_ACTIVE, ss->sgx->red); unlist_button = gtk_button_new_with_label(_("unlist")); SG_SIGNAL_CONNECT(unlist_button, "clicked", region_unlist_callback, NULL); gtk_box_pack_start(GTK_BOX(infobox), unlist_button, true, true, 2); gtk_widget_show(unlist_button); gtk_widget_modify_bg(unlist_button, GTK_STATE_NORMAL, ss->sgx->lighter_blue); gtk_widget_modify_bg(unlist_button, GTK_STATE_ACTIVE, ss->sgx->red); gtk_widget_show(region_dialog); id = region_list_position_to_id(0); rsp = make_simple_channel_display(region_srate(id), region_len(id), WITH_ARROWS, region_graph_style(ss), region_grf, WITHOUT_EVENTS); rsp->inuse = SOUND_REGION; set_current_region(0); cp = rsp->chans[0]; gtk_paned_set_position(GTK_PANED(region_grf), 220); SG_SIGNAL_CONNECT(channel_graph(cp), "expose_event", region_resize_callback, cp); SG_SIGNAL_CONNECT(channel_graph(cp), "configure_event", region_expose_callback, cp); SG_SIGNAL_CONNECT(channel_up_arrow(cp), "button_press_event", region_up_arrow_callback, NULL); SG_SIGNAL_CONNECT(channel_down_arrow(cp), "button_press_event", region_down_arrow_callback, NULL); set_sensitive(channel_f(cp), false); if (region_chans(region_list_position_to_id(0)) > 1) set_sensitive(channel_w(cp), true); cp->chan = 0; rsp->hdr = fixup_region_data(cp, 0, 0); make_region_labels(rsp->hdr); highlight_region(); region_update_graph(cp); add_ss_watcher(SS_FILE_OPEN_WATCHER, reflect_file_in_region_browser, NULL); set_dialog_widget(REGION_DIALOG, region_dialog); }
void gui_create_tasks_options_page (GtkWidget *vbox, GUI *appGUI) { GtkWidget *appearance_vbox, *categories_vbox; GtkWidget *sorting_vbox, *tasks_opt_vbox, *visible_columns_vbox; GtkWidget *label; GtkWidget *colors_hbox; GtkWidget *valid_hbox; GtkWidget *frame; GtkWidget *table; GtkWidget *alignment; GtkWidget *ti_font_button; GtkWidget *scrolledwindow; GtkWidget *tasks_category_table; GtkCellRenderer *renderer; GtkTreeViewColumn *column; GdkColor color; GtkObject *postpone_time_spinbutton_adj; gchar tmpbuf[BUFFER_SIZE]; appGUI->opt->tasks_vbox = gtk_vbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), appGUI->opt->tasks_vbox, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (appGUI->opt->tasks_vbox), frame, FALSE, TRUE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); sprintf(tmpbuf, "<b>%s</b>", _("Appearance")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_misc_set_padding (GTK_MISC (label), 0, 4); alignment = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_widget_show (alignment); gtk_container_add (GTK_CONTAINER (frame), alignment); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 12, 12, 0); appearance_vbox = gtk_vbox_new (FALSE, 0); gtk_widget_show (appearance_vbox); gtk_container_add (GTK_CONTAINER (alignment), appearance_vbox); table = gtk_table_new (4, 4, FALSE); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (appearance_vbox), table, FALSE, FALSE, 0); gtk_table_set_col_spacings (GTK_TABLE (table), 4); gtk_table_set_row_spacings (GTK_TABLE (table), 8); colors_hbox = gtk_hbox_new (FALSE, 8); gtk_widget_show (colors_hbox); gtk_table_attach (GTK_TABLE (table), colors_hbox, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); appGUI->opt->due_today_color_picker = gtk_color_button_new (); gtk_widget_show (appGUI->opt->due_today_color_picker); g_signal_connect (G_OBJECT (appGUI->opt->due_today_color_picker), "color-set", G_CALLBACK(due_today_color_changed_cb), appGUI); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (appGUI->opt->due_today_color_picker, _("Color of items that are due today")); } gdk_color_parse(config.due_today_color, &color); gtk_color_button_set_color (GTK_COLOR_BUTTON (appGUI->opt->due_today_color_picker), &color); gtk_box_pack_start (GTK_BOX (colors_hbox), appGUI->opt->due_today_color_picker, FALSE, FALSE, 0); appGUI->opt->due_7days_color_picker = gtk_color_button_new (); gtk_widget_show (appGUI->opt->due_7days_color_picker); g_signal_connect (G_OBJECT (appGUI->opt->due_7days_color_picker), "color-set", G_CALLBACK(due_7days_color_changed_cb), appGUI); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (appGUI->opt->due_7days_color_picker, _("Color of items that are due in the next 7 days")); } gdk_color_parse(config.due_7days_color, &color); gtk_color_button_set_color (GTK_COLOR_BUTTON (appGUI->opt->due_7days_color_picker), &color); gtk_box_pack_start (GTK_BOX (colors_hbox), appGUI->opt->due_7days_color_picker, FALSE, FALSE, 0); appGUI->opt->past_due_color_picker = gtk_color_button_new (); gtk_widget_show (appGUI->opt->past_due_color_picker); g_signal_connect (G_OBJECT (appGUI->opt->past_due_color_picker), "color-set", G_CALLBACK(past_due_color_changed_cb), appGUI); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (appGUI->opt->past_due_color_picker, _("Color of items that are past due")); } gdk_color_parse(config.past_due_color, &color); gtk_color_button_set_color (GTK_COLOR_BUTTON (appGUI->opt->past_due_color_picker), &color); gtk_box_pack_start (GTK_BOX (colors_hbox), appGUI->opt->past_due_color_picker, FALSE, FALSE, 0); appGUI->opt->ti_font_entry = gtk_entry_new (); GTK_WIDGET_UNSET_FLAGS(appGUI->opt->ti_font_entry, GTK_CAN_FOCUS); gtk_widget_show (appGUI->opt->ti_font_entry); gtk_table_attach (GTK_TABLE (table), appGUI->opt->ti_font_entry, 1, 2, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); if (config.default_stock_icons) { ti_font_button = utl_gui_stock_button (GTK_STOCK_SELECT_FONT, FALSE); } else { ti_font_button = utl_gui_stock_button (OSMO_STOCK_BUTTON_SELECT_FONT, FALSE); } GTK_WIDGET_UNSET_FLAGS(ti_font_button, GTK_CAN_FOCUS); gtk_widget_show (ti_font_button); g_signal_connect (G_OBJECT (ti_font_button), "clicked", G_CALLBACK (ti_font_select_cb), appGUI); gtk_table_attach (GTK_TABLE (table), ti_font_button, 2, 3, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); sprintf(tmpbuf, "%s:", _("Task info font")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); sprintf(tmpbuf, "%s:", _("Colors")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); appGUI->opt->tasks_enable_rules_hint_checkbutton = gtk_check_button_new_with_mnemonic (_("Draw rows in alternating colors")); GTK_WIDGET_UNSET_FLAGS(appGUI->opt->tasks_enable_rules_hint_checkbutton, GTK_CAN_FOCUS); gtk_widget_show (appGUI->opt->tasks_enable_rules_hint_checkbutton); g_signal_connect (G_OBJECT (appGUI->opt->tasks_enable_rules_hint_checkbutton), "toggled", G_CALLBACK (tasks_enable_rules_hint_checkbutton_cb), appGUI); gtk_table_attach (GTK_TABLE (table), appGUI->opt->tasks_enable_rules_hint_checkbutton, 0, 3, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); appGUI->opt->ct_bold_items_checkbutton = gtk_check_button_new_with_mnemonic (_("Show in bold tasks with high priority")); GTK_WIDGET_UNSET_FLAGS(appGUI->opt->ct_bold_items_checkbutton, GTK_CAN_FOCUS); gtk_widget_show (appGUI->opt->ct_bold_items_checkbutton); gtk_table_attach (GTK_TABLE (table), appGUI->opt->ct_bold_items_checkbutton, 0, 3, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); g_signal_connect (G_OBJECT (appGUI->opt->ct_bold_items_checkbutton), "toggled", G_CALLBACK (bold_items_cb), appGUI); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (appGUI->opt->tasks_vbox), frame, FALSE, TRUE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); sprintf(tmpbuf, "<b>%s</b>", _("Visible columns")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_misc_set_padding (GTK_MISC (label), 0, 4); alignment = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_widget_show (alignment); gtk_container_add (GTK_CONTAINER (frame), alignment); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 12, 12, 0); visible_columns_vbox = gtk_vbox_new (FALSE, 0); gtk_widget_show (visible_columns_vbox); gtk_container_add (GTK_CONTAINER (alignment), visible_columns_vbox); table = gtk_table_new (1, 4, FALSE); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (visible_columns_vbox), table, FALSE, FALSE, 0); gtk_table_set_row_spacings (GTK_TABLE (table), 4); gtk_table_set_col_spacings (GTK_TABLE (table), 8); appGUI->opt->vc_due_date_checkbutton = gtk_check_button_new_with_mnemonic (_("Due date")); GTK_WIDGET_UNSET_FLAGS(appGUI->opt->vc_due_date_checkbutton, GTK_CAN_FOCUS); gtk_widget_show (appGUI->opt->vc_due_date_checkbutton); g_signal_connect (G_OBJECT (appGUI->opt->vc_due_date_checkbutton), "toggled", G_CALLBACK (visible_columns_changed_cb), appGUI); gtk_table_attach (GTK_TABLE (table), appGUI->opt->vc_due_date_checkbutton, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL | GTK_EXPAND), (GtkAttachOptions) (0), 0, 0); appGUI->opt->vc_type_checkbutton = gtk_check_button_new_with_mnemonic (_("Type")); GTK_WIDGET_UNSET_FLAGS(appGUI->opt->vc_type_checkbutton, GTK_CAN_FOCUS); gtk_widget_show (appGUI->opt->vc_type_checkbutton); g_signal_connect (G_OBJECT (appGUI->opt->vc_type_checkbutton), "toggled", G_CALLBACK (visible_columns_changed_cb), appGUI); gtk_table_attach (GTK_TABLE (table), appGUI->opt->vc_type_checkbutton, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL | GTK_EXPAND), (GtkAttachOptions) (0), 0, 0); appGUI->opt->vc_priority_checkbutton = gtk_check_button_new_with_mnemonic (_("Priority")); GTK_WIDGET_UNSET_FLAGS(appGUI->opt->vc_priority_checkbutton, GTK_CAN_FOCUS); gtk_widget_show (appGUI->opt->vc_priority_checkbutton); g_signal_connect (G_OBJECT (appGUI->opt->vc_priority_checkbutton), "toggled", G_CALLBACK (visible_columns_changed_cb), appGUI); gtk_table_attach (GTK_TABLE (table), appGUI->opt->vc_priority_checkbutton, 2, 3, 0, 1, (GtkAttachOptions) (GTK_FILL | GTK_EXPAND), (GtkAttachOptions) (0), 0, 0); appGUI->opt->vc_category_checkbutton = gtk_check_button_new_with_mnemonic (_("Category")); GTK_WIDGET_UNSET_FLAGS(appGUI->opt->vc_category_checkbutton, GTK_CAN_FOCUS); gtk_widget_show (appGUI->opt->vc_category_checkbutton); g_signal_connect (G_OBJECT (appGUI->opt->vc_category_checkbutton), "toggled", G_CALLBACK (visible_columns_changed_cb), appGUI); gtk_table_attach (GTK_TABLE (table), appGUI->opt->vc_category_checkbutton, 3, 4, 0, 1, (GtkAttachOptions) (GTK_FILL | GTK_EXPAND), (GtkAttachOptions) (0), 0, 0); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (appGUI->opt->tasks_vbox), frame, FALSE, TRUE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); sprintf(tmpbuf, "<b>%s</b>", _("Categories")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_misc_set_padding (GTK_MISC (label), 0, 4); alignment = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_widget_show (alignment); gtk_container_add (GTK_CONTAINER (frame), alignment); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 12, 12, 0); categories_vbox = gtk_vbox_new (FALSE, 0); gtk_widget_show (categories_vbox); gtk_container_add (GTK_CONTAINER (alignment), categories_vbox); tasks_category_table = gtk_table_new (4, 3, FALSE); gtk_widget_show (tasks_category_table); gtk_box_pack_start (GTK_BOX (categories_vbox), tasks_category_table, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (tasks_category_table), 8); gtk_table_set_row_spacings (GTK_TABLE (tasks_category_table), 8); gtk_table_set_col_spacings (GTK_TABLE (tasks_category_table), 4); appGUI->opt->tasks_category_entry = gtk_entry_new (); gtk_widget_show (appGUI->opt->tasks_category_entry); gtk_table_attach (GTK_TABLE (tasks_category_table), appGUI->opt->tasks_category_entry, 0, 1, 3, 4, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); g_signal_connect (G_OBJECT (appGUI->opt->tasks_category_entry), "key_release_event", G_CALLBACK (tasks_category_entry_key_release_cb), appGUI); scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow); gtk_table_attach (GTK_TABLE (tasks_category_table), scrolledwindow, 0, 3, 0, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_IN); appGUI->opt->tasks_category_store = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); appGUI->opt->tasks_category_treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(appGUI->opt->tasks_category_store)); appGUI->opt->tasks_category_select = gtk_tree_view_get_selection(GTK_TREE_VIEW(appGUI->opt->tasks_category_treeview)); gtk_widget_show (appGUI->opt->tasks_category_treeview); g_signal_connect(G_OBJECT(appGUI->opt->tasks_category_select), "changed", G_CALLBACK(tasks_category_selected_cb), appGUI); gtk_container_add (GTK_CONTAINER (scrolledwindow), appGUI->opt->tasks_category_treeview); gtk_container_set_border_width (GTK_CONTAINER (appGUI->opt->tasks_category_treeview), 4); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (appGUI->opt->tasks_category_treeview), TRUE); gtk_tree_view_set_reorderable (GTK_TREE_VIEW (appGUI->opt->tasks_category_treeview), TRUE); gtk_tree_view_set_enable_search (GTK_TREE_VIEW (appGUI->opt->tasks_category_treeview), FALSE); gtk_widget_set_size_request (appGUI->opt->tasks_category_treeview, -1, 120); renderer = gtk_cell_renderer_text_new(); g_object_set (renderer, "editable", TRUE, "editable-set", TRUE, NULL); g_signal_connect (G_OBJECT (renderer), "edited", G_CALLBACK (tasks_category_cell_edited_cb), appGUI); column = gtk_tree_view_column_new_with_attributes(_("Name"), renderer, "text", TC_COLUMN_NAME, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(appGUI->opt->tasks_category_treeview), column); gtk_tree_view_column_set_expand (column, TRUE); renderer = gtk_cell_renderer_toggle_new(); /* Show in calendar */ column = gtk_tree_view_column_new_with_attributes(_("Calendar"), renderer, "active", TC_COLUMN_CALENDAR, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(appGUI->opt->tasks_category_treeview), column); g_signal_connect (renderer, "toggled", G_CALLBACK (tsk_show_in_calendar_toggled), appGUI); renderer = gtk_cell_renderer_toggle_new(); /* Show in tasks list */ column = gtk_tree_view_column_new_with_attributes(_("Tasks"), renderer, "active", TC_COLUMN_TASKS, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(appGUI->opt->tasks_category_treeview), column); g_signal_connect (renderer, "toggled", G_CALLBACK (tsk_show_in_tasks_list_toggled), appGUI); if (config.default_stock_icons) { appGUI->opt->tasks_category_add_button = utl_gui_stock_button (GTK_STOCK_ADD, FALSE); } else { appGUI->opt->tasks_category_add_button = utl_gui_stock_button (OSMO_STOCK_BUTTON_ADD, FALSE); } GTK_WIDGET_UNSET_FLAGS(appGUI->opt->tasks_category_add_button, GTK_CAN_FOCUS); gtk_widget_show (appGUI->opt->tasks_category_add_button); gtk_table_attach (GTK_TABLE (tasks_category_table), appGUI->opt->tasks_category_add_button, 1, 2, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); g_signal_connect(appGUI->opt->tasks_category_add_button, "clicked", G_CALLBACK(tasks_category_add_cb), appGUI); gtk_widget_set_sensitive(appGUI->opt->tasks_category_add_button, FALSE); if (config.default_stock_icons) { appGUI->opt->tasks_category_remove_button = utl_gui_stock_button (GTK_STOCK_REMOVE, FALSE); } else { appGUI->opt->tasks_category_remove_button = utl_gui_stock_button (OSMO_STOCK_BUTTON_REMOVE, FALSE); } GTK_WIDGET_UNSET_FLAGS(appGUI->opt->tasks_category_remove_button, GTK_CAN_FOCUS); gtk_widget_show (appGUI->opt->tasks_category_remove_button); gtk_table_attach (GTK_TABLE (tasks_category_table), appGUI->opt->tasks_category_remove_button, 2, 3, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); g_signal_connect(appGUI->opt->tasks_category_remove_button, "clicked", G_CALLBACK(tasks_category_remove_cb), appGUI); gtk_widget_set_sensitive(appGUI->opt->tasks_category_remove_button, FALSE); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (appGUI->opt->tasks_vbox), frame, FALSE, TRUE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); sprintf(tmpbuf, "<b>%s</b>", _("Sorting")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_misc_set_padding (GTK_MISC (label), 0, 4); alignment = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_widget_show (alignment); gtk_container_add (GTK_CONTAINER (frame), alignment); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 12, 12, 0); sorting_vbox = gtk_vbox_new (FALSE, 0); gtk_widget_show (sorting_vbox); gtk_container_add (GTK_CONTAINER (alignment), sorting_vbox); table = gtk_table_new (1, 5, FALSE); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (sorting_vbox), table, FALSE, FALSE, 0); gtk_table_set_row_spacings (GTK_TABLE (table), 4); gtk_table_set_col_spacings (GTK_TABLE (table), 8); sprintf(tmpbuf, "%s:", _("Order")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL | GTK_EXPAND), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); sprintf(tmpbuf, "%s:", _("Mode")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 2, 3, 0, 1, (GtkAttachOptions) (GTK_FILL | GTK_EXPAND), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); appGUI->opt->tasks_sort_order_combobox = gtk_combo_box_new_text (); gtk_widget_show (appGUI->opt->tasks_sort_order_combobox); g_signal_connect (G_OBJECT (appGUI->opt->tasks_sort_order_combobox), "changed", G_CALLBACK(tasks_sort_order_changed_cb), appGUI); gtk_table_attach (GTK_TABLE (table), appGUI->opt->tasks_sort_order_combobox, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL | GTK_EXPAND), (GtkAttachOptions) (0), 0, 0); gtk_combo_box_append_text (GTK_COMBO_BOX (appGUI->opt->tasks_sort_order_combobox), _("Ascending")); gtk_combo_box_append_text (GTK_COMBO_BOX (appGUI->opt->tasks_sort_order_combobox), _("Descending")); gtk_combo_box_set_active (GTK_COMBO_BOX(appGUI->opt->tasks_sort_order_combobox), config.tasks_sorting_order); appGUI->opt->tasks_sort_mode_combobox = gtk_combo_box_new_text (); gtk_widget_show (appGUI->opt->tasks_sort_mode_combobox); g_signal_connect (G_OBJECT (appGUI->opt->tasks_sort_mode_combobox), "changed", G_CALLBACK(tasks_sort_mode_changed_cb), appGUI); gtk_table_attach (GTK_TABLE (table), appGUI->opt->tasks_sort_mode_combobox, 3, 4, 0, 1, (GtkAttachOptions) (GTK_FILL | GTK_EXPAND), (GtkAttachOptions) (0), 0, 0); sprintf (tmpbuf, "%s, %s, %s", _("Done"), _("Due date"), _("Priority")); gtk_combo_box_append_text (GTK_COMBO_BOX (appGUI->opt->tasks_sort_mode_combobox), tmpbuf); sprintf (tmpbuf, "%s, %s, %s", _("Done"), _("Priority"), _("Due date")); gtk_combo_box_append_text (GTK_COMBO_BOX (appGUI->opt->tasks_sort_mode_combobox), tmpbuf); sprintf (tmpbuf, "%s, %s, %s", _("Priority"), _("Due date"), _("Done")); gtk_combo_box_append_text (GTK_COMBO_BOX (appGUI->opt->tasks_sort_mode_combobox), tmpbuf); sprintf (tmpbuf, "%s, %s, %s", _("Priority"), _("Done"), _("Due date")); gtk_combo_box_append_text (GTK_COMBO_BOX (appGUI->opt->tasks_sort_mode_combobox), tmpbuf); sprintf (tmpbuf, "%s, %s, %s", _("Due date"), _("Priority"), _("Done")); gtk_combo_box_append_text (GTK_COMBO_BOX (appGUI->opt->tasks_sort_mode_combobox), tmpbuf); sprintf (tmpbuf, "%s, %s, %s", _("Due date"), _("Done"), _("Priority")); gtk_combo_box_append_text (GTK_COMBO_BOX (appGUI->opt->tasks_sort_mode_combobox), tmpbuf); gtk_combo_box_set_active (GTK_COMBO_BOX(appGUI->opt->tasks_sort_mode_combobox), config.tasks_sorting_mode); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (appGUI->opt->tasks_vbox), frame, FALSE, TRUE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); sprintf(tmpbuf, "<b>%s</b>", _("Tasks options")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_misc_set_padding (GTK_MISC (label), 0, 4); alignment = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_widget_show (alignment); gtk_container_add (GTK_CONTAINER (frame), alignment); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 12, 12, 0); tasks_opt_vbox = gtk_vbox_new (FALSE, 0); gtk_widget_show (tasks_opt_vbox); gtk_container_add (GTK_CONTAINER (alignment), tasks_opt_vbox); appGUI->opt->ct_hide_items_checkbutton = gtk_check_button_new_with_mnemonic (_("Hide completed tasks")); GTK_WIDGET_UNSET_FLAGS(appGUI->opt->ct_hide_items_checkbutton, GTK_CAN_FOCUS); gtk_widget_show (appGUI->opt->ct_hide_items_checkbutton); g_signal_connect (G_OBJECT (appGUI->opt->ct_hide_items_checkbutton), "toggled", G_CALLBACK (hide_delete_changed_cb), appGUI); gtk_box_pack_start (GTK_BOX (tasks_opt_vbox), appGUI->opt->ct_hide_items_checkbutton, FALSE, FALSE, 4); g_signal_connect (G_OBJECT (appGUI->opt->ct_hide_items_checkbutton), "toggled", G_CALLBACK (hide_items_cb), appGUI); appGUI->opt->ct_delete_items_checkbutton = gtk_check_button_new_with_mnemonic (_("Delete completed tasks without confirmation")); GTK_WIDGET_UNSET_FLAGS(appGUI->opt->ct_delete_items_checkbutton, GTK_CAN_FOCUS); gtk_widget_show (appGUI->opt->ct_delete_items_checkbutton); g_signal_connect (G_OBJECT (appGUI->opt->ct_delete_items_checkbutton), "toggled", G_CALLBACK (hide_delete_changed_cb), appGUI); gtk_box_pack_start (GTK_BOX (tasks_opt_vbox), appGUI->opt->ct_delete_items_checkbutton, FALSE, FALSE, 4); g_signal_connect (G_OBJECT (appGUI->opt->ct_delete_items_checkbutton), "toggled", G_CALLBACK (delete_items_cb), appGUI); appGUI->opt->ct_add_item_checkbutton = gtk_check_button_new_with_mnemonic (_("Add new task when double clicked on tasks list")); GTK_WIDGET_UNSET_FLAGS(appGUI->opt->ct_add_item_checkbutton, GTK_CAN_FOCUS); gtk_widget_show (appGUI->opt->ct_add_item_checkbutton); gtk_box_pack_start (GTK_BOX (tasks_opt_vbox), appGUI->opt->ct_add_item_checkbutton, FALSE, FALSE, 4); g_signal_connect (G_OBJECT (appGUI->opt->ct_add_item_checkbutton), "toggled", G_CALLBACK (add_item_cb), appGUI); appGUI->opt->ct_remember_category_checkbutton = gtk_check_button_new_with_mnemonic (_("Remember the last selected category")); GTK_WIDGET_UNSET_FLAGS(appGUI->opt->ct_remember_category_checkbutton, GTK_CAN_FOCUS); gtk_widget_show (appGUI->opt->ct_remember_category_checkbutton); gtk_box_pack_start (GTK_BOX (tasks_opt_vbox), appGUI->opt->ct_remember_category_checkbutton, FALSE, FALSE, 4); g_signal_connect (G_OBJECT (appGUI->opt->ct_remember_category_checkbutton), "toggled", G_CALLBACK (remember_category_cb), appGUI); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (appGUI->opt->tasks_vbox), frame, FALSE, TRUE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); g_snprintf (tmpbuf, BUFFER_SIZE, "<b>%s</b>", _("Reminder options")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_misc_set_padding (GTK_MISC (label), 0, 4); alignment = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_widget_show (alignment); gtk_container_add (GTK_CONTAINER (frame), alignment); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 12, 12, 0); table = gtk_table_new (2, 4, FALSE); gtk_widget_show (table); gtk_container_add (GTK_CONTAINER (alignment), table); gtk_container_set_border_width (GTK_CONTAINER (table), 4); gtk_table_set_col_spacings (GTK_TABLE (table), 4); gtk_table_set_row_spacings (GTK_TABLE (table), 8); g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("Postpone time")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); postpone_time_spinbutton_adj = gtk_adjustment_new (0, 0, 1440, 1, 10, 0); appGUI->opt->postpone_time_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (postpone_time_spinbutton_adj), 1, 0); g_signal_connect (G_OBJECT (appGUI->opt->postpone_time_spinbutton), "value-changed", G_CALLBACK (postpone_time_changed_cb), appGUI); gtk_widget_show (appGUI->opt->postpone_time_spinbutton); gtk_table_attach (GTK_TABLE (table), appGUI->opt->postpone_time_spinbutton, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (appGUI->opt->postpone_time_spinbutton), TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(appGUI->opt->postpone_time_spinbutton), config.postpone_time); g_snprintf (tmpbuf, BUFFER_SIZE, "%s (%s)", _("minutes"), _("0 for disable")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 2, 3, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("Global notification command")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); valid_hbox = gtk_hbox_new (FALSE, 2); gtk_widget_show (valid_hbox); gtk_table_attach (GTK_TABLE (table), valid_hbox, 1, 3, 1, 2, (GtkAttachOptions) (GTK_FILL | GTK_EXPAND), (GtkAttachOptions) (GTK_FILL), 0, 0); appGUI->opt->global_notification_cmd_entry = gtk_entry_new (); gtk_widget_show (appGUI->opt->global_notification_cmd_entry); g_signal_connect (G_OBJECT (appGUI->opt->global_notification_cmd_entry), "key_release_event", G_CALLBACK (global_notification_entry_key_release_cb), appGUI); gtk_box_pack_start (GTK_BOX (valid_hbox), appGUI->opt->global_notification_cmd_entry, TRUE, TRUE, 0); appGUI->opt->global_notification_valid_image = gtk_image_new (); gtk_widget_show (appGUI->opt->global_notification_valid_image); gtk_box_pack_start (GTK_BOX (valid_hbox), appGUI->opt->global_notification_valid_image, FALSE, FALSE, 0); }
/* mixerwindow_new */ MixerWindow * mixerwindow_new(char const * device, MixerLayout layout, gboolean embedded) { MixerWindow * mixer; GtkAccelGroup * accel; GtkWidget * vbox; GtkWidget * widget; MixerProperties properties; char buf[80]; unsigned long id; if((mixer = object_new(sizeof(*mixer))) == NULL) return NULL; accel = gtk_accel_group_new(); mixer->window = NULL; mixer->about = NULL; if(embedded) { mixer->window = gtk_plug_new(0); g_signal_connect_swapped(mixer->window, "embedded", G_CALLBACK( on_embedded), mixer); } else { mixer->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_add_accel_group(GTK_WINDOW(mixer->window), accel); gtk_window_set_default_size(GTK_WINDOW(mixer->window), 800, 350); #if GTK_CHECK_VERSION(2, 6, 0) gtk_window_set_icon_name(GTK_WINDOW(mixer->window), "stock_volume"); #endif gtk_window_set_title(GTK_WINDOW(mixer->window), _("Mixer")); g_signal_connect_swapped(mixer->window, "delete-event", G_CALLBACK(on_closex), mixer); } mixer->mixer = NULL; mixer->fullscreen = FALSE; if(mixer->window != NULL) { gtk_widget_realize(mixer->window); mixer->mixer = mixer_new(mixer->window, device, layout); } if(mixer->mixer == NULL) { mixerwindow_delete(mixer); return NULL; } #if GTK_CHECK_VERSION(3, 0, 0) vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); #else vbox = gtk_vbox_new(FALSE, 0); #endif #ifndef EMBEDDED /* menubar */ if(embedded == FALSE) { if(layout == ML_TABBED) _mixer_menubar[1].menu = _mixer_menu_view_tabbed; mixer->menubar = desktop_menubar_create(_mixer_menubar, mixer, accel); gtk_box_pack_start(GTK_BOX(vbox), mixer->menubar, FALSE, TRUE, 0); } else mixer->menubar = NULL; #else desktop_accel_create(_mixer_accel, mixer, accel); #endif /* toolbar */ if(embedded == FALSE) { if(layout != ML_TABBED) _mixer_toolbar[3].name = ""; widget = desktop_toolbar_create(_mixer_toolbar, mixer, accel); gtk_box_pack_start(GTK_BOX(vbox), widget, FALSE, TRUE, 0); } #ifndef EMBEDDED g_object_unref(accel); #endif widget = mixer_get_widget(mixer->mixer); gtk_box_pack_start(GTK_BOX(vbox), widget, TRUE, TRUE, 0); gtk_container_add(GTK_CONTAINER(mixer->window), vbox); gtk_widget_show_all(vbox); if(embedded) { /* print the window ID and force a flush */ id = gtk_plug_get_id(GTK_PLUG(mixer->window)); printf("%lu\n", id); fclose(stdout); } else { /* set the window title */ if(mixer_get_properties(mixer->mixer, &properties) == 0) { snprintf(buf, sizeof(buf), "%s - %s%s%s", _("Mixer"), properties.name, strlen(properties.version) ? " " : "", properties.version); gtk_window_set_title(GTK_WINDOW(mixer->window), buf); } gtk_widget_show(mixer->window); } return mixer; }
GtkWidget * create_EquConfig( void ) { GtkWidget * vbox1; GtkWidget * table1; GtkWidget * hbuttonbox1; GtkAccelGroup * accel_group; accel_group=gtk_accel_group_new(); EquConfig=gtk_window_new( GTK_WINDOW_TOPLEVEL ); gtk_widget_set_name( EquConfig,"EquConfig" ); gtk_object_set_data( GTK_OBJECT( EquConfig ),"EquConfig",EquConfig ); gtk_widget_set_usize( EquConfig,350,260 ); GTK_WIDGET_SET_FLAGS( EquConfig,GTK_CAN_DEFAULT ); gtk_window_set_title( GTK_WINDOW( EquConfig ),MSGTR_ConfigureEqualizer ); gtk_window_set_position( GTK_WINDOW( EquConfig ),GTK_WIN_POS_CENTER ); // gtk_window_set_modal( GTK_WINDOW( EquConfig ),TRUE ); gtk_window_set_policy( GTK_WINDOW( EquConfig ),FALSE,FALSE,FALSE ); gtk_window_set_wmclass( GTK_WINDOW( EquConfig ),"EquConfig","MPlayer" ); gtk_widget_realize( EquConfig ); gtkAddIcon( EquConfig ); vbox1=AddVBox( AddDialogFrame( EquConfig ),0 ); table1=gtk_table_new( 6,2,FALSE ); gtk_widget_set_name( table1,"table1" ); gtk_widget_show( table1 ); gtk_box_pack_start( GTK_BOX( vbox1 ),table1,TRUE,TRUE,0 ); gtk_table_set_row_spacings( GTK_TABLE( table1 ),4 ); gtk_table_set_col_spacings( GTK_TABLE( table1 ),4 ); gtk_table_attach( GTK_TABLE( table1 ), AddLabel( MSGTR_EQU_Channel1,NULL ), 0,1,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_table_attach( GTK_TABLE( table1 ), AddLabel( MSGTR_EQU_Channel2,NULL ), 0,1,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_table_attach( GTK_TABLE( table1 ), AddLabel( MSGTR_EQU_Channel3,NULL ), 0,1,2,3,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_table_attach( GTK_TABLE( table1 ), AddLabel( MSGTR_EQU_Channel4,NULL ), 0,1,3,4,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_table_attach( GTK_TABLE( table1 ), AddLabel( MSGTR_EQU_Channel5,NULL ), 0,1,4,5,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_table_attach( GTK_TABLE( table1 ), AddLabel( MSGTR_EQU_Channel6,NULL ), 0,1,5,6,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); CBChannel1=AddComboBox( NULL ); gtk_table_attach( GTK_TABLE( table1 ),CBChannel1,1,2,0,1,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); CEChannel1=GTK_COMBO( CBChannel1 )->entry; gtk_widget_set_name( CEChannel1,"CEChannel1" ); gtk_widget_show( CEChannel1 ); CBChannel2=AddComboBox( NULL ); gtk_table_attach( GTK_TABLE( table1 ),CBChannel2,1,2,1,2,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); CEChannel2=GTK_COMBO( CBChannel2 )->entry; gtk_widget_set_name( CEChannel2,"CEChannel2" ); gtk_widget_show( CEChannel2 ); CBChannel3=AddComboBox( NULL ); gtk_table_attach( GTK_TABLE( table1 ),CBChannel3,1,2,2,3,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); CEChannel3=GTK_COMBO( CBChannel3 )->entry; gtk_widget_set_name( CEChannel3,"CEChannel3" ); gtk_widget_show( CEChannel3 ); CBChannel4=AddComboBox( NULL ); gtk_table_attach( GTK_TABLE( table1 ),CBChannel4,1,2,3,4,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); CEChannel4=GTK_COMBO( CBChannel4 )->entry; gtk_widget_set_name( CEChannel4,"CEChannel4" ); gtk_widget_show( CEChannel4 ); CBChannel5=AddComboBox( NULL ); gtk_table_attach( GTK_TABLE( table1 ),CBChannel5,1,2,4,5,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); CEChannel5=GTK_COMBO( CBChannel5 )->entry; gtk_widget_set_name( CEChannel5,"CEChannel5" ); gtk_widget_show( CEChannel5 ); CBChannel6=AddComboBox( NULL ); gtk_table_attach( GTK_TABLE( table1 ),CBChannel6,1,2,5,6,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); CEChannel6=GTK_COMBO( CBChannel6 )->entry; gtk_widget_set_name( CEChannel6,"CEChannel6" ); gtk_widget_show( CEChannel6 ); AddHSeparator( vbox1 ); hbuttonbox1=AddHButtonBox( vbox1 ); gtk_button_box_set_layout( GTK_BUTTON_BOX( hbuttonbox1 ),GTK_BUTTONBOX_END ); gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox1 ),10 ); ecOk=AddButton( MSGTR_Ok,hbuttonbox1 ); ecCancel=AddButton( MSGTR_Cancel,hbuttonbox1 ); gtk_widget_add_accelerator( ecOk,"clicked",accel_group,GDK_Return,0,GTK_ACCEL_VISIBLE ); gtk_widget_add_accelerator( ecCancel,"clicked",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE ); gtk_signal_connect( GTK_OBJECT( EquConfig ),"destroy",GTK_SIGNAL_FUNC( WidgetDestroy ),&EquConfig ); gtk_signal_connect( GTK_OBJECT( ecOk ),"clicked",GTK_SIGNAL_FUNC( ecButtonReleased ),(void *)1 ); gtk_signal_connect( GTK_OBJECT( ecCancel ),"clicked",GTK_SIGNAL_FUNC( ecButtonReleased ),(void *)0 ); gtk_window_add_accel_group( GTK_WINDOW( EquConfig ),accel_group ); return EquConfig; }
GtkWidget * create_Equalizer( void ) { GtkWidget * vbox1; GtkWidget * hbox1; GtkWidget * scrolledwindow1; GtkWidget * table1; GtkWidget * hbuttonbox1; GtkAccelGroup * accel_group; accel_group=gtk_accel_group_new(); Equalizer=gtk_window_new( GTK_WINDOW_TOPLEVEL ); gtk_widget_set_name( Equalizer,MSGTR_Equalizer ); gtk_object_set_data( GTK_OBJECT( Equalizer ),MSGTR_Equalizer,Equalizer ); gtk_widget_set_usize( Equalizer,-1,256 ); gtk_window_set_title( GTK_WINDOW( Equalizer ),MSGTR_Equalizer ); gtk_window_set_position( GTK_WINDOW( Equalizer ),GTK_WIN_POS_CENTER ); gtk_window_set_policy( GTK_WINDOW( Equalizer ),FALSE,FALSE,FALSE ); gtk_window_set_wmclass( GTK_WINDOW( Equalizer ),"Equalizer","MPlayer" ); gtk_widget_realize( Equalizer ); gtkAddIcon( Equalizer ); vbox1=AddVBox( AddDialogFrame( Equalizer ),0 ); Notebook=gtk_notebook_new(); gtk_widget_set_name( Notebook,"Notebook" ); gtk_widget_show( Notebook ); gtk_box_pack_start( GTK_BOX( vbox1 ),Notebook,TRUE,TRUE,0 ); gtk_container_set_border_width( GTK_CONTAINER( Notebook ),1 ); hbox1=AddHBox( Notebook,0 ); scrolledwindow1=gtk_scrolled_window_new( NULL,NULL ); gtk_widget_set_name( scrolledwindow1,"scrolledwindow1" ); gtk_widget_show( scrolledwindow1 ); gtk_box_pack_start( GTK_BOX( hbox1 ),scrolledwindow1,FALSE,FALSE,0 ); gtk_widget_set_usize( scrolledwindow1,106,-2 ); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolledwindow1 ),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC ); ChannelsList=gtk_clist_new( 1 ); gtk_widget_set_name( ChannelsList,"ChannelsList" ); gtk_widget_show( ChannelsList ); gtk_container_add( GTK_CONTAINER( scrolledwindow1 ),ChannelsList ); gtk_clist_set_column_width( GTK_CLIST( ChannelsList ),0,80 ); gtk_clist_column_titles_hide( GTK_CLIST( ChannelsList ) ); table1=gtk_table_new( 2,10,FALSE ); gtk_widget_set_name( table1,"table1" ); gtk_widget_show( table1 ); gtk_box_pack_start( GTK_BOX( hbox1 ),table1,FALSE,FALSE,0 ); gtk_table_set_row_spacings( GTK_TABLE( table1 ),4 ); gtk_table_set_col_spacings( GTK_TABLE( table1 ),9 ); A3125adj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-eqRange,eqRange,0.5,0,0 ) ); A3125=AddVScaler( A3125adj,NULL,-1 ); gtk_table_attach( GTK_TABLE( table1 ),A3125,0,1,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),0,0 ); A6250adj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-eqRange,eqRange,0.5,0,0 ) ); A6250=AddVScaler( A6250adj,NULL,-1 ); gtk_table_attach( GTK_TABLE( table1 ),A6250,1,2,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),0,0 ); A125adj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-eqRange,eqRange,0.5,0,0 ) ); A125=AddVScaler( A125adj,NULL,-1 ); gtk_table_attach( GTK_TABLE( table1 ),A125,2,3,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),0,0 ); A250adj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-eqRange,eqRange,0.5,0,0 ) ); A250=AddVScaler( A250adj,NULL,-1 ); gtk_table_attach( GTK_TABLE( table1 ),A250,3,4,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),0,0 ); A500adj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-eqRange,eqRange,0.5,0,0 ) ); A500=AddVScaler( A500adj,NULL,-1 ); gtk_table_attach( GTK_TABLE( table1 ),A500,4,5,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),0,0 ); A1000adj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-eqRange,eqRange,0.5,0,0 ) ); A1000=AddVScaler( A1000adj,NULL,-1 ); gtk_table_attach( GTK_TABLE( table1 ),A1000,5,6,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),0,0 ); A2000adj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-eqRange,eqRange,0.5,0,0 ) ); A2000=AddVScaler( A2000adj,NULL,-1 ); gtk_table_attach( GTK_TABLE( table1 ),A2000,6,7,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),0,0 ); A4000adj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-eqRange,eqRange,0.5,0,0 ) ); A4000=AddVScaler( A4000adj,NULL,-1 ); gtk_table_attach( GTK_TABLE( table1 ),A4000,7,8,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),0,0 ); A8000adj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-eqRange,eqRange,0.5,0,0 ) ); A8000=AddVScaler( A8000adj,NULL,-1 ); gtk_table_attach( GTK_TABLE( table1 ),A8000,8,9,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),0,0 ); A16000adj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-eqRange,eqRange,0.5,0,0 ) ); A16000=AddVScaler( A16000adj,NULL,-1 ); gtk_table_attach( GTK_TABLE( table1 ),A16000,9,10,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),0,0 ); gtk_table_attach( GTK_TABLE( table1 ), AddLabel( "31.25",NULL ), 0,1,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_table_attach( GTK_TABLE( table1 ), AddLabel( "62.50",NULL ), 1,2,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_table_attach( GTK_TABLE( table1 ), AddLabel( "125",NULL ), 2,3,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_table_attach( GTK_TABLE( table1 ), AddLabel( "250",NULL ), 3,4,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_table_attach( GTK_TABLE( table1 ), AddLabel( "500",NULL ), 4,5,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_table_attach( GTK_TABLE( table1 ), AddLabel( "1000",NULL ), 5,6,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_table_attach( GTK_TABLE( table1 ), AddLabel( "2000",NULL ), 6,7,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_table_attach( GTK_TABLE( table1 ), AddLabel( "4000",NULL ), 7,8,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_table_attach( GTK_TABLE( table1 ), AddLabel( "8000",NULL ), 8,9,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_table_attach( GTK_TABLE( table1 ), AddLabel( "16000",NULL ), 9,10,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_notebook_set_tab_label( GTK_NOTEBOOK( Notebook ),gtk_notebook_get_nth_page( GTK_NOTEBOOK( Notebook ),0 ), AddLabel( MSGTR_EQU_Audio,NULL ) ); table1=gtk_table_new( 4,2,FALSE ); gtk_widget_set_name( table1,"table1" ); gtk_widget_show( table1 ); gtk_container_add( GTK_CONTAINER( Notebook ),table1 ); gtk_table_attach( GTK_TABLE( table1 ), AddLabel( MSGTR_EQU_Contrast,NULL ), 0,1,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_table_attach( GTK_TABLE( table1 ), AddLabel( MSGTR_EQU_Brightness,NULL ), 0,1,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_table_attach( GTK_TABLE( table1 ), AddLabel( MSGTR_EQU_Hue,NULL ), 0,1,2,3,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_table_attach( GTK_TABLE( table1 ), AddLabel( MSGTR_EQU_Saturation,NULL ), 0,1,3,4,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); VContrastadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-100,100,1,0,0 ) ); VContrast=AddHScaler( VContrastadj,NULL,1 ); gtk_table_attach( GTK_TABLE( table1 ),VContrast,1,2,0,1,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_widget_set_usize( VContrast,-1,45 ); VBrightnessadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-100,100,1,0,0 ) ); VBrightness=AddHScaler( VBrightnessadj,NULL,1 ); gtk_table_attach( GTK_TABLE( table1 ),VBrightness,1,2,1,2,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_widget_set_usize( VBrightness,-1,45 ); VHueadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-100,100,1,0,0 ) ); VHue=AddHScaler( VHueadj,NULL,1 ); gtk_table_attach( GTK_TABLE( table1 ),VHue,1,2,2,3,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_widget_set_usize( VHue,-1,45 ); VSaturationadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-100,100,1,0,0 ) ); VSaturation=AddHScaler( VSaturationadj,NULL,1 ); gtk_table_attach( GTK_TABLE( table1 ),VSaturation,1,2,3,4,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); gtk_widget_set_usize( VSaturation,-1,45 ); gtk_notebook_set_tab_label( GTK_NOTEBOOK( Notebook ),gtk_notebook_get_nth_page( GTK_NOTEBOOK( Notebook ),1 ), AddLabel( MSGTR_EQU_Video,NULL ) ); AddHSeparator( vbox1 ); hbuttonbox1=AddHButtonBox( vbox1 ); gtk_button_box_set_layout( GTK_BUTTON_BOX( hbuttonbox1 ),GTK_BUTTONBOX_END ); gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox1 ),10 ); Config=AddButton( MSGTR_Config,hbuttonbox1 ); Clear=AddButton( MSGTR_Clear,hbuttonbox1 ); Ok=AddButton( MSGTR_Ok,hbuttonbox1 ); gtk_widget_add_accelerator( Ok,"clicked",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE ); gtk_widget_add_accelerator( Ok,"clicked",accel_group,GDK_Return,0,GTK_ACCEL_VISIBLE ); gtk_signal_connect( GTK_OBJECT( Equalizer ),"destroy",GTK_SIGNAL_FUNC( WidgetDestroy ),&Equalizer ); gtk_signal_connect( GTK_OBJECT( Equalizer ),"focus_in_event",GTK_SIGNAL_FUNC( eqFocus ),(void *)2 ); gtk_signal_connect( GTK_OBJECT( ChannelsList ),"select_row",GTK_SIGNAL_FUNC( eqSelectChannelsListRow ),NULL ); gtk_signal_connect( GTK_OBJECT( A3125 ),"motion_notify_event",GTK_SIGNAL_FUNC( eqHScaleMotion ),(void*)0 ); gtk_signal_connect( GTK_OBJECT( A6250 ),"motion_notify_event",GTK_SIGNAL_FUNC( eqHScaleMotion ),(void*)1 ); gtk_signal_connect( GTK_OBJECT( A125 ),"motion_notify_event",GTK_SIGNAL_FUNC( eqHScaleMotion ),(void*)2 ); gtk_signal_connect( GTK_OBJECT( A250 ),"motion_notify_event",GTK_SIGNAL_FUNC( eqHScaleMotion ),(void*)3 ); gtk_signal_connect( GTK_OBJECT( A500 ),"motion_notify_event",GTK_SIGNAL_FUNC( eqHScaleMotion ),(void*)4 ); gtk_signal_connect( GTK_OBJECT( A1000 ),"motion_notify_event",GTK_SIGNAL_FUNC( eqHScaleMotion ),(void*)5 ); gtk_signal_connect( GTK_OBJECT( A2000 ),"motion_notify_event",GTK_SIGNAL_FUNC( eqHScaleMotion ),(void*)6 ); gtk_signal_connect( GTK_OBJECT( A4000 ),"motion_notify_event",GTK_SIGNAL_FUNC( eqHScaleMotion ),(void*)7 ); gtk_signal_connect( GTK_OBJECT( A8000 ),"motion_notify_event",GTK_SIGNAL_FUNC( eqHScaleMotion ),(void*)8 ); gtk_signal_connect( GTK_OBJECT( A16000 ),"motion_notify_event",GTK_SIGNAL_FUNC( eqHScaleMotion ),(void*)9 ); gtk_signal_connect( GTK_OBJECT( VContrast ),"motion_notify_event",GTK_SIGNAL_FUNC( eqVScaleMotion ),(void*)1 ); gtk_signal_connect( GTK_OBJECT( VBrightness ),"motion_notify_event",GTK_SIGNAL_FUNC( eqVScaleMotion ),(void*)2 ); gtk_signal_connect( GTK_OBJECT( VHue ),"motion_notify_event",GTK_SIGNAL_FUNC( eqVScaleMotion ),(void*)3 ); gtk_signal_connect( GTK_OBJECT( VSaturation ),"motion_notify_event",GTK_SIGNAL_FUNC( eqVScaleMotion ),(void *)4 ); gtk_signal_connect( GTK_OBJECT( Ok ),"clicked",GTK_SIGNAL_FUNC( eqButtonReleased ),(void *)0 ); gtk_signal_connect( GTK_OBJECT( Clear ),"clicked",GTK_SIGNAL_FUNC( eqButtonReleased ),(void *)1 ); gtk_signal_connect( GTK_OBJECT( Config ),"clicked",GTK_SIGNAL_FUNC( eqButtonReleased ),(void *)2 ); gtk_signal_connect( GTK_OBJECT( Notebook ),"switch_page",GTK_SIGNAL_FUNC( eqNotebook ),NULL ); gtk_window_add_accel_group( GTK_WINDOW( Equalizer ),accel_group ); return Equalizer; }
int main (int argc, char **argv) { GtkBuilder *builder; GtkWidget *widget; GtkAccelGroup *ag; OsmGpsMapLayer *osd; const char *repo_uri; char *cachedir, *cachebasedir; GError *error = NULL; GOptionContext *context; GIOChannel *gio_read; context = g_option_context_new ("- Map browser"); g_option_context_set_help_enabled(context, FALSE); g_option_context_add_main_entries (context, entries, NULL); if (!g_option_context_parse (context, &argc, &argv, &error)) { usage(context); return 1; } if (aprsis_server == NULL) { aprsis_server = strdup("euro.aprs2.net"); } if (aprsis_port == 0) { aprsis_port = strdup("14580"); } aprsis_ctx *ctx = aprsis_new(aprsis_server, aprsis_port, "aprsmap", "-1"); //aprsis_ctx *ctx = aprsis_new("localhost", "14580", "aprsmap", "-1"); //set variables properties->lat, properties->lon, properties->range, properties->ctx aprs_details *properties = aprs_details_new(DEF_HOME_LAT,DEF_HOME_LON,DEF_RAD,ctx); if (packet_log_file != NULL) { FILE *log = fopen(packet_log_file, "w"); aprsis_set_log(ctx, log); } g_thread_init(NULL); gtk_init (&argc, &argv); // initialise APRS parser fap_init(); // connect to APRS_IS server start_aprsis(ctx); /* Only use the repo_uri to check if the user has supplied a valid map source ID */ repo_uri = osm_gps_map_source_get_repo_uri(opt_map_provider); if ( repo_uri == NULL ) { usage(context); return 2; } cachebasedir = osm_gps_map_get_default_cache_directory(); if (opt_cache_base_dir && g_file_test(opt_cache_base_dir, G_FILE_TEST_IS_DIR)) { cachedir = g_strdup(OSM_GPS_MAP_CACHE_AUTO); cachebasedir = g_strdup(opt_cache_base_dir); } else if (opt_friendly_cache) { cachedir = g_strdup(OSM_GPS_MAP_CACHE_FRIENDLY); } else if (opt_no_cache) { cachedir = g_strdup(OSM_GPS_MAP_CACHE_DISABLED); } else { cachedir = g_strdup(OSM_GPS_MAP_CACHE_AUTO); } if (opt_debug) gdk_window_set_debug_updates(TRUE); g_debug("Map Cache Dir: %s", cachedir); g_debug("Map Provider: %s (%d)", osm_gps_map_source_get_friendly_name(opt_map_provider), opt_map_provider); map = g_object_new (OSM_TYPE_GPS_MAP, "map-source",opt_map_provider, "tile-cache",cachedir, "tile-cache-base", cachebasedir, "proxy-uri",g_getenv("http_proxy"), NULL); osd = g_object_new (OSM_TYPE_GPS_MAP_OSD, "show-scale",TRUE, "show-coordinates",TRUE, NULL); osm_gps_map_layer_add(OSM_GPS_MAP(map), osd); g_object_unref(G_OBJECT(osd)); g_free(cachedir); g_free(cachebasedir); //Enable keyboard navigation osm_gps_map_set_keyboard_shortcut(map, OSM_GPS_MAP_KEY_FULLSCREEN, GDK_F11); osm_gps_map_set_keyboard_shortcut(map, OSM_GPS_MAP_KEY_UP, GDK_Up); osm_gps_map_set_keyboard_shortcut(map, OSM_GPS_MAP_KEY_DOWN, GDK_Down); osm_gps_map_set_keyboard_shortcut(map, OSM_GPS_MAP_KEY_LEFT, GDK_Left); osm_gps_map_set_keyboard_shortcut(map, OSM_GPS_MAP_KEY_RIGHT, GDK_Right); //Build the UI g_symbol_image = cairo_image_surface_create_from_png("allicons.png"); //, &error); g_symbol_image2 = cairo_image_surface_create_from_png("allicon2.png"); //, &error); stations = g_hash_table_new(g_str_hash, g_str_equal); builder = gtk_builder_new(); gtk_builder_add_from_file (builder, "mapviewer.ui", &error); if (error) g_error ("ERROR: %s\n", error->message); gtk_box_pack_start ( GTK_BOX(gtk_builder_get_object(builder, "map_box")), GTK_WIDGET(map), TRUE, TRUE, 0); // centre on the latitude and longitude set in the properties menu osm_gps_map_set_center_and_zoom(map, properties->lat,properties->lon, 5); //Connect to signals that need data passed to them g_signal_connect ( gtk_builder_get_object(builder, "home_button"), "clicked", G_CALLBACK (on_home_clicked_event), properties); g_signal_connect ( gtk_builder_get_object(builder, "homemenuitem"), "activate", G_CALLBACK (on_home_clicked_event), properties); g_signal_connect ( gtk_builder_get_object(builder, "sethomemenuitem"), "activate", G_CALLBACK (on_set_home_activate_event), properties); g_signal_connect ( gtk_builder_get_object(builder, "okPrefs"), "clicked", G_CALLBACK (on_properties_ok_clicked), properties); g_signal_connect ( gtk_builder_get_object(builder, "prefs_button"), "clicked", G_CALLBACK (on_properties_clicked_event), properties); g_signal_connect (G_OBJECT (map), "button-press-event", G_CALLBACK (on_button_press_event), (gpointer) map); /* potentially unneccesary callbacks. g_signal_connect ( G_OBJECT (map), "button-release-event", G_CALLBACK (on_button_release_event),(gpointer) gtk_builder_get_object(builder, "text_entry")); /* g_signal_connect (G_OBJECT (map), "notify::tiles-queued", G_CALLBACK (on_tiles_queued_changed), (gpointer) gtk_builder_get_object(builder, "cache_label")); */ widget = GTK_WIDGET(gtk_builder_get_object(builder, "window1")); g_signal_connect (widget, "destroy", G_CALLBACK (on_close), (gpointer) map); //pulls popup data from mapviewer.ui popup = GTK_WIDGET(gtk_builder_get_object(builder, "proppop")); about = GTK_WIDGET(gtk_builder_get_object(builder, "about")); //connect mapviewer.ui values to popup window gtk_builder_connect_signals(builder, popup); gtk_builder_connect_signals(builder, about); //Setup accelerators. ag = gtk_accel_group_new(); gtk_accel_group_connect(ag, GDK_w, GDK_CONTROL_MASK, GTK_ACCEL_MASK, g_cclosure_new(gtk_main_quit, NULL, NULL)); gtk_accel_group_connect(ag, GDK_q, GDK_CONTROL_MASK, GTK_ACCEL_MASK, g_cclosure_new(gtk_main_quit, NULL, NULL)); gtk_window_add_accel_group(GTK_WINDOW(widget), ag); //Set up GTK_ENTRY boxes in the preferences pop up latent = GTK_ENTRY(gtk_builder_get_object(builder, "declat")); lonent = GTK_ENTRY(gtk_builder_get_object(builder, "declon")); rangeent = GTK_ENTRY(gtk_builder_get_object(builder, "range")); gtk_entry_set_text(latent, g_strdup_printf("%f",properties->lat)); gtk_entry_set_text(lonent, g_strdup_printf("%f",properties->lon)); gtk_entry_set_text(rangeent, g_strdup_printf("%d",properties->range)); g_object_unref( G_OBJECT( builder ) ); gtk_widget_show_all (widget); //gtk_dialog_run (GTK_DIALOG(data->about) ); //g_log_set_handler ("OsmGpsMap", G_LOG_LEVEL_MASK, g_log_default_handler, NULL); g_log_set_handler ("OsmGpsMap", G_LOG_LEVEL_MESSAGE, g_log_default_handler, NULL); gtk_main (); fap_cleanup(); aprsis_close(ctx); return(0); }
GtkWidget * engine_logon_widget_create () { GSQL_TRACE_FUNC; GtkWidget *table; GtkWidget *database_name; GtkWidget *database_name_entry; GtkWidget *username; GtkWidget *password; GtkWidget *label; GtkWidget *options_vbox; GtkWidget *expander; GtkWidget *oracle_option_hbox; GtkWidget *connect_as; GtkListStore *aliases; GtkEntryCompletion *compl; table = gtk_table_new (5, 2, FALSE); gtk_table_set_row_spacings (GTK_TABLE (table), 2); gtk_widget_show (table); aliases = engine_oracle_get_tns_aliases (); compl = gtk_entry_completion_new (); gtk_entry_completion_set_model (compl, GTK_TREE_MODEL (aliases)); gtk_entry_completion_set_text_column (compl, 0); gtk_entry_completion_set_popup_completion (compl, FALSE); gtk_entry_completion_set_inline_completion (compl, TRUE); database_name = gtk_combo_box_entry_new_with_model (GTK_TREE_MODEL (aliases), 0); gtk_widget_show (database_name); gtk_table_attach (GTK_TABLE (table), database_name, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); database_name_entry = gtk_bin_get_child(GTK_BIN(database_name)); gtk_entry_set_activates_default(GTK_ENTRY (database_name_entry), TRUE); gtk_entry_set_completion (GTK_ENTRY (database_name_entry), compl); label = gtk_label_new (_("Database name")); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); gtk_misc_set_padding (GTK_MISC (label), 14, 0); username = gtk_entry_new (); gtk_widget_show (username); gtk_table_attach (GTK_TABLE (table), username, 1, 2, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_entry_set_max_length (GTK_ENTRY (username), 32); gtk_entry_set_invisible_char (GTK_ENTRY (username), 9679); gtk_entry_set_activates_default(GTK_ENTRY (username), TRUE); label = gtk_label_new (_("Username")); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); gtk_misc_set_padding (GTK_MISC (label), 14, 0); password = gtk_entry_new (); gtk_widget_show (password); gtk_table_attach (GTK_TABLE (table), password, 1, 2, 3, 4, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_entry_set_max_length (GTK_ENTRY (password), 32); gtk_entry_set_visibility (GTK_ENTRY (password), FALSE); gtk_entry_set_invisible_char (GTK_ENTRY (password), 9679); gtk_entry_set_activates_default(GTK_ENTRY (password), TRUE); label = gtk_label_new (_("Password")); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 3, 4, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); gtk_misc_set_padding (GTK_MISC (label), 14, 0); expander = gtk_expander_new (NULL); gtk_widget_show (expander); gtk_table_attach (GTK_TABLE (table), expander, 0, 2, 4, 5, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); options_vbox = gtk_vbox_new (FALSE, 0); gtk_widget_show (options_vbox); gtk_container_add (GTK_CONTAINER (expander), options_vbox); oracle_option_hbox = gtk_hbox_new (FALSE, 0); gtk_widget_show (oracle_option_hbox); gtk_box_pack_start (GTK_BOX (options_vbox), oracle_option_hbox, TRUE, TRUE, 0); label = gtk_label_new (_("Connect as ")); gtk_widget_show (label); gtk_box_pack_start (GTK_BOX (oracle_option_hbox), label, FALSE, FALSE, 0); gtk_misc_set_padding (GTK_MISC (label), 14, 0); connect_as = gtk_combo_box_new_text (); gtk_widget_show (connect_as); gtk_box_pack_start (GTK_BOX (oracle_option_hbox), connect_as, TRUE, TRUE, 0); GTK_WIDGET_SET_FLAGS (connect_as, GTK_CAN_DEFAULT); gtk_combo_box_append_text (GTK_COMBO_BOX (connect_as), "Normal"); gtk_combo_box_append_text (GTK_COMBO_BOX (connect_as), "SYSDBA"); gtk_combo_box_append_text (GTK_COMBO_BOX (connect_as), "SYSOPER"); gtk_combo_box_set_active (GTK_COMBO_BOX (connect_as), 0); label = gtk_label_new (_("Options")); gtk_widget_show (label); gtk_expander_set_label_widget (GTK_EXPANDER (expander), label); HOOKUP_OBJECT (table, database_name, "database"); HOOKUP_OBJECT (table, username, "username"); HOOKUP_OBJECT (table, password, "password"); HOOKUP_OBJECT (table, connect_as, "mode"); return table; }
GtkWidget* nameres_prefs_show(void) { guint table_row; GtkWidget *main_tb, *main_vb; GtkWidget *m_resolv_cb, *n_resolv_cb, *t_resolv_cb; GtkTooltips *tooltips = gtk_tooltips_new(); GtkWidget *c_resolv_cb; #if defined(HAVE_C_ARES) || defined(HAVE_GNU_ADNS) GtkWidget *resolv_concurrency_te; char concur_str[10+1]; #endif /* HAVE_C_ARES || HAVE_GNU_ADNS */ #ifdef HAVE_LIBSMI GtkWidget *load_smi_modules_cb, *suppress_smi_errors_cb; uat_t *smi_paths_uat; uat_t *smi_modules_uat; #endif #ifdef HAVE_GEOIP uat_t *geoip_db_paths_uat; #endif /* * XXX - it would be nice if the current setting of the resolver * flags could be different from the preference flags, so that * the preference flags would represent what the user *typically* * wants, but they could override them for particular captures * without a subsequent editing of the preferences recording the * temporary settings as permanent preferences. */ prefs.name_resolve = g_resolv_flags; /* Main vertical box */ main_vb = gtk_vbox_new(FALSE, 7); gtk_container_set_border_width(GTK_CONTAINER(main_vb), 5); /* Main table */ main_tb = gtk_table_new(RESOLV_TABLE_ROWS, 3, FALSE); gtk_box_pack_start(GTK_BOX(main_vb), main_tb, FALSE, FALSE, 0); gtk_table_set_row_spacings(GTK_TABLE(main_tb), 10); gtk_table_set_col_spacings(GTK_TABLE(main_tb), 15); gtk_widget_show(main_tb); g_object_set_data(G_OBJECT(main_tb), E_TOOLTIPS_KEY, tooltips); /* Resolve MAC addresses */ table_row = 0; m_resolv_cb = create_preference_check_button(main_tb, table_row, "Enable MAC name resolution:", "e.g. Ethernet address to manufacturer name", prefs.name_resolve & RESOLV_MAC); g_object_set_data(G_OBJECT(main_vb), M_RESOLVE_KEY, m_resolv_cb); /* Resolve network addresses */ table_row++; n_resolv_cb = create_preference_check_button(main_tb, table_row, "Enable network name resolution:", "e.g. IP address to DNS name (hostname)", prefs.name_resolve & RESOLV_NETWORK); g_object_set_data(G_OBJECT(main_vb), N_RESOLVE_KEY, n_resolv_cb); /* Resolve transport addresses */ table_row++; t_resolv_cb = create_preference_check_button(main_tb, table_row, "Enable transport name resolution:", "e.g. TCP/UDP port to service name", prefs.name_resolve & RESOLV_TRANSPORT); g_object_set_data(G_OBJECT(main_vb), T_RESOLVE_KEY, t_resolv_cb); #if defined(HAVE_C_ARES) || defined(HAVE_GNU_ADNS) /* Enable concurrent (asynchronous) DNS lookups */ table_row++; c_resolv_cb = create_preference_check_button(main_tb, table_row, "Enable concurrent DNS name resolution:", "be sure to enable network name resolution", prefs.name_resolve & RESOLV_CONCURRENT); g_object_set_data(G_OBJECT(main_vb), C_RESOLVE_KEY, c_resolv_cb); /* Max concurrent requests */ table_row++; g_snprintf(concur_str, sizeof(concur_str), "%d", prefs.name_resolve_concurrency); resolv_concurrency_te = create_preference_entry(main_tb, table_row, "Maximum concurrent requests:", "maximum parallel running DNS requests", concur_str); g_object_set_data(G_OBJECT(main_vb), RESOLVE_CONCURRENCY_KEY, resolv_concurrency_te); #else /* HAVE_C_ARES || HAVE_GNU_ADNS */ table_row++; c_resolv_cb = create_preference_static_text(main_tb, table_row, "Enable concurrent DNS name resolution: N/A", "Support for this feature was not compiled into this version of Wireshark"); #endif /* HAVE_C_ARES || HAVE_GNU_ADNS */ #ifdef HAVE_LIBSMI /* Enable OID resolution */ table_row++; load_smi_modules_cb = create_preference_check_button(main_tb, table_row, "Enable OID resolution:", "You must restart Wireshark for this change to" " take effect. [If True the 'SMI paths' and 'SMI modules' preferences will be shown].", prefs.load_smi_modules); g_object_set_data(G_OBJECT(main_vb), LOAD_SMI_MODULES_KEY, load_smi_modules_cb); /* Suppress smi errors */ table_row++; suppress_smi_errors_cb = create_preference_check_button(main_tb, table_row, "Suppress SMI errors:", "Some errors can be ignored. If unsure, set to false.", prefs.suppress_smi_errors); g_object_set_data(G_OBJECT(main_vb), SUPPRESS_SMI_ERRORS_KEY, suppress_smi_errors_cb); /* SMI paths UAT */ smi_paths_uat = uat_get_table_by_name("SMI Paths"); if (smi_paths_uat) { table_row++; create_preference_uat(main_tb, table_row, "SMI (MIB and PIB) paths", "Search paths for SMI (MIB and PIB) modules. You must\n" "restart Wireshark for these changes to take effect.", smi_paths_uat); } /* SMI modules UAT */ smi_modules_uat = uat_get_table_by_name("SMI Modules"); if (smi_modules_uat) { table_row++; create_preference_uat(main_tb, table_row, "SMI (MIB and PIB) modules", "List of enabled SMI (MIB and PIB) modules. You must\n" "restart Wireshark for these changes to take effect.", smi_modules_uat); } #else /* HAVE_LIBSMI */ table_row++; create_preference_static_text(main_tb, table_row, "SMI (MIB and PIB) modules and paths: N/A", "Support for this feature was not compiled into this version of Wireshark"); table_row++; create_preference_static_text(main_tb, table_row, "Enable OID resolution: N/A", "Support for this feature was not compiled into this version of Wireshark"); table_row++; create_preference_static_text(main_tb, table_row, "Suppress SMI errors: N/A", "Support for this feature was not compiled into this version of Wireshark"); #endif /* HAVE_LIBSMI */ #ifdef HAVE_GEOIP /* GeoIP databases http://www.maxmind.com/app/api */ geoip_db_paths_uat = uat_get_table_by_name("GeoIP Database Paths"); if (geoip_db_paths_uat) { table_row++; create_preference_uat(main_tb, table_row, "GeoIP database directories", "Search paths for GeoIP address mapping databases.\n" "Wireshark will look in each directory for files beginning\n" "with \"Geo\" and ending with \".dat\".\n" "You must restart Wireshark for these changes to take\n" "effect.", geoip_db_paths_uat); } #else /* HAVE_GEOIP */ table_row++; create_preference_static_text(main_tb, table_row, "GeoIP database search paths: N/A", "Support for this feature was not compiled into this version of Wireshark"); #endif /* HAVE_GEOIP */ /* Show 'em what we got */ gtk_widget_show_all(main_vb); return(main_vb); }
void properties_dialog (struct server *s) { GtkWidget *window; GtkWidget *main_vbox; GtkWidget *hbox; GtkWidget *hbox2; GtkWidget *notebook; GtkWidget *page; GtkWidget *button; GtkWidget *pixmap; GtkWidget *label; char buf[256]; window = dialog_create_modal_transient_window (_("Properties"), TRUE, FALSE, NULL); main_vbox = gtk_vbox_new (FALSE, 8); gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 8); gtk_container_add (GTK_CONTAINER (window), main_vbox); /* * Server Name */ hbox = gtk_hbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (main_vbox), hbox, FALSE, FALSE, 8); hbox2 = gtk_hbox_new (FALSE, 4); gtk_box_pack_start (GTK_BOX (hbox), hbox2, TRUE, FALSE, 0); if (games[s->type].pix) { pixmap = gtk_pixmap_new (games[s->type].pix->pix, games[s->type].pix->mask); gtk_box_pack_start (GTK_BOX (hbox2), pixmap, FALSE, FALSE, 0); gtk_widget_show (pixmap); } if (s->name) { label = gtk_label_new (s->name); } else { g_snprintf (buf, 256, "%s:%d", inet_ntoa (s->host->ip), s->port); label = gtk_label_new (buf); } gtk_box_pack_start (GTK_BOX (hbox2), label, FALSE, FALSE, 0); gtk_widget_show (label); gtk_widget_show (hbox2); gtk_widget_show (hbox); /* * Notebook */ notebook = gtk_notebook_new (); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), GTK_POS_TOP); gtk_box_pack_start (GTK_BOX (main_vbox), notebook, FALSE, FALSE, 0); page = server_info_page (s); label = gtk_label_new (_("Info")); gtk_widget_show (label); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label); page = server_passwords_page (s); label = gtk_label_new (_("Passwords")); gtk_widget_show (label); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label); page = server_comment_page(s); label = gtk_label_new (_("Comment")); gtk_widget_show (label); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label); gtk_notebook_set_page (GTK_NOTEBOOK (notebook), 0); gtk_widget_show (notebook); /* * Buttons at the bottom */ hbox = gtk_hbox_new (FALSE, 8); gtk_box_pack_start (GTK_BOX (main_vbox), hbox, FALSE, FALSE, 0); button = gtk_button_new_with_label (_("Cancel")); gtk_widget_set_usize (button, 80, -1); gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 0); gtk_signal_connect_object (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (gtk_widget_destroy), GTK_OBJECT (window)); GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); gtk_widget_show (button); button = gtk_button_new_with_label (_("OK")); gtk_widget_set_usize (button, 80, -1); gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (set_new_properties), (gpointer) s); gtk_signal_connect_object (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (gtk_widget_destroy), GTK_OBJECT (window)); GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); gtk_widget_grab_default (button); gtk_widget_show (button); gtk_widget_show (hbox); gtk_widget_show (main_vbox); gtk_widget_show (window); gtk_main (); unregister_window (window); }
static void grain_dist_dialog(GrainDistArgs *args, GwyContainer *data, GwyDataField *dfield, GwyDataField *mfield) { static const GwyEnum quantities_area[] = { { N_("_Projected area"), GWY_GRAIN_VALUE_PROJECTED_AREA, }, { N_("Equivalent _square side"), GWY_GRAIN_VALUE_EQUIV_SQUARE_SIDE, }, { N_("Equivalent disc _radius"), GWY_GRAIN_VALUE_EQUIV_DISC_RADIUS, }, { N_("S_urface area"), GWY_GRAIN_VALUE_SURFACE_AREA, }, }; static const GwyEnum quantities_value[] = { { N_("Ma_ximum"), GWY_GRAIN_VALUE_MAXIMUM, }, { N_("M_inimum"), GWY_GRAIN_VALUE_MINIMUM, }, { N_("_Mean"), GWY_GRAIN_VALUE_MEAN, }, { N_("Me_dian"), GWY_GRAIN_VALUE_MEDIAN, }, }; static const GwyEnum quantities_boundary[] = { { N_("Projected _boundary length"), GWY_GRAIN_VALUE_FLAT_BOUNDARY_LENGTH, }, { N_("Minimum bounding size"), GWY_GRAIN_VALUE_MINIMUM_BOUND_SIZE, }, { N_("Minimum bounding direction"), GWY_GRAIN_VALUE_MINIMUM_BOUND_ANGLE, }, { N_("Maximum bounding size"), GWY_GRAIN_VALUE_MAXIMUM_BOUND_SIZE, }, { N_("Maximum bounding direction"), GWY_GRAIN_VALUE_MAXIMUM_BOUND_ANGLE, }, }; static const GwyEnum quantities_volume[] = { { N_("_Zero basis"), GWY_GRAIN_VALUE_VOLUME_0, }, { N_("_Grain minimum basis"), GWY_GRAIN_VALUE_VOLUME_MIN, }, { N_("_Laplacian background basis"), GWY_GRAIN_VALUE_VOLUME_LAPLACE, }, }; static const GwyEnum modes[] = { { N_("_Export raw data"), MODE_RAW, }, { N_("Plot _graphs"), MODE_GRAPH, }, }; GrainDistControls controls; GtkWidget *dialog; GtkTable *table; gint row, response; GSList *l; controls.args = args; dialog = gtk_dialog_new_with_buttons(_("Grain Distributions"), NULL, 0, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL); controls.ok = gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_OK, GTK_RESPONSE_OK); gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); /* Output type */ table = GTK_TABLE(gtk_table_new(2, 2, FALSE)); gtk_table_set_row_spacings(table, 8); gtk_table_set_col_spacings(table, 12); gtk_container_set_border_width(GTK_CONTAINER(table), 4); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), GTK_WIDGET(table), FALSE, FALSE, 0); controls.qlist = append_checkbox_list(table, 0, 0, _("Value"), NULL, G_N_ELEMENTS(quantities_value), quantities_value, args->selected, args->bitmask); controls.qlist = append_checkbox_list(table, 1, 0, _("Area"), controls.qlist, G_N_ELEMENTS(quantities_area), quantities_area, args->selected, args->bitmask); controls.qlist = append_checkbox_list(table, 0, 1, _("Boundary"), controls.qlist, G_N_ELEMENTS(quantities_boundary), quantities_boundary, args->selected, args->bitmask); controls.qlist = append_checkbox_list(table, 1, 1, _("Volume"), controls.qlist, G_N_ELEMENTS(quantities_volume), quantities_volume, args->selected, args->bitmask); for (l = controls.qlist; l; l = g_slist_next(l)) g_signal_connect_swapped(l->data, "toggled", G_CALLBACK(selected_changed_cb), &controls); /* Options */ table = GTK_TABLE(gtk_table_new(4, 4, FALSE)); gtk_table_set_row_spacings(table, 2); gtk_table_set_col_spacings(table, 6); gtk_container_set_border_width(GTK_CONTAINER(table), 4); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), GTK_WIDGET(table), FALSE, FALSE, 0); row = 0; controls.mode = gwy_radio_buttons_create(modes, G_N_ELEMENTS(modes), G_CALLBACK(mode_changed_cb), &controls, args->mode); gtk_table_attach(table, gwy_label_new_header(_("Options")), 0, 2, row, row+1, GTK_EXPAND | GTK_FILL, 0, 0, 0); row++; row = gwy_radio_buttons_attach_to_table(controls.mode, table, 4, row); controls.resolution = gtk_adjustment_new(args->resolution, MIN_RESOLUTION, MAX_RESOLUTION, 1, 10, 0); gwy_table_attach_hscale(GTK_WIDGET(table), row, _("_Fix res.:"), NULL, controls.resolution, GWY_HSCALE_CHECK); controls.fixres = gwy_table_hscale_get_check(controls.resolution); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(controls.fixres), args->fixres); gtk_widget_show_all(dialog); grain_dist_dialog_update_sensitivity(&controls, args); do { response = gtk_dialog_run(GTK_DIALOG(dialog)); switch (response) { case GTK_RESPONSE_CANCEL: case GTK_RESPONSE_DELETE_EVENT: grain_dist_dialog_update_values(&controls, args); gtk_widget_destroy(dialog); case GTK_RESPONSE_NONE: return; break; case GTK_RESPONSE_OK: break; default: g_assert_not_reached(); break; } } while (response != GTK_RESPONSE_OK); grain_dist_dialog_update_values(&controls, args); gtk_widget_destroy(dialog); grain_dist_run(args, data, dfield, mfield); }
/** * gimp_transform_options_gui: * @tool_options: a #GimpToolOptions * * Build the Transform Tool Options. * * Return value: a container holding the transform tool options **/ GtkWidget * gimp_transform_options_gui (GimpToolOptions *tool_options) { GObject *config = G_OBJECT (tool_options); GtkWidget *vbox = gimp_tool_options_gui (tool_options); GtkWidget *hbox; GtkWidget *box; GtkWidget *label; GtkWidget *frame; GtkWidget *combo; GtkWidget *scale; GtkWidget *grid_box; const gchar *constrain_name = NULL; const gchar *constrain_label = NULL; const gchar *constrain_tip = NULL; hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); gtk_widget_show (hbox); label = gtk_label_new (_("Transform:")); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); gtk_widget_show (label); box = gimp_prop_enum_stock_box_new (config, "type", "gimp", 0, 0); gtk_box_pack_start (GTK_BOX (hbox), box, FALSE, FALSE, 0); gtk_widget_show (box); frame = gimp_prop_enum_radio_frame_new (config, "direction", _("Direction"), 0, 0); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); gtk_widget_show (frame); /* the interpolation menu */ combo = gimp_prop_enum_combo_box_new (config, "interpolation", 0, 0); gimp_int_combo_box_set_label (GIMP_INT_COMBO_BOX (combo), _("Interpolation")); g_object_set (combo, "ellipsize", PANGO_ELLIPSIZE_END, NULL); gtk_box_pack_start (GTK_BOX (vbox), combo, FALSE, FALSE, 0); gtk_widget_show (combo); /* the clipping menu */ combo = gimp_prop_enum_combo_box_new (config, "clip", 0, 0); gimp_int_combo_box_set_label (GIMP_INT_COMBO_BOX (combo), _("Clipping")); g_object_set (combo, "ellipsize", PANGO_ELLIPSIZE_END, NULL); gtk_box_pack_start (GTK_BOX (vbox), combo, FALSE, FALSE, 0); gtk_widget_show (combo); /* the preview frame */ scale = gimp_prop_spin_scale_new (config, "preview-opacity", _("Image opacity"), 0.01, 0.1, 0); gimp_prop_widget_set_factor (scale, 100.0, 1); frame = gimp_prop_expanding_frame_new (config, "show-preview", _("Show image preview"), scale, NULL); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); gtk_widget_show (frame); /* the guides frame */ frame = gimp_frame_new (NULL); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); gtk_widget_show (frame); /* the guides type menu */ combo = gimp_prop_enum_combo_box_new (config, "grid-type", 0, 0); gimp_int_combo_box_set_label (GIMP_INT_COMBO_BOX (combo), _("Guides")); g_object_set (combo, "ellipsize", PANGO_ELLIPSIZE_END, NULL); gtk_frame_set_label_widget (GTK_FRAME (frame), combo); gtk_widget_show (combo); /* the grid density scale */ scale = gimp_prop_spin_scale_new (config, "grid-size", NULL, 1.8, 8.0, 0); gtk_container_add (GTK_CONTAINER (frame), scale); g_object_bind_property_full (config, "grid-type", scale, "visible", G_BINDING_SYNC_CREATE, gimp_transform_options_sync_grid, NULL, NULL, NULL); if (tool_options->tool_info->tool_type == GIMP_TYPE_ROTATE_TOOL) { constrain_name = "constrain-rotate"; constrain_label = _("15 degrees (%s)"); constrain_tip = _("Limit rotation steps to 15 degrees"); } else if (tool_options->tool_info->tool_type == GIMP_TYPE_SCALE_TOOL) { constrain_name = "constrain-scale"; constrain_label = _("Keep aspect (%s)"); constrain_tip = _("Keep the original aspect ratio"); } //TODO: check that the selection tools use the gimp_get_*_mask() functions for constrain/etc or change to what they use else if (tool_options->tool_info->tool_type == GIMP_TYPE_UNIFIED_TRANSFORM_TOOL) { GdkModifierType shift = gimp_get_extend_selection_mask (); GdkModifierType ctrl = gimp_get_constrain_behavior_mask (); struct { GdkModifierType mod; gchar *name; gchar *desc; gchar *tip; } opt_list[] = { { shift, NULL, "Constrain (%s)" }, { shift, "constrain-move", "Move", "Constrain movement to 45 degree angles from center (%s)" }, { shift, "constrain-scale", "Scale", "Maintain aspect ratio when scaling (%s)" }, { shift, "constrain-rotate", "Rotate", "Constrain rotation to 15 degree increments (%s)" }, { shift, "constrain-shear", "Shear", "Shear along edge direction only (%s)" }, { shift, "constrain-perspective", "Perspective", "Constrain perspective handles to move along edges and diagonal (%s)" }, { ctrl, NULL, "From pivot (%s)" }, { ctrl, "frompivot-scale", "Scale", "Scale from pivot point (%s)" }, { ctrl, "frompivot-shear", "Shear", "Shear opposite edge by same amount (%s)" }, { ctrl, "frompivot-perspective", "Perspective", "Maintain position of pivot while changing perspective (%s)" }, { 0, NULL, "Pivot" }, { shift, "cornersnap", "Snap (%s)", "Snap pivot to corners and center (%s)" }, { 0, "fixedpivot", "Lock", "Lock pivot position to canvas" }, }; GtkWidget *button; gchar *label; gint i; frame = NULL; for (i = 0; i < G_N_ELEMENTS (opt_list); i++) { if (!opt_list[i].name && !opt_list[i].desc) { frame = NULL; continue; } label = g_strdup_printf (opt_list[i].desc, gimp_get_mod_string (opt_list[i].mod)); if (opt_list[i].name) { button = gimp_prop_check_button_new (config, opt_list[i].name, label); gtk_box_pack_start (GTK_BOX (frame ? grid_box : vbox), button, FALSE, FALSE, 0); gtk_widget_show (button); g_free (label); label = g_strdup_printf (opt_list[i].tip, gimp_get_mod_string (opt_list[i].mod)); gimp_help_set_help_data (button, label, NULL); } else { frame = gimp_frame_new (label); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); gtk_widget_show (frame); grid_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2); gtk_container_add (GTK_CONTAINER (frame), grid_box); gtk_widget_show (grid_box); } g_free (label); } } if (constrain_label) { GtkWidget *button; gchar *label; GdkModifierType constrain_mask; constrain_mask = gimp_get_extend_selection_mask (); label = g_strdup_printf (constrain_label, gimp_get_mod_string (constrain_mask)); button = gimp_prop_check_button_new (config, constrain_name, label); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); gtk_widget_show (button); gimp_help_set_help_data (button, constrain_tip, NULL); g_free (label); } return vbox; }
static void create_children (GNCDateEdit *gde) { GtkWidget *frame; GtkWidget *hbox; GtkWidget *arrow; GtkTreeStore *store; GtkCellRenderer *cell; /* Create the text entry area. */ gde->date_entry = gtk_entry_new (); gtk_entry_set_width_chars (GTK_ENTRY (gde->date_entry), 11); gtk_box_pack_start (GTK_BOX (gde), gde->date_entry, TRUE, TRUE, 0); gtk_widget_show (GTK_WIDGET(gde->date_entry)); g_signal_connect (G_OBJECT (gde->date_entry), "key-press-event", G_CALLBACK (key_press_entry), gde); g_signal_connect (G_OBJECT (gde->date_entry), "focus-out-event", G_CALLBACK (date_focus_out_event), gde); /* Create the popup button. */ gde->date_button = gtk_toggle_button_new (); g_signal_connect (gde->date_button, "button-press-event", G_CALLBACK(gnc_date_edit_button_pressed), gde); g_signal_connect (G_OBJECT (gde->date_button), "toggled", G_CALLBACK (gnc_date_edit_button_toggled), gde); gtk_box_pack_start (GTK_BOX (gde), gde->date_button, FALSE, FALSE, 0); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3); gtk_box_set_homogeneous (GTK_BOX (hbox), FALSE); gtk_container_add (GTK_CONTAINER (gde->date_button), hbox); gtk_widget_show (GTK_WIDGET(hbox)); /* Calendar label, only shown if the date editor has a time field */ gde->cal_label = gtk_label_new (_("Calendar")); gnc_label_set_alignment (gde->cal_label, 0.0, 0.5); gtk_box_pack_start (GTK_BOX (hbox), gde->cal_label, TRUE, TRUE, 0); if (gde->flags & GNC_DATE_EDIT_SHOW_TIME) gtk_widget_show (GTK_WIDGET(gde->cal_label)); /* Graphic for the popup button. */ arrow = gtk_image_new_from_icon_name ("go-down", GTK_ICON_SIZE_BUTTON); g_signal_connect (G_OBJECT (arrow), "draw", G_CALLBACK (gnc_draw_arrow_cb), GINT_TO_POINTER(1)); gtk_box_pack_start (GTK_BOX (hbox), arrow, TRUE, FALSE, 0); gtk_widget_show (GTK_WIDGET(arrow)); gtk_widget_show (GTK_WIDGET(gde->date_button)); /* Time entry controls. */ gde->time_entry = gtk_entry_new (); gtk_entry_set_max_length (GTK_ENTRY(gde->time_entry), 12); gtk_widget_set_size_request (GTK_WIDGET(gde->time_entry), 88, -1); gtk_box_pack_start (GTK_BOX (gde), gde->time_entry, TRUE, TRUE, 0); store = gtk_tree_store_new(1, G_TYPE_STRING); gde->time_combo = GTK_WIDGET(gtk_combo_box_new_with_model(GTK_TREE_MODEL(store))); g_object_unref(store); /* Create cell renderer. */ cell = gtk_cell_renderer_text_new(); /* Pack it to the combo box. */ gtk_cell_layout_pack_start( GTK_CELL_LAYOUT( gde->time_combo ), cell, TRUE ); /* Connect renderer to data source */ gtk_cell_layout_set_attributes( GTK_CELL_LAYOUT( gde->time_combo ), cell, "text", 0, NULL ); g_signal_connect (G_OBJECT (gde->time_combo), "changed", G_CALLBACK (set_time), gde); gtk_box_pack_start (GTK_BOX (gde), gde->time_combo, FALSE, FALSE, 0); /* We do not create the popup menu with the hour range until we are * realized, so that it uses the values that the user might supply in a * future call to gnc_date_edit_set_popup_range */ g_signal_connect (G_OBJECT (gde), "realize", G_CALLBACK (fill_time_combo), gde); if (gde->flags & GNC_DATE_EDIT_SHOW_TIME) { gtk_widget_show (GTK_WIDGET(gde->time_entry)); gtk_widget_show (GTK_WIDGET(gde->time_combo)); } gde->cal_popup = gtk_window_new (GTK_WINDOW_POPUP); gtk_widget_set_name (gde->cal_popup, "gnc-date-edit-popup-window"); gtk_window_set_type_hint (GTK_WINDOW (gde->cal_popup), GDK_WINDOW_TYPE_HINT_COMBO); gtk_widget_set_events (GTK_WIDGET(gde->cal_popup), gtk_widget_get_events (GTK_WIDGET(gde->cal_popup)) | GDK_KEY_PRESS_MASK); g_signal_connect (gde->cal_popup, "delete-event", G_CALLBACK(delete_popup), gde); g_signal_connect (gde->cal_popup, "key-press-event", G_CALLBACK(key_press_popup), gde); g_signal_connect (gde->cal_popup, "button-press-event", G_CALLBACK(gnc_date_edit_button_pressed), gde); g_signal_connect (gde->cal_popup, "button-release-event", G_CALLBACK(gnc_date_edit_button_released), gde); gtk_window_set_resizable (GTK_WINDOW (gde->cal_popup), FALSE); gtk_window_set_screen (GTK_WINDOW (gde->cal_popup), gtk_widget_get_screen (GTK_WIDGET (gde))); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); gtk_container_add (GTK_CONTAINER (gde->cal_popup), frame); gtk_widget_show (GTK_WIDGET(frame)); gde->calendar = gtk_calendar_new (); gtk_calendar_set_display_options (GTK_CALENDAR (gde->calendar), (GTK_CALENDAR_SHOW_DAY_NAMES | GTK_CALENDAR_SHOW_HEADING)); g_signal_connect (gde->calendar, "button-release-event", G_CALLBACK(gnc_date_edit_button_released), gde); g_signal_connect (G_OBJECT (gde->calendar), "day-selected", G_CALLBACK (day_selected), gde); g_signal_connect (G_OBJECT (gde->calendar), "day-selected-double-click", G_CALLBACK (day_selected_double_click), gde); gtk_container_add (GTK_CONTAINER (frame), gde->calendar); gtk_widget_show (GTK_WIDGET(gde->calendar)); }
static void presence_clicked_cb(GtkWidget *w, gpointer nul) { GtkWidget *vbox; GtkWidget *hbox; GtkWidget *to_entry; GtkWidget *status_entry; GtkWidget *priority_entry; GtkWidget *label; GtkWidget *show_combo; GtkWidget *type_combo; GtkSizeGroup *sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); GtkTextIter iter; GtkTextBuffer *buffer; const char *to, *type, *status, *show, *priority; int result; char *stanza; GtkWidget *dialog = gtk_dialog_new_with_buttons("<presence/>", GTK_WINDOW(console->window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL); gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE); gtk_dialog_set_default_response (GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); gtk_container_set_border_width(GTK_CONTAINER(dialog), 12); #if GTK_CHECK_VERSION(2,14,0) vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); #else vbox = GTK_DIALOG(dialog)->vbox; #endif hbox = gtk_hbox_new(FALSE, 3); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); label = gtk_label_new("To:"); gtk_size_group_add_widget(sg, label); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); to_entry = gtk_entry_new(); gtk_entry_set_activates_default (GTK_ENTRY (to_entry), TRUE); gtk_box_pack_start(GTK_BOX(hbox), to_entry, FALSE, FALSE, 0); hbox = gtk_hbox_new(FALSE, 3); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); label = gtk_label_new("Type:"); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_size_group_add_widget(sg, label); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); type_combo = gtk_combo_box_new_text(); gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "default"); gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "unavailable"); gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "subscribe"); gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "unsubscribe"); gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "subscribed"); gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "unsubscribed"); gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "probe"); gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "error"); gtk_combo_box_set_active(GTK_COMBO_BOX(type_combo), 0); gtk_box_pack_start(GTK_BOX(hbox), type_combo, FALSE, FALSE, 0); hbox = gtk_hbox_new(FALSE, 3); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); label = gtk_label_new("Show:"); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_size_group_add_widget(sg, label); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); show_combo = gtk_combo_box_new_text(); gtk_combo_box_append_text(GTK_COMBO_BOX(show_combo), "default"); gtk_combo_box_append_text(GTK_COMBO_BOX(show_combo), "away"); gtk_combo_box_append_text(GTK_COMBO_BOX(show_combo), "dnd"); gtk_combo_box_append_text(GTK_COMBO_BOX(show_combo), "xa"); gtk_combo_box_append_text(GTK_COMBO_BOX(show_combo), "chat"); gtk_combo_box_set_active(GTK_COMBO_BOX(show_combo), 0); gtk_box_pack_start(GTK_BOX(hbox), show_combo, FALSE, FALSE, 0); hbox = gtk_hbox_new(FALSE, 3); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); label = gtk_label_new("Status:"); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_size_group_add_widget(sg, label); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); status_entry = gtk_entry_new(); gtk_entry_set_activates_default (GTK_ENTRY (status_entry), TRUE); gtk_box_pack_start(GTK_BOX(hbox), status_entry, FALSE, FALSE, 0); hbox = gtk_hbox_new(FALSE, 3); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); label = gtk_label_new("Priority:"); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_size_group_add_widget(sg, label); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); priority_entry = gtk_spin_button_new_with_range(-128, 127, 1); gtk_spin_button_set_value(GTK_SPIN_BUTTON(priority_entry), 0); gtk_box_pack_start(GTK_BOX(hbox), priority_entry, FALSE, FALSE, 0); gtk_widget_show_all(vbox); result = gtk_dialog_run(GTK_DIALOG(dialog)); if (result != GTK_RESPONSE_ACCEPT) { gtk_widget_destroy(dialog); return; } to = gtk_entry_get_text(GTK_ENTRY(to_entry)); type = gtk_combo_box_get_active_text(GTK_COMBO_BOX(type_combo)); if (purple_strequal(type, "default")) type = ""; show = gtk_combo_box_get_active_text(GTK_COMBO_BOX(show_combo)); if (purple_strequal(show, "default")) show = ""; status = gtk_entry_get_text(GTK_ENTRY(status_entry)); priority = gtk_entry_get_text(GTK_ENTRY(priority_entry)); if (purple_strequal(priority, "0")) priority = ""; stanza = g_strdup_printf("<presence %s%s%s id='console%x' %s%s%s>" "%s%s%s%s%s%s%s%s%s" "</presence>", *to ? "to='" : "", *to ? to : "", *to ? "'" : "", g_random_int(), *type ? "type='" : "", *type ? type : "", *type ? "'" : "", *show ? "<show>" : "", *show ? show : "", *show ? "</show>" : "", *status ? "<status>" : "", *status ? status : "", *status ? "</status>" : "", *priority ? "<priority>" : "", *priority ? priority : "", *priority ? "</priority>" : ""); buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(console->entry)); gtk_text_buffer_set_text(buffer, stanza, -1); gtk_text_buffer_get_iter_at_offset(buffer, &iter, strstr(stanza, "</presence>") - stanza); gtk_text_buffer_place_cursor(buffer, &iter); g_free(stanza); gtk_widget_destroy(dialog); g_object_unref(sg); }
int main (int argc, char **argv) { GtkWidget *window, *vbox, *hscale, *button, *hbbox; GstElement *filesrc, *mad, *audioconvert, *speed, *audiosink, *pipeline; gst_init (&argc, &argv); gtk_init (&argc, &argv); if (argc != 2) { g_print ("usage: %s <your.mp3>\n", argv[0]); exit (-1); } window = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_signal_connect (window, "delete-event", G_CALLBACK (gtk_main_quit), NULL); gtk_window_set_default_size (GTK_WINDOW (window), 400, 80); vbox = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 6); hscale = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (1.0, 0.1, 4.0, 0.1, 0.0, 0.0))); gtk_scale_set_digits (GTK_SCALE (hscale), 2); gtk_range_set_update_policy (GTK_RANGE (hscale), GTK_UPDATE_CONTINUOUS); hbbox = gtk_hbutton_box_new (); button = gtk_button_new_from_stock (GTK_STOCK_QUIT); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_container_add (GTK_CONTAINER (hbbox), button); poslabel = gtk_label_new (NULL); gtk_box_pack_start (GTK_BOX (vbox), poslabel, FALSE, FALSE, 2); gtk_box_pack_start (GTK_BOX (vbox), hscale, TRUE, TRUE, 2); gtk_box_pack_start (GTK_BOX (vbox), hbbox, FALSE, FALSE, 6); g_signal_connect (button, "clicked", G_CALLBACK (gtk_main_quit), NULL); filesrc = gst_element_factory_make ("filesrc", "filesrc"); mad = gst_element_factory_make ("mad", "mad"); audioconvert = gst_element_factory_make ("audioconvert", "audioconvert0"); speed = gst_element_factory_make ("speed", "speed"); audiosink = gst_element_factory_make (DEFAULT_AUDIOSINK, "audiosink"); g_signal_connect (gtk_range_get_adjustment (GTK_RANGE (hscale)), "value_changed", G_CALLBACK (set_speed), speed); pipeline = gst_pipeline_new ("app"); gst_bin_add_many (GST_BIN (pipeline), filesrc, mad, audioconvert, speed, audiosink, NULL); gst_element_link_many (filesrc, mad, audioconvert, speed, audiosink, NULL); g_object_set (G_OBJECT (filesrc), "location", argv[1], NULL); gst_element_set_state (pipeline, GST_STATE_PLAYING); gtk_widget_show_all (window); g_idle_add ((GSourceFunc) gst_bin_iterate, pipeline); g_timeout_add (200, (GSourceFunc) time_tick_cb, audiosink); gtk_main (); gst_element_set_state (pipeline, GST_STATE_NULL); gst_object_unref (GST_OBJECT (pipeline)); return 0; }
static void create_console(PurplePluginAction *action) { GtkWidget *vbox = gtk_vbox_new(FALSE, 6); GtkWidget *label; GtkTextBuffer *buffer; GtkWidget *toolbar; GList *connections; GtkToolItem *button; if (console) { gtk_window_present(GTK_WINDOW(console->window)); return; } console = g_new0(XmppConsole, 1); console->window = pidgin_create_window(_("XMPP Console"), PIDGIN_HIG_BORDER, NULL, TRUE); g_signal_connect(G_OBJECT(console->window), "destroy", G_CALLBACK(console_destroy), NULL); gtk_window_set_default_size(GTK_WINDOW(console->window), 580, 400); gtk_container_add(GTK_CONTAINER(console->window), vbox); console->hbox = gtk_hbox_new(FALSE, 3); gtk_box_pack_start(GTK_BOX(vbox), console->hbox, FALSE, FALSE, 0); label = gtk_label_new(_("Account: ")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_box_pack_start(GTK_BOX(console->hbox), label, FALSE, FALSE, 0); console->dropdown = gtk_combo_box_new_text(); for (connections = purple_connections_get_all(); connections; connections = connections->next) { PurpleConnection *gc = connections->data; if (purple_strequal(purple_account_get_protocol_id(purple_connection_get_account(gc)), "prpl-jabber")) { console->count++; console->accounts = g_list_append(console->accounts, gc); gtk_combo_box_append_text(GTK_COMBO_BOX(console->dropdown), purple_account_get_username(purple_connection_get_account(gc))); if (!console->gc) console->gc = gc; } } gtk_combo_box_set_active(GTK_COMBO_BOX(console->dropdown),0); gtk_box_pack_start(GTK_BOX(console->hbox), console->dropdown, TRUE, TRUE, 0); g_signal_connect(G_OBJECT(console->dropdown), "changed", G_CALLBACK(dropdown_changed_cb), NULL); console->imhtml = gtk_imhtml_new(NULL, NULL); if (console->count == 0) gtk_imhtml_append_text(GTK_IMHTML(console->imhtml), _("<font color='#777777'>Not connected to XMPP</font>"), 0); gtk_box_pack_start(GTK_BOX(vbox), pidgin_make_scrollable(console->imhtml, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC, GTK_SHADOW_ETCHED_IN, -1, -1), TRUE, TRUE, 0); toolbar = gtk_toolbar_new(); button = gtk_tool_button_new(NULL, "<iq/>"); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(iq_clicked_cb), NULL); gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(button)); button = gtk_tool_button_new(NULL, "<presence/>"); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(presence_clicked_cb), NULL); gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(button)); button = gtk_tool_button_new(NULL, "<message/>"); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(message_clicked_cb), NULL); gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(button)); gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0); console->entry = gtk_imhtml_new(NULL, NULL); gtk_imhtml_set_whole_buffer_formatting_only(GTK_IMHTML(console->entry), TRUE); g_signal_connect(G_OBJECT(console->entry),"message_send", G_CALLBACK(message_send_cb), console); console->sw = pidgin_make_scrollable(console->entry, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC, GTK_SHADOW_ETCHED_IN, -1, -1); gtk_box_pack_start(GTK_BOX(vbox), console->sw, FALSE, FALSE, 0); gtk_imhtml_set_editable(GTK_IMHTML(console->entry), TRUE); buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(console->entry)); g_signal_connect(G_OBJECT(buffer), "changed", G_CALLBACK(entry_changed_cb), NULL); entry_changed_cb(buffer, NULL); gtk_widget_show_all(console->window); if (console->count < 2) gtk_widget_hide(console->hbox); }
void display_launcher_pop_up (gpointer pt) { // 0. déclaration des variables locales t_game_board* game = (t_game_board*)pt; GtkWidget* dialog = NULL; GtkWidget* content_area = NULL; GtkWidget* misc = NULL; int rules = SOLO_GAME_EASY; int size_of_game = 10; // 1. première boite de dialogue de séléction de la difficulté // 1.1 création de la boite dialog = gtk_dialog_new(); // 1.2 paramétrage de la boite de dialogue gtk_container_set_border_width (GTK_CONTAINER (dialog), 8); gtk_window_set_title(GTK_WINDOW(dialog), "Nouvelle partie"); gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER); // 1.3 ajout du misc GUI content_area = gtk_dialog_get_content_area (GTK_DIALOG(dialog)); gtk_box_set_spacing(GTK_BOX(content_area), 10); misc = gtk_label_new("sélectionnez la difficulté"); gtk_misc_set_alignment(GTK_MISC(misc), 0, 0.5); gtk_box_pack_end (GTK_BOX(content_area), misc, TRUE, TRUE, 0); // 1.4 ajout des boutons de choix gtk_dialog_add_button(GTK_DIALOG(dialog), "facile", SOLO_GAME_EASY); gtk_dialog_add_button(GTK_DIALOG(dialog), "intermédiaire", SOLO_GAME_MEDIUM); gtk_dialog_add_button(GTK_DIALOG(dialog), "difficile", SOLO_GAME_HARD); gtk_dialog_set_default_response(GTK_DIALOG(dialog), SOLO_GAME_MEDIUM); // 1.5 activation du widget gtk_widget_show_all(dialog); rules = gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); // 2. seconde boite de dialogue (séléction de la taille) // 2.1 création de la boite dialog = gtk_dialog_new(); // 2.2 paramétrage de la boite de dialogue gtk_container_set_border_width (GTK_CONTAINER (dialog), 8); gtk_window_set_title(GTK_WINDOW(dialog), "Nouvelle partie"); gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER); // 2.3 ajout du label GUI + le spinbutton de selection content_area = gtk_dialog_get_content_area (GTK_DIALOG(dialog)); misc = gtk_label_new("sélectionnez la taille du plateau"); gtk_misc_set_alignment(GTK_MISC(misc), 0, 0.5); gtk_box_pack_start (GTK_BOX(content_area), misc, TRUE, TRUE, 0); gtk_box_set_spacing(GTK_BOX(content_area), 10); misc = gtk_spin_button_new_with_range(5.0, 20.0, 1.0); gtk_spin_button_set_value(GTK_SPIN_BUTTON(misc), 9.0); gtk_box_pack_start (GTK_BOX(content_area), misc, TRUE, TRUE, 0); g_object_ref(misc); // 2.4 ajout du bouton de validation gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_OK, 1); gtk_dialog_set_default_response(GTK_DIALOG(dialog), 1); // 2.5 activation du widget gtk_widget_show_all(dialog); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); // 3. récupération des infos sur la taille du plateau et suppressions du misc plus nécessaire size_of_game = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(misc)); g_object_unref(misc); // 4. lancement du nouveau jeu new_game(game, rules, size_of_game, size_of_game); }
void panel_start_gui(panel *p) { ENTER; //gtk_rc_parse_string(transparent_rc); p->topgwin = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width(GTK_CONTAINER(p->topgwin), 0); gtk_window_set_resizable(GTK_WINDOW(p->topgwin), FALSE); gtk_window_set_wmclass(GTK_WINDOW(p->topgwin), "panel", "trayer"); gtk_window_set_title(GTK_WINDOW(p->topgwin), "panel"); g_signal_connect ( G_OBJECT(p->topgwin) , "delete-event" , G_CALLBACK(panel_delete_event) , p); g_signal_connect ( G_OBJECT(p->topgwin) , "destroy-event", G_CALLBACK(panel_destroy_event), p); g_signal_connect ( G_OBJECT (p->topgwin), "size-request" , G_CALLBACK(panel_size_req) , p); g_signal_connect ( G_OBJECT (p->topgwin), "size-allocate", G_CALLBACK(panel_size_alloc), p); if (p->transparent) { g_signal_connect (G_OBJECT (p->topgwin), "configure-event", G_CALLBACK(panel_configure_event), p); g_signal_connect (G_OBJECT (p->topgwin), "style-set", G_CALLBACK( panel_style_set), p); } gtk_widget_realize(p->topgwin); gdk_window_set_decorations(p->topgwin->window, 0); gtk_widget_set_app_paintable(p->topgwin, TRUE); p->lbox = p->my_box_new(FALSE, 0); gtk_container_set_border_width(GTK_CONTAINER(p->lbox), 0); gtk_container_add(GTK_CONTAINER(p->topgwin), p->lbox); gtk_widget_show(p->lbox); if (p->allign == ALLIGN_RIGHT) { GtkWidget * expander = p->my_box_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(p->lbox), expander, TRUE, TRUE, 0); gtk_widget_show(expander); } p->box = p->my_box_new(FALSE, 1); gtk_container_set_border_width(GTK_CONTAINER(p->box), 1); gtk_box_pack_start(GTK_BOX(p->lbox), p->box, FALSE, TRUE, padding); gtk_widget_show(p->box); // get properties on topgwin p->topGdkWindow = gtk_widget_get_window(p->topgwin); p->topxwin = GDK_WINDOW_XWINDOW(GTK_WIDGET(p->topgwin)->window); bg_init(gdk_helper_display()); /* make our window unfocusable */ gdk_window_set_accept_focus(p->topGdkWindow,False); if (p->setdocktype) { gdk_window_set_type_hint(p->topGdkWindow,GDK_WINDOW_TYPE_HINT_DOCK); } Xclimsg(p->topxwin, a_NET_WM_DESKTOP, 0xFFFFFFFF, 0, 0, 0, 0); /************************/ /* Window Mapping Point */ gtk_widget_show_all(p->topgwin); Xclimsg(p->topxwin, a_NET_WM_DESKTOP, 0xFFFFFFFF, 0, 0, 0, 0); gdk_window_stick ( p->topGdkWindow); gdk_window_set_skip_pager_hint ( p->topGdkWindow, True ); gdk_window_set_skip_taskbar_hint ( p->topGdkWindow, True ); XSelectInput (gdk_helper_display(), GDK_ROOT_WINDOW(), PropertyChangeMask); XSelectInput (gdk_helper_display(), p->topxwin, PropertyChangeMask | FocusChangeMask | StructureNotifyMask); gdk_window_add_filter(gdk_get_default_root_window (), (GdkFilterFunc)panel_wm_events, p); calculate_position(p, distance,distancefrom); gdk_window_move_resize(p->topgwin->window, p->ax, p->ay, p->aw, p->ah); if (p->setstrut) panel_set_wm_strut(p); RET(); }
void l_uosamortbu(int innom,int podr,const char *hzt,const char *hna,GtkWidget *wpredok) { class l_uosamortbu_data data; char bros[512]; char strsql[512]; SQL_str row; class SQLCURSOR cur; data.innom=innom; data.podr=podr; data.hzt.new_plus(hzt); data.hna.new_plus(hna); data.naim.plus(""); iceb_u_poltekdat(&data.dr,&data.mr,&data.gr); data.dr=1; sprintf(strsql,"bsizbu%d.lst",getpid()); data.imafprot.new_plus(strsql); unlink(data.imafprot.ravno()); sprintf(strsql,"bsizbua%d.lst",getpid()); data.imafprot_am.new_plus(strsql); unlink(data.imafprot_am.ravno()); /*узнаём наименование*/ sprintf(strsql,"select naim from Uosin where innom=%d",innom); if(iceb_sql_readkey(strsql,&row,&cur,wpredok) == 1) data.naim.new_plus(row[0]); data.window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_position( GTK_WINDOW(data.window),ICEB_POS_CENTER); gtk_window_set_modal(GTK_WINDOW(data.window),TRUE); sprintf(bros,"%s %s",name_system,gettext("Амортизационные отчисления налогового учёта")); gtk_window_set_title (GTK_WINDOW (data.window),bros); gtk_container_set_border_width (GTK_CONTAINER (data.window), 5); gtk_signal_connect(GTK_OBJECT(data.window),"delete_event",GTK_SIGNAL_FUNC(gtk_widget_destroy),NULL); gtk_signal_connect(GTK_OBJECT(data.window),"destroy",GTK_SIGNAL_FUNC(gtk_main_quit),NULL); if(wpredok != NULL) { gdk_window_set_cursor(wpredok->window,gdk_cursor_new(ICEB_CURSOR_GDITE)); //Удерживать окно над породившем его окном всегда gtk_window_set_transient_for(GTK_WINDOW(data.window),GTK_WINDOW(wpredok)); //Закрыть окно если окно предок удалено gtk_window_set_destroy_with_parent(GTK_WINDOW(data.window),TRUE); } gtk_signal_connect_after(GTK_OBJECT(data.window),"key_press_event",GTK_SIGNAL_FUNC(l_uosamortbu_key_press),&data); gtk_signal_connect_after(GTK_OBJECT(data.window),"key_release_event",GTK_SIGNAL_FUNC(iceb_key_release),&data.kl_shift); GtkWidget *hbox = gtk_hbox_new (FALSE, 1); gtk_container_add (GTK_CONTAINER (data.window), hbox); GtkWidget *vbox1 = gtk_vbox_new (FALSE, 1); GtkWidget *vbox2 = gtk_vbox_new (FALSE, 1); gtk_box_pack_start (GTK_BOX (hbox), vbox1, FALSE, FALSE, 1); gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 1); gtk_widget_show(hbox); class iceb_u_str zagol; zagol.plus(gettext("Амортизационные отчисления бух.учёта")); zagol.ps_plus(gettext("Инвентарный номер")); zagol.plus(":"); zagol.plus(data.innom); zagol.plus("/"); zagol.plus(data.naim.ravno()); data.label_kolstr=gtk_label_new(zagol.ravno_toutf()); gtk_box_pack_start (GTK_BOX (vbox2),data.label_kolstr,FALSE, FALSE, 1); gtk_widget_show(vbox1); gtk_widget_show(vbox2); data.sw = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_usize(GTK_WIDGET(data.sw),-1,200); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (data.sw),GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (data.sw),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); gtk_box_pack_start(GTK_BOX (vbox2), data.sw, TRUE, TRUE, 1); data.label_bsiz=gtk_label_new(""); gtk_box_pack_start(GTK_BOX (vbox2), data.label_bsiz, FALSE, FALSE, 1); PangoFontDescription *font_pango=pango_font_description_from_string(shrift_ravnohir.ravno()); gtk_widget_modify_font(GTK_WIDGET(data.label_bsiz),font_pango); pango_font_description_free(font_pango); gtk_widget_show(data.label_bsiz); //Кнопки GtkTooltips *tooltips[KOL_F_KL]; sprintf(bros,"F2 %s",gettext("Ввести")); data.knopka[FK2]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK2],TRUE,TRUE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka[FK2]), "clicked",GTK_SIGNAL_FUNC(l_uosamortbu_knopka),&data); tooltips[FK2]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK2],data.knopka[FK2],gettext("Ввод новой записи"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK2]),(gpointer)FK2); gtk_widget_show(data.knopka[FK2]); sprintf(bros,"%sF2 %s",RFK,gettext("Корректировать")); data.knopka[SFK2]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[SFK2],TRUE,TRUE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka[SFK2]), "clicked",GTK_SIGNAL_FUNC(l_uosamortbu_knopka),&data); tooltips[SFK2]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[SFK2],data.knopka[SFK2],gettext("Корректировка выбранной записи"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[SFK2]),(gpointer)SFK2); gtk_widget_show(data.knopka[SFK2]); sprintf(bros,"F3 %s",gettext("Удалить")); data.knopka[FK3]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK3],TRUE,TRUE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka[FK3]), "clicked",GTK_SIGNAL_FUNC(l_uosamortbu_knopka),&data); tooltips[FK3]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK3],data.knopka[FK3],gettext("Удалить выбранную запись"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK3]),(gpointer)FK3); gtk_widget_show(data.knopka[FK3]); sprintf(bros,"F4 %s",gettext("Расчёт")); data.knopka[FK4]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK4],TRUE,TRUE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka[FK4]), "clicked",GTK_SIGNAL_FUNC(l_uosamortbu_knopka),&data); tooltips[FK4]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK4],data.knopka[FK4],gettext("Расчёт амортизации"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK4]),(gpointer)FK4); gtk_widget_show(data.knopka[FK4]); sprintf(bros,"F5 %s",gettext("Печать")); data.knopka[FK5]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK5],TRUE,TRUE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka[FK5]), "clicked",GTK_SIGNAL_FUNC(l_uosamortbu_knopka),&data); tooltips[FK5]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK5],data.knopka[FK5],gettext("Распечатка записей"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK5]),(gpointer)FK5); gtk_widget_show(data.knopka[FK5]); sprintf(bros,"F6 %s",gettext("Документы")); data.knopka[FK6]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK6],TRUE,TRUE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka[FK6]), "clicked",GTK_SIGNAL_FUNC(l_uosamortbu_knopka),&data); tooltips[FK6]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK6],data.knopka[FK6],gettext("Получить список документов"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK6]),(gpointer)FK6); gtk_widget_show(data.knopka[FK6]); sprintf(bros,"F7 %s",gettext("Протокол")); data.knopka[FK7]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK7],TRUE,TRUE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka[FK7]), "clicked",GTK_SIGNAL_FUNC(l_uosamortbu_knopka),&data); tooltips[FK7]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK7],data.knopka[FK7],gettext("Просмотр протокола определения балансовой стоимости"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK7]),(gpointer)FK7); gtk_widget_show(data.knopka[FK7]); sprintf(bros,"F8 %s",gettext("Смена даты")); data.knopka[FK8]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1), data.knopka[FK8],TRUE,TRUE, 0); gtk_signal_connect(GTK_OBJECT(data.knopka[FK8]), "clicked",GTK_SIGNAL_FUNC(l_uosamortbu_knopka),&data); tooltips[FK8]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK8],data.knopka[FK8],gettext("Сменить дату на которую рассчитать остаточную стоимость"),NULL); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK8]),(gpointer)FK8); gtk_widget_show(data.knopka[FK8]); sprintf(bros,"F10 %s",gettext("Выход")); data.knopka[FK10]=gtk_button_new_with_label(bros); gtk_box_pack_start(GTK_BOX(vbox1),data.knopka[FK10],TRUE,TRUE, 0); tooltips[FK10]=gtk_tooltips_new(); gtk_tooltips_set_tip(tooltips[FK10],data.knopka[FK10],gettext("Завершение работы в этом окне"),NULL); gtk_signal_connect(GTK_OBJECT(data.knopka[FK10]), "clicked",GTK_SIGNAL_FUNC(l_uosamortbu_knopka),&data); gtk_object_set_user_data(GTK_OBJECT(data.knopka[FK10]),(gpointer)FK10); gtk_widget_show(data.knopka[FK10]); gtk_widget_realize(data.window); gdk_window_set_cursor(data.window->window,gdk_cursor_new(ICEB_CURSOR)); gtk_widget_grab_focus(data.knopka[FK10]); l_uosamortbu_create_list(&data); gtk_widget_show(data.window); gtk_window_maximize(GTK_WINDOW(data.window)); gtk_main(); unlink(data.imafprot.ravno()); unlink(data.imafprot_am.ravno()); if(wpredok != NULL) gdk_window_set_cursor(wpredok->window,gdk_cursor_new(ICEB_CURSOR)); }
/** \brief Show details about a satellite pass. * \param parent The parent widget. * \param satname The name of the satellite. * \param qth Pointer to the QTH data. * \param pass The pass info. * \param toplevel The toplevel window or NULL. * * This function creates a dialog window containing a notebook with three pages: * 1. A list showing the details of a pass * 2. Polar plot of the pass * 3. Az/El plot of the pass * * Reference to the parent widget is needed to acquire the correct top-level * window, otherwise simply using the main window would bring that to front * covering any possible module windows. This would be unfortunate in the case * of fullscreen modules. * */ void show_pass (const gchar *satname, qth_t *qth, pass_t *pass, GtkWidget *toplevel) { GtkWidget *dialog; /* the dialogue window */ GtkWidget *notebook; /* the notebook widet */ GtkWidget *list; GtkListStore *liststore; GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkTreeIter item; GtkWidget *swin; /* scrolled window containing the list view */ GtkWidget *polar; /* polar plot */ GtkWidget *azel; /* Az/El plot */ GtkWidget *hbox; /* hbox used in tab headers */ GtkWidget *image; /* icon used in tab header */ gchar *title; guint flags; guint i, num; pass_detail_t *detail; gchar *buff; gint retcode; gdouble doppler; gdouble delay; gdouble loss; obs_astro_t astro; gdouble ra,dec; /* get columns flags */ flags = sat_cfg_get_int (SAT_CFG_INT_PRED_SINGLE_COL); /* create list */ list = gtk_tree_view_new (); gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (list), TRUE); for (i = 0; i < SINGLE_PASS_COL_NUMBER; i++) { renderer = gtk_cell_renderer_text_new (); g_object_set (G_OBJECT (renderer), "xalign", SINGLE_PASS_COL_XALIGN[i], NULL); column = gtk_tree_view_column_new_with_attributes (_(SINGLE_PASS_COL_TITLE[i]), renderer, "text", i, NULL); gtk_tree_view_insert_column (GTK_TREE_VIEW (list), column, -1); /* only aligns the headers */ gtk_tree_view_column_set_alignment (column, 0.5); /* set cell data function; allows to format data before rendering */ check_and_set_single_cell_renderer (column, renderer, i); /* hide columns that have not been specified */ if (!(flags & (1 << i))) { gtk_tree_view_column_set_visible (column, FALSE); } } /* create and fill model */ liststore = gtk_list_store_new (SINGLE_PASS_COL_NUMBER, G_TYPE_DOUBLE, // time G_TYPE_DOUBLE, // az G_TYPE_DOUBLE, // el G_TYPE_DOUBLE, // ra G_TYPE_DOUBLE, // dec G_TYPE_DOUBLE, // range G_TYPE_DOUBLE, // range rate G_TYPE_DOUBLE, // lat G_TYPE_DOUBLE, // lon G_TYPE_STRING, // SSP G_TYPE_DOUBLE, // footprint G_TYPE_DOUBLE, // alt G_TYPE_DOUBLE, // vel G_TYPE_DOUBLE, // doppler G_TYPE_DOUBLE, // loss G_TYPE_DOUBLE, // delay G_TYPE_DOUBLE, // ma G_TYPE_DOUBLE, // phase G_TYPE_STRING); // visibility /* add rows to list store */ num = g_slist_length (pass->details); for (i = 0; i < num; i++) { detail = PASS_DETAIL(g_slist_nth_data (pass->details, i)); gtk_list_store_append (liststore, &item); gtk_list_store_set (liststore, &item, SINGLE_PASS_COL_TIME, detail->time, SINGLE_PASS_COL_AZ, detail->az, SINGLE_PASS_COL_EL, detail->el, SINGLE_PASS_COL_RANGE, detail->range, SINGLE_PASS_COL_RANGE_RATE, detail->range_rate, SINGLE_PASS_COL_LAT, detail->lat, SINGLE_PASS_COL_LON, detail->lon, SINGLE_PASS_COL_FOOTPRINT, detail->footprint, SINGLE_PASS_COL_ALT, detail->alt, SINGLE_PASS_COL_VEL, detail->velo, SINGLE_PASS_COL_MA, detail->ma, SINGLE_PASS_COL_PHASE, detail->phase, -1); /* SINGLE_PASS_COL_RA */ /* SINGLE_PASS_COL_DEC */ if (flags & (SINGLE_PASS_FLAG_RA | SINGLE_PASS_FLAG_DEC)) { Calc_RADec (detail->time, detail->az, detail->el, qth, &astro); ra = Degrees(astro.ra); dec = Degrees(astro.dec); gtk_list_store_set (liststore, &item, SINGLE_PASS_COL_RA, ra, SINGLE_PASS_COL_DEC, dec, -1); } /* SINGLE_PASS_COL_SSP */ if (flags & SINGLE_PASS_FLAG_SSP) { buff = g_try_malloc (7); retcode = longlat2locator (detail->lon, detail->lat, buff, 3); if (retcode == RIG_OK) { buff[6] = '\0'; gtk_list_store_set (liststore, &item, SINGLE_PASS_COL_SSP, buff, -1); } g_free (buff); } /* SINGLE_PASS_COL_DOPPLER */ if (flags & SINGLE_PASS_FLAG_DOPPLER) { doppler = -100.0e06 * (detail->range_rate / 299792.4580); // Hz gtk_list_store_set (liststore, &item, SINGLE_PASS_COL_DOPPLER, doppler, -1); } /* SINGLE_PASS_COL_LOSS */ if (flags & SINGLE_PASS_FLAG_LOSS) { loss = 72.4 + 20.0*log10(detail->range); // dB gtk_list_store_set (liststore, &item, SINGLE_PASS_COL_LOSS, loss, -1); } /* SINGLE_PASS_COL_DELAY */ if (flags & SINGLE_PASS_FLAG_DELAY) { delay = detail->range / 299.7924580; // msec gtk_list_store_set (liststore, &item, SINGLE_PASS_COL_DELAY, delay, -1); } /* SINGLE_PASS_COL_VIS */ if (flags & SINGLE_PASS_FLAG_VIS) { buff = g_strdup_printf ("%c", vis_to_chr (detail->vis)); gtk_list_store_set (liststore, &item, SINGLE_PASS_COL_VIS, buff, -1); g_free (buff); } } /* connect model to tree view */ gtk_tree_view_set_model (GTK_TREE_VIEW (list), GTK_TREE_MODEL (liststore)); g_object_unref (liststore); /* scrolled window */ swin = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swin), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (swin), list); /* create notebook and add pages */ notebook = gtk_notebook_new (); image = gtk_image_new_from_stock (GTK_STOCK_JUSTIFY_FILL, GTK_ICON_SIZE_MENU); hbox = gtk_hbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), gtk_label_new (_("Data")), FALSE, TRUE, 5); gtk_widget_show_all (hbox); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), swin, hbox); /* polar plot */ polar = gtk_polar_plot_new (qth, pass); buff = icon_file_name ("gpredict-polar-small.png"); image = gtk_image_new_from_file (buff); g_free (buff); hbox = gtk_hbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), gtk_label_new (_("Polar")), FALSE, TRUE, 5); gtk_widget_show_all (hbox); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), polar, hbox); /* Az/El plot */ azel = gtk_azel_plot_new (qth, pass); buff = icon_file_name ("gpredict-azel-small.png"); image = gtk_image_new_from_file (buff); g_free (buff); hbox = gtk_hbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), gtk_label_new (_("Az/El")), FALSE, TRUE, 5); gtk_widget_show_all (hbox); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), azel, hbox); /* create dialog */ title = g_strdup_printf (_("Pass details for %s (orbit %d)"), satname, pass->orbit); /* use NULL as parent to avoid conflict when using undocked windows as parents. */ dialog = gtk_dialog_new_with_buttons (title, GTK_WINDOW (toplevel), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_PRINT, RESPONSE_PRINT, GTK_STOCK_SAVE, RESPONSE_SAVE, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL); g_free (title); /* Make Close button default */ gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_CLOSE); /* window icon */ buff = icon_file_name ("gpredict-sat-list.png"); gtk_window_set_icon_from_file (GTK_WINDOW (dialog), buff, NULL); g_free (buff); /* allow interaction with other windows */ gtk_window_set_modal (GTK_WINDOW (dialog), FALSE); g_object_set_data (G_OBJECT (dialog), "sat", (gpointer) satname); g_object_set_data (G_OBJECT (dialog), "qth", qth); g_object_set_data (G_OBJECT (dialog), "pass", pass); g_signal_connect (dialog, "response", G_CALLBACK (single_pass_response), NULL); g_signal_connect (dialog, "destroy", G_CALLBACK (single_pass_dialog_destroy), NULL); g_signal_connect (dialog, "delete_event", G_CALLBACK (single_pass_dialog_delete), NULL); gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area(GTK_DIALOG(dialog))), notebook); gtk_window_set_default_size (GTK_WINDOW (dialog), -1, 300); gtk_widget_show_all (dialog); }
void pevent_dialog_show () { GtkWidget *vbox, *hbox, *tbox, *wid, *bh, *th; GtkListStore *store, *hstore; GtkTreeSelection *sel; if (pevent_dialog) { mg_bring_tofront (pevent_dialog); return; } pevent_dialog = mg_create_generic_tab ("edit events", _("Edit Events"), TRUE, FALSE, pevent_dialog_close, NULL, 600, 455, &vbox, 0); wid = gtk_vpaned_new (); th = gtk_vbox_new (0, 2); bh = gtk_vbox_new (0, 2); gtk_widget_show (th); gtk_widget_show (bh); gtk_paned_pack1 (GTK_PANED (wid), th, 1, 1); gtk_paned_pack2 (GTK_PANED (wid), bh, 0, 1); gtk_box_pack_start (GTK_BOX (vbox), wid, 1, 1, 0); gtk_widget_show (wid); store = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT); pevent_dialog_list = gtkutil_treeview_new (th, GTK_TREE_MODEL (store), NULL, COL_EVENT_NAME, _("Event"), COL_EVENT_TEXT, _("Text"), -1); sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (pevent_dialog_list)); g_signal_connect (G_OBJECT (sel), "changed", G_CALLBACK (pevent_dialog_select), store); pevent_dialog_twid = gtk_xtext_new (colors, 0); gtk_xtext_set_tint (GTK_XTEXT (pevent_dialog_twid), prefs.hex_text_tint_red, prefs.hex_text_tint_green, prefs.hex_text_tint_blue); gtk_xtext_set_background (GTK_XTEXT (pevent_dialog_twid), channelwin_pix, prefs.hex_text_transparent); pevent_dialog_entry = gtk_entry_new_with_max_length (255); g_signal_connect (G_OBJECT (pevent_dialog_entry), "activate", G_CALLBACK (pevent_dialog_update), pevent_dialog_twid); gtk_box_pack_start (GTK_BOX (bh), pevent_dialog_entry, 0, 0, 0); gtk_widget_show (pevent_dialog_entry); tbox = gtk_hbox_new (0, 0); gtk_container_add (GTK_CONTAINER (bh), tbox); gtk_widget_show (tbox); gtk_widget_set_usize (pevent_dialog_twid, 150, 20); gtk_container_add (GTK_CONTAINER (tbox), pevent_dialog_twid); gtk_xtext_set_font (GTK_XTEXT (pevent_dialog_twid), prefs.hex_text_font); wid = gtk_vscrollbar_new (GTK_XTEXT (pevent_dialog_twid)->adj); gtk_box_pack_start (GTK_BOX (tbox), wid, FALSE, FALSE, 0); show_and_unfocus (wid); gtk_widget_show (pevent_dialog_twid); hstore = gtk_list_store_new (2, G_TYPE_INT, G_TYPE_STRING); pevent_dialog_hlist = gtkutil_treeview_new (bh, GTK_TREE_MODEL (hstore), NULL, 0, _("$ Number"), 1, _("Description"), -1); gtk_widget_show (pevent_dialog_hlist); pevent_dialog_fill (pevent_dialog_list); gtk_widget_show (pevent_dialog_list); hbox = gtk_hbutton_box_new (); gtk_box_pack_end (GTK_BOX (vbox), hbox, 0, 0, 2); /*wid = gtk_button_new_with_label (_("Save")); gtk_box_pack_end (GTK_BOX (hbox), wid, 0, 0, 0); gtk_signal_connect (GTK_OBJECT (wid), "clicked", GTK_SIGNAL_FUNC (pevent_save_cb), NULL); gtk_widget_show (wid);*/ gtkutil_button (hbox, GTK_STOCK_SAVE_AS, NULL, pevent_save_cb, (void *) 1, _("Save As...")); gtkutil_button (hbox, GTK_STOCK_OPEN, NULL, pevent_load_cb, (void *) 0, _("Load From...")); wid = gtk_button_new_with_label (_("Test All")); gtk_box_pack_end (GTK_BOX (hbox), wid, 0, 0, 0); g_signal_connect (G_OBJECT (wid), "clicked", G_CALLBACK (pevent_test_cb), pevent_dialog_twid); gtk_widget_show (wid); wid = gtk_button_new_from_stock (GTK_STOCK_OK); gtk_box_pack_start (GTK_BOX (hbox), wid, 0, 0, 0); g_signal_connect (G_OBJECT (wid), "clicked", G_CALLBACK (pevent_ok_cb), NULL); gtk_widget_show (wid); gtk_widget_show (hbox); gtk_widget_show (pevent_dialog); }