Home | History | Annotate | Line # | Download | only in dist
      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? */
     18 typedef 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 
     26 struct 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 
     48 struct 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 
     60 struct 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 */
     69 name_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 */
     74 void CreateIconWindow(TwmWindow *tmp_win, int def_x, int def_y);
     75 void DeleteIconsList(TwmWindow *tmp_win);
     76 void DeleteIcon(Icon *icon);
     77 void ReleaseIconImage(Icon *icon);
     78 
     79 /* Handling for bringing them up or down */
     80 void IconUp(TwmWindow *tmp_win);
     81 void IconDown(TwmWindow *tmp_win);
     82 
     83 /* Drawing */
     84 void PaintIcon(TwmWindow *tmp_win);
     85 void ShrinkIconTitle(TwmWindow *tmp_win);
     86 void ExpandIconTitle(TwmWindow *tmp_win);
     87 int GetIconOffset(Icon *icon);
     88 void RedoIcon(TwmWindow *win);
     89 void RedoIconName(TwmWindow *win);
     90 
     91 #endif /* _CTWM_ICONS_H */
     92