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

📄 gui.c

📁 系统任务管理器
💻 C
📖 第 1 页 / 共 5 页
字号:
		{		gkrellm_configure_tooltip(p, launch);		if (*(launch->command))			launch->button = gkrellm_put_decal_in_meter_button(p, d,					gkrellm_launch_button_cb, launch, &launch->margin);		else			launch->button = NULL;	/* In case dangling pointer, see above */		}	}voidgkrellm_gtk_check_button(GtkWidget *box, GtkWidget **button, gboolean active,			gboolean expand, gint pad, gchar *string)	{	GtkWidget	*b;	if (!string)		return;	b = gtk_check_button_new_with_label(string);	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b), active);	if (box)		gtk_box_pack_start(GTK_BOX(box), b, expand, FALSE, pad);	if (button)		*button = b;	}voidgkrellm_gtk_check_button_connected(GtkWidget *box, GtkWidget **button,			gboolean active, gboolean expand, gboolean fill, gint pad,			void (*cb_func)(), gpointer data, gchar *string)	{	GtkWidget	*b;	if (!string)		return;	b = gtk_check_button_new_with_label(string);	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b), active);	if (box)		{		if (pad < 0)			gtk_box_pack_end(GTK_BOX(box), b, expand, fill, -(pad + 1));		else			gtk_box_pack_start(GTK_BOX(box), b, expand, fill, pad);		}	if (cb_func)		g_signal_connect(G_OBJECT(b), "toggled",				G_CALLBACK(cb_func), data);	if (button)		*button = b;	}voidgkrellm_gtk_button_connected(GtkWidget *box, GtkWidget **button,			gboolean expand, gboolean fill, gint pad,			void (*cb_func)(), gpointer data, gchar *string)	{	GtkWidget	*b;	if (!string)		return;	if (!strncmp(string, "gtk-", 4))		b = gtk_button_new_from_stock(string);	else		b = gtk_button_new_with_label(string);	if (box)		{		if (pad < 0)			gtk_box_pack_end(GTK_BOX(box), b, expand, fill, -(pad + 1));		else			gtk_box_pack_start(GTK_BOX(box), b, expand, fill, pad);		}	if (cb_func)		g_signal_connect(G_OBJECT(b), "clicked",				G_CALLBACK(cb_func), data);	if (button)		*button = b;	}voidgkrellm_gtk_alert_button(GtkWidget *box, GtkWidget **button,			gboolean expand, gboolean fill, gint pad, gboolean pack_start,			void (*cb_func)(), gpointer data)	{	GtkWidget	*b, *hbox;	GtkWidget	*image, *label;	hbox = gtk_hbox_new(FALSE, 0);	gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);	image = gtk_image_new_from_pixbuf(gkrellm_alert_pixbuf());	label = gtk_label_new(_("Alerts"));	gtk_box_pack_start(GTK_BOX(hbox), image, FALSE, FALSE, 3);	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 3);	b = gtk_button_new();	if (button)		*button = b;	if (cb_func)		g_signal_connect(G_OBJECT(b), "clicked", G_CALLBACK(cb_func), data);	gtk_widget_show_all(hbox);	gtk_container_add(GTK_CONTAINER(b), hbox);	if (box)		{		if (pack_start)			gtk_box_pack_start(GTK_BOX(box), b, expand, fill, pad);		else			gtk_box_pack_end(GTK_BOX(box), b, expand, fill, pad);		}	}voidgkrellm_gtk_spin_button(GtkWidget *box, GtkWidget **spin_button, gfloat value,		gfloat low, gfloat high, gfloat step0, gfloat step1,		gint digits, gint width,		void (*cb_func)(), gpointer data, gboolean right_align, gchar *string)	{	GtkWidget		*hbox	= NULL,					*label,					*button;	GtkSpinButton	*spin;	GtkAdjustment	*adj;	if (string && box)		{	    hbox = gtk_hbox_new (FALSE, 0);    	gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 2);		box = hbox;		}    adj = (GtkAdjustment *) gtk_adjustment_new (value,								low, high, step0, step1, 0.0);    button = gtk_spin_button_new(adj, 0.5, digits);	if (spin_button)		*spin_button = button;	if (width > 0)		gtk_widget_set_size_request(button, width, -1);    spin = GTK_SPIN_BUTTON(button);    gtk_spin_button_set_numeric(spin, TRUE);	if (!data)		data = (gpointer) spin;	if (cb_func)		g_signal_connect(G_OBJECT(adj), "value_changed",				G_CALLBACK(cb_func), data);	if (box)		{		if (right_align && string)			{			label = gtk_label_new(string);			gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);			gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 2);			}		gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 2);		if (!right_align && string)			{			label = gtk_label_new(string);			gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);			gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 2);			}		}	}GtkWidget *gkrellm_gtk_scrolled_vbox(GtkWidget *box, GtkWidget **scr,		GtkPolicyType h_policy, GtkPolicyType v_policy)	{	GtkWidget	*scrolled,				*vbox;	scrolled = gtk_scrolled_window_new(NULL, NULL);	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),			h_policy, v_policy);	gtk_box_pack_start(GTK_BOX(box), scrolled, TRUE, TRUE, 0);	vbox = gtk_vbox_new(FALSE, 2);	gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled), vbox);	if (scr)		*scr = scrolled;	return vbox;	}  /* frame_border_width - border around outside of frame.  |  vbox_pad - pad between widgets to be packed in returned vbox.  |  vbox_border_width - border between returned vbox and frame.  */GtkWidget *gkrellm_gtk_framed_vbox(GtkWidget *box, gchar *label, gint frame_border_width,		gboolean frame_expand, gint vbox_pad, gint vbox_border_width)	{	GtkWidget	*frame;	GtkWidget	*vbox;	frame = gtk_frame_new(label);	gtk_container_set_border_width(GTK_CONTAINER(frame), frame_border_width);    gtk_box_pack_start(GTK_BOX(box), frame, frame_expand, frame_expand, 0);    vbox = gtk_vbox_new(FALSE, vbox_pad);    gtk_container_set_border_width(GTK_CONTAINER(vbox), vbox_border_width);    gtk_container_add(GTK_CONTAINER(frame), vbox);	return vbox;	}GtkWidget *gkrellm_gtk_framed_vbox_end(GtkWidget *box, gchar *label,		gint frame_border_width, gboolean frame_expand,		gint vbox_pad, gint vbox_border_width)	{	GtkWidget	*frame;	GtkWidget	*vbox;	frame = gtk_frame_new(label);	gtk_container_set_border_width(GTK_CONTAINER(frame), frame_border_width);    gtk_box_pack_end(GTK_BOX(box), frame, frame_expand, frame_expand, 0);    vbox = gtk_vbox_new(FALSE, vbox_pad);    gtk_container_set_border_width(GTK_CONTAINER(vbox), vbox_border_width);    gtk_container_add(GTK_CONTAINER(frame), vbox);	return vbox;	}GtkWidget *gkrellm_gtk_category_vbox(GtkWidget *box, gchar *category_header,		gint header_pad, gint box_pad, gboolean pack_start)	{	GtkWidget	*vbox, *vbox1, *hbox, *label;	gchar		*s;	vbox = gtk_vbox_new(FALSE, 0);	if (pack_start)		gtk_box_pack_start(GTK_BOX(box), vbox, FALSE, FALSE, 0);	else		gtk_box_pack_end(GTK_BOX(box), vbox, FALSE, FALSE, 0);	if (category_header)		{		label = gtk_label_new(NULL);		s = g_strconcat("<span weight=\"bold\">", category_header,					"</span>",NULL);		gtk_label_set_markup(GTK_LABEL(label), s);		gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);		gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, header_pad);		g_free(s);		}	hbox = gtk_hbox_new(FALSE, 0);	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);	label = gtk_label_new("    ");	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);	vbox1 = gtk_vbox_new(FALSE, box_pad);	gtk_box_pack_start(GTK_BOX(hbox), vbox1, FALSE, FALSE, 0);	/* Add some bottom pad */	label = gtk_label_new("");	gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);	return vbox1;	}GtkWidget *gkrellm_gtk_notebook_page(GtkWidget *tabs, char *name)	{	GtkWidget	*label;	GtkWidget	*vbox;	vbox = gtk_vbox_new(FALSE, 0);	gtk_container_set_border_width(GTK_CONTAINER(vbox), 0);	label = gtk_label_new(name);	gtk_notebook_append_page(GTK_NOTEBOOK(tabs), vbox, label);	return vbox;	}GtkWidget *gkrellm_gtk_framed_notebook_page(GtkWidget *tabs, char *name)	{	GtkWidget	*vbox;	vbox = gkrellm_gtk_notebook_page(tabs, name);	vbox = gkrellm_gtk_framed_vbox(vbox, NULL, 2, TRUE, 4, 4);	return vbox;	}static voidcreate_about_tab(GtkWidget *vbox)	{	GtkWidget	*label;	gchar		*buf;	vbox = gkrellm_gtk_framed_vbox(vbox, NULL, 2, TRUE, 0, 0);	label = gtk_label_new("");	gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0);	buf = g_strdup_printf(_("GKrellM %d.%d.%d%s\nGNU Krell Monitors\n\n"				"Copyright (c) 1999-2006 by Bill Wilson\n"				"billw@gkrellm.net\n"				"http://gkrellm.net\n\n"				"Released under the GNU General Public License"),				GKRELLM_VERSION_MAJOR, GKRELLM_VERSION_MINOR,				GKRELLM_VERSION_REV, GKRELLM_EXTRAVERSION);	label = gtk_label_new(buf);	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_CENTER);	g_free(buf);	gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);	label = gtk_label_new("");	gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0);#if defined(__APPLE__)	buf = g_strdup_printf(_("Mac OS X code was contributed by:\n"						"Ben Hines <bhines@alumni.ucsd.edu>\n"						"and\n"						"Hajimu UMEMOTO <ume@mahoroba.org>"));	label = gtk_label_new(buf);	g_free(buf);	gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0);#endif#if defined(__FreeBSD__)	buf = g_strdup_printf(				_("FreeBSD system dependent code was contributed by:\n"				"Hajimu UMEMOTO <ume@mahoroba.org>"));	label = gtk_label_new(buf);	g_free(buf);	gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0);#endif#if defined(__NetBSD__)	buf = g_strdup_printf(				_("NetBSD system dependent code was contributed by:\n"				"Anthony Mallet <anthony.mallet@useless-ficus.net>"));	label = gtk_label_new(buf);	g_free(buf);	gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0);#endif#if defined(__solaris__)	buf = g_strdup_printf(				_("Solaris system dependent code was contributed by:\n"				"Daisuke Yabuki <dxy@acm.org>"));	label = gtk_label_new(buf);	g_free(buf);	gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0);#endif#if defined(WIN32)	buf = g_strdup_printf(				_("Windows system dependent code was contributed by:\n"				"Bill Nalen <bill@nalens.com>"));	label = gtk_label_new(buf);	g_free(buf);	gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0);#endif	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_CENTER);	}/* ------------------General Settings---------------------------------*/static GtkWidget			*enable_hst_button,			*hostname_short_button,			*enable_sysname_button,			*save_position_button,			*sticky_state_button,			*dock_type_button,			*decorated_button,			*skip_taskbar_button,			*skip_pager_button,			*above_button,			*below_button;GtkWidget	*track_gtk_button,			*allow_multiple_button;GtkWidget	*on_top_button;static voidcb_width_spin(GtkWidget *widget, GtkSpinButton *spin)	{	_GK.chart_width = gtk_spin_button_get_value_as_int(spin);	gkrellm_build();	}static voidcb_HZ_spin(GtkWidget *widget, GtkSpinButton *spin)	{	gint	n;	n = _GK.update_HZ;	_GK.update_HZ = gtk_spin_button_get_value_as_int(spin);	if (n != _GK.update_HZ)		gkrellm_start_timer(_GK.update_HZ);	}static voidcb_hostname_sysname(GtkWidget *widget, gpointer data)	{	_GK.enable_hostname = GTK_TOGGLE_BUTTON(enable_hst_button)->active;	if (hostname_short_button)		_GK.hostname_short = GTK_TOGGLE_BUTTON(hostname_short_button)->active;	_GK.enable_system_name = GTK_TOGGLE_BUTTON(enable_sysname_button)->active;	gkrellm_apply_hostname_config();	}static voidcb_general(void)	{	GtkWidget	*top_window = gkrellm_get_top_window();	gint		n;	gboolean	new_state;	if (allow_multiple_button)		_GK.allow_multiple_instances =					GTK_TOGGLE_BUTTON(allow_multiple_button)->active;	if (on_top_button)		_GK.on_top = GTK_TOGGLE_BUTTON(on_top_button)->active;	_GK.save_position = GTK_TOGGLE_BUTTON(save_position_button)->active;	if (sticky_state_button)		{		n = GTK_TOGGLE_BUTTON(sticky_state_button)->active;		new_state = (n != _GK.sticky_state);		_GK.sticky_state = n;		if (new_state)			{			if (_GK.sticky_state)				gtk_window_stick(GTK_WINDOW(top_window));			else				gtk_window_unstick(GTK_WINDOW(top_window));			}		}	if (decorated_button)	/* restart for change to take effect */		_GK.decorated = GTK_TOGGLE_BUTTON(decorated_button)->active;#if !defined(WIN32)	if (skip_taskbar_button)		{		n = GTK_TOGGLE_BUTTON(skip_taskbar_button)->active;		new_state = (n != _GK.state_skip_taskbar);		_GK.state_skip_taskbar = n;		if (new_state)			gkrellm_winop_state_skip_taskbar(n);		}	if (skip_pager_button)		{		n = GTK_TOGGLE_BUTTON(skip_pager_button)->active;		new_state = (n != _GK.state_skip_pager);		_GK.state_skip_pager = n;		if (new_state)			gkrellm_winop_state_skip_pager(n);		}	if (above_button)		{		n = GTK_TOGGLE_BUTTON(above_button)->active;		new_state = (n != _GK.state_above);		_GK.state_above = n;		if (new_state)			{			if (n && _GK.state_below)				gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(below_button),						FALSE);			gkrellm_winop_state_above(n);			}		}	if (below_button)		{		n = GTK_TOGGLE_BUTTON(below_button)->active;		new_state = (n != _GK.state_below);		_GK.state_below = n;		if (new_state)			{

⌨️ 快捷键说明

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