- return cell_type;
-}
-
-
-static void custom_cell_renderer_theme_init(CustomCellRendererTheme *celltheme)
-{
- // set some default properties
- GTK_CELL_RENDERER(celltheme)->mode = GTK_CELL_RENDERER_MODE_INERT;
- GTK_CELL_RENDERER(celltheme)->xpad = 2;
- GTK_CELL_RENDERER(celltheme)->ypad = 2;
- celltheme->title = 0;
- printf("custom_cell_renderer_theme_init\n\n");
-
-}
-
-
-/***************************************************************************
-* custom_cell_renderer_theme_class_init:
-*
-* set up our own get_property and set_property functions, and
-* override the parent's functions that we need to implement.
-* And make our new "percentage" property known to the type system.
-* If you want cells that can be activated on their own (ie. not
-* just the whole row selected) or cells that are editable, you
-* will need to override 'activate' and 'start_editing' as well.
-***************************************************************************/
-
-static void custom_cell_renderer_theme_class_init(CustomCellRendererThemeClass *klass)
-{
- GtkCellRendererClass *cell_class = GTK_CELL_RENDERER_CLASS(klass);
- GObjectClass *object_class = G_OBJECT_CLASS(klass);
-
- parent_class = g_type_class_peek_parent (klass);
- object_class->finalize = custom_cell_renderer_theme_finalize;
-
- object_class->get_property = custom_cell_renderer_theme_get_property;
- object_class->set_property = custom_cell_renderer_theme_set_property;
-
- // Override the two crucial functions that are the heart of a cell renderer in the parent class
- cell_class->get_size = custom_cell_renderer_theme_get_size;
- cell_class->render = custom_cell_renderer_theme_render;
-
-printf("custom_class_init\n\n");
-
- // Install our very own properties
- g_object_class_install_property (object_class, PROP_TITLE, g_param_spec_string("title", "Title", "Theme's title", 0, G_PARAM_READWRITE));
-// 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));
-}
-
-
-static void custom_cell_renderer_theme_finalize(GObject *object)
-{
- CustomCellRendererTheme *celltheme = CUSTOM_CELL_RENDERER_THEME(object);
-
- // free any resources here
- //if (celltheme->title)
- //g_free(celltheme->title);
-
- // Free any dynamically allocated resources here
- (* G_OBJECT_CLASS (parent_class)->finalize) (object);
-}
-
-
-static void custom_cell_renderer_theme_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *psec)
-{
- CustomCellRendererTheme *celltheme = CUSTOM_CELL_RENDERER_THEME(object);
-
- switch (param_id) {
- case PROP_TITLE:
- g_value_set_string(value, celltheme->title);
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, psec);
- break;
- }
-}
-
-
-static void custom_cell_renderer_theme_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec)
-{
- CustomCellRendererTheme *cellprogress = CUSTOM_CELL_RENDERER_THEME(object);
-
- switch (param_id) {
- case PROP_TITLE:
-//printf("set_property**************************************\n");
- cellprogress->title = g_value_get_string(value);
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec);
- break;
- }
-}
-
-
-#define FIXED_WIDTH 100
-#define FIXED_HEIGHT 20
-
-static void custom_cell_renderer_theme_get_size(GtkCellRenderer *cell, GtkWidget *widget, GdkRectangle *cell_area, gint *x_offset, gint *y_offset, gint *width, gint *height)
-{
- gint calc_width;
- gint calc_height;
-
- // calculate the size of our cell, taking into account
- // padding and alignment properties of parent.
- calc_width = (gint) cell->xpad * 2 + FIXED_WIDTH;
- calc_height = (gint) cell->ypad * 2 + FIXED_HEIGHT;
-
- if (width)
- *width = calc_width;
-
- if (height)
- *height = calc_height;
-
- if (cell_area) {
- if (x_offset) {
- *x_offset = cell->xalign * (cell_area->width - calc_width);
- *x_offset = MAX (*x_offset, 0);
- }