<xfce4-taskmanager:master> New options “Refresh rate,” “More precision” and “Full command line"

Mike Massonnet noreply at xfce.org
Sun May 23 20:58:01 CEST 2010


Updating branch refs/heads/master
         to 91d509ccdb01ea0dc95c8bc5240fb8a09c075895 (commit)
       from 486329d0f272425de712ddca4d48edc7dde93250 (commit)

commit 91d509ccdb01ea0dc95c8bc5240fb8a09c075895
Author: Mike Massonnet <mmassonnet at xfce.org>
Date:   Sat May 22 22:21:51 2010 +0200

    New options “Refresh rate,” “More precision” and “Full command line"
    
    New options are in the GUI although they don't do anything yet.

 src/process-window.c |   53 ++++++++++++++++++++++++++++++++++++++++++++++++++
 src/settings.c       |    9 ++++++++
 2 files changed, 62 insertions(+), 0 deletions(-)

diff --git a/src/process-window.c b/src/process-window.c
index d9f991f..ee86740 100644
--- a/src/process-window.c
+++ b/src/process-window.c
@@ -202,6 +202,51 @@ show_menu_execute_task (XtmProcessWindow *window)
 }
 
 static void
+refresh_rate_toggled (GtkCheckMenuItem *mi, XtmSettings *settings)
+{
+	guint refresh_rate = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (mi), "refresh-rate"));
+	g_object_set (settings, "refresh-rate", refresh_rate, NULL);
+}
+
+static void
+menu_refresh_rate_append_item (GtkMenu *menu, gchar *title, guint refresh_rate, XtmSettings *settings)
+{
+	GtkWidget *mi;
+	guint cur_refresh_rate;
+
+	g_object_get (settings, "refresh-rate", &cur_refresh_rate, NULL);
+
+	mi = gtk_image_menu_item_new_with_label (title);
+	if (cur_refresh_rate == refresh_rate)
+	{
+		GtkWidget *image = gtk_image_new_from_stock (GTK_STOCK_GO_FORWARD, GTK_ICON_SIZE_MENU);
+		gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (mi), image);
+	}
+	gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi);
+	g_object_set_data (G_OBJECT (mi), "refresh-rate", GUINT_TO_POINTER (refresh_rate));
+	g_signal_connect (mi, "activate", G_CALLBACK (refresh_rate_toggled), settings);
+}
+
+static GtkWidget *
+build_refresh_rate_menu (XtmSettings *settings)
+{
+	GtkWidget *menu;
+
+	menu = gtk_menu_new ();
+
+	/* TRANSLATORS: The next values are in seconds or milliseconds */
+	menu_refresh_rate_append_item (GTK_MENU (menu), _("250ms"), 250, settings);
+	menu_refresh_rate_append_item (GTK_MENU (menu), _("500ms"), 500, settings);
+	menu_refresh_rate_append_item (GTK_MENU (menu), _("750ms"), 750, settings);
+	menu_refresh_rate_append_item (GTK_MENU (menu), _("1s"), 1000, settings);
+	menu_refresh_rate_append_item (GTK_MENU (menu), _("2s"), 2000, settings);
+	menu_refresh_rate_append_item (GTK_MENU (menu), _("5s"), 5000, settings);
+	menu_refresh_rate_append_item (GTK_MENU (menu), _("10s"), 10000, settings);
+
+	return menu;
+}
+
+static void
 preferences_toggled (GtkCheckMenuItem *mi, XtmSettings *settings)
 {
 	gboolean active = gtk_check_menu_item_get_active (mi);
@@ -228,6 +273,7 @@ static void
 show_menu_preferences (XtmProcessWindow *window)
 {
 	static GtkWidget *menu = NULL;
+	GtkWidget *refresh_rate_menu;
 	GtkWidget *mi;
 
 	if (menu != NULL)
@@ -237,6 +283,13 @@ show_menu_preferences (XtmProcessWindow *window)
 
 	menu = gtk_menu_new ();
 	menu_preferences_append_item (GTK_MENU (menu), _("Show all processes"), "show-all-processes", window->priv->settings);
+	menu_preferences_append_item (GTK_MENU (menu), _("More precision"), "more-precision", window->priv->settings);
+	menu_preferences_append_item (GTK_MENU (menu), _("Full command line"), "full-command-line", window->priv->settings);
+
+	refresh_rate_menu = build_refresh_rate_menu (window->priv->settings);
+	mi = gtk_menu_item_new_with_label (_("Refresh rate"));
+	gtk_menu_item_set_submenu (GTK_MENU_ITEM (mi), refresh_rate_menu);
+	gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi);
 
 	mi = gtk_separator_menu_item_new ();
 	gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi);
diff --git a/src/settings.c b/src/settings.c
index 854b1cf..2c6d36f 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -32,6 +32,9 @@
 enum
 {
 	PROP_SHOW_ALL_PROCESSES = 1,
+	PROP_MORE_PRECISION,
+	PROP_FULL_COMMAND_LINE,
+	PROP_REFRESH_RATE,
 	PROP_COLUMN_UID,
 	PROP_COLUMN_PID,
 	PROP_COLUMN_PPID,
@@ -77,6 +80,12 @@ xtm_settings_class_init (XtmSettingsClass *klass)
 	class->set_property = xtm_settings_set_property;
 	g_object_class_install_property (class, PROP_SHOW_ALL_PROCESSES,
 		g_param_spec_boolean ("show-all-processes", "ShowAllProcesses", "Show all processes", FALSE, G_PARAM_READWRITE));
+	g_object_class_install_property (class, PROP_MORE_PRECISION,
+		g_param_spec_boolean ("more-precision", "MorePrecision", "More precision", TRUE, G_PARAM_READWRITE));
+	g_object_class_install_property (class, PROP_FULL_COMMAND_LINE,
+		g_param_spec_boolean ("full-command-line", "FullCommandLine", "Full command line", TRUE, G_PARAM_READWRITE));
+	g_object_class_install_property (class, PROP_REFRESH_RATE,
+		g_param_spec_uint ("refresh-rate", "RefreshRate", "Refresh rate in milliseconds", 0, G_MAXUINT, 1000, G_PARAM_READWRITE));
 	g_object_class_install_property (class, PROP_COLUMN_UID,
 		g_param_spec_boolean ("column-uid", "ColumnUID", "Show column UID", FALSE, G_PARAM_READWRITE));
 	g_object_class_install_property (class, PROP_COLUMN_PID,



More information about the Xfce4-commits mailing list