2 #include "libs/Picture.h"
3 #include "libs/vpacket.h"
4 #include "libs/Flocale.h"
6 typedef struct ScreenInfo
9 int MyDisplayWidth
; /* my copy of DisplayWidth(dpy, screen) */
10 int MyDisplayHeight
; /* my copy of DisplayHeight(dpy, screen) */
12 char *FvwmRoot
; /* the head of the fvwm window list */
19 Font PagerFont
; /* font struct for window labels in pager (optional)*/
21 GC NormalGC
; /* used for window names and setting backgrounds */
22 GC MiniIconGC
; /* used for clipping mini-icons */
23 GC whGC
, wsGC
, ahGC
, asGC
; /* used for 3d shadows on mini-windows */
28 char *balloon_label
; /* the label displayed inside the balloon */
29 char *Hilite
; /* the fvwm window that is highlighted
30 * except for networking delays, this is the
31 * window which REALLY has the focus */
32 unsigned VScale
; /* Panner scale factor */
33 int VxMax
; /* Max location for top left of virt desk*/
35 int VxPages
; /* desktop size */
37 int VWidth
; /* Size of virtual desktop */
39 int Vx
; /* Current loc for top left of virt desk */
42 Pixmap sticky_gray_pixmap
;
43 Pixmap light_gray_pixmap
;
48 typedef struct pager_window
71 action_flags allowed_actions
;
74 unsigned is_mapped
: 1;
82 char *window_label
; /* This is displayed inside the mini window */
83 FvwmPicture mini_icon
;
87 int pager_view_height
;
96 struct pager_window
*next
;
99 typedef struct balloon_window
102 int height
; /* height of balloon window based on font */
106 typedef struct desk_info
111 FvwmPicture
*bgPixmap
; /* Pixmap used as background. */
112 BalloonWindow balloon
;
119 GC DashedGC
; /* used the the pages boundary lines */
120 GC HiliteGC
; /* used for hilighting the active desk */
121 GC rvGC
; /* used for drawing hilighted desk title */
124 typedef struct pager_string_list
126 struct pager_string_list
*next
;
133 FvwmPicture
*bgPixmap
; /* Pixmap used as background. */
138 * Subroutine Prototypes
141 char *GetNextToken(char *indata
,char **token
);
143 RETSIGTYPE
DeadPipe(int nonsense
);
144 void process_message(FvwmPacket
*);
145 void ParseOptions(void);
147 void list_add(unsigned long *body
);
148 void list_configure(unsigned long *body
);
149 void list_config_info(unsigned long *body
);
150 void list_destroy(unsigned long *body
);
151 void list_focus(unsigned long *body
);
152 void list_toggle(unsigned long *body
);
153 void list_new_page(unsigned long *body
);
154 void list_new_desk(unsigned long *body
);
155 void list_raise(unsigned long *body
);
156 void list_lower(unsigned long *body
);
157 void list_unknown(unsigned long *body
);
158 void list_iconify(unsigned long *body
);
159 void list_deiconify(unsigned long *body
, unsigned long length
);
160 void list_window_name(unsigned long *body
,unsigned long type
);
161 void list_icon_name(unsigned long *body
);
162 void list_class(unsigned long *body
);
163 void list_res_name(unsigned long *body
);
164 void list_mini_icon(unsigned long *body
);
165 void list_restack(unsigned long *body
, unsigned long length
);
166 void list_property_change(unsigned long *body
);
168 void list_reply(unsigned long *body
);
169 int My_XNextEvent(Display
*dpy
, XEvent
*event
);
171 /* Stuff in x_pager.c */
172 void change_colorset(int colorset
);
173 void initialize_pager(void);
174 void initialize_viz_pager(void);
175 Pixel
GetColor(char *name
);
176 void DispatchEvent(XEvent
*Event
);
177 void ReConfigure(void);
178 void ReConfigureAll(void);
179 void update_pr_transparent_windows(void);
180 void MovePage(Bool is_new_desk
);
181 void DrawGrid(int desk
,int erase
,Window ew
,XRectangle
*r
);
182 void DrawIconGrid(int erase
);
183 void SwitchToDesk(int Desk
);
184 void SwitchToDeskAndPage(int Desk
, XEvent
*Event
);
185 void AddNewWindow(PagerWindow
*prev
);
186 void MoveResizePagerView(PagerWindow
*t
, Bool do_force_redraw
);
187 void ChangeDeskForWindow(PagerWindow
*t
,long newdesk
);
188 void MoveStickyWindow(Bool is_new_page
, Bool is_new_desk
);
189 void Hilight(PagerWindow
*, int);
190 void Scroll(int window_w
, int window_h
, int x
, int y
, int Desk
,
191 Bool do_scroll_icon
);
192 void MoveWindow(XEvent
*Event
);
193 void BorderWindow(PagerWindow
*t
);
194 void BorderIconWindow(PagerWindow
*t
);
195 void LabelWindow(PagerWindow
*t
);
196 void LabelIconWindow(PagerWindow
*t
);
197 void PictureWindow(PagerWindow
*t
);
198 void PictureIconWindow(PagerWindow
*t
);
199 void ReConfigureIcons(Bool do_reconfigure_desk_only
);
200 void IconSwitchPage(XEvent
*Event
);
201 void IconMoveWindow(XEvent
*Event
,PagerWindow
*t
);
202 void HandleEnterNotify(XEvent
*Event
);
203 void HandleExpose(XEvent
*Event
);
204 void MapBalloonWindow(PagerWindow
*t
, Bool is_icon_view
);
205 void UnmapBalloonWindow(void);
206 void DrawInBalloonWindow(int i
);
207 void HandleScrollDone(void);