openbsd-ports/mbone/vat/patches/patch-sitebox_cc
2001-07-30 15:33:22 +00:00

93 lines
2.7 KiB
Plaintext

$OpenBSD: patch-sitebox_cc,v 1.1 2001/07/30 15:33:22 espie Exp $
--- sitebox.cc.orig Mon Jul 30 17:26:00 2001
+++ sitebox.cc Mon Jul 30 17:25:38 2001
@@ -112,7 +112,7 @@ class Site : public TclObject {
static Drawable pixmap_;
static int pixw_;
static int pixh_;
- static XFontStruct* fs_; /* font metrics */
+ static Tk_Font fs_; /* font metrics */
};
class SiteBox : public TkWidget, public IdleCallback {
@@ -160,7 +160,7 @@ class SiteBox : public TkWidget, public
GC Site::copy_gc_;
GC Site::fg_[4];
GC Site::bg_[4];
-XFontStruct* Site::fs_;
+Tk_Font Site::fs_;
XColor* Site::fc_;
XColor* Site::bc_;
XColor* Site::ac_;
@@ -190,15 +190,16 @@ Site::Site(Tk_Window tk, SiteBox& sb) :
sitebox_(sb)
{
Tcl& tcl = Tcl::instance();
+ Tk_FontMetrics fm;
if (fs_ == 0) {
const char* font = tcl.attr("siteFont");
- fs_ = Tk_GetFontStruct(tcl.interp(), tk_, (char*)font);
+ fs_ = Tk_GetFont(tcl.interp(), tk_, (char*)font);
if (fs_ == 0) {
fprintf(stderr,
"vat: couldn't find font: %s\n", font);
- fs_ = Tk_GetFontStruct(tcl.interp(), tk_, "screen");
+ fs_ = Tk_GetFont(tcl.interp(), tk_, "screen");
if (fs_ == 0)
- fs_ = Tk_GetFontStruct(tcl.interp(), tk_,
+ fs_ = Tk_GetFont(tcl.interp(), tk_,
"fixed");
if (fs_ == 0) {
fprintf(stderr,
@@ -220,14 +221,19 @@ Site::Site(Tk_Window tk, SiteBox& sb) :
copy_gc_ = sitebox_.lookup_gc(0, 0, 0);
}
- descent_ = fs_->descent;
- ascent_ = fs_->ascent;
+ Tk_GetFontMetrics(fs_, &fm);
+ descent_ = fm.descent;
+ ascent_ = fm.ascent;
major_ = ascent_;
minor_ = major_ / 2;
}
Site::~Site()
{
+ if (text_)
+ delete text_;
+ if (tag_)
+ delete tag_;
}
int Site::command(int argc, const char*const* argv)
@@ -292,7 +298,7 @@ int Site::command(int argc, const char*c
*/
inline int Site::textwidth(const char* s)
{
- return (XTextWidth(fs_, s, strlen(s)));
+ return (Tk_TextWidth(fs_, s, strlen(s)));
}
inline void Site::square(Display* dpy, Drawable window, GC gc,
@@ -450,7 +456,7 @@ void Site::place(int x, int y, int w, in
free_gc(bg_[0]);
free_gc(bg_[1]);
}
- Font fid = fs_->fid;
+ Font fid = Tk_FontId(fs_);
fg_[0] = raw_gc(fid, fc_, bc_, pixmap_);
fg_[2] = raw_gc(fid, dc_, bc_, pixmap_);
bg_[0] = raw_gc(fid, bc_, bc_, pixmap_);
@@ -636,8 +642,8 @@ SiteBox::SiteBox(const char* path)
need_sort_ = 0;
Tcl& tcl = Tcl::instance();
- Tk_Uid fg = mono()? "black" : (char*)tcl.attr("foreground");
- Tk_Uid bg = mono()? "white" : (char*)tcl.attr("background");
+ Tk_Uid fg = mono()? (char *)"black" : (char*)tcl.attr("foreground");
+ Tk_Uid bg = mono()? (char *) "white" : (char*)tcl.attr("background");
fg_ = lookup_gc(0, fg, bg);
bg_ = lookup_gc(0, bg, bg);
}