iconmgr.h revision 3e747e6d
13e747e6dSmrg/*
23e747e6dSmrg *
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/* $XFree86: xc/programs/twm/iconmgr.h,v 1.5 2001/08/27 21:11:39 dawes Exp $ */
263e747e6dSmrg
273e747e6dSmrg/***********************************************************************
283e747e6dSmrg *
293e747e6dSmrg * $Xorg: iconmgr.h,v 1.4 2001/02/09 02:05:36 xorgcvs Exp $
303e747e6dSmrg *
313e747e6dSmrg * Icon Manager includes
323e747e6dSmrg *
333e747e6dSmrg * 09-Mar-89 Tom LaStrange		File Created
343e747e6dSmrg *
353e747e6dSmrg ***********************************************************************/
363e747e6dSmrg
373e747e6dSmrg#ifndef _ICONMGR_
383e747e6dSmrg#define _ICONMGR_
393e747e6dSmrg
403e747e6dSmrgtypedef struct WList
413e747e6dSmrg{
423e747e6dSmrg    struct WList *next;
433e747e6dSmrg    struct WList *prev;
443e747e6dSmrg    struct TwmWindow *twm;
453e747e6dSmrg    struct IconMgr *iconmgr;
463e747e6dSmrg    Window w;
473e747e6dSmrg    Window icon;
483e747e6dSmrg    int x, y, width, height;
493e747e6dSmrg    int row, col;
503e747e6dSmrg    int me;
513e747e6dSmrg    Pixel fore, back, highlight;
523e747e6dSmrg    unsigned top, bottom;
533e747e6dSmrg    short active;
543e747e6dSmrg    short down;
553e747e6dSmrg} WList;
563e747e6dSmrg
573e747e6dSmrgtypedef struct IconMgr
583e747e6dSmrg{
593e747e6dSmrg    struct IconMgr *next;		/* pointer to the next icon manager */
603e747e6dSmrg    struct IconMgr *prev;		/* pointer to the previous icon mgr */
613e747e6dSmrg    struct IconMgr *lasti;		/* pointer to the last icon mgr */
623e747e6dSmrg    struct WList *first;		/* first window in the list */
633e747e6dSmrg    struct WList *last;			/* last window in the list */
643e747e6dSmrg    struct WList *active;		/* the active entry */
653e747e6dSmrg    TwmWindow *twm_win;			/* back pointer to the new parent */
663e747e6dSmrg    struct ScreenInfo *scr;		/* the screen this thing is on */
673e747e6dSmrg    Window w;				/* this icon manager window */
683e747e6dSmrg    char *geometry;			/* geometry string */
693e747e6dSmrg    char *name;
703e747e6dSmrg    char *icon_name;
713e747e6dSmrg    int x, y, width, height;
723e747e6dSmrg    int columns, cur_rows, cur_columns;
733e747e6dSmrg    int count;
743e747e6dSmrg} IconMgr;
753e747e6dSmrg
763e747e6dSmrgextern int iconmgr_textx;
773e747e6dSmrgextern WList *DownIconManager;
783e747e6dSmrgextern int iconifybox_width, iconifybox_height;
793e747e6dSmrg
803e747e6dSmrgextern void ActiveIconManager ( WList *active );
813e747e6dSmrgextern WList *AddIconManager ( TwmWindow *tmp_win );
823e747e6dSmrgextern IconMgr *AllocateIconManager ( char *name, char *icon_name, char *geom, int columns );
833e747e6dSmrgextern void CreateIconManagers ( void );
843e747e6dSmrgextern void DrawIconManagerBorder ( WList *tmp );
853e747e6dSmrgextern void InsertInIconManager ( IconMgr *ip, WList *tmp, TwmWindow *tmp_win );
863e747e6dSmrgextern void JumpIconManager ( int dir );
873e747e6dSmrgextern void MoveIconManager ( int dir );
883e747e6dSmrgextern void NotActiveIconManager ( WList *active );
893e747e6dSmrgextern void PackIconManager ( IconMgr *ip );
903e747e6dSmrgextern void RemoveFromIconManager ( IconMgr *ip, WList *tmp );
913e747e6dSmrgextern void RemoveIconManager ( TwmWindow *tmp_win );
923e747e6dSmrgextern void SortIconManager ( IconMgr *ip );
933e747e6dSmrg
943e747e6dSmrg#endif /* _ICONMGR_ */
95