From ef1117eb50a9a0e82825e961be8e59d203ebf650 Mon Sep 17 00:00:00 2001
From: Johannes Hofmann <johannes.hofmann@gmx.de>
Date: Thu, 21 Oct 2004 18:12:36 +0000
Subject: reimplement drawing

reimplement drawing
---
 src/PSEditModel.H    |  3 ++-
 src/PSEditModel.cxx  |  6 +++++-
 src/PSEditText.H     |  3 +--
 src/PSEditWidget.cxx | 29 +++++++++++++++++++++++++++--
 4 files changed, 35 insertions(+), 6 deletions(-)

(limited to 'src')

diff --git a/src/PSEditModel.H b/src/PSEditModel.H
index 2d3f780..4398bec 100644
--- a/src/PSEditModel.H
+++ b/src/PSEditModel.H
@@ -1,5 +1,5 @@
 // 
-// "$Id: PSEditModel.H,v 1.1 2004/10/21 19:55:36 hofmann Exp $"
+// "$Id: PSEditModel.H,v 1.2 2004/10/21 20:12:36 hofmann Exp $"
 //
 // X11 header file for the Fast Light Tool Kit (FLTK).
 //
@@ -52,6 +52,7 @@ public:
   int set_tag(const char *t);
   int get_max_pages();
   int set_cur_text(int x1, int y1, int p);
+  int is_cur_text(PSEditText *t);
   PSEditText *get_text(int p);
   int ps_to_display_x(int x1);
   int ps_to_display_y(int y1);
diff --git a/src/PSEditModel.cxx b/src/PSEditModel.cxx
index 9e12d7a..81e2bf4 100644
--- a/src/PSEditModel.cxx
+++ b/src/PSEditModel.cxx
@@ -1,5 +1,5 @@
 //
-// "$Id: PSEditModel.cxx,v 1.1 2004/10/21 19:55:36 hofmann Exp $"
+// "$Id: PSEditModel.cxx,v 1.2 2004/10/21 20:12:36 hofmann Exp $"
 //
 // PSEditWidget routines.
 //
@@ -103,6 +103,10 @@ int PSEditModel::set_cur_text(int x1, int y1, int p) {
   return 1;
 }
 
+int PSEditModel::is_cur_text(PSEditText *t) {
+  return (t && t == cur_text);
+}
+
 void PSEditModel::append_text(const char *s) {
   if (cur_text && s) {
     cur_text->append_text(s);
diff --git a/src/PSEditText.H b/src/PSEditText.H
index a695b5e..2724559 100644
--- a/src/PSEditText.H
+++ b/src/PSEditText.H
@@ -1,5 +1,5 @@
 // 
-// "$Id: PSEditText.H,v 1.1 2004/10/21 19:55:36 hofmann Exp $"
+// "$Id: PSEditText.H,v 1.2 2004/10/21 20:12:36 hofmann Exp $"
 //
 // X11 header file for the Fast Light Tool Kit (FLTK).
 //
@@ -50,7 +50,6 @@ public:
   int get_color();
   int get_x();
   int get_y();
-  void draw(int off_x,int off_y);
 };
 
 #endif
diff --git a/src/PSEditWidget.cxx b/src/PSEditWidget.cxx
index ef8431c..c0295fa 100644
--- a/src/PSEditWidget.cxx
+++ b/src/PSEditWidget.cxx
@@ -1,5 +1,5 @@
 // 
-// "$Id: PSEditWidget.cxx,v 1.18 2004/10/21 19:55:36 hofmann Exp $"
+// "$Id: PSEditWidget.cxx,v 1.19 2004/10/21 20:12:36 hofmann Exp $"
 //
 // PSEditWidget routines.
 //
@@ -43,7 +43,31 @@ void PSEditWidget::clear_text() {
 
 void PSEditWidget::draw() {
   GsWidget::draw();
-
+  PSEditText *t = model->get_text(page);
+  
+  while (t) {
+    fl_color((Fl_Color) t->get_color());
+    fl_font(FL_HELVETICA, t->get_size());
+    fl_draw(t->get_text(), t->get_x() + x(), t->get_y() + y());
+    if (model->is_cur_text(t)) {
+      fl_draw_box(FL_BORDER_FRAME, 
+		  t->get_x()+x()-1, 
+		  t->get_y()+y()-fl_height()+fl_descent(),
+		  (int) fl_width(t->get_text())+2, 
+		  fl_height(), 
+		  FL_BLACK);
+    }
+    
+    if (t->get_tag() && show_tags) {
+      int text_height = fl_height() - fl_descent();
+      fl_color(FL_BLUE);
+      fl_font(FL_COURIER, 10);
+      fl_draw(t->get_tag(), t->get_x() + x(), 
+	      t->get_y() + y() - text_height - 1);
+    }
+  
+    t = t->get_next();
+  }
 }
 
 PSEditWidget::PSEditWidget(int X,int Y,int W, int H) : GsWidget(X, Y, W, H) {
@@ -132,6 +156,7 @@ void PSEditWidget::set_show_tags(int s) {
 int PSEditWidget::set_tag(const char *t) {
   if (model->set_tag(t) == 0) {
     mod++;
+    redraw();
     return 0;
   } else {
     return 1;
-- 
cgit v1.2.3