static void create_plugin_tab(GtkWidget *tab_vbox) { GtkWidget* tabs; GtkWidget* vbox; GtkWidget* vbox1; GtkWidget* text; gint i; tabs = gtk_notebook_new(); gtk_notebook_set_tab_pos(GTK_NOTEBOOK(tabs), GTK_POS_TOP); gtk_box_pack_start(GTK_BOX(tab_vbox), tabs, TRUE, TRUE, 0); /* -- Options tab -- */ vbox = gkrellm_gtk_framed_notebook_page(tabs, "Options"); /* -- Governor options -- */ vbox1 = gkrellm_gtk_framed_vbox(vbox, "CPUfreq governor", 4, FALSE, 0, 2); gkrellm_gtk_check_button(vbox1, &gov_enable_button, gov_enable, FALSE, 0, "Show governor (see Info tab)"); gkrellm_gtk_check_button(vbox1, &slider_userspace_enable_button, slider_userspace_enable, FALSE, 0, "Set userspace governor when moving slider"); /* -- Slider options -- */ vbox1 = gkrellm_gtk_framed_vbox(vbox, "Slider", 4, FALSE, 0, 2); gkrellm_gtk_check_button(vbox1, &slider_enable_button, slider_enable, FALSE, 0, "Show slider (see Info tab)"); /* -- SMP options -- */ vbox1 = gkrellm_gtk_framed_vbox(vbox, "SMP", 4, FALSE, 0, 2); gkrellm_gtk_check_button(vbox1, &controls_coupled_button, controls_coupled, FALSE, 0, "Couple controls of multiple CPUs"); /* -- Info tab -- */ vbox = gkrellm_gtk_framed_notebook_page(tabs, "Info"); text = gkrellm_gtk_scrolled_text_view(vbox, NULL, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); for (i = 0; i < sizeof(plugin_info_text)/sizeof(gchar *); ++i) gkrellm_gtk_text_view_append(text, plugin_info_text[i]); }
static void cb_place_button(GtkWidget *widget, gpointer data) { GtkWidget *main_vbox, *vbox, *vbox1, *vbox2, *vbox3, *hbox; GtkWidget *button; GtkTreeModel *model; GtkTreePath *path; GtkTreeIter iter; GSList *group; GList *list; GkrellmMonitor *mon; GkrellmMonprivate *mp; gint i; if (gkrellm_demo_mode()) return; if (!place_plugin_window) { place_plugin_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); g_signal_connect(G_OBJECT(place_plugin_window), "delete_event", G_CALLBACK(place_plugin_window_delete_event), NULL); gtk_window_set_title(GTK_WINDOW(place_plugin_window), _("GKrellM Place Plugin")); gtk_window_set_wmclass(GTK_WINDOW(place_plugin_window), "Gkrellm_conf", "Gkrellm"); main_vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(place_plugin_window), main_vbox); place_plugin_vbox = main_vbox; vbox = gkrellm_gtk_framed_vbox(main_vbox, NULL, 3, FALSE, 4, 3); hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); vbox1 = gkrellm_gtk_framed_vbox(hbox, _("Builtin Monitors"), 3, FALSE, 4, 3); group = NULL; for (i = 0, list = gkrellm_monitor_list; list; list = list->next) { mon = (GkrellmMonitor *) list->data; mp = mon->privat; mon->privat->button_id = -1; if (MONITOR_ID(mon) != MON_PLUGIN) { if ( !mon->name || !mon->create_monitor || mon == gkrellm_mon_host() ) continue; button = gtk_radio_button_new_with_label(group, mon->name); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(cb_place), NULL); gtk_box_pack_start(GTK_BOX(vbox1), button, FALSE, FALSE, 0); if (i < N_BUILTIN_MONITORS) { builtin_button[i] = button; mon->privat->button_id = i++; } group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(button)); } } vbox1 = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), vbox1, FALSE, FALSE, 0); place_label = gtk_label_new(""); gtk_box_pack_start(GTK_BOX(vbox1), place_label, FALSE, FALSE, 10); vbox2 = gkrellm_gtk_framed_vbox(vbox1, _("Place Plugin"), 3, FALSE, 4, 3); group = NULL; vbox3 = gkrellm_gtk_framed_vbox(vbox2, NULL, 3, FALSE, 4, 3); before_button = gtk_radio_button_new_with_label(group, _("Before selected builtin monitor")); g_signal_connect(G_OBJECT(before_button), "clicked", G_CALLBACK(cb_place), NULL); gtk_box_pack_start(GTK_BOX(vbox3), before_button, FALSE, FALSE, 0); gkrellm_gtk_spin_button(vbox3, &gravity_spin_button, 8, 0.0, 15.0, 1, 1, 0, 50, cb_place_spin, NULL, FALSE, _("With gravity")); vbox3 = gkrellm_gtk_framed_vbox(vbox2, NULL, 3, FALSE, 4, 3); group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(before_button)); after_button = gtk_radio_button_new_with_label(group, _("After selected builtin monitor")); g_signal_connect(G_OBJECT(after_button), "clicked", G_CALLBACK(cb_place), NULL); gtk_box_pack_start(GTK_BOX(vbox3), after_button, FALSE, FALSE, 0); hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox1), hbox, FALSE, FALSE, 0); gkrellm_gtk_button_connected(hbox, NULL, TRUE, FALSE, 0, cb_place_default, NULL, _("Plugin Defaults")); hbox = gtk_hbutton_box_new(); gtk_button_box_set_layout(GTK_BUTTON_BOX(hbox), GTK_BUTTONBOX_END); gtk_box_set_spacing(GTK_BOX(hbox), 5); gtk_box_pack_end(GTK_BOX(vbox1), hbox, FALSE, FALSE, 0); button = gtk_button_new_from_stock(GTK_STOCK_OK); GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(cb_close_place), NULL); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); gtk_widget_show_all(place_plugin_window); } else gtk_window_present(GTK_WINDOW(place_plugin_window)); // gdk_window_raise(place_plugin_window->window); if (row_reference) { model = gtk_tree_view_get_model(treeview); path = gtk_tree_row_reference_get_path(row_reference); gtk_tree_model_get_iter(model, &iter, path); gtk_tree_model_get(model, &iter, MON_COLUMN, &mon, -1); place_button_sensitivity(mon, mon->privat->enabled); } }