| 396 uic_object_push_container(obj, container); |
396 uic_object_push_container(obj, container); |
| 397 |
397 |
| 398 return widget; |
398 return widget; |
| 399 } |
399 } |
| 400 |
400 |
| |
401 static void frame_create_subcontainer(UiObject *obj, UiFrameArgs *args) { |
| |
402 switch(args->subcontainer) { |
| |
403 default: |
| |
404 case UI_CONTAINER_VBOX: { |
| |
405 UiContainerArgs sub_args = { .spacing = args->spacing, .margin = args->padding }; |
| |
406 ui_vbox_create(obj, &sub_args); |
| |
407 break; |
| |
408 } |
| |
409 case UI_CONTAINER_HBOX: { |
| |
410 UiContainerArgs sub_args = { .spacing = args->spacing, .margin = args->padding }; |
| |
411 ui_hbox_create(obj, &sub_args); |
| |
412 break; |
| |
413 } |
| |
414 case UI_CONTAINER_GRID: { |
| |
415 UiContainerArgs sub_args = { .columnspacing = args->columnspacing, .rowspacing = args->rowspacing, .margin = args->padding }; |
| |
416 ui_grid_create(obj, &sub_args); |
| |
417 break; |
| |
418 } |
| |
419 case UI_CONTAINER_NO_SUB: { |
| |
420 break; // NOOP |
| |
421 } |
| |
422 } |
| |
423 } |
| |
424 |
| 401 UIWIDGET ui_frame_create(UiObject *obj, UiFrameArgs *args) { |
425 UIWIDGET ui_frame_create(UiObject *obj, UiFrameArgs *args) { |
| 402 UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; |
426 UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; |
| 403 UiLayout layout = UI_ARGS2LAYOUT(args); |
427 UiLayout layout = UI_ARGS2LAYOUT(args); |
| 404 |
428 |
| 405 GtkWidget *frame = gtk_frame_new(args->label); |
429 GtkWidget *frame = gtk_frame_new(args->label); |
| 406 ct->add(ct, frame, &layout); |
430 ct->add(ct, frame, &layout); |
| 407 |
431 |
| 408 UiContainerX *container = ui_frame_container(obj, frame); |
432 GtkWidget *sub = ui_subcontainer_create( |
| 409 uic_object_push_container(obj, container); |
433 args->subcontainer, |
| |
434 obj, args->spacing, |
| |
435 args->columnspacing, |
| |
436 args->rowspacing, |
| |
437 args->padding); |
| |
438 if(sub) { |
| |
439 FRAME_SET_CHILD(frame, sub); |
| |
440 } else { |
| |
441 UiContainerX *container = ui_frame_container(obj, frame); |
| |
442 uic_object_push_container(obj, container); |
| |
443 } |
| 410 |
444 |
| 411 return frame; |
445 return frame; |
| 412 } |
446 } |
| 413 |
447 |
| 414 UIEXPORT UIWIDGET ui_expander_create(UiObject *obj, UiFrameArgs *args) { |
448 UIEXPORT UIWIDGET ui_expander_create(UiObject *obj, UiFrameArgs *args) { |
| 417 |
451 |
| 418 GtkWidget *expander = gtk_expander_new(args->label); |
452 GtkWidget *expander = gtk_expander_new(args->label); |
| 419 gtk_expander_set_expanded(GTK_EXPANDER(expander), args->isexpanded); |
453 gtk_expander_set_expanded(GTK_EXPANDER(expander), args->isexpanded); |
| 420 ct->add(ct, expander, &layout); |
454 ct->add(ct, expander, &layout); |
| 421 |
455 |
| 422 UiContainerX *container = ui_expander_container(obj, expander); |
456 GtkWidget *sub = ui_subcontainer_create( |
| 423 uic_object_push_container(obj, container); |
457 args->subcontainer, |
| |
458 obj, args->spacing, |
| |
459 args->columnspacing, |
| |
460 args->rowspacing, |
| |
461 args->padding); |
| |
462 if(sub) { |
| |
463 EXPANDER_SET_CHILD(expander, sub); |
| |
464 } else { |
| |
465 UiContainerX *container = ui_expander_container(obj, expander); |
| |
466 uic_object_push_container(obj, container); |
| |
467 } |
| 424 |
468 |
| 425 return expander; |
469 return expander; |
| 426 } |
470 } |
| 427 |
471 |
| 428 |
472 |
| 432 |
476 |
| 433 GtkWidget *sw = SCROLLEDWINDOW_NEW(); |
477 GtkWidget *sw = SCROLLEDWINDOW_NEW(); |
| 434 ui_set_name_and_style(sw, args->name, args->style_class); |
478 ui_set_name_and_style(sw, args->name, args->style_class); |
| 435 ct->add(ct, sw, &layout); |
479 ct->add(ct, sw, &layout); |
| 436 |
480 |
| 437 UiContainerX *container = ui_scrolledwindow_container(obj, sw); |
481 GtkWidget *sub = ui_subcontainer_create( |
| 438 uic_object_push_container(obj, container); |
482 args->subcontainer, |
| |
483 obj, args->spacing, |
| |
484 args->columnspacing, |
| |
485 args->rowspacing, |
| |
486 args->padding); |
| |
487 if(sub) { |
| |
488 SCROLLEDWINDOW_SET_CHILD(sw, sub); |
| |
489 } else { |
| |
490 UiContainerX *container = ui_scrolledwindow_container(obj, sw); |
| |
491 uic_object_push_container(obj, container); |
| |
492 } |
| 439 |
493 |
| 440 return sw; |
494 return sw; |
| 441 } |
495 } |
| 442 |
496 |
| 443 |
497 |