From 7fc36675c9cf3d87f388d4fbe06e3eb4c2b0ae6b Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Sun, 12 Apr 2009 22:11:23 +0000 Subject: [PATCH] Working on the preferences window --- src/callbacks.c | 14 +++++++++++++- src/surfer.c | 24 ++++++++++++++++++++++-- src/surfer.h | 6 ++++++ 3 files changed, 41 insertions(+), 3 deletions(-) diff --git a/src/callbacks.c b/src/callbacks.c index e100a22..77b3135 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -103,6 +103,7 @@ void on_edit_preferences(GtkWidget * widget, gpointer data) Surfer * surfer = data; GtkWidget * vbox; GtkWidget * notebook; + GtkWidget * page; GtkWidget * hbox; if(surfer->pr_window != NULL) @@ -122,7 +123,17 @@ void on_edit_preferences(GtkWidget * widget, gpointer data) vbox = gtk_vbox_new(FALSE, 0); /* notebook */ notebook = gtk_notebook_new(); - gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 4); + /* general */ + page = gtk_vbox_new(FALSE, 0); + hbox = gtk_hbox_new(FALSE, 4); + widget = gtk_label_new("Homepage:"); + gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0); + surfer->pr_homepage = gtk_entry_new(); + gtk_box_pack_start(GTK_BOX(hbox), surfer->pr_homepage, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(page), hbox, TRUE, TRUE, 0); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), page, + gtk_label_new("General")); + gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 0); /* separator */ hbox = gtk_hbox_new(FALSE, 0); widget = gtk_hseparator_new(); @@ -172,6 +183,7 @@ static void _preferences_on_ok(GtkWidget * widget, gpointer data) gtk_widget_hide(surfer->pr_window); /* FIXME implement */ + surfer_config_save(surfer); } diff --git a/src/surfer.c b/src/surfer.c index 97cc638..98b4d8c 100644 --- a/src/surfer.c +++ b/src/surfer.c @@ -132,9 +132,13 @@ Surfer * surfer_new(char const * url) if((surfer = malloc(sizeof(*surfer))) == NULL) return NULL; + surfer->config = config_new(); surfer->url = NULL; - if(url != NULL && (surfer->url = strdup(url)) == NULL) + if(surfer->config == NULL + || (url != NULL && (surfer->url = strdup(url)) == NULL)) { + if(surfer->config != NULL) + config_delete(surfer->config); free(surfer); return NULL; } @@ -333,7 +337,7 @@ Surfer * surfer_new_copy(Surfer * surfer) /* surfer_delete */ void surfer_delete(Surfer * surfer) { - /* config_delete(surfer->config); */ + config_delete(surfer->config); free(surfer->url); free(surfer); surfer_cnt--; @@ -427,6 +431,22 @@ void surfer_set_title(Surfer * surfer, char const * title) /* useful */ +/* surfer_config_load */ +int surfer_config_load(Surfer * surfer) +{ + /* FIXME implement */ + return 0; +} + + +/* surfer_config_save */ +int surfer_config_save(Surfer * surfer) +{ + /* FIXME implement */ + return 0; +} + + /* surfer_confirm */ int surfer_confirm(Surfer * surfer, char const * message) { diff --git a/src/surfer.h b/src/surfer.h index 6a920c0..4835eff 100644 --- a/src/surfer.h +++ b/src/surfer.h @@ -18,6 +18,7 @@ #ifndef SURFER_SURFER_H # define SURFER_SURFER_H +# include # include @@ -41,6 +42,7 @@ /* types */ typedef struct _Surfer { + Config * config; char * url; /* widgets */ @@ -63,6 +65,7 @@ typedef struct _Surfer /* preferences */ GtkWidget * pr_window; + GtkWidget * pr_homepage; } Surfer; @@ -85,6 +88,9 @@ void surfer_set_title(Surfer * surfer, char const * title); /* useful */ +int surfer_config_load(Surfer * surfer); +int surfer_config_save(Surfer * surfer); + int surfer_confirm(Surfer * surfer, char const * message); int surfer_error(Surfer * surfer, char const * message, int ret); void surfer_warning(Surfer * surfer, char const * message);