mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-26 00:12:31 +01:00
There is little point caching a pixmap for an app that isn't in the dock. This patch creates a function wAppIconSave that saves only if the app icon is docked, and adds calls to that function in all the places where an appicon can transition from undocked to docked. It also "adds" a function wApplicationSaveIconPathFor that saves an icon path to the configuration plist; the function already existed, it was just static before. Signed-off-by: Brad Jorsch <anomie@users.sourceforge.net>
102 lines
3.2 KiB
C
102 lines
3.2 KiB
C
/* appicon.h- application icon
|
|
*
|
|
* 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 WMAPPICON_H_
|
|
#define WMAPPICON_H_
|
|
|
|
#include <wraster.h>
|
|
|
|
#include "window.h"
|
|
#include "icon.h"
|
|
#include "application.h"
|
|
|
|
|
|
typedef struct WAppIcon {
|
|
short xindex;
|
|
short yindex;
|
|
struct WAppIcon *next;
|
|
struct WAppIcon *prev;
|
|
WIcon *icon;
|
|
|
|
char *client_machine;
|
|
|
|
int x_pos, y_pos; /* absolute screen coordinate */
|
|
|
|
char *command; /* command used to launch app */
|
|
|
|
#ifdef XDND
|
|
char *dnd_command; /* command to use when something is */
|
|
/* dropped on us */
|
|
#endif
|
|
|
|
char *paste_command; /* command to run when something is pasted */
|
|
|
|
char *wm_class;
|
|
char *wm_instance;
|
|
pid_t pid; /* for apps launched from the dock */
|
|
Window main_window;
|
|
|
|
struct WDock *dock; /* In which dock is docked. */
|
|
|
|
struct _AppSettingsPanel *panel; /* Settings Panel */
|
|
|
|
unsigned int gnustep_app:1; /* if this is a GNUstep application */
|
|
unsigned int docked:1;
|
|
unsigned int omnipresent:1; /* If omnipresent when docked in clip */
|
|
unsigned int attracted:1; /* If it was attracted by the clip */
|
|
unsigned int launching:1;
|
|
unsigned int running:1; /* application is already running */
|
|
unsigned int relaunching:1; /* launching 2nd instance */
|
|
|
|
unsigned int forced_dock:1;
|
|
unsigned int auto_launch:1; /* launch app on startup */
|
|
unsigned int remote_start:1;
|
|
unsigned int updated:1;
|
|
unsigned int editing:1; /* editing docked icon */
|
|
unsigned int drop_launch:1; /* launching from drop action */
|
|
unsigned int paste_launch:1; /* launching from paste action */
|
|
unsigned int destroyed:1; /* appicon was destroyed */
|
|
unsigned int buggy_app:1; /* do not make dock rely on hints
|
|
* set by app */
|
|
|
|
unsigned int lock:1; /* do not allow to be destroyed */
|
|
|
|
} WAppIcon;
|
|
|
|
|
|
WAppIcon *wAppIconCreate(WWindow *leader_win);
|
|
WAppIcon *wAppIconCreateForDock(WScreen *scr, char *command, char *wm_instance,
|
|
char *wm_class, int tile);
|
|
|
|
void wAppIconDestroy(WAppIcon *aicon);
|
|
|
|
void wAppIconPaint(WAppIcon *aicon);
|
|
|
|
Bool wAppIconChangeImage(WAppIcon *icon, char *file);
|
|
|
|
void wAppIconMove(WAppIcon *aicon, int x, int y);
|
|
|
|
Bool wAppIconSave(WAppIcon *aicon);
|
|
|
|
#endif
|
|
|