forked from AuroraMiddleware/gtk
colorplane: Drop the Private struct and padding
This commit is contained in:
parent
f2bdb1fb87
commit
0e70ddcab3
@ -33,8 +33,10 @@
|
|||||||
#include "gtkshortcutaction.h"
|
#include "gtkshortcutaction.h"
|
||||||
#include "gtkshortcut.h"
|
#include "gtkshortcut.h"
|
||||||
|
|
||||||
struct _GtkColorPlanePrivate
|
struct _GtkColorPlane
|
||||||
{
|
{
|
||||||
|
GtkWidget parent_instance;
|
||||||
|
|
||||||
GtkAdjustment *h_adj;
|
GtkAdjustment *h_adj;
|
||||||
GtkAdjustment *s_adj;
|
GtkAdjustment *s_adj;
|
||||||
GtkAdjustment *v_adj;
|
GtkAdjustment *v_adj;
|
||||||
@ -42,6 +44,11 @@ struct _GtkColorPlanePrivate
|
|||||||
GdkTexture *texture;
|
GdkTexture *texture;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
GtkWidgetClass parent_class;
|
||||||
|
} GtkColorPlaneClass;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
PROP_0,
|
PROP_0,
|
||||||
PROP_H_ADJUSTMENT,
|
PROP_H_ADJUSTMENT,
|
||||||
@ -49,7 +56,7 @@ enum {
|
|||||||
PROP_V_ADJUSTMENT
|
PROP_V_ADJUSTMENT
|
||||||
};
|
};
|
||||||
|
|
||||||
G_DEFINE_TYPE_WITH_PRIVATE (GtkColorPlane, gtk_color_plane, GTK_TYPE_WIDGET)
|
G_DEFINE_TYPE (GtkColorPlane, gtk_color_plane, GTK_TYPE_WIDGET)
|
||||||
|
|
||||||
static void
|
static void
|
||||||
sv_to_xy (GtkColorPlane *plane,
|
sv_to_xy (GtkColorPlane *plane,
|
||||||
@ -62,8 +69,8 @@ sv_to_xy (GtkColorPlane *plane,
|
|||||||
width = gtk_widget_get_width (GTK_WIDGET (plane));
|
width = gtk_widget_get_width (GTK_WIDGET (plane));
|
||||||
height = gtk_widget_get_height (GTK_WIDGET (plane));
|
height = gtk_widget_get_height (GTK_WIDGET (plane));
|
||||||
|
|
||||||
s = gtk_adjustment_get_value (plane->priv->s_adj);
|
s = gtk_adjustment_get_value (plane->s_adj);
|
||||||
v = gtk_adjustment_get_value (plane->priv->v_adj);
|
v = gtk_adjustment_get_value (plane->v_adj);
|
||||||
|
|
||||||
*x = CLAMP (width * v, 0, width - 1);
|
*x = CLAMP (width * v, 0, width - 1);
|
||||||
*y = CLAMP (height * (1 - s), 0, height - 1);
|
*y = CLAMP (height * (1 - s), 0, height - 1);
|
||||||
@ -82,7 +89,7 @@ plane_snapshot (GtkWidget *widget,
|
|||||||
height = gtk_widget_get_height (widget);
|
height = gtk_widget_get_height (widget);
|
||||||
|
|
||||||
gtk_snapshot_append_texture (snapshot,
|
gtk_snapshot_append_texture (snapshot,
|
||||||
plane->priv->texture,
|
plane->texture,
|
||||||
&GRAPHENE_RECT_INIT (0, 0, width, height));
|
&GRAPHENE_RECT_INIT (0, 0, width, height));
|
||||||
if (gtk_widget_has_visible_focus (widget))
|
if (gtk_widget_has_visible_focus (widget))
|
||||||
{
|
{
|
||||||
@ -136,7 +143,7 @@ create_texture (GtkColorPlane *plane)
|
|||||||
if (width == 0 || height == 0)
|
if (width == 0 || height == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
g_clear_object (&plane->priv->texture);
|
g_clear_object (&plane->texture);
|
||||||
|
|
||||||
stride = width * 4;
|
stride = width * 4;
|
||||||
|
|
||||||
@ -144,7 +151,7 @@ create_texture (GtkColorPlane *plane)
|
|||||||
|
|
||||||
if (width > 1 && height > 1)
|
if (width > 1 && height > 1)
|
||||||
{
|
{
|
||||||
h = gtk_adjustment_get_value (plane->priv->h_adj);
|
h = gtk_adjustment_get_value (plane->h_adj);
|
||||||
sf = 1.0 / (height - 1);
|
sf = 1.0 / (height - 1);
|
||||||
vf = 1.0 / (width - 1);
|
vf = 1.0 / (width - 1);
|
||||||
for (y = 0; y < height; y++)
|
for (y = 0; y < height; y++)
|
||||||
@ -168,7 +175,7 @@ create_texture (GtkColorPlane *plane)
|
|||||||
}
|
}
|
||||||
|
|
||||||
bytes = g_bytes_new_take (data, height * stride);
|
bytes = g_bytes_new_take (data, height * stride);
|
||||||
plane->priv->texture = gdk_memory_texture_new (width, height,
|
plane->texture = gdk_memory_texture_new (width, height,
|
||||||
GDK_MEMORY_DEFAULT,
|
GDK_MEMORY_DEFAULT,
|
||||||
bytes,
|
bytes,
|
||||||
stride);
|
stride);
|
||||||
@ -198,9 +205,8 @@ static void
|
|||||||
plane_unrealize (GtkWidget *widget)
|
plane_unrealize (GtkWidget *widget)
|
||||||
{
|
{
|
||||||
GtkColorPlane *plane = GTK_COLOR_PLANE (widget);
|
GtkColorPlane *plane = GTK_COLOR_PLANE (widget);
|
||||||
GtkColorPlanePrivate *priv = gtk_color_plane_get_instance_private (plane);
|
|
||||||
|
|
||||||
g_clear_object (&priv->texture);
|
g_clear_object (&plane->texture);
|
||||||
|
|
||||||
GTK_WIDGET_CLASS (gtk_color_plane_parent_class)->unrealize (widget);
|
GTK_WIDGET_CLASS (gtk_color_plane_parent_class)->unrealize (widget);
|
||||||
}
|
}
|
||||||
@ -238,8 +244,8 @@ update_color (GtkColorPlane *plane,
|
|||||||
|
|
||||||
s = CLAMP (1 - y * (1.0 / gtk_widget_get_height (widget)), 0, 1);
|
s = CLAMP (1 - y * (1.0 / gtk_widget_get_height (widget)), 0, 1);
|
||||||
v = CLAMP (x * (1.0 / gtk_widget_get_width (widget)), 0, 1);
|
v = CLAMP (x * (1.0 / gtk_widget_get_width (widget)), 0, 1);
|
||||||
gtk_adjustment_set_value (plane->priv->s_adj, s);
|
gtk_adjustment_set_value (plane->s_adj, s);
|
||||||
gtk_adjustment_set_value (plane->priv->v_adj, v);
|
gtk_adjustment_set_value (plane->v_adj, v);
|
||||||
|
|
||||||
gtk_widget_queue_draw (widget);
|
gtk_widget_queue_draw (widget);
|
||||||
}
|
}
|
||||||
@ -262,8 +268,8 @@ sv_move (GtkColorPlane *plane,
|
|||||||
{
|
{
|
||||||
double s, v;
|
double s, v;
|
||||||
|
|
||||||
s = gtk_adjustment_get_value (plane->priv->s_adj);
|
s = gtk_adjustment_get_value (plane->s_adj);
|
||||||
v = gtk_adjustment_get_value (plane->priv->v_adj);
|
v = gtk_adjustment_get_value (plane->v_adj);
|
||||||
|
|
||||||
if (s + ds > 1)
|
if (s + ds > 1)
|
||||||
{
|
{
|
||||||
@ -303,8 +309,8 @@ sv_move (GtkColorPlane *plane,
|
|||||||
v += dv;
|
v += dv;
|
||||||
}
|
}
|
||||||
|
|
||||||
gtk_adjustment_set_value (plane->priv->s_adj, s);
|
gtk_adjustment_set_value (plane->s_adj, s);
|
||||||
gtk_adjustment_set_value (plane->priv->v_adj, v);
|
gtk_adjustment_set_value (plane->v_adj, v);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
@ -405,8 +411,6 @@ gtk_color_plane_init (GtkColorPlane *plane)
|
|||||||
GtkShortcutAction *action;
|
GtkShortcutAction *action;
|
||||||
GtkShortcut *shortcut;
|
GtkShortcut *shortcut;
|
||||||
|
|
||||||
plane->priv = gtk_color_plane_get_instance_private (plane);
|
|
||||||
|
|
||||||
gtk_widget_set_focusable (GTK_WIDGET (plane), TRUE);
|
gtk_widget_set_focusable (GTK_WIDGET (plane), TRUE);
|
||||||
|
|
||||||
atk_obj = gtk_widget_get_accessible (GTK_WIDGET (plane));
|
atk_obj = gtk_widget_get_accessible (GTK_WIDGET (plane));
|
||||||
@ -452,11 +456,11 @@ plane_finalize (GObject *object)
|
|||||||
{
|
{
|
||||||
GtkColorPlane *plane = GTK_COLOR_PLANE (object);
|
GtkColorPlane *plane = GTK_COLOR_PLANE (object);
|
||||||
|
|
||||||
g_clear_object (&plane->priv->texture);
|
g_clear_object (&plane->texture);
|
||||||
|
|
||||||
g_clear_object (&plane->priv->h_adj);
|
g_clear_object (&plane->h_adj);
|
||||||
g_clear_object (&plane->priv->s_adj);
|
g_clear_object (&plane->s_adj);
|
||||||
g_clear_object (&plane->priv->v_adj);
|
g_clear_object (&plane->v_adj);
|
||||||
|
|
||||||
G_OBJECT_CLASS (gtk_color_plane_parent_class)->finalize (object);
|
G_OBJECT_CLASS (gtk_color_plane_parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
@ -479,7 +483,7 @@ plane_set_property (GObject *object,
|
|||||||
adjustment = g_value_get_object (value);
|
adjustment = g_value_get_object (value);
|
||||||
if (adjustment)
|
if (adjustment)
|
||||||
{
|
{
|
||||||
plane->priv->h_adj = g_object_ref_sink (adjustment);
|
plane->h_adj = g_object_ref_sink (adjustment);
|
||||||
g_signal_connect_swapped (adjustment, "value-changed", G_CALLBACK (h_changed), plane);
|
g_signal_connect_swapped (adjustment, "value-changed", G_CALLBACK (h_changed), plane);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -487,7 +491,7 @@ plane_set_property (GObject *object,
|
|||||||
adjustment = g_value_get_object (value);
|
adjustment = g_value_get_object (value);
|
||||||
if (adjustment)
|
if (adjustment)
|
||||||
{
|
{
|
||||||
plane->priv->s_adj = g_object_ref_sink (adjustment);
|
plane->s_adj = g_object_ref_sink (adjustment);
|
||||||
g_signal_connect_swapped (adjustment, "value-changed", G_CALLBACK (sv_changed), plane);
|
g_signal_connect_swapped (adjustment, "value-changed", G_CALLBACK (sv_changed), plane);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -495,7 +499,7 @@ plane_set_property (GObject *object,
|
|||||||
adjustment = g_value_get_object (value);
|
adjustment = g_value_get_object (value);
|
||||||
if (adjustment)
|
if (adjustment)
|
||||||
{
|
{
|
||||||
plane->priv->v_adj = g_object_ref_sink (adjustment);
|
plane->v_adj = g_object_ref_sink (adjustment);
|
||||||
g_signal_connect_swapped (adjustment, "value-changed", G_CALLBACK (sv_changed), plane);
|
g_signal_connect_swapped (adjustment, "value-changed", G_CALLBACK (sv_changed), plane);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -18,40 +18,16 @@
|
|||||||
#ifndef __GTK_COLOR_PLANE_H__
|
#ifndef __GTK_COLOR_PLANE_H__
|
||||||
#define __GTK_COLOR_PLANE_H__
|
#define __GTK_COLOR_PLANE_H__
|
||||||
|
|
||||||
#include <gtk/gtkdrawingarea.h>
|
|
||||||
#include <gtk/gtktypes.h>
|
#include <gtk/gtktypes.h>
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define GTK_TYPE_COLOR_PLANE (gtk_color_plane_get_type ())
|
#define GTK_TYPE_COLOR_PLANE (gtk_color_plane_get_type ())
|
||||||
#define GTK_COLOR_PLANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_COLOR_PLANE, GtkColorPlane))
|
#define GTK_COLOR_PLANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_COLOR_PLANE, GtkColorPlane))
|
||||||
#define GTK_COLOR_PLANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_COLOR_PLANE, GtkColorPlaneClass))
|
|
||||||
#define GTK_IS_COLOR_PLANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_COLOR_PLANE))
|
#define GTK_IS_COLOR_PLANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_COLOR_PLANE))
|
||||||
#define GTK_IS_COLOR_PLANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_COLOR_PLANE))
|
|
||||||
#define GTK_COLOR_PLANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_COLOR_PLANE, GtkColorPlaneClass))
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct _GtkColorPlane GtkColorPlane;
|
typedef struct _GtkColorPlane GtkColorPlane;
|
||||||
typedef struct _GtkColorPlaneClass GtkColorPlaneClass;
|
|
||||||
typedef struct _GtkColorPlanePrivate GtkColorPlanePrivate;
|
|
||||||
|
|
||||||
struct _GtkColorPlane
|
|
||||||
{
|
|
||||||
GtkWidget parent_instance;
|
|
||||||
|
|
||||||
GtkColorPlanePrivate *priv;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _GtkColorPlaneClass
|
|
||||||
{
|
|
||||||
GtkWidgetClass parent_class;
|
|
||||||
|
|
||||||
/* Padding for future expansion */
|
|
||||||
void (*_gtk_reserved1) (void);
|
|
||||||
void (*_gtk_reserved2) (void);
|
|
||||||
void (*_gtk_reserved3) (void);
|
|
||||||
void (*_gtk_reserved4) (void);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
GType gtk_color_plane_get_type (void) G_GNUC_CONST;
|
GType gtk_color_plane_get_type (void) G_GNUC_CONST;
|
||||||
|
Loading…
Reference in New Issue
Block a user