Commit Graph

14705 Commits

Author SHA1 Message Date
Vadim Zeitlin
c21a9bda7a Replace template function with template class to placate VC6.
VC6 has very poor support for template functions and in particular doesn't
understand explicitly choosing the type of the function to call so replace
template DoApplyToFont() function with FontModifier template class in
wxMarkupParserAttrOutput implementation.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67073 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 14:01:36 +00:00
Vadim Zeitlin
f672c96951 Add markup support to wxOSX/Cocoa wxStaticText and wxButton.
Add wxMarkupToAttrString helper that converts wx markup to OS X attribute
strings and use it in wxStaticText and wxButton.

This required adding new SetLabelMarkup() method to wxWidgetCocoaImpl, it
seems to make sense to have it there as it could be implemented by more
controls in the future.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67069 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:48:46 +00:00
Vadim Zeitlin
83586c2aae No real changes, just make wxColour::OSXGetNSColor() const.
There is no reason to not allow calling this method on const wxColour objects.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67068 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:48:42 +00:00
Vadim Zeitlin
2814e718ba Add markup support to generic wxStaticText implementation.
wxMarkupText allows to easily support markup in the controls that we draw
ourselves so use it in wxGenericStaticText to have a possibility to use
markup on all platforms, even those where there is no native markup support in
wxStaticText itself.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67067 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:48:38 +00:00
Vadim Zeitlin
de1cc37868 Implement support for markup labels for wxGTK wxButton.
Simply directly set the markup for the GtkLabel used by GtkButton internally.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67066 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:48:30 +00:00
Vadim Zeitlin
95912bddde Add markup support to wxMSW wxButton and show it in the sample.
Use recently added wxMarkupText to implement support for markup in wxMSW
wxButton.

Update the button page of the widgets sample to show markup support.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67065 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:48:26 +00:00
Vadim Zeitlin
c27126c7bc Add generic wxMarkupText class implementing handling of markup.
wxMarkupText is a private class that implements generic handling of markup
strings, i.e. can measure them and render them onto a wxDC.

This class will be used for markup support in wxMSW wxButton.

Also add wxMarkupParserAttrOutput which will be useful for other wxMarkupText
implementations.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67064 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:48:21 +00:00
Vadim Zeitlin
e29bf4b056 Add wxDC::GetFontMetrics() and implement it for wxMSW.
Add a new wxDC method allowing to retrieve the font characteristics not
available from GetTextExtent(), notably the internal leading (and also the
average font width).

Currently this is implemented for wxMSW only, the internal leading is always 0
in the other ports.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67063 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:48:13 +00:00
Vadim Zeitlin
f5bdfc69a5 Add wxUSE_MARKUP and wrap SetLabelMarkup() in it.
Make it possible to disable all the new markup-related code by setting
wxUSE_MARKUP to 0 in setup.h or using configure --disable-markup option.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67062 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:48:07 +00:00
Vadim Zeitlin
98977bf454 Initialize wxButton::m_authNeeded in ctor and not Create() in wxMSW.
Ensure that the member is always initialized as calling GetAuthNeeded() for a
default-constructed button would access a non-initialized variable before.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67058 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:47:43 +00:00
Vadim Zeitlin
6af59fe7f4 No changes, just do wxButton fields initialization in Init() in wxMSW.
Add a helper function called from ctors and initialize m_imageData in it
instead of doing it in each ctor -- this will be more important when we add
more wxButton members.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67057 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:47:36 +00:00
Vadim Zeitlin
3b5651af39 No changes, just move wxMSW wxButton::MakeOwnerDrawn() around.
Put this method in the existing private section at the end of the class
instead of having an extra access specifier just for it for some reason.

Also add a comment explaining what it does and when is it used.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67056 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:47:31 +00:00
Vadim Zeitlin
3da9cffc79 Replace wxST_MARKUP style with wxControl::SetLabelMarkup().
This is an incompatible change which removes the wxStaticText-specific
wxST_MARKUP style and adds wxControl::SetLabelMarkup() replacing it.

It doesn't actually change anything yet but it simplifies wxStaticText code a
lot by getting rid of many markup-related functions in it which had to behave
differently depending on whether wxST_MARKUP was used or not and also paves
way for adding markup support for the other controls in the future.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67055 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:47:26 +00:00
Vadim Zeitlin
19da7aaa9b Add wxFont::SetSymbolicSize() and SetSymbolicSizeRelativeTo().
These methods allow to set the font size using CSS-like absolute size
specifications.

