comparison console/libgnt/gntbox.c @ 13980:c9509bd42d7a

[gaim-migrate @ 16542] Show the mail-notification checkbox in the account-dialog only if the prpl has support for it. committer: Tailor Script <tailor@pidgin.im>
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Sun, 23 Jul 2006 02:03:19 +0000
parents 8b2306c64efa
children 7573bd40a190
comparison
equal deleted inserted replaced
13979:a71678d2da16 13980:c9509bd42d7a
87 cury += 1; 87 cury += 1;
88 } 88 }
89 89
90 for (iter = box->list; iter; iter = iter->next) 90 for (iter = box->list; iter; iter = iter->next)
91 { 91 {
92 if (GNT_WIDGET_IS_FLAG_SET(GNT_WIDGET(iter->data), GNT_WIDGET_INVISIBLE))
93 continue;
92 gnt_widget_set_position(GNT_WIDGET(iter->data), curx, cury); 94 gnt_widget_set_position(GNT_WIDGET(iter->data), curx, cury);
93 gnt_widget_get_size(GNT_WIDGET(iter->data), &w, &h); 95 gnt_widget_get_size(GNT_WIDGET(iter->data), &w, &h);
94 if (box->vertical) 96 if (box->vertical)
95 { 97 {
96 if (h) 98 if (h)
215 217
216 /* Ensures that the current widget can take focus */ 218 /* Ensures that the current widget can take focus */
217 static GntWidget * 219 static GntWidget *
218 find_focusable_widget(GntBox *box) 220 find_focusable_widget(GntBox *box)
219 { 221 {
222 /* XXX: Make sure the widget is visible? */
220 if (box->focus == NULL && GNT_WIDGET(box)->parent == NULL) 223 if (box->focus == NULL && GNT_WIDGET(box)->parent == NULL)
221 g_list_foreach(box->list, add_to_focus, box); 224 g_list_foreach(box->list, add_to_focus, box);
222 225
223 if (box->active == NULL && box->focus) 226 if (box->active == NULL && box->focus)
224 box->active = box->focus->data; 227 box->active = box->focus->data;
227 } 230 }
228 231
229 static void 232 static void
230 find_next_focus(GntBox *box) 233 find_next_focus(GntBox *box)
231 { 234 {
232 GList *iter = g_list_find(box->focus, box->active); 235 gpointer last = box->active;
233 if (iter && iter->next) 236 do
234 box->active = iter->next->data; 237 {
235 else if (box->focus) 238 GList *iter = g_list_find(box->focus, box->active);
236 box->active = box->focus->data; 239 if (iter && iter->next)
240 box->active = iter->next->data;
241 else if (box->focus)
242 box->active = box->focus->data;
243 if (!GNT_WIDGET_IS_FLAG_SET(box->active, GNT_WIDGET_INVISIBLE))
244 break;
245 } while (box->active != last);
237 } 246 }
238 247
239 static gboolean 248 static gboolean
240 gnt_box_key_pressed(GntWidget *widget, const char *text) 249 gnt_box_key_pressed(GntWidget *widget, const char *text)
241 { 250 {
562 { 571 {
563 GntWidget *w = GNT_WIDGET(iter->data); 572 GntWidget *w = GNT_WIDGET(iter->data);
564 int height, width; 573 int height, width;
565 int x, y; 574 int x, y;
566 575
576 if (GNT_WIDGET_IS_FLAG_SET(w, GNT_WIDGET_INVISIBLE))
577 continue;
578
567 if (GNT_IS_BOX(w)) 579 if (GNT_IS_BOX(w))
568 gnt_box_sync_children(GNT_BOX(w)); 580 gnt_box_sync_children(GNT_BOX(w));
569 581
570 gnt_widget_get_size(w, &width, &height); 582 gnt_widget_get_size(w, &width, &height);
571 583