Boost logo

Boost :

From: John Torjo (john.lists_at_[hidden])
Date: 2004-08-19 01:16:37


> Then engineer the library on top of that. This would simplify x-platform
> development... the problem is working out the right abstraction.

Exactly! But is there any ;) ?
One interesting point is: in Windows, once you create a window on a
thread, you'll only receive messages in that thread. I have no idea how
this happens on Mac/Unix.

>>
>> I like the idea of layout managers. Still, it seems (to me) in
>> real-life they kind of fail. You'll always want that special case
>> where you need to hide control X and show control Y, etc.
>
>
> So why not have that ability in the framework? That is the reason I
> posted this, to get ideas. It should not be that difficult to be able to
> change the layouts at run-time... once the layout managers have been
> written, that is.
>

I you create the right layout manager, definitely ;)

>
>>> [3] The support for events via "listeners". This will most likely be
>>> geared towards key/mouse events and "action" events (e.g. when the
>>> user presses on a button).
>>
>>
>> I'm not a big fan of listeners. You need to do a lot of coding
>> manually to set them, etc. I've implemented them totally different -
>> using event handler classes.
>
>
> My idea was something along the lines of:
>
> class MouseEvent
> {
> public:
> static const int LeftButton = 0;
> static const int MiddleButton = 1;
> static const int RightButton = 2;
> private:
> int button;
> unsigned int vkeys;
> win::api::point pt;
> public:
> inline MouseEvent( int, WPARAM, LPARAM );
> };
>
> MouseEvent::MouseEvent( int btn, WPARAM wp, LPARAM lp ):
> button( btn ),
> vkey( wp ),
> pt( lp )
> {
> }
>
> class MouseListener
> {
> public:
> virtual void mouseMove(
> const MouseEvent & );
> virtual void mouseButtonDown(
> const MouseEvent & );
> virtual void mouseButtonUp(
> const MouseEvent & );
> virtual void mouseButtonDoubleClick(
> const MouseEvent & );
> public:
> virtual ~MouseButtonListener();
> };

Good luck. I'm not a big fan of this. Mostly, because there are just so
many events out there. You'll need to create a certain class for each.
And what about custom events and such?

What about commands/ notifications (Win32 only)?
As a side-note, how are these implemented on Unix/MAC? Is there
similarity between them and Win32?

>>
>> I'm all for it, but again, I think it's so much work...
>
>
> But it will be fun! :D
>

Great! Just keep us posted!

Best,
John

-- 
John Torjo
Freelancer
-- john_at_[hidden]
Contributing editor, C/C++ Users Journal
-- "Win32 GUI Generics" -- generics & GUI do mix, after all
-- http://www.torjo.com/win32gui/
-- v1.3beta released - check out splitter/simple_viewer,
    a File Explorer/Viewer all in about 200 lines of code!
Professional Logging Solution for FREE
-- http://www.torjo.com/code/logging.zip (logging           - C++)
-- http://www.torjo.com/logview/         (viewing/filtering - Win32)
-- http://www.torjo.com/logbreak/        (debugging         - Win32)

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk