93 lines
2.7 KiB
Plaintext
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);
|
|
}
|