mirror of
https://github.com/gryf/wmaker.git
synced 2026-01-07 22:34:18 +01:00
There was a probable bug when reading settings, because the function used was 'getInt' which would try to store the result in a 'char'. As it would be probably easier for user to have the value directly in pixels, the storage is now done in an int so there won't be problem anymore. Changed the behaviour of the constant APERCU_BORDER, which would be assumed to be the size of the border in pixel, but in previous code it was actually the sum of the two border (1 on each side). All maths have been changed to have it as a single border width. Took opportunity to group variable assignation for titleHeight and shortenTitle in a single place, because it is not convenient to have them spread around (one value in the beginning and others later in the code) and using default values prevents some checks that modern compiler can do to help produce safer code. Signed-off-by: Christophe CURIS <christophe.curis@free.fr> Signed-off-by: Carlos R. Mafra <crmafra@gmail.com>
84 lines
2.6 KiB
C
84 lines
2.6 KiB
C
/*
|
|
* Window Maker window manager
|
|
*
|
|
* Copyright (c) 1997-2003 Alfredo K. Kojima
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*/
|
|
|
|
|
|
#ifndef WMICON_H_
|
|
#define WMICON_H_
|
|
|
|
#include "wcore.h"
|
|
#include "window.h"
|
|
|
|
#define TILE_NORMAL 0
|
|
#define TILE_CLIP 1
|
|
#define TILE_DRAWER 2
|
|
|
|
/* This is the border, in pixel, drawn around an Aperçu */
|
|
#define APERCU_BORDER 1
|
|
|
|
typedef struct WIcon {
|
|
WCoreWindow *core;
|
|
WWindow *owner; /* owner window */
|
|
char *icon_name; /* the icon name hint */
|
|
|
|
Window icon_win; /* client suplied icon window */
|
|
|
|
char *file; /* the file with the icon image */
|
|
RImage *file_image; /* the image from the file */
|
|
|
|
unsigned int tile_type:4;
|
|
unsigned int show_title:1;
|
|
unsigned int selected:1;
|
|
unsigned int step:3; /* selection cycle step */
|
|
unsigned int shadowed:1; /* If the icon is to be blured */
|
|
unsigned int mapped:1;
|
|
unsigned int highlighted:1;
|
|
|
|
Pixmap pixmap;
|
|
Pixmap apercu;
|
|
|
|
WMHandlerID handlerID; /* timer handler ID for cycling select
|
|
* color */
|
|
} WIcon;
|
|
|
|
WIcon *icon_create_for_dock(WScreen *scr, const char *command, const char *wm_instance, const char *wm_class, int tile);
|
|
WIcon *icon_create_for_wwindow(WWindow *wwin);
|
|
|
|
void set_icon_image_from_database(WIcon *icon, const char *wm_instance, const char *wm_class, const char *command);
|
|
void wIconDestroy(WIcon *icon);
|
|
void wIconPaint(WIcon *icon);
|
|
void wIconUpdate(WIcon *icon);
|
|
void wIconSelect(WIcon *icon);
|
|
void wIconChangeTitle(WIcon *icon, WWindow *wwin);
|
|
void update_icon_pixmap(WIcon *icon);
|
|
|
|
int wIconChangeImageFile(WIcon *icon, const char *file);
|
|
|
|
RImage *wIconValidateIconSize(RImage *icon, int max_size);
|
|
RImage *get_rimage_icon_from_wm_hints(WIcon *icon);
|
|
|
|
char *wIconStore(WIcon *icon);
|
|
char *get_name_for_instance_class(const char *wm_instance, const char *wm_class);
|
|
|
|
void wIconSetHighlited(WIcon *icon, Bool flag);
|
|
void set_icon_image_from_image(WIcon *icon, RImage *image);
|
|
void set_icon_apercu(WIcon *icon, RImage *image);
|
|
|
|
#endif /* WMICON_H_ */
|