comparison finch/libgnt/gntbox.h @ 15817:0e3a8505ebbe

renamed gaim-text to finch
author Sean Egan <seanegan@gmail.com>
date Sun, 18 Mar 2007 19:38:15 +0000
parents
children f00f2e283ffb
comparison
equal deleted inserted replaced
15816:317e7613e581 15817:0e3a8505ebbe
1 #ifndef GNT_BOX_H
2 #define GNT_BOX_H
3
4 #include "gnt.h"
5 #include "gntwidget.h"
6
7 #define GNT_TYPE_BOX (gnt_box_get_gtype())
8 #define GNT_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GNT_TYPE_BOX, GntBox))
9 #define GNT_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GNT_TYPE_BOX, GntBoxClass))
10 #define GNT_IS_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GNT_TYPE_BOX))
11 #define GNT_IS_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GNT_TYPE_BOX))
12 #define GNT_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GNT_TYPE_BOX, GntBoxClass))
13
14 typedef struct _GnBox GntBox;
15 typedef struct _GnBoxClass GntBoxClass;
16
17 typedef enum
18 {
19 /* These for vertical boxes */
20 GNT_ALIGN_LEFT,
21 GNT_ALIGN_RIGHT,
22
23 GNT_ALIGN_MID,
24
25 /* These for horizontal boxes */
26 GNT_ALIGN_TOP,
27 GNT_ALIGN_BOTTOM
28 } GntAlignment;
29
30 struct _GnBox
31 {
32 GntWidget parent;
33
34 gboolean vertical;
35 gboolean homogeneous;
36 gboolean fill;
37 GList *list; /* List of widgets */
38
39 GntWidget *active;
40 int pad; /* Number of spaces to use between widgets */
41 GntAlignment alignment; /* How are the widgets going to be aligned? */
42
43 char *title;
44 GList *focus; /* List of widgets to cycle focus (only valid for parent boxes) */
45
46 void (*gnt_reserved1)(void);
47 void (*gnt_reserved2)(void);
48 void (*gnt_reserved3)(void);
49 void (*gnt_reserved4)(void);
50 };
51
52 struct _GnBoxClass
53 {
54 GntWidgetClass parent;
55
56 void (*gnt_reserved1)(void);
57 void (*gnt_reserved2)(void);
58 void (*gnt_reserved3)(void);
59 void (*gnt_reserved4)(void);
60 };
61
62 G_BEGIN_DECLS
63
64 GType gnt_box_get_gtype(void);
65
66 #define gnt_vbox_new(homo) gnt_box_new(homo, TRUE)
67 #define gnt_hbox_new(homo) gnt_box_new(homo, FALSE)
68
69 GntWidget *gnt_box_new(gboolean homo, gboolean vert);
70
71 void gnt_box_add_widget(GntBox *box, GntWidget *widget);
72
73 void gnt_box_set_title(GntBox *box, const char *title);
74
75 void gnt_box_set_pad(GntBox *box, int pad);
76
77 void gnt_box_set_toplevel(GntBox *box, gboolean set);
78
79 void gnt_box_sync_children(GntBox *box);
80
81 void gnt_box_set_alignment(GntBox *box, GntAlignment alignment);
82
83 void gnt_box_remove(GntBox *box, GntWidget *widget); /* XXX: does NOT destroy widget */
84
85 void gnt_box_remove_all(GntBox *box); /* Removes AND destroys all the widgets in it */
86
87 void gnt_box_readjust(GntBox *box);
88
89 void gnt_box_set_fill(GntBox *box, gboolean fill);
90
91 void gnt_box_move_focus(GntBox *box, int dir); /* +1 to move forward, -1 for backward */
92
93 void gnt_box_give_focus_to_child(GntBox *box, GntWidget *widget);
94
95 G_END_DECLS
96
97 #endif /* GNT_BOX_H */
98