13e747e6dSmrg/*
2ffd25bcaSmrg *
33e747e6dSmrgCopyright 1989, 1998  The Open Group
43e747e6dSmrg
53e747e6dSmrgPermission to use, copy, modify, distribute, and sell this software and its
63e747e6dSmrgdocumentation for any purpose is hereby granted without fee, provided that
73e747e6dSmrgthe above copyright notice appear in all copies and that both that
83e747e6dSmrgcopyright notice and this permission notice appear in supporting
93e747e6dSmrgdocumentation.
103e747e6dSmrg
113e747e6dSmrgThe above copyright notice and this permission notice shall be included in
123e747e6dSmrgall copies or substantial portions of the Software.
133e747e6dSmrg
143e747e6dSmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
153e747e6dSmrgIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
163e747e6dSmrgFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
173e747e6dSmrgOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
183e747e6dSmrgAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
193e747e6dSmrgCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
203e747e6dSmrg
213e747e6dSmrgExcept as contained in this notice, the name of The Open Group shall not be
223e747e6dSmrgused in advertising or otherwise to promote the sale, use or other dealings
233e747e6dSmrgin this Software without prior written authorization from The Open Group.
243e747e6dSmrg * */
253e747e6dSmrg
263e747e6dSmrg/***********************************************************************
273e747e6dSmrg *
283e747e6dSmrg * Icon Manager includes
293e747e6dSmrg *
303e747e6dSmrg * 09-Mar-89 Tom LaStrange		File Created
313e747e6dSmrg *
323e747e6dSmrg ***********************************************************************/
333e747e6dSmrg
346d8e82c3Smrg#ifndef ICONMGR_H
356d8e82c3Smrg#define ICONMGR_H
363e747e6dSmrg
37f66df612Smrg#include "twm.h"
38f66df612Smrg
39f66df612Smrgtypedef struct WList {
403e747e6dSmrg    struct WList *next;
413e747e6dSmrg    struct WList *prev;
423e747e6dSmrg    struct TwmWindow *twm;
433e747e6dSmrg    struct IconMgr *iconmgr;
443e747e6dSmrg    Window w;
453e747e6dSmrg    Window icon;
463e747e6dSmrg    int x, y, width, height;
473e747e6dSmrg    int row, col;
483e747e6dSmrg    int me;
493e747e6dSmrg    Pixel fore, back, highlight;
503e747e6dSmrg    unsigned top, bottom;
513e747e6dSmrg    short active;
523e747e6dSmrg    short down;
533e747e6dSmrg} WList;
543e747e6dSmrg
55f66df612Smrgtypedef struct IconMgr {
56f66df612Smrg    struct IconMgr *next;       /* pointer to the next icon manager */
57f66df612Smrg    struct IconMgr *prev;       /* pointer to the previous icon mgr */
58f66df612Smrg    struct IconMgr *lasti;      /* pointer to the last icon mgr */
59f66df612Smrg    struct WList *first;        /* first window in the list */
60f66df612Smrg    struct WList *last;         /* last window in the list */
61f66df612Smrg    struct WList *active;       /* the active entry */
62f66df612Smrg    TwmWindow *twm_win;         /* back pointer to the new parent */
63f66df612Smrg    struct ScreenInfo *scr;     /* the screen this thing is on */
64f66df612Smrg    Window w;                   /* this icon manager window */
65f66df612Smrg    const char *geometry;       /* geometry string */
66f66df612Smrg    const char *name;
67f66df612Smrg    const char *icon_name;
683e747e6dSmrg    int x, y, width, height;
693e747e6dSmrg    int columns, cur_rows, cur_columns;
703e747e6dSmrg    int count;
713e747e6dSmrg} IconMgr;
723e747e6dSmrg
733e747e6dSmrgextern int iconmgr_textx;
743e747e6dSmrgextern WList *DownIconManager;
753e747e6dSmrgextern int iconifybox_width, iconifybox_height;
763e747e6dSmrg
77f66df612Smrgextern void ActiveIconManager(WList *active);
78f66df612Smrgextern WList *AddIconManager(TwmWindow *tmp_win);
79f66df612Smrgextern IconMgr *AllocateIconManager(char *name, char *icon_name, char *geom,
80f66df612Smrg                                    int columns);
81f66df612Smrgextern void CreateIconManagers(void);
82f66df612Smrgextern void DrawIconManagerBorder(WList *tmp);
83f66df612Smrgextern void JumpIconManager(int dir);
84f66df612Smrgextern void MoveIconManager(int dir);
85f66df612Smrgextern void NotActiveIconManager(WList *active);
86f66df612Smrgextern void PackIconManager(IconMgr *ip);
87f66df612Smrgextern void RemoveIconManager(TwmWindow *tmp_win);
88f66df612Smrgextern void SortIconManager(IconMgr *ip);
893e747e6dSmrg
906d8e82c3Smrg#endif /* ICONMGR_H */
91