diff options
Diffstat (limited to 'src/ui/metaaccellabel.c')
-rw-r--r-- | src/ui/metaaccellabel.c | 181 |
1 files changed, 4 insertions, 177 deletions
diff --git a/src/ui/metaaccellabel.c b/src/ui/metaaccellabel.c index 2e738c7c..319bceaa 100644 --- a/src/ui/metaaccellabel.c +++ b/src/ui/metaaccellabel.c @@ -37,20 +37,13 @@ #include <string.h> #include "util.h" -#if GTK_CHECK_VERSION(3, 0, 0) - #define parent_class meta_accel_label_parent_class - #define GtkObject GtkWidget - #define GTK_OBJECT_CLASS GTK_WIDGET_CLASS -#endif - static void meta_accel_label_class_init (MetaAccelLabelClass *klass); static void meta_accel_label_init (MetaAccelLabel *accel_label); -static void meta_accel_label_destroy (GtkObject *object); +static void meta_accel_label_destroy (GtkWidget *object); static void meta_accel_label_finalize (GObject *object); static void meta_accel_label_update (MetaAccelLabel *accel_label); static int meta_accel_label_get_accel_width (MetaAccelLabel *accel_label); -#if GTK_CHECK_VERSION(3, 0, 0) static void meta_accel_label_get_preferred_width (GtkWidget *widget, gint *minimum, gint *natural); @@ -59,55 +52,13 @@ static void meta_accel_label_get_preferred_height (GtkWidget *widget, gint *natural); static gboolean meta_accel_label_draw (GtkWidget *widget, cairo_t *cr); -#else -static void meta_accel_label_size_request (GtkWidget *widget, - GtkRequisition *requisition); -static gboolean meta_accel_label_expose_event (GtkWidget *widget, - GdkEventExpose *event); - -static GtkLabelClass *parent_class = NULL; -#endif - -#if GTK_CHECK_VERSION(3, 0, 0) - G_DEFINE_TYPE (MetaAccelLabel, meta_accel_label, GTK_TYPE_LABEL); -#else - -GType -meta_accel_label_get_type (void) -{ - static GType accel_label_type = 0; - - if (!accel_label_type) - { - static const GtkTypeInfo accel_label_info = - { - "MetaAccelLabel", - sizeof (MetaAccelLabel), - sizeof (MetaAccelLabelClass), - (GtkClassInitFunc) meta_accel_label_class_init, - (GtkObjectInitFunc) meta_accel_label_init, - /* reserved_1 */ NULL, - /* reserved_2 */ NULL, - (GtkClassInitFunc) NULL, - }; - - accel_label_type = gtk_type_unique (GTK_TYPE_LABEL, &accel_label_info); - } - - return accel_label_type; -} - -#endif - static void meta_accel_label_class_init (MetaAccelLabelClass *class) { - - #if GTK_CHECK_VERSION(3, 0, 0) GObjectClass *gobject_class = G_OBJECT_CLASS (class); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class); @@ -118,20 +69,6 @@ meta_accel_label_class_init (MetaAccelLabelClass *class) widget_class->get_preferred_width = meta_accel_label_get_preferred_width; widget_class->get_preferred_height = meta_accel_label_get_preferred_height; widget_class->draw = meta_accel_label_draw; - #else - GObjectClass *gobject_class = G_OBJECT_CLASS (class); - GtkObjectClass *object_class = GTK_OBJECT_CLASS (class); - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class); - - parent_class = g_type_class_peek_parent (class); - - gobject_class->finalize = meta_accel_label_finalize; - - object_class->destroy = meta_accel_label_destroy; - - widget_class->size_request = meta_accel_label_size_request; - widget_class->expose_event = meta_accel_label_expose_event; - #endif class->signal_quote1 = g_strdup ("<:"); class->signal_quote2 = g_strdup (":>"); @@ -225,7 +162,7 @@ meta_accel_label_new_with_mnemonic (const gchar *string) } static void -meta_accel_label_destroy (GtkObject *object) +meta_accel_label_destroy (GtkWidget *object) { MetaAccelLabel *accel_label = META_ACCEL_LABEL (object); @@ -236,7 +173,7 @@ meta_accel_label_destroy (GtkObject *object) accel_label->accel_mods = 0; accel_label->accel_key = 0; - GTK_OBJECT_CLASS (parent_class)->destroy (object); + GTK_WIDGET_CLASS (meta_accel_label_parent_class)->destroy (object); } static void @@ -246,7 +183,7 @@ meta_accel_label_finalize (GObject *object) g_free (accel_label->accel_string); - G_OBJECT_CLASS (parent_class)->finalize (object); + G_OBJECT_CLASS (meta_accel_label_parent_class)->finalize (object); } void @@ -275,7 +212,6 @@ meta_accel_label_get_accel_width (MetaAccelLabel *accel_label) (accel_label->accel_string_width ? accel_label->accel_padding : 0)); } -#if GTK_CHECK_VERSION(3, 0, 0) static void meta_accel_label_get_preferred_width (GtkWidget *widget, gint *minimum, @@ -301,29 +237,6 @@ meta_accel_label_get_preferred_height (GtkWidget *widget, { GTK_WIDGET_CLASS (meta_accel_label_parent_class)->get_preferred_height (widget, minimum, natural); } -#else - -static void -meta_accel_label_size_request (GtkWidget *widget, - GtkRequisition *requisition) -{ - MetaAccelLabel *accel_label = META_ACCEL_LABEL (widget); - PangoLayout *layout; - gint width; - - if (GTK_WIDGET_CLASS (parent_class)->size_request) - GTK_WIDGET_CLASS (parent_class)->size_request (widget, requisition); - - layout = gtk_widget_create_pango_layout (widget, accel_label->accel_string); - pango_layout_get_pixel_size (layout, &width, NULL); - accel_label->accel_string_width = width; - - g_object_unref (G_OBJECT (layout)); -} - -#endif - -#if GTK_CHECK_VERSION(3, 0, 0) static gboolean meta_accel_label_draw (GtkWidget *widget, @@ -434,92 +347,6 @@ meta_accel_label_draw (GtkWidget *widget, return FALSE; } -#else - -static gboolean -meta_accel_label_expose_event (GtkWidget *widget, - GdkEventExpose *event) -{ - MetaAccelLabel *accel_label = META_ACCEL_LABEL (widget); - GtkMisc *misc = GTK_MISC (accel_label); - PangoLayout *layout; - - if (gtk_widget_is_drawable (GTK_WIDGET (accel_label))) - { - int ac_width; - GtkAllocation allocation; - GtkRequisition requisition; - - gtk_widget_get_allocation (widget, &allocation); - gtk_widget_get_requisition (widget, &requisition); - ac_width = meta_accel_label_get_accel_width (accel_label); - - if (allocation.width >= requisition.width + ac_width) - { - GtkTextDirection direction = gtk_widget_get_direction (widget); - gfloat xalign, yalign; - gint x, y; - gint xpad, ypad; - - gtk_misc_get_padding (misc, &xpad, &ypad); - gtk_misc_get_alignment (misc, &xalign, &yalign); - - if (direction == GTK_TEXT_DIR_RTL) - { - allocation.x += ac_width; - } - allocation.width -= ac_width; - gtk_widget_set_allocation (widget, &allocation); - - if (GTK_WIDGET_CLASS (parent_class)->expose_event) - GTK_WIDGET_CLASS (parent_class)->expose_event (widget, event); - - if (direction == GTK_TEXT_DIR_RTL) - { - allocation.x -= ac_width; - } - allocation.width += ac_width; - gtk_widget_set_allocation (widget, &allocation); - - if (direction == GTK_TEXT_DIR_RTL) - { - x = allocation.x + allocation.width - xpad - ac_width; - } - else - { - x = allocation.x + allocation.width - xpad - ac_width; - } - - y = (allocation.y * (1.0 - yalign) + - (allocation.y + allocation.height - - (requisition.height - ypad * 2)) * yalign) + 1.5; - - layout = gtk_widget_create_pango_layout (widget, accel_label->accel_string); - - gtk_paint_layout (gtk_widget_get_style (widget), - gtk_widget_get_window (widget), - gtk_widget_get_state (widget), - FALSE, - &event->area, - widget, - "accellabel", - x, y, - layout); - - g_object_unref (G_OBJECT (layout)); - } - else - { - if (GTK_WIDGET_CLASS (parent_class)->expose_event) - GTK_WIDGET_CLASS (parent_class)->expose_event (widget, event); - } - } - - return FALSE; -} - -#endif - static void meta_accel_label_update (MetaAccelLabel *accel_label) { |