cvsimport
[fvwm.git] / fvwm / colormaps.h
blobbd5c0b76faa390a1fc99746517fea28fcfd2b1aa
1 /* -*-c-*- */
3 /* This module is all new
4 * by Rob Nation
6 * This code handles colormaps for fvwm.
8 * Copyright 1994 Robert Nation. No restrictions are placed on this code,
9 * as long as the copyright notice is preserved . No guarantees or
10 * warrantees of any sort whatsoever are given or implied or anything.
13 #ifndef COLORMAP_H
14 #define COLORMAP_H
16 /* ---------------------------- included header files ---------------------- */
18 /* ---------------------------- global definitions ------------------------- */
20 /* ---------------------------- global macros ------------------------------ */
22 /* ---------------------------- type definitions --------------------------- */
24 /* ---------------------------- forward declarations ----------------------- */
26 /* ---------------------------- exported variables (globals) --------------- */
28 /* ---------------------------- interface functions ------------------------ */
30 /* colormap notify event handler
32 * This procedure handles both a client changing its own colormap, and
33 * a client explicitly installing its colormap itself (only the window
34 * manager should do that, so we must set it correctly). */
35 void colormap_handle_colormap_notify(const evh_args_t *ea);
37 /* Re-Install the active colormap */
38 void ReInstallActiveColormap(void);
40 /* install the colormaps for one fvwm window
42 * Inputs:
43 * type - type of event that caused the installation
44 * tmp - for a subset of event types, the address of the
45 * window structure, whose colormaps are to be installed. */
46 void InstallWindowColormaps(const FvwmWindow *tmp);
48 /* Force (un)loads root colormap(s)
50 * These matching routines provide a mechanism to insure that
51 * the root colormap(s) is installed during operations like
52 * rubber banding that require colors from
53 * that colormap. Calls may be nested arbitrarily deeply,
54 * as long as there is one UninstallRootColormap call per
55 * InstallRootColormap call.
57 * The final UninstallRootColormap will cause the colormap list
58 * which would otherwise have be loaded to be loaded, unless
59 * Enter or Leave Notify events are queued, indicating some
60 * other colormap list would potentially be loaded anyway. */
61 void InstallRootColormap(void);
63 /* Unstacks one layer of root colormap pushing
64 * If we peel off the last layer, re-install the application colormap */
65 void UninstallRootColormap(void);
67 /* Force (un)loads fvwm colormap(s)
69 * This is used to ensure the fvwm colormap is installed during
70 * menu operations */
71 void InstallFvwmColormap(void);
72 void UninstallFvwmColormap(void);
74 /* Gets the WM_COLORMAP_WINDOWS property from the window
76 * This property typically doesn't exist, but a few applications
77 * use it. These seem to occur mostly on SGI machines. */
78 void FetchWmColormapWindows (FvwmWindow *tmp);
80 /* clasen@mathematik.uni-freiburg.de - 03/01/1999 - new
81 * boolean for handling of client-side InstallColormap
82 * as described in the ICCCM 2.0 */
84 void set_client_controls_colormaps(Bool flag);
86 /* Looks through the window list for any matching COLORMAP_WINDOWS
87 * windows and installs the colormap if one exists. */
88 void EnterSubWindowColormap(Window win);
89 void LeaveSubWindowColormap(Window win);
91 #endif /* COLORMAP_H */