aboutsummaryrefslogtreecommitdiff
path: root/src/Window.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/Window.hh')
-rw-r--r--src/Window.hh75
1 files changed, 30 insertions, 45 deletions
diff --git a/src/Window.hh b/src/Window.hh
index 7285acf..9b99f0f 100644
--- a/src/Window.hh
+++ b/src/Window.hh
@@ -1,5 +1,5 @@
1// Window.hh for Fluxbox Window Manager 1// Window.hh for Fluxbox Window Manager
2// Copyright (c) 2001-2003 Henrik Kinnunen (fluxgen at users.sourceforge.net) 2// Copyright (c) 2001 - 2003 Henrik Kinnunen (fluxgen at users.sourceforge.net)
3// 3//
4// Window.hh for Blackbox - an X11 Window manager 4// Window.hh for Blackbox - an X11 Window manager
5// Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net) 5// Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net)
@@ -22,7 +22,7 @@
22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23// DEALINGS IN THE SOFTWARE. 23// DEALINGS IN THE SOFTWARE.
24 24
25// $Id: Window.hh,v 1.72 2003/05/14 14:43:06 fluxgen Exp $ 25// $Id: Window.hh,v 1.73 2003/05/15 11:17:27 fluxgen Exp $
26 26
27#ifndef WINDOW_HH 27#ifndef WINDOW_HH
28#define WINDOW_HH 28#define WINDOW_HH
@@ -30,29 +30,22 @@
30#include "Timer.hh" 30#include "Timer.hh"
31#include "Menu.hh" 31#include "Menu.hh"
32#include "Subject.hh" 32#include "Subject.hh"
33#include "FbWinFrame.hh"
34#include "EventHandler.hh" 33#include "EventHandler.hh"
35#include "XLayerItem.hh" 34#include "XLayerItem.hh"
36#include "LayerMenu.hh"
37 35
38#include <X11/Xlib.h> 36#include <X11/Xlib.h>
39#include <X11/Xutil.h> 37#include <X11/Xutil.h>
40 38
41#ifdef SHAPE
42#include <X11/extensions/shape.h>
43#endif // SHAPE
44
45#include <vector> 39#include <vector>
46#include <string> 40#include <string>
47#include <memory> 41#include <memory>
48#include <map> 42#include <map>
49 43
50#define PropMwmHintsElements 3
51
52class WinClient; 44class WinClient;
53class FbWinFrameTheme; 45class FbWinFrameTheme;
54class BScreen; 46class BScreen;
55class TextButton; 47class TextButton;
48class FbWinFrame;
56 49
57namespace FbTk { 50namespace FbTk {
58class MenuTheme; 51class MenuTheme;
@@ -60,7 +53,6 @@ class ImageControl;
60class XLayer; 53class XLayer;
61}; 54};
62 55
63
64/// Creates the window frame and handles any window event for it 56/// Creates the window frame and handles any window event for it
65class FluxboxWindow : public FbTk::TimeoutHandler, public FbTk::EventHandler { 57class FluxboxWindow : public FbTk::TimeoutHandler, public FbTk::EventHandler {
66public: 58public:
@@ -112,6 +104,7 @@ public:
112 104
113 static const int PropBlackboxHintsElements = 5; 105 static const int PropBlackboxHintsElements = 5;
114 static const int PropBlackboxAttributesElements = 8; 106 static const int PropBlackboxAttributesElements = 8;
107 static const int PropMwmHintsElements = 3;
115 108
116 typedef struct _blackbox_hints { 109 typedef struct _blackbox_hints {
117 unsigned long flags, attrib, workspace, stack; 110 unsigned long flags, attrib, workspace, stack;
@@ -249,13 +242,9 @@ public:
249 DECORM_LAST = (1<<11) // useful for getting "All" 242 DECORM_LAST = (1<<11) // useful for getting "All"
250 }; 243 };
251 244
252 unsigned int getDecorationMask() const; 245 unsigned int decorationMask() const;
253 void setDecorationMask(unsigned int mask); 246 void setDecorationMask(unsigned int mask);
254 247
255#ifdef SHAPE
256 void shapeEvent(XShapeEvent *event);
257#endif // SHAPE
258
259 virtual void timeout(); 248 virtual void timeout();
260 249
261 /** 250 /**
@@ -264,7 +253,7 @@ public:
264 //@{ 253 //@{
265 inline bool isManaged() const { return m_managed; } 254 inline bool isManaged() const { return m_managed; }
266 inline bool isFocused() const { return focused; } 255 inline bool isFocused() const { return focused; }
267 inline bool isVisible() const { return m_frame.isVisible(); } 256 bool isVisible() const;
268 inline bool isIconic() const { return iconic; } 257 inline bool isIconic() const { return iconic; }
269 inline bool isShaded() const { return shaded; } 258 inline bool isShaded() const { return shaded; }
270 inline bool isMaximized() const { return maximized; } 259 inline bool isMaximized() const { return maximized; }
@@ -286,46 +275,42 @@ public:
286 inline const BScreen &screen() const { return m_screen; } 275 inline const BScreen &screen() const { return m_screen; }
287 inline BScreen &screen() { return m_screen; } 276 inline BScreen &screen() { return m_screen; }
288 277
289 inline const FbTk::XLayerItem &getLayerItem() const { return m_layeritem; } 278 inline const FbTk::XLayerItem &layerItem() const { return m_layeritem; }
290 inline FbTk::XLayerItem &getLayerItem() { return m_layeritem; } 279 inline FbTk::XLayerItem &layerItem() { return m_layeritem; }
291 280
292 Window getClientWindow() const; 281 Window clientWindow() const;
293 282
294 FbTk::FbWindow &getFbWindow() { return m_frame.window(); } 283 FbTk::FbWindow &fbWindow();
295 const FbTk::FbWindow &getFbWindow() const { return m_frame.window(); } 284 const FbTk::FbWindow &fbWindow() const;
296 285
297 FbTk::Menu &getWindowmenu() { return m_windowmenu; } 286 FbTk::Menu &menu() { return m_windowmenu; }
298 const FbTk::Menu &getWindowmenu() const { return m_windowmenu; } 287 const FbTk::Menu &menu() const { return m_windowmenu; }
299 288
300 FbTk::Menu &getLayermenu() { return m_layermenu; } 289 FbTk::Menu &layermenu() { return *m_layermenu.get(); }
301 const FbTk::Menu &getLayermenu() const { return m_layermenu; } 290 const FbTk::Menu &layermenu() const { return *m_layermenu.get(); }
302 291
303 const FbTk::FbWindow &parent() const { return m_parent; } 292 const FbTk::FbWindow &parent() const { return m_parent; }
304 FbTk::FbWindow &parent() { return m_parent; } 293 FbTk::FbWindow &parent() { return m_parent; }
305 294
306 const std::string &getTitle() const; 295 const std::string &title() const;
307 const std::string &getIconTitle() const; 296 const std::string &iconTitle() const;
308 int getXFrame() const { return m_frame.x(); } 297 int x() const;
309 int getYFrame() const { return m_frame.y(); } 298 int y() const;
310 int getXClient() const; 299 unsigned int workspaceNumber() const { return m_workspace_number; }
311 int getYClient() const; 300 int windowNumber() const { return m_window_number; }
312 unsigned int getWorkspaceNumber() const { return m_workspace_number; } 301 int layerNum() const { return m_layernum; }
313 int getWindowNumber() const { return m_window_number; }
314 int getLayerNum() const { return m_layernum; }
315 void setLayerNum(int layernum); 302 void setLayerNum(int layernum);
316 303
317 unsigned int width() const { return m_frame.width(); } 304 unsigned int width() const;
318 unsigned int height() const { return m_frame.height(); } 305 unsigned int height() const;
319 unsigned int getClientHeight() const; 306 unsigned int titleHeight() const;
320 unsigned int getClientWidth() const;
321 unsigned int getTitleHeight() const { return m_frame.titleHeight(); }
322 const std::string &className() const { return m_class_name; } 307 const std::string &className() const { return m_class_name; }
323 const std::string &instanceName() const { return m_instance_name; } 308 const std::string &instanceName() const { return m_instance_name; }
324 bool isLowerTab() const; 309 bool isLowerTab() const;
325 int initialState() const; 310 int initialState() const;
326 311
327 FbWinFrame &frame() { return m_frame; } 312 FbWinFrame &frame() { return *m_frame.get(); }
328 const FbWinFrame &frame() const { return m_frame; } 313 const FbWinFrame &frame() const { return *m_frame.get(); }
329 314
330 /** 315 /**
331 @name signals 316 @name signals
@@ -343,7 +328,7 @@ public:
343 const FbTk::Subject &dieSig() const { return m_diesig; } 328 const FbTk::Subject &dieSig() const { return m_diesig; }
344 /** @} */ // end group signals 329 /** @} */ // end group signals
345 330
346 const timeval &getLastFocusTime() const { return m_last_focus_time;} 331 const timeval &lastFocusTime() const { return m_last_focus_time;}
347 332
348 //@} 333 //@}
349 334
@@ -420,7 +405,7 @@ private:
420 BlackboxAttributes m_blackbox_attrib; 405 BlackboxAttributes m_blackbox_attrib;
421 406
422 FbTk::Menu m_windowmenu; 407 FbTk::Menu m_windowmenu;
423 LayerMenu<FluxboxWindow> m_layermenu; 408 std::auto_ptr<FbTk::Menu> m_layermenu;
424 409
425 timeval m_last_focus_time; 410 timeval m_last_focus_time;
426 411
@@ -458,7 +443,7 @@ private:
458 unsigned int m_old_width, m_old_height; ///< old size so we can restore from maximized state 443 unsigned int m_old_width, m_old_height; ///< old size so we can restore from maximized state
459 int m_last_button_x, ///< last known x position of the mouse button 444 int m_last_button_x, ///< last known x position of the mouse button
460 m_last_button_y; ///< last known y position of the mouse button 445 m_last_button_y; ///< last known y position of the mouse button
461 FbWinFrame m_frame; 446 std::auto_ptr<FbWinFrame> m_frame;
462 447
463 FbTk::XLayerItem m_layeritem; 448 FbTk::XLayerItem m_layeritem;
464 int m_layernum; 449 int m_layernum;