~tualatrix/ubuntu-tweak/ubuntu-packing

« back to all changes in this revision

Viewing changes to src/powermanager_page.c

  • Committer: tualatrix
  • Date: 2007-11-08 15:07:03 UTC
  • Revision ID: git-v1:8d117e376f9c8db00737c22904dccb48f7aac788
add the new sources of Ubuntu Tweak 0.2

git-svn-id: https://ubuntu-tweak.googlecode.com/svn/trunk@61 89e9d5ea-4437-0410-aedb-dd2c2f29ea1f

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifdef HAVE_CONFIG_H
 
2
#  include <config.h>
 
3
#endif
 
4
 
 
5
#include "ubuntu-tweak.h"
 
6
 
 
7
static gchar *powermanager_dir="/apps/gnome-power-manager";
 
8
static gchar *key_can_hibernate="/apps/gnome-power-manager/can_hibernate";
 
9
static gchar *key_can_suspend="/apps/gnome-power-manager/can_suspend";
 
10
static gchar *key_show_cpufreq_ui="/apps/gnome-power-manager/show_cpufreq_ui";
 
11
static gchar *key_cpufreq_ac_policy="/apps/gnome-power-manager/cpufreq_ac_policy";
 
12
static gchar *key_cpufreq_battery_policy="/apps/gnome-power-manager/cpufreq_battery_policy";
 
13
static gchar *key_display_icon_policy="/apps/gnome-power-manager/display_icon_policy";
 
14
 
 
15
void powermanager_changed(GtkWidget *widget,gpointer data)
 
16
{
 
17
        gchar *str;
 
18
        GConfClient *client;
 
19
 
 
20
        client=gconf_client_get_default();
 
21
        str=gtk_combo_box_get_active_text(GTK_COMBO_BOX(widget));
 
22
        if(!strcmp(str,"On Demand")){
 
23
                gconf_client_set_string(client,
 
24
                                        data,
 
25
                                        "ondemand",
 
26
                                        NULL);
 
27
        }
 
28
        else if(!strcmp(str,"Power Save")){
 
29
                gconf_client_set_string(client,
 
30
                                data,
 
31
                                "powersave",
 
32
                                NULL);
 
33
        }
 
34
        else if(!strcmp(str,"Performance")){
 
35
                gconf_client_set_string(client,
 
36
                                data,
 
37
                                "performance",
 
38
                                NULL);
 
39
        }
 
40
        else if(!strcmp(str,"Never display")){
 
41
                gconf_client_set_string(client,
 
42
                                data,
 
43
                                "never",
 
44
                                NULL);
 
45
        }
 
46
        else if(!strcmp(str,"Only when using battery charge")){
 
47
                gconf_client_set_string(client,
 
48
                                data,
 
49
                                "charge",
 
50
                                NULL);
 
51
        }
 
52
        else if(!strcmp(str,"Always display")){
 
53
                gconf_client_set_string(client,
 
54
                                data,
 
55
                                "always",
 
56
                                NULL);
 
57
        }
 
58
        g_free(str);
 
59
}
 
60
 
 
61
GtkWidget *create_powermanager_page()
 
62
{
 
63
        GtkWidget *main_vbox;
 
64
        GtkWidget *vbox;
 
65
        GtkWidget *hbox;
 
66
        GtkWidget *label;
 
67
        GtkWidget *checkbutton;
 
68
        GtkWidget *combobox;
 
69
 
 
70
        GConfClient *client;
 
71
        client=gconf_client_get_default();
 
72
 
 
73
        main_vbox=gtk_vbox_new(FALSE,5);
 
74
        gtk_widget_show(main_vbox);
 
75
        gtk_container_set_border_width(GTK_CONTAINER(main_vbox),5);
 
76
 
 
77
        label=gtk_label_new(NULL);
 
78
        gtk_label_set_markup(GTK_LABEL(label),_("<b>Advanced Power Management Settings</b>"));
 
79
        gtk_misc_set_alignment(GTK_MISC(label),0,0);
 
80
        gtk_widget_show(label);
 
81
        gtk_box_pack_start(GTK_BOX(main_vbox),label,FALSE,FALSE,0);
 
82
 
 
83
        hbox=gtk_hbox_new(FALSE,5);
 
84
        gtk_widget_show(hbox);
 
85
        gtk_box_pack_start(GTK_BOX(main_vbox),hbox,FALSE,FALSE,0);
 
86
 
 
87
        label=gtk_label_new(" ");
 
88
        gtk_widget_show(label);
 
89
        gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);
 
