Commit Graph

56 Commits

Author SHA1 Message Date
Jean-Marc Lasgouttes
463bd17d75 Use integer line thickness in painter
There is no need for real-valued line width in painters. Actually, this even leads to uneven dashes for continuous spell checker.

The new code is supposed to be equivalent to the old one, just more readable. From this, we can try to see whether some lines need to be made thicker on HiDPI screens.
2015-07-14 17:42:45 +02:00
Jean-Marc Lasgouttes
66fa801e74 Improve support for on screen length calculation
The computation of length on screen depend in particular of the computation of the size of an em. Many places of the code used to rely on the width of the M character, which is not really correct:
http://en.wikipedia.org/wiki/Em_%28typography%29

In digital typography, the best value to use is the point size of the font.

* Implement FontMetrics::em(), which returns the value in pixels of the EM unit.
 Convert code to use it.

* Introduce Length::inPixel(MetricsBase const &), which takes the textwidth and em information from the MetricsBase object. Convert code to use it.

* Fix several places where Length::inPixel is used without a proper em value.

* add mathed_font_em() helper function. It should eventually be removed like some other functions in MathSupport.

* Add dummy implementation of FontMetrics to tex2lyx for linking purposes.
2015-03-26 17:10:15 +01:00
Richard Heck
ecef54500d Introduce max_length parameter for plaintext() output routines,
so we can write a limited amount when using this for TOC and
tooltip output.

This should solve the problem with slowness that Kornel noticed,
which was caused by our trying to write an entire plaintext
bibliography every time we updated the TOC. We did that because
he had a bibliography inside a branch, and we use plaintext for
creating the tooltip that goes with the branch list.

Other related bugs were fixed along the way. E.g., it turns out
that, if someone had an InsetInclude inside a branch, then we would
have been writing a *plaintext file* for that inset every time we
updated the TOC. I wonder if some of the other reports of slowness
we have received might be due to this kind of issue?
2013-03-08 15:12:58 -05:00
Lars Gullik Bjønnes
76a5f726a7 InsetLine.cpp: add <cstdlib>
This fixes a problem introduced in bc51243587
2012-10-28 09:20:59 +01:00
Lars Gullik Bjønnes
bc51243587 insets/InsetLine.cpp: use std::abs
Use std::abs in stead of std::max(v, -v).
2012-10-27 01:25:39 +02:00
Uwe Stöhr
5ddd2174d5 InsetLine.cpp: fix bug #7851
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39984 a592a061-630c-0410-9148-cb99ea01b6c8
2011-10-25 23:22:55 +00:00
Richard Heck
461c973d62 Clean up XHTML output a bit.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38185 a592a061-630c-0410-9148-cb99ea01b6c8
2011-04-01 19:18:25 +00:00
Enrico Forestieri
d866717ef7 Integrate texrow with otexstream in order to perform automatic line
counting when exporting to latex. This is done for the code comprised
between \begin{document} and \end{document}, while the preamble code
still needs manual calls to TexRow::newline() for registering new lines.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37584 a592a061-630c-0410-9148-cb99ea01b6c8
2011-02-10 20:02:48 +00:00
Enrico Forestieri
1ef605f625 Introduce a wrapper class for odocstream to help ensuring that no
blank lines may be inadvertently output. This is achieved by using two
special iomanip-like variables (breakln and safebreakln) in the lyx::
namespace. When they are inserted in the stream, a newline is output
only if not already at the beginning of a line. The difference between
breakln and safebreakln is that, if needed, the former outputs '\n'
and the latter "%\n".
In future, the new class will also be used for counting the number of
newlines issued. Even if the infractrure for doing that is already in
place, the counting is essentially still done the old way.
There are still places in the code where the functionality of the
class could be used, most probably. ATM, it is used for InsetTabular,
InsetListings, InsetFloat, and InsetText.
The Comment and GreyedOut insets required a special treatment and a
new InsetLayout parameter (Display) has been introduced. The default
for Display is "true", meaning that the corresponding latex
environment is of "display" type, i.e., it stands on its own, whereas
"false" means that the contents appear inline with the text. The
latter is the case for both Comment and GreyedOut insets.
Mostly, the only visible effects on latex exports should be the
disappearing of some redundant % chars and the appearing/disappearing
of null {} latex groups after a comment or lyxgreyedout environments
(they are related to the presence or absence of a space immediately
after those environments), as well as the fact that math environments
are now started on their own lines.
As a last thing, only the latex code between \begin{document} and
\end{document} goes through the new class, the preamble being directly
output through odocstream, as usual.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37360 a592a061-630c-0410-9148-cb99ea01b6c8
2011-01-29 02:41:13 +00:00
Jean-Marc Lasgouttes
838af80834 Try to finally fix #6930. All the paths that did not come from context
menus were (intentionally) missing, and it turns out they were needed.

