summaryrefslogtreecommitdiff
path: root/include/vcl/font.hxx
AgeCommit message (Collapse)Author
2022-11-21drop effectively unused Font::IsSymbolFontCaolán McNamara
Change-Id: I717319dd3843aa7d73d0722967e80f7d07e98143 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143006 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-11-18remove unused Font::SetSymbolFlagCaolán McNamara
not used outside cppunit tests and it's not something to encourage to toggle Change-Id: I6519de48dfaa20293afc0874702653439e142285 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142940 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-23tdf#66819: Disable ligatures with character spacingKhaled Hosny
When character spacing is not zero, optional ligatures should be disabled (e.g. this what CSS requires and what browsers implement: https://drafts.csswg.org/css-text/#letter-spacing-property). This disables both “liga” and “clig” OpenType features because they are optional features and are enabled by default, it does not disable “rlig” because it is for orthographically-required ligatures, nor “dlig” or “hlig” because they are disabled by default. The character spacing values (confusingly called kerning in the source code) are moved from SvxFont to vcl::Font so it can’t be accessed in OutputDevice and pass the relevant flag to SalLayout. Change-Id: Ieacc875df3896ad7a63ae8d116f4c6ff7265b9a5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138711 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-08-23vcl: move ImplEmphasisMarkStyle() to vcl::Font and add unit testChris Sherlock
Change-Id: I958296225c5491a2cd78d64fb16d079272d7c28d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138140 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-07-13loplugin:unusedmethodsNoel Grandin
Change-Id: Ifa9c3fe86e7bad6d3839fd3fdfdb8c1f7b5053c9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137016 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-04-27provide explicit function for hashing vcl::FontLuboš Luňák
It's cleaner than streaming the font and then hashing the result, and it's also faster. Change-Id: I6262e45362d386c21482f1e71be51912f123ee45 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133500 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-04-09add vcl::Font::EqualIgnoreColor()Luboš Luňák
The color values in vcl::Font are obsolete, and the underlying font is the same regardless of the color. Change-Id: I66801a07092bc189f43bf2b28bc54ead6d20f70e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132747 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-07-30drop FontAlign alias of TextAlignCaolán McNamara
Change-Id: If69ce85482fdb7d33d00fb0cf9b4d4609bb92cd1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119681 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-17tdf#127471 correct EMF/WMF im/export for scaled fontArmin Le Grand (Allotropia)
If FontScaling is used, system-dependent data is held at vcl::Font Width(). Already if not scaled, we have three definitions: Width is zero, Width is equal to Height (unx) or - on Windows - Width equals avgFontWidth. If used it is W!=H where on unx Width equals Height multiplied with the scale factor. On Windows, this is Width multiplied with the only there existing avgFontWidth. Unfortunately that is ex/imported (since ever) undetected to EMF/WMF thus making EMF/WMF files containing FontScaling system-dependent - on which system was LO running when creating the file? The error can be seen when loading such a EMF/WMF on the vice-versa system, the FontScale is very ugly and wrong. Since EMF/WMF *are* Windows-specific formats the Windows-like definition is the correct one. This change makes all other systems export that now, and adapt on import to their system- specific definition (assuming coming from Windows). As can be seen, the difficulty is that these adaptions are necessary on non-Windows plattforms, but these do not have that avgFontWidth available. Thus I made a deep-dive investigation and multiple experiments to create a as similar as possible value to apply the needed calculations. For details and discussion refer to the bug description. Change-Id: I983fb6d882e2e8fccf9c8460f01509201d8157f9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111000 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2020-10-21new tools::Degree10 strong typedefNoel Grandin
partly to flush some use of "long" out the codebase, but also to make it obvious which units are being used for angle values. Change-Id: I1dc22494ca42c4677a63f685d5903f2b89886dc2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104548 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-10-19use tools::Long in vclNoel
Change-Id: Ice1055021e8568634e9a66ba89d3bb4ef4e731df Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104522 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-01-17flush out unused Font objectsCaolán McNamara
Change-Id: Ifd6379b2cb6e5945ff509be8dc61c61bd70724c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86938 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2019-08-30new loplugin:noexceptmoveNoel Grandin
idea from mike kaganski look for places where we can mark move operators as noexcept, which makes some STL operations more efficient Change-Id: Id732b89d1fcadd5ceb0ea2b9d159fed06136330f Reviewed-on: https://gerrit.libreoffice.org/78251 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-02-22loplugin:unusedfields in vclNoel Grandin
maStatusText in HelpTextWindow is dead since commit bd3ea40ed49074c4fa4439de7b5dea4fc3161880 Date: Fri Jan 21 14:48:58 2011 +0200 Remove ShowHelpStatusText and HideHelpStatusText and associated cruft Change-Id: I7a74e2a1b909a479f9338bd4da5fad06ccc25283 Reviewed-on: https://gerrit.libreoffice.org/68153 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-11-27tdf#42949 Fix IWYU warnings in include/vcl/[f-h]*Gabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: Ice2eb8c5994bf2ccb88972332ca4a1d3ed41752a Reviewed-on: https://gerrit.libreoffice.org/63826 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2018-10-23Implement IsUnderlineAbove in vcl::FontJan-Marek Glogowski
There was even a duplicate implementation... Change-Id: I192ac2ec8e5b8dd0e6b3ab9b9ddf0bf53df546ab Reviewed-on: https://gerrit.libreoffice.org/62199 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2016-11-29Drop a bunch of font metrics flagsKhaled Hosny
These flags mean nothing these days, there are either always true or always false, since we no longer support bitmap or Type 1 fonts. Change-Id: Ie14ca480225a6346d868a44e58e7666c3a06931d Reviewed-on: https://gerrit.libreoffice.org/31346 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-08-29cid#1371168 Missing move assignment operatorNoel Grandin
Change-Id: I986b94df4aa8158f3e0623ab6cb392c178a820ce
2016-05-20loplugin:unusedmethods in vclNoel Grandin
also drops the CairoFontsCache ref-counting, since nothing was actually using it. Change-Id: If05ecb054b6b8d97b0d3010185cf23c28390ec04 Reviewed-on: https://gerrit.libreoffice.org/25105 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-04-25tdf#62525 vcl: use cow_wrapper for fontXisco Fauli
Change-Id: Ib08d2a20c7b8dab9772c568eb4ccb8e235a30eee Reviewed-on: https://gerrit.libreoffice.org/24308 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2016-02-04vcl: take into account the font width is the average font widthChris Sherlock
I'm changing the Font class function names: - SetSize -> SetFontSize - GetSize -> GetFontSize - SetHeight -> SetFontHeight - GetHeight -> GetFontHeight - SetWidth -> SetAverageFontWidth - GetWidth -> GetAverageFontWidth That's because it really makes no sense to say that there is a single constant font width because obviously proportional fonts don't have one - the best we can do is an average font width, which is what folks like Microsoft sort of do already. On a fixed font, the average is still accurate, for obvious reasons :-) I'm also not a fan of GetSize/SetSize as I find it a might too generic. Change-Id: Ib80a604ba62d6883fd6cbc7994da763976be5c70 Reviewed-on: https://gerrit.libreoffice.org/22069 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-01-31tools: rename FontUnderline to FontLineStyleChris Sherlock
Change-Id: I4750ad8569a1003b2f8c29052f3e25003ee433ca Reviewed-on: https://gerrit.libreoffice.org/21892 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-01-29vcl: add text alignment functions to ImplFont and FontAttributesChris Sherlock
ImplFont and FontAttributes now have GetAlignment and SetAlignment, and I have renamed Font::GetAlign to Font::GetAlignment, and Font::SetAlign to Font::SetAlignment. See commit description in 8bfccd3a71d911b6d ("vcl: Create accessor and mutator for font scaling in FontMetric") for reasoning behind patch. Unit test added to vcl/qa/cppunit/font.cxx to test text alignment. Change-Id: I6272c84fc9416c90616d957d1897eba9469fe7ba Reviewed-on: https://gerrit.libreoffice.org/21876 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-01-22vcl: add orientation flag property to Font classChris Sherlock
Add getter and setter for orientation flag to the Font class. See commit description in 8bfccd3a71d911b6d ("vcl: Create accessor and mutator for font scaling in FontMetric") for reasoning behind patch. Unit test added to vcl/qa/cppunit/font.cxx to test this flag. Change-Id: I62d5a47f870702eeac4625830dd279dd53fbcc3d Reviewed-on: https://gerrit.libreoffice.org/21696 Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com> Tested-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-01-22vcl: add font map names to Font classChris Sherlock
Added getter and setter for font map names to the Font class. See commit description in 8bfccd3a71d911b6d ("vcl: Create accessor and mutator for font scaling in FontMetric") for reasoning behind patch. Change-Id: I3e12c900da6f3abe60ea9c8dc39178fdd3f98bb7 Reviewed-on: https://gerrit.libreoffice.org/21695 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-01-21vcl: add subsettable flag property functions to Font classChris Sherlock
Added getter and setter for subsettable flag property to the Font class. See commit description in 8bfccd3a71d911b6d ("vcl: Create accessor and mutator for font scaling in FontMetric") for reasoning behind patch. Unit test added to vcl/qa/cppunit/font.cxx to test this flag. Change-Id: I2a66f1c4876698e1ffeaf260b2b43d5308b71191 Reviewed-on: https://gerrit.libreoffice.org/21651 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-01-21vcl: rename Font::GetFamily to Font::GetFamilyTypeChris Sherlock
Change-Id: Ie427a43bd126dcdd89c6f66582736e67130f2254 Reviewed-on: https://gerrit.libreoffice.org/21633 Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com> Tested-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-01-21vcl: add embeddable font property functions to Font classChris Sherlock
Added setter and getter for embeddable font property to the Font class. See commit description in 8bfccd3a71d911b6d ("vcl: Create accessor and mutator for font scaling in FontMetric") for reasoning behind patch. Unit test added to vcl/qa/cppunit/font.cxx to test this flag. Change-Id: I7f4ddf09d4a122c7c335b017efcb95f1774ae0d8 Reviewed-on: https://gerrit.libreoffice.org/21650 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-01-20vcl: add built in font property functions to Font classChris Sherlock
Added setter for built-in font property and IsBuiltInFontFlag to Font class. See commit description in 8bfccd3a71d911b6d ("vcl: Create accessor and mutator for font scaling in FontMetric") for reasoning behind patch. Unit test added to vcl/qa/cppunit/font.cxx to test this flag. Change-Id: I61ce33fe6ffb31be22c68ce8a94d0886ebdc8fcf Reviewed-on: https://gerrit.libreoffice.org/21627 Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com> Tested-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-01-20vcl: add more property functions to FontChris Sherlock
Added increase and decrease quality functions to Font class, and also charset mutator and accessor function. See commit description in 8bfccd3a71d911b6d ("vcl: Create accessor and mutator for font scaling in FontMetric") for reasoning behind patch. Unit test change in vcl/qa/cppunit/font.cxx: - enhanced to check increase and decrease quality functions Change-Id: I2f5970438f6ef1ad185163d5fdcec5bbc88912a4 Reviewed-on: https://gerrit.libreoffice.org/21622 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-01-19vcl: add quality accessor & mutator to FontChris Sherlock
Change-Id: I261c717cabf966b8b20b8e6c921b38f4cd73e268 Reviewed-on: https://gerrit.libreoffice.org/21597 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-01-18vcl: font.hxx and metric.hxx cleanup, make ctors explicit and the dtor virtualChris Sherlock
Change-Id: Ic2cf84a07c0050fd655d1b7fb30cdf29e62f919d Reviewed-on: https://gerrit.libreoffice.org/21575 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-01-18vcl: tabify font.hxxChris Sherlock
Change-Id: Id0cff8fa258bcdd8084473b28f7719ba2806c49b Reviewed-on: https://gerrit.libreoffice.org/21574 Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com> Tested-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-01-18vcl: change Font::SetName() to Font::SetFamilyName()Chris Sherlock
Change-Id: I9b7bd1ec25955981ebcb9085579cbb9fbaa802d5 Reviewed-on: https://gerrit.libreoffice.org/21560 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-01-17vcl: rename Font::GetName to Font::GetFamilyNameChris Sherlock
Change-Id: Ie20871a3078bf875c1782b7761d60591a9c9704f Reviewed-on: https://gerrit.libreoffice.org/21529 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-01-16revert vcl patch series that brok Mac and WindowsNorbert Thiebaud
revert: 9bc2f3de8672e812f3a67541c6d7069b434a7e42 vcl: add comment about ImplFontMetric::{Get|Set}LineHeight() 26371f105bc44e04469ec03fc5bb12505e651c6b vcl: FontAttributes::GetSlantType() -> FontAttributes::GetItalic() 2dd0b4317372b8022efe3911b38b4fa02956d8b9 vcl: font.hxx and metric.hxx cleanup, make ctors explicit and the dtor virtual 5ab13bf3ead3539e4ad847656da81e7eb6029652 vcl: tabify font.hxx f99550dae55e40e49bf9c9875053fe2abb4c71ca vcl: change Font::SetName() to Font::SetFamilyName() 2b297116cb6bb1061c43e5714e2609c8ee9f57d2 vcl: rename Font::GetName to Font::GetFamilyName Change-Id: I23f38921187d66b970ca815eb30dda4222a2da62
2016-01-16vcl: font.hxx and metric.hxx cleanup, make ctors explicit and the dtor virtualChris Sherlock
Change-Id: Iab0160bdf664689404ff6fd093b51c0b4d2c4f10 Reviewed-on: https://gerrit.libreoffice.org/21512 Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com> Tested-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-01-16vcl: tabify font.hxxChris Sherlock
Change-Id: Iffe94aa2ff007d7361af7166f489ebfdb7593fc1 Reviewed-on: https://gerrit.libreoffice.org/21511 Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com> Tested-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-01-16vcl: change Font::SetName() to Font::SetFamilyName()Chris Sherlock
Change-Id: I54a4036544c680c4a49607677af776aa7a433fbc Reviewed-on: https://gerrit.libreoffice.org/21510 Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com> Tested-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-01-16vcl: rename Font::GetName to Font::GetFamilyNameChris Sherlock
Change-Id: I83927e0992dfe0a2a79d139818a9f45d3761aae5 Reviewed-on: https://gerrit.libreoffice.org/21509 Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com> Tested-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-01-16vcl: created accessors and mutators for font classesChris Sherlock
Font accessors: - GetFamily() - GetPitch() - GetWidthType() - GetWeight() - GetItalic() - GetName() <--- shouldn't that be GetFamilyName()?!? - GetStyleName() Font mutators did not need to be added. Font unit tests are testing: - Setting and getting FontFamily private member - Setting and getting FontPitch private member - Setting and getting FontWidth private member - Setting and getting FontWeight private member - Setting and getting FontItalic private member - Setting and getting the family name and style ImplFont accessors: - GetFamilyNoAsk() - GetPitchNoAsk() - GetWidthTypeNoAsk() - GetWeightNoAsk() - GetItalicNoAsk() - GetFamilyName() - GetStyleName() (These "NoAsk" functions are necessary because the default getters call on a function that checks the configuration for default values, something that is not wanted in all cases). Change-Id: Icfbc8b4e5253d55a80892df050b0803dfc7d7c9f Reviewed-on: https://gerrit.libreoffice.org/21501 Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com> Tested-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-01-15vcl: add symbol and charset accessors and mutators to FontChris Sherlock
Rules for the vcl::Font class for setting character set and the symbol flag: If the characterset changes to anything other than RTL_TEXTENCODING_SYMBOL then the symbol flag should be off. If the characterset changes to RTL_TEXTENCODING_SYMBOL then the symbol flag should be on. If the symbol flag is set to false and the characterset is already RTL_TEXTENCODING_SYMBOL then set the characterset to RTL_TEXTENCODING_DONTKNOW and set the symbol flag to false. However, if we are setting the symbol flag from false to false (i.e. we know the characterset) then we can keep the characterset as it is. Unit test written in this commit to test this is working. Change-Id: Iced44659ab88ff66b711c560cb68bd4681ecb537
2016-01-12vcl: change from Impl_Font to ImplFontChris Sherlock
Change-Id: I5edacec5c74398777ab0006c0d4e76d7d3050876 Reviewed-on: https://gerrit.libreoffice.org/21376 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-01-10vcl: promote ImplFontAttributes to FontAttributesChris Sherlock
ImplFontAttributes is no longer merely a pImpl (or "compilation firewall", take your pick) but is a fully fledged class in its own right that is used by a number of classes, including FontSelectPattern, LogicalFontInstance and PhysicalFontFace. Thus I'm "promoting" the use of this class in the codebase. Change-Id: I26866080a64796978d1c25efbcd16e3e6f94aaa5 Reviewed-on: https://gerrit.libreoffice.org/21305 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
2015-04-30Get rid of the initial :: for the vcl namespaceTor Lillqvist
We used it all over the place without leading :: already anyway, even in many files in include. So let's be consistent. In the majority of cases, prefer the easier-on-the-eyes choice, not the "safe" one. In those files in include where *all* existing uses of ::vcl:: indeed used the :: prefix, there let's keep it for consistency. Change-Id: If99cb41d3bf290d38c601d91125c3c8d935e61d0
2014-09-18fdo#82577: Handle FontNoel Grandin
Put the VCL Font class in the vcl namespace. Avoids clash with the X11 Font typedef. Change-Id: I1a84f7cad8b31697b9860a3418f7dff794ff6537
2014-06-30Cleanup: removed comments and debugging outputmatteocam
Change-Id: I41f13d33da641153784725344f5bd526ca69542b
2014-06-30Cleaned up code from operations in vclmatteocam
Change-Id: Ica5194f0cf6e30ec099974ae8b794fb2bc5e654a (cherry picked from commit 4445f361aa2730b61fdd339dcdd7014b266e5c42)
2014-06-30Moved Text Filling Color in OutDev. Text Filling occurs in ImplDrawTextmatteocam
Change-Id: I9c75066a8dea32721757d0511a2af58c68408438 (cherry picked from commit b09cf493611f2521e66159287b88acc3c05d6d33)
2014-06-30HasBkg method to Font.HasBkg iff HasSingleUnderline.SetBkgColor in OutputDevmatteocam
Change-Id: I10e6e1b916df0c78d26596a37944e8b57b2897e7 (cherry picked from commit 181266201b5e6aaad1dcd9cbc2dd4db44ecf3dc5)