90
 
 
91
        vbox=gtk_vbox_new(FALSE,5);
 
92
        gtk_widget_show(vbox);
 
93
        gtk_box_pack_start(GTK_BOX(hbox),vbox,FALSE,FALSE,0);
 
94
 
 
95
        checkbutton=ut_checkbutton_new_with_gconf(_("Enable Hibernation"),key_can_hibernate,powermanager_dir,ut_checkbutton_toggled,NULL);
 
96
        gtk_widget_show(checkbutton);
 
97
        gtk_box_pack_start(GTK_BOX(vbox),checkbutton,FALSE,FALSE,0);
 
98
 
 
99
        checkbutton=ut_checkbutton_new_with_gconf(_("Enable Suspend"),key_can_suspend,powermanager_dir,ut_checkbutton_toggled,NULL);
 
100
        gtk_widget_show(checkbutton);
 
101
        gtk_box_pack_start(GTK_BOX(vbox),checkbutton,FALSE,FALSE,0);
 
102
 
 
103
        checkbutton=ut_checkbutton_new_with_gconf(_("Show CPU frequency option in \"System - Preferences - Power Management\""),key_show_cpufreq_ui,powermanager_dir,ut_checkbutton_toggled,NULL);
 
104
        gtk_widget_show(checkbutton);
 
105
        gtk_box_pack_start(GTK_BOX(vbox),checkbutton,FALSE,FALSE,0);
 
106
 
 
107
/*通知区域图标的显示行为*/
 
108
 
 
109
        hbox=gtk_hbox_new(FALSE,10);
 
110
        gtk_widget_show(hbox);
 
111
        gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0);
 
112
 
 
113
        label=gtk_label_new(_("\"Notification Area\" Power Management icon"));
 
114
        gtk_widget_show(label);
 
115
        gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);
 
116
 
 
117
        combobox=gtk_combo_box_new_text();
 
118
        gtk_widget_show(combobox);
 
119
        gtk_box_pack_end(GTK_BOX(hbox),combobox,FALSE,FALSE,0);
 
120
 
 
121
        g_signal_connect(G_OBJECT(combobox),"changed",G_CALLBACK(powermanager_changed),key_display_icon_policy);
 
122
 
 
123
        gtk_combo_box_append_text(GTK_COMBO_BOX(combobox),_("Never display"));
 
124
        gtk_combo_box_append_text(GTK_COMBO_BOX(combobox),_("Only when using battery charge"));
 
125
        gtk_combo_box_append_text(GTK_COMBO_BOX(combobox),_("Always display"));
 
126
 
 
127
        if(!g_ascii_strncasecmp(gconf_client_get_string(client,key_display_icon_policy,NULL),"never",5)){
 
128
                gtk_combo_box_set_active(GTK_COMBO_BOX(combobox),0);
 
129
        }
 
130
        else if(!g_ascii_strncasecmp(gconf_client_get_string(client,key_display_icon_policy,NULL),"charge",6)){
 
131
                gtk_combo_box_set_active(GTK_COMBO_BOX(combobox),1);
 
132
        }
 
133
        else if(!g_ascii_strncasecmp(gconf_client_get_string(client,key_display_icon_policy,NULL),"always",6)){
 
134
                gtk_combo_box_set_active(GTK_COMBO_BOX(combobox),2);
 
135
        }
 
136
 
 
137
/*当使用交流电时,CPU的使用策略*/
 
138
        hbox=gtk_hbox_new(FALSE,10);
 
139
        gtk_widget_show(hbox);
 
140
        gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0);
 
141
 
 
142
        label=gtk_label_new(_("When using AC power, CPU frequency policy is:"));
 
143
        gtk_widget_show(label);
 
144
        gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);
 
145
 
 
146
        combobox=gtk_combo_box_new_text();
 
147
        gtk_widget_show(combobox);
 
148
        gtk_box_pack_end(GTK_BOX(hbox),combobox,FALSE,FALSE,0);
 
149
 
 
150
        g_signal_connect(G_OBJECT(combobox),"changed",G_CALLBACK(powermanager_changed),key_cpufreq_ac_policy);
 
151
 
 
152
        gtk_combo_box_append_text(GTK_COMBO_BOX(combobox),_("On Demand"));
 
153
        gtk_combo_box_append_text(GTK_COMBO_BOX(combobox),_("Power Save"));
 
154
        gtk_combo_box_append_text(GTK_COMBO_BOX(combobox),_("Performance"));
 
155
 
 
156
        if(!g_ascii_strncasecmp(gconf_client_get_string(client,key_cpufreq_ac_policy,NULL),"ondemand",8)){
 
157
                gtk_combo_box_set_active(GTK_COMBO_BOX(combobox),0);
 
158
        }
 
159
        else if(!g_ascii_strncasecmp(gconf_client_get_string(client,key_cpufreq_ac_policy,NULL),"powersave",9)){
 
160
                gtk_combo_box_set_active(GTK_COMBO_BOX(combobox),1);
 
161
        }
 
162
        else if(!g_ascii_strncasecmp(gconf_client_get_string(client,key_cpufreq_ac_policy,NULL),"performance",9)){
 
163
                gtk_combo_box_set_active(GTK_COMBO_BOX(combobox),2);
 
164
        }
 
165
 
 
166
/*当使用电池时,CPU的使用策略*/
 
167
        hbox=gtk_hbox_new(FALSE,10);
 
168
        gtk_widget_show(hbox);
 
169
        gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0);
 
170
 
 
171
        label=gtk_label_new(_("When using Battery power, CPU frequency policy is:"));
 
172
        gtk_widget_show(label);
 
173
        gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);
 
174
 
 
175
        combobox=gtk_combo_box_new_text();
 
176
        gtk_widget_show(combobox);
 
177
        gtk_box_pack_end(GTK_BOX(hbox),combobox,FALSE,FALSE,0);
 
178
 
 
179
        g_signal_connect(G_OBJECT(combobox),"changed",G_CALLBACK(powermanager_changed),key_cpufreq_battery_policy);
 
180
 
 
181
        gtk_combo_box_append_text(GTK_COMBO_BOX(combobox),_("On Demand"));
 
182
        gtk_combo_box_append_text(GTK_COMBO_BOX(combobox),_("Power Save"));
 
183
        gtk_combo_box_append_text(GTK_COMBO_BOX(combobox),_("Performance"));
 
184
 
 
185
        if(!g_ascii_strncasecmp(gconf_client_get_string(client,key_cpufreq_battery_policy,NULL),"ondemand",8)){
 
186
                gtk_combo_box_set_active(GTK_COMBO_BOX(combobox),0);
 
187
        }
 
188
        else if(!g_ascii_strncasecmp(gconf_client_get_string(client,key_cpufreq_battery_policy,NULL),"powersave",9)){
 
189
                gtk_combo_box_set_active(GTK_COMBO_BOX(combobox),1);
 
190
        }
 
191
        else if(!g_ascii_strncasecmp(gconf_client_get_string(client,key_cpufreq_battery_policy,NULL),"performance",9)){
 
192
                gtk_combo_box_set_active(GTK_COMBO_BOX(combobox),2);
 
193
        }
 
194
/*expander
 
195
        expander_powermanager=gtk_expander_new_with_mnemonic(_("Need some help? Click here!"));
 
196
        gtk_widget_show(expander_powermanager);
 
197
        g_signal_connect(G_OBJECT(expander_powermanager),"activate",G_CALLBACK(expander_change_powermanager),NULL);
 
198
        gtk_box_pack_end(GTK_BOX(main_vbox),expander_powermanager,FALSE,FALSE,0);
 
199
 
 
200
        expert_box_powermanager=gtk_vbox_new(FALSE,0);
 
201
        gtk_widget_set_size_request(GTK_WIDGET(expert_box_powermanager),200,100);
 
202
        gtk_widget_show(expert_box_powermanager);
 
203
        gtk_container_add(GTK_CONTAINER(expander_powermanager),expert_box_powermanager);*/
 
204
 
 
205
        return main_vbox; 
 
206
}