142 Commits

Author SHA1 Message Date
Vadim Zeitlin
b040dab0ca Add wxUSE_PRIVATE_FONTS and drop wxHAS_PRIVATE_FONTS
Handle this feature as all the other ones and provide a configure switch
and a setup.h option to disable it if necessary, as it may be desirable
to do it, especially under Linux, to avoid extra dependency on pangoft2
if this functionality is unnecessary.
2017-11-24 22:56:17 +01:00
Vadim Zeitlin
a98c51e6bc Check for pangoft2 >= 1.38 in configure too
We need to use PKG_CHECK_MODULES(pangoft2) anyhow because we need to
link with its libraries, so make the version check there too and
simplify wxFont::AddPrivateFont() implementation in wxGTK.
2017-11-14 15:27:49 +01:00
Vadim Zeitlin
283f5a4d56 Remove useless wxFont::ActivatePrivateFonts()
Just "activate" the font immediately when adding it using
AddPrivateFont(), nothing seems to be gained from having two functions
and it just makes things more complicated both when implementing and
when using the API.
2017-11-13 22:29:30 +01:00
Vadim Zeitlin
c9d1f9a719 Clean up FcConfig object on library shutdown
Don't just leak it as was done before.
2017-11-13 22:29:30 +01:00
Vadim Zeitlin
d99a255e98 Fix private fonts support in wxGTK
Use pango_fc_font_map_set_config() to associate the FcConfig containing
the private fonts with the global Pango context to make them available.

Also use FcInitLoadConfigAndFonts() instead of just FcConfigCreate() to
initialize the new config with all the default fonts instead of just
using our private fonts in it.
2017-11-13 22:29:30 +01:00
Vadim Zeitlin
ac4f99fa0d Test for FontConfig availability in configure when using wxGTK
This library is now needed in order to implement wxFont private font
methods.
2017-11-13 22:29:29 +01:00
Arthur Norman
547e40b114 Add support for loading fonts from files.
wxFont::AddPrivateFont() can now be used to load a font from a file for the
applications private use. Update the font sample to show this.

Closes #13568.
2017-11-13 22:29:28 +01:00
Vadim Zeitlin
07380ba0b5 Copy fonts more faithfully and efficiently in wxGTK
Use pango_font_description_copy() to copy fonts instead of
pango_font_description_to_string() and pango_font_description_from_string()
via wxNativeFontInfo::{To,From}String() respectively.

This is not only more efficient but also preserves the original family whereas
wxNativeFontInfo::FromString() helpfully replaces any fonts it doesn't know
about with the normal font name. That behaviour is probably wrong on its own,
but for now at least avoid silently changing fonts when copying them.
2015-09-16 03:39:07 +02:00
Vadim Zeitlin
bd30752410 Just deprecate but don't schedule for removal wxNORMAL and friends.
Deprecate the use of the old untyped constants but don't schedule them from
removal in a future wx version by removing "#if WXWIN_COMPATIBILITY_3_0" tests
around their definition and use. Provoking deprecation warnings in the code
using these constants is worth it as they are unclear and it's easy to make
mistakes when using them, but breaking this code compilation outright can't be
justified -- even in the future.

Also use more informational wxDEPRECATED_MSG() instead of a simple
wxDEPRECATED() as it might not be obvious at all how should the code be
updated exactly.

Finally, avoid the use of deprecated constants inside the library itself.

As a side effect, this closes #15814.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75565 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-01-06 12:42:37 +00:00
Paul Cornett
e4d0bc4bb1 don't need Pango workaround code with GTK+3
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75170 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-11-10 18:35:47 +00:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
Vadim Zeitlin
b960795ea8 Add wxFontInfo class to allow using named parameters for wxFont creation.
This helper class allows to create wxFonts using shorter and more readable
code, e.g.

	wxFont font(12, wxFONTFLAG_DEFAULT,
		    wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, true,
		    "DejaVu Sans");

can now be written simply as

	wxFont font(wxFontInfo(12).FaceName("DejaVu Sans").Underlined());

Remove the ctor from font flags added in r70445 as it's not needed any longer
now that we have this one and adding it resulted in compilation errors in the
existing code which compiled with 2.8 because of ambiguities between that ctor
and wxFont(int size, int family, int style, int weight. bool underlined, ...)
one, e.g.

	wxFont(12, wxFONTFAMILY_SWISS, wxNORMAL, wxNORMAL)

didn't compile any more but it does compile again now.

