Convert Screen::reconfigureSig to FbTk::Signal
Pavel Labath pavelo@centrum.sk
5 files changed,
10 insertions(+),
29 deletions(-)
M
src/Screen.cc
→
src/Screen.cc
@@ -59,7 +59,6 @@ #include "SystemTray.hh"
#include "Debug.hh" #include "FbTk/I18n.hh" -#include "FbTk/Subject.hh" #include "FbTk/FbWindow.hh" #include "FbTk/SimpleCommand.hh" #include "FbTk/MultLayers.hh"@@ -301,7 +300,6 @@ BScreen::BScreen(FbTk::ResourceManager &rm,
const string &screenname, const string &altscreenname, int scrn, int num_layers) : - m_reconfigure_sig(*this), // reconfigure signal m_layermanager(num_layers), m_image_control(0), m_focused_windowtheme(new FbWinFrameTheme(scrn, ".focus", ".Focus")),@@ -918,7 +916,7 @@ mem_fun(&FluxboxWindow::reconfigure));
imageControl().cleanCache(); // notify objects that the screen is reconfigured - m_reconfigure_sig.notify(); + m_reconfigure_sig.emit(*this); // Reload style FbTk::ThemeManager::instance().load(fluxbox->getStyleFilename(),
M
src/Screen.hh
→
src/Screen.hh
@@ -213,7 +213,7 @@ ScreenSignal ¤tWorkspaceSig() { return m_currentworkspace_sig; }
/// focused window signal FbTk::Signal<BScreen&, FluxboxWindow*, WinClient*> &focusedWindowSig() { return m_focusedwindow_sig; } /// reconfigure signal - FbTk::Subject &reconfigureSig() { return m_reconfigure_sig; } + ScreenSignal &reconfigureSig() { return m_reconfigure_sig; } ScreenSignal &resizeSig() { return m_resize_sig; } ScreenSignal &bgChangeSig() { return m_bg_change_sig; } //@}@@ -455,18 +455,6 @@ /// This resource is now owned by Screen and will be destroyed
/// when screen dies void addManagedResource(FbTk::Resource_base *resource); - /** - * Used to emit different signals for the screen - */ - class ScreenSubject:public FbTk::Subject { - public: - ScreenSubject(BScreen &scr):m_scr(scr) { } - const BScreen &screen() const { return m_scr; } - BScreen &screen() { return m_scr; } - private: - BScreen &m_scr; - }; - private: void setupConfigmenu(FbTk::Menu &menu); void renderGeomWindow();@@ -476,8 +464,7 @@
const Strut* availableWorkspaceArea(int head) const; FbTk::SignalTracker m_tracker; - ScreenSubject m_reconfigure_sig; ///< reconfigure signal - + ScreenSignal m_reconfigure_sig; ///< reconfigure signal FbTk::Signal<BScreen&, FluxboxWindow*, WinClient*> m_focusedwindow_sig; ///< focused window signal ScreenSignal m_resize_sig; ///< resize signal
M
src/Slit.cc
→
src/Slit.cc
@@ -271,7 +271,7 @@
join(scr.bgChangeSig(), FbTk::MemFunIgnoreArgs(*this, &Slit::reconfigure)); - scr.reconfigureSig().attach(this); // if alpha changed (we disablethis signal when we get theme change sig) + join(scr.reconfigureSig(), FbTk::MemFunIgnoreArgs(*this, &Slit::reconfigure)); scr.addConfigMenu(_FB_XTEXT(Slit, Slit, "Slit", "The Slit"), m_slitmenu);@@ -1040,10 +1040,6 @@ #ifdef XINERAMA
if (m_xineramaheadmenu) m_xineramaheadmenu->reloadHeads(); #endif // XINERAMA -} - -void Slit::update(FbTk::Subject*) { - reconfigure(); } void Slit::clearWindow() {
M
src/Slit.hh
→
src/Slit.hh
@@ -52,8 +52,7 @@ class Strut;
class Layer; /// Handles dock apps -class Slit: public FbTk::EventHandler, public FbTk::Observer, - public LayerObject, private FbTk::SignalTracker +class Slit: public FbTk::EventHandler, public LayerObject, private FbTk::SignalTracker { public: typedef std::list<SlitClient *> SlitClients;@@ -101,8 +100,6 @@ void leaveNotifyEvent(XCrossingEvent &event);
void configureRequestEvent(XConfigureRequestEvent &event); void exposeEvent(XExposeEvent &event); //@} - - void update(FbTk::Subject *subj); void moveToLayer(int layernum); void toggleHidden();
M
src/Toolbar.cc
→
src/Toolbar.cc
@@ -229,9 +229,12 @@ m_resize_lock(false) {
_FB_USES_NLS; // NOTE: first subject is always the rearrangeItem ! m_observers.push_back(makeObserver(*this, &Toolbar::rearrangeItems)); + + // get this on antialias change + m_signal_tracker.join(screen().reconfigureSig(), + FbTk::MemFunIgnoreArgs(*this, &Toolbar::reconfigure)); + // we need to get notified when the theme is reloaded - m_observers.push_back(makeObserver(*this, &Toolbar::reconfigure)); - screen().reconfigureSig().attach(m_observers.back()); // get this on antialias change m_signal_tracker.join(m_theme.reconfigSig(), FbTk::MemFun(*this, &Toolbar::reconfigure)); // listen to screen size changes