summaryrefslogtreecommitdiff
path: root/gtk/gtkgizmoprivate.h
blob: 1e59eefa668ba473e127e684fc4d0d5f1cb279fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53

#ifndef __GTK_GIZMO_H__
#define __GTK_GIZMO_H__

#include "gtkwidget.h"

#define GTK_TYPE_GIZMO                 (gtk_gizmo_get_type ())
#define GTK_GIZMO(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_GIZMO, GtkGizmo))
#define GTK_GIZMO_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_GIZMO, GtkGizmoClass))
#define GTK_IS_GIZMO(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_GIZMO))
#define GTK_IS_GIZMO_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_GIZMO))
#define GTK_GIZMO_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_GIZMO, GtkGizmoClass))

typedef struct _GtkGizmo             GtkGizmo;
typedef struct _GtkGizmoClass        GtkGizmoClass;

typedef void    (* GtkGizmoMeasureFunc)   (GtkGizmo       *gizmo,
                                           GtkOrientation  orientation,
                                           int             for_size,
                                           int            *minimum,
                                           int            *natural,
                                           int            *minimum_baseline,
                                           int            *natural_baseline);
typedef void    (* GtkGizmoAllocateFunc)  (GtkGizmo            *gizmo,
                                           const GtkAllocation *allocation,
                                           int                  baseline);
typedef gboolean (* GtkGizmoSnapshotFunc) (GtkGizmo    *gizmo,
                                           GtkSnapshot *snapshot);


struct _GtkGizmo
{
  GtkWidget parent_instance;

  GtkGizmoMeasureFunc  measure_func;
  GtkGizmoAllocateFunc allocate_func;
  GtkGizmoSnapshotFunc snapshot_func;
};

struct _GtkGizmoClass
{
  GtkWidgetClass parent_class;
};

GType      gtk_gizmo_get_type (void) G_GNUC_CONST;

GtkWidget *gtk_gizmo_new (const char          *css_name,
                          GtkGizmoMeasureFunc  measure_func,
                          GtkGizmoAllocateFunc allocate_func,
                          GtkGizmoSnapshotFunc snapshot_func);


#endif