X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=gui%2Fcontrols.c;h=c597949f47b62a4612e6fa46b656d86aa1a25a05;hb=9b77386e312cced031d1e2e562aac94ec72ea9ab;hp=9face439220b96daadec73f7563d1e109a3263f4;hpb=3fdda1aa0655b9472e00bc34751475de6fa071ca;p=drnoksnes diff --git a/gui/controls.c b/gui/controls.c index 9face43..c597949 100644 --- a/gui/controls.c +++ b/gui/controls.c @@ -26,6 +26,7 @@ #if MAEMO_VERSION >= 5 #include #include +#include #endif #include "../platform/hgw.h" @@ -42,7 +43,11 @@ static GtkScrolledWindow* keys_scroll; #endif static GtkListStore* keys_store; static GtkTreeView* keys_list; -static GtkLabel* ts_label; +#if MAEMO_VERSION >= 5 +static HildonCheckButton* ts_show_check; +#else +static GtkCheckButton* ts_show_check; +#endif enum { @@ -92,7 +97,7 @@ static void show_widgets() gtk_widget_show_all(GTK_WIDGET(combo)); gtk_widget_hide_all(GTK_WIDGET(none_label)); gtk_widget_hide_all(GTK_WIDGET(keys_scroll)); - gtk_widget_hide_all(GTK_WIDGET(ts_label)); + gtk_widget_hide_all(GTK_WIDGET(ts_show_check)); switch (gtk_combo_box_get_active(combo)) { case 0: gtk_widget_show_all(GTK_WIDGET(none_label)); @@ -101,13 +106,13 @@ static void show_widgets() gtk_widget_show_all(GTK_WIDGET(keys_scroll)); break; case 2: // Touchscreen - gtk_widget_show_all(GTK_WIDGET(ts_label)); + gtk_widget_show_all(GTK_WIDGET(ts_show_check)); break; case 3: // Touchscreen + keys gtk_widget_show_all(GTK_WIDGET(keys_scroll)); + gtk_widget_show_all(GTK_WIDGET(ts_show_check)); break; case 4: // Mouse - gtk_widget_show_all(GTK_WIDGET(ts_label)); break; case 5: // Mouse + keys gtk_widget_show_all(GTK_WIDGET(keys_scroll)); @@ -147,6 +152,14 @@ static void load_config() gconf_client_preload(gcc, kGConfKeysPath, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); gtk_tree_model_foreach(GTK_TREE_MODEL(keys_store), load_key_config, NULL); + gboolean ts_show_active = + gconf_client_get_bool(gcc, kGConfDisplayControls, NULL); +#if MAEMO_VERSION >= 5 + hildon_check_button_set_active(ts_show_check, ts_show_active); +#else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ts_show_check), ts_show_active); +#endif + show_widgets(); gconf_value_free(mapping); } @@ -222,6 +235,17 @@ cb_key_cleared(GtkCellRendererText *cell, const char *path_string, button_entry->scancode = 0; } +static void cb_ts_show_toggled(void * widget, gpointer data) +{ + gboolean active; +#if MAEMO_VERSION >= 5 + active = hildon_check_button_get_active(ts_show_check); +#else + active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ts_show_check)); +#endif + gconf_client_set_bool(gcc, kGConfDisplayControls, active, NULL); +} + static void cb_combo_changed(GtkComboBox * widget, gpointer data) { show_widgets(); @@ -317,7 +341,15 @@ void controls_dialog(GtkWindow* parent) -1); } - ts_label = GTK_LABEL(gtk_label_new("Check layout somewhere else for now.")); +#if MAEMO_VERSION >= 5 + ts_show_check = + HILDON_CHECK_BUTTON(hildon_check_button_new( + HILDON_SIZE_FULLSCREEN_WIDTH | HILDON_SIZE_FINGER_HEIGHT)); + gtk_button_set_label(GTK_BUTTON(ts_show_check), "Show onscreen buttons"); +#else + ts_show_check = + GTK_CHECK_BUTTON(gtk_check_button_new_with_label("Show onscreen buttons")); +#endif #if MAEMO_VERSION >= 5 gtk_window_resize(GTK_WINDOW(dialog), 800, 380); @@ -329,7 +361,7 @@ void controls_dialog(GtkWindow* parent) gtk_container_add(GTK_CONTAINER(keys_scroll), GTK_WIDGET(keys_list)); gtk_box_pack_start_defaults(GTK_BOX(dialog->vbox), GTK_WIDGET(none_label)); gtk_box_pack_start_defaults(GTK_BOX(dialog->vbox), GTK_WIDGET(keys_scroll)); - gtk_box_pack_start_defaults(GTK_BOX(dialog->vbox), GTK_WIDGET(ts_label)); + gtk_box_pack_start(GTK_BOX(dialog->vbox), GTK_WIDGET(ts_show_check), FALSE, FALSE, 0); load_config(); @@ -341,6 +373,8 @@ void controls_dialog(GtkWindow* parent) G_CALLBACK(cb_key_edited), NULL); g_signal_connect(G_OBJECT(renderer), "accel_cleared", G_CALLBACK(cb_key_cleared), NULL); + g_signal_connect(G_OBJECT(ts_show_check), "toggled", + G_CALLBACK(cb_ts_show_toggled), NULL); gtk_widget_show(GTK_WIDGET(dialog)); }