X-Git-Url: http://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fui.c;h=4eeb4f293223686eeac29fc7fc819ff68c530c96;hb=70cd5dc1dcd5c75c98494807f5e4775260212ff6;hp=8567d4ffa934c4fcd302e56258c6bf5992eb2aa7;hpb=98da9e03d15320c6a0d685c0088ca69748433628;p=ptask.git diff --git a/src/ui.c b/src/ui.c index 8567d4f..4eeb4f2 100644 --- a/src/ui.c +++ b/src/ui.c @@ -17,9 +17,111 @@ * 02110-1301 USA */ +#include #include +#include +#include +#include -GtkWindow *create_window() +static GtkComboBox *w_status; + +int newtask_clicked_cbk(GtkButton *btn, gpointer data) +{ + ui_newtask(); + + return FALSE; +} + +static void save_settings(GtkWindow *window, GSettings *settings) +{ + int w, h, x, y; + + 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); + + 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); + + ui_tasktree_save_settings(settings); + + g_settings_sync(); +} + +int refresh_clicked_cbk(GtkButton *btn, gpointer data) +{ + log_fct_enter(); + refresh(); + log_fct_exit(); + return FALSE; +} + + +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(); + + 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) { - return NULL; + GtkWindow *window; + int x, y, w, h; + + window = GTK_WINDOW(gtk_builder_get_object(builder, "window")); + + 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; }