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