From 06e830812e143c6fbf6838bc222ba6171f1a64e7 Mon Sep 17 00:00:00 2001 From: rathnor Date: Wed, 16 Apr 2003 13:43:50 +0000 Subject: fix saving of toolbar + slit layers - simon --- src/LayerMenu.hh | 29 +++++++++++++++++++++++------ src/Screen.hh | 5 +++-- src/Slit.cc | 5 +++-- src/Slit.hh | 7 ++++--- src/Toolbar.cc | 10 ++++++++-- src/Toolbar.hh | 7 ++++--- src/ToolbarHandler.hh | 4 ++-- src/Window.cc | 8 +++++--- 8 files changed, 52 insertions(+), 23 deletions(-) diff --git a/src/LayerMenu.hh b/src/LayerMenu.hh index 1a48878..3eafa3f 100644 --- a/src/LayerMenu.hh +++ b/src/LayerMenu.hh @@ -20,13 +20,16 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: LayerMenu.hh,v 1.1 2003/02/18 22:09:02 rathnor Exp $ +// $Id: LayerMenu.hh,v 1.2 2003/04/16 13:43:41 rathnor Exp $ #ifndef LAYERMENU_HH #define LAYERMENU_HH #include "MenuItem.hh" #include "FbMenu.hh" +#include "FbCommands.hh" +#include "RefCount.hh" +#include "SimpleCommand.hh" class Fluxbox; @@ -36,12 +39,16 @@ class Fluxbox; template class LayerMenuItem : public FbTk::MenuItem { public: + LayerMenuItem(const char *label, ItemType *object, int layernum, + FbTk::RefCount &cmd): + FbTk::MenuItem(label,cmd), m_object(object), m_layernum(layernum) {} LayerMenuItem(const char *label, ItemType *object, int layernum): FbTk::MenuItem(label), m_object(object), m_layernum(layernum) {} bool isEnabled() const { return m_object->getLayerItem().getLayerNum() != m_layernum; } ; void click(int button, int time) { m_object->moveToLayer(m_layernum); + FbTk::MenuItem::click(button, time); } private: @@ -55,7 +62,7 @@ template class LayerMenu : public FbMenu { public: LayerMenu(FbTk::MenuTheme &tm, int screen_num, FbTk::ImageControl &imgctrl, - FbTk::XLayer &layer, ItemType *item); + FbTk::XLayer &layer, ItemType *item, bool save_rc); private: ItemType *m_object; @@ -64,7 +71,7 @@ private: template LayerMenu::LayerMenu(FbTk::MenuTheme &tm, int screen_num, FbTk::ImageControl &imgctrl, - FbTk::XLayer &layer, ItemType *item): + FbTk::XLayer &layer, ItemType *item, bool save_rc): FbMenu(tm, screen_num, imgctrl, layer), m_object(item) { @@ -86,11 +93,21 @@ LayerMenu::LayerMenu(FbTk::MenuTheme &tm, int screen_num, FbTk::ImageC {0, 0, "Desktop", fluxbox->getDesktopLayer()}, }; + FbTk::RefCount saverc_cmd(new FbTk::SimpleCommand( + *Fluxbox::instance(), + &Fluxbox::save_rc)); + for (size_t i=0; i < 6; ++i) { // TODO: fetch nls string - insert(new LayerMenuItem( - layer_menuitems[i].default_str, - m_object, layer_menuitems[i].layernum)); + if (save_rc) { + insert(new LayerMenuItem( + layer_menuitems[i].default_str, + m_object, layer_menuitems[i].layernum, saverc_cmd)); + } else { + insert(new LayerMenuItem( + layer_menuitems[i].default_str, + m_object, layer_menuitems[i].layernum)); + } } update(); } diff --git a/src/Screen.hh b/src/Screen.hh index e0d2398..33fa03c 100644 --- a/src/Screen.hh +++ b/src/Screen.hh @@ -22,7 +22,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Screen.hh,v 1.77 2003/04/16 00:36:09 fluxgen Exp $ +// $Id: Screen.hh,v 1.78 2003/04/16 13:43:42 rathnor Exp $ #ifndef SCREEN_HH #define SCREEN_HH @@ -36,7 +36,6 @@ #include "MultLayers.hh" #include "XLayerItem.hh" #include "ToolbarHandler.hh" -#include "fluxbox.hh" #include #include @@ -206,6 +205,8 @@ public: inline void saveToolbarMode(ToolbarHandler::ToolbarMode m) { *resource.toolbar_mode = m; } inline void saveToolbarPlacement(Toolbar::Placement place) { *resource.toolbar_placement = place; } inline void saveToolbarOnHead(int head) { *resource.toolbar_on_head = head; } + inline void saveToolbarLayer(Fluxbox::Layer layer) { *resource.toolbar_layernum = layer; } + inline void saveSlitLayer(Fluxbox::Layer layer) { *resource.slit_layernum = layer; } inline void savePlacementPolicy(int p) { resource.placement_policy = p; } inline void saveRowPlacementDirection(int d) { resource.row_direction = d; } diff --git a/src/Slit.cc b/src/Slit.cc index 5c69298..bb910f7 100644 --- a/src/Slit.cc +++ b/src/Slit.cc @@ -22,7 +22,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Slit.cc,v 1.38 2003/04/14 14:53:12 fluxgen Exp $ +// $Id: Slit.cc,v 1.39 2003/04/16 13:43:43 rathnor Exp $ #include "Slit.hh" @@ -254,7 +254,8 @@ Slit::Slit(BScreen &scr, FbTk::XLayer &layer, const char *filename) scr.getScreenNumber(), *scr.getImageControl(), *scr.layerManager().getLayer(Fluxbox::instance()->getMenuLayer()), - this)); + this, + true)); // default placement and direction m_direction = HORIZONTAL; diff --git a/src/Slit.hh b/src/Slit.hh index 5bb6aa9..fec338d 100644 --- a/src/Slit.hh +++ b/src/Slit.hh @@ -22,7 +22,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -/// $Id: Slit.hh,v 1.20 2003/02/20 16:38:17 fluxgen Exp $ +/// $Id: Slit.hh,v 1.21 2003/04/16 13:43:44 rathnor Exp $ #ifndef SLIT_HH #define SLIT_HH @@ -32,6 +32,8 @@ #include "Timer.hh" #include "XLayerItem.hh" #include "LayerMenu.hh" +#include "fluxbox.hh" +#include "Screen.hh" #include #include @@ -40,7 +42,6 @@ #include #include -class BScreen; class SlitClient; /// Handles dock apps @@ -102,7 +103,7 @@ public: void configureRequestEvent(XConfigureRequestEvent &event); //@} - void moveToLayer(int layernum) { m_layeritem->moveToLayer(layernum); } + void moveToLayer(int layernum) { m_layeritem->moveToLayer(layernum); m_screen.saveSlitLayer((Fluxbox::Layer) layernum); } FbTk::XLayerItem &getLayerItem() { return *m_layeritem; } virtual void timeout(); diff --git a/src/Toolbar.cc b/src/Toolbar.cc index 3efcabd..6471804 100644 --- a/src/Toolbar.cc +++ b/src/Toolbar.cc @@ -22,7 +22,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Toolbar.cc,v 1.71 2003/04/16 12:53:14 fluxgen Exp $ +// $Id: Toolbar.cc,v 1.72 2003/04/16 13:43:44 rathnor Exp $ #include "Toolbar.hh" @@ -256,7 +256,8 @@ Toolbar::Toolbar(BScreen &scrn, FbTk::XLayer &layer, FbTk::Menu &menu, size_t wi scrn.getScreenNumber(), *scrn.getImageControl(), *scrn.layerManager().getLayer(Fluxbox::instance()->getMenuLayer()), - this), + this, + true), m_theme(scrn.getScreenNumber()), m_place(BOTTOMCENTER), m_themelistener(*this), @@ -1193,3 +1194,8 @@ void Toolbar::HideHandler::timeout() { toolbar->frame.window.move(toolbar->frame.x, toolbar->frame.y); } } + +void Toolbar::moveToLayer(int layernum) { + m_layeritem.moveToLayer(layernum); + m_screen.saveToolbarLayer((Fluxbox::Layer) layernum); +} diff --git a/src/Toolbar.hh b/src/Toolbar.hh index 9ed481b..8905655 100644 --- a/src/Toolbar.hh +++ b/src/Toolbar.hh @@ -22,7 +22,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Toolbar.hh,v 1.26 2003/03/03 21:51:08 rathnor Exp $ +// $Id: Toolbar.hh,v 1.27 2003/04/16 13:43:48 rathnor Exp $ #ifndef TOOLBAR_HH #define TOOLBAR_HH @@ -37,10 +37,11 @@ #include "XLayer.hh" #include "XLayerItem.hh" #include "LayerMenu.hh" +#include "fluxbox.hh" #include - +class BScreen; namespace FbTk { class ImageControl; }; @@ -86,7 +87,7 @@ public: inline FbTk::Menu &layermenu() { return m_layermenu; } inline const FbTk::Menu &layermenu() const { return m_layermenu; } - void moveToLayer(int layernum) { m_layeritem.moveToLayer(layernum); } + void moveToLayer(int layernum); FbTk::XLayerItem &getLayerItem() { return m_layeritem; } diff --git a/src/ToolbarHandler.hh b/src/ToolbarHandler.hh index 6e5f450..1f084ba 100644 --- a/src/ToolbarHandler.hh +++ b/src/ToolbarHandler.hh @@ -20,7 +20,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: ToolbarHandler.hh,v 1.1 2003/03/03 21:51:09 rathnor Exp $ +// $Id: ToolbarHandler.hh,v 1.2 2003/04/16 13:43:49 rathnor Exp $ #ifndef TOOLBARHANDLER_HH #define TOOLBARHANDLER_HH @@ -29,8 +29,8 @@ #include "Menu.hh" #include "Toolbar.hh" -class FluxboxWindow; class BScreen; +class FluxboxWindow; class ToolbarHandler : public AtomHandler { public: diff --git a/src/Window.cc b/src/Window.cc index a2a9d02..fd070f9 100644 --- a/src/Window.cc +++ b/src/Window.cc @@ -22,7 +22,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Window.cc,v 1.140 2003/04/16 12:27:49 fluxgen Exp $ +// $Id: Window.cc,v 1.141 2003/04/16 13:43:50 rathnor Exp $ #include "Window.hh" @@ -207,7 +207,8 @@ FluxboxWindow::FluxboxWindow(WinClient &client, BScreen &scr, FbWinFrameTheme &t scr.getScreenNumber(), *scr.getImageControl(), *scr.layerManager().getLayer(Fluxbox::instance()->getMenuLayer()), - this), + this, + false), old_decoration(DECOR_NORMAL), m_client(&client), m_frame(tm, *scr.getImageControl(), scr.getScreenNumber(), 0, 0, 100, 100), @@ -238,7 +239,8 @@ FluxboxWindow::FluxboxWindow(Window w, BScreen &scr, FbWinFrameTheme &tm, scr.getScreenNumber(), *scr.getImageControl(), *scr.layerManager().getLayer(Fluxbox::instance()->getMenuLayer()), - this), + this, + false), old_decoration(DECOR_NORMAL), m_client(new WinClient(w, *this)), m_frame(tm, *scr.getImageControl(), scr.getScreenNumber(), 0, 0, 100, 100), -- cgit v0.11.2