See #9907.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73885 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-04-30 10:27:38 +00:00
Vadim Zeitlin
a349dc1085 Handle underlined and strikethrough attributes in wxGTK native font info.
These attributes were not handled by wxFont::GetNativeFontInfoDesc() as it
only serialized the Pango font description which doesn't support them.

Fix this by handling these attributes explicitly and prepending them to the
Pango font string if necessary.

Closes #14559.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72488 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-15 23:17:12 +00:00
Vadim Zeitlin
cba4e486a4 Take into account wxFONTFLAG_STRIKETHROUGH in wxGTK wxFont ctor.
Honour wxFONTFLAG_STRIKETHROUGH in wxFont ctor taking flags as this is the
only way to create a strike-through font currently.

See #14559.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72487 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-15 23:16:46 +00:00
Paul Cornett
99f8cf22db move Pango underline workaround into wxFont::GTKSetPangoAttrs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70476 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-29 08:14:34 +00:00
Paul Cornett
c7e99122a0 move SetPangoAttrsForFont to wxFont
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70475 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-29 08:00:15 +00:00
Vadim Zeitlin
c7a49742ec Add support for stricken-through fonts.
Support stricken-through fonts in wxMSW and wxGTK (including special support
in wxStaticText and wxTextCtrl).

Closes #9907.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70446 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-23 11:28:28 +00:00
Vadim Zeitlin
0634700a96 Add wxFont ctor taking a single flags argument instead of style/weight/...
Currently this ctor just does the same thing as the existing ctors in a
different way but it will be extended to support wxFONTFLAG_STRIKETHROUGH in
the next commits.

See #9907.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70445 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-23 11:28:21 +00:00
Stefan Csomor
46b03af7ae common rtti in fontcmn.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66641 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-07 22:01:22 +00:00
Paul Cornett
081d8d96db Move wxColourData and wxFontData into separate files.
This eliminates a linking dependency that would drag in the printing
code for any program that used wxColourDialog or wxFontDialog (which
is currently all of them, due to more link dependencies...)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66615 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-07 05:26:57 +00:00
Vadim Zeitlin
59b7da02ff Return wxFONTFAMILY_DEFAULT, not UNKNOWN, from wxFont::GetFamily().
Although returning wxFONTFAMILY_UNKNOWN when the font family is not recognized
makes more sense, it breaks a lot of existing code including all the
font-related code generated by DialogBlocks, so prefer to return
wxFONTFAMILY_DEFAULT instead -- which can't be confused for a valid font
family neither but can be passed to wxFont ctor or SetFamily() without
problems.

To ensure that this behaviour is correctly implemented by all ports, rename
the existing wxFont::GetFamily() to DoGetFamily() and call the new method from
wxFontBase::GetFamily() which adjusts the return value if needed.

Closes #12330.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65670 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-29 13:46:09 +00:00
Vadim Zeitlin
8462a84b2c Removed wxFont::Set/GetNoAntiAliasing() implementations.
Most of them were dummy and didn't do anything and this API was never meant to
be used anyhow.

Keep just the declarations in wxFontBase but mark them as deprecated.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62349 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-09 13:04:59 +00:00
Vadim Zeitlin
03647350fc No changes, just removed hard tabs and trailing white space.
This commit is huge but there are no non-white-space changes in it.

