⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gui.c

📁 系统任务管理器
💻 C
📖 第 1 页 / 共 5 页
字号:
	gtk_box_pack_start (GTK_BOX (hbox), theme_alt_label, TRUE, TRUE, 4);	gtk_misc_set_alignment(GTK_MISC(theme_alt_label), 0, 0.5);	gkrellm_set_theme_alternatives_label();/* -- Options tab */	vbox = gkrellm_gtk_notebook_page(tabs, _("Options"));	vbox = gkrellm_gtk_framed_vbox(vbox, NULL, 2, TRUE, 10, 4);#if !defined(WIN32)	vbox1 = gtk_vbox_new(FALSE, 0);	gkrellm_gtk_check_button_connected(vbox, &track_gtk_button,			_GK.track_gtk_theme_name, FALSE, FALSE, 0,			cb_track_gtk, vbox1,			_("Track Gtk theme changes for similarly named themes"));	gtk_widget_set_sensitive(vbox1, _GK.track_gtk_theme_name);	gtk_box_pack_start(GTK_BOX(vbox), vbox1, FALSE, FALSE, 0);	vbox1 = gkrellm_gtk_category_vbox(vbox1, NULL, 0, 0, TRUE);	hbox = gtk_hbox_new(FALSE, 0);	gtk_box_pack_start(GTK_BOX(vbox1), hbox, FALSE, FALSE, 0);	label = gtk_label_new(_("Default"));	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);	entry = gtk_entry_new();	gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 0);	gtk_entry_set_text(GTK_ENTRY(entry), _GK.default_track_theme);	g_signal_connect(G_OBJECT(entry), "changed",				G_CALLBACK(cb_track_entry_changed), NULL);#endif	hbox = gtk_hbox_new (FALSE, 0);	gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);	gkrellm_gtk_spin_button(hbox, NULL,			(gfloat)_GK.theme_scale, 40.0, 400.0, 10.0, 20.0, 0, 60,			cb_theme_scale_changed, NULL, FALSE, NULL);	label = gtk_label_new(_("Scale"));	gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 4);	gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);/* --Fonts tab */	vbox = gkrellm_gtk_framed_notebook_page(tabs, _("Fonts"));	vbox1 = gkrellm_gtk_framed_vbox(vbox, NULL, 2, FALSE, 0, 2);	vbox2 = gkrellm_gtk_framed_vbox(vbox1, _("Large font"), 4, FALSE, 0, 3);	hbox = gtk_hbox_new(FALSE, 0);	gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, TRUE, 0);	large_font.entry = gtk_entry_new();	gtk_box_pack_start(GTK_BOX(hbox), large_font.entry, TRUE, TRUE, 0);	gtk_entry_set_text(GTK_ENTRY(large_font.entry), large_font.string);	g_signal_connect(G_OBJECT(large_font.entry), "changed",			G_CALLBACK(cb_font_entry_changed), NULL);	g_signal_connect(G_OBJECT(large_font.entry), "activate",			G_CALLBACK(cb_font_entry_activate), NULL);	gkrellm_gtk_button_connected(hbox, &large_font.browse_button, FALSE, FALSE,			0, cb_font_dialog, &large_font, _("Browse"));	vbox2 = gkrellm_gtk_framed_vbox(vbox1, _("Normal font"), 4, FALSE, 0, 3);	hbox = gtk_hbox_new(FALSE, 0);	gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, TRUE, 0);	normal_font.entry = gtk_entry_new();	gtk_box_pack_start(GTK_BOX(hbox), normal_font.entry, TRUE, TRUE, 0);	gtk_entry_set_text(GTK_ENTRY(normal_font.entry), normal_font.string);	g_signal_connect(G_OBJECT(normal_font.entry), "changed",			G_CALLBACK(cb_font_entry_changed), NULL);	g_signal_connect(G_OBJECT(normal_font.entry), "activate",			G_CALLBACK(cb_font_entry_activate), NULL);	gkrellm_gtk_button_connected(hbox, &normal_font.browse_button,			FALSE, FALSE, 0, cb_font_dialog, &normal_font,			_("Browse"));	vbox2 = gkrellm_gtk_framed_vbox(vbox1, _("Small font"), 4, FALSE, 0, 3);	hbox = gtk_hbox_new(FALSE, 0);	gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, TRUE, 0);	small_font.entry = gtk_entry_new();	gtk_box_pack_start(GTK_BOX(hbox), small_font.entry, TRUE, TRUE, 0);	gtk_entry_set_text(GTK_ENTRY(small_font.entry), small_font.string);	g_signal_connect(G_OBJECT(small_font.entry), "changed",			G_CALLBACK(cb_font_entry_changed), NULL);	g_signal_connect(G_OBJECT(small_font.entry), "activate",			G_CALLBACK(cb_font_entry_activate), NULL);	gkrellm_gtk_button_connected(hbox, &small_font.browse_button, FALSE, FALSE,			0, cb_font_dialog, &small_font, _("Browse"));	/* --Info tab*/	vbox = gkrellm_gtk_framed_notebook_page(tabs, _("Info"));	s = g_strdup_printf(_("Untar your theme tar files in %s/%s"),						gkrellm_homedir(), GKRELLM_THEMES_DIR);	label = gtk_label_new(s);	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);	gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);	gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);	g_free(s);	label = gtk_label_new(			_("Download themes from the GKrellM theme site at www.muhri.net"));	gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);	gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);	}/* ================================================================ *//* A simple tree store model for selecting monitor configs.*/enum	{	NAME_COLUMN,	MONITOR_COLUMN,	PAGE_COLUMN,	N_COLUMNS	};static GtkNotebook	*config_notebook;static gboolean		expand_builtins,					expand_plugins;static GtkTreeView	*treeview;static GtkTreeStore	*model;static GtkWidget	*apply_button,					*close_button;static GkrellmMonitor	*selected_monitor;static voidclose_config(gpointer data)	{	GtkTreePath	*path;	gint		from_close	= GPOINTER_TO_INT(data);	path = gtk_tree_path_new_from_string("1");	expand_builtins = gtk_tree_view_row_expanded(treeview, path);	gtk_tree_path_free(path);	path = gtk_tree_path_new_from_string("2");	expand_plugins = gtk_tree_view_row_expanded(treeview, path);	gtk_tree_path_free(path);	g_object_unref(G_OBJECT(model));	gtk_widget_destroy(config_window);	config_window = NULL;	gkrellm_plugins_config_close();	close_theme_config(from_close);	if (_GK.config_modified)		gkrellm_save_user_config();	gkrellm_save_theme_config();	}static voidapply_config(void)	{	GList	*list;	GkrellmMonitor	*mon;	gkrellm_freeze_side_frame_packing();	for (list = gkrellm_monitor_list; list; list = list->next)		{		mon = (GkrellmMonitor *) list->data;		if (   mon->apply_config && mon->privat->enabled			&& (mon->privat->config_created || !mon->create_config)		   )			{			gkrellm_record_state(APPLY_CONFIG, mon);			(*(mon->apply_config))();			gkrellm_record_state(INTERNAL, NULL);			}		}	gkrellm_thaw_side_frame_packing();	gkrellm_config_modified();	}static voidOK_config(void)	{	apply_config();	close_config(GINT_TO_POINTER(0));	}static GtkWidget *create_config_page(GkrellmMonitor *mon, GtkTreeStore *tree, GtkTreeIter *iter,			GtkNotebook *notebook)	{	GtkWidget	*vbox;	gint		page;	vbox = gtk_vbox_new(FALSE, 0);	gtk_notebook_append_page(notebook, vbox, NULL);	page = g_list_length(notebook->children) - 1;	if (mon)		mon->privat->config_page = page;	gtk_tree_store_set(tree, iter,			MONITOR_COLUMN, mon,			PAGE_COLUMN, page,			-1);	if (_GK.debug_level & DEBUG_GUI)		printf("create_config_page %d: %s\n", page, mon ? mon->name : "--");	return vbox;	}static voidreal_create_config(GkrellmMonitor *mon)	{	if (mon->privat->config_created || !mon->create_config)		return;	gkrellm_record_state(CREATE_CONFIG, mon);	(*(mon->create_config))(mon->privat->config_vbox);	gkrellm_record_state(INTERNAL, NULL);	gtk_widget_show_all(mon->privat->config_vbox);	mon->privat->config_created = TRUE;	}voidgkrellm_add_plugin_config_page(GkrellmMonitor *mon)	{	GtkTreeIter		iter, plugin_iter;	GtkTreePath		*path;	if (config_window && mon->create_config)		{		path = gtk_tree_path_new_from_string("2");		gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &plugin_iter, path);		gtk_tree_path_free(path);		gtk_tree_store_append(model, &iter, &plugin_iter);		gtk_tree_store_set(model, &iter, NAME_COLUMN, mon->name, -1);		mon->privat->config_vbox =					create_config_page(mon, model, &iter, config_notebook);		mon->privat->config_created = FALSE;		mon->privat->row_reference =			gtk_tree_row_reference_new(GTK_TREE_MODEL(model),					gtk_tree_model_get_path(GTK_TREE_MODEL(model), &iter));		}	else		mon->privat->config_page = -1;	}voidgkrellm_remove_plugin_config_page(GkrellmMonitor *mon)	{	GtkTreePath		*path;	GtkTreeIter		iter;	GList			*list;	GkrellmMonitor	*tmon;	if (mon->privat->config_page > 0)		{		path = gtk_tree_row_reference_get_path(mon->privat->row_reference);		gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, path);		gtk_tree_store_remove(model, &iter);		gtk_notebook_remove_page(config_notebook, mon->privat->config_page);		/* When a config_page is removed, any greater plugin config_page must		|  be decremented		*/		for (list = gkrellm_monitor_list; list; list = list->next)			{			tmon = (GkrellmMonitor *) list->data;			if (mon->privat->config_page >= tmon->privat->config_page)				continue;			tmon->privat->config_page -= 1;			if (_GK.debug_level & DEBUG_GUI)				printf("config_page %d: %s\n",						tmon->privat->config_page,  tmon->name);			}		}	mon->privat->config_page = -1;	}  /* If a config page uses instant apply, hide the APPLY/CLOSE buttons and  |  assume the config will be modified.  */static voidset_apply_mode(gboolean instant)	{	if (instant)		{		gtk_widget_hide(apply_button);		gtk_widget_hide(close_button);		gkrellm_config_modified();		}	else		{		gtk_widget_show(apply_button);		gtk_widget_show(close_button);		}	}static voidcb_tree_selection_changed(GtkTreeSelection *selection, gpointer data)	{	GtkTreeIter		iter;	GtkTreeModel	*model;	gint			page;	gboolean		instant;	if (!gtk_tree_selection_get_selected(selection, &model, &iter))		return;	if (selected_monitor && selected_monitor->apply_config)		{		gkrellm_record_state(APPLY_CONFIG, selected_monitor);		(*(selected_monitor->apply_config))();		gkrellm_record_state(INTERNAL, NULL);		}	gtk_tree_model_get(model, &iter,				MONITOR_COLUMN, &selected_monitor,				PAGE_COLUMN, &page,				-1);	if (selected_monitor && selected_monitor->privat)		{		page = selected_monitor->privat->config_page;		real_create_config(selected_monitor);		if (selected_monitor == gkrellm_get_sensors_mon())			{	/* Special case dependencies in the configs */			real_create_config(gkrellm_get_cpu_mon());			real_create_config(gkrellm_get_proc_mon());			}		instant = (   selected_monitor->apply_config == NULL				   || selected_monitor->privat->instant_apply);		}	else		instant = TRUE;	set_apply_mode(instant);	gtk_notebook_set_current_page(config_notebook, page);	if (_GK.debug_level & DEBUG_GUI)		printf("tree_selection_changed %d: %s\n",					page, selected_monitor ? selected_monitor->name : "--");	}  /* Monitors may want to present as instant apply monitors, but still need  |  their apply function called when changing notebook pages or on OK button.  */voidgkrellm_config_instant_apply(GkrellmMonitor *mon)	{	mon->privat->instant_apply = TRUE;	}gbooleangkrellm_config_window_shown(void)	{	return config_window ? TRUE : FALSE;	}voidcreate_config_window(void)	{	GtkWidget			*widget,						*vbox,						*main_vbox,						*config_hbox,						*hbox;	GtkWidget			*scrolled;	GtkWidget			*button;	GtkTreeIter			iter, citer;	GtkTreePath			*path;	GtkCellRenderer		*renderer;	GtkTreeViewColumn	*column;	GtkTreeSelection	*select;	GList				*list;	GkrellmMonitor		*mon;	gchar				*config_name, *window_title;		if (config_window)		{		gtk_window_present(GTK_WINDOW(config_window));		return;		}	selected_monitor = NULL;	config_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);	g_signal_connect(G_OBJECT(config_window), "delete_event",			G_CALLBACK(close_config), GINT_TO_POINTER(1));	config_name = gkrellm_make_config_file_name(NULL, "GKrellM");	window_title = g_strdup_printf("%s %s", config_name, _("Configuration"));	gtk_window_set_title(GTK_WINDOW(config_window), window_title);	g_free(config_name);	g_free(window_title);	gtk_window_set_wmclass(GTK_WINDOW(config_window),					"Gkrellm_conf", "Gkrellm");	gtk_container_set_border_width(GTK_CONTAINER(config_window), 2);		config_hbox = gtk_hbox_new(FALSE, 4);	gtk_container_add(GTK_CONTAINER(config_window), config_hbox);	scrolled = gtk_scrolled_window_new(NULL, NULL);	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),			GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);	gtk_box_pack_start(GTK_BOX(config_hbox), scrolled, FALSE, FALSE, 0);	main_vbox = gtk_vbox_new(FALSE, 4);	gtk_box_pack_start(GTK_BOX(config_hbox), main_vbox, TRUE, TRUE, 0);	widget = gtk_notebook_new();	gtk_box_pack_start(GTK_BOX(main_vbox), widget, TRUE, TRUE, 0);	config_notebook = GTK_NOTEBOOK(widget);	gtk_notebook_set_show_tabs(config_notebook, FALSE);	model = gtk_tree_store_new(N_COLUMNS,				G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_INT);	gtk_tree_store_append(model, &iter, NULL);	gtk_tree_store_set(model, &iter, NAME_COLUMN, _("General"), -1);	vbox = create_config_page(NULL, model, &iter, config_notebook);	create_general_tab(vbox);	gtk_tree_store_append(model, &iter, NULL);	gtk_tree_store_set(model, &iter, NAME_COLUMN, _("Builtins"), -1);	vbox = create_config_page(NULL, model, &iter, config_notebook);	for (list = gkrellm_monitor_list; list; list = list->next)		{		mon = (GkrellmMonitor *) list->data;		if (MONITOR_ID(mon) == MON_PLUGIN || ! mon->create_config)			continue;		gtk_tree_store_append(model, &citer, &iter);		gtk_tree_store_set(model, &citer, NAME_COLUMN, mon->name, -1);		mon->privat->config_vbox =					create_config_page(mon, model, &citer, config_notebook);		mon->privat->config_created = FALSE;		mon->privat->row_reference =			gtk_tree_row_reference_new(GTK_TREE_MODEL(model),					gtk_tree_model_get_path(GTK_TREE_MODEL(model), &citer));		}	gtk_tree_store_append(model, &iter, NULL);	gtk_tree_store_set(model, &iter, NAME_COLUMN, _("Plugins"), -1);	vbox = create_config_page(NULL, model, &iter, config_notebook);	gkrellm_plugins_config_create(vbox);	gtk_tree_store_append(model, &iter, NULL);	gtk_tree_store_set(model, &iter, NAME_COLUMN, _("Themes"), -1);	vbox = create_config_page(NULL, model, &iter, config_notebook);	create_theme_tab(vbox);	gtk_tree_store_append(model, &iter, NULL);	gtk_tree_store_set(model, &iter, NAME_COLUMN, _("About"), -1);	vbox = create_config_page(NULL, model, &iter, config_notebook);	create_about_tab(vbox);	/* Add plugin notebook pages last since they may need special add/remove	|  actions as plugins are enabled/disabled.	*/	for (list = gk

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -