1645f5050Syouri/* 20bbfda8aSnia * Icon releated definitions 3645f5050Syouri * 4645f5050Syouri * 50bbfda8aSnia * Copyright 1989 Massachusetts Institute of Technology 6645f5050Syouri * 7645f5050Syouri * $XConsortium: icons.h,v 1.4 89/07/18 17:16:24 jim Exp $ 8645f5050Syouri * 9645f5050Syouri * 10-Apr-89 Tom LaStrange Initial Version. 10645f5050Syouri * 110bbfda8aSnia * Copyright 1992 Claude Lecommandeur. 120bbfda8aSnia */ 13645f5050Syouri 140bbfda8aSnia#ifndef _CTWM_ICONS_H 150bbfda8aSnia#define _CTWM_ICONS_H 16645f5050Syouri 170bbfda8aSnia/* Where did the Image for the Icon come from? */ 180bbfda8aSniatypedef enum { 190bbfda8aSnia match_none, 200bbfda8aSnia match_list, /* shared Image: iconslist and Scr->ImageCache */ 210bbfda8aSnia match_icon_pixmap_hint, /* Pixmap copied from IconPixmapHint */ 220bbfda8aSnia match_net_wm_icon, /* Pixmap created from NET_WM_ICON */ 230bbfda8aSnia match_unknown_default, /* shared Image: Scr->UnknownImage */ 240bbfda8aSnia} Matchtype; 25645f5050Syouri 260bbfda8aSniastruct Icon { 270bbfda8aSnia Matchtype match; 280bbfda8aSnia Window w; /* the icon window */ 290bbfda8aSnia OtpWinList *otp; /* OnTopPriority info for the icon */ 300bbfda8aSnia Window bm_w; /* the icon bitmap window */ 310bbfda8aSnia Image *image; /* image icon structure */ 320bbfda8aSnia int x; /* icon text x coordinate */ 330bbfda8aSnia int y; /* icon text y coordiante */ 340bbfda8aSnia int w_x; /* x coor of the icon window !!untested!! */ 350bbfda8aSnia int w_y; /* y coor of the icon window !!untested!! */ 360bbfda8aSnia int w_width; /* width of the icon window */ 370bbfda8aSnia int w_height; /* height of the icon window */ 380bbfda8aSnia int width; /* width of the icon bitmap */ 390bbfda8aSnia int height; /* height of the icon bitmap */ 400bbfda8aSnia Pixel border; /* border color */ 410bbfda8aSnia ColorPair iconc; 420bbfda8aSnia int border_width; 430bbfda8aSnia struct IconRegion *ir; 440bbfda8aSnia bool has_title, title_shrunk; 450bbfda8aSnia bool w_not_ours; /* Icon.w comes from IconWindowHint */ 46645f5050Syouri}; 47645f5050Syouri 480bbfda8aSniastruct IconRegion { 490bbfda8aSnia struct IconRegion *next; 500bbfda8aSnia int x, y, w, h; 510bbfda8aSnia RegGravity grav1, grav2; 520bbfda8aSnia int stepx, stepy; // allocation granularity 530bbfda8aSnia TitleJust TitleJustification; 540bbfda8aSnia IRJust Justification; 550bbfda8aSnia IRAlignement Alignement; 560bbfda8aSnia name_list *clientlist; 570bbfda8aSnia struct IconEntry *entries; 58645f5050Syouri}; 59645f5050Syouri 600bbfda8aSniastruct IconEntry { 610bbfda8aSnia struct IconEntry *next; 620bbfda8aSnia int x, y, w, h; 630bbfda8aSnia TwmWindow *twm_win; 640bbfda8aSnia bool used; 65645f5050Syouri}; 66645f5050Syouri 67645f5050Syouri 680bbfda8aSnia/* Placement and IconsRegion handling */ 690bbfda8aSnianame_list **AddIconRegion(const char *geom, RegGravity grav1, RegGravity grav2, 700bbfda8aSnia int stepx, int stepy, const char *ijust, 710bbfda8aSnia const char *just, const char *align); 720bbfda8aSnia 730bbfda8aSnia/* Icon [window] creation/destruction */ 740bbfda8aSniavoid CreateIconWindow(TwmWindow *tmp_win, int def_x, int def_y); 750bbfda8aSniavoid DeleteIconsList(TwmWindow *tmp_win); 760bbfda8aSniavoid DeleteIcon(Icon *icon); 770bbfda8aSniavoid ReleaseIconImage(Icon *icon); 780bbfda8aSnia 790bbfda8aSnia/* Handling for bringing them up or down */ 800bbfda8aSniavoid IconUp(TwmWindow *tmp_win); 810bbfda8aSniavoid IconDown(TwmWindow *tmp_win); 820bbfda8aSnia 830bbfda8aSnia/* Drawing */ 840bbfda8aSniavoid PaintIcon(TwmWindow *tmp_win); 850bbfda8aSniavoid ShrinkIconTitle(TwmWindow *tmp_win); 860bbfda8aSniavoid ExpandIconTitle(TwmWindow *tmp_win); 870bbfda8aSniaint GetIconOffset(Icon *icon); 880bbfda8aSniavoid RedoIcon(TwmWindow *win); 890bbfda8aSniavoid RedoIconName(TwmWindow *win); 900bbfda8aSnia 910bbfda8aSnia#endif /* _CTWM_ICONS_H */ 92