| 36 |
36 |
| 37 GtkWidget *idle_reporting; |
37 GtkWidget *idle_reporting; |
| 38 GtkWidget *mins_before_away; |
38 GtkWidget *mins_before_away; |
| 39 GtkWidget *idle_row; |
39 GtkWidget *idle_row; |
| 40 GtkWidget *away_when_idle; |
40 GtkWidget *away_when_idle; |
| 41 GtkWidget *auto_reply; |
|
| 42 GtkWidget *startup_current_status; |
41 GtkWidget *startup_current_status; |
| 43 GtkWidget *startup_row; |
42 GtkWidget *startup_row; |
| 44 }; |
43 }; |
| 45 |
44 |
| 46 G_DEFINE_TYPE(PidginAwayPrefs, pidgin_away_prefs, ADW_TYPE_PREFERENCES_PAGE) |
45 G_DEFINE_TYPE(PidginAwayPrefs, pidgin_away_prefs, ADW_TYPE_PREFERENCES_PAGE) |
| 71 { |
70 { |
| 72 purple_prefs_set_int("/purple/savedstatus/idleaway", |
71 purple_prefs_set_int("/purple/savedstatus/idleaway", |
| 73 purple_savedstatus_get_creation_time(status)); |
72 purple_savedstatus_get_creation_time(status)); |
| 74 } |
73 } |
| 75 |
74 |
| 76 static gchar * |
|
| 77 auto_reply_expression_cb(GObject *self, G_GNUC_UNUSED gpointer data) |
|
| 78 { |
|
| 79 const gchar *text = ""; |
|
| 80 const gchar *value = NULL; |
|
| 81 |
|
| 82 value = gtk_string_object_get_string(GTK_STRING_OBJECT(self)); |
|
| 83 if(purple_strequal(value, "never")) { |
|
| 84 text = _("Never"); |
|
| 85 } else if(purple_strequal(value, "away")) { |
|
| 86 text = _("When away"); |
|
| 87 } else if(purple_strequal(value, "awayidle")) { |
|
| 88 text = _("When both away and idle"); |
|
| 89 } |
|
| 90 |
|
| 91 return g_strdup(text); |
|
| 92 } |
|
| 93 |
|
| 94 static void |
75 static void |
| 95 set_startupstatus(PurpleSavedStatus *status) |
76 set_startupstatus(PurpleSavedStatus *status) |
| 96 { |
77 { |
| 97 purple_prefs_set_int("/purple/savedstatus/startup", |
78 purple_prefs_set_int("/purple/savedstatus/startup", |
| 98 purple_savedstatus_get_creation_time(status)); |
79 purple_savedstatus_get_creation_time(status)); |
| 119 mins_before_away); |
100 mins_before_away); |
| 120 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs, |
101 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs, |
| 121 away_when_idle); |
102 away_when_idle); |
| 122 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs, |
103 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs, |
| 123 idle_row); |
104 idle_row); |
| 124 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs, |
|
| 125 auto_reply); |
|
| 126 gtk_widget_class_bind_template_callback(widget_class, |
|
| 127 auto_reply_expression_cb); |
|
| 128 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs, |
105 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs, |
| 129 startup_current_status); |
106 startup_current_status); |
| 130 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs, |
107 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs, |
| 131 startup_row); |
108 startup_row); |
| 132 } |
109 } |
| 157 |
134 |
| 158 g_object_bind_property(prefs->away_when_idle, "active", |
135 g_object_bind_property(prefs->away_when_idle, "active", |
| 159 menu, "sensitive", |
136 menu, "sensitive", |
| 160 G_BINDING_SYNC_CREATE); |
137 G_BINDING_SYNC_CREATE); |
| 161 |
138 |
| 162 /* Away stuff */ |
|
| 163 pidgin_prefs_bind_combo_row("/purple/away/auto_reply", prefs->auto_reply); |
|
| 164 |
|
| 165 /* Signon status stuff */ |
139 /* Signon status stuff */ |
| 166 pidgin_prefs_bind_switch("/purple/savedstatus/startup_current_status", |
140 pidgin_prefs_bind_switch("/purple/savedstatus/startup_current_status", |
| 167 prefs->startup_current_status); |
141 prefs->startup_current_status); |
| 168 |
142 |
| 169 /* TODO: Show something useful if we don't have any saved statuses. */ |
143 /* TODO: Show something useful if we don't have any saved statuses. */ |