revert previous patch until it can be fixed
This commit is contained in:
parent
b2546389a5
commit
f3790fb3e4
4 changed files with 5 additions and 91 deletions
|
@ -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 <typename T>
|
|
||||||
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<T> &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 <typename T, typename Receiver>
|
|
||||||
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<T, Receiver> &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
|
|
|
@ -16,7 +16,7 @@ imlib2_SOURCE= ImageImlib2.hh ImageImlib2.cc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
libFbTk_a_SOURCES = App.hh App.cc Color.cc Color.hh Command.hh \
|
libFbTk_a_SOURCES = App.hh App.cc Color.cc Color.hh Command.hh \
|
||||||
ObjectRegistry.hh DefaultValue.hh \
|
ObjectRegistry.hh \
|
||||||
FileUtil.hh FileUtil.cc \
|
FileUtil.hh FileUtil.cc \
|
||||||
EventHandler.hh EventManager.hh EventManager.cc \
|
EventHandler.hh EventManager.hh EventManager.cc \
|
||||||
FbWindow.hh FbWindow.cc Font.cc Font.hh FontImp.hh \
|
FbWindow.hh FbWindow.cc Font.cc Font.hh FontImp.hh \
|
||||||
|
|
|
@ -264,8 +264,8 @@ FluxboxWindow::FluxboxWindow(WinClient &client, FbWinFrameTheme &tm,
|
||||||
m_toggled_decos(false),
|
m_toggled_decos(false),
|
||||||
m_icon_hidden(false),
|
m_icon_hidden(false),
|
||||||
m_focus_hidden(false),
|
m_focus_hidden(false),
|
||||||
m_focus_new(screen().focusControl(), &FocusControl::focusNew),
|
m_focus_new(screen().focusControl().focusNew()),
|
||||||
m_mouse_focus(screen().focusControl(), &FocusControl::isMouseFocus),
|
m_mouse_focus(screen().focusControl().isMouseFocus()),
|
||||||
m_click_focus(true),
|
m_click_focus(true),
|
||||||
m_old_pos_x(0), m_old_pos_y(0),
|
m_old_pos_x(0), m_old_pos_y(0),
|
||||||
m_old_width(1), m_old_height(1),
|
m_old_width(1), m_old_height(1),
|
||||||
|
|
|
@ -27,7 +27,6 @@
|
||||||
#ifndef WINDOW_HH
|
#ifndef WINDOW_HH
|
||||||
#define WINDOW_HH
|
#define WINDOW_HH
|
||||||
|
|
||||||
#include "FbTk/DefaultValue.hh"
|
|
||||||
#include "FbTk/Timer.hh"
|
#include "FbTk/Timer.hh"
|
||||||
#include "FbTk/Subject.hh"
|
#include "FbTk/Subject.hh"
|
||||||
#include "FbTk/Observer.hh"
|
#include "FbTk/Observer.hh"
|
||||||
|
@ -50,7 +49,6 @@ class WinClient;
|
||||||
class FbWinFrameTheme;
|
class FbWinFrameTheme;
|
||||||
class BScreen;
|
class BScreen;
|
||||||
class FbWinFrame;
|
class FbWinFrame;
|
||||||
class FocusControl;
|
|
||||||
|
|
||||||
namespace FbTk {
|
namespace FbTk {
|
||||||
class TextButton;
|
class TextButton;
|
||||||
|
@ -611,10 +609,8 @@ private:
|
||||||
|
|
||||||
bool m_icon_hidden; ///< if the window is in the iconbar
|
bool m_icon_hidden; ///< if the window is in the iconbar
|
||||||
bool m_focus_hidden; ///< if the window is in the NextWindow list
|
bool m_focus_hidden; ///< if the window is in the NextWindow list
|
||||||
/// if the window is normally focused when mapped
|
bool m_focus_new; ///< if the window is normally focused when mapped
|
||||||
FbTk::DefaultAccessor<bool, FocusControl> m_focus_new;
|
bool m_mouse_focus; ///< if the window is focused with EnterNotify
|
||||||
/// if the window is focused with EnterNotify
|
|
||||||
FbTk::DefaultAccessor<bool, FocusControl> m_mouse_focus;
|
|
||||||
bool m_click_focus; ///< if the window is focused by clicking
|
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
|
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
|
unsigned int m_old_width, m_old_height; ///< old size so we can restore from maximized state
|
||||||
|
|
Loading…
Reference in a new issue