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

commit 91d509ccdb01ea0dc95c8bc5240fb8a09c075895
Author: Mike Massonnet <[email protected]>
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,
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to