Some files containing third-party sources (src/msw/wince/time.cpp,
src/x11/pango*.cpp) were left unchanged.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61724 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-21 10:41:26 +00:00
Francesco Montorsi
7ce58684a4 don't return whatever encoding was set in SetEncoding(); always return wxFONTENCODING_UTF8 instead since that's the real encoding always used by wxFont under wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60158 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-14 23:18:50 +00:00
Francesco Montorsi
6aea1e4a70 implement wxNativeFontInfo::SetFamily for wxGTK with the same logic used by wxMSW; remove the now useless m_family from wxGTK's wxFont implementation; better docs for many wxFont functions (don't use typeface term; use the 'face name' one instead) and wxFontFamily
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60119 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-12 22:53:26 +00:00
Francesco Montorsi
34be948fdb no real change; just fix the argument name of the wxFont(const wxString&) ctor under wxGTK since it was misleading
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60112 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-12 16:06:43 +00:00
Francesco Montorsi
ecde8361cc update wxGTK font implementation removing useless functions dating to wxGTK1 (HasNativeFont() always == true in wxGTK2)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59819 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-24 21:18:15 +00:00
Francesco Montorsi
b5791cc7af add the wxFont(const wxSize& pixelSize, ...) ctor to all ports; add some wxCHECK_MSGs to ensure that the wxSize objects contains non-negative arguments; document that passing zero for the width parameter is allowed; other minor doc fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59564 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-15 16:28:33 +00:00
Vadim Zeitlin
d3b9f782ef don't use annoying and unneeded in C++ casts of NULL to "T *" in all other files neither
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-19 13:55:27 +00:00
Francesco Montorsi
0c14b6c324 fix the incoherence pointed out by ifacecheck between wx docs, that documents usage of the wxFontFamily, wxFontStyle and wxFontWeight enums in wxFont setters and getters, and the actual sources, which use 'int' instead; provided the same backward-compatibility pattern already used for wxBrush,wxPen both against 'int' overloads and against the wxDeprecatedGUIConstants enum values
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56664 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-03 17:02:25 +00:00
Vadim Zeitlin
5c33522fca replace wx_{const,static,reinterpret}_cast with their standard C++ equivalents
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-02 02:39:52 +00:00
Mart Raudsepp
b35388de3e Remove declaration of wxScaledFontList wxHashMap, as that's used only in gtk1 port
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50957 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-31 06:49:23 +00:00
Vadim Zeitlin
8f884a0dcc Fix Ok/IsOk() mess in wxGDIObject-derived classes; also added
wxGDIObject::Create/CloneGDIRefData() and implemented them for (almost) all
ports


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50727 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-15 17:54:20 +00:00
Vadim Zeitlin
295ebfd081 don't return wxFONTENCODING_DEFAULT from wxFont::GetEncoding(), this results in asserts when its return value is used with wxCSConv (and besides this should never happen anyhow, wxFONTENCODING_DEFAULT makes sense on input only)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45188 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-31 15:10:20 +00:00
Vadim Zeitlin
30083ad8e7 Support encodings in wxGTK_CONV_BACK() in the same way as we do it in
wxGTK_CONV(), i.e. return the string containing text in ISO-8859-1 encoding
and not UTF-8 if the controls font was set to have ISO-8859-1 encoding


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44577 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-02-27 15:41:56 +00:00
Václav Slavík
68c957045a don't expose M_FONTDATA in public header
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43545 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-11-20 16:21:08 +00:00
Václav Slavík
873fd4af5f don't expose M_FONTDATA in public header
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43544 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-11-20 16:14:01 +00:00
Paul Cornett
fd7a7443bc use common AllocExclusive, rather than custom code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42072 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-17 04:20:47 +00:00
Vadim Zeitlin
177df6c5f6 wxUSE_PANGO is always 1 for wxGTK2 so there is no need to use #if wxUSE_PANGO in GTK2-only code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40136 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-07-16 20:00:42 +00:00
Włodzimierz Skiba
dd05139a80 Include wx/gdicmn.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39797 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-06-19 20:18:46 +00:00
Vadim Zeitlin
85ab460e7d miscellaneous wxFont enhancements (patch 1496606):
- made SetFaceName() bool and return false if the face name is not available
- corrected To/FromUserString() to complement each other


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39411 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-05-29 00:03:36 +00:00
Włodzimierz Skiba
ce5d92e150 Include wx/cmndata.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39337 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-05-25 21:08:11 +00:00
Włodzimierz Skiba
9eddec696f Include wx/settings.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39310 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-05-24 07:16:32 +00:00
Włodzimierz Skiba
de6185e212 Include wx/utils.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38972 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-05-02 10:39:23 +00:00
Włodzimierz Skiba
e4db172a3b Include wx/log.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38920 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-04-26 08:21:31 +00:00
Vadim Zeitlin
5f11fef543 use the encoding of the font which is used to draw the text when convering it to UTF-8 in wxGTK_CONV; the old wxGTK_CONV renamed to wxGTK_CONV_SYS (uses system encoding) and used in the contexts where no font is available
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38661 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-04-10 22:22:13 +00:00
Vadim Zeitlin
f8855e4725 great copy ctor/assignment operators cleanup by Paul Cornett (patch 1307665)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37402 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-02-09 00:51:23 +00:00
Mart Raudsepp
68567a967b Nuke GTK1 from src/gtk
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37056 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-01-22 20:29:17 +00:00
Mart Raudsepp
8907154c1a Nuke #pragma implementation/interface's
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-09-23 12:56:45 +00:00
Mart Raudsepp
d332c51456 [wxGTK2] Don't duplicate code inside wxFontRefData::InitFromNative()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35294 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-08-24 00:25:19 +00:00