removed ToolbarHandler
This commit is contained in:
parent
8971b068ac
commit
5e9b6453f0
5 changed files with 50 additions and 28 deletions
|
@ -60,7 +60,7 @@ REGEXP_SOURCE = RegExp.hh RegExp.cc ClientPattern.hh ClientPattern.cc
|
|||
endif
|
||||
endif
|
||||
if TOOLBAR_SRC
|
||||
TOOLBAR_SOURCE = Toolbar.hh Toolbar.cc ToolbarHandler.hh ToolbarHandler.cc \
|
||||
TOOLBAR_SOURCE = Toolbar.hh Toolbar.cc \
|
||||
ToolbarTheme.hh ToolbarTheme.cc ToolbarItem.hh ToolbarItem.cc \
|
||||
ClockTool.hh ClockTool.cc \
|
||||
WorkspaceNameTool.hh WorkspaceNameTool.cc WorkspaceNameTheme.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.cc,v 1.126 2003/10/31 10:37:09 rathnor Exp $
|
||||
// $Id: Toolbar.cc,v 1.127 2003/12/03 00:32:13 fluxgen Exp $
|
||||
|
||||
#include "Toolbar.hh"
|
||||
|
||||
|
@ -186,21 +186,23 @@ Toolbar::Frame::~Frame() {
|
|||
evm.remove(window);
|
||||
}
|
||||
|
||||
Toolbar::Toolbar(BScreen &scrn, FbTk::XLayer &layer, FbTk::Menu &menu, size_t width):
|
||||
Toolbar::Toolbar(BScreen &scrn, FbTk::XLayer &layer, size_t width):
|
||||
m_hidden(false),
|
||||
frame(*this, scrn.screenNumber()),
|
||||
m_window_pm(0),
|
||||
m_screen(scrn),
|
||||
m_toolbarmenu(menu),
|
||||
m_placementmenu(*scrn.menuTheme(),
|
||||
scrn.screenNumber(), scrn.imageControl(),
|
||||
*scrn.layerManager().getLayer(Fluxbox::instance()->getMenuLayer())),
|
||||
m_layermenu(*scrn.menuTheme(),
|
||||
scrn.screenNumber(),
|
||||
scrn.imageControl(),
|
||||
*scrn.layerManager().getLayer(Fluxbox::instance()->getMenuLayer()),
|
||||
this,
|
||||
true),
|
||||
m_placementmenu(*scrn.menuTheme(),
|
||||
scrn.screenNumber(), scrn.imageControl(),
|
||||
*scrn.layerManager().getLayer(Fluxbox::instance()->getMenuLayer())),
|
||||
m_toolbarmenu(*scrn.menuTheme(),
|
||||
scrn.screenNumber(), scrn.imageControl(),
|
||||
*scrn.layerManager().getLayer(Fluxbox::instance()->getMenuLayer())),
|
||||
m_theme(scrn.screenNumber()),
|
||||
m_layeritem(frame.window, layer),
|
||||
m_tool_factory(scrn),
|
||||
|
@ -270,6 +272,10 @@ Toolbar::Toolbar(BScreen &scrn, FbTk::XLayer &layer, FbTk::Menu &menu, size_t wi
|
|||
|
||||
Toolbar::~Toolbar() {
|
||||
FbTk::EventManager::instance()->remove(window());
|
||||
// remove menu items before we delete tools so we dont end up
|
||||
// with dangling pointers to old submenu items (internal menus)
|
||||
// from the tools
|
||||
menu().removeAll();
|
||||
|
||||
deleteItems();
|
||||
clearStrut();
|
||||
|
@ -445,7 +451,7 @@ void Toolbar::reconfigure() {
|
|||
|
||||
rearrangeItems();
|
||||
|
||||
m_toolbarmenu.reconfigure();
|
||||
menu().reconfigure();
|
||||
// we're done with all resizing and stuff now we can request a new
|
||||
// area to be reserved on screen
|
||||
updateStrut();
|
||||
|
@ -458,26 +464,26 @@ void Toolbar::buttonPressEvent(XButtonEvent &be) {
|
|||
if (be.button != 3)
|
||||
return;
|
||||
|
||||
if (! m_toolbarmenu.isVisible()) {
|
||||
if (! menu().isVisible()) {
|
||||
int x, y;
|
||||
|
||||
x = be.x_root - (m_toolbarmenu.width() / 2);
|
||||
y = be.y_root - (m_toolbarmenu.height() / 2);
|
||||
x = be.x_root - (menu().width() / 2);
|
||||
y = be.y_root - (menu().height() / 2);
|
||||
|
||||
if (x < 0)
|
||||
x = 0;
|
||||
else if (x + m_toolbarmenu.width() > screen().width())
|
||||
x = screen().width() - m_toolbarmenu.width();
|
||||
else if (x + menu().width() > screen().width())
|
||||
x = screen().width() - menu().width();
|
||||
|
||||
if (y < 0)
|
||||
y = 0;
|
||||
else if (y + m_toolbarmenu.height() > screen().height())
|
||||
y = screen().height() - m_toolbarmenu.height();
|
||||
else if (y + menu().height() > screen().height())
|
||||
y = screen().height() - menu().height();
|
||||
|
||||
m_toolbarmenu.move(x, y);
|
||||
m_toolbarmenu.show();
|
||||
menu().move(x, y);
|
||||
menu().show();
|
||||
} else
|
||||
m_toolbarmenu.hide();
|
||||
menu().hide();
|
||||
|
||||
}
|
||||
|
||||
|
@ -512,7 +518,7 @@ void Toolbar::leaveNotifyEvent(XCrossingEvent ¬_used) {
|
|||
if (isHidden()) {
|
||||
if (m_hide_timer.isTiming())
|
||||
m_hide_timer.stop();
|
||||
} else if (! m_toolbarmenu.isVisible() && ! m_hide_timer.isTiming())
|
||||
} else if (! menu().isVisible() && ! m_hide_timer.isTiming())
|
||||
m_hide_timer.start();
|
||||
|
||||
}
|
||||
|
|
|
@ -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.48 2003/10/13 23:49:12 fluxgen Exp $
|
||||
// $Id: Toolbar.hh,v 1.49 2003/12/03 00:31:40 fluxgen Exp $
|
||||
|
||||
#ifndef TOOLBAR_HH
|
||||
#define TOOLBAR_HH
|
||||
|
@ -71,7 +71,7 @@ public:
|
|||
};
|
||||
|
||||
/// Create a toolbar on the screen with specific width
|
||||
Toolbar(BScreen &screen, FbTk::XLayer &layer, FbTk::Menu &menu, size_t width = 200);
|
||||
Toolbar(BScreen &screen, FbTk::XLayer &layer, size_t width = 200);
|
||||
|
||||
virtual ~Toolbar();
|
||||
|
||||
|
@ -162,9 +162,10 @@ private:
|
|||
BScreen &m_screen; ///< screen connection
|
||||
|
||||
FbTk::Timer m_hide_timer; ///< timer to for auto hide toolbar
|
||||
FbTk::Menu &m_toolbarmenu;
|
||||
FbMenu m_placementmenu;
|
||||
|
||||
LayerMenu<Toolbar> m_layermenu;
|
||||
FbMenu m_placementmenu, m_toolbarmenu;
|
||||
|
||||
|
||||
// themes
|
||||
ToolbarTheme m_theme;
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
// DEALINGS IN THE SOFTWARE.
|
||||
|
||||
// $Id: fluxbox.cc,v 1.201 2003/10/28 02:17:03 rathnor Exp $
|
||||
// $Id: fluxbox.cc,v 1.202 2003/12/03 00:30:22 fluxgen Exp $
|
||||
|
||||
#include "fluxbox.hh"
|
||||
|
||||
|
@ -68,7 +68,8 @@
|
|||
#endif // REMEMBER
|
||||
#ifdef USE_TOOLBAR
|
||||
#include "Toolbar.hh"
|
||||
#include "ToolbarHandler.hh"
|
||||
#else
|
||||
class Toolbar { };
|
||||
#endif // USE_TOOLBAR
|
||||
|
||||
// X headers
|
||||
|
@ -552,7 +553,8 @@ Fluxbox::Fluxbox(int argc, char **argv, const char *dpy_name, const char *rcfile
|
|||
|
||||
m_screen_list.push_back(screen);
|
||||
#ifdef USE_TOOLBAR
|
||||
m_atomhandler.push_back(new ToolbarHandler(*screen));
|
||||
m_toolbars.push_back(new Toolbar(*screen,
|
||||
*screen->layerManager().getLayer(Fluxbox::instance()->getNormalLayer())));
|
||||
#endif // USE_TOOLBAR
|
||||
|
||||
// attach screen signals to this
|
||||
|
@ -565,9 +567,12 @@ Fluxbox::Fluxbox(int argc, char **argv, const char *dpy_name, const char *rcfile
|
|||
for (size_t atomh=0; atomh<m_atomhandler.size(); ++atomh) {
|
||||
m_atomhandler[atomh]->initForScreen(*screen);
|
||||
}
|
||||
|
||||
revertFocus(*screen, false); // make sure focus style is correct
|
||||
|
||||
}
|
||||
} // end init screens
|
||||
|
||||
|
||||
m_keyscreen = m_mousescreen = m_screen_list.front();
|
||||
|
||||
if (m_screen_list.size() == 0) {
|
||||
|
@ -605,12 +610,19 @@ Fluxbox::Fluxbox(int argc, char **argv, const char *dpy_name, const char *rcfile
|
|||
|
||||
|
||||
Fluxbox::~Fluxbox() {
|
||||
// destroy toolbars
|
||||
while (!m_toolbars.empty()) {
|
||||
delete m_toolbars.back();
|
||||
m_toolbars.pop_back();
|
||||
}
|
||||
|
||||
// destroy atomhandlers
|
||||
while (!m_atomhandler.empty()) {
|
||||
delete m_atomhandler.back();
|
||||
m_atomhandler.pop_back();
|
||||
}
|
||||
|
||||
|
||||
clearMenuFilenames();
|
||||
}
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
// DEALINGS IN THE SOFTWARE.
|
||||
|
||||
// $Id: fluxbox.hh,v 1.74 2003/10/05 06:28:47 rathnor Exp $
|
||||
// $Id: fluxbox.hh,v 1.75 2003/12/03 00:29:39 fluxgen Exp $
|
||||
|
||||
#ifndef FLUXBOX_HH
|
||||
#define FLUXBOX_HH
|
||||
|
@ -65,6 +65,7 @@ class WinClient;
|
|||
class Keys;
|
||||
class BScreen;
|
||||
class FbAtoms;
|
||||
class Toolbar;
|
||||
|
||||
|
||||
/// main class for the window manager.
|
||||
|
@ -310,6 +311,8 @@ private:
|
|||
static Fluxbox::Titlebar s_titlebar_left[], s_titlebar_right[];
|
||||
static Fluxbox *s_singleton;
|
||||
std::vector<AtomHandler *> m_atomhandler;
|
||||
std::vector<Toolbar *> m_toolbars;
|
||||
|
||||
bool m_starting;
|
||||
bool m_shutdown;
|
||||
int m_server_grabs;
|
||||
|
|
Loading…
Reference in a new issue