GUI widget positions:

o Add 'true' and 'false' constants
o add .visible widget property
o allow dots to be part of section and key names in configs

svn-id: r21123
This commit is contained in:
Eugene Sandulenko 2006-03-07 13:41:36 +00:00
parent 059c7a0296
commit 1eff73cb41
6 changed files with 16 additions and 3 deletions

View File

@ -51,7 +51,7 @@ static char *rtrim(char *t) {
*/
bool ConfigFile::isValidName(const Common::String &name) {
const char *p = name.c_str();
while (*p && (isalnum(*p) || *p == '-' || *p == '_'))
while (*p && (isalnum(*p) || *p == '-' || *p == '_' || *p == '.'))
p++;
return *p == 0;
}

View File

@ -236,6 +236,9 @@ static const BuiltinConsts builtinConsts[] = {
{"kBigButtonHeight", GUI::kBigButtonHeight},
{"kBigSliderWidth", GUI::kBigSliderWidth},
{"kBigSliderHeight", GUI::kBigSliderHeight},
{"false", 0},
{"true", 1},
{NULL, 0}
};

View File

@ -62,6 +62,7 @@ GuiObject::GuiObject(Common::String name) : _firstWidget(0) {
_y = g_gui.evaluator()->getVar(name + ".y");
_w = g_gui.evaluator()->getVar(name + ".w");
_h = g_gui.evaluator()->getVar(name + ".h");
_name = name;
}

View File

@ -59,11 +59,12 @@ class GuiObject : public CommandReceiver {
protected:
int16 _x, _y;
uint16 _w, _h;
Common::String _name;
Widget *_firstWidget;
public:
GuiObject(int x, int y, int w, int h) : _x(x), _y(y), _w(w), _h(h), _firstWidget(0) { }
GuiObject(int x, int y, int w, int h) : _x(x), _y(y), _w(w), _h(h), _firstWidget(0), _name("") { }
GuiObject(Common::String name);
virtual int16 getAbsX() const { return _x; }

View File

@ -113,6 +113,14 @@ Widget *Widget::findWidgetInChain(Widget *w, int x, int y) {
return w;
}
bool Widget::isVisible() const {
if (g_gui.evaluator()->getVar(_name + ".visible") == 0)
return false;
return !(_flags & WIDGET_INVISIBLE);
}
#pragma mark -
StaticTextWidget::StaticTextWidget(GuiObject *boss, int x, int y, int w, int h, const String &text, TextAlignment align, WidgetSize ws)

View File

@ -137,7 +137,7 @@ public:
void setEnabled(bool e) { if (e) setFlags(WIDGET_ENABLED); else clearFlags(WIDGET_ENABLED); }
bool isEnabled() const { return _flags & WIDGET_ENABLED; }
bool isVisible() const { return !(_flags & WIDGET_INVISIBLE); }
bool isVisible() const;
protected:
virtual void drawWidget(bool hilite) {}