Browse Source

Additional UILayout settings

Josh Engebretson 10 years ago
parent
commit
c78f5e673e

+ 16 - 0
Source/Atomic/UI/UILayout.cpp

@@ -34,6 +34,22 @@ void UILayout::SetSpacing(int spacing)
         return;
 
     ((tb::TBLayout*)widget_)->SetSpacing(spacing);
+}
+
+void UILayout::SetLayoutPosition(/*LAYOUT_POSITION*/ unsigned position)
+{
+    if (!widget_)
+        return;
+
+    ((tb::TBLayout*)widget_)->SetLayoutPosition( (LAYOUT_POSITION) position);
+}
+
+void UILayout::SetLayoutDistributionPosition(/*LAYOUT_DISTRIBUTION_POSITION*/ unsigned distribution_pos)
+{
+    if (!widget_)
+        return;
+
+    ((tb::TBLayout*)widget_)->SetLayoutDistributionPosition( (LAYOUT_DISTRIBUTION_POSITION) distribution_pos);
 
 }
 

+ 4 - 0
Source/Atomic/UI/UILayout.h

@@ -20,7 +20,11 @@ public:
 
     void SetAxis(/* AXIS */ unsigned axis);
     void SetLayoutSize(/* LAYOUT_SIZE */ unsigned size);
+
+    void SetLayoutPosition(/*LAYOUT_POSITION*/ unsigned position);
     void SetLayoutDistribution(/* LAYOUT_DISTRIBUTION */ unsigned distribution);
+    void SetLayoutDistributionPosition(/*LAYOUT_DISTRIBUTION_POSITION*/ unsigned distribution_pos);
+
 
 protected:
 

+ 25 - 0
Source/Atomic/UI/UIWidget.cpp

@@ -119,6 +119,15 @@ void UIWidget::SetText(const String& text)
     widget_->SetText(text.CString());
 }
 
+void UIWidget::SetGravity(/*WIDGET_GRAVITY*/ unsigned gravity)
+{
+    if (!widget_)
+        return;
+
+    widget_->SetGravity((WIDGET_GRAVITY) gravity);
+
+}
+
 void UIWidget::SetPosition(int x, int y)
 {
     if (!widget_)
@@ -237,6 +246,22 @@ const String& UIWidget::GetId()
 
 }
 
+void UIWidget::SetId(const String& id)
+{
+    if (!widget_)
+    {
+        if (id_.Length())
+            id_.Clear();
+
+        return;
+    }
+
+    id_ = id;
+    widget_->SetID(TBIDC(id.CString()));
+
+}
+
+
 bool UIWidget::OnEvent(const tb::TBWidgetEvent &ev)
 {
     UI* ui = GetSubsystem<UI>();

+ 3 - 0
Source/Atomic/UI/UIWidget.h

@@ -38,8 +38,11 @@ public:
 
     // String ID
     const String& GetId();
+    void SetId(const String& id);
 
     void Center();
+    void SetGravity(/*WIDGET_GRAVITY*/ unsigned gravity);
+
 
     void Invalidate();
     void Destroy();

+ 51 - 1
Source/AtomicJS/Javascript/JSUIAPI.cpp

@@ -131,6 +131,19 @@ int UI_DebugGetWrappedWidgetCount(duk_context* ctx)
     return 1;
 }
 
