10bbfda8aSnia/*
20bbfda8aSnia * Workspace-related structures and definitions
30bbfda8aSnia */
40bbfda8aSnia
50bbfda8aSnia#ifndef _CTWM_WORKSPACE_STRUCTS_H
60bbfda8aSnia#define _CTWM_WORKSPACE_STRUCTS_H
70bbfda8aSnia
80bbfda8aSnia#define MAXWORKSPACE 32
90bbfda8aSnia
100bbfda8aSniatypedef enum {
110bbfda8aSnia	WMS_map,
120bbfda8aSnia	WMS_buttons,
130bbfda8aSnia} WMgrState;
140bbfda8aSnia
150bbfda8aSniatypedef enum {
160bbfda8aSnia	STYLE_NORMAL,
170bbfda8aSnia	STYLE_STYLE1,
180bbfda8aSnia	STYLE_STYLE2,
190bbfda8aSnia	STYLE_STYLE3,
200bbfda8aSnia} ButtonStyle;
210bbfda8aSnia
220bbfda8aSniastruct winList {
230bbfda8aSnia	struct WorkSpace    *wlist;
240bbfda8aSnia	Window              w;
250bbfda8aSnia	int                 x, y;
260bbfda8aSnia	int                 width, height;
270bbfda8aSnia	TwmWindow           *twm_win;
280bbfda8aSnia	ColorPair           cp;
290bbfda8aSnia	MyFont              font;
300bbfda8aSnia	struct winList      *next;
310bbfda8aSnia};
320bbfda8aSnia
330bbfda8aSniastruct WorkSpaceMgr {
340bbfda8aSnia	struct WorkSpace       *workSpaceList;
350bbfda8aSnia	struct WorkSpaceWindow *workSpaceWindowList;
360bbfda8aSnia	struct OccupyWindow    *occupyWindow;
370bbfda8aSnia	MyFont          buttonFont;
380bbfda8aSnia	MyFont          windowFont;
390bbfda8aSnia	ColorPair       windowcp;
400bbfda8aSnia	bool            windowcpgiven;
410bbfda8aSnia	ColorPair       cp;
420bbfda8aSnia	long            count;
430bbfda8aSnia	char            *geometry;
440bbfda8aSnia	int             lines, columns;
450bbfda8aSnia	bool            noshowoccupyall;
460bbfda8aSnia	WMgrState       initialstate;
470bbfda8aSnia	ButtonStyle     buttonStyle;
480bbfda8aSnia	name_list       *windowBackgroundL;
490bbfda8aSnia	name_list       *windowForegroundL;
500bbfda8aSnia	/* The fields below have been moved from WorkSpaceWindow */
510bbfda8aSnia	ColorPair           curColors;
520bbfda8aSnia	Image               *curImage;
530bbfda8aSnia	Pixel               curBorderColor;
540bbfda8aSnia	bool                curPaint;
550bbfda8aSnia
560bbfda8aSnia	ColorPair           defColors;
570bbfda8aSnia	Image              *defImage;
580bbfda8aSnia	Pixel               defBorderColor;
590bbfda8aSnia	int                 hspace, vspace;
600bbfda8aSnia	char               *name;
610bbfda8aSnia	char               *icon_name;
620bbfda8aSnia};
630bbfda8aSnia
640bbfda8aSniastruct WorkSpace {
650bbfda8aSnia	int                 number;
660bbfda8aSnia	char                *name;
670bbfda8aSnia	char                *label;
680bbfda8aSnia	Image               *image;
690bbfda8aSnia	name_list           *clientlist;
700bbfda8aSnia	IconMgr             *iconmgr;
710bbfda8aSnia	ColorPair           cp;
720bbfda8aSnia	ColorPair           backcp;
730bbfda8aSnia	TwmWindow           *save_focus;  /* Used by SaveWorkspaceFocus feature */
740bbfda8aSnia	struct WindowRegion *FirstWindowRegion;
750bbfda8aSnia	struct WorkSpace *next;
760bbfda8aSnia};
770bbfda8aSnia
780bbfda8aSniastruct MapSubwindow {
790bbfda8aSnia	Window  w;
800bbfda8aSnia	int     x, y;
810bbfda8aSnia	WinList *wl;
820bbfda8aSnia};
830bbfda8aSnia
840bbfda8aSniastruct ButtonSubwindow {
850bbfda8aSnia	Window w;
860bbfda8aSnia};
870bbfda8aSnia
880bbfda8aSniastruct WorkSpaceWindow {                /* There is one per virtual screen */
890bbfda8aSnia	VirtualScreen   *vs;
900bbfda8aSnia	Window          w;
910bbfda8aSnia	TwmWindow       *twm_win;
920bbfda8aSnia	MapSubwindow    **mswl;               /* MapSubWindow List */
930bbfda8aSnia	ButtonSubwindow **bswl;               /* ButtonSubwindow List */
940bbfda8aSnia	WorkSpace       *currentwspc;
950bbfda8aSnia
960bbfda8aSnia	WMgrState     state;
970bbfda8aSnia
980bbfda8aSnia	int           width, height;   // Window dimensions
990bbfda8aSnia	int           bwidth, bheight; // Button dimensions
1000bbfda8aSnia	int           wwidth, wheight; // Map dimensions
1010bbfda8aSnia};
1020bbfda8aSnia
1030bbfda8aSnia#endif /* _CTWM_WORKSPACE_STRUCTS_H */
104