X-Git-Url: http://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fui.c;h=6be3e32b1dec55098ad9671fd06095dcdb99f92c;hb=781a99f9dbdf4aa086c7d33392f7201d5f731ed2;hp=a63288b1d3bf8720f0ec6c1754b95a37495a8234;hpb=d37e36f01c84be3675a9930c58b1cedd96ee5ec3;p=ptask.git diff --git a/src/ui.c b/src/ui.c index a63288b..6be3e32 100644 --- a/src/ui.c +++ b/src/ui.c @@ -16,9 +16,27 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301 USA */ +#include + +#include #include #include +#include +#include +#include + +static GtkComboBox *w_status; +static GSettings *gsettings; +static GtkWindow *window; + + +int newtask_clicked_cbk(GtkButton *btn, gpointer data) +{ + ui_newtask(); + + return FALSE; +} static void save_settings(GtkWindow *window, GSettings *settings) { @@ -34,38 +52,116 @@ static void save_settings(GtkWindow *window, GSettings *settings) g_settings_set_int(settings, "window-x", x); g_settings_set_int(settings, "window-y", y); + ui_tasktree_save_settings(settings); + g_settings_sync(); } -static gboolean delete_event_cbk(GtkWidget *w, GdkEvent *evt, gpointer data) +int refresh_clicked_cbk(GtkButton *btn, gpointer data) { - log_debug("delete_event_cbk"); + log_fct_enter(); + refresh(); + log_fct_exit(); + return FALSE; +} + - save_settings(GTK_WINDOW(w), (GSettings *)data); - gtk_widget_destroy(w); +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(); + + ui_quit(); + + log_fct_exit(); return TRUE; } +static int status_changed_cbk(GtkComboBox *w, gpointer data) +{ + log_debug("status_changed_cbk"); + refresh(); + + return FALSE; +} + GtkWindow *create_window(GtkBuilder *builder, GSettings *settings) { - GtkWindow *window; - int x, y, h, w; + int x, y, w, h; + + gsettings = settings; window = GTK_WINDOW(gtk_builder_get_object(builder, "window")); - x = g_settings_get_int(settings, "window-x"); - y = g_settings_get_int(settings, "window-y"); + w_status = GTK_COMBO_BOX(gtk_builder_get_object(builder, "status")); + g_signal_connect(w_status, + "changed", (GCallback)status_changed_cbk, + NULL); + w = g_settings_get_int(settings, "window-width"); h = g_settings_get_int(settings, "window-height"); - gtk_window_set_default_size(window, w, h); + + x = g_settings_get_int(settings, "window-x"); + y = g_settings_get_int(settings, "window-y"); gtk_window_move(window, x, y); g_signal_connect(window, "delete_event", G_CALLBACK(delete_event_cbk), settings); + ui_tasktree_init(builder); + ui_projecttree_init(builder); + + ui_tasktree_load_settings(settings); + return window; } +const char *ui_get_status_filter() +{ + const char *status; + + log_fct_enter(); + + status = gtk_combo_box_get_active_id(w_status); + log_fct("status: %d", status); + + 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); + + log_fct_exit(); +}