Font::drawText takes reference to FbDrawable instead of X Drawable + some code cleaning

This commit is contained in:
fluxgen 2004-09-11 23:01:34 +00:00
parent acd2176355
commit 049e40c9eb
18 changed files with 137 additions and 135 deletions

View file

@ -1,5 +1,5 @@
// FbDrawable.cc for FbTk - Fluxbox ToolKit // FbDrawable.cc for FbTk - Fluxbox ToolKit
// Copyright (c) 2003 Henrik Kinnunen (fluxgen at users.sourceforge.net) // Copyright (c) 2003-2004 Henrik Kinnunen (fluxgen at users.sourceforge.net)
// //
// Permission is hereby granted, free of charge, to any person obtaining a // Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"), // copy of this software and associated documentation files (the "Software"),
@ -19,7 +19,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: FbDrawable.cc,v 1.3 2004/09/10 15:46:08 akir Exp $ // $Id: FbDrawable.cc,v 1.4 2004/09/11 22:58:20 fluxgen Exp $
#include "FbDrawable.hh" #include "FbDrawable.hh"
@ -37,9 +37,9 @@ FbDrawable::FbDrawable() {
} }
void FbDrawable::copyArea(Drawable src, GC gc, void FbDrawable::copyArea(Drawable src, GC gc,
int src_x, int src_y, int src_x, int src_y,
int dest_x, int dest_y, int dest_x, int dest_y,
unsigned int width, unsigned int height) { unsigned int width, unsigned int height) {
if (drawable() == 0 || src == 0 || gc == 0) if (drawable() == 0 || src == 0 || gc == 0)
return; return;
XCopyArea(s_display, XCopyArea(s_display,
@ -50,7 +50,7 @@ void FbDrawable::copyArea(Drawable src, GC gc,
} }
void FbDrawable::fillRectangle(GC gc, int x, int y, void FbDrawable::fillRectangle(GC gc, int x, int y,
unsigned int width, unsigned int height) { unsigned int width, unsigned int height) {
if (drawable() == 0 || gc == 0) if (drawable() == 0 || gc == 0)
return; return;
XFillRectangle(s_display, XFillRectangle(s_display,
@ -60,7 +60,7 @@ void FbDrawable::fillRectangle(GC gc, int x, int y,
} }
void FbDrawable::drawRectangle(GC gc, int x, int y, void FbDrawable::drawRectangle(GC gc, int x, int y,
unsigned int width, unsigned int height) { unsigned int width, unsigned int height) {
if (drawable() == 0 || gc == 0) if (drawable() == 0 || gc == 0)
return; return;
XDrawRectangle(s_display, XDrawRectangle(s_display,
@ -70,7 +70,7 @@ void FbDrawable::drawRectangle(GC gc, int x, int y,
} }
void FbDrawable::drawLine(GC gc, int start_x, int start_y, void FbDrawable::drawLine(GC gc, int start_x, int start_y,
int end_x, int end_y) { int end_x, int end_y) {
if (drawable() == 0 || gc == 0) if (drawable() == 0 || gc == 0)
return; return;
XDrawLine(s_display, XDrawLine(s_display,
@ -81,7 +81,7 @@ void FbDrawable::drawLine(GC gc, int start_x, int start_y,
} }
void FbDrawable::fillPolygon(GC gc, XPoint *points, int npoints, void FbDrawable::fillPolygon(GC gc, XPoint *points, int npoints,
int shape, int mode) { int shape, int mode) {
if (drawable() == 0 || gc == 0 || points == 0 || npoints == 0) if (drawable() == 0 || gc == 0 || points == 0 || npoints == 0)
return; return;
XFillPolygon(s_display, XFillPolygon(s_display,

View file

@ -1,5 +1,5 @@
// FbDrawable.hh for FbTk - Fluxbox ToolKit // FbDrawable.hh for FbTk - Fluxbox ToolKit
// Copyright (c) 2003 Henrik Kinnunen (fluxgen at users.sourceforge.net) // Copyright (c) 2003-2004 Henrik Kinnunen (fluxgen at users.sourceforge.net)
// //
// Permission is hereby granted, free of charge, to any person obtaining a // Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"), // copy of this software and associated documentation files (the "Software"),
@ -19,7 +19,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: FbDrawable.hh,v 1.6 2004/09/11 20:30:28 fluxgen Exp $ // $Id: FbDrawable.hh,v 1.7 2004/09/11 22:58:20 fluxgen Exp $
#ifndef FBTK_FBDRAWABLE_HH #ifndef FBTK_FBDRAWABLE_HH
#define FBTK_FBDRAWABLE_HH #define FBTK_FBDRAWABLE_HH
@ -56,7 +56,7 @@ public:
virtual Drawable drawable() const = 0; virtual Drawable drawable() const = 0;
virtual unsigned int width() const = 0; virtual unsigned int width() const = 0;
virtual unsigned int height() const = 0; virtual unsigned int height() const = 0;
inline Display *display() const { return s_display; } static inline Display *display() { return s_display; }
protected: protected:
static Display *s_display; // display connection // display connection static Display *s_display; // display connection // display connection
}; };

View file

@ -19,7 +19,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: FbPixmap.cc,v 1.15 2004/09/11 12:33:14 rathnor Exp $ // $Id: FbPixmap.cc,v 1.16 2004/09/11 22:58:20 fluxgen Exp $
#include "FbPixmap.hh" #include "FbPixmap.hh"
#include "App.hh" #include "App.hh"
@ -90,7 +90,7 @@ FbPixmap &FbPixmap::operator = (Pixmap pm) {
Window root; Window root;
int x, y; int x, y;
unsigned int border_width, bpp; unsigned int border_width, bpp;
XGetGeometry(s_display, XGetGeometry(display(),
pm, pm,
&root, &root,
&x, &y, &x, &y,
@ -148,7 +148,7 @@ void FbPixmap::copy(Pixmap pm) {
unsigned int border_width, bpp; unsigned int border_width, bpp;
unsigned int new_width, new_height; unsigned int new_width, new_height;
XGetGeometry(s_display, XGetGeometry(display(),
pm, pm,
&root, &root,
&x, &y, &x, &y,
@ -158,20 +158,20 @@ void FbPixmap::copy(Pixmap pm) {
// create new pixmap and copy area // create new pixmap and copy area
create(root, new_width, new_height, bpp); create(root, new_width, new_height, bpp);
GC gc = XCreateGC(s_display, drawable(), 0, 0); GC gc = XCreateGC(display(), drawable(), 0, 0);
XCopyArea(s_display, pm, drawable(), gc, XCopyArea(display(), pm, drawable(), gc,
0, 0, 0, 0,
width(), height(), width(), height(),
0, 0); 0, 0);
XFreeGC(s_display, gc); XFreeGC(display(), gc);
} }
void FbPixmap::rotate() { void FbPixmap::rotate() {
// make an image copy // make an image copy
XImage *src_image = XGetImage(s_display, drawable(), XImage *src_image = XGetImage(display(), drawable(),
0, 0, // pos 0, 0, // pos
width(), height(), // size width(), height(), // size
~0, // plane mask ~0, // plane mask
@ -186,7 +186,7 @@ void FbPixmap::rotate() {
for (unsigned int x = 0; x < width(); ++x) { for (unsigned int x = 0; x < width(); ++x) {
gc.setForeground(XGetPixel(src_image, x, y)); gc.setForeground(XGetPixel(src_image, x, y));
// revers coordinates // revers coordinates
XDrawPoint(s_display, new_pm.drawable(), gc.gc(), y, x); XDrawPoint(display(), new_pm.drawable(), gc.gc(), y, x);
} }
} }
@ -206,7 +206,7 @@ void FbPixmap::scale(unsigned int dest_width, unsigned int dest_height) {
(dest_width == width() && dest_height == height())) (dest_width == width() && dest_height == height()))
return; return;
XImage *src_image = XGetImage(s_display, drawable(), XImage *src_image = XGetImage(display(), drawable(),
0, 0, // pos 0, 0, // pos
width(), height(), // size width(), height(), // size
~0, // plane mask ~0, // plane mask
@ -230,7 +230,7 @@ void FbPixmap::scale(unsigned int dest_width, unsigned int dest_height) {
gc.setForeground(XGetPixel(src_image, gc.setForeground(XGetPixel(src_image,
static_cast<int>(src_x), static_cast<int>(src_x),
static_cast<int>(src_y))); static_cast<int>(src_y)));
XDrawPoint(s_display, new_pm.drawable(), gc.gc(), tx, ty); XDrawPoint(display(), new_pm.drawable(), gc.gc(), tx, ty);
} }
} }
@ -306,9 +306,9 @@ Pixmap FbPixmap::getRootPixmap(int screen_num) {
Pixmap root_pm = None; Pixmap root_pm = None;
for (prop = 0; prop_ids[prop]; prop++) { for (prop = 0; prop_ids[prop]; prop++) {
if (XGetWindowProperty(s_display, if (XGetWindowProperty(display(),
RootWindow(s_display, screen_num), RootWindow(display(), screen_num),
XInternAtom(s_display, prop_ids[prop], False), XInternAtom(display(), prop_ids[prop], False),
0l, 4l, 0l, 4l,
False, XA_PIXMAP, False, XA_PIXMAP,
&real_type, &real_format, &real_type, &real_format,
@ -333,7 +333,7 @@ Pixmap FbPixmap::getRootPixmap(int screen_num) {
void FbPixmap::free() { void FbPixmap::free() {
if (m_pm != 0) { if (m_pm != 0) {
XFreePixmap(s_display, m_pm); XFreePixmap(display(), m_pm);
m_pm = 0; m_pm = 0;
} }
m_width = 0; m_width = 0;
@ -347,7 +347,7 @@ void FbPixmap::create(Drawable src,
if (src == 0) if (src == 0)
return; return;
m_pm = XCreatePixmap(s_display, m_pm = XCreatePixmap(display(),
src, width, height, depth); src, width, height, depth);
if (m_pm == 0) if (m_pm == 0)
return; return;

View file

@ -19,7 +19,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: FbWindow.cc,v 1.41 2004/09/11 15:52:23 rathnor Exp $ // $Id: FbWindow.cc,v 1.42 2004/09/11 22:59:15 fluxgen Exp $
#include "FbWindow.hh" #include "FbWindow.hh"
#include "FbPixmap.hh" #include "FbPixmap.hh"
@ -74,7 +74,7 @@ FbWindow::FbWindow(int screen_num,
m_destroy(true), m_destroy(true),
m_buffer_pm(0) { m_buffer_pm(0) {
create(RootWindow(s_display, screen_num), create(RootWindow(display(), screen_num),
x, y, width, height, eventmask, x, y, width, height, eventmask,
override_redirect, save_unders, depth, class_type); override_redirect, save_unders, depth, class_type);
}; };
@ -119,44 +119,44 @@ FbWindow::~FbWindow() {
// so we don't get any dangling eventhandler for this window // so we don't get any dangling eventhandler for this window
FbTk::EventManager::instance()->remove(m_window); FbTk::EventManager::instance()->remove(m_window);
if (m_destroy) if (m_destroy)
XDestroyWindow(s_display, m_window); XDestroyWindow(display(), m_window);
} }
} }
void FbWindow::setBackgroundColor(const FbTk::Color &bg_color) { void FbWindow::setBackgroundColor(const FbTk::Color &bg_color) {
XSetWindowBackground(s_display, m_window, bg_color.pixel()); XSetWindowBackground(display(), m_window, bg_color.pixel());
} }
void FbWindow::setBackgroundPixmap(Pixmap bg_pixmap) { void FbWindow::setBackgroundPixmap(Pixmap bg_pixmap) {
XSetWindowBackgroundPixmap(s_display, m_window, bg_pixmap); XSetWindowBackgroundPixmap(display(), m_window, bg_pixmap);
} }
void FbWindow::setBorderColor(const FbTk::Color &border_color) { void FbWindow::setBorderColor(const FbTk::Color &border_color) {
XSetWindowBorder(s_display, m_window, border_color.pixel()); XSetWindowBorder(display(), m_window, border_color.pixel());
} }
void FbWindow::setBorderWidth(unsigned int size) { void FbWindow::setBorderWidth(unsigned int size) {
XSetWindowBorderWidth(s_display, m_window, size); XSetWindowBorderWidth(display(), m_window, size);
m_border_width = size; m_border_width = size;
} }
void FbWindow::setName(const char *name) { void FbWindow::setName(const char *name) {
XStoreName(s_display, m_window, name); XStoreName(display(), m_window, name);
} }
void FbWindow::setEventMask(long mask) { void FbWindow::setEventMask(long mask) {
XSelectInput(s_display, m_window, mask); XSelectInput(display(), m_window, mask);
} }
void FbWindow::clear() { void FbWindow::clear() {
XClearWindow(s_display, m_window); XClearWindow(display(), m_window);
} }
void FbWindow::clearArea(int x, int y, void FbWindow::clearArea(int x, int y,
unsigned int width, unsigned int height, unsigned int width, unsigned int height,
bool exposures) { bool exposures) {
XClearArea(s_display, window(), x, y, width, height, exposures); XClearArea(display(), window(), x, y, width, height, exposures);
} }
void FbWindow::updateTransparent(int the_x, int the_y, unsigned int the_width, unsigned int the_height) { void FbWindow::updateTransparent(int the_x, int the_y, unsigned int the_width, unsigned int the_height) {
@ -255,7 +255,7 @@ FbWindow &FbWindow::operator = (Window win) {
void FbWindow::setNew(Window win) { void FbWindow::setNew(Window win) {
if (m_window != 0 && m_destroy) if (m_window != 0 && m_destroy)
XDestroyWindow(s_display, m_window); XDestroyWindow(display(), m_window);
m_window = win; m_window = win;
@ -264,7 +264,7 @@ void FbWindow::setNew(Window win) {
XWindowAttributes attr; XWindowAttributes attr;
attr.screen = 0; attr.screen = 0;
//get screen number //get screen number
if (XGetWindowAttributes(s_display, if (XGetWindowAttributes(display(),
m_window, m_window,
&attr) != 0 && attr.screen != 0) { &attr) != 0 && attr.screen != 0) {
m_screen_num = XScreenNumberOfScreen(attr.screen); m_screen_num = XScreenNumberOfScreen(attr.screen);
@ -288,39 +288,39 @@ void FbWindow::setNew(Window win) {
} }
void FbWindow::show() { void FbWindow::show() {
XMapWindow(s_display, m_window); XMapWindow(display(), m_window);
} }
void FbWindow::showSubwindows() { void FbWindow::showSubwindows() {
XMapSubwindows(s_display, m_window); XMapSubwindows(display(), m_window);
} }
void FbWindow::hide() { void FbWindow::hide() {
XUnmapWindow(s_display, m_window); XUnmapWindow(display(), m_window);
} }
void FbWindow::lower() { void FbWindow::lower() {
XLowerWindow(s_display, window()); XLowerWindow(display(), window());
} }
void FbWindow::raise() { void FbWindow::raise() {
XRaiseWindow(s_display, window()); XRaiseWindow(display(), window());
} }
void FbWindow::setInputFocus(int revert_to, int time) { void FbWindow::setInputFocus(int revert_to, int time) {
XSetInputFocus(s_display, window(), revert_to, time); XSetInputFocus(display(), window(), revert_to, time);
} }
void FbWindow::setCursor(Cursor cur) { void FbWindow::setCursor(Cursor cur) {
XDefineCursor(s_display, window(), cur); XDefineCursor(display(), window(), cur);
} }
void FbWindow::unsetCursor() { void FbWindow::unsetCursor() {
XUndefineCursor(s_display, window()); XUndefineCursor(display(), window());
} }
void FbWindow::reparent(const FbWindow &parent, int x, int y, bool continuing) { void FbWindow::reparent(const FbWindow &parent, int x, int y, bool continuing) {
XReparentWindow(s_display, window(), parent.window(), x, y); XReparentWindow(display(), window(), parent.window(), x, y);
m_parent = &parent; m_parent = &parent;
if (continuing) // we will continue managing this window after reparent if (continuing) // we will continue managing this window after reparent
updateGeometry(); updateGeometry();
@ -332,7 +332,7 @@ std::string FbWindow::textProperty(Atom property) const {
int count; int count;
std::string ret; std::string ret;
if (XGetTextProperty(s_display, window(), &text_prop, property) == 0) if (XGetTextProperty(display(), window(), &text_prop, property) == 0)
return ""; return "";
if (text_prop.value == 0 || text_prop.nitems == 0) if (text_prop.value == 0 || text_prop.nitems == 0)
@ -340,7 +340,7 @@ std::string FbWindow::textProperty(Atom property) const {
if (text_prop.encoding != XA_STRING) { if (text_prop.encoding != XA_STRING) {
// still returns a "StringList" despite the different name // still returns a "StringList" despite the different name
if (XmbTextPropertyToTextList(s_display, &text_prop, &stringlist, &count) == 0 || count == 0) if (XmbTextPropertyToTextList(display(), &text_prop, &stringlist, &count) == 0 || count == 0)
return ""; return "";
} else { } else {
if (XTextPropertyToStringList(&text_prop, &stringlist, &count) == 0 || count == 0) if (XTextPropertyToStringList(&text_prop, &stringlist, &count) == 0 || count == 0)
@ -362,7 +362,7 @@ bool FbWindow::property(Atom property,
unsigned long *nitems_return, unsigned long *nitems_return,
unsigned long *bytes_after_return, unsigned long *bytes_after_return,
unsigned char **prop_return) const { unsigned char **prop_return) const {
if (XGetWindowProperty(s_display, window(), if (XGetWindowProperty(display(), window(),
property, long_offset, long_length, do_delete, property, long_offset, long_length, do_delete,
req_type, actual_type_return, req_type, actual_type_return,
actual_format_return, nitems_return, actual_format_return, nitems_return,
@ -378,7 +378,7 @@ void FbWindow::changeProperty(Atom property, Atom type,
unsigned char *data, unsigned char *data,
int nelements) { int nelements) {
XChangeProperty(s_display, m_window, property, type, XChangeProperty(display(), m_window, property, type,
format, mode, format, mode,
data, nelements); data, nelements);
} }
@ -389,7 +389,7 @@ int FbWindow::screenNumber() const {
long FbWindow::eventMask() const { long FbWindow::eventMask() const {
XWindowAttributes attrib; XWindowAttributes attrib;
XGetWindowAttributes(s_display, window(), XGetWindowAttributes(display(), window(),
&attrib); &attrib);
return attrib.your_event_mask; return attrib.your_event_mask;
@ -405,7 +405,7 @@ void FbWindow::updateGeometry() {
Window root; Window root;
unsigned int border_width, depth; unsigned int border_width, depth;
XGetGeometry(s_display, m_window, &root, &m_x, &m_y, XGetGeometry(display(), m_window, &root, &m_x, &m_y,
(unsigned int *)&m_width, (unsigned int *)&m_height, (unsigned int *)&m_width, (unsigned int *)&m_height,
&border_width, &depth); &border_width, &depth);
m_depth = depth; m_depth = depth;
@ -433,7 +433,7 @@ void FbWindow::create(Window parent, int x, int y,
values.save_under = True; values.save_under = True;
} }
m_window = XCreateWindow(s_display, parent, x, y, width, height, m_window = XCreateWindow(display(), parent, x, y, width, height,
0, // border width 0, // border width
depth, // depth depth, // depth
class_type, // class class_type, // class

View file

@ -1,5 +1,5 @@
// Font.cc // Font.cc
// Copyright (c) 2002-2004 Henrik Kinnunen (fluxgen@linuxmail.org) // Copyright (c) 2002-2004 Henrik Kinnunen (fluxgen at users.sourceforge.net)
// //
// Permission is hereby granted, free of charge, to any person obtaining a // Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"), // copy of this software and associated documentation files (the "Software"),
@ -19,7 +19,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: Font.cc,v 1.20 2004/09/03 14:17:47 akir Exp $ //$Id: Font.cc,v 1.21 2004/09/11 22:58:20 fluxgen Exp $
#include "StringUtil.hh" #include "StringUtil.hh"
@ -350,7 +350,7 @@ void Font::setAntialias(bool flag) {
bool Font::load(const std::string &name) { bool Font::load(const std::string &name) {
if (name.size() == 0) if (name.size() == 0)
return false; return false;
// default values for font options
m_shadow = false; m_shadow = false;
m_halo = false; m_halo = false;
@ -380,12 +380,12 @@ bool Font::load(const std::string &name) {
else if ( (*token).find("shadow", 0) != std::string::npos ) { else if ( (*token).find("shadow", 0) != std::string::npos ) {
m_shadow= true; m_shadow= true;
extract_shadow_options(*token, m_shadow_color, m_shadow_offx, m_shadow_offy); extract_shadow_options(*token, m_shadow_color, m_shadow_offx, m_shadow_offy);
} }
else { else {
if ( !firstone ) if ( !firstone )
fname+= ", "; fname+= ", ";
else else
firstone= false; firstone= false;
fname= fname + *token; fname= fname + *token;
} }
} }
@ -424,7 +424,7 @@ int Font::descent() const {
return m_fontimp->descent(); return m_fontimp->descent();
} }
void Font::drawText(Drawable w, int screen, GC gc, void Font::drawText(const FbDrawable &w, int screen, GC gc,
const char *text, size_t len, int x, int y, const char *text, size_t len, int x, int y,
bool rotate) const { bool rotate) const {
if (text == 0 || len == 0) if (text == 0 || len == 0)
@ -450,12 +450,12 @@ void Font::drawText(Drawable w, int screen, GC gc,
// draw "effects" first // draw "effects" first
if (first_run) { if (first_run) {
if (m_shadow) { if (m_shadow) {
FbTk::GContext shadow_gc(w); FbTk::GContext shadow_gc(w);
shadow_gc.setForeground(FbTk::Color(m_shadow_color.c_str(), screen)); shadow_gc.setForeground(FbTk::Color(m_shadow_color.c_str(), screen));
first_run = false; first_run = false;
drawText(w, screen, shadow_gc.gc(), real_text, len, drawText(w, screen, shadow_gc.gc(), real_text, len,
x + m_shadow_offx, y + m_shadow_offy, rotate); x + m_shadow_offx, y + m_shadow_offy, rotate);
first_run = true; first_run = true;
} else if (m_halo) { } else if (m_halo) {
FbTk::GContext halo_gc(w); FbTk::GContext halo_gc(w);
halo_gc.setForeground(FbTk::Color(m_halo_color.c_str(), screen)); halo_gc.setForeground(FbTk::Color(m_halo_color.c_str(), screen));

View file

@ -1,5 +1,5 @@
// Font.cc for FbTk // Font.cc for FbTk
// Copyright (c) 2002 Henrik Kinnunen (fluxgen at linuxmail.org) // Copyright (c) 2002-2004 Henrik Kinnunen (fluxgen at users.sourceforge.net)
// //
// Permission is hereby granted, free of charge, to any person obtaining a // Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"), // copy of this software and associated documentation files (the "Software"),
@ -19,7 +19,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: Font.hh,v 1.12 2004/08/31 21:24:05 fluxgen Exp $ //$Id: Font.hh,v 1.13 2004/09/11 22:58:20 fluxgen Exp $
#ifndef FBTK_FONT_HH #ifndef FBTK_FONT_HH
#define FBTK_FONT_HH #define FBTK_FONT_HH
@ -43,6 +43,7 @@ namespace FbTk {
void fontInit(); void fontInit();
class FontImp; class FontImp;
class FbDrawable;
/** /**
Handles the client to fontimp bridge. Handles the client to fontimp bridge.
@ -92,7 +93,7 @@ public:
@param y position @param y position
@param rotate if the text should be drawn rotated (if it's rotated before) @param rotate if the text should be drawn rotated (if it's rotated before)
*/ */
void drawText(Drawable w, int screen, GC gc, void drawText(const FbDrawable &w, int screen, GC gc,
const char *text, size_t len, const char *text, size_t len,
int x, int y, bool rotate=true) const; int x, int y, bool rotate=true) const;
bool isAntialias() const { return m_antialias; } bool isAntialias() const { return m_antialias; }

View file

@ -1,5 +1,5 @@
// FontImp.cc for FbTk // FontImp.cc for FbTk
// Copyright (c) 2002-2003 Henrik Kinnunen (fluxgen(at)users.sourceforge.net) // Copyright (c) 2002-2004 Henrik Kinnunen (fluxgen(at)users.sourceforge.net)
// //
// Permission is hereby granted, free of charge, to any person obtaining a // Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"), // copy of this software and associated documentation files (the "Software"),
@ -19,7 +19,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: FontImp.hh,v 1.3 2003/04/20 13:52:29 fluxgen Exp $ // $Id: FontImp.hh,v 1.4 2004/09/11 22:58:20 fluxgen Exp $
#ifndef FBTK_FONTIMP_HH #ifndef FBTK_FONTIMP_HH
#define FBTK_FONTIMP_HH #define FBTK_FONTIMP_HH
@ -32,6 +32,8 @@
namespace FbTk { namespace FbTk {
class FbDrawable;
/** /**
FontImp, second part of the bridge pattern for fonts FontImp, second part of the bridge pattern for fonts
pure interface class. pure interface class.
@ -41,7 +43,7 @@ class FontImp {
public: public:
virtual ~FontImp() { } virtual ~FontImp() { }
virtual bool load(const std::string &name) = 0; virtual bool load(const std::string &name) = 0;
virtual void drawText(Drawable w, int screen, GC gc, const char *text, size_t len, int x, int y) const = 0; virtual void drawText(const FbDrawable &w, int screen, GC gc, const char *text, size_t len, int x, int y) const = 0;
virtual unsigned int textWidth(const char * const text, unsigned int size) const = 0; virtual unsigned int textWidth(const char * const text, unsigned int size) const = 0;
virtual int ascent() const = 0; virtual int ascent() const = 0;
virtual int descent() const = 0; virtual int descent() const = 0;

View file

@ -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: Menu.cc,v 1.83 2004/09/11 15:52:23 rathnor Exp $ // $Id: Menu.cc,v 1.84 2004/09/11 22:59:15 fluxgen Exp $
//use GNU extensions //use GNU extensions
#ifndef _GNU_SOURCE #ifndef _GNU_SOURCE
@ -774,7 +774,7 @@ void Menu::redrawTitle() {
// difference between height based on font, and style-set height // difference between height based on font, and style-set height
int height_offset = theme().titleHeight() - (font.height() + 2*theme().bevelWidth()); int height_offset = theme().titleHeight() - (font.height() + 2*theme().bevelWidth());
menu.title.updateTransparent(); menu.title.updateTransparent();
font.drawText(m_real_title_pm.drawable(), // drawable font.drawText(m_real_title_pm, // drawable
screenNumber(), screenNumber(),
theme().titleTextGC().gc(), // graphic context theme().titleTextGC().gc(), // graphic context
text, len, // text string with length text, len, // text string with length
@ -1144,21 +1144,13 @@ void Menu::buttonReleaseEvent(XButtonEvent &re) {
re.y > iy && re.y < (signed) (iy + theme().itemHeight())) { re.y > iy && re.y < (signed) (iy + theme().itemHeight())) {
menuitems[w]->click(re.button, re.time); menuitems[w]->click(re.button, re.time);
itemSelected(re.button, w); itemSelected(re.button, w);
drawItem(w,
true, // clear
true); // transparent
} }
} else {
drawItem(p,
true, // clear
true); // transparent
} }
} else {
drawItem(p,
true, // clear
true); // transparent
} }
drawItem(p,
true, // clear
true); // transparent
} }
} }

View file

@ -19,7 +19,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: MenuItem.cc,v 1.9 2004/09/10 16:48:15 akir Exp $ // $Id: MenuItem.cc,v 1.10 2004/09/11 23:00:08 fluxgen Exp $
#include "MenuItem.hh" #include "MenuItem.hh"
#include "Command.hh" #include "Command.hh"
@ -104,7 +104,7 @@ void MenuItem::draw(FbDrawable &draw,
break; break;
} }
theme.frameFont().drawText(draw.drawable(), // drawable theme.frameFont().drawText(draw, // drawable
theme.screenNum(), theme.screenNum(),
tgc.gc(), tgc.gc(),
m_label.c_str(), m_label.size(), // text string and lenght m_label.c_str(), m_label.size(), // text string and lenght

View file

@ -19,7 +19,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: TextBox.cc,v 1.12 2004/08/31 15:26:39 rathnor Exp $ // $Id: TextBox.cc,v 1.13 2004/09/11 22:58:20 fluxgen Exp $
#include "TextBox.hh" #include "TextBox.hh"
#include "Font.hh" #include "Font.hh"
@ -157,7 +157,7 @@ void TextBox::clear() {
if (gc() == 0) if (gc() == 0)
setGC(DefaultGC(FbTk::App::instance()->display(), screenNumber())); setGC(DefaultGC(FbTk::App::instance()->display(), screenNumber()));
font().drawText(window(), screenNumber(), font().drawText(*this, screenNumber(),
gc(), gc(),
text().c_str() + m_start_pos, text().c_str() + m_start_pos,
m_end_pos - m_start_pos, m_end_pos - m_start_pos,

View file

@ -19,7 +19,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: TextButton.cc,v 1.5 2004/01/09 02:19:02 fluxgen Exp $ // $Id: TextButton.cc,v 1.6 2004/09/11 22:58:20 fluxgen Exp $
#include "TextButton.hh" #include "TextButton.hh"
#include "Font.hh" #include "Font.hh"
@ -142,8 +142,11 @@ void TextButton::drawText(int x_offset, int y_offset) {
// center text by default // center text by default
int center_pos = height()/2 + font().ascent()/2 - 1; int center_pos = height()/2 + font().ascent()/2 - 1;
FbDrawable *drawable = &m_buffer;
if (backgroundPixmap() == ParentRelative)
drawable = this;
font().drawText(backgroundPixmap() == ParentRelative ? window() : m_buffer.drawable(), font().drawText(*drawable,
screenNumber(), screenNumber(),
gc(), // graphic context gc(), // graphic context
text().c_str(), textlen, // string and string size text().c_str(), textlen, // string and string size

View file

@ -1,5 +1,5 @@
// XFontImp.cc for FbTk fluxbox toolkit // XFontImp.cc for FbTk fluxbox toolkit
// Copyright (c) 2002 Henrik Kinnunen (fluxgen@linuxmail.org) // Copyright (c) 2002-2004 Henrik Kinnunen (fluxgen at users.sourceforge.net)
// //
// Permission is hereby granted, free of charge, to any person obtaining a // Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"), // copy of this software and associated documentation files (the "Software"),
@ -19,7 +19,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: XFontImp.cc,v 1.9 2004/08/31 15:26:39 rathnor Exp $ // $Id: XFontImp.cc,v 1.10 2004/09/11 22:58:20 fluxgen Exp $
#include "XFontImp.hh" #include "XFontImp.hh"
#include "App.hh" #include "App.hh"
@ -79,18 +79,17 @@ bool XFontImp::load(const std::string &fontname) {
return true; return true;
} }
void XFontImp::drawText(Drawable w, int screen, GC gc, const char *text, size_t len, int x, int y) const { void XFontImp::drawText(const FbDrawable &w, int screen, GC gc, const char *text, size_t len, int x, int y) const {
if (m_fontstruct == 0) if (m_fontstruct == 0)
return; return;
// use roated font functions? // use roated font functions?
if (m_rotfont != 0 && m_rotate) { if (m_rotfont != 0 && m_rotate) {
drawRotText(w, screen, gc, text, len, x, y); drawRotText(w.drawable(), screen, gc, text, len, x, y);
return; return;
} }
Display *disp = App::instance()->display(); XSetFont(w.display(), gc, m_fontstruct->fid);
XSetFont(disp, gc, m_fontstruct->fid); XDrawString(w.display(), w.drawable(), gc, x, y, text, len);
XDrawString(disp, w, gc, x, y, text, len);
} }
unsigned int XFontImp::textWidth(const char * const text, unsigned int size) const { unsigned int XFontImp::textWidth(const char * const text, unsigned int size) const {

View file

@ -1,5 +1,5 @@
// XFontImp.hh for FbTk fluxbox toolkit // XFontImp.hh for FbTk fluxbox toolkit
// Copyright (c) 2002-2003 Henrik Kinnunen (fluxgen at users.sourceforge.net) // Copyright (c) 2002-2004 Henrik Kinnunen (fluxgen at users.sourceforge.net)
// //
// Permission is hereby granted, free of charge, to any person obtaining a // Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"), // copy of this software and associated documentation files (the "Software"),
@ -19,7 +19,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: XFontImp.hh,v 1.5 2003/12/16 17:06:52 fluxgen Exp $ // $Id: XFontImp.hh,v 1.6 2004/09/11 22:58:20 fluxgen Exp $
#ifndef FBTK_XFONTIMP_HH #ifndef FBTK_XFONTIMP_HH
#define FBTK_XFONTIMP_HH #define FBTK_XFONTIMP_HH
@ -41,7 +41,7 @@ public:
float angle() const { return m_angle; } float angle() const { return m_angle; }
int ascent() const; int ascent() const;
int descent() const { return m_fontstruct ? m_fontstruct->descent : 0; } int descent() const { return m_fontstruct ? m_fontstruct->descent : 0; }
void drawText(Drawable w, int screen, GC gc, const char *text, size_t len, int x, int y) const; void drawText(const FbDrawable &w, int screen, GC gc, const char *text, size_t len, int x, int y) const;
bool loaded() const { return m_fontstruct != 0; } bool loaded() const { return m_fontstruct != 0; }
void rotate(float angle); void rotate(float angle);
/// enable/disable rotation witout alloc/dealloc rotfont structures /// enable/disable rotation witout alloc/dealloc rotfont structures

View file

@ -1,5 +1,5 @@
// XftFontImp.cc Xft font implementation for FbTk // XftFontImp.cc Xft font implementation for FbTk
// Copyright (c) 2002 Henrik Kinnunen (fluxgen@linuxmail.org) // Copyright (c) 2002-2004 Henrik Kinnunen (fluxgen@linuxmail.org)
// //
// Permission is hereby granted, free of charge, to any person obtaining a // Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"), // copy of this software and associated documentation files (the "Software"),
@ -19,10 +19,11 @@
// 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: XftFontImp.cc,v 1.5 2004/09/10 16:12:49 akir Exp $ //$Id: XftFontImp.cc,v 1.6 2004/09/11 22:58:20 fluxgen Exp $
#include "XftFontImp.hh" #include "XftFontImp.hh"
#include "App.hh" #include "App.hh"
#include "FbDrawable.hh"
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -32,6 +33,7 @@ namespace FbTk {
XftFontImp::XftFontImp(const char *name, bool utf8):m_xftfont(0), XftFontImp::XftFontImp(const char *name, bool utf8):m_xftfont(0),
m_utf8mode(utf8) { m_utf8mode(utf8) {
if (name != 0) if (name != 0)
load(name); load(name);
} }
@ -61,25 +63,24 @@ bool XftFontImp::load(const std::string &name) {
return true; return true;
} }
void XftFontImp::drawText(Drawable w, int screen, GC gc, const char *text, size_t len, int x, int y) const { void XftFontImp::drawText(const FbDrawable &w, int screen, GC gc, const char *text, size_t len, int x, int y) const {
if (m_xftfont == 0) if (m_xftfont == 0)
return; return;
Display *disp = App::instance()->display(); XftDraw *draw = XftDrawCreate(w.display(),
XftDraw *draw = XftDrawCreate(disp, w.drawable(),
w, DefaultVisual(w.display(), screen),
DefaultVisual(disp, screen), DefaultColormap(w.display(), screen));
DefaultColormap(disp, screen));
XGCValues gc_val; XGCValues gc_val;
// get foreground pixel value and convert it to XRenderColor value // get foreground pixel value and convert it to XRenderColor value
// TODO: we should probably check return status // TODO: we should probably check return status
XGetGCValues(disp, gc, GCForeground, &gc_val); XGetGCValues(w.display(), gc, GCForeground, &gc_val);
// get red, green, blue values // get red, green, blue values
XColor xcol; XColor xcol;
xcol.pixel = gc_val.foreground; xcol.pixel = gc_val.foreground;
XQueryColor(disp, DefaultColormap(disp, screen), &xcol); XQueryColor(w.display(), DefaultColormap(w.display(), screen), &xcol);
// convert xcolor to XftColor // convert xcolor to XftColor
XRenderColor rendcol; XRenderColor rendcol;
@ -88,7 +89,9 @@ void XftFontImp::drawText(Drawable w, int screen, GC gc, const char *text, size_
rendcol.blue = xcol.blue; rendcol.blue = xcol.blue;
rendcol.alpha = 0xFFFF; rendcol.alpha = 0xFFFF;
XftColor xftcolor; XftColor xftcolor;
XftColorAllocValue(disp, DefaultVisual(disp, screen), DefaultColormap(disp, screen), XftColorAllocValue(w.display(),
DefaultVisual(w.display(), screen),
DefaultColormap(w.display(), screen),
&rendcol, &xftcolor); &rendcol, &xftcolor);
// draw string // draw string
@ -97,7 +100,7 @@ void XftFontImp::drawText(Drawable w, int screen, GC gc, const char *text, size_
// check the string size, // check the string size,
// if the size is zero we use the XftDrawString8 function instead. // if the size is zero we use the XftDrawString8 function instead.
XGlyphInfo ginfo; XGlyphInfo ginfo;
XftTextExtentsUtf8(App::instance()->display(), XftTextExtentsUtf8(w.display(),
m_xftfont, m_xftfont,
(XftChar8 *)text, len, (XftChar8 *)text, len,
&ginfo); &ginfo);
@ -107,8 +110,9 @@ void XftFontImp::drawText(Drawable w, int screen, GC gc, const char *text, size_
m_xftfont, m_xftfont,
x, y, x, y,
(XftChar8 *)(text), len); (XftChar8 *)(text), len);
XftColorFree(disp, DefaultVisual(disp, screen), XftColorFree(w.display(),
DefaultColormap(disp, screen), &xftcolor); DefaultVisual(w.display(), screen),
DefaultColormap(w.display(), screen), &xftcolor);
XftDrawDestroy(draw); XftDrawDestroy(draw);
return; return;
} }
@ -122,8 +126,9 @@ void XftFontImp::drawText(Drawable w, int screen, GC gc, const char *text, size_
(XftChar8 *)(text), len); (XftChar8 *)(text), len);
XftColorFree(disp, DefaultVisual(disp, screen), XftColorFree(w.display(),
DefaultColormap(disp, screen), &xftcolor); DefaultVisual(w.display(), screen),
DefaultColormap(w.display(), screen), &xftcolor);
XftDrawDestroy(draw); XftDrawDestroy(draw);
} }

View file

@ -1,5 +1,5 @@
// XftFontImp.hh Xft font implementation for FbTk // XftFontImp.hh Xft font implementation for FbTk
// Copyright (c) 2002-2003 Henrik Kinnunen (fluxgen at users.sourceforge.net) // Copyright (c) 2002-2004 Henrik Kinnunen (fluxgen at users.sourceforge.net)
// //
// Permission is hereby granted, free of charge, to any person obtaining a // Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"), // copy of this software and associated documentation files (the "Software"),
@ -19,7 +19,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: XftFontImp.hh,v 1.4 2003/12/16 17:06:52 fluxgen Exp $ //$Id: XftFontImp.hh,v 1.5 2004/09/11 22:58:20 fluxgen Exp $
#ifndef FBTK_XFTFONTIMP_HH #ifndef FBTK_XFTFONTIMP_HH
#define FBTK_XFTFONTIMP_HH #define FBTK_XFTFONTIMP_HH
@ -36,7 +36,7 @@ public:
XftFontImp(const char *fontname, bool utf8); XftFontImp(const char *fontname, bool utf8);
~XftFontImp(); ~XftFontImp();
bool load(const std::string &name); bool load(const std::string &name);
void drawText(Drawable w, int screen, GC gc, const char *text, size_t len, int x, int y) const; void drawText(const FbDrawable &w, int screen, GC gc, const char *text, size_t len, int x, int y) const;
unsigned int textWidth(const char * const text, unsigned int len) const; unsigned int textWidth(const char * const text, unsigned int len) const;
unsigned int height() const; unsigned int height() const;
int ascent() const { return m_xftfont ? m_xftfont->ascent : 0; } int ascent() const { return m_xftfont ? m_xftfont->ascent : 0; }

View file

@ -19,12 +19,13 @@
// 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: XmbFontImp.cc,v 1.12 2004/09/10 16:12:01 akir Exp $ // $Id: XmbFontImp.cc,v 1.13 2004/09/11 22:58:20 fluxgen Exp $
#include "XmbFontImp.hh" #include "XmbFontImp.hh"
#include "App.hh" #include "App.hh"
#include "StringUtil.hh" #include "StringUtil.hh"
#include "FbDrawable.hh"
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -224,22 +225,21 @@ bool XmbFontImp::load(const std::string &fontname) {
return true; return true;
} }
void XmbFontImp::drawText(Drawable w, int screen, GC gc, const char *text, void XmbFontImp::drawText(const FbDrawable &w, int screen, GC gc, const char *text,
size_t len, int x, int y) const { size_t len, int x, int y) const {
if (text == 0 || len == 0 || w == 0 || m_fontset == 0) if (m_fontset == 0)
return; return;
Display* disp = App::instance()->display();
#ifdef X_HAVE_UTF8_STRING #ifdef X_HAVE_UTF8_STRING
if (m_utf8mode) { if (m_utf8mode) {
Xutf8DrawString(disp, w, m_fontset, Xutf8DrawString(w.display(), w.drawable(), m_fontset,
gc, x, y, gc, x, y,
text, len); text, len);
} else } else
#endif //X_HAVE_UTF8_STRING #endif //X_HAVE_UTF8_STRING
{ {
XmbDrawString(disp, w, m_fontset, XmbDrawString(w.display(), w.drawable(), m_fontset,
gc, x, y, gc, x, y,
text, len); text, len);
} }

View file

@ -19,7 +19,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: XmbFontImp.hh,v 1.4 2003/12/16 17:06:52 fluxgen Exp $ // $Id: XmbFontImp.hh,v 1.5 2004/09/11 22:58:20 fluxgen Exp $
#ifndef FBTK_XMBFONTIMP_HH #ifndef FBTK_XMBFONTIMP_HH
#define FBTK_XMBFONTIMP_HH #define FBTK_XMBFONTIMP_HH
@ -36,7 +36,7 @@ public:
XmbFontImp(const char *fontname, bool utf8); XmbFontImp(const char *fontname, bool utf8);
~XmbFontImp(); ~XmbFontImp();
bool load(const std::string &name); bool load(const std::string &name);
virtual void drawText(Drawable w, int screen, GC gc, const char *text, size_t len, int x, int y) const; virtual void drawText(const FbDrawable &w, int screen, GC gc, const char *text, size_t len, int x, int y) const;
unsigned int textWidth(const char * const text, unsigned int len) const; unsigned int textWidth(const char * const text, unsigned int len) const;
unsigned int height() const; unsigned int height() const;
int ascent() const { return m_setextents ? -m_setextents->max_ink_extent.y : 0; } int ascent() const { return m_setextents ? -m_setextents->max_ink_extent.y : 0; }

View file

@ -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: Screen.cc,v 1.290 2004/09/11 13:30:37 fluxgen Exp $ // $Id: Screen.cc,v 1.291 2004/09/11 23:01:34 fluxgen Exp $
#include "Screen.hh" #include "Screen.hh"
@ -1871,7 +1871,7 @@ void BScreen::showPosition(int x, int y) {
m_pos_window.clear(); m_pos_window.clear();
winFrameTheme().font().drawText(m_pos_window.window(), winFrameTheme().font().drawText(m_pos_window,
screenNumber(), screenNumber(),
winFrameTheme().labelTextFocusGC(), winFrameTheme().labelTextFocusGC(),
label, strlen(label), label, strlen(label),
@ -1916,13 +1916,13 @@ void BScreen::showGeometry(unsigned int gx, unsigned int gy) {
sprintf(label, sprintf(label,
_FBTEXT(Screen, GeometryFormat, _FBTEXT(Screen, GeometryFormat,
"W: %4d x H: %4d", "W: %4d x H: %4d",
"Format for width and height window, %4d for widht, and %4d for height"), "Format for width and height window, %4d for width, and %4d for height"),
gx, gy); gx, gy);
m_geom_window.clear(); m_geom_window.clear();
//!! TODO: geom window again?! repeated //!! TODO: geom window again?! repeated
winFrameTheme().font().drawText(m_geom_window.window(), winFrameTheme().font().drawText(m_geom_window,
screenNumber(), screenNumber(),
winFrameTheme().labelTextFocusGC(), winFrameTheme().labelTextFocusGC(),
label, strlen(label), label, strlen(label),