mad optimizations

This commit is contained in:
Dana Jansens 2003-02-08 08:59:24 +00:00
parent ee9eaed6cd
commit ef231de58a
6 changed files with 24 additions and 22 deletions

View file

@ -12,7 +12,6 @@ Button::Button(Widget *parent)
: Label(parent), : Label(parent),
_pressed(false) _pressed(false)
{ {
setHighlighted(false);
setHorizontalJustify(RenderStyle::CenterJustify); setHorizontalJustify(RenderStyle::CenterJustify);
setVerticalJustify(RenderStyle::CenterJustify); setVerticalJustify(RenderStyle::CenterJustify);
styleChanged(*RenderStyle::style(screen())); styleChanged(*RenderStyle::style(screen()));
@ -70,7 +69,7 @@ void Button::styleChanged(const RenderStyle &style)
_texture = style.buttonUnpressUnfocusBackground(); _texture = style.buttonUnpressUnfocusBackground();
_forecolor = style.buttonUnfocusColor(); _forecolor = style.buttonUnfocusColor();
} }
Widget::styleChanged(style); refresh();
} }
} }

View file

@ -17,7 +17,7 @@ Label::Label(Widget *parent)
_text(""), _text(""),
_justify_horz(RenderStyle::LeftTopJustify), _justify_horz(RenderStyle::LeftTopJustify),
_justify_vert(RenderStyle::LeftTopJustify), _justify_vert(RenderStyle::LeftTopJustify),
_highlight(true) _highlight(false)
{ {
styleChanged(*RenderStyle::style(screen())); styleChanged(*RenderStyle::style(screen()));
} }
@ -92,9 +92,10 @@ void Label::styleChanged(const RenderStyle &style)
_texture = style.labelUnfocusBackground(); _texture = style.labelUnfocusBackground();
_forecolor = style.textUnfocusColor(); _forecolor = style.textUnfocusColor();
} }
_font = style.labelFont(); if (_font != style.labelFont()) {
Widget::styleChanged(style); _font = style.labelFont();
calcDefaultSizes(); calcDefaultSizes();
}
} }
void Label::renderForeground(Surface &surface) void Label::renderForeground(Surface &surface)

View file

@ -61,7 +61,7 @@ Widget::Widget(Widget *parent, Direction direction, int bevel)
assert(parent); assert(parent);
createWindow(false); createWindow(false);
parent->addChild(this); parent->addChild(this);
parent->layout(); if (parent->visible()) parent->layout();
_dispatcher->registerHandler(_window, this); _dispatcher->registerHandler(_window, this);
} }
@ -80,8 +80,9 @@ void Widget::show(bool children)
{ {
if (children) { if (children) {
std::list<Widget*>::iterator it , end = _children.end(); std::list<Widget*>::iterator it , end = _children.end();
for (it = _children.begin(); it != end; ++it) for (it = _children.begin(); it != end; ++it) {
(*it)->show(true); (*it)->show(true);
}
} }
if (!_visible) { if (!_visible) {
_visible = true; _visible = true;
@ -107,6 +108,7 @@ void Widget::setEventMask(long e)
void Widget::update() void Widget::update()
{ {
if (!_visible) return;
_dirty = true; _dirty = true;
if (parent()) if (parent())
parent()->layout(); // relay-out us and our siblings parent()->layout(); // relay-out us and our siblings
@ -224,6 +226,7 @@ void Widget::setBevel(int b)
void Widget::layout() void Widget::layout()
{ {
if (_children.empty() || !_visible) return;
if (_direction == Horizontal) if (_direction == Horizontal)
layoutHorz(); layoutHorz();
else else
@ -470,6 +473,9 @@ void Widget::configureHandler(const XConfigureEvent &e)
if (_ignore_config) { if (_ignore_config) {
_ignore_config--; _ignore_config--;
} else { } else {
// only interested in these for top level windows
if (_parent) return;
XEvent ev; XEvent ev;
ev.xconfigure.width = e.width; ev.xconfigure.width = e.width;
ev.xconfigure.height = e.height; ev.xconfigure.height = e.height;

View file

@ -77,7 +77,7 @@ public:
virtual void exposeHandler(const XExposeEvent &e); virtual void exposeHandler(const XExposeEvent &e);
virtual void configureHandler(const XConfigureEvent &e); virtual void configureHandler(const XConfigureEvent &e);
virtual void styleChanged(const RenderStyle &) {calcDefaultSizes();update();} virtual void styleChanged(const RenderStyle &) {}
protected: protected:
virtual void addChild(Widget *w) { assert(w); _children.push_back(w); } virtual void addChild(Widget *w) { assert(w); _children.push_back(w); }

View file

@ -149,9 +149,9 @@ def _do_move():
_poplabel.setText(text) _poplabel.setText(text)
scsize = otk.display.screenInfo(_screen).size() scsize = otk.display.screenInfo(_screen).size()
size = _poplabel.minSize() size = _poplabel.minSize()
_popwidget.resize(_poplabel.minSize()) _popwidget.moveresize(otk.Rect((scsize.width() - size.width()) / 2,
_popwidget.move(otk.Point((scsize.width() - size.width()) / 2, (scsize.height() - size.height()) / 2,
(scsize.height() - size.height()) / 2)) size.width(), size.height()))
_popwidget.show(1) _popwidget.show(1)
def _move(data): def _move(data):
@ -235,9 +235,9 @@ def _do_resize():
_poplabel.setText(text) _poplabel.setText(text)
scsize = otk.display.screenInfo(_screen).size() scsize = otk.display.screenInfo(_screen).size()
size = _poplabel.minSize() size = _poplabel.minSize()
_popwidget.resize(_poplabel.minSize()) _popwidget.moveresize(otk.Rect((scsize.width() - size.width()) / 2,
_popwidget.move(otk.Point((scsize.width() - size.width()) / 2, (scsize.height() - size.height()) / 2,
(scsize.height() - size.height()) / 2)) size.width(), size.height()))
_popwidget.show(1) _popwidget.show(1)
def _resize(data): def _resize(data):

View file

@ -113,10 +113,6 @@ class _cycledata:
if current and c.window() == current.window(): if current and c.window() == current.window():
self.menupos = i self.menupos = i
w.setHighlighted(1) w.setHighlighted(1)
pass
else:
w.setHighlighted(0)
pass
self.menuwidgets.append(w) self.menuwidgets.append(w)
if c.iconic(): t = c.iconTitle() if c.iconic(): t = c.iconTitle()
@ -147,9 +143,9 @@ class _cycledata:
# show or hide the list and its child widgets # show or hide the list and its child widgets
if len(self.clients) > 1: if len(self.clients) > 1:
size = self.screeninfo.size() size = self.screeninfo.size()
self.widget.resize(otk.Size(width, height)) self.widget.moveresize(otk.Rect((size.width() - width) / 2,
self.widget.move(otk.Point((size.width() - width) / 2, (size.height() - height) / 2,
(size.height() - height) / 2)) width, height))
self.widget.show(1) self.widget.show(1)
def activatetarget(self, final): def activatetarget(self, final):