aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemsen2010-10-20 22:37:54 +0200
committerGravatar Tom Willemsen2010-10-20 22:37:54 +0200
commit10901f7dcb422cf80cfcdce2db7efad5f9197619 (patch)
tree61c8d86bf29f34be05d6e61709b486ffc5433081
parent6628dddb27012b962160eae8fb9feaeeab6a4fcb (diff)
downloadeye-on-manga-10901f7dcb422cf80cfcdce2db7efad5f9197619.tar.gz
eye-on-manga-10901f7dcb422cf80cfcdce2db7efad5f9197619.zip
Edit window
-rw-r--r--src/Makefile1
-rw-r--r--src/c-edit-window.c83
-rw-r--r--src/c-edit-window.h53
-rw-r--r--src/c-main-window.c24
-rw-r--r--src/interface.c13
5 files changed, 174 insertions, 0 deletions
diff --git a/src/Makefile b/src/Makefile
index 895314b..fdd6c2d 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -5,6 +5,7 @@ all:
collections.c \
interface.c \
c-main-window.c \
+ c-edit-window.c \
c-new-item-dialog.c \
data.c \
$(CFLAGS) \
diff --git a/src/c-edit-window.c b/src/c-edit-window.c
new file mode 100644
index 0000000..488a5f3
--- /dev/null
+++ b/src/c-edit-window.c
@@ -0,0 +1,83 @@
+#include "c-edit-window.h"
+#include <hildon/hildon.h>
+#include "data.h"
+
+G_DEFINE_TYPE(CEditWindow, c_edit_window, HILDON_TYPE_STACKABLE_WINDOW)
+
+GtkWidget *c_edit_window_new(void)
+{
+ return g_object_new(C_TYPE_EDIT_WINDOW, NULL);
+}
+
+static void c_edit_window_class_init(CEditWindowClass *class)
+{}
+
+static void c_edit_window_init(CEditWindow *self)
+{
+ GtkWidget *pannablearea;
+ GtkWidget *table;
+ GtkWidget *nameclabel;
+ GtkWidget *namelabel;
+ GtkWidget *haveclabel;
+ GtkWidget *havelabel;
+ GtkWidget *totalclabel;
+ GtkWidget *totallabel;
+ GtkWidget *layout;
+ int i;
+ struct collection test = { 0, 3, 10, "Biomega" };
+
+ pannablearea = hildon_pannable_area_new();
+ g_object_set(G_OBJECT(pannablearea),
+ "mov-mode", HILDON_MOVEMENT_MODE_VERT,
+ NULL);
+ gtk_container_add(GTK_CONTAINER(self), pannablearea);
+
+ table = gtk_table_new(4, 2, FALSE);
+ hildon_pannable_area_add_with_viewport(HILDON_PANNABLE_AREA(pannablearea),
+ table);
+
+ nameclabel = gtk_label_new("Name:");
+ gtk_misc_set_alignment(GTK_MISC(nameclabel), 0.0, 0.5);
+ gtk_table_attach(GTK_TABLE(table), nameclabel, 0, 1, 0, 1,
+ GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
+
+ namelabel = gtk_label_new(test.name);
+ gtk_misc_set_alignment(GTK_MISC(namelabel), 1.0, 0.5);
+ gtk_table_attach(GTK_TABLE(table), namelabel, 1, 2, 0, 1,
+ GTK_EXPAND | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
+
+ haveclabel = gtk_label_new("You have:");
+ gtk_misc_set_alignment(GTK_MISC(haveclabel), 0.0, 0.5);
+ gtk_table_attach(GTK_TABLE(table), haveclabel, 0, 1, 1, 2,
+ GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
+
+ havelabel = gtk_label_new(g_strdup_printf("%d", test.current_qty));
+ gtk_misc_set_alignment(GTK_MISC(havelabel), 1.0, 0.5);
+ gtk_table_attach(GTK_TABLE(table), havelabel, 1, 2, 1, 2,
+ GTK_EXPAND | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
+
+ totalclabel = gtk_label_new("There are:");
+ gtk_misc_set_alignment(GTK_MISC(totalclabel), 0.0, 0.5);
+ gtk_table_attach(GTK_TABLE(table), totalclabel, 0, 1, 2, 3,
+ GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
+
+ totallabel = gtk_label_new((test.total_qty == 0)
+ ? "?"
+ : g_strdup_printf("%d", test.total_qty));
+ gtk_misc_set_alignment(GTK_MISC(totallabel), 1.0, 0.5);
+ gtk_table_attach(GTK_TABLE(table), totallabel, 1, 2, 2, 3,
+ GTK_EXPAND | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
+
+ /*layout = gtk_layout_new(NULL, NULL);
+ gtk_table_attach(GTK_TABLE(table), layout, 0, 2, 3, 4,
+ GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
+
+ for (i = 0; i < test.total_qty; i++) {
+ GtkWidget *button;
+
+ button = hildon_check_button_new(HILDON_SIZE_FINGER_HEIGHT |
+ HILDON_SIZE_AUTO_WIDTH);
+ gtk_button_set_label(GTK_BUTTON(button), g_strdup_printf("%d", i));
+
+ }*/
+}
diff --git a/src/c-edit-window.h b/src/c-edit-window.h
new file mode 100644
index 0000000..e017841
--- /dev/null
+++ b/src/c-edit-window.h
@@ -0,0 +1,53 @@
+#ifndef __C_EDIT_WINDOW_H__
+#define __C_EDIT_WINDOW_H__
+
+#include <hildon/hildon-stackable-window.h>
+
+G_BEGIN_DECLS
+
+#define C_TYPE_EDIT_WINDOW \
+ (c_edit_window_get_type())
+
+#define C_EDIT_WINDOW(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
+ C_TYPE_EDIT_WINDOW, \
+ CEditWindow))
+
+#define C_EDIT_WINDOW_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), \
+ C_TYPE_EDIT_WINDOW, \
+ CEditWindowClass))
+
+#define C_IS_EDIT_WINDOW(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
+ C_TYPE_EDIT_WINDOW))
+
+#define C_IS_EDIT_WINDOW_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), \
+ C_TYPE_EDIT_WINDOW))
+
+#define C_EDIT_WINDOW_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), \
+ C_TYPE_EDIT_WINDOW, \
+ CEditWindowClass))
+
+typedef struct _CEditWindow CEditWindow;
+typedef struct _CEditWindowClass CEditWindowClass;
+
+struct _CEditWindowClass
+{
+ HildonStackableWindowClass parent_class;
+};
+
+struct _CEditWindow
+{
+ HildonStackableWindow parent;
+};
+
+GType c_edit_window_get_type(void);
+
+GtkWidget *c_edit_window_new(void);
+
+G_END_DECLS
+
+#endif /* __C_EDIT_WINDOW_H__ */
diff --git a/src/c-main-window.c b/src/c-main-window.c
index 43d4f86..e1487dc 100644
--- a/src/c-main-window.c
+++ b/src/c-main-window.c
@@ -24,6 +24,8 @@ static void c_main_window_on_selection_changed(GtkTreeSelection *selection,
static void c_main_window_on_add_clicked(GtkWidget *widget, gpointer user_data);
static void c_main_window_on_remove_clicked(GtkWidget *widget,
gpointer user_data);
+static void c_main_window_on_edit_clicked(GtkWidget *widget,
+ gpointer user_data);
GtkWidget *c_main_window_new(void)
{
@@ -175,6 +177,17 @@ static void c_main_window_init(CMainWindow *window)
(gpointer)window);
gtk_box_pack_start(GTK_BOX(hbuttonbox), window->add_button, FALSE, FALSE, 0);
+ window->edit_button =
+ hildon_button_new_with_text(HILDON_SIZE_AUTO_WIDTH |
+ HILDON_SIZE_FINGER_HEIGHT,
+ HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
+ "Edit",
+ NULL);
+ g_signal_connect(window->edit_button, "clicked",
+ G_CALLBACK(c_main_window_on_edit_clicked),
+ (gpointer)window);
+ gtk_box_pack_start(GTK_BOX(hbuttonbox), window->edit_button, FALSE, FALSE, 0);
+
window->remove_button =
hildon_button_new_with_text(HILDON_SIZE_AUTO_WIDTH |
HILDON_SIZE_FINGER_HEIGHT,
@@ -306,3 +319,14 @@ static void c_main_window_on_remove_clicked(GtkWidget *widget,
}
}
}
+
+static void c_main_window_on_edit_clicked(GtkWidget *widget,
+ gpointer user_data)
+{
+ CMainWindow *self;
+
+ self = (CMainWindow *)user_data;
+
+ /* TODO: Place more code here */
+ interface_show_edit_window();
+}
diff --git a/src/interface.c b/src/interface.c
index 2e54ecd..b22e65e 100644
--- a/src/interface.c
+++ b/src/interface.c
@@ -1,6 +1,7 @@
#include <hildon/hildon.h>
#include "interface.h"
#include "c-main-window.h"
+#include "c-edit-window.h"
#include "c-new-item-dialog.h"
#include "data.h"
@@ -14,6 +15,18 @@ void interface_show_main_window(void)
c_main_window_load(C_MAIN_WINDOW(window));
}
+void interface_show_edit_window(void)
+{
+ HildonWindowStack *stack;
+ GtkWidget *window;
+
+ stack = hildon_window_stack_get_default();
+
+ window = c_edit_window_new();
+ hildon_window_stack_push(stack, HILDON_STACKABLE_WINDOW(window), NULL);
+ gtk_widget_show_all(window);
+}
+
GtkWidget *interface_show_new_item_dialog(GtkWindow *window)
{
GtkWidget *dialog;