+int UI_DebugShowSettingsWindow(duk_context* ctx)
+{
+    UIWidget* widget = js_to_class_instance<UIWidget>(ctx, 0, 0);
+
+    if (!widget)
+        return 0;
+
+    if (widget->GetInternalWidget())
+        tb::ShowDebugInfoSettingsWindow(widget->GetInternalWidget());
+
+    return 0;
+}
+
 int UI_Init(duk_context* ctx)
 {
     JSVM* vm = JSVM::GetJSVM(ctx);
@@ -164,11 +177,33 @@ void jsapi_init_ui(JSVM* vm)
     duk_push_c_function(ctx, UI_DebugGetUIKeepAliveCount, 0);
     duk_put_prop_string(ctx, -2, "debugGetUIKeepAliveCount");
 
+    duk_push_c_function(ctx, UI_DebugShowSettingsWindow, 1);
+    duk_put_prop_string(ctx, -2, "debugShowSettingsWindow");
+
+
     // Layout
 
+    duk_push_number(ctx, (double) tb::WIDGET_GRAVITY_NONE);
+    duk_put_prop_string(ctx, -2, "GRAVITY_NONE");
+    duk_push_number(ctx, (double) tb::WIDGET_GRAVITY_LEFT);
+    duk_put_prop_string(ctx, -2, "GRAVITY_LEFT");
+    duk_push_number(ctx, (double) tb::WIDGET_GRAVITY_RIGHT);
+    duk_put_prop_string(ctx, -2, "GRAVITY_RIGHT");
+    duk_push_number(ctx, (double) tb::WIDGET_GRAVITY_TOP);
+    duk_put_prop_string(ctx, -2, "GRAVITY_TOP");
+    duk_push_number(ctx, (double) tb::WIDGET_GRAVITY_BOTTOM);
+    duk_put_prop_string(ctx, -2, "GRAVITY_BOTTOM");
+    duk_push_number(ctx, (double) tb::WIDGET_GRAVITY_LEFT_RIGHT);
+    duk_put_prop_string(ctx, -2, "GRAVITY_LEFT_RIGHT");
+    duk_push_number(ctx, (double) tb::WIDGET_GRAVITY_TOP_BOTTOM);
+    duk_put_prop_string(ctx, -2, "GRAVITY_TOP_BOTTOM");
+    duk_push_number(ctx, (double) tb::WIDGET_GRAVITY_ALL);
+    duk_put_prop_string(ctx, -2, "GRAVITY_ALL");
+    duk_push_number(ctx, (double) tb::WIDGET_GRAVITY_DEFAULT);
+    duk_put_prop_string(ctx, -2, "GRAVITY_DEFAULT");
+
     duk_push_number(ctx, (double) tb::AXIS_X);
     duk_put_prop_string(ctx, -2, "AXIS_X");
-
     duk_push_number(ctx, (double) tb::AXIS_Y);
     duk_put_prop_string(ctx, -2, "AXIS_Y");
 
@@ -186,6 +221,21 @@ void jsapi_init_ui(JSVM* vm)
     duk_push_number(ctx, (double) tb::LAYOUT_DISTRIBUTION_GRAVITY);
     duk_put_prop_string(ctx, -2, "LAYOUT_DISTRIBUTION_GRAVITY");
 
+    duk_push_number(ctx, (double) tb::LAYOUT_POSITION_CENTER);
+    duk_put_prop_string(ctx, -2, "LAYOUT_POSITION_CENTER");
+    duk_push_number(ctx, (double) tb::LAYOUT_POSITION_LEFT_TOP);
+    duk_put_prop_string(ctx, -2, "LAYOUT_POSITION_LEFT_TOP");
+    duk_push_number(ctx, (double) tb::LAYOUT_POSITION_RIGHT_BOTTOM);
+    duk_put_prop_string(ctx, -2, "LAYOUT_POSITION_RIGHT_BOTTOM");
+    duk_push_number(ctx, (double) tb::LAYOUT_POSITION_GRAVITY);
+    duk_put_prop_string(ctx, -2, "LAYOUT_POSITION_GRAVITY");
+
+    duk_push_number(ctx, (double) tb::LAYOUT_DISTRIBUTION_POSITION_CENTER);
+    duk_put_prop_string(ctx, -2, "LAYOUT_DISTRIBUTION_POSITION_CENTER");
+    duk_push_number(ctx, (double) tb::LAYOUT_DISTRIBUTION_POSITION_LEFT_TOP);
+    duk_put_prop_string(ctx, -2, "LAYOUT_DISTRIBUTION_POSITION_LEFT_TOP");
+    duk_push_number(ctx, (double) tb::LAYOUT_DISTRIBUTION_POSITION_RIGHT_BOTTOM);
+    duk_put_prop_string(ctx, -2, "LAYOUT_DISTRIBUTION_POSITION_RIGHT_BOTTOM");
 
     // Window Settings
     duk_push_number(ctx, (double) tb::WINDOW_SETTINGS_NONE);