Notice that the factors used here are incompatible with (but better than) the
ones used in wxBuildFontSizes() in src/html/winpars.cpp. In the future it
would be nice to reuse the new wxFont functions in wxHTML code.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67052 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:47:05 +00:00
Vadim Zeitlin
801423ee34 Add wxFont::Underlined() and MakeUnderlined() methods.
Add two more helpers for consistency with the existing methods such as Bold()
and MakeBold().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67051 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:46:59 +00:00
Vadim Zeitlin
0d0fdaacf8 Use wxMarkupParser in wxStaticText for dealing with markup.
No real changes, just remove markup parsing code from wxStaticText
implementation and reuse wxMarkupParser methods there instead.

This makes include/wx/private/stattext.h file unnecessary as it is used only
in a single place now so remove it and move its remaining contents to
src/gtk/mnemonics.cpp.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67050 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:46:55 +00:00
Vadim Zeitlin
5eb051a73b Add wxMarkupParser::Strip().
This helper function strips all markup tags from the string (and also decodes
the XML entities in it).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67049 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:46:48 +00:00
Vadim Zeitlin
9bb9964e26 Add a class for parsing simple markup.
This code is not used anywhere yet, this commit only adds the parser for the
markup and the related classes as well as the corresponding unit test.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67048 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:46:42 +00:00
Vadim Zeitlin
b1bf7dc722 Add a simple wxStack<> template class based on wxVector<>.
This is still simpler than std::stack<> which can be used with any container
and not just wxVector<> but better than the WX_DECLARE_STACK() macro which was
all that we had before.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67047 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:46:34 +00:00
Vadim Zeitlin
af07be96eb Don't use wxTE_PROCESS_ENTER in wxSpinCtrlGeneric.
We don't need to catch Enter presses to generate spin control events as we do
it anyhow when we lose focus. So simply remove the Enter handling code
entirely (it could be used to generate wxEVT_COMMAND_TEXT_ENTER events but we
don't generate them nor wxEVT_COMMAND_TEXT_UPDATED at all currently in the
generic version).

Closes #12980.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67031 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-26 17:46:54 +00:00
Julian Smart
706465df1f Applied #12941: Fixes and enhancements for wxRTC (Robert Hoffman)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67020 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-25 11:37:20 +00:00
Julian Smart
887b919bde Added wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT to fix tree and list control selection rendering.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67018 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-25 09:38:35 +00:00
Vadim Zeitlin
d70fe85f46 Handle ANSI release configuration correctly in msvc/wx/setup.h.
Preprocessor operations don't work with empty values so check for the case of
empty suffix specially.

This avoid warnings about "not enough actual parameters for macro
'wxSTRINGIZE_HELPER'" from MSVC.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67015 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-24 20:34:48 +00:00
Stefan Csomor
f18b5ee74c supporting content size scaling (retina display)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67001 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-22 18:51:10 +00:00
Vadim Zeitlin
6235846c0c Don't duplicate INVALID_FILE_ATTRIBUTES definition.
Move it in wx/msw/missing.h header instead of defining it in two different
places.

Closes #12964.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66996 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-22 13:26:06 +00:00
Vadim Zeitlin
b8b9e48c51 Put storage class outside WXDLLIMPEXP_DATA_CORE() macros.
The storage class must come first in a declaration so put it in front of
WXDLLIMPEXP_DATA_CORE() and not inside it to avoid warnings from some
compilers (notably Intel one).

Closes #12932.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-22 13:25:51 +00:00
Vadim Zeitlin
58d424d7e1 Remove duplicated control names strings declarations from wxOSX.
There is no need to declare wxFooNameStr constants in wx/osx/foo.h files as
they are already declared in wx/foo.h.

Also remove a couple of header/forward declarations unnecessary for the same
reason.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66993 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-22 13:25:38 +00:00
Vadim Zeitlin
4add61fd8b Move wxCheckBoxNameStr declarations to wx/tglbtn.h from wx/port/tglbtn.h.
Don't duplicate wxCheckBoxNameStr declarations in all ports.

Of course, the question still remains why does wxToggleButton use
wxCheckBoxNameStr and not a specific name in the first place.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66992 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-22 13:25:30 +00:00
Vadim Zeitlin
9204fde6ee Add wxT_2() macro for compatibility with wxWidgets 2 API.
This macro can be used to make the same code compile with both v2 and v3 as it
expands to wxT() in 2.8 and nothing in later versions.

See #12925.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66968 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-19 13:44:19 +00:00
Vadim Zeitlin
1244d2e07f Add wxAutomationInstance_SilentIfNone flag for wxMSW OLE code.
This flag allows to suppress the error message in case there are no currently
running instances of this object and can be useful if the caller doesn't know
in advance whether it's available or not.

Closes #12734.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66967 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-19 12:33:08 +00:00
Vadim Zeitlin
d65e9d5707 Move "static" keyword out from wxDEPRECATED() macros to placate icc.
Intel compiler gives warnings if the static keyword is not at the beginning of
the declaration and this happened when using it inside wxDEPRECATED() and
related macros because the declaration started with __declspec(deprecated) or
__attribute__((deprecated)) instead.

