1/* 2 * Icon releated definitions 3 * 4 * 5 * Copyright 1989 Massachusetts Institute of Technology 6 * 7 * $XConsortium: icons.h,v 1.4 89/07/18 17:16:24 jim Exp $ 8 * 9 * 10-Apr-89 Tom LaStrange Initial Version. 10 * 11 * Copyright 1992 Claude Lecommandeur. 12 */ 13 14#ifndef _CTWM_ICONS_H 15#define _CTWM_ICONS_H 16 17/* Where did the Image for the Icon come from? */ 18typedef enum { 19 match_none, 20 match_list, /* shared Image: iconslist and Scr->ImageCache */ 21 match_icon_pixmap_hint, /* Pixmap copied from IconPixmapHint */ 22 match_net_wm_icon, /* Pixmap created from NET_WM_ICON */ 23 match_unknown_default, /* shared Image: Scr->UnknownImage */ 24} Matchtype; 25 26struct Icon { 27 Matchtype match; 28 Window w; /* the icon window */ 29 OtpWinList *otp; /* OnTopPriority info for the icon */ 30 Window bm_w; /* the icon bitmap window */ 31 Image *image; /* image icon structure */ 32 int x; /* icon text x coordinate */ 33 int y; /* icon text y coordiante */ 34 int w_x; /* x coor of the icon window !!untested!! */ 35 int w_y; /* y coor of the icon window !!untested!! */ 36 int w_width; /* width of the icon window */ 37 int w_height; /* height of the icon window */ 38 int width; /* width of the icon bitmap */ 39 int height; /* height of the icon bitmap */ 40 Pixel border; /* border color */ 41 ColorPair iconc; 42 int border_width; 43 struct IconRegion *ir; 44 bool has_title, title_shrunk; 45 bool w_not_ours; /* Icon.w comes from IconWindowHint */ 46}; 47 48struct IconRegion { 49 struct IconRegion *next; 50 int x, y, w, h; 51 RegGravity grav1, grav2; 52 int stepx, stepy; // allocation granularity 53 TitleJust TitleJustification; 54 IRJust Justification; 55 IRAlignement Alignement; 56 name_list *clientlist; 57 struct IconEntry *entries; 58}; 59 60struct IconEntry { 61 struct IconEntry *next; 62 int x, y, w, h; 63 TwmWindow *twm_win; 64 bool used; 65}; 66 67 68/* Placement and IconsRegion handling */ 69name_list **AddIconRegion(const char *geom, RegGravity grav1, RegGravity grav2, 70 int stepx, int stepy, const char *ijust, 71 const char *just, const char *align); 72 73/* Icon [window] creation/destruction */ 74void CreateIconWindow(TwmWindow *tmp_win, int def_x, int def_y); 75void DeleteIconsList(TwmWindow *tmp_win); 76void DeleteIcon(Icon *icon); 77void ReleaseIconImage(Icon *icon); 78 79/* Handling for bringing them up or down */ 80void IconUp(TwmWindow *tmp_win); 81void IconDown(TwmWindow *tmp_win); 82 83/* Drawing */ 84void PaintIcon(TwmWindow *tmp_win); 85void ShrinkIconTitle(TwmWindow *tmp_win); 86void ExpandIconTitle(TwmWindow *tmp_win); 87int GetIconOffset(Icon *icon); 88void RedoIcon(TwmWindow *win); 89void RedoIconName(TwmWindow *win); 90 91#endif /* _CTWM_ICONS_H */ 92