iconmgr.h revision 645f5050
1645f5050Syouri/*
2645f5050Syouri * Copyright 1989 Massachusetts Institute of Technology
3645f5050Syouri *
4645f5050Syouri * Permission to use, copy, modify, and distribute this software and its
5645f5050Syouri * documentation for any purpose and without fee is hereby granted, provided
6645f5050Syouri * that the above copyright notice appear in all copies and that both that
7645f5050Syouri * copyright notice and this permission notice appear in supporting
8645f5050Syouri * documentation, and that the name of M.I.T. not be used in advertising
9645f5050Syouri * or publicity pertaining to distribution of the software without specific,
10645f5050Syouri * written prior permission.  M.I.T. makes no representations about the
11645f5050Syouri * suitability of this software for any purpose.  It is provided "as is"
12645f5050Syouri * without express or implied warranty.
13645f5050Syouri *
14645f5050Syouri * M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
15645f5050Syouri * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T.
16645f5050Syouri * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
17645f5050Syouri * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
18645f5050Syouri * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
19645f5050Syouri * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
20645f5050Syouri */
21645f5050Syouri/*
22645f5050Syouri *  [ ctwm ]
23645f5050Syouri *
24645f5050Syouri *  Copyright 1992 Claude Lecommandeur.
25645f5050Syouri *
26645f5050Syouri * Permission to use, copy, modify  and distribute this software  [ctwm] and
27645f5050Syouri * its documentation for any purpose is hereby granted without fee, provided
28645f5050Syouri * that the above  copyright notice appear  in all copies and that both that
29645f5050Syouri * copyright notice and this permission notice appear in supporting documen-
30645f5050Syouri * tation, and that the name of  Claude Lecommandeur not be used in adverti-
31645f5050Syouri * sing or  publicity  pertaining to  distribution of  the software  without
32645f5050Syouri * specific, written prior permission. Claude Lecommandeur make no represen-
33645f5050Syouri * tations  about the suitability  of this software  for any purpose.  It is
34645f5050Syouri * provided "as is" without express or implied warranty.
35645f5050Syouri *
36645f5050Syouri * Claude Lecommandeur DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
37645f5050Syouri * INCLUDING ALL  IMPLIED WARRANTIES OF  MERCHANTABILITY AND FITNESS.  IN NO
38645f5050Syouri * EVENT SHALL  Claude Lecommandeur  BE LIABLE FOR ANY SPECIAL,  INDIRECT OR
39645f5050Syouri * CONSEQUENTIAL  DAMAGES OR ANY  DAMAGES WHATSOEVER  RESULTING FROM LOSS OF
40645f5050Syouri * USE, DATA  OR PROFITS,  WHETHER IN AN ACTION  OF CONTRACT,  NEGLIGENCE OR
41645f5050Syouri * OTHER  TORTIOUS ACTION,  ARISING OUT OF OR IN  CONNECTION WITH THE USE OR
42645f5050Syouri * PERFORMANCE OF THIS SOFTWARE.
43645f5050Syouri *
44645f5050Syouri * Author:  Claude Lecommandeur [ lecom@sic.epfl.ch ][ April 1992 ]
45645f5050Syouri */
46645f5050Syouri
47645f5050Syouri/***********************************************************************
48645f5050Syouri *
49645f5050Syouri * $XConsortium: iconmgr.h,v 1.11 89/12/10 17:47:02 jim Exp $
50645f5050Syouri *
51645f5050Syouri * Icon Manager includes
52645f5050Syouri *
53645f5050Syouri * 09-Mar-89 Tom LaStrange		File Created
54645f5050Syouri *
55645f5050Syouri ***********************************************************************/
56645f5050Syouri
57645f5050Syouri#ifndef _ICONMGR_
58645f5050Syouri#define _ICONMGR_
59645f5050Syouri
60645f5050Syouristruct WList
61645f5050Syouri{
62645f5050Syouri    struct WList *next;
63645f5050Syouri    struct WList *prev;
64645f5050Syouri    struct WList *nextv;		/* pointer to the next virtual Wlist C.L. */
65645f5050Syouri    struct TwmWindow *twm;
66645f5050Syouri    struct IconMgr *iconmgr;
67645f5050Syouri    Window w;
68645f5050Syouri    Window icon;
69645f5050Syouri    int x, y, width, height;
70645f5050Syouri    int row, col;
71645f5050Syouri    int me;
72645f5050Syouri    ColorPair cp;
73645f5050Syouri    Pixel highlight;
74645f5050Syouri    Pixmap iconifypm;
75645f5050Syouri    unsigned top, bottom;
76645f5050Syouri    short active;
77645f5050Syouri    short down;
78645f5050Syouri};
79645f5050Syouri
80645f5050Syouristruct IconMgr
81645f5050Syouri{
82645f5050Syouri    struct IconMgr *next;		/* pointer to the next icon manager */
83645f5050Syouri    struct IconMgr *prev;		/* pointer to the previous icon mgr */
84645f5050Syouri    struct IconMgr *lasti;		/* pointer to the last icon mgr */
85645f5050Syouri    struct IconMgr *nextv;		/* pointer to the next virtual icon mgr C.L. */
86645f5050Syouri    struct WList *first;		/* first window in the list */
87645f5050Syouri    struct WList *last;			/* last window in the list */
88645f5050Syouri    struct WList *active;		/* the active entry */
89645f5050Syouri    TwmWindow *twm_win;			/* back pointer to the new parent */
90645f5050Syouri    struct ScreenInfo *scr;		/* the screen this thing is on */
91645f5050Syouri    int vScreen;			/* the virtual screen this thing is on */
92645f5050Syouri    Window w;				/* this icon manager window */
93645f5050Syouri    char *geometry;			/* geometry string */
94645f5050Syouri    char *name;
95645f5050Syouri    char *icon_name;
96645f5050Syouri    int x, y, width, height;
97645f5050Syouri    int columns, cur_rows, cur_columns;
98645f5050Syouri    int count;
99645f5050Syouri};
100645f5050Syouri
101645f5050Syouriextern int iconmgr_textx;
102645f5050Syouriextern WList *DownIconManager;
103645f5050Syouri
104645f5050Syouriextern void CreateIconManagers(void);
105645f5050Syouriextern IconMgr *AllocateIconManager(char *name, char *geom, char *icon_name,
106645f5050Syouri				    int columns);
107645f5050Syouriextern void MoveIconManager(int dir);
108645f5050Syouriextern void MoveMappedIconManager(int dir);
109645f5050Syouriextern void JumpIconManager(register int dir);
110645f5050Syouriextern WList *AddIconManager(TwmWindow *tmp_win);
111645f5050Syouriextern void InsertInIconManager(IconMgr *ip, WList *tmp, TwmWindow *tmp_win);
112645f5050Syouriextern void RemoveFromIconManager(IconMgr *ip, WList *tmp);
113645f5050Syouriextern void RemoveIconManager(TwmWindow *tmp_win);
114645f5050Syouriextern void CurrentIconManagerEntry(WList *current);
115645f5050Syouriextern void ActiveIconManager(WList *active);
116645f5050Syouriextern void NotActiveIconManager(WList *active);
117645f5050Syouriextern void DrawIconManagerBorder(WList *tmp, int fill);
118645f5050Syouriextern void SortIconManager(IconMgr *ip);
119645f5050Syouriextern void PackIconManager(IconMgr *ip);
120645f5050Syouri
121645f5050Syouri
122645f5050Syouri#endif /* _ICONMGR_ */
123