minor cleaning
This commit is contained in:
parent
29dec75f5d
commit
bb97e86a3a
1 changed files with 81 additions and 79 deletions
160
src/Toolbar.cc
160
src/Toolbar.cc
|
@ -22,7 +22,7 @@
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
// $Id: Toolbar.cc,v 1.72 2003/04/16 13:43:44 rathnor Exp $
|
// $Id: Toolbar.cc,v 1.73 2003/04/23 00:17:51 fluxgen Exp $
|
||||||
|
|
||||||
#include "Toolbar.hh"
|
#include "Toolbar.hh"
|
||||||
|
|
||||||
|
@ -108,6 +108,7 @@ void setupMenus(Toolbar &tbar) {
|
||||||
tbar.screen().getToolbarWidthPercentResource(),
|
tbar.screen().getToolbarWidthPercentResource(),
|
||||||
0, 100); // min/max value
|
0, 100); // min/max value
|
||||||
|
|
||||||
|
|
||||||
FbTk::RefCount<FbTk::Command> reconfig_toolbar(new FbTk::
|
FbTk::RefCount<FbTk::Command> reconfig_toolbar(new FbTk::
|
||||||
SimpleCommand<Toolbar>
|
SimpleCommand<Toolbar>
|
||||||
(tbar, &Toolbar::reconfigure));
|
(tbar, &Toolbar::reconfigure));
|
||||||
|
@ -119,12 +120,10 @@ void setupMenus(Toolbar &tbar) {
|
||||||
toolbar_menuitem_macro->add(save_resources);
|
toolbar_menuitem_macro->add(save_resources);
|
||||||
|
|
||||||
FbTk::RefCount<FbTk::Command> reconfig_toolbar_and_save_resource(toolbar_menuitem_macro);
|
FbTk::RefCount<FbTk::Command> reconfig_toolbar_and_save_resource(toolbar_menuitem_macro);
|
||||||
|
|
||||||
toolbar_menuitem->setCommand(reconfig_toolbar_and_save_resource);
|
toolbar_menuitem->setCommand(reconfig_toolbar_and_save_resource);
|
||||||
|
|
||||||
tbar.menu().insert(toolbar_menuitem);
|
tbar.menu().insert(toolbar_menuitem);
|
||||||
|
|
||||||
|
|
||||||
menu.setInternalMenu();
|
menu.setInternalMenu();
|
||||||
|
|
||||||
menu.insert("Layer...", &tbar.layermenu());
|
menu.insert("Layer...", &tbar.layermenu());
|
||||||
|
@ -193,16 +192,16 @@ Toolbar::Frame::Frame(FbTk::EventHandler &evh, int screen_num):
|
||||||
0, 0, // pos
|
0, 0, // pos
|
||||||
1, 1, // size
|
1, 1, // size
|
||||||
// event mask
|
// event mask
|
||||||
ButtonPressMask | ButtonReleaseMask |
|
ButtonPressMask | ButtonReleaseMask |
|
||||||
ExposureMask |
|
ExposureMask |
|
||||||
EnterWindowMask | LeaveWindowMask),
|
EnterWindowMask | LeaveWindowMask),
|
||||||
clock(window, //parent
|
clock(window, //parent
|
||||||
0, 0, // pos
|
0, 0, // pos
|
||||||
1, 1, // size
|
1, 1, // size
|
||||||
// event mask
|
// event mask
|
||||||
ButtonPressMask | ButtonReleaseMask |
|
ButtonPressMask | ButtonReleaseMask |
|
||||||
ExposureMask |
|
ExposureMask |
|
||||||
EnterWindowMask | LeaveWindowMask),
|
EnterWindowMask | LeaveWindowMask),
|
||||||
psbutton(ArrowButton::LEFT, // arrow type
|
psbutton(ArrowButton::LEFT, // arrow type
|
||||||
window, // parent
|
window, // parent
|
||||||
0, 0, // pos
|
0, 0, // pos
|
||||||
|
@ -220,15 +219,15 @@ Toolbar::Frame::Frame(FbTk::EventHandler &evh, int screen_num):
|
||||||
0, 0, // pos
|
0, 0, // pos
|
||||||
1, 1), // size
|
1, 1), // size
|
||||||
hour(-1), // start with invalid number to force update
|
hour(-1), // start with invalid number to force update
|
||||||
minute(-1)
|
minute(-1) {
|
||||||
|
|
||||||
{
|
|
||||||
FbTk::EventManager &evm = *FbTk::EventManager::instance();
|
FbTk::EventManager &evm = *FbTk::EventManager::instance();
|
||||||
// add windows to eventmanager
|
// add windows to eventmanager
|
||||||
evm.add(evh, window);
|
evm.add(evh, window);
|
||||||
evm.add(evh, workspace_label);
|
evm.add(evh, workspace_label);
|
||||||
evm.add(evh, window_label);
|
evm.add(evh, window_label);
|
||||||
evm.add(evh, clock);
|
evm.add(evh, clock);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Toolbar::Frame::~Frame() {
|
Toolbar::Frame::~Frame() {
|
||||||
|
@ -263,7 +262,6 @@ Toolbar::Toolbar(BScreen &scrn, FbTk::XLayer &layer, FbTk::Menu &menu, size_t wi
|
||||||
m_themelistener(*this),
|
m_themelistener(*this),
|
||||||
m_layeritem(frame.window, layer) {
|
m_layeritem(frame.window, layer) {
|
||||||
|
|
||||||
|
|
||||||
// we need to get notified when the theme is reloaded
|
// we need to get notified when the theme is reloaded
|
||||||
m_theme.addListener(m_themelistener);
|
m_theme.addListener(m_themelistener);
|
||||||
|
|
||||||
|
@ -435,12 +433,16 @@ void Toolbar::reconfigure() {
|
||||||
|
|
||||||
I18n *i18n = I18n::instance();
|
I18n *i18n = I18n::instance();
|
||||||
frame.clock_w = m_theme.font().textWidth(
|
frame.clock_w = m_theme.font().textWidth(
|
||||||
i18n->getMessage(
|
i18n->
|
||||||
FBNLS::ToolbarSet, FBNLS::ToolbarNoStrftimeLength,
|
getMessage(
|
||||||
"00:00000"),
|
FBNLS::ToolbarSet,
|
||||||
strlen(i18n->getMessage(
|
FBNLS::ToolbarNoStrftimeLength,
|
||||||
FBNLS::ToolbarSet, FBNLS::ToolbarNoStrftimeLength,
|
"00:00000"),
|
||||||
"00:00000"))) + (frame.bevel_w * 4);
|
strlen(i18n->
|
||||||
|
getMessage(
|
||||||
|
FBNLS::ToolbarSet,
|
||||||
|
FBNLS::ToolbarNoStrftimeLength,
|
||||||
|
"00:00000"))) + (frame.bevel_w * 4);
|
||||||
|
|
||||||
#endif // HAVE_STRFTIME
|
#endif // HAVE_STRFTIME
|
||||||
|
|
||||||
|
@ -744,6 +746,7 @@ void Toolbar::checkClock(bool redraw, bool date) {
|
||||||
dy = frame.clock.height() - dx;
|
dy = frame.clock.height() - dx;
|
||||||
dx = tmp;
|
dx = tmp;
|
||||||
}
|
}
|
||||||
|
frame.clock.clear();
|
||||||
m_theme.font().drawText(
|
m_theme.font().drawText(
|
||||||
frame.clock.window(),
|
frame.clock.window(),
|
||||||
screen().getScreenNumber(),
|
screen().getScreenNumber(),
|
||||||
|
@ -800,9 +803,9 @@ void Toolbar::redrawWorkspaceLabel(bool redraw) {
|
||||||
size_t textlen = screen().getCurrentWorkspace()->name().size();
|
size_t textlen = screen().getCurrentWorkspace()->name().size();
|
||||||
unsigned int newlen = textlen;
|
unsigned int newlen = textlen;
|
||||||
int dx = FbTk::doAlignment(frame.workspace_label_w, frame.bevel_w,
|
int dx = FbTk::doAlignment(frame.workspace_label_w, frame.bevel_w,
|
||||||
m_theme.justify(),
|
m_theme.justify(),
|
||||||
m_theme.font(),
|
m_theme.font(),
|
||||||
text, textlen, newlen);
|
text, textlen, newlen);
|
||||||
int dy = 1 + m_theme.font().ascent();
|
int dy = 1 + m_theme.font().ascent();
|
||||||
if (m_theme.font().isRotated()) {
|
if (m_theme.font().isRotated()) {
|
||||||
int tmp = dy;
|
int tmp = dy;
|
||||||
|
@ -810,11 +813,12 @@ void Toolbar::redrawWorkspaceLabel(bool redraw) {
|
||||||
dx = tmp;
|
dx = tmp;
|
||||||
}
|
}
|
||||||
m_theme.font().drawText(
|
m_theme.font().drawText(
|
||||||
frame.workspace_label.window(),
|
frame.workspace_label.window(),
|
||||||
screen().getScreenNumber(),
|
screen().getScreenNumber(),
|
||||||
m_theme.labelTextGC(),
|
m_theme.labelTextGC(),
|
||||||
text, newlen,
|
text, newlen,
|
||||||
dx, dy);
|
dx, dy);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Toolbar::edit() {
|
void Toolbar::edit() {
|
||||||
|
@ -910,7 +914,8 @@ void Toolbar::buttonReleaseEvent(XButtonEvent &re) {
|
||||||
FbTk::Menu *menu = screen().getWorkspacemenu();
|
FbTk::Menu *menu = screen().getWorkspacemenu();
|
||||||
//move the workspace label and make it visible
|
//move the workspace label and make it visible
|
||||||
menu->move(re.x_root, re.y_root);
|
menu->move(re.x_root, re.y_root);
|
||||||
// make sure the entire menu is visible (TODO: this is repeated by other menus, make a function!)
|
// make sure the entire menu is visible
|
||||||
|
//!!TODO: this is repeated by other menus, make a function!)
|
||||||
int newx = menu->x(); // new x position of menu
|
int newx = menu->x(); // new x position of menu
|
||||||
int newy = menu->y(); // new y position of menu
|
int newy = menu->y(); // new y position of menu
|
||||||
if (menu->x() < 0)
|
if (menu->x() < 0)
|
||||||
|
@ -977,68 +982,65 @@ void Toolbar::exposeEvent(XExposeEvent &ee) {
|
||||||
|
|
||||||
|
|
||||||
void Toolbar::keyPressEvent(XKeyEvent &ke) {
|
void Toolbar::keyPressEvent(XKeyEvent &ke) {
|
||||||
if (ke.window == frame.workspace_label && editing) {
|
if (ke.window != frame.workspace_label.window() || !editing)
|
||||||
|
return;
|
||||||
|
|
||||||
KeySym ks;
|
KeySym ks;
|
||||||
char keychar[1];
|
char keychar[1];
|
||||||
XLookupString(&ke, keychar, 1, &ks, 0);
|
XLookupString(&ke, keychar, 1, &ks, 0);
|
||||||
|
|
||||||
if (ks == XK_Return || ks == XK_Escape) {
|
if (ks == XK_Return || ks == XK_Escape) {
|
||||||
|
editing = false;
|
||||||
|
Fluxbox * const fluxbox = Fluxbox::instance();
|
||||||
|
fluxbox->setNoFocus(false);
|
||||||
|
if (fluxbox->getFocusedWindow()) {
|
||||||
|
fluxbox->getFocusedWindow()->setInputFocus();
|
||||||
|
fluxbox->getFocusedWindow()->setFocusFlag(true);
|
||||||
|
} else
|
||||||
|
XSetInputFocus(display, PointerRoot, None, CurrentTime);
|
||||||
|
|
||||||
|
if (ks == XK_Return) //change workspace name if keypress = Return
|
||||||
|
screen().getCurrentWorkspace()->setName(new_workspace_name.c_str());
|
||||||
|
|
||||||
editing = false;
|
new_workspace_name.erase(); //erase temporary workspace name
|
||||||
Fluxbox * const fluxbox = Fluxbox::instance();
|
reconfigure();
|
||||||
fluxbox->setNoFocus(false);
|
//save workspace names
|
||||||
if (fluxbox->getFocusedWindow()) {
|
Fluxbox::instance()->save_rc();
|
||||||
fluxbox->getFocusedWindow()->setInputFocus();
|
|
||||||
fluxbox->getFocusedWindow()->setFocusFlag(true);
|
|
||||||
} else
|
|
||||||
XSetInputFocus(display, PointerRoot, None, CurrentTime);
|
|
||||||
|
|
||||||
if (ks == XK_Return) //change workspace name if keypress = Return
|
|
||||||
screen().getCurrentWorkspace()->setName(new_workspace_name.c_str());
|
|
||||||
|
|
||||||
new_workspace_name.erase(); //erase temporary workspace name
|
} else if (! IsModifierKey(ks) && !IsCursorKey(ks)) {
|
||||||
reconfigure();
|
|
||||||
//save workspace names
|
|
||||||
Fluxbox::instance()->save_rc();
|
|
||||||
|
|
||||||
} else if (! IsModifierKey(ks) && !IsCursorKey(ks)) {
|
if (ks == XK_BackSpace && new_workspace_name.size())
|
||||||
|
new_workspace_name.erase(new_workspace_name.size()-1);
|
||||||
if (ks == XK_BackSpace && new_workspace_name.size())
|
else
|
||||||
new_workspace_name.erase(new_workspace_name.size()-1);
|
new_workspace_name += keychar[0];
|
||||||
else
|
|
||||||
new_workspace_name += keychar[0];
|
|
||||||
|
|
||||||
|
|
||||||
frame.workspace_label.clear();
|
frame.workspace_label.clear();
|
||||||
int l = new_workspace_name.size(), tw, x;
|
int l = new_workspace_name.size(), tw, x;
|
||||||
|
|
||||||
tw = m_theme.font().textWidth(new_workspace_name.c_str(), l);
|
tw = m_theme.font().textWidth(new_workspace_name.c_str(), l);
|
||||||
x = (frame.workspace_label_w - tw) / 2;
|
x = (frame.workspace_label_w - tw) / 2;
|
||||||
|
|
||||||
if (x < (signed) frame.bevel_w)
|
if (x < (signed) frame.bevel_w)
|
||||||
x = frame.bevel_w;
|
x = frame.bevel_w;
|
||||||
int dy = 1 + m_theme.font().ascent();
|
int dy = 1 + m_theme.font().ascent();
|
||||||
if (m_theme.font().isRotated()) {
|
if (m_theme.font().isRotated()) {
|
||||||
int tmp = dy;
|
int tmp = dy;
|
||||||
dy = frame.workspace_label_w - x;
|
dy = frame.workspace_label_w - x;
|
||||||
x = tmp;
|
x = tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_theme.font().drawText(
|
m_theme.font().drawText(
|
||||||
frame.workspace_label.window(),
|
frame.workspace_label.window(),
|
||||||
screen().getScreenNumber(),
|
screen().getScreenNumber(),
|
||||||
screen().getWindowStyle()->l_text_focus_gc,
|
screen().getWindowStyle()->l_text_focus_gc,
|
||||||
new_workspace_name.c_str(), l,
|
new_workspace_name.c_str(), l,
|
||||||
x, dy);
|
x, dy);
|
||||||
|
|
||||||
XDrawRectangle(display, frame.workspace_label.window(),
|
XDrawRectangle(display, frame.workspace_label.window(),
|
||||||
screen().getWindowStyle()->l_text_focus_gc, x + tw, 0, 1,
|
screen().getWindowStyle()->l_text_focus_gc, x + tw, 0, 1,
|
||||||
frame.label_h - 1);
|
frame.label_h - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue