add new HACKING!
[dana/openbox.git] / engines / engineinterface.h
1 #ifndef __engineinterface_h
2 #define __engineinterface_h
3
4 #include "kernel/frame.h"
5 #include "kernel/geom.h"
6 #include <X11/Xlib.h>
7 #include <glib.h>
8
9 /* startup */
10 typedef gboolean EngineStartup();
11
12 /* shutdown */
13 typedef void EngineShutdown();
14
15 /* frame_new */
16 typedef Frame *EngineFrameNew();
17
18 /* frame_grab_client */
19 typedef void EngineFrameGrabClient(Frame *self, Client *client);
20 /* frame_release_client */
21 typedef void EngineFrameReleaseClient(Frame *self, Client *client);
22
23 /* frame_adjust_area */
24 /*! Update the frame's size/position to match the client */
25 typedef void EngineFrameAdjustArea(Frame *self, gboolean moved,
26                                    gboolean resized);
27 /* frame_adjust_shape */
28 /*! Shape the frame window to the client window */
29 typedef void EngineFrameAdjustShape(Frame *self);
30 /* frame_adjust_state */
31 /*! Update the frame to match the client's new state (for things like toggle
32   buttons, focus, and the title) XXX break this up */
33 typedef void EngineFrameAdjustState(Frame *self);
34 /* frame_adjust_focus */
35 /*! Update the frame to match the client's focused state */
36 typedef void EngineFrameAdjustFocus(Frame *self);
37 /* frame_adjust_title */
38 /*! Update the frame to display the client's current title */
39 typedef void EngineFrameAdjustTitle(Frame *self);
40 /* frame_adjust_icon */
41 /*! Update the frame to display the client's current icon */
42 typedef void EngineFrameAdjustIcon(Frame *self);
43
44 /* frame_show */
45 /*! Shows the frame */
46 typedef void EngineFrameShow(Frame *self);
47 /*! Hides the frame */
48 typedef void EngineFrameHide(Frame *self);
49
50 /* get_context */
51 typedef Context EngineGetContext(Client *client, Window win);
52
53 typedef void EngineRenderLabel(Window win, Rect *area, char *text,
54                                gboolean hilight, gboolean toplevel);
55
56 typedef void EngineSizeLabel(char *text, gboolean hilight, gboolean toplevel,
57                              Size *s);
58
59 #endif