On Wed, 01 Dec 2010 11:49:36 -0500, so <s...@so.do> wrote:

On Wed, 01 Dec 2010 18:38:23 +0200, so <s...@so.do> wrote:

Since i called it a bad design, i am entitled to introduce a better design.

interface renderer {
        void draw(rect rects, size_t n);
}

class widget {
        void draw(renderer r) { ... }
}

Pfft sorry for that abomination!

interface renderer {
        void draw(rect[] rects);
}

class widget {
        rect r;
        window owner;
        void draw(renderer) const { ... }
}

This requires you to store the widget-renderer relationship outside the widget. Since each widget has exactly one location where it lives, this is awkward. Much better to just store the relationship on each widget.

-Steve

Reply via email to