From f3790fb3e4105b815308aee9249b2fd342e2d82b Mon Sep 17 00:00:00 2001 From: Mark Tiefenbruck Date: Wed, 26 Dec 2007 13:44:55 -0800 Subject: revert previous patch until it can be fixed --- src/FbTk/DefaultValue.hh | 82 ------------------------------------------------ src/FbTk/Makefile.am | 2 +- src/Window.cc | 4 +-- src/Window.hh | 8 ++--- 4 files changed, 5 insertions(+), 91 deletions(-) delete mode 100644 src/FbTk/DefaultValue.hh diff --git a/src/FbTk/DefaultValue.hh b/src/FbTk/DefaultValue.hh deleted file mode 100644 index a89ad0a..0000000 --- a/src/FbTk/DefaultValue.hh +++ /dev/null @@ -1,82 +0,0 @@ -// DefaultValue.hh -// Copyright (c) 2007 Fluxbox Team (fluxgen at fluxbox dot org) -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. - -#ifndef FBTK_DEFAULTVALUE_HH -#define FBTK_DEFAULTVALUE_HH - -namespace FbTk { - -// classes for overriding default values without having to listen for changes -template -class DefaultValue { -public: - DefaultValue(const T &def): - m_default(def), m_actual(def), m_use_default(true) { } - - inline const T &get() const { return m_use_default ? m_default : m_actual; } - inline void set(const T &val) { m_use_default = false; m_actual = val; } - inline void restoreDefault() { m_use_default = true; } - inline void isDefault() const { return m_use_default; } - - inline DefaultValue &operator =(const T &val) { - set(val); return *this; - } - - inline operator T() const { return get(); } - -private: - const T &m_default; - T m_actual; - bool m_use_default; -}; - -// designed for use with built-in types T, thus no need to return references -template -class DefaultAccessor { -public: - typedef T (Receiver:: *Accessor)() const; - DefaultAccessor(const Receiver &r, Accessor a): - m_receiver(r), m_accessor(a), m_actual((r.*a)()), - m_use_default(true) { } - - inline const T get() const { - return m_use_default ? (m_receiver.*m_accessor)() : m_actual; - } - inline void set(const T &val) { m_use_default = false; m_actual = val; } - inline void restoreDefault() { m_use_default = true; } - inline void isDefault() const { return m_use_default; } - - inline DefaultAccessor &operator =(const T &val) { - set(val); return *this; - } - - inline operator T() const { return get(); } - -private: - const Receiver &m_receiver; - Accessor &m_accessor; - T m_actual; - bool m_use_default; -}; - -}; // end namespace FbTk - -#endif // FBTK_DEFAULTVALUE_HH diff --git a/src/FbTk/Makefile.am b/src/FbTk/Makefile.am index 0de5475..081bd07 100644 --- a/src/FbTk/Makefile.am +++ b/src/FbTk/Makefile.am @@ -16,7 +16,7 @@ imlib2_SOURCE= ImageImlib2.hh ImageImlib2.cc endif libFbTk_a_SOURCES = App.hh App.cc Color.cc Color.hh Command.hh \ - ObjectRegistry.hh DefaultValue.hh \ + ObjectRegistry.hh \ FileUtil.hh FileUtil.cc \ EventHandler.hh EventManager.hh EventManager.cc \ FbWindow.hh FbWindow.cc Font.cc Font.hh FontImp.hh \ diff --git a/src/Window.cc b/src/Window.cc index 8126e9e..5eb380e 100644 --- a/src/Window.cc +++ b/src/Window.cc @@ -264,8 +264,8 @@ FluxboxWindow::FluxboxWindow(WinClient &client, FbWinFrameTheme &tm, m_toggled_decos(false), m_icon_hidden(false), m_focus_hidden(false), - m_focus_new(screen().focusControl(), &FocusControl::focusNew), - m_mouse_focus(screen().focusControl(), &FocusControl::isMouseFocus), + m_focus_new(screen().focusControl().focusNew()), + m_mouse_focus(screen().focusControl().isMouseFocus()), m_click_focus(true), m_old_pos_x(0), m_old_pos_y(0), m_old_width(1), m_old_height(1), diff --git a/src/Window.hh b/src/Window.hh index 5dbe055..d0db606 100644 --- a/src/Window.hh +++ b/src/Window.hh @@ -27,7 +27,6 @@ #ifndef WINDOW_HH #define WINDOW_HH -#include "FbTk/DefaultValue.hh" #include "FbTk/Timer.hh" #include "FbTk/Subject.hh" #include "FbTk/Observer.hh" @@ -50,7 +49,6 @@ class WinClient; class FbWinFrameTheme; class BScreen; class FbWinFrame; -class FocusControl; namespace FbTk { class TextButton; @@ -611,10 +609,8 @@ private: bool m_icon_hidden; ///< if the window is in the iconbar bool m_focus_hidden; ///< if the window is in the NextWindow list - /// if the window is normally focused when mapped - FbTk::DefaultAccessor m_focus_new; - /// if the window is focused with EnterNotify - FbTk::DefaultAccessor m_mouse_focus; + bool m_focus_new; ///< if the window is normally focused when mapped + bool m_mouse_focus; ///< if the window is focused with EnterNotify bool m_click_focus; ///< if the window is focused by clicking int m_old_pos_x, m_old_pos_y; ///< old position so we can restore from maximized unsigned int m_old_width, m_old_height; ///< old size so we can restore from maximized state -- cgit v0.11.2