To avoid this problem, simply move "static" outside the macro.

Closes #12932.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66966 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-19 12:32:59 +00:00
Vadim Zeitlin
1b3b63ed5b Don't accept invalid values for rows/columns in wxGBSpan ctor.
wxGBSpan must have strictly positive row and column span as otherwise the grid
bag sizer code could enter an infinite loop trying to exceed a negative number
which it casted to an unsigned one. And while the cast itself is incorrect too
the program still behaves undesirably (produces a lot of asserts in debug
build and then crashes or crashes directly in release) if a zero size span is
used so it seems better to prevent this from happening.

Closes #12934.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66964 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-19 12:32:48 +00:00
Vadim Zeitlin
2de611305e Compilation fix for PCH-less wxOSX build.
Forward declare wxChoice.

Closes #12953.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66959 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-19 00:30:18 +00:00
Stefan Csomor
490315f9b4 bail out with error in case of carbon set for 64 bit architecture
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66955 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-18 18:44:43 +00:00
Stefan Csomor
a37e1f0e83 updating sysopt string
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66953 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-18 17:48:39 +00:00
Stefan Csomor
13390af486 support for file-type popup, compatible for 10.4+, solves #12429
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66952 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-18 17:29:31 +00:00
Vadim Zeitlin
00a73a8de6 Remove WXDLLIMPEXP_CORE from VC6 wxCompositeWindow declaration.
Hopefully not using WXDLLIMPEXP_CORE here should fix VC6 warnings about using
non dll-interface class as a base class for a dll-interface one.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66931 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-16 23:45:04 +00:00
Vadim Zeitlin
f4d084afda Don't use native MSW wxProgressDialog version in wxUniv.
The native version should only be used in the native port.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66930 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-16 23:45:00 +00:00
Stefan Csomor
f1f5ddd755 toolbar support in all orientations
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66906 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-16 18:31:16 +00:00
Stefan Csomor
baac715443 toolbar support in all orientations
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66905 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-16 18:30:55 +00:00
Stefan Csomor
ca9adee47f remove ununsed member
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66904 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-16 16:37:24 +00:00
Mattia Barbon
d20dfbf04b Fixed compilation when WXINTL_NO_GETTEXT_MACRO is defined.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66897 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-15 20:31:19 +00:00
Vadim Zeitlin
1e43584aa7 Don't make buttons with images too wide in wxMSW.
We used to increase the button size to the standard size first and then add
the extra padding the buttons with images. This resulted in too much padding
for the buttons with short text labels and images.

Instead, add the padding for the image first and only then increase the button
size to the standard one if still needed.

See #12924.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66892 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-14 22:12:10 +00:00
Vadim Zeitlin
65034d07ed Clarify wxButton::AdjustForBitmapSize() semantics in wxMSW.
This method should only be called if we do have an image, assert (instead of
silently returning) if it's called when we don't.

Also explain in a comment why do we need to call CacheBestSize() only when we
have an image in DoGetBestSize().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66890 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-14 22:11:58 +00:00
Vadim Zeitlin
31b81622d3 Remove X11-specific wxWindowIsVisible() from common Unix file.
XGetWindowAttributes() used in this function resulted in link problems under
Fedora 14 because we don't explicitly link with libX11. Instead of doing this,
simply get rid of this function as it seems to be used in exactly one place in
wxX11 code only anyhow.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66885 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-14 12:30:43 +00:00
Václav Slavík
1d065710d3 Remove "safety margin" from wxControl::Ellipsize().
When ellipsizing kicks in, the text is much shorter than the available
space -- there's a "safety margin" of one character's width that is
always left unused. This appears to be some kludge that worked around
algorithm defects, not something that should really be needed.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66870 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-09 19:51:47 +00:00
Vadim Zeitlin
e4c903b2ea Fix wxWrapSizer minimal size calculation.
Add a unit test checking that wxWrapSizer::CalcMin() returns the expected
results.

Closes #12464.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66862 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-08 13:36:13 +00:00
Vadim Zeitlin
302674fe17 Use better title by default in wxDocPrintout.
Use the document name instead of the default "Printout" if no title is
explicitly specified when creating wxDocPrintout.

Closes #12885.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66852 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-06 01:01:09 +00:00
Vadim Zeitlin
a5c468483d Allow accessing 64 bit registry from 32 bit MSW code and vice versa.
Implement support for KEY_WOW64_32KEY and KEY_WOW64_64KEY in wxRegKey code.

Closes #10792.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66851 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-06 01:01:01 +00:00
Vadim Zeitlin
0a12e013f5 Deprecate second parameter of wxSlider::SetTickFreq().
This parameter was never needed nor properly documented. Simply remove it from
SetTickFreq() and keep the overload still taking it for backwards
compatibility only.

Closes #12907.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66844 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-05 16:36:30 +00:00