SUBDIRS = src
+
+test:
+ ./src/aweather
/* 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();
/* 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();
#include <GL/gl.h>
#include <math.h>
+static GtkWidget *rotate_button;
+
float boxv[][3] = {
{ -0.5, -0.5, -0.5 },
{ 0.5, -0.5, -0.5 },
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++;
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);
/*
* 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 <stdio.h>
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