[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: StepBox v1.2
From: |
copal |
Subject: |
Re: StepBox v1.2 |
Date: |
Tue, 28 Oct 2003 18:29:25 -0600 |
allow me to re-phrase: been there, done that. IWM started as an objc
rewrite of aewm. then i scratched that and started an objc rewrite of
sapphire. scratched that. then blackbox. scratched that. then i
went back to aewm and grew IWM from there, with a more objc style
design. perhaps not the best design to start with, but it's morphed
into something bordering on sane in my opinion (after seeing what objc
code can become when it's done poorly).
the scheme is simple if you take time to weed through the code:
1. IWMWindowManager : the window manager itself
- deals with X events
- deals with Notifications
- maintains NSArray of IWMScreen objects
- maintains NSArray of IWMClient objects
2. IWMWindow : the IWM window object
- the abstracted X Window
- maintains images for the window (see IWMGraphics)
2. IWMScreen : the representation of a single display
- maintains a Root window
- maintains Cursors, Fonts, Colors, GCs for the Root window
- contains a single IWMTheme (to allow virtual desktops w/ different
themes)
3. IWMClient : the client window
- maintains all subwindows of a client
- parent window
- application window
- IWMTitlebar (contains buttons)
- IWMResizebar (contains left/right resize grips)
4. IWMIcon : application icon
- icon for an application, allows selection of a client, shows hidden
client windows
5. IWMGraphics lib : abstracted graphics routines
- IWMImage (IWM wrapper around an IWMCoreImage)
- IWMCoreImage (wrapper for whatever graphics lib we choose,
currently libwraster)
6. IWMCoreUtilities : wrappers around X primitives
- helps remove any X calls from the brunt of the code base
- ian
On Oct 27, 2003, at 9:03 PM, Yen-Ju Chen wrote:
From: copal <copal@dragonhelix.org>
To: "Yen-Ju Chen" <yjchenx@hotmail.com>
CC: discuss-gnustep@gnu.org
Subject: Re: StepBox v1.2
Date: Mon, 27 Oct 2003 18:26:48 -0600
have either of you looked at the source for interface?
Actually not.
I started StepBox because I met some focus problem
and I know it may relate to window manager.
After InterfaceWM failed to run on my system (I didn't try hard),
I think it will be faster to have a GNUstep-aware window manager
by porting an existing one rather than writing a new one.
Therefore I didn't spend time on the InterfaceWM source code.
Rewritting hackedbox from C++ takes about two weeks,
and another two weeks to make it run.
(should be faster for people who are familiar with C++).
It's not perfect, but as least I have something to use and work on.
It's small, and can be smaller.
I think the core part (XEvent handling) could be a reference for
others.
Yen-Ju
_________________________________________________________________
Cheer a special someone with a fun Halloween eCard from American
Greetings! Go to
http://www.msn.americangreetings.com/index_msn.pd?source=msne134
_______________________________________________
Discuss-gnustep mailing list
Discuss-gnustep@gnu.org
http://mail.gnu.org/mailman/listinfo/discuss-gnustep
Re: StepBox v1.2, Yen-Ju Chen, 2003/10/27
Re: StepBox v1.2, Yen-Ju Chen, 2003/10/29