{
class_property(icon) = "<:ecere>controls/statusBar.png";
- background = activeBorder;
+ background = formColor;
nonClient = true;
inactive = true;
anchor = Anchor { left = 0, right = 0, bottom = 0 };
{
if(this && field)
{
- field._statusBar = null;
+ field._statusBar = null;
width -= field.width + (guiApp.textMode ? 0 : 6);
fields.Remove(field);
delete field;
bool OnResizing(int * w, int * h)
{
- *h = Max(*h, 18);
+ *h = Max(*h, statusBarHeight);
if(!*w) *w = 80;
return true;
}
{
StatusField field;
int position = Max(clientSize.w, MIN_INFO_WIDTH + width)-1-2;
- Box clip { 2, 2, MIN_INFO_WIDTH, 17 };
+ Box clip { 2, 2, MIN_INFO_WIDTH, statusBarHeight-1 };
Window parent = this.parent;
if(!guiApp.textMode)
surface.ThinBevel(false, -1,0, clientSize.w+2, clientSize.h+1);
-
+
for(field = fields.first; field; field = field.next)
{
int x = position - field.width;
surface.SetBackground(white);
if(!guiApp.textMode)
{
- surface.ThinBevel(true, x - 2, 2, field.width + 4, 16);
+ surface.ThinBevel(true, x - 2, 2, field.width + 4, statusBarHeight-2);
surface.SetForeground(field.colorSet ? field.color : foreground);
}
else
}
if(field.text)
{
- Box clip { x, 2, x + field.width - 1, 17 };
+ Box clip { x, 2, x + field.width - 1, statusBarHeight-1 };
int tw;
surface.Clip(clip);
surface.TextExtent(field.text, strlen(field.text), &tw, null);
surface.WriteTextf(x + (field.width - tw) / 2, 2, field.text);
- surface.Clip(null);
+ surface.Clip(null);
}
position -= field.width + (guiApp.textMode ? 0 : 6);
}
surface.SetForeground(white);
else
surface.SetForeground(foreground);
-
+
surface.WriteTextf(2, 2, text);
surface.Clip(null);
}
- watch(text)
+ watch(caption)
{
text = property::text;
Update(null);
}
property Color color
{
- set
+ set
{
if(this)
{
{
if(this)
{
+ delete text;
if(format)
{
char tempText[MAX_F_STRING];
- int len;
va_list args;
va_start(args, format);
- vsprintf(tempText, format, args);
+ vsnprintf(tempText, sizeof(tempText), format, args);
+ tempText[sizeof(tempText)-1] = 0;
va_end(args);
- len = strlen(tempText);
-
- text = renew text char[len + 1];
- CopyBytes(text, tempText, len + 1);
+ text = CopyString(tempText);
}
- else
- delete text;
if(_statusBar)
_statusBar.Update(null);
}