[wmii] call for implementation: wmii-10 layout

From: Anselm R. Garbe <garbeam_AT_wmii.de>
Date: Tue, 13 Dec 2005 02:03:27 +0100

Hi there,

if someone is willing to implement a wmi-10 layout, the layout
interface won't change now anymore. If you like to get in touch
just pull from darcs or mercurial repository.

See wmii/cmd/wm/layout_*.c for details how to implement a

The interface looks like:

struct Layout {
        char *name;
        void (*init) (Area *); /* called when layout is initialized */
        void (*deinit) (Area *); /* called when layout is uninitialized */
        void (*arrange) (Area *); /* called when area is resized */
        Bool (*attach) (Area *, Client *); /* called on attach */
        void (*detach) (Area *, Client *, Bool unmap); /* called on detach */
        void (*resize) (Frame *, XRectangle *, XPoint *); /* called after resize */
        void (*select) (Frame *, Bool raise); /* selection */
        Container *(*get_frames) (Area *); /* called for drawing */
        Action *(*get_actions) (Area *); /* local action table */

See wmii/cmd/wm/wm.h for further details about the structs.
See wmii/libcext/cext.h for details about the Container data
structure which provides a single linked list and a stack in one
implementation (list for navigation, stack for focus history) -
which is useful for frames, clients, areas and even pages.

To store arbitrary stuff in an area, there is an Area->aux
pointer, same can be done with frames, which contain a Frame->aux pointer.
Note that each layout implementation needs to create and destroy
frames by itself (this is required because otherwise a wmi-10
alike layout which assumes tabbing, won't be possible).

Note, that the pseudofs will be removed, thus there might be
minor changes if you're going to implement your own layout.


 Anselm R. Garbe  ><><  www.ebrag.de  ><><  GPG key: 0D73F361
Received on Tue Dec 13 2005 - 02:03:27 UTC

This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 15:59:35 UTC