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