]> git.lyx.org Git - lyx.git/blobdiff - development/PAINTING_ANALYSIS
Update it.po
[lyx.git] / development / PAINTING_ANALYSIS
index acb033d7fec88412d62de9643a9cb3314f6d3069..e53b4b23df02d29b1a2eaee4a32c34ccece8a243 100644 (file)
@@ -58,86 +58,19 @@ The global idea would be to extend FitCursor to cover also horizontal
 cursor.
 
 
-* Proposals
-
-
 * Clean-up of drawing code
 
 The goal is to make painting with drawing disable fast enough that it
 can be used after every metrics computation. Then we can separate real
 drawing from metrics.
 
-** DONE RowPainter
-
-Inset position is set in paintInset, paintOnlyInsets, and paintText.
-This should be done only once in paintInset
-
-** DONE TextMetrics::drawParagraph
-
-We can really simplify the code when drawing is disabled only
-paintInset needs to be called.
- + do right at the start when drawing is already disabled
- + do it in the loop for rows that are not visible on screen.
-
-The only thing we want to do here is to set inset positions (for
-text). The other insets still use the painter with drawing disabled.
-
-** DONE Painter::text
-
-We cannot remove (or make private) the version that uses a
-FontInfo because it is used by PainterInfo::draw. Document this and
-remove unused arguments rtl and double spacing. This would become a specialized helper.
-Proposed solution: keep the existing function, but private and without
-optional arguments.
-
-Avoid to return (and thus compute) the width of strings?
- + used by InsetSpecialChar (fixable)
- + used by textDecoration() in text(): more difficult to fix
-
-Idea: add a version of text where wordspacing and textwidth (giving
-the width of strings) are required parameters and remove optional
-version.
-
-==> more versions, no optional parameters.
-
-** DONE When a document ends with a newline, add the bottom margin anyway
-
-The code that tests for a newline was added at 6bb98d07 in 2007.
+Other changes are only clean-ups.
 
 ** When a paragraph ends with a newline, compute correctly the height of the extra row.
-** Rewrite TextMetrics::completionPosAndDim using row information
-
-Currently it uses setRowHeight in a very weird way. In particular the
-topBottomSpace parameter should be removed after that.
-
 ** Rewrite TextMetrics::editXY, checkInsetHit using row information (getPosNearX)?
 
    The helper version should return a Row::Element instead of an InsetTable.
 
-** TODO make Inset::display() more useful
-
-[This has been started in the features/betterbreak branch. Time will
-tell whether it really helps. The question in particular is the
-handling of separator insets]
-
-Extending the DisplayType enum would allow to remove special cases
-from the code.
-
-The enumeration could be like
-: Inline = 0
-: BreakBefore = 1 // break row before this inset
-: BreakAfter = 2 // break row after this inset
-: CanBreakAfter = 4 // optionally break row after this inset
-: AlignLeft = 8
-: AlignRight = 16
-: NoBoundary = 32 // do not allow cursor to go at the end of the row
-:                 //before display inset
-: Display = BreakBefore|BreakAfter
-
-A display equation would be Display, other could be Display|AlignLeft
-BreakAfter can be used by Newline or separator insets
-CanBreakAfter can be used by the optional hyphen InsetSpecialChar.
-
 ** Set inset position during metrics phase
 
 In order to do that, a no-paint drawing will be initiated after every
@@ -153,16 +86,6 @@ application would do.
    + remove painting when not inside in drawParagraph
    + remove Cursor::inCoordCache?
 
-** Use Row for MathData
-
-It may not be so difficult. Implement x2pos and pos2x from
-the TM:cursorX and TM::getPosNearX, and use them for both text and
-math.
-
-Will the strings display OK if drawing string-wise?
-
-Then it would be possible to streamline drawing with disabled painter.
-
 ** Paint directly to screen
 
 Instead of using an intermediary pixmap. I have no idea of how
@@ -222,12 +145,8 @@ update flag is Update::None.
 ** Metrics computation
 
 This is triggered by bv::updateMetrics, which calls tm::redoParagraph for
-  + all visible paragraphs
-  + paragraph above the screen (up to one page)
-  + paragraphs below the screen (up to one page again)
-
-The paragraphs outside of the screen are required to make PageUp/Down
-work.
+all visible paragraphs. Paragraphs above or below the screen (needed
+for page up/down) and computed as needed.
 
 tm::redoParagraph will call Inset::metrics for each inset. In the case
 of text insets, this will invoke recursively tm::metrics, which redoes