From e8cd2063669a04e3782b187fdd0be336efb157db Mon Sep 17 00:00:00 2001 From: Johannes Hofmann Date: Mon, 8 Nov 2004 18:36:14 +0000 Subject: fix move interface fix move interface --- src/PSEditWidget.H | 4 ++-- src/PSEditWidget.cxx | 20 +++++++++++++++----- src/PSEditor.H | 4 +--- src/PSEditor.cxx | 24 +++++++----------------- src/flpsed.cxx | 5 +++-- 5 files changed, 28 insertions(+), 29 deletions(-) (limited to 'src') diff --git a/src/PSEditWidget.H b/src/PSEditWidget.H index 7319b3f..6261646 100644 --- a/src/PSEditWidget.H +++ b/src/PSEditWidget.H @@ -1,5 +1,5 @@ // -// "$Id: PSEditWidget.H,v 1.12 2004/11/08 18:10:34 hofmann Exp $" +// "$Id: PSEditWidget.H,v 1.13 2004/11/08 19:36:14 hofmann Exp $" // // X11 header file for the Fast Light Tool Kit (FLTK). // @@ -61,7 +61,7 @@ public: void append_text(const char *s); - void move(int x1, int y1, int last_x, int last_y); + void move(int x1, int y1); void rm_char(); diff --git a/src/PSEditWidget.cxx b/src/PSEditWidget.cxx index 95ddbde..9d20618 100644 --- a/src/PSEditWidget.cxx +++ b/src/PSEditWidget.cxx @@ -1,5 +1,5 @@ // -// "$Id: PSEditWidget.cxx,v 1.26 2004/11/08 18:56:00 hofmann Exp $" +// "$Id: PSEditWidget.cxx,v 1.27 2004/11/08 19:36:14 hofmann Exp $" // // PSEditWidget routines. // @@ -75,7 +75,8 @@ void PSEditWidget::draw() { } } -PSEditWidget::PSEditWidget(int X,int Y,int W, int H) : GsWidget(X, Y, W, H) { +PSEditWidget::PSEditWidget(int X,int Y,int W, int H): GsWidget(X, Y, W, H) { + model = new PSEditModel(paper_x, paper_y, xdpi, ydpi); cur_size = 12; show_tags = 1; @@ -161,15 +162,24 @@ void PSEditWidget::append_text(const char *s) { } } -void PSEditWidget::move(int x1, int y1, int last_x, int last_y) { +void PSEditWidget::move(int x1, int y1) { PSEditText *t; + int old_bbx, old_bby, old_bbw, old_bbh; + + t = model->get_cur_text(); + if (t) { + old_bbx = bb_x(t); + old_bby = bb_y(t); + old_bbw = bb_w(t); + old_bbh = bb_h(t); + } model->move(x1, y1); mod++; - t = model->get_cur_text(); + if (t) { + damage(4, old_bbx, old_bby, old_bbw, old_bbh); damage(4, bb_x(t), bb_y(t), bb_w(t), bb_h(t)); - damage(4, last_x - 10, last_y - fl_height() - 20, bb_w(t), bb_h(t)); } } diff --git a/src/PSEditor.H b/src/PSEditor.H index 34873fe..2663701 100644 --- a/src/PSEditor.H +++ b/src/PSEditor.H @@ -1,5 +1,5 @@ // -// "$Id: PSEditor.H,v 1.7 2004/10/26 16:58:49 hofmann Exp $" +// "$Id: PSEditor.H,v 1.8 2004/11/08 19:36:14 hofmann Exp $" // // X11 header file for the Fast Light Tool Kit (FLTK). // @@ -32,8 +32,6 @@ class PSEditor : public PSEditWidget { int ps_level; - int x_last, y_last; - int handle(int event); public: diff --git a/src/PSEditor.cxx b/src/PSEditor.cxx index efd9b97..6e1c644 100644 --- a/src/PSEditor.cxx +++ b/src/PSEditor.cxx @@ -1,5 +1,5 @@ // -// "$Id: PSEditor.cxx,v 1.20 2004/11/08 18:10:34 hofmann Exp $" +// "$Id: PSEditor.cxx,v 1.21 2004/11/08 19:36:14 hofmann Exp $" // // PSEditor routines. // @@ -43,10 +43,7 @@ int PSEditor::handle(int event) { fl_beep(); return 0; } - - x_last = Fl::event_x()-x(); - y_last = Fl::event_y()-y(); - + mark_x = Fl::event_x()-x(); mark_y = Fl::event_y()-y(); @@ -64,16 +61,9 @@ int PSEditor::handle(int event) { return 1; } - x_last = -1; - y_last = -1; - break; case FL_DRAG: - move(Fl::event_x()-x(), Fl::event_y()-y(), x_last-x(), y_last-y()); - - x_last = Fl::event_x()-x(); - y_last = Fl::event_y()-y(); - + move(Fl::event_x()-x(), Fl::event_y()-y()); return 1; break; case FL_KEYBOARD: @@ -87,28 +77,28 @@ int PSEditor::handle(int event) { if (t) { int x = t->get_x(); int y = t->get_y(); - move(x - 1, y, x, y); + move(x - 1, y); } } else if (key == FL_Right) { PSEditText *t = model->get_cur_text(); if (t) { int x = t->get_x(); int y = t->get_y(); - move(x + 1, y, x, y); + move(x + 1, y); } } else if (key == FL_Up) { PSEditText *t = model->get_cur_text(); if (t) { int x = t->get_x(); int y = t->get_y(); - move(x, y - 1, x, y); + move(x, y - 1); } } else if (key == FL_Down) { PSEditText *t = model->get_cur_text(); if (t) { int x = t->get_x(); int y = t->get_y(); - move(x, y + 1, x, y); + move(x, y + 1); } } else if (key == FL_Tab) { next_text(); diff --git a/src/flpsed.cxx b/src/flpsed.cxx index 7b766f9..6dc6a1b 100644 --- a/src/flpsed.cxx +++ b/src/flpsed.cxx @@ -1,5 +1,5 @@ // -// "$Id: flpsed.cxx,v 1.22 2004/10/26 16:58:49 hofmann Exp $" +// "$Id: flpsed.cxx,v 1.23 2004/11/08 19:36:14 hofmann Exp $" // // flpsed program. // @@ -221,7 +221,8 @@ int main(int argc, char** argv) { char c, *sep, *tmp, **my_argv; int err, bflag = 0, dflag = 0; Fl_Window *win; - Fl_Menu_Bar* m; + Fl_Menu_Bar *m; + Fl_Int_Input *x_in, *y_in; Fl_Scroll *scroll; struct {char *tag; char *value;} tv[TV_LEN]; int tv_idx = 0, my_argc; -- cgit v1.2.3