1645f5050Syouri/*
20bbfda8aSnia * Icon Manager includes
3645f5050Syouri *
4645f5050Syouri *
50bbfda8aSnia * Copyright 1989 Massachusetts Institute of Technology
6645f5050Syouri *
7645f5050Syouri * $XConsortium: iconmgr.h,v 1.11 89/12/10 17:47:02 jim Exp $
8645f5050Syouri *
90bbfda8aSnia * 09-Mar-89 Tom LaStrange              File Created
10645f5050Syouri *
110bbfda8aSnia * Copyright 1992 Claude Lecommandeur.
120bbfda8aSnia */
13645f5050Syouri
140bbfda8aSnia#ifndef _CTWM_ICONMGR_H
150bbfda8aSnia#define _CTWM_ICONMGR_H
16645f5050Syouri
170bbfda8aSniastruct WList {
180bbfda8aSnia	struct WList *next;
190bbfda8aSnia	struct WList *prev;
200bbfda8aSnia	struct WList *nextv;                /* pointer to the next virtual Wlist C.L. */
210bbfda8aSnia	struct TwmWindow *twm;
220bbfda8aSnia	struct IconMgr *iconmgr;
230bbfda8aSnia	Window w;
240bbfda8aSnia	Window icon;
250bbfda8aSnia	int x, y, width, height;
260bbfda8aSnia	int row, col;
270bbfda8aSnia	int me;
280bbfda8aSnia	ColorPair cp;
290bbfda8aSnia	Pixel highlight;
300bbfda8aSnia	Pixmap iconifypm;
310bbfda8aSnia	unsigned top, bottom;
320bbfda8aSnia	bool active;
330bbfda8aSnia	bool down;
34645f5050Syouri};
35645f5050Syouri
360bbfda8aSniastruct IconMgr {
37df1c27a6Snia	struct IconMgr *next;  ///< Next iconmgr in this workspace
38df1c27a6Snia	struct IconMgr *prev;  ///< Prev iconmgr in this workspace
39df1c27a6Snia	struct IconMgr *lasti; ///< Last iconmgr in this workspace
40df1c27a6Snia	struct IconMgr *nextv; ///< Next workspace's icon manager head
41df1c27a6Snia
420bbfda8aSnia	struct WList *first;                /* first window in the list */
430bbfda8aSnia	struct WList *last;                 /* last window in the list */
440bbfda8aSnia	struct WList *active;               /* the active entry */
450bbfda8aSnia	TwmWindow *twm_win;                 /* back pointer to the new parent */
460bbfda8aSnia	struct ScreenInfo *scr;             /* the screen this thing is on */
470bbfda8aSnia	int vScreen;                        /* the virtual screen this thing is on */
480bbfda8aSnia	Window w;                           /* this icon manager window */
490bbfda8aSnia	char *geometry;                     /* geometry string */
500bbfda8aSnia	char *name;
510bbfda8aSnia	char *icon_name;
520bbfda8aSnia	int x, y, width, height;
530bbfda8aSnia	int columns, cur_rows, cur_columns;
540bbfda8aSnia	int count;
55645f5050Syouri};
56645f5050Syouri
57645f5050Syouriextern WList *DownIconManager;
58645f5050Syouri
590bbfda8aSniavoid CreateIconManagers(void);
600bbfda8aSniaIconMgr *AllocateIconManager(char *name, char *geom, char *icon_name,
610bbfda8aSnia                             int columns);
620bbfda8aSniavoid AllocateOtherIconManagers(void);
630bbfda8aSniavoid MoveIconManager(int dir);
640bbfda8aSniavoid MoveMappedIconManager(int dir);
650bbfda8aSniavoid JumpIconManager(int dir);
660bbfda8aSniaWList *AddIconManager(TwmWindow *tmp_win);
670bbfda8aSniavoid InsertInIconManager(IconMgr *ip, WList *tmp, TwmWindow *tmp_win);
680bbfda8aSniavoid RemoveFromIconManager(IconMgr *ip, WList *tmp);
690bbfda8aSniavoid RemoveIconManager(TwmWindow *tmp_win);
700bbfda8aSniavoid CurrentIconManagerEntry(WList *current);
710bbfda8aSniavoid ActiveIconManager(WList *active);
720bbfda8aSniavoid NotActiveIconManager(WList *active);
730bbfda8aSniavoid DrawIconManagerBorder(WList *tmp, bool fill);
740bbfda8aSniavoid SortIconManager(IconMgr *ip);
750bbfda8aSniavoid PackIconManager(IconMgr *ip);
760bbfda8aSniavoid PackIconManagers(void);
770bbfda8aSniavoid dump_iconmanager(IconMgr *mgr, char *label);
780bbfda8aSniavoid DrawIconManagerIconName(TwmWindow *tmp_win);
790bbfda8aSniavoid ShowIconifiedIcon(TwmWindow *tmp_win);
800bbfda8aSnia
810bbfda8aSnia
820bbfda8aSnia/* Spacing between the text and the outer border.  */
830bbfda8aSnia#define ICON_MGR_IBORDER 3
840bbfda8aSnia/* Thickness of the outer border (3d or not).  */
850bbfda8aSnia#define ICON_MGR_OBORDER \
860bbfda8aSnia    (Scr->use3Diconmanagers ? Scr->IconManagerShadowDepth : 2)
87645f5050Syouri
88645f5050Syouri
890bbfda8aSnia#endif /* _CTWM_ICONMGR_H */
90