change how the widgets' _dirty flag works so that all inheritence levels of the widget class can use it
This commit is contained in:
parent
d4d15160fe
commit
77342413ef
6 changed files with 23 additions and 60 deletions
|
@ -3,7 +3,7 @@
|
|||
namespace otk {
|
||||
|
||||
OtkFocusLabel::OtkFocusLabel(OtkWidget *parent)
|
||||
: OtkFocusWidget(parent), _text(""), _dirty(false)
|
||||
: OtkFocusWidget(parent), _text("")
|
||||
{
|
||||
setTexture(getStyle()->getLabelFocus());
|
||||
setUnfocusTexture(getStyle()->getLabelUnfocus());
|
||||
|
@ -55,21 +55,6 @@ void OtkFocusLabel::update(void)
|
|||
ft.drawString(getWindow(), x, bevel, *text_color, t);
|
||||
} else
|
||||
OtkFocusWidget::update();
|
||||
|
||||
_dirty = false;
|
||||
}
|
||||
|
||||
int OtkFocusLabel::exposeHandler(const XExposeEvent &e)
|
||||
{
|
||||
_dirty = true;
|
||||
return OtkFocusWidget::exposeHandler(e);
|
||||
}
|
||||
|
||||
int OtkFocusLabel::configureHandler(const XConfigureEvent &e)
|
||||
{
|
||||
if (!(e.width == width() && e.height == height()))
|
||||
_dirty = true;
|
||||
return OtkFocusWidget::configureHandler(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -16,13 +16,10 @@ public:
|
|||
void setText(const std::string &text) { _text = text; _dirty = true; }
|
||||
|
||||
void update(void);
|
||||
int exposeHandler(const XExposeEvent &e);
|
||||
int configureHandler(const XConfigureEvent &e);
|
||||
|
||||
private:
|
||||
|
||||
std::string _text;
|
||||
bool _dirty;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
17
otk/label.cc
17
otk/label.cc
|
@ -3,7 +3,7 @@
|
|||
namespace otk {
|
||||
|
||||
OtkLabel::OtkLabel(OtkWidget *parent)
|
||||
: OtkWidget(parent), _text(""), _dirty(false)
|
||||
: OtkWidget(parent), _text("")
|
||||
{
|
||||
setTexture(getStyle()->getLabelUnfocus());
|
||||
}
|
||||
|
@ -52,21 +52,6 @@ void OtkLabel::update(void)
|
|||
ft.drawString(getWindow(), x, bevel, *getStyle()->getTextUnfocus(), t);
|
||||
} else
|
||||
OtkWidget::update();
|
||||
|
||||
_dirty = false;
|
||||
}
|
||||
|
||||
int OtkLabel::exposeHandler(const XExposeEvent &e)
|
||||
{
|
||||
_dirty = true;
|
||||
return OtkWidget::exposeHandler(e);
|
||||
}
|
||||
|
||||
int OtkLabel::configureHandler(const XConfigureEvent &e)
|
||||
{
|
||||
if (!(e.width == width() && e.height == height()))
|
||||
_dirty = true;
|
||||
return OtkWidget::configureHandler(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -16,13 +16,10 @@ public:
|
|||
void setText(const std::string &text) { _text = text; _dirty = true; }
|
||||
|
||||
void update(void);
|
||||
int exposeHandler(const XExposeEvent &e);
|
||||
int configureHandler(const XConfigureEvent &e);
|
||||
|
||||
private:
|
||||
|
||||
std::string _text;
|
||||
bool _dirty;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ namespace otk {
|
|||
|
||||
OtkWidget::OtkWidget(OtkWidget *parent, Direction direction)
|
||||
: OtkEventHandler(),
|
||||
_dirty(false),
|
||||
_parent(parent), _style(parent->getStyle()), _direction(direction),
|
||||
_cursor(parent->getCursor()), _bevel_width(parent->getBevelWidth()),
|
||||
_ignore_config(0),
|
||||
|
@ -17,7 +18,7 @@ OtkWidget::OtkWidget(OtkWidget *parent, Direction direction)
|
|||
_grabbed_keyboard(false), _stretchable_vert(false),
|
||||
_stretchable_horz(false), _texture(0), _bg_pixmap(0), _bg_pixel(0),
|
||||
_screen(parent->getScreen()), _fixed_width(false), _fixed_height(false),
|
||||
_dirty(false), _event_dispatcher(parent->getEventDispatcher())
|
||||
_event_dispatcher(parent->getEventDispatcher())
|
||||
{
|
||||
parent->addChild(this);
|
||||
create();
|
||||
|
@ -27,12 +28,13 @@ OtkWidget::OtkWidget(OtkWidget *parent, Direction direction)
|
|||
OtkWidget::OtkWidget(OtkApplication *app, Direction direction,
|
||||
Cursor cursor, int bevel_width)
|
||||
: OtkEventHandler(),
|
||||
_dirty(false),
|
||||
_parent(0), _style(app->getStyle()), _direction(direction), _cursor(cursor),
|
||||
_bevel_width(bevel_width), _ignore_config(0), _visible(false),
|
||||
_focused(false), _grabbed_mouse(false), _grabbed_keyboard(false),
|
||||
_stretchable_vert(false), _stretchable_horz(false), _texture(0),
|
||||
_bg_pixmap(0), _bg_pixel(0), _screen(app->getStyle()->getScreen()),
|
||||
_fixed_width(false), _fixed_height(false), _dirty(false),
|
||||
_fixed_width(false), _fixed_height(false),
|
||||
_event_dispatcher(app)
|
||||
{
|
||||
assert(app);
|
||||
|
@ -43,12 +45,13 @@ OtkWidget::OtkWidget(OtkApplication *app, Direction direction,
|
|||
OtkWidget::OtkWidget(Style *style, Direction direction,
|
||||
Cursor cursor, int bevel_width)
|
||||
: OtkEventHandler(),
|
||||
_dirty(false),
|
||||
_parent(0), _style(style), _direction(direction), _cursor(cursor),
|
||||
_bevel_width(bevel_width), _ignore_config(0), _visible(false),
|
||||
_focused(false), _grabbed_mouse(false), _grabbed_keyboard(false),
|
||||
_stretchable_vert(false), _stretchable_horz(false), _texture(0),
|
||||
_bg_pixmap(0), _bg_pixel(0), _screen(style->getScreen()),
|
||||
_fixed_width(false), _fixed_height(false), _dirty(false)
|
||||
_fixed_width(false), _fixed_height(false)
|
||||
{
|
||||
assert(style);
|
||||
create();
|
||||
|
@ -426,31 +429,25 @@ void OtkWidget::setEventDispatcher(OtkEventDispatcher *disp)
|
|||
int OtkWidget::exposeHandler(const XExposeEvent &e)
|
||||
{
|
||||
OtkEventHandler::exposeHandler(e);
|
||||
if (e.window == _window) {
|
||||
_dirty = true;
|
||||
update();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
_dirty = true;
|
||||
update();
|
||||
return true;
|
||||
}
|
||||
|
||||
int OtkWidget::configureHandler(const XConfigureEvent &e)
|
||||
{
|
||||
OtkEventHandler::configureHandler(e);
|
||||
if (e.window == _window) {
|
||||
if (_ignore_config) {
|
||||
_ignore_config--;
|
||||
} else {
|
||||
if (!(e.width == _rect.width() && e.height == _rect.height())) {
|
||||
_dirty = true;
|
||||
_rect.setSize(e.width, e.height);
|
||||
}
|
||||
update();
|
||||
if (_ignore_config) {
|
||||
_ignore_config--;
|
||||
} else {
|
||||
if (!(e.width == _rect.width() && e.height == _rect.height())) {
|
||||
_dirty = true;
|
||||
_rect.setSize(e.width, e.height);
|
||||
}
|
||||
return true;
|
||||
update();
|
||||
}
|
||||
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -100,6 +100,10 @@ public:
|
|||
{ return _event_dispatcher; }
|
||||
void setEventDispatcher(OtkEventDispatcher *disp);
|
||||
|
||||
protected:
|
||||
|
||||
bool _dirty;
|
||||
|
||||
private:
|
||||
|
||||
void create(void);
|
||||
|
@ -139,8 +143,6 @@ private:
|
|||
bool _fixed_width;
|
||||
bool _fixed_height;
|
||||
|
||||
bool _dirty;
|
||||
|
||||
OtkEventDispatcher *_event_dispatcher;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue