using drawutil's doAlignment function
This commit is contained in:
parent
75eb138d4e
commit
558aa0f9f9
2 changed files with 61 additions and 134 deletions
119
src/Toolbar.cc
119
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.40 2002/11/16 22:17:06 fluxgen Exp $
|
// $Id: Toolbar.cc,v 1.41 2002/11/26 16:46:05 fluxgen Exp $
|
||||||
|
|
||||||
#include "Toolbar.hh"
|
#include "Toolbar.hh"
|
||||||
|
|
||||||
|
@ -598,39 +598,18 @@ void Toolbar::checkClock(bool redraw, bool date) {
|
||||||
}
|
}
|
||||||
#endif // HAVE_STRFTIME
|
#endif // HAVE_STRFTIME
|
||||||
|
|
||||||
int dx = (frame.bevel_w * 2), dlen = strlen(t);
|
size_t newlen = strlen(t);
|
||||||
unsigned int l;
|
int dx = DrawUtil::doAlignment(frame.clock_w,
|
||||||
l = screen->getToolbarStyle()->font.textWidth(t, dlen);
|
frame.bevel_w*2,
|
||||||
|
screen->getToolbarStyle()->justify,
|
||||||
l += (frame.bevel_w * 4);
|
screen->getToolbarStyle()->font,
|
||||||
|
t, strlen(t), newlen);
|
||||||
if (l > frame.clock_w) {
|
|
||||||
for (; dlen >= 0; dlen--) {
|
|
||||||
l = screen->getToolbarStyle()->font.textWidth(t, dlen);
|
|
||||||
l += (frame.bevel_w * 4);
|
|
||||||
|
|
||||||
if (l < frame.clock_w)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (screen->getToolbarStyle()->justify) {
|
|
||||||
case DrawUtil::Font::RIGHT:
|
|
||||||
dx += frame.clock_w - l;
|
|
||||||
break;
|
|
||||||
case DrawUtil::Font::CENTER:
|
|
||||||
dx += (frame.clock_w - l) / 2;
|
|
||||||
break;
|
|
||||||
default: //LEFT, no justification
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
screen->getToolbarStyle()->font.drawText(
|
screen->getToolbarStyle()->font.drawText(
|
||||||
frame.clock,
|
frame.clock,
|
||||||
screen->getScreenNumber(),
|
screen->getScreenNumber(),
|
||||||
screen->getToolbarStyle()->c_text_gc,
|
screen->getToolbarStyle()->c_text_gc,
|
||||||
t, dlen,
|
t, newlen,
|
||||||
dx, 1 + screen->getToolbarStyle()->font.ascent());
|
dx, 1 + screen->getToolbarStyle()->font.ascent());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -645,39 +624,17 @@ void Toolbar::redrawWindowLabel(bool redraw) {
|
||||||
if (foc->getScreen() != screen || foc->getTitle().size() == 0)
|
if (foc->getScreen() != screen || foc->getTitle().size() == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int dx = (frame.bevel_w * 2), dlen = foc->getTitle().size();
|
size_t newlen = foc->getTitle().size();
|
||||||
unsigned int l;
|
int dx = DrawUtil::doAlignment(frame.window_label_w, frame.bevel_w*2,
|
||||||
|
screen->getToolbarStyle()->justify,
|
||||||
|
screen->getToolbarStyle()->font,
|
||||||
|
foc->getTitle().c_str(), foc->getTitle().size(), newlen);
|
||||||
|
|
||||||
l = screen->getToolbarStyle()->font.textWidth(foc->getTitle().c_str(), dlen);
|
|
||||||
|
|
||||||
l += (frame.bevel_w * 4);
|
|
||||||
|
|
||||||
if (l > frame.window_label_w) {
|
|
||||||
for (; dlen >= 0; dlen--) {
|
|
||||||
l = screen->getToolbarStyle()->font.textWidth(foc->getTitle().c_str(), dlen);
|
|
||||||
|
|
||||||
l += (frame.bevel_w * 4);
|
|
||||||
|
|
||||||
if (l < frame.window_label_w)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
switch (screen->getToolbarStyle()->justify) {
|
|
||||||
case DrawUtil::Font::RIGHT:
|
|
||||||
dx += frame.window_label_w - l;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DrawUtil::Font::CENTER:
|
|
||||||
dx += (frame.window_label_w - l) / 2;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
screen->getToolbarStyle()->font.drawText(
|
screen->getToolbarStyle()->font.drawText(
|
||||||
frame.window_label,
|
frame.window_label,
|
||||||
screen->getScreenNumber(),
|
screen->getScreenNumber(),
|
||||||
screen->getToolbarStyle()->w_text_gc,
|
screen->getToolbarStyle()->w_text_gc,
|
||||||
foc->getTitle().c_str(), dlen,
|
foc->getTitle().c_str(), newlen,
|
||||||
dx, 1 + screen->getToolbarStyle()->font.ascent());
|
dx, 1 + screen->getToolbarStyle()->font.ascent());
|
||||||
} else
|
} else
|
||||||
XClearWindow(display, frame.window_label);
|
XClearWindow(display, frame.window_label);
|
||||||
|
@ -685,50 +642,26 @@ void Toolbar::redrawWindowLabel(bool redraw) {
|
||||||
|
|
||||||
|
|
||||||
void Toolbar::redrawWorkspaceLabel(bool redraw) {
|
void Toolbar::redrawWorkspaceLabel(bool redraw) {
|
||||||
if (screen->getCurrentWorkspace()->name().size()>0) {
|
if (screen->getCurrentWorkspace()->name().size()==0)
|
||||||
|
return;
|
||||||
|
|
||||||
if (redraw)
|
if (redraw)
|
||||||
XClearWindow(display, frame.workspace_label);
|
XClearWindow(display, frame.workspace_label);
|
||||||
|
|
||||||
int dx = (frame.bevel_w * 2), dlen =
|
const char *text = screen->getCurrentWorkspace()->name().c_str();
|
||||||
screen->getCurrentWorkspace()->name().size();
|
size_t textlen = screen->getCurrentWorkspace()->name().size();
|
||||||
unsigned int l;
|
size_t newlen = textlen;
|
||||||
|
int dx = DrawUtil::doAlignment(frame.workspace_label_w, frame.bevel_w,
|
||||||
l = screen->getToolbarStyle()->font.textWidth(screen->getCurrentWorkspace()->name().c_str(), dlen);
|
screen->getToolbarStyle()->justify,
|
||||||
|
screen->getToolbarStyle()->font,
|
||||||
l += (frame.bevel_w * 4);
|
text, textlen, newlen);
|
||||||
|
|
||||||
if (l > frame.workspace_label_w) {
|
|
||||||
for (; dlen >= 0; dlen--) {
|
|
||||||
l = screen->getToolbarStyle()->font.textWidth(
|
|
||||||
screen->getCurrentWorkspace()->name().c_str(), dlen);
|
|
||||||
|
|
||||||
l += (frame.bevel_w * 4);
|
|
||||||
|
|
||||||
if (l < frame.workspace_label_w)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (screen->getToolbarStyle()->justify) {
|
|
||||||
case DrawUtil::Font::RIGHT:
|
|
||||||
dx += frame.workspace_label_w - l;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DrawUtil::Font::CENTER:
|
|
||||||
dx += (frame.workspace_label_w - l) / 2;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
screen->getToolbarStyle()->font.drawText(
|
screen->getToolbarStyle()->font.drawText(
|
||||||
frame.workspace_label,
|
frame.workspace_label,
|
||||||
screen->getScreenNumber(),
|
screen->getScreenNumber(),
|
||||||
screen->getToolbarStyle()->l_text_gc,
|
screen->getToolbarStyle()->l_text_gc,
|
||||||
screen->getCurrentWorkspace()->name().c_str(), dlen,
|
text, newlen,
|
||||||
dx, 1 + screen->getToolbarStyle()->font.ascent());
|
dx, 1 + screen->getToolbarStyle()->font.ascent());
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1097,7 +1030,9 @@ void Toolbar::keyPressEvent(XKeyEvent *ke) {
|
||||||
tw = screen->getToolbarStyle()->font.textWidth(new_workspace_name.c_str(), l);
|
tw = screen->getToolbarStyle()->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) x = frame.bevel_w;
|
if (x < (signed) frame.bevel_w)
|
||||||
|
x = frame.bevel_w;
|
||||||
|
|
||||||
screen->getToolbarStyle()->font.drawText(
|
screen->getToolbarStyle()->font.drawText(
|
||||||
frame.workspace_label,
|
frame.workspace_label,
|
||||||
screen->getScreenNumber(),
|
screen->getScreenNumber(),
|
||||||
|
|
|
@ -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: Window.cc,v 1.101 2002/11/23 16:07:19 rathnor Exp $
|
// $Id: Window.cc,v 1.102 2002/11/26 16:44:48 fluxgen Exp $
|
||||||
|
|
||||||
#include "Window.hh"
|
#include "Window.hh"
|
||||||
|
|
||||||
|
@ -2426,44 +2426,36 @@ void FluxboxWindow::redrawLabel() {
|
||||||
XClearWindow(display, frame.label);
|
XClearWindow(display, frame.label);
|
||||||
|
|
||||||
//no need to draw the title if we don't have any
|
//no need to draw the title if we don't have any
|
||||||
if (getTitle().size() != 0) {
|
if (getTitle().size() == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
GC gc = ((focused) ? screen->getWindowStyle()->l_text_focus_gc :
|
GC gc = ((focused) ? screen->getWindowStyle()->l_text_focus_gc :
|
||||||
screen->getWindowStyle()->l_text_unfocus_gc);
|
screen->getWindowStyle()->l_text_unfocus_gc);
|
||||||
unsigned int l = client.title_text_w;
|
|
||||||
int dlen = getTitle().size();
|
size_t newlen = getTitle().size();
|
||||||
int dx = frame.bevel_w;
|
const char *labeltext = getTitle().c_str();
|
||||||
FbTk::Font &font = screen->getWindowStyle()->font;
|
FbTk::Font &font = screen->getWindowStyle()->font;
|
||||||
if (l > frame.label_w) {
|
|
||||||
for (; dlen >= 0; dlen--) {
|
int align_x = DrawUtil::doAlignment(
|
||||||
l = font.textWidth(getTitle().c_str(), dlen) + frame.bevel_w*4;
|
frame.label_w, frame.bevel_w*2,
|
||||||
if (l < frame.label_w)
|
screen->getWindowStyle()->justify,
|
||||||
break;
|
font,
|
||||||
}
|
labeltext, newlen, newlen);
|
||||||
}
|
|
||||||
switch (screen->getWindowStyle()->justify) {
|
|
||||||
case DrawUtil::Font::RIGHT:
|
|
||||||
dx += frame.label_w - l;
|
|
||||||
break;
|
|
||||||
case DrawUtil::Font::CENTER:
|
|
||||||
dx += (frame.label_w - l)/2;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
font.drawText(
|
font.drawText(
|
||||||
frame.label,
|
frame.label,
|
||||||
screen->getScreenNumber(),
|
screen->getScreenNumber(),
|
||||||
gc,
|
gc,
|
||||||
getTitle().c_str(), getTitle().size(),
|
labeltext, newlen,
|
||||||
dx, screen->getWindowStyle()->font.ascent() + 1);
|
align_x, font.ascent() + 1);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void FluxboxWindow::redrawAllButtons() {
|
void FluxboxWindow::redrawAllButtons() {
|
||||||
for (unsigned int i=0; i<buttonlist.size(); i++)
|
for (unsigned int i=0; i<buttonlist.size(); i++) {
|
||||||
if (buttonlist[i].draw)
|
if (buttonlist[i].draw)
|
||||||
buttonlist[i].draw(this, buttonlist[i].win, false);
|
buttonlist[i].draw(this, buttonlist[i].win, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FluxboxWindow::mapRequestEvent(XMapRequestEvent *re) {
|
void FluxboxWindow::mapRequestEvent(XMapRequestEvent *re) {
|
||||||
|
|
Loading…
Reference in a new issue