From 3ec6b69dcc3bad3fce1a22e3c6b9572d83667fdf Mon Sep 17 00:00:00 2001 From: Andy Spencer Date: Sun, 22 Jun 2008 03:14:48 +0000 Subject: [PATCH] Adding tab area at the bottom for configuration --- Makefile.am | 3 +++ src/aweather.c | 16 +++++++++++++--- src/cube.c | 13 ++++++++++++- src/level2.c | 6 +++++- 4 files changed, 33 insertions(+), 5 deletions(-) diff --git a/Makefile.am b/Makefile.am index af437a6..76b4520 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1 +1,4 @@ SUBDIRS = src + +test: + ./src/aweather diff --git a/src/aweather.c b/src/aweather.c index 6680850..2de330b 100644 --- a/src/aweather.c +++ b/src/aweather.c @@ -38,6 +38,8 @@ int main(int argc, char *argv[]) /* Set up layout */ GtkWidget *vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(window), vbox); + GtkWidget *paned = gtk_vpaned_new(); + gtk_box_pack_end(GTK_BOX(vbox), paned, TRUE, TRUE, 0); /* Set up menu bar */ GtkWidget *menu = gtk_menu_bar_new(); @@ -52,14 +54,22 @@ int main(int argc, char *argv[]) /* Set up darwing area */ GtkWidget *drawing = gtk_drawing_area_new(); - gtk_box_pack_start(GTK_BOX(vbox), drawing, TRUE, TRUE, 0); - //gtk_widget_set_events(drawing, GDK_EXPOSURE_MASK); // needed? + gtk_paned_pack1(GTK_PANED(paned), drawing, TRUE, FALSE); + //gtk_box_pack_end(GTK_BOX(vbox), drawing, TRUE, TRUE, 0); GdkGLConfig *glconfig = gdk_gl_config_new_by_mode(GDK_GL_MODE_RGB | GDK_GL_MODE_DEPTH | GDK_GL_MODE_DOUBLE); if (!glconfig) g_assert_not_reached(); if (!gtk_widget_set_gl_capability(drawing, glconfig, NULL, TRUE, GDK_GL_RGBA_TYPE)) g_assert_not_reached(); + /* Set up tab area */ + GtkWidget *tab_area = gtk_notebook_new(); + gtk_notebook_set_tab_pos(GTK_NOTEBOOK(tab_area), GTK_POS_BOTTOM); + gtk_paned_pack2(GTK_PANED(paned), tab_area, FALSE, FALSE); + GtkWidget *label = gtk_label_new("Hello"); + GtkWidget *contents = gtk_label_new("World"); + gtk_notebook_append_page(GTK_NOTEBOOK(tab_area), contents, label); + /* Load plugins */ - cube_init(drawing); + cube_init(drawing, tab_area); gtk_widget_show_all(window); gtk_main(); diff --git a/src/cube.c b/src/cube.c index 1a13e05..cf01daf 100644 --- a/src/cube.c +++ b/src/cube.c @@ -5,6 +5,8 @@ #include #include +static GtkWidget *rotate_button; + float boxv[][3] = { { -0.5, -0.5, -0.5 }, { 0.5, -0.5, -0.5 }, @@ -134,6 +136,9 @@ gboolean configure(GtkWidget *da, GdkEventConfigure *event, gpointer user_data) gboolean rotate (gpointer user_data) { + if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(rotate_button))) + return TRUE; + GtkWidget *da = GTK_WIDGET (user_data); ang++; @@ -144,8 +149,14 @@ gboolean rotate (gpointer user_data) return TRUE; } -gboolean cube_init(GtkDrawingArea *drawing) +gboolean cube_init(GtkDrawingArea *drawing, GtkNotebook *config) { + /* Add configuration tab */ + GtkWidget *label = gtk_label_new("Cube"); + rotate_button = gtk_toggle_button_new_with_label("Rotate"); + gtk_notebook_append_page(GTK_NOTEBOOK(config), rotate_button, label); + + /* Set up OpenGL Stuff */ g_signal_connect(drawing, "configure-event", G_CALLBACK(configure), NULL); g_signal_connect(drawing, "expose-event", G_CALLBACK(expose), NULL); g_timeout_add(1000/60, rotate, drawing); diff --git a/src/level2.c b/src/level2.c index 39e9522..ecc39f3 100644 --- a/src/level2.c +++ b/src/level2.c @@ -2,6 +2,8 @@ /* * TODO: ARGG, the packet sizses are all wrong.. * Check sizes of decompressed bzip files + * Split things back up to seperate files + * The second bzip contains different size packets? */ #include @@ -81,10 +83,12 @@ level2_packet_t *level2_decompress(char *raw_data, int *num_packets) data = realloc(data, data_size + cur_data_size); status = BZ2_bzBuffToBuffDecompress(data + data_size, &cur_data_size, bz2, bz2_size, 0, 0); } + if (status != BZ_OK) + error(1, 1, "Error decompressing data"); data_size += cur_data_size; // Add current chunk to decompressed data /* Debug */ - //printf("data_size = %d, cur_data_size = %d\n", data_size, cur_data_size); + printf("data_size = %d, cur_data_size = %d\n", data_size, cur_data_size); } data = realloc(data, data_size); // free unused space at the end -- 2.43.2