|
|
@@ -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);
|
|
|
}
|
|
|
|