]> git.lyx.org Git - features.git/commitdiff
A couple of minor bug fixes and cleanups
authorJohn Levon <levon@movementarian.org>
Tue, 9 Jul 2002 16:23:20 +0000 (16:23 +0000)
committerJohn Levon <levon@movementarian.org>
Tue, 9 Jul 2002 16:23:20 +0000 (16:23 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@4574 a592a061-630c-0410-9148-cb99ea01b6c8

src/ChangeLog
src/frontends/ChangeLog
src/frontends/Painter.C
src/frontends/Painter.h
src/frontends/screen.h
src/frontends/xforms/ChangeLog
src/frontends/xforms/xscreen.C
src/lengthcommon.h
src/lyxfunc.C
src/lyxtext.h
src/text.C

index 27484466c5994e6d429865c91d2425d7a875fd14..7fbb7d14843900a80528a267b3b8246d7075e584 100644 (file)
@@ -1,3 +1,12 @@
+2002-07-09  John Levon  <moz@compsoc.man.ac.uk>
+
+       * lengthcommon.h: whitespace
+       * lyxfunc.C: update scrollbar after goto paragraph 
+
+       * lyxtext.h: factor out page break drawing, and fix it so
+         page break/added space paints as selected nicely
 2002-07-09  John Levon  <moz@compsoc.man.ac.uk>
 
        * BufferView_pimpl.C: add FIXMEs, clean up a little
index 816c96626cb69770164f2b39cc1c42995bd9e909..58d13634d7ec3074a7987ba15f0edbbe55a5a1dd 100644 (file)
@@ -1,3 +1,9 @@
+2002-07-09  John Levon  <moz@compsoc.man.ac.uk>
+
+       * Painter.C:
+       * Painter.h: make frame/background painting optional
+         for rectText
 2002-07-05  Angus Leeming  <leeming@lyx.org>
 
        * lyx_gui.h (hexname): new function.
index af127d5b3dd7040a9e2dd7accb0c63bfa53b914d..445a3493afbca75a62223c9d0199debebb94afa5 100644 (file)
@@ -67,9 +67,15 @@ Painter & Painter::rectText(int x, int baseline,
 
        font_metrics::rectText(str, font, width, ascent, descent);
  
-       rectangle(x, baseline - ascent, width, ascent + descent, frame);
-       fillRectangle(x + 1, baseline - ascent + 1, width - 1, 
-                     ascent + descent - 1, back);
+       if (frame != LColor::none) {
+               rectangle(x, baseline - ascent, width, ascent + descent, frame);
+       }
+       if (back != LColor::none) {
+               fillRectangle(x + 1, baseline - ascent + 1, width - 1, 
+                             ascent + descent - 1, back);
+       }
        text(x + 3, baseline, str, font);
        return *this;
 }
index f629234f0b02466ea66a91016707f709bc51bcf9..25d94cc256d747b5c4829da82d8d3a2b4a3b998a 100644 (file)
@@ -151,12 +151,17 @@ public:
        virtual Painter & text(int x, int y,
                char c, LyXFont const & f) = 0;
 
-       /// draw a string and enclose it inside a rectangle
+       /**
+        * Draw a string and enclose it inside a rectangle. If
+        * back color is specified, the background is cleared with
+        * the given color. If frame is specified, a thin frame is drawn
+        * around the text with the given color.
+        */
        Painter & rectText(int x, int baseline,
                string const & string,
                LyXFont const & font,
-               LColor::color back,
-               LColor::color frame);
+               LColor::color back = LColor::none,
+               LColor::color frame = LColor::none);
 
        /// draw a string and enclose it inside a button frame
        Painter & buttonText(int x,
index 10e9e40a4272436d14e7075182279c2256ee228c..b0e1a6232eef58e5b2abf10fe004077498721426 100644 (file)
@@ -110,7 +110,7 @@ public:
         * @param bv the bufferview
         * @return true if a change was necessary
         *
-        * Scrolls the screen so that the cursor is visible,
+        * Scrolls the screen so that the cursor is visible
         */
        virtual bool fitCursor(LyXText *, BufferView *);
 
index 88eb946d134060cfa13ddedc809099e3efcdefbc..c2eaf4302f868ac973513994ba1cf0f1a524dc66 100644 (file)
@@ -1,3 +1,7 @@
+2002-07-09  John Levon  <moz@compsoc.man.ac.uk>
+
+       * xscreen.C: add const
 2002-07-09  Angus Leeming  <leeming@lyx.org>
 
        * xformsImage.C (scale): use boost::tie.
index 23544eb6a65df73a2de02a10610404defc1ebe9a..807a1b37e44ebb311a0201306cb8f8221bc51fd3 100644 (file)
@@ -206,7 +206,7 @@ void XScreen::draw(LyXText * text, BufferView * bv, unsigned int y)
        if (cursor_visible_) hideCursor();
 
        int const old_first = text->first_y;
-       bool internal = (text == bv->text);
+       bool const internal = (text == bv->text);
        text->first_y = y;
 
        // is any optimization possible?
index 71d72ea9882c36eb66f90da7762b6e1d2d88cd37..57095514ba55c9b0df78c44e7b763f67885e3dbc 100644 (file)
@@ -14,7 +14,7 @@ extern int const num_units;
  *
  * FIXME: I am not sure if "mu" should be possible to select (Lgb)
  */
-extern char const *unit_name[];
+extern char const * unit_name[];
 
 /// return the unit given a string representation such as "cm"
 LyXLength::UNIT unitFromString(string const & data);
index b35df71a4b3edaa7790336f8cba322c09b14293b..c024395fae8dc2943398cd37b3fd42dcc50a614f 100644 (file)
@@ -1393,11 +1393,11 @@ string const LyXFunc::dispatch(kb_action action, string argument)
                        owner->view()->buffer(bufferlist.loadLyXFile(s));
                }
 
