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
|
||||
|
||||
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 \
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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<bool, FocusControl> m_focus_new;
|
||||
/// if the window is focused with EnterNotify
|
||||
FbTk::DefaultAccessor<bool, FocusControl> 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
|
||||
|
|
Loading…
Reference in a new issue