Normally all invocations of INSET_MODIFY should trigger a recordUndo now.
Of course all cases have not been tested, but it should be working.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36770 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-08 09:24:04 +00:00
Vincent van Ravesteijn
222b3580d2 More include frenzy.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35940 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-31 01:04:03 +00:00
Vincent van Ravesteijn
2bbf8e5f2d Remove InsetCommand::mailer_name_.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35893 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-29 00:46:21 +00:00
Vincent van Ravesteijn
c5b9664476 Remove the name parameter from string2params and params2string. We can always derive the name with insetName(params.code()).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35891 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-29 00:25:28 +00:00
Uwe Stöhr
92c8604313 InsetLine:
- honor Abdel as author
- reintroduce the /// spacers in the header file because it makes it better readable and we do this in all other inset header files

GuiLine: honor Abdel as author

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35417 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-17 01:28:08 +00:00
Abdelrazak Younes
17ab5f5a38 InsetLine: Fix vertical positioning, offset is really an offset from the
text baseline, not from the middle of the line.

We are now getting much closer to LateX drawing...


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35413 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-16 10:40:19 +00:00
Abdelrazak Younes
31c75d260e Remove uneeded hack.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35411 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-16 09:49:43 +00:00
Abdelrazak Younes
08453ceba4 Fix InsetLine painting for exotic offset and heigth.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35407 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-16 07:36:20 +00:00
Abdelrazak Younes
c01de9fd41 * add InsetLine::dimension() to avoid calling InsetCommand::dimension()
* InsetLine::draw() bit of code shuffling.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35384 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-15 12:43:07 +00:00
Abdelrazak Younes
15679c3e82 revert r35374 and further improve the metrics and drawing code.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35377 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-15 11:19:29 +00:00
Uwe Stöhr
573abee2b5 InsetLine.cpp: correct coding style
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35375 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-14 23:35:12 +00:00
Uwe Stöhr
e33e3dd815 InsetLine.cpp: restore the drawing routine after r35373, see http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg161800.html
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35374 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-14 23:24:57 +00:00
Abdelrazak Younes
d1f08cbc57 Fix InsetLine metrics and drawing.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35373 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-14 14:56:41 +00:00
Abdelrazak Younes
24ff65acc4 coding style and C++ fixes.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35370 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-14 13:42:09 +00:00
Pavel Sanda
2d8ee8973f Commit clash, Abdel just fixed it another way.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35318 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-07 13:43:10 +00:00
Pavel Sanda
01eb99ea4d Compilation fix for 'abs'
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35317 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-07 13:40:03 +00:00
Abdelrazak Younes
0b7886a1a8 Gcc compile fix. abs is defined for float not int.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35316 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-07 13:37:22 +00:00
Pavel Sanda
d179943b8f Squash warning
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35305 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-07 11:00:01 +00:00
Uwe Stöhr
604a3341d9 InsetLine.cpp: remove unused include
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35300 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-07 00:49:00 +00:00
Uwe Stöhr
0e7ab29f49 InsetLine: support for the LaTeX command \rule; kick out the hardcoded \lyxline; fileformat change
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35299 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-07 00:41:00 +00:00
Uwe Stöhr
59d550f894 InsetLine.cpp: fix #6863: use text color also for lines within LyX
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35286 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-05 23:27:55 +00:00
Uwe Stöhr
bbafadcbf3 InsetLine.cpp: compile fix for r35283
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35285 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-05 17:18:23 +00:00
Uwe Stöhr
fab03729ab InsetLine.cpp: use text color also for lyxlines
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35191 a592a061-630c-0410-9148-cb99ea01b6c8
2010-08-25 01:59:14 +00:00
Uwe Stöhr
38ed6cd1a0 \lyxline is a LyX-specific macro that creates a line in the output
- this line is defined with a width of 1pt -> therefore also draw it in this size in lyx
- this line is by default black -> use black
- setting a color for this in the preferences is wrong and senseless, because the color of this line is defined by the color chosen in the text style dialog -> remove preference color

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35185 a592a061-630c-0410-9148-cb99ea01b6c8
2010-08-24 01:13:26 +00:00
Richard Heck
3e654186d2 Move the StartTag, EndTag, and CompTag classes into the html namespace.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33099 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-19 22:08:04 +00:00
Richard Heck
40fcb745a9 Restore XHTML output for InsetLine.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32207 a592a061-630c-0410-9148-cb99ea01b6c8
2009-11-25 22:07:17 +00:00
Richard Heck
67e70c6c02 Well, it turns out that we need a different return value for the xhtml
routines, one that allows us to "defer" certain material, e.g., a float
that ought to appear in a div but can't simply be put into the middle
of a paragraph.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30079 a592a061-630c-0410-9148-cb99ea01b6c8
2009-06-12 17:23:17 +00:00
Richard Heck
12f57a57bd The return value for xhtml() is not going to be needed.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30078 a592a061-630c-0410-9148-cb99ea01b6c8
2009-06-12 16:11:33 +00:00
Richard Heck
f61bebd7fb HTML output code for a handful of easy insets.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29951 a592a061-630c-0410-9148-cb99ea01b6c8
2009-06-05 17:48:14 +00:00
André Pönitz
f1cba8ff64 more latin1..utf8 schanges. all of src/* should be utf8 now
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27425 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-14 15:58:50 +00:00
Pavel Sanda
dcc50a2454 Fix include orderings.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25309 a592a061-630c-0410-9148-cb99ea01b6c8
2008-06-18 18:54:31 +00:00
André Pönitz
db8c16d554 progress on buffer-reference-in-insets. beware of instabilities...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23289 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-27 20:43:16 +00:00
Abdelrazak Younes
2bf1c09376 header cleanup
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23049 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-18 07:14:42 +00:00
Abdelrazak Younes
9383f4c3c6 'using namespace std' instead of 'using std::xxx'
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22097 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-12 10:16:00 +00:00
André Pönitz
9d0ea8aeff Move debug.{cpp,h}, Messages.{cpp,h} and gettext.{cpp,h} to support/.
Now support/* should have no dependencies on src/* anymore.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21851 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-29 07:04:28 +00:00
André Pönitz
a8cd9a4b8f cosmetics. mainly replace #include "dostring.h" by #include "strfwd.h"
in header files when possible. Adjust .cpp files.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21358 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-01 22:17:22 +00:00
Abdelrazak Younes
5ddc612b73 Splitup Font in saner bits:
* Font::FontBits -> FontInfo
* Font::FONT_XXX -> all enums transfered to FontEnums.h and renamed to FontXxx

I've replaced Font uses with FontInfo were the language() member was not needed, basically all draw() and metrics methods. There's one problematic cases with InsetQuotes which I solved by taking the Buffer main language.




git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21240 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-28 18:51:54 +00:00
Abdelrazak Younes
eea79637c7 Move Color::color enum to ColorCode.h
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21198 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-25 12:41:02 +00:00
Abdelrazak Younes
4b649e746a Fix drawing of horizontal line and page break.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20480 a592a061-630c-0410-9148-cb99ea01b6c8
2007-09-25 07:07:11 +00:00
Abdelrazak Younes
237c132c1e * Inset:
- get rid of the cached Dimension. Text inset dimensions are saved in ParagraphMetrics and mathed maintain their own dimension where needed.
- width(), ascent(), descent(): deleted.
- dimension(): now needs a valid BufferView.
- metrics(): now void.

* BufferView::getCoveringInset(): simplify.

* ParagraphMetrics(): now cache inset dimensions.




git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20420 a592a061-630c-0410-9148-cb99ea01b6c8
2007-09-21 20:39:47 +00:00
André Pönitz
ed858d73e5 use bald pointers in clone()
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19920 a592a061-630c-0410-9148-cb99ea01b6c8
2007-08-30 18:03:17 +00:00