Unlike GetVersionEx(), this function still returns the real version and not
the fiction concocted by the OS for each program depending on its manifest.
Also use OSVERSIONINFOEXW instead of OSVERSIONINFOEX as RtlGetVersion() only
exists in the Unicode version.
Closes#15321.
wx/control.h is already included from wx/slider.h so including it from here is
useless and including wx/slider.h is even worse as it's very confusing because
this header itself is already included from wx/slider.h.
No real changes.
Derive wxStaticBox from wxStaticBoxBase for consistency with the other ports
and to make it derive from wxNavigationEnabled<>, which is necessary for TAB
navigation to work.
Closes#3842.
Don't use the content scale factor when creating bitmaps in InitPixMap(), this
is wrong and results in badly sized bitmaps at least under MSW (and possibly
GTK too).
Closes#17069.
The bug that resulted in creating huge DLLs that took inordinate amounts of
memory and time to link with g++ 4.5 has been fixed in 4.7, so don't export
everything when using it, as this results in even smaller DLLs.
The situation with 4.6 is unknown, so leave behaviour with it unchanged.
See 49d2c0adc3
This constant is defined in wx/msw/missing.h if it's not defined, so testing
for whether it's defined here doesn't make sense -- and the comment about not
using it under Windows CE which is not supported any more anyhow doesn't make
sense neither.
This is not the case any more since 3.0 and it actually never used the same
ref-counting model as the classes described in the ref-counting overview
anyhow.
Closes#17216.
Since the changes of db9baf9aa5 the label wasn't
explicitly reset to be empty on wxWindow creation because it was assumed it
would already be empty if not explicitly set, but this turned out to be false
for the controls using NSButton which (very helpfully) uses "Button" as its
label by default and so kept this useless label if it wasn't explicitly
overridden.
Fix this by explicitly resetting the NSButton title after creating it, to
ensure consistency between the real state of the control and what wxWidgets
thinks it is.
Closes#17152.
This improves the placement of the buttons by making it consistent with the
platform conventions and also fixes a regression in button placement
introduced in 2f3d0d9629Closes#17213.
Since the hack for making the alignment work with GTK+ 2 done in
4ae21c7f1a, the best size was not computed
correctly for the right aligned or centered labels and the minimum possible
size was returned instead.
Fix this by temporarily disabling ellipsization during the best size
computation to ensure that the same best size is computed for left and right
aligned labels.
See #12539.
Ever since 700256bbdb IsOk() returned true even
if setting the locale actually failed because the old locale was still set to
the null value.
Apply the minimal possible fix for this and just reset the old locale pointer
to null if initializing the locale fails to make sure IsOk() doesn't return
true in this case.
This was previously done only for wxMSW but is also necessary for wxOSX to
ensure that the icons in the list view part are arranged and shown correctly
initially, otherwise the selected item could be only partially visible.
::TlsGetValue() resets the last error code which means that the previous last
error is lost, but it shouldn't as we might be in the middle of logging it
with wxLogSysError(). So preserve the last error explicitly.
Closes#17209.
These types are of different size under Win64, so even if IDs are 32 bits,
truncating a 64 bit value to 32 bit UINT resulted in a warning. Fix this by
just using WPARAM for the variable type in the first place.
A variable was unused in wxDEBUG_LEVEL==0 build and assigning to it resulted
in a warning. Fix this by not defining this variable at all, which also makes
the check more clear.
This class is forward declared with WXDLLIMPEXP_FWD_BASE, so it should be
really declated with the matching WXDLLIMPEXP_BASE and not with
WXDLLIMPEXP_CORE used by WX_DECLARE_EXPORTED_OBJARRAY() by default too.
Somehow the mismatch between forward and real declaration doesn't seem to
create any problems, but still fix this for consistency and because it might
explain http://thread.gmane.org/gmane.comp.lib.wxwidgets.general/83980
It seems that LVS_EX_DOUBLEBUFFER is required for the system theme to work
correctly, otherwise multiple display glitches can be observed by simply
changing the selection in the list.
Closes#17177.
In principle, calling DeleteAllItems() on a virtual list control doesn't make
sense at all, but apparently people actually do it and it mostly works except
that the controls scrollbars are not updated, so add a call to Refresh() to
update them too, for consistency with DeleteItem() which similarly doesn't
make sense for virtual controls but where we also explicitly support them for
some reason.
Verify that accessing a property really succeeded before using the returned
value.
This should fix at least one crash due to the use of uninitialized BSTR in
wxWebViewIE::GetCurrentTitle().
Closes#17204.
Also reuse DoSetSelection() from OSXHandleClicked() to ensure the behaviour is
consistent when changing the selection programmatically or interactively.
Closes#17202.
According to the documentation, insertText: argument is either NSString
or NSAttributedString. The latter is not a subclass of the former, yet
the code assumed the argument is always a NSString. This caused the
following exception:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:
-[NSConcreteMutableAttributedString characterAtIndex:]: unrecognized selector sent to instance
Fix this by checking for NSAttributedString and extracting plain string
from it.