[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
layout.

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.

Regards,

-- 
 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