-               // Set the cursor
                owner->view()->setCursorFromRow(row);
 
-               // Recenter screen
                owner->view()->center();
+               // see BufferView_pimpl::center() 
+               owner->view()->updateScrollbar();
        }
        break;
 
@@ -1427,8 +1427,9 @@ string const LyXFunc::dispatch(kb_action action, string argument)
                owner->view()->setState();
                owner->showState();
 
-               // Recenter screen
                owner->view()->center();
+               // see BufferView_pimpl::center() 
+               owner->view()->updateScrollbar();
        }
        break;
 
index bd27342e775724bba3d0e179e674273cd85fee13..949681298d438d1d5ea0ea6f641dec19c55121cc 100644 (file)
@@ -589,6 +589,9 @@ private:
        /// paint appendix marker
        void paintRowAppendix(DrawRowParams & p);
 
+       /// paint page break marker. Returns its height.
+       int paintPageBreak(string const & label, int y, DrawRowParams & p);
        /// paint env depth bar
        void paintRowDepthBar(DrawRowParams & p);
 
index f2582dc463eb112a7a688002ec25fdaf2791ac9b..d85417f577e32d3a5349ba28c337afb610982579 100644 (file)
@@ -3308,9 +3308,7 @@ int LyXText::drawLengthMarker(DrawRowParams & p, string const & prefix,
 
        p.pain->rectText(leftx + 2 * arrow_size + 5,
                         start + ((end - start) / 2) + d,
-                        str, font,
-                        backgroundColor(),
-                        backgroundColor());
+                        str, font);
 
        // top arrow
        p.pain->line(leftx, ty1, midx, ty2, LColor::added_space);
@@ -3327,6 +3325,30 @@ int LyXText::drawLengthMarker(DrawRowParams & p, string const & prefix,
 }
 
 
+int LyXText::paintPageBreak(string const & label, int y, DrawRowParams & p)
+{
+       LyXFont pb_font;
+       pb_font.setColor(LColor::pagebreak).decSize();
+
+       int w = 0;
+       int a = 0;
+       int d = 0;
+       font_metrics::rectText(label, pb_font, w, a, d);
+
+       int const text_start = p.xo + ((p.width - w) / 2);
+       int const text_end = text_start + w;
+       p.pain->rectText(text_start, y + d, label, pb_font);
+       p.pain->line(p.xo, y, text_start, y,
+               LColor::pagebreak, Painter::line_onoffdash);
+       p.pain->line(text_end, y, p.xo + p.width, y,
+               LColor::pagebreak, Painter::line_onoffdash);
+
+       return 3 * defaultHeight();
+}
+
 void LyXText::paintFirstRow(DrawRowParams & p)
 {
        Paragraph * par = p.row->par();
@@ -3345,22 +3367,8 @@ void LyXText::paintFirstRow(DrawRowParams & p)
 
        // draw a top pagebreak
        if (parparams.pagebreakTop()) {
-               int const y = p.yo + y_top + 2*defaultHeight();
-               p.pain->line(p.xo, y, p.xo + p.width, y,
-                       LColor::pagebreak, Painter::line_onoffdash);
-
-               int w = 0;
-               int a = 0;
-               int d = 0;
-
-               LyXFont pb_font;
-               pb_font.setColor(LColor::pagebreak).decSize();
-               font_metrics::rectText(_("Page Break (top)"), pb_font, w, a, d);
-               p.pain->rectText((p.width - w)/2, y + d,
-                             _("Page Break (top)"), pb_font,
-                             backgroundColor(),
-                             backgroundColor());
-               y_top += 3 * defaultHeight();
+               y_top += paintPageBreak(_("Page Break (top)"),
+                       p.yo + y_top + 2 * defaultHeight(), p);
        }
 
        // draw the additional space if needed:
@@ -3523,22 +3531,8 @@ void LyXText::paintLastRow(DrawRowParams & p)
 
        // draw a bottom pagebreak
        if (parparams.pagebreakBottom()) {
-               LyXFont pb_font;
-               pb_font.setColor(LColor::pagebreak).decSize();
-               int const y = p.yo + y_bottom - 2 * defaultHeight();
-
-               p.pain->line(p.xo, y, p.xo + p.width, y, LColor::pagebreak,
-                            Painter::line_onoffdash);
-
-               int w = 0;
-               int a = 0;
-               int d = 0;
-               font_metrics::rectText(_("Page Break (bottom)"), pb_font, w, a, d);
-               p.pain->rectText((ww - w) / 2, y + d,
-                       _("Page Break (bottom)"),
-                       pb_font, backgroundColor(), backgroundColor());
-
-               y_bottom -= 3 * defaultHeight();
+               y_bottom -= paintPageBreak(_("Page Break (bottom)"),
+                       p.yo + y_bottom - 2 * defaultHeight(), p);
        }
 
        // draw the additional space if needed:
@@ -3611,6 +3605,7 @@ void LyXText::paintLastRow(DrawRowParams & p)
                break;
        }
 }
 
 void LyXText::paintRowText(DrawRowParams & p)
 {