Mercurial > pidgin
comparison finch/libgnt/gntline.c @ 15817:0e3a8505ebbe
renamed gaim-text to finch
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Sun, 18 Mar 2007 19:38:15 +0000 |
parents | |
children | 8410511f4dbb |
comparison
equal
deleted
inserted
replaced
15816:317e7613e581 | 15817:0e3a8505ebbe |
---|---|
1 #include "gntline.h" | |
2 | |
3 enum | |
4 { | |
5 SIGS = 1, | |
6 }; | |
7 | |
8 static GntWidgetClass *parent_class = NULL; | |
9 | |
10 static void | |
11 gnt_line_draw(GntWidget *widget) | |
12 { | |
13 GntLine *line = GNT_LINE(widget); | |
14 if (line->vertical) | |
15 mvwvline(widget->window, 1, 0, ACS_VLINE | COLOR_PAIR(GNT_COLOR_NORMAL), | |
16 widget->priv.height - 2); | |
17 else | |
18 mvwhline(widget->window, 0, 1, ACS_HLINE | COLOR_PAIR(GNT_COLOR_NORMAL), | |
19 widget->priv.width - 2); | |
20 } | |
21 | |
22 static void | |
23 gnt_line_size_request(GntWidget *widget) | |
24 { | |
25 if (GNT_LINE(widget)->vertical) | |
26 { | |
27 widget->priv.width = 1; | |
28 widget->priv.height = 5; | |
29 } | |
30 else | |
31 { | |
32 widget->priv.width = 5; | |
33 widget->priv.height = 1; | |
34 } | |
35 } | |
36 | |
37 static void | |
38 gnt_line_map(GntWidget *widget) | |
39 { | |
40 if (widget->priv.width == 0 || widget->priv.height == 0) | |
41 gnt_widget_size_request(widget); | |
42 GNTDEBUG; | |
43 } | |
44 | |
45 static void | |
46 gnt_line_class_init(GntLineClass *klass) | |
47 { | |
48 parent_class = GNT_WIDGET_CLASS(klass); | |
49 parent_class->draw = gnt_line_draw; | |
50 parent_class->map = gnt_line_map; | |
51 parent_class->size_request = gnt_line_size_request; | |
52 | |
53 GNTDEBUG; | |
54 } | |
55 | |
56 static void | |
57 gnt_line_init(GTypeInstance *instance, gpointer class) | |
58 { | |
59 GntWidget *widget = GNT_WIDGET(instance); | |
60 GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_NO_SHADOW | GNT_WIDGET_NO_BORDER); | |
61 widget->priv.minw = 1; | |
62 widget->priv.minh = 1; | |
63 GNTDEBUG; | |
64 } | |
65 | |
66 /****************************************************************************** | |
67 * GntLine API | |
68 *****************************************************************************/ | |
69 GType | |
70 gnt_line_get_gtype(void) | |
71 { | |
72 static GType type = 0; | |
73 | |
74 if(type == 0) | |
75 { | |
76 static const GTypeInfo info = { | |
77 sizeof(GntLineClass), | |
78 NULL, /* base_init */ | |
79 NULL, /* base_finalize */ | |
80 (GClassInitFunc)gnt_line_class_init, | |
81 NULL, /* class_finalize */ | |
82 NULL, /* class_data */ | |
83 sizeof(GntLine), | |
84 0, /* n_preallocs */ | |
85 gnt_line_init, /* instance_init */ | |
86 NULL /* value_table */ | |
87 }; | |
88 | |
89 type = g_type_register_static(GNT_TYPE_WIDGET, | |
90 "GntLine", | |
91 &info, 0); | |
92 } | |
93 | |
94 return type; | |
95 } | |
96 | |
97 GntWidget *gnt_line_new(gboolean vertical) | |
98 { | |
99 GntWidget *widget = g_object_new(GNT_TYPE_LINE, NULL); | |
100 GntLine *line = GNT_LINE(widget); | |
101 | |
102 line->vertical = vertical; | |
103 | |
104 if (vertical) | |
105 { | |
106 GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_GROW_Y); | |
107 } | |
108 else | |
109 { | |
110 GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_GROW_X); | |
111 } | |
112 | |
113 return widget; | |
114 } | |
115 |