X-Git-Url: https://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fui.c;h=acfa2b6b62766bc9b420c96a3dd3ed6deeecb142;hb=0136d7d490c7766920f0b46dc3b2b15a0f988c5f;hp=78262bdaac1e724f354f80b3d1325b14f3849093;hpb=59e486b34640f81c905e832c7cc4a1b8a9a8e6f4;p=ptask.git diff --git a/src/ui.c b/src/ui.c index 78262bd..acfa2b6 100644 --- a/src/ui.c +++ b/src/ui.c @@ -16,14 +16,22 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301 USA */ +#include + +#include #include #include #include #include +#include #include static GtkComboBox *w_status; +static GSettings *gsettings; +static GtkWindow *window; +static GtkPaned *vpaned; +static GtkPaned *hpaned; int newtask_clicked_cbk(GtkButton *btn, gpointer data) { @@ -34,18 +42,24 @@ int newtask_clicked_cbk(GtkButton *btn, gpointer data) static void save_settings(GtkWindow *window, GSettings *settings) { - int w, h, x, y; + int w, h, x, y, pos; gtk_window_get_size(window, &w, &h); gtk_window_get_position(window, &x, &y); - log_debug("save_settings(): x=%d, y=%d, w=%d, h=%d", x, y, w, h); + log_fct("x=%d, y=%d, w=%d, h=%d", x, y, w, h); g_settings_set_int(settings, "window-width", w); g_settings_set_int(settings, "window-height", h); g_settings_set_int(settings, "window-x", x); g_settings_set_int(settings, "window-y", y); + pos = gtk_paned_get_position(vpaned); + g_settings_set_int(settings, "spliter-vertical-pos", pos); + + pos = gtk_paned_get_position(hpaned); + g_settings_set_int(settings, "spliter-horizontal-pos", pos); + ui_tasktree_save_settings(settings); g_settings_sync(); @@ -60,13 +74,18 @@ int refresh_clicked_cbk(GtkButton *btn, gpointer data) } +static void ui_quit() +{ + save_settings(window, gsettings); + gtk_widget_destroy(GTK_WIDGET(window)); + gtk_main_quit(); +} + static gboolean delete_event_cbk(GtkWidget *w, GdkEvent *evt, gpointer data) { log_fct_enter(); - save_settings(GTK_WINDOW(w), (GSettings *)data); - gtk_widget_destroy(w); - gtk_main_quit(); + ui_quit(); log_fct_exit(); @@ -75,16 +94,20 @@ static gboolean delete_event_cbk(GtkWidget *w, GdkEvent *evt, gpointer data) static int status_changed_cbk(GtkComboBox *w, gpointer data) { - log_debug("status_changed_cbk"); + log_fct_enter(); + refresh(); + log_fct_exit(); + return FALSE; } GtkWindow *create_window(GtkBuilder *builder, GSettings *settings) { - GtkWindow *window; - int x, y, w, h; + int x, y, w, h, pos; + + gsettings = settings; window = GTK_WINDOW(gtk_builder_get_object(builder, "window")); @@ -101,9 +124,18 @@ GtkWindow *create_window(GtkBuilder *builder, GSettings *settings) y = g_settings_get_int(settings, "window-y"); gtk_window_move(window, x, y); + vpaned = GTK_PANED(gtk_builder_get_object(builder, "vpaned")); + pos = g_settings_get_int(settings, "spliter-vertical-pos"); + gtk_paned_set_position(vpaned, pos); + + hpaned = GTK_PANED(gtk_builder_get_object(builder, "hpaned")); + pos = g_settings_get_int(settings, "spliter-horizontal-pos"); + gtk_paned_set_position(hpaned, pos); + g_signal_connect(window, "delete_event", G_CALLBACK(delete_event_cbk), settings); + ui_taskpanel_init(builder); ui_tasktree_init(builder); ui_projecttree_init(builder); @@ -114,20 +146,42 @@ GtkWindow *create_window(GtkBuilder *builder, GSettings *settings) const char *ui_get_status_filter() { - const char *result; - int status; + const char *status; log_fct_enter(); - status = gtk_combo_box_get_active(w_status); - log_fct(__func__, "status: %d", status); + status = gtk_combo_box_get_active_id(w_status); + log_fct("status: %d", status); - if (status == 1) - result = "completed"; - else - result = "pending"; + log_fct_exit(); + return status; +} + +void quit_activate_cbk(GtkWidget *menu_item, gpointer data) +{ + log_fct_enter(); + ui_quit(); log_fct_exit(); +} + +void about_activate_cbk(GtkWidget *menu_item, gpointer data) +{ + log_fct_enter(); + + gtk_show_about_dialog + (NULL, + "comments", + _("ptask is a GTK+ task management application"), + "copyright", + _("Copyright(c) 2010-2013\njeanfi@gmail.com"), + "logo-icon-name", "ptask", + "program-name", "ptask", + "title", _("About ptask"), + "version", VERSION, + "website", PACKAGE_URL, + "website-label", _("ptask Homepage"), + NULL); - return result; + log_fct_exit(); }