1 /* logjam - a GTK client for LiveJournal.
2 * Copyright (C) 2000-2003 Evan Martin <evan@livejournal.com>
4 * vim: tabstop=4 shiftwidth=4 noexpandtab :
9 #include "groupedbox.h"
12 http://developer.gnome.org/projects/gup/hig/1.0/layout.html#window-layout-spacing
16 groupedbox_init(GroupedBox
*gb
) {
20 gtk_box_set_spacing(GTK_BOX(gb
), 6);
22 hbox
= gtk_hbox_new(FALSE
, 5);
23 gb
->vbox
= gtk_vbox_new(FALSE
, 6);
25 margin
= gtk_label_new(" ");
27 gtk_box_pack_start(GTK_BOX(hbox
), margin
, FALSE
, FALSE
, 0);
28 gtk_box_pack_start(GTK_BOX(hbox
), gb
->vbox
, TRUE
, TRUE
, 0);
29 gtk_box_pack_end(GTK_BOX(gb
), hbox
, TRUE
, TRUE
, 0);
36 GroupedBox
*gb
= GROUPEDBOX(g_object_new(groupedbox_get_type(), NULL
));
37 return GTK_WIDGET(gb
);
41 groupedbox_new_with_text(const char *text
) {
42 GroupedBox
*gb
= GROUPEDBOX(g_object_new(groupedbox_get_type(), NULL
));
43 groupedbox_set_header(gb
, text
, TRUE
);
44 return GTK_WIDGET(gb
);
48 groupedbox_set_header_widget(GroupedBox
*b
, GtkWidget
*w
) {
50 gtk_container_remove(GTK_CONTAINER(b
), b
->header
);
53 gtk_box_pack_start(GTK_BOX(b
), w
, FALSE
, FALSE
, 0);
59 groupedbox_set_header(GroupedBox
*b
, const char *title
, gboolean bold
) {
60 GtkWidget
*label
= gtk_label_new(bold
? NULL
: title
);
62 gchar
*markup
= g_strdup_printf("<b>%s</b>", title
);
63 gtk_label_set_markup(GTK_LABEL(label
), markup
);
67 gtk_misc_set_alignment(GTK_MISC(label
), 0, 0.5);
68 gtk_label_set_justify(GTK_LABEL(label
), GTK_JUSTIFY_LEFT
);
69 groupedbox_set_header_widget(b
, label
);
73 groupedbox_pack(GroupedBox
*b
, GtkWidget
*w
, gboolean expand
) {
74 gtk_box_pack_start(GTK_BOX(b
->vbox
), w
, expand
, expand
, 0);
78 groupedbox_get_type(void) {
79 static GType gb_type
= 0;
81 const GTypeInfo gb_info
= {
82 sizeof (GtkVBoxClass
),
90 (GInstanceInitFunc
) groupedbox_init
,
92 gb_type
= g_type_register_static(GTK_TYPE_VBOX
,
93 "GroupedBox", &gb_info
, 0);