2 /* FvwmWinList Module for Fvwm.
4 * Copyright 1994, Mike Finger (mfinger@mermaid.micro.umn.edu or
7 * The author makes not guarantees or warantees, either express or
8 * implied. Feel free to use any contained here for any purpose, as long
9 * and this and any other applicible copyrights are kept intact.
11 * The functions in this header file that are based on part of the FvwmIdent
12 * module for Fvwm are noted by a small copyright atop that function, all others
13 * are copyrighted by Mike Finger. For those functions modified/used, here is
14 * the full, original copyright:
16 * Copyright 1994, Robert Nation and Nobutaka Suzuki.
17 * No guarantees or warantees or anything
18 * are provided or implied in any way whatsoever. Use this program at your
19 * own risk. Permission to use this program for any purpose is given,
20 * as long as the copyright is kept intact. */
26 #include <X11/Xutil.h>
27 #include <X11/Xproto.h>
28 #include <X11/Xatom.h>
29 #include <X11/Intrinsic.h>
30 #include <X11/cursorfont.h>
32 #include "libs/fvwmlib.h"
33 #include "fvwm/fvwm.h"
34 #include "libs/vpacket.h"
36 /* Motif window hints */
41 /* props[1]: functions */
42 /* props[2]: decorations */
43 /* props[3]: inputMode */
46 typedef PropMotifWmHints PropMwmHints
;
48 /* Motif window hints */
49 #define MWM_HINTS_FUNCTIONS (1L << 0)
50 #define MWM_HINTS_DECORATIONS (1L << 1)
51 #define MWM_HINTS_INPUT_MODE (1L << 2)
53 /* bit definitions for MwmHints.functions */
54 #define MWM_FUNC_ALL (1L << 0)
55 #define MWM_FUNC_RESIZE (1L << 1)
56 #define MWM_FUNC_MOVE (1L << 2)
57 #define MWM_FUNC_MINIMIZE (1L << 3)
58 #define MWM_FUNC_MAXIMIZE (1L << 4)
59 #define MWM_FUNC_CLOSE (1L << 5)
61 /* values for MwmHints.input_mode */
62 #define MWM_INPUT_MODELESS 0
63 #define MWM_INPUT_PRIMARY_APPLICATION_MODAL 1
64 #define MWM_INPUT_SYSTEM_MODAL 2
65 #define MWM_INPUT_FULL_APPLICATION_MODAL 3
67 /* bit definitions for MwmHints.decorations */
68 #define MWM_DECOR_ALL (1L << 0)
69 #define MWM_DECOR_BORDER (1L << 1)
70 #define MWM_DECOR_RESIZEH (1L << 2)
71 #define MWM_DECOR_TITLE (1L << 3)
72 #define MWM_DECOR_MENU (1L << 4)
73 #define MWM_DECOR_MINIMIZE (1L << 5)
74 #define MWM_DECOR_MAXIMIZE (1L << 6)
76 #define PROP_MOTIF_WM_HINTS_ELEMENTS 4
77 #define PROP_MWM_HINTS_ELEMENTS PROP_MOTIF_WM_HINTS_ELEMENTS
79 /* default values for configuration parameters */
80 #define DEFMAXWIDTH 10000
86 void MainEventLoop(void);
87 void ReadFvwmPipe(void);
88 void ProcessMessage(unsigned long type
,unsigned long *body
);
89 RETSIGTYPE
DeadPipe(int nonsense
) __attribute__((noreturn
));
90 void MakeMeWindow(void);
91 void RedrawWindow(Bool force
, Bool clear_bg
, XEvent
*evp
);
92 void StartMeUp_I(void);
93 void StartMeUp_II(void);
94 void ShutMeDown(void);
95 void ConsoleMessage(const char *fmt
,...) __attribute__((format(printf
,1,2)));
96 int OpenConsole(void);
97 void ParseConfig(void);
98 void ParseConfigLine(char *line
);
99 void LoopOnEvents(void);
100 void AdjustWindow(Bool force
);
102 char *makename(const char *string
, Bool iconified
);
103 void ChangeWindowName(char *str
);
104 void LinkAction(char *string
);
105 void AddToSkipList(char *string
);
106 void PrintSkipList(void);
107 void FvwmNameMessage(long *body
);
108 void SetMwmHints(unsigned int value
,unsigned int funcs
,unsigned int input
);
110 int ErrorHandler(Display
*d
, XErrorEvent
*event
);