Use some arbitrary but relatively large width and height instead of falling
back to wxControlBase best size computation which, at least in wxGTK, simply
returns (1, 1) resulting in list control of unusably small size.
This is, of course, still far from ideal and we should really use the items to
calculate the best width but it at least allow the list control in the generic
log dialog to be shown correctly in wxGTK.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71733 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Verify that we do have a valid TLW parent: even though this normally should be
always the case, it might not be when the window is being created or destroyed,
see #14355.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71731 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Don't process WM_ERASEBKGND if we're being destroyed. This is at best useful
and at worst harmful as we currently crash in wxStaticBox::GetClientSize() if
there is no valid TLW parent.
Closes#14355.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71730 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This resulted in double border around wxListCtrl contents in wxOSX and almost
certainly other ports except wxGTK for which we already had an explicit
preprocessor check in the generic list control code. Remove it and simply
don't use any wxListCtrl-specific styles, including borders, for its main
window as it doesn't make any sense.
Closes#3701.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71724 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Handle creating nested TreeItemUnlocker objects correctly. This fixes the
problem when a wxTreeCtrl method unlocking some item is called with another
item is already unlocked, e.g. from a selection changed event handler.
Closes#14400.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71723 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Use wxString::FromUTF8() and utf8_str() instead of directly using wxConvUTF8
as this is simpler and also works correctly in non-Unicode build (and more
efficiently in UTF-8 build as no conversion is done there).
Do not allocate -- and leak -- buffer in wxHTMLDataObject::GetDataHere(),
we're supposed to be putting data into the caller-provided buffer instead of
using our own.
Closes#14391.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71712 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Passing the window itself as IsDescendant() argument for a top level window
resulted in a NULL pointer dereference. Fix this and also simplify the
function code by not using the parent window before checking it's !NULL.
Closes#14387.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71702 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
"LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent."
Avoid calling gtk_widget_destroy() on a wxMenuBar attached to a frame
Fixes#14292
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71648 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
GtkLabel perversely does not use its actual size to do layout, but will use its
size request. So restore calling gtk_widget_set_size_request() for all widgets,
which was removed in r71465. See #14374
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Show the "extension button" in the ribbon panel if this style is specified.
Also generate a specific event if this button is clicked.
Closes#14283.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71642 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Use t_str() instead of wx_str() to make the code work correctly in UTF-8 build
in which wx_str() returns a pointer to UTF-8 buffer while we need a wchar_t
pointer for Windows.
Closes#14371.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71640 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
When UpdateOldSelections() is called from wxListBox::DoClear(), it must clear
the old selections array even for single selection list boxes, but it didn't
do this under non-MSW platforms.
Specifically check for the case of an empty listbox now and just forget the
old selections then. This fixes the problem of keeping stale old selections
and is also more efficient as we avoid the unnecessary GetSelections() call.
Really closes#14359.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71637 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add macros hiding the ugly casts needed to pass wxStrings to Windows API
functions and use them in a couple of places in wxBase to simplify the code.
Closes#14338.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71636 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Don't keep stale selected item indices in m_oldSelections after clearing the
listbox, call UpdateOldSelections() from DoClear() in wxGTK just as we do in
the other ports.
Closes#14359.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71626 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxDynamicCast() is less verbose (due to the absence of "CLASSINFO") and more
compatible with the standard dynamic_cast<>, so prefer to use it when possible.
See #14356.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71624 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
It's completely useless to check that an object is of its own statically
declared type as this is always true, simply don't do it.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71623 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Objects of this type are either always of wxPopupTransientWindow type, in
which case just a static_cast<> is enough and we don't need a dynamic one, or
is never of its type in which case this code shouldn't be compiled and if it
is, then static_cast<> will correctly fail preventing it from compiling.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71622 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This is harmless but also useless as the previous event handler of a wxWindow
is always NULL anyhow, so simply don't do this. This is consistent with
PushEventHandler() which doesn't call SetPreviousHandler() for the window
itself neither.
Closes#14353.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71621 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Make the control just wide enough to fully show the contents of its text part.
This is still not ideal as we don't take into account wxComboCtrl internal
complications but better than before.
Closes#14342.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71579 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This method draws only the grid lines for the cells in the specified range and
not for all of them.
It is not used yet but will be by the upcoming wxGrid::Render(), see #14294.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71576 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Extract the actual drawing of the lines into a new DoDrawGridLines() method.
This will be used by the upcoming commits for drawing grid lines for a part of
the grid only, see #14294.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71575 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Use wxVector<>, wxBasicString and wxOleVariantArg instead of raw arrays, BSTR
and VARIANT to ensure that different objects allocated by this function are
always freed when it exits.
Closes#14293.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71574 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxPluginLibrary objects had to be unloaded in exactly the reverse order to
which they were loaded in. This was not documented and was a serious
limitation for any realistic use of plugins anyhow, so fix it and allow
unloading them in any order now.
Instead of keeping a pointer to the last wxClassInfo not created by this
plugin, now keep a pointer to the first wxClassInfo that was created by it.
This makes the code slightly more complex but this pointer, unlike the old
one, remains valid even if another plugin was unloaded.
Closes#14261.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71571 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
No changes, just make the code simpler and more obviously correct by using a
helper class to create and fill the SAFEARRAY that we create.
Closes#14296.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71570 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The implementation of wxRendererXP::DrawChoice() inadvertently used
wxRendererMSW::DrawComboBoxDropButton() and so drew the button in the classic
and not themed style.
Fix this by defining DrawChoice() in the base wxRendererMSWBase class and
reusing it in wxRendererXP via inheritance and not composition.
Closes#14337.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71569 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Do not delete the client data in wxDataViewListCtrl, this class mainly exists
for compatibility with wxListCtrl and as the latter doesn't delete its client
data, neither should the former.
See #11088.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71561 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxAuiNotebook already inherits perfectly workable AdvanceSelection() and
GetCurrentPage() methods from wxBookCtrlBase, no need to reimplement them in
it.
See #14309.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71560 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxControlContainer::SetLastFocus() propagated wxChildFocusEvent explicitly to
its parent but this is not needed because wxChildFocusEvents propagate by
default, being derived from wxCommandEvent. And doing it again resulted in the
total number of events increasing exponentially with the depth of the window
hierarchy and real performance problems due to processing all of them.
Closes#14310.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71559 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Do the same changes as were done in r71540 to GetSelectedTextRaw() in
GetSelectedText() itself by modifying the code in gen_iface.py that generates
it.
Closes#14331.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71556 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Correct errors in TransformPoint() and TransformDistance().
Change Rotate() to interpret positive angles as rotating clockwise, for
consistency with wxGraphicsContext::Rotate().
Improve the unit test to verify that all the transformations work correctly.
Closes#14334.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71555 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Use SCI_GETSELTEXT to compute the size of the buffer instead of doing it
ourselves, especially as we do it incorrectly in case of rectangular
selection.
Closes#14331.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71540 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Removal from the simply linked list of event filters wasn't done correctly as
the pointer to the previous node was never updated.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71538 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Clang warns about using letters and digits in a switch on wxKeyCode enum which
doesn't include them as elements. This is generally useful but really annoying
in this case, especially due to the sheer number of warnings, so disable it
using Clang-specific pragma.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71518 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
A library using wxWidgets linked with 10.6 SDK might be loaded into an
application loading 10.5 version of AppKit in which case 10.6-specific
functions shouldn't be used. Check for the AppKit version effectively in use
instead of just checking for the system version.
Closes#13831.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71515 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Change the internal flag to wxDIALOG_MODALITY_NONE before sending
wxEVT_WINDOW_MODAL_DIALOG_CLOSED event. This ensures that if the dialog is
shown again from this event handler it works correctly.
Closes#13951.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71514 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The control remained associated to the model so a dangling pointer could be
used if the model was destroyed after the control.
Fix this by removing the control from the model list of notifiers when it is
destroyed.
Closes#14124.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71511 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Don't use wxDEFAULT, there is no match for wxFont ctor taking wxSize and it,
use wxFONTFAMILY_DEFAULT instead.
Also remove the unnecessary .c_str() from the same wxFont ctor call, there is
really no reason at all to have it there.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71507 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fixed composite object positioning in centred and right-aligned
paragraphs.
Added field example to sample, and enabled pixel font size selection.
Added custom text and dimension scaling.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71505 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Define the "unused" variable unless wxLogDebug() calls are variadic macros
(not evaluating their arguments at all) and not functions.
Fixes compilation broken since r71466.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71502 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Restore explicit conversion of wxString to char*, there is no implicit
conversion in wxUSE_STL build.
Use utf8_str() instead of c_str() removed by r71467 however as this is what we
need for wxGTK.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71501 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This signal has been removed from GTK3. Instead have wxPizza keep track of child
size, and use gtk_widget_set_size_request() for wxWindows in native containers.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71465 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Initialize m_pipeIsEmpty to true as we don't have anything in the pipe
initially and if this variable was false, nothing was ever written to the wake
up pipe and it was never set to true as nothing was read from it neither.
Closes#14166.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71442 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
We need to process GDK_PROPERTY_NOTIFY events when yielding for
wxEVT_CATEGORY_CLIPBOARD, otherwise we never receive large selections.
As GDK_PROPERTY_NOTIFY can be also used for non-clipboard stuff, exceptionally
assign 2 categories to it and process it in either case.
Closes#14284.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71439 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This allows to call COM methods taking arrays of strings easily.
Also remove support for the old and non-existent any more "stringlist" variant
type.
And add more error checking.
Closes#14296.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71437 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Make the function more efficient when using UTF-8 wxStrings by using iterators
instead of indices in the loop searching for "&".
Closes#14307.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71434 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Don't try to process any remaining pending events in ProcessEvents() itself as
this was inconsistent: we only processed low-level toolkit pending events in
the main event loop itself if the loop was exited from a normal event handler
but only processed the wxApp-level pending events if it was exited from a
pending event handler. It also required more code than the new version that
simply processes all the remaining pending events, of both kinds, after the
main event loop termination.
This corrects changes of r71304 and replaces those of r71329.
Closes#14250.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71432 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Assign wx2stc() return value to a suitably const variable instead of using
ugly casts to get rid of constness.
Also use wxCharBuffer/char* explicitly inside explicit wxUSE_UNICODE checks,
using wxWX2MBbuf here doesn't gain us anything and just confuses the reader of
this code.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71429 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The value returned by wx2stc() in non-Unicode build is a simple "char*" and we
can't call length() method on it, add a helper wx2stclen() function to get the
length from the original wxString itself in this case.
Closes#14013.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71428 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
An item in a column using wxDataViewIconTextRenderer might not have any valid
icon associated with it, don't assert in case it doesn't in the native GTK
version.
Notice that the generic wxDataViewCtrl implementation already supports this
but not perfectly: no space is reserved for the icon in the images without
one, so giving the image to only some of them looks ugly. The GTK version
aligns both the items with and without icon properly and simply leaves the
image part blank and it would be better to modify the generic version to do
the same thing in the future.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71427 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The generic version of wxDataViewCtrl tried to put all branches before the
leaves when sorting. This had a couple of problems: first, it didn't do it
correctly and actually placed the branches after the leaves which didn't make
any sense. Second, this was only done in the generic version and not the
native GTK one making the behaviour inconsistent between platforms. Finally,
this behaviour just doesn't make sense in general (i.e. when items don't
necessarily represent anything in the file system and maybe even sometimes
when they do) and there doesn't seem any good reason to do it by default.
So stop doing it, partially reverting the changes of r47562.
Closes#14100.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71425 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The changes of r71308 sent the event unconditionally in case the text didn't
really change but no events should be sent if the flags don't include
SetValue_SendEvent, add a check for it.
Re-closes #13936.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71417 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Just let the base class do it instead of using hard coded default value in
wxGenericListCtrl::DoGetBestClientSize().
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71396 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This GUID may not be defined in uuid.lib even when
__IShellItem_INTERFACE_DEFINED__ is defined in the headers, so just define it
always to avoid any problems.
Closes#14244.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71395 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Use GetBest{Height,Width}() in wxBookCtrlBase to compute the controller
control size height/width from its known (from wxBookCtrlBase size itself)
width/height. This will allow to correctly compute the size of wxListCtrl used
by wxListbook once it provides the necessary support for width-from-height and
height-from-width calculations.
See #13898.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71393 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
These functions will be used when it is necessary to determine the best size
of the control if one of its size components is fixed. Currently none of the
classes implements DoGetBestClient{Height,Width}() yet but wxListCtrl will do
it soon, see #13898.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71392 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Scroll the control automatically if there is not enough space. This is
consistent with (single line) wxTextCtrl and wxSpinCtrl under the other
platforms.
Closes#14211.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71389 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This makes sense and fixes the regression with "Window" menu commands not
being processed any more after the changes of r71114.
Closes#14207.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71388 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Always use value argument for the text control contents and also override the
initial numeric value with it if it's numeric.
This seems to be the only consistent thing to do, so document this behaviour
and add a unit test checking for it.
Closes#13589.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71387 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This assert was fatal, as usual when asserting from a WM_PAINT handler, as the
function was reentered resulting in nested asserts and program abort, so
remove it to at least let the program continue to run even if there is not
enough space for the bitmap in the menu.
There is, of course, still something wrong with the menu geometry calculations
if this happens but I can't even reproduce this any more so not sure what
exactly.
See #11657.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71386 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxBitmap in wxMSW is supposed to store its data in alpha-premultiplied format
but didn't do it when it was created from an icon (or a cursor), resulting in
wrong display of wxIcons with alpha channel when they were used for e.g. menu
items.
Fix this by ensuring that the data is always premultiplied. This is not the
best solution as in some cases (e.g. if this wxBitmap is added to wxImageList
later) we could need to undo this premultiplication later which is quite
inefficient but at least it's simple and straightforward.
Closes#11414.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71385 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Try better matches and not the most widespread ones first when building a list
of face names to try for the given family. This gives better results when
these better fonts are indeed available and doesn't change anything if they
are not.
See #14126.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71382 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Using uninitialized ID happened to work by accident with 2.8 but it doesn't
work any more, try to detect this as early as possible and give a clear
explanation of why it doesn't to help fixing the broken code that used to
accidentally work.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71381 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Take the control borders into account by overriding DoGetBestClientSize()
instead of DoGetBestSize().
Also invalidate the default best size computed before we have any valid image
when setting the initial image in Create().
Closes#4099.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71380 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
We need some hacks for the older systems before including this header, extract
them from src/x11/utilsx.cpp into a new private header to be able to reuse it
from wxGTK in the next commit.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71372 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Avoid computing the difference between two potentially distant
iterators, which is O(1) in wchar_t build, but O(n) in UTF-8 one.
See #13445.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71370 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
In wxMSW, if the classic theme was used, read-only wxOwnerDrawnComboBox
had gray background, but native look should be the same for both
editable and read-only combo boxes: white text entry-like rectangle.
Apparently, a similar problem existed with non-classic themes too
before, as there was a workaround in place. Fixed by moving the
workaround into code used by both themed and classic rendering.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71367 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This ensures that the value returned from GetFieldRect() is always up to date,
even when this method is called from the user-defined wxEVT_SIZE handler, i.e.
before our own OnSize() could run.
Also remove the now unneeded hack with calling the base class OnSize() from
the statbar sample.
Closes#14268.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71365 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxFileCtrl -- which can be #define'd as wxGenericFileCtrl -- is documented to
inherit from wxControl and does derive from it in the native GTK version, so
do it for the generic version too.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71362 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775