ui/motif/container.c

changeset 34
0ec8a5f17782
parent 4
39b9b86ec452
child 36
e4198fc2ead4
--- a/ui/motif/container.c	Sat May 10 15:43:22 2014 +0200
+++ b/ui/motif/container.c	Sat May 10 18:52:22 2014 +0200
@@ -31,6 +31,7 @@
 
 #include "container.h"
 #include "../common/context.h"
+#include "../common/object.h"
 
 UiContainer* ui_frame_container(UiObject *obj, Widget frame) {
     UiContainer *ct = ucx_mempool_malloc(
@@ -44,3 +45,39 @@
 Widget ui_frame_container_add(UiContainer *ct, Arg *args, int *n) {
     return ct->widget;
 }
+
+
+UIWIDGET ui_sidebar(UiObject *obj) {
+    UiContainer *ct = uic_get_current_container(obj);
+    
+    Arg args[8];
+    int n = 0;
+    XtSetArg(args[n], XmNorientation, XmHORIZONTAL);
+    n++;
+    
+    Widget parent = ct->add(ct, args, &n);
+    Widget pane = XmCreatePanedWindow(parent, "pane", args, n);
+    XtManageChild(pane);
+    
+    // add sidebar widget
+    XtSetArg(args[0], XmNshadowType, XmSHADOW_ETCHED_OUT);
+    XtSetArg(args[1], XmNshadowThickness, 0);
+    Widget sidebar = XmCreateFrame(pane, "sidebar", args, 2);
+    //XtManageChild(sidebar);
+    
+    UiObject *left = uic_object_new(obj, sidebar);
+    left->container = ui_frame_container(left, sidebar);
+    
+    // add content widget
+    XtSetArg (args[2], XmNpaneMaximum, 8000);
+    Widget content = XmCreateFrame(pane, "content_area", args, 3);
+    XtManageChild(content);
+    
+    UiObject *right = uic_object_new(obj, content);
+    right->container = ui_frame_container(right, content);
+    
+    uic_obj_add(obj, right);
+    uic_obj_add(obj, left);
+    
+    return sidebar;
+}

mercurial