all repos — fluxbox @ f25cf733d6fc1496f02514695948c09797755dae

custom fork of the fluxbox windowmanager

added theme listener subject
fluxgen fluxgen
commit

f25cf733d6fc1496f02514695948c09797755dae

parent

2031f46de3475f52a54165740bf8c2b891b3bebe

4 files changed, 24 insertions(+), 7 deletions(-)

jump to
M src/FbWinFrameTheme.ccsrc/FbWinFrameTheme.cc

@@ -19,7 +19,7 @@ // 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. -// $Id: FbWinFrameTheme.cc,v 1.1 2003/01/05 22:14:10 fluxgen Exp $ +// $Id: FbWinFrameTheme.cc,v 1.2 2003/02/15 01:55:45 fluxgen Exp $ #include "FbWinFrameTheme.hh" #include "App.hh"

@@ -81,5 +81,8 @@ XChangeGC(disp, m_label_text_focus_gc, gc_value_mask, &gcv);

gcv.foreground = m_label_unfocus_color->pixel(); XChangeGC(disp, m_label_text_unfocus_gc, gc_value_mask, &gcv); + + // notify listeners + m_theme_change.notify(); }
M src/FbWinFrameTheme.hhsrc/FbWinFrameTheme.hh

@@ -19,7 +19,7 @@ // 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. -// $Id: FbWinFrameTheme.hh,v 1.1 2003/01/05 22:14:10 fluxgen Exp $ +// $Id: FbWinFrameTheme.hh,v 1.2 2003/02/15 01:55:27 fluxgen Exp $ #ifndef FBWINFRAMETHEME_HH #define FBWINFRAMETHEME_HH

@@ -29,6 +29,7 @@ #include "Texture.hh"

#include "Text.hh" #include "Color.hh" #include "FbTk/Theme.hh" +#include "Subject.hh" class FbWinFrameTheme: public FbTk::Theme { public:

@@ -76,6 +77,9 @@ GC labelTextFocusGC() const { return m_label_text_focus_gc; }

GC labelTextUnfocusGC() const { return m_label_text_unfocus_gc; } void reconfigTheme(); + + void addListener(FbTk::Observer &obs) { m_theme_change.attach(&obs); } + void removeListener(FbTk::Observer &obs) { m_theme_change.detach(&obs); } private: FbTk::ThemeItem<FbTk::Texture> m_label_focus, m_label_unfocus; FbTk::ThemeItem<FbTk::Texture> m_title_focus, m_title_unfocus;

@@ -91,6 +95,8 @@ FbTk::ThemeItem<FbTk::Font> m_font;

FbTk::ThemeItem<FbTk::Justify> m_textjustify; GC m_label_text_focus_gc, m_label_text_unfocus_gc; + + FbTk::Subject m_theme_change; }; #endif // FBWINFRAMETHEME_HH
M src/ToolbarTheme.ccsrc/ToolbarTheme.cc

@@ -19,7 +19,7 @@ // 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. -// $Id: ToolbarTheme.cc,v 1.1 2002/12/02 19:56:38 fluxgen Exp $ +// $Id: ToolbarTheme.cc,v 1.2 2003/02/15 01:59:00 fluxgen Exp $ #include "ToolbarTheme.hh"

@@ -106,4 +106,7 @@

gcv.foreground = m_button_color->pixel(); XChangeGC(m_display, m_button_pic_gc, gc_value_mask, &gcv); + + // notify listeners + m_theme_change_sig.notify(); }
M src/ToolbarTheme.hhsrc/ToolbarTheme.hh

@@ -19,7 +19,7 @@ // 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. -// $Id: ToolbarTheme.hh,v 1.1 2002/12/02 19:56:08 fluxgen Exp $ +// $Id: ToolbarTheme.hh,v 1.2 2003/02/15 01:58:52 fluxgen Exp $ #ifndef TOOLBARTHEME_HH #define TOOLBARTHEME_HH

@@ -29,9 +29,9 @@ #include "Font.hh"

#include "Texture.hh" #include "Color.hh" #include "Text.hh" -/** - Toolbar theme class container -*/ +#include "Subject.hh" + +/// toolbar theme class container class ToolbarTheme: public FbTk::Theme { public: explicit ToolbarTheme(int screen_num);

@@ -71,6 +71,9 @@ GC clockTextGC() const { return m_clock_text_gc; }

GC buttonPicGC() const { return m_button_pic_gc; } ///@} FbTk::Justify justify() const { return *m_justify; } + + void addListener(FbTk::Observer &obs) { m_theme_change_sig.attach(&obs); } + void removeListener(FbTk::Observer &obs) { m_theme_change_sig.detach(&obs); } private: // text colors FbTk::ThemeItem<FbTk::Color> m_label_textcolor, m_window_textcolor, m_clock_textcolor;

@@ -82,6 +85,8 @@ FbTk::ThemeItem<FbTk::Justify> m_justify;

// graphic context GC m_label_text_gc, m_window_text_gc, m_clock_text_gc, m_button_pic_gc; Display *m_display; + + FbTk::Subject m_theme_change_sig; }; #endif // TOOLBARTHEME_HH