X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=settings-dialog.cc;h=58b4acbc5c320d1b918754867f40162d41ee2754;hb=99952fa17de25644d931217d7998e94adc1bbaf9;hp=8646bf8abf2da99ee5ab5482f2aed29f2f092a57;hpb=3cad82463699272a1b77d4ef3a4ef38a24e43881;p=simple-launcher diff --git a/settings-dialog.cc b/settings-dialog.cc index 8646bf8..58b4acb 100644 --- a/settings-dialog.cc +++ b/settings-dialog.cc @@ -15,28 +15,65 @@ // this program; if not, write to the Free Software Foundation, Inc., 51 // Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +#include +#include +#include #include #include +#include #include "settings-dialog.h" +#define SL_APPLET_SETTINGS_ICON_SIZE 26 + +// FIXME: UGLY!!!! + inline void addPage(GtkNotebook *notebook, const std::string& name, GtkWidget *widget) { GtkWidget *label = gtk_label_new(name.c_str()); gtk_notebook_append_page(notebook, widget, label); } -SettingsDialog::SettingsDialog(GtkWindow *parent, int size, LauncherItems& items) : myList(size, items) { +inline GtkWidget *packItTogether(GtkBox *parent, GtkSizeGroup *group, const std::string& name, GtkWidget *content) { + GtkWidget *box = gtk_hbox_new(false, 0); + GtkWidget *label = gtk_label_new(name.c_str()); + + gtk_size_group_add_widget(group, label); + gtk_box_pack_start(GTK_BOX(box), label, true, true, 0); + gtk_box_pack_start(GTK_BOX(box), content, true, true, 0); + + gtk_box_pack_start(parent, box, false, false, 0); + + return box; +} + +inline GtkWidget *createUIPage() { + GtkSizeGroup *group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); + GtkWidget *vbox = gtk_vbox_new(true, 0); + + // packItTogether(group, "Button Size:", ); + packItTogether(GTK_BOX(vbox), group, "Transparent background:", gtk_check_button_new()); + packItTogether(GTK_BOX(vbox), group, "Show Infobanner:", gtk_check_button_new()); + + g_object_unref(G_OBJECT(group)); + + return vbox; +} + +SettingsDialog::SettingsDialog(GtkWindow *parent, LauncherItems& items) : myList(SL_APPLET_SETTINGS_ICON_SIZE, items) { myDialog = GTK_DIALOG(gtk_dialog_new_with_buttons("Launcher Settings", parent, (GtkDialogFlags)(GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT), "OK", GTK_RESPONSE_OK, "Cancel", GTK_RESPONSE_CANCEL, NULL)); GtkNotebook *notebook = GTK_NOTEBOOK(gtk_notebook_new()); gtk_container_add(GTK_CONTAINER(myDialog->vbox), GTK_WIDGET(notebook)); - // addPage(notebook, "UI", ...); + addPage(notebook, "UI", createUIPage()); addPage(notebook, "Items", myList.getWidget()); - gtk_widget_set_size_request(GTK_WIDGET(myDialog), 540, 257); + gtk_widget_set_size_request(GTK_WIDGET(myDialog), 540, 324); + + gtk_widget_show_all(GTK_WIDGET(notebook)); + gtk_notebook_set_current_page(notebook, 0); } SettingsDialog::~SettingsDialog() { @@ -44,5 +81,9 @@ SettingsDialog::~SettingsDialog() { } gint SettingsDialog::run() { + gtk_widget_show_all(GTK_WIDGET(myDialog)); + return gtk_dialog_run(myDialog); } + +// vim:ts=2:sw=2:et