settings: Hook up refresh rate
This commit is contained in:
committed by
Simon Steinbeiß
parent
c03eb44de4
commit
265b1c2f5b
@@ -25,6 +25,11 @@ static void show_about_dialog (GtkWidget *widget, gpointer user_data);
|
|||||||
static GtkWidget *xtm_settings_dialog_new (GtkBuilder *builder, GtkWidget *parent_window);
|
static GtkWidget *xtm_settings_dialog_new (GtkBuilder *builder, GtkWidget *parent_window);
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
GtkWidget *combobox;
|
||||||
|
guint rate;
|
||||||
|
} XtmRefreshRate;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
button_toggled (GtkToggleButton *button, XtmSettings *settings)
|
button_toggled (GtkToggleButton *button, XtmSettings *settings)
|
||||||
@@ -48,6 +53,57 @@ builder_bind_toggle_button (GtkBuilder *builder, gchar *widget_name, XtmSettings
|
|||||||
g_signal_connect (button, "toggled", G_CALLBACK (button_toggled), settings);
|
g_signal_connect (button, "toggled", G_CALLBACK (button_toggled), settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
combobox_changed (GtkComboBox *combobox, XtmSettings *settings)
|
||||||
|
{
|
||||||
|
GtkTreeModel *model;
|
||||||
|
GtkTreeIter iter;
|
||||||
|
GValue prop = { 0, };
|
||||||
|
gint rate;
|
||||||
|
|
||||||
|
gtk_combo_box_get_active_iter (combobox, &iter);
|
||||||
|
model = gtk_combo_box_get_model (combobox);
|
||||||
|
gtk_tree_model_get_value (model, &iter, 0, &prop);
|
||||||
|
rate = g_value_get_int (&prop);
|
||||||
|
g_object_set (settings, "refresh-rate", GUINT_TO_POINTER (rate), NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
combobox_foreach (GtkTreeModel *model,
|
||||||
|
GtkTreePath *path,
|
||||||
|
GtkTreeIter *iter,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
XtmRefreshRate *refresh_rate = user_data;
|
||||||
|
GValue prop = { 0, };
|
||||||
|
|
||||||
|
gtk_tree_model_get_value (model, iter, 0, &prop);
|
||||||
|
|
||||||
|
if (g_value_get_int (&prop) == refresh_rate->rate)
|
||||||
|
{
|
||||||
|
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (refresh_rate->combobox), iter);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
builder_bind_combobox (GtkBuilder *builder, XtmSettings *settings)
|
||||||
|
{
|
||||||
|
XtmRefreshRate *refresh_rate;
|
||||||
|
GtkTreeModel *model;
|
||||||
|
|
||||||
|
refresh_rate = g_new0 (XtmRefreshRate, 1);
|
||||||
|
g_object_get (settings, "refresh-rate", &refresh_rate->rate, NULL);
|
||||||
|
|
||||||
|
refresh_rate->combobox = GTK_WIDGET (gtk_builder_get_object (builder, "combobox-refresh-rate"));
|
||||||
|
model = gtk_combo_box_get_model (GTK_COMBO_BOX (refresh_rate->combobox));
|
||||||
|
gtk_tree_model_foreach (model, combobox_foreach, refresh_rate);
|
||||||
|
g_object_set_data (G_OBJECT (refresh_rate->combobox), "setting-name", "refresh-rate");
|
||||||
|
g_signal_connect (refresh_rate->combobox, "changed", G_CALLBACK (combobox_changed), settings);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
show_about_dialog (GtkWidget *widget, gpointer user_data)
|
show_about_dialog (GtkWidget *widget, gpointer user_data)
|
||||||
{
|
{
|
||||||
@@ -132,6 +188,7 @@ xtm_settings_dialog_new (GtkBuilder *builder, GtkWidget *parent_window)
|
|||||||
builder_bind_toggle_button (builder, "button-more-precision", settings, "more-precision");
|
builder_bind_toggle_button (builder, "button-more-precision", settings, "more-precision");
|
||||||
builder_bind_toggle_button (builder, "button-process-tree", settings, "process-tree");
|
builder_bind_toggle_button (builder, "button-process-tree", settings, "process-tree");
|
||||||
builder_bind_toggle_button (builder, "button-show-legend", settings, "show-legend");
|
builder_bind_toggle_button (builder, "button-show-legend", settings, "show-legend");
|
||||||
|
builder_bind_combobox (builder, settings);
|
||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
builder_bind_toggle_button (builder, "button-prompt-terminate-task", settings, "prompt-terminate-task");
|
builder_bind_toggle_button (builder, "button-prompt-terminate-task", settings, "prompt-terminate-task");
|
||||||
builder_bind_toggle_button (builder, "button-show-status-icon", settings, "show-status-icon");
|
builder_bind_toggle_button (builder, "button-show-status-icon", settings, "show-status-icon");
|
||||||
|
|||||||
@@ -18,11 +18,37 @@
|
|||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="icon_name">window-close-symbolic</property>
|
<property name="icon_name">window-close-symbolic</property>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="GtkListStore" id="liststore1">
|
||||||
|
<columns>
|
||||||
|
<!-- column-name rate -->
|
||||||
|
<column type="gint"/>
|
||||||
|
</columns>
|
||||||
|
<data>
|
||||||
|
<row>
|
||||||
|
<col id="0">500</col>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<col id="0">750</col>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<col id="0">1000</col>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<col id="0">2000</col>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<col id="0">5000</col>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<col id="0">10000</col>
|
||||||
|
</row>
|
||||||
|
</data>
|
||||||
|
</object>
|
||||||
<object class="XfceTitledDialog" id="settings-dialog">
|
<object class="XfceTitledDialog" id="settings-dialog">
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="title" translatable="yes">Task Manager Settings</property>
|
<property name="title" translatable="yes">Task Manager Settings</property>
|
||||||
<property name="icon_name">org.xfce.taskmanager</property>
|
<property name="icon_name">org.xfce.taskmanager</property>
|
||||||
<property name="type_hint">dialog</property>
|
<property name="type_hint">normal</property>
|
||||||
<child internal-child="vbox">
|
<child internal-child="vbox">
|
||||||
<object class="GtkBox">
|
<object class="GtkBox">
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
@@ -213,6 +239,13 @@
|
|||||||
<object class="GtkComboBox" id="combobox-refresh-rate">
|
<object class="GtkComboBox" id="combobox-refresh-rate">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
|
<property name="model">liststore1</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkCellRendererText" id="cellrenderertext1"/>
|
||||||
|
<attributes>
|
||||||
|
<attribute name="text">0</attribute>
|
||||||
|
</attributes>
|
||||||
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
|
|||||||
Reference in New Issue
Block a user