diff options
author | fluxgen <fluxgen> | 2003-02-15 01:54:54 (GMT) |
---|---|---|
committer | fluxgen <fluxgen> | 2003-02-15 01:54:54 (GMT) |
commit | 96c49e2d0d103d9a4d6e5a12e33fc4f7ab83c24e (patch) | |
tree | af2b597c0e8ed04dfde11b6f050c03ff70da9d5e | |
parent | fead9f1578b63b4341308f9ea36e237b7bdca1ae (diff) | |
download | fluxbox-96c49e2d0d103d9a4d6e5a12e33fc4f7ab83c24e.zip fluxbox-96c49e2d0d103d9a4d6e5a12e33fc4f7ab83c24e.tar.bz2 |
added theme listener
-rw-r--r-- | src/FbWinFrame.cc | 6 | ||||
-rw-r--r-- | src/FbWinFrame.hh | 22 |
2 files changed, 22 insertions, 6 deletions
diff --git a/src/FbWinFrame.cc b/src/FbWinFrame.cc index 5c284ec..ca93957 100644 --- a/src/FbWinFrame.cc +++ b/src/FbWinFrame.cc | |||
@@ -19,7 +19,7 @@ | |||
19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
20 | // DEALINGS IN THE SOFTWARE. | 20 | // DEALINGS IN THE SOFTWARE. |
21 | 21 | ||
22 | // $Id: FbWinFrame.cc,v 1.5 2003/01/12 20:31:54 fluxgen Exp $ | 22 | // $Id: FbWinFrame.cc,v 1.6 2003/02/15 01:54:54 fluxgen Exp $ |
23 | 23 | ||
24 | #include "FbWinFrame.hh" | 24 | #include "FbWinFrame.hh" |
25 | #include "ImageControl.hh" | 25 | #include "ImageControl.hh" |
@@ -63,7 +63,9 @@ FbWinFrame::FbWinFrame(FbWinFrameTheme &theme, FbTk::ImageControl &imgctrl, int | |||
63 | m_bevel(1), | 63 | m_bevel(1), |
64 | m_use_titlebar(true), | 64 | m_use_titlebar(true), |
65 | m_use_handle(true), | 65 | m_use_handle(true), |
66 | m_button_pm(0) { | 66 | m_button_pm(0), |
67 | m_themelistener(*this) { | ||
68 | theme.addListener(m_themelistener); | ||
67 | init(); | 69 | init(); |
68 | } | 70 | } |
69 | /* | 71 | /* |
diff --git a/src/FbWinFrame.hh b/src/FbWinFrame.hh index 2f5b81b..841ad40 100644 --- a/src/FbWinFrame.hh +++ b/src/FbWinFrame.hh | |||
@@ -19,7 +19,7 @@ | |||
19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
20 | // DEALINGS IN THE SOFTWARE. | 20 | // DEALINGS IN THE SOFTWARE. |
21 | 21 | ||
22 | // $Id: FbWinFrame.hh,v 1.3 2003/01/09 22:00:34 fluxgen Exp $ | 22 | // $Id: FbWinFrame.hh,v 1.4 2003/02/15 01:54:18 fluxgen Exp $ |
23 | 23 | ||
24 | #ifndef FBWINFRAME_HH | 24 | #ifndef FBWINFRAME_HH |
25 | #define FBWINFRAME_HH | 25 | #define FBWINFRAME_HH |
@@ -32,6 +32,7 @@ | |||
32 | #include "FbWinFrameTheme.hh" | 32 | #include "FbWinFrameTheme.hh" |
33 | #include "RefCount.hh" | 33 | #include "RefCount.hh" |
34 | #include "Command.hh" | 34 | #include "Command.hh" |
35 | #include "Observer.hh" | ||
35 | 36 | ||
36 | #include <vector> | 37 | #include <vector> |
37 | #include <string> | 38 | #include <string> |
@@ -46,11 +47,13 @@ class FbWinFrame:public FbTk::EventHandler { | |||
46 | public: | 47 | public: |
47 | 48 | ||
48 | /// create a top level window | 49 | /// create a top level window |
49 | FbWinFrame(FbWinFrameTheme &theme, FbTk::ImageControl &imgctrl, int screen_num, int x, int y, | 50 | FbWinFrame(FbWinFrameTheme &theme, FbTk::ImageControl &imgctrl, |
51 | int screen_num, int x, int y, | ||
50 | unsigned int width, unsigned int height); | 52 | unsigned int width, unsigned int height); |
51 | 53 | ||
52 | /// create a frame window inside another FbWindow, NOT IMPLEMENTED! | 54 | /// create a frame window inside another FbWindow, NOT IMPLEMENTED! |
53 | FbWinFrame(FbWinFrameTheme &theme, FbTk::ImageControl &imgctrl, const FbTk::FbWindow &parent, | 55 | FbWinFrame(FbWinFrameTheme &theme, FbTk::ImageControl &imgctrl, |
56 | const FbTk::FbWindow &parent, | ||
54 | int x, int y, | 57 | int x, int y, |
55 | unsigned int width, unsigned int height); | 58 | unsigned int width, unsigned int height); |
56 | 59 | ||
@@ -236,7 +239,18 @@ private: | |||
236 | FbTk::RefCount<FbTk::Command> click_pressed; ///< what to do when we press mouse button | 239 | FbTk::RefCount<FbTk::Command> click_pressed; ///< what to do when we press mouse button |
237 | FbTk::RefCount<FbTk::Command> double_click; ///< what to do when we double click | 240 | FbTk::RefCount<FbTk::Command> double_click; ///< what to do when we double click |
238 | }; | 241 | }; |
239 | MouseButtonAction m_commands[5]; ///< hardcoded to five ...TODO, change this | 242 | MouseButtonAction m_commands[5]; ///< hardcoded to five ... //!! TODO, change this |
243 | |||
244 | class ThemeListener: public FbTk::Observer { | ||
245 | public: | ||
246 | ThemeListener(FbWinFrame &frame):m_frame(frame) { } | ||
247 | void update(FbTk::Subject *subj) { | ||
248 | m_frame.reconfigure(); | ||
249 | } | ||
250 | private: | ||
251 | FbWinFrame &m_frame; | ||
252 | }; | ||
253 | ThemeListener m_themelistener; | ||
240 | }; | 254 | }; |
241 | 255 | ||
242 | #endif // FBWINFRAME_HH | 256 | #endif // FBWINFRAME_HH |