main
*.o
+libaspectbin.so
-CC = gcc -std=c99 -pedantic
+CC = gcc -g -std=c99 -pedantic
WARNINGS = -Wall
GTK_CFLAGS = $(shell pkg-config --cflags gtk+-2.0)
GTK_LIBS = $(shell pkg-config --libs gtk+-2.0)
+GLADEUI_CFLAGS = $(shell pkg-config --cflags gladeui-1.0)
+GLADEUI_LIBS = $(shell pkg-config --libs gladeui-1.0)
-main: main.o aspectbin.o
- $(CC) -o $@ $(GTK_LIBS) $^
+main: main.o libaspectbin.so
+ $(CC) -o $@ $(GTK_LIBS) $(LDFLAGS) $^
+
+libaspectbin.so: aspectbin.o aspectbin-glade.o
+ $(CC) -fPIC -shared -o $@ $(GTK_LIBS) $(GLADEUI_LIBS) $(LDFLAGS) $^
.c.o:
- $(CC) -c -o $@ $(WARNINGS) $(GTK_CFLAGS) $(CFLAGS) $<
+ $(CC) -fPIC -c -o $@ $(WARNINGS) $(GTK_CFLAGS) $(GLADEUI_CFLAGS) $(CFLAGS) $<
aspectbin.o: aspectbin.h
main.o: aspectbin.h
--- /dev/null
+#include <gtk/gtk.h>
+#include <gladeui/glade.h>
+#include "aspectbin.h"
+
+void aspect_bin_post_create(GladeWidgetAdaptor *adaptor,
+ GObject *object,
+ GladeCreateReason reason)
+{
+ AspectBin *abin;
+ g_return_if_fail(IS_ASPECT_BIN(object));
+ abin = ASPECT_BIN(object);
+
+ if (reason == GLADE_CREATE_USER) {
+ gtk_container_add(GTK_CONTAINER(abin), glade_placeholder_new());
+ gtk_container_add(GTK_CONTAINER(abin), glade_placeholder_new());
+ }
+}
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<glade-catalog name="aspectbin" library="aspectbin" depends="gtk+">
+
+ <glade-widget-classes>
+ <glade-widget-class name="AspectBin" generic-name="aspect_bin" title="Aspect Bin">
+ <post-create-function>aspect_bin_post_create</post-create-function>
+ </glade-widget-class>
+ </glade-widget-classes>
+
+ <glade-widget-group name="nickswidgets-toplevels" title="Nick's Widgets">
+ <glade-widget-class-ref name="AspectBin"/>
+ </glade-widget-group>
+
+</glade-catalog>