libgimpwidgets: Make GimpButton a derivable type

This commit is contained in:
Alx Sa 2024-07-30 19:04:53 +00:00
parent f73bf7fb07
commit 9b6e6effeb
2 changed files with 8 additions and 26 deletions

View file

@ -46,12 +46,10 @@ enum
}; };
struct _GimpButtonPrivate typedef struct _GimpButtonPrivate
{ {
GdkModifierType press_state; GdkModifierType press_state;
}; } GimpButtonPrivate;
#define GET_PRIVATE(obj) (((GimpButton *) (obj))->priv)
static gboolean gimp_button_button_press (GtkWidget *widget, static gboolean gimp_button_button_press (GtkWidget *widget,
@ -97,7 +95,6 @@ gimp_button_class_init (GimpButtonClass *klass)
static void static void
gimp_button_init (GimpButton *button) gimp_button_init (GimpButton *button)
{ {
button->priv = gimp_button_get_instance_private (button);
} }
/** /**
@ -134,7 +131,8 @@ static gboolean
gimp_button_button_press (GtkWidget *widget, gimp_button_button_press (GtkWidget *widget,
GdkEventButton *bevent) GdkEventButton *bevent)
{ {
GimpButtonPrivate *private = GET_PRIVATE (widget); GimpButton *button = GIMP_BUTTON (widget);
GimpButtonPrivate *private = gimp_button_get_instance_private (button);
if (bevent->button == 1) if (bevent->button == 1)
{ {
@ -151,7 +149,8 @@ gimp_button_button_press (GtkWidget *widget,
static void static void
gimp_button_clicked (GtkButton *button) gimp_button_clicked (GtkButton *button)
{ {
GimpButtonPrivate *private = GET_PRIVATE (button); GimpButton *gimp_button = GIMP_BUTTON (button);
GimpButtonPrivate *private = gimp_button_get_instance_private (gimp_button);
if (private->press_state & if (private->press_state &
(GDK_SHIFT_MASK | GDK_CONTROL_MASK | GDK_MOD1_MASK | (GDK_SHIFT_MASK | GDK_CONTROL_MASK | GDK_MOD1_MASK |

View file

@ -31,23 +31,8 @@ G_BEGIN_DECLS
/* For information look into the C source or the html documentation */ /* For information look into the C source or the html documentation */
#define GIMP_TYPE_BUTTON (gimp_button_get_type ()) #define GIMP_TYPE_BUTTON (gimp_button_get_type ())
#define GIMP_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_BUTTON, GimpButton)) G_DECLARE_DERIVABLE_TYPE (GimpButton, gimp_button, GIMP, BUTTON, GtkButton)
#define GIMP_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_BUTTON, GimpButtonClass))
#define GIMP_IS_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_BUTTON))
#define GIMP_IS_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_BUTTON))
#define GIMP_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_BUTTON, GimpButtonClass))
typedef struct _GimpButtonPrivate GimpButtonPrivate;
typedef struct _GimpButtonClass GimpButtonClass;
struct _GimpButton
{
GtkButton parent_instance;
GimpButtonPrivate *priv;
};
struct _GimpButtonClass struct _GimpButtonClass
{ {
@ -68,8 +53,6 @@ struct _GimpButtonClass
}; };
GType gimp_button_get_type (void) G_GNUC_CONST;
GtkWidget * gimp_button_new (void); GtkWidget * gimp_button_new (void);
void gimp_button_extended_clicked (GimpButton *button, void gimp_button_extended_clicked (GimpButton *button,