module gtk.CustomRender; // needs work!!! - see the gtktreeview tutorial for ideas... struct Wrapped_CustomCellRenderer { Wrapped_GtkCellRenderer parent; Dobject dobject; } struct Wrapped_CustomCellRendererClass { Wrapped_GtkCellRendererClass parent_class; } static class CustomerCellRenderer { static Enum_GType my_type = 0; static void * parent_class; extern(C) static void Enum_GType get_type () { if (my_type ) return my_type ; static const Wrapped_GTypeInfo cell_progress_info = { sizeof (Wrapped_CustomCellRendererClass), NULL, /* base_init */ NULL, /* base_finalize */ cast(GClassInitFunc) class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof (Wrapped_CustomCellRenderer), 0, /* n_preallocs */ cast(GInstanceInitFunc) init, }; /* Derive from GtkCellRenderer */ my_type = g_type_register_static (g_type_from_name("GtkCellRenderer"), "CustomCellRenderer", &cell_progress_info, 0); return my_type; } extern(C) static void Wrapped_GtkCellRenderer* _new () { return cast (Wrapped_GtkCellRenderer*) g_object_new(get_type(), NULL); } extern(C) static void init(Wrapped_CustomCellRenderer *cellrenderer) { cast(Wrapped_GtkCellRenderer*)cellrenderer).mode = 0; // GTK_CELL_RENDERER_MODE_INERT, cast(Wrapped_GtkCellRenderer*)cellrenderer).xpad = 2; cast(Wrapped_GtkCellRenderer*)cellrenderer).ypad = 2; } extern(C) static void class_init(Wrapped_CustomCellRendererClass *klass) { Wrapped_GtkCellRendererClass *cell_class = cast(Wrapped_GtkCellRendererClass*) ((cast(GTypeInstance*) klass).g_class) Wrapped_GObjectClass *object_class = cast(Wrapped_GObjectClass*)klass; parent_class = cast(void*)g_type_class_peek_parent (klass); object_class.finalize = finalize; object_class.get_property = get_property; object_class.set_property = set_property; cell_class.get_size = get_size; cell_class.render = render; /* Install our very own properties g_object_class_install_property (object_class, PROP_PERCENTAGE, g_param_spec_double ("percentage", "Percentage", "The fractional progress to display", 0, 1, 0, G_PARAM_READWRITE)); */ } extern(C) static void get_property(Wrapped_GObject *object,uint param_id, Wrapped_GValue *value, Wrapped_GParamSpec *pspec) { // do stuff? } extern(C) static void set_property(Wrapped_GObject *object,uint param_id, Wrapped_GValue *value, Wrapped_GParamSpec *pspec) { // do stuff? } extern(C) static void finalize(Wrapped_GObject *gobject) { // free stuff? (cast(Wrapped_GObject*) parent_class).finalize(gobject); } extern(C) static void get_size( Wrapped_GtkCellRenderer *cell, Wrapped_GtkWidget *widget, Wrapped_GdkRectangle *cell_area, int *x_offset, int *y_offset, int *width, int *height) { } extern(C) static void render( Wrapped_GtkCellRenderer *cell, Wrapped_GdkWindow *window, Wrapped_GtkWidget *widget, Wrapped_GdkRectangle *background_area, Wrapped_GdkRectangle *cell_area, Wrapped_GdkRectangle *expose_area, uint flags) { } }