Browse Source

add margin and fix y direction

JimMarlowe 9 years ago
parent
commit
0026a07c21

+ 14 - 2
Source/ThirdParty/TurboBadger/tb_atomic_widgets.cpp

@@ -199,8 +199,9 @@ TB_WIDGET_FACTORY(TBColorWheel, TBValue::TYPE_FLOAT, WIDGET_Z_TOP) {}
 
 // == TBBarGraph =======================================
 
-TBBarGraph::TBBarGraph() : color_(255,255,255,255), m_value (0.0), m_axis(AXIS_X)
+TBBarGraph::TBBarGraph() : color_(255,255,255,255), m_value (0.0), m_axis(AXIS_X), m_margin(0)
 {
+    SetSkinBg(TBIDC("background_solid"), WIDGET_INVOKE_INFO_NO_CALLBACKS);
 }
 
 void TBBarGraph::SetColor ( const char *name )
@@ -230,11 +231,22 @@ void TBBarGraph::OnPaint(const PaintProps &paint_props)
     {
         double w1 = (double)local_rect.w * ( m_value / 100.0 );
         local_rect.w = (int)w1;
+        if ( m_margin > 0 && m_margin < (local_rect.h/2)-2)
+        {
+            local_rect.h -= (m_margin *2);
+            local_rect.y += m_margin;
+        }
     }
     else if ( m_axis == AXIS_Y ) // vertical bar
     {
         double h1 = (double)local_rect.h * ( m_value / 100.0 );
+        local_rect.y = local_rect.h - (int)h1;
         local_rect.h = (int)h1;
+        if ( m_margin > 0 && m_margin < (local_rect.w/2)-2 )
+		{
+            local_rect.w -= (m_margin*2);
+            local_rect.x += m_margin;
+		}
     }
     g_renderer->DrawRectFill(local_rect, color_);
 }
@@ -247,7 +259,7 @@ void TBBarGraph::OnInflate(const INFLATE_INFO &info)
         SetAxis(*axis == 'x' ? AXIS_X : AXIS_Y);
     if (info.sync_type == TBValue::TYPE_FLOAT)
         SetValueDouble(info.node->GetValueFloat("value", 0));
-    
+    SetMargin( (unsigned)info.node->GetValueInt("margin", 0 ) );
     TBWidget::OnInflate(info);
 }
 

+ 3 - 0
Source/ThirdParty/TurboBadger/tb_atomic_widgets.h

@@ -127,11 +127,14 @@ public:
     virtual int GetValue() { return (int) GetValueDouble(); }
     virtual void SetAxis(AXIS axis);
     virtual AXIS GetAxis() const { return m_axis; }
+    virtual void SetMargin(unsigned margin) { m_margin = margin; }
+    virtual unsigned GetMargin() const { return m_margin; }
 
 private:
 	TBColor color_;
     double m_value;
     AXIS m_axis;
+	unsigned m_margin;
 };