ARG_REORDERABLE,
ARG_USE_DRAG_ICONS,
ARG_SORT_TYPE
+#if GTK_CHECK_VERSION(3, 0, 0)
+ ,
+ ARG_HADJUSTMENT,
+ ARG_VADJUSTMENT,
+ ARG_HADJUSTMENT_POLICY,
+ ARG_VADJUSTMENT_POLICY
+#endif
};
/* GtkCMCList Methods */
GParamSpec *spec);
/* GtkWidget Methods */
+#if !GTK_CHECK_VERSION(3, 0, 0)
static void gtk_cmclist_set_scroll_adjustments (GtkCMCList *clist,
GtkAdjustment *hadjustment,
GtkAdjustment *vadjustment);
+#endif
static void gtk_cmclist_realize (GtkWidget *widget);
static void gtk_cmclist_unrealize (GtkWidget *widget);
static void gtk_cmclist_map (GtkWidget *widget);
-static GtkContainerClass *parent_class = NULL;
static guint clist_signals[LAST_SIGNAL] = {0};
static const GtkTargetEntry clist_target_table = { "gtk-clist-drag-reorder", 0, 0};
+#if !GTK_CHECK_VERSION(3, 0, 0)
+static gpointer gtk_cmclist_parent_class = NULL;
+
GType
gtk_cmclist_get_type (void)
{
return clist_type;
}
+#else
+G_DEFINE_TYPE_WITH_CODE (GtkCMCList, gtk_cmclist, GTK_TYPE_CONTAINER,
+ G_IMPLEMENT_INTERFACE (GTK_TYPE_SCROLLABLE,
+ NULL))
+#endif
static void
gtk_cmclist_class_init (GtkCMCListClass *klass)
widget_class = (GtkWidgetClass *) klass;
container_class = (GtkContainerClass *) klass;
- parent_class = g_type_class_peek (GTK_TYPE_CONTAINER);
+#if !GTK_CHECK_VERSION(3, 0, 0)
+ gtk_cmclist_parent_class = g_type_class_peek (GTK_TYPE_CONTAINER);
+#endif
object_class->finalize = gtk_cmclist_finalize;
#if !GTK_CHECK_VERSION(3, 0, 0)
container_class->forall = gtk_cmclist_forall;
container_class->set_focus_child = gtk_cmclist_set_focus_child;
+#if !GTK_CHECK_VERSION(3, 0, 0)
klass->set_scroll_adjustments = gtk_cmclist_set_scroll_adjustments;
+#endif
klass->refresh = clist_refresh;
klass->select_row = real_select_row;
klass->unselect_row = real_unselect_row;
claws_marshal_VOID__OBJECT_OBJECT,
G_TYPE_NONE, 2,
GTK_TYPE_ADJUSTMENT, GTK_TYPE_ADJUSTMENT);
+#else
+ /* Scrollable interface properties */
+ g_object_class_override_property (object_class, ARG_HADJUSTMENT, "hadjustment");
+ g_object_class_override_property (object_class, ARG_VADJUSTMENT, "vadjustment");
+ g_object_class_override_property (object_class, ARG_HADJUSTMENT_POLICY, "hscroll-policy");
+ g_object_class_override_property (object_class, ARG_VADJUSTMENT_POLICY, "vscroll-policy");
#endif
clist_signals[SELECT_ROW] =
case ARG_SORT_TYPE:
gtk_cmclist_set_sort_type (clist, g_value_get_enum (value));
break;
+#if GTK_CHECK_VERSION(3, 0, 0)
+ case ARG_HADJUSTMENT:
+ gtk_cmclist_set_hadjustment (clist, g_value_get_object (value));
+ break;
+ case ARG_VADJUSTMENT:
+ gtk_cmclist_set_vadjustment (clist, g_value_get_object (value));
+ break;
+ case ARG_HADJUSTMENT_POLICY:
+ case ARG_VADJUSTMENT_POLICY:
+ break;
+#endif
}
}
case ARG_SORT_TYPE:
g_value_set_enum(value, clist->sort_type);
break;
+#if GTK_CHECK_VERSION(3, 0, 0)
+ case ARG_HADJUSTMENT:
+ g_value_set_object(value, gtk_cmclist_get_hadjustment(clist));
+ break;
+ case ARG_VADJUSTMENT:
+ g_value_set_object(value, gtk_cmclist_get_vadjustment(clist));
+ break;
+ case ARG_HADJUSTMENT_POLICY:
+ case ARG_VADJUSTMENT_POLICY:
+ g_value_set_enum(value, GTK_SCROLL_NATURAL);
+ break;
+#endif
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, arg_id, spec);
break;
guint n_construct_properties,
GObjectConstructParam *construct_properties)
{
- GObject *object = G_OBJECT_CLASS (parent_class)->constructor (type,
+ GObject *object = G_OBJECT_CLASS (gtk_cmclist_parent_class)->constructor (type,
n_construct_properties,
construct_properties);
GtkCMCList *clist = GTK_CMCLIST (object);
return clist->vadjustment;
}
+#if !GTK_CHECK_VERSION(3, 0, 0)
static void
gtk_cmclist_set_scroll_adjustments (GtkCMCList *clist,
GtkAdjustment *hadjustment,
if (clist->vadjustment != vadjustment)
gtk_cmclist_set_vadjustment (clist, vadjustment);
}
+#endif
void
gtk_cmclist_set_shadow_type (GtkCMCList *clist,
}
#if !GTK_CHECK_VERSION(3, 0, 0)
- if (GTK_OBJECT_CLASS (parent_class)->destroy)
- (*GTK_OBJECT_CLASS (parent_class)->destroy) (object);
+ if (GTK_OBJECT_CLASS (gtk_cmclist_parent_class)->destroy)
+ (*GTK_OBJECT_CLASS (gtk_cmclist_parent_class)->destroy) (object);
#else
- if (GTK_WIDGET_CLASS (parent_class)->destroy)
- (*GTK_WIDGET_CLASS (parent_class)->destroy) (object);
+ if (GTK_WIDGET_CLASS (gtk_cmclist_parent_class)->destroy)
+ (*GTK_WIDGET_CLASS (gtk_cmclist_parent_class)->destroy) (object);
#endif
}
g_mem_chunk_destroy (clist->cell_mem_chunk);
g_mem_chunk_destroy (clist->row_mem_chunk);
#endif
- G_OBJECT_CLASS (parent_class)->finalize (object);
+ G_OBJECT_CLASS (gtk_cmclist_parent_class)->finalize (object);
}
/* GTKWIDGET
clist->cursor_drag = NULL;
- if (GTK_WIDGET_CLASS (parent_class)->unrealize)
- (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
+ if (GTK_WIDGET_CLASS (gtk_cmclist_parent_class)->unrealize)
+ (* GTK_WIDGET_CLASS (gtk_cmclist_parent_class)->unrealize) (widget);
}
static void
cm_return_if_fail (GTK_IS_CMCLIST (widget));
- if (GTK_WIDGET_CLASS (parent_class)->style_set)
- (*GTK_WIDGET_CLASS (parent_class)->style_set) (widget, previous_style);
+ if (GTK_WIDGET_CLASS (gtk_cmclist_parent_class)->style_set)
+ (*GTK_WIDGET_CLASS (gtk_cmclist_parent_class)->style_set) (widget, previous_style);
clist = GTK_CMCLIST (widget);
if (clist->column[i].button == child)
clist->focus_header_column = i;
- parent_class->set_focus_child (container, child);
+ if (GTK_CONTAINER_CLASS (gtk_cmclist_parent_class)->set_focus_child)
+ (*GTK_CONTAINER_CLASS (gtk_cmclist_parent_class)->set_focus_child) (container, child);
}
static void