This is consistent with Windows behaviour and as the generic wxDataViewCtrl is
mostly used under Windows, it makes sense to follow Windows convention in it.
Closes#15082.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Initialize m_clientArea to NULL to avoid crash in SetFont() which is called
during the control creation.
This might still be not 100% correct as the initial font is not set at all for
the client area but at least it fixes the crash.
See #15056.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73601 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
We do need to set the size of wxStaticText initially even when this style is
specified, it only tells us to not update it later. Otherwise even the initial
label was never shown in full.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73599 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
We didn't update the accelerator table if no more accelerators were left in it
but we still need to do it to stop handling the previously active accelerators.
Closes#15078.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73594 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The file we're trying to watch might have been just deleted, this is an
unavoidable (and not only in theory but also in practice when watching busy
directories) race condition so don't give an error message if this does happen
but simply return false from Add().
Closes#15051.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73591 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Revert r73585, GetThreadId() is only available in Vista or later so don't use
it.
Just cast the handle to an integer explicitly to be able to print it with
"%x".
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73587 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The ID is in general more useful than the handle and this also fixes an assert
failure due to mismatch between the HANLDE type and "%x" format specifier.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73585 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Implements native UI for preferences editing. In particular, the API
handles the differences between modal (Windows) and non-modal (OS X) preferences windows and provides platform's native look.
Currently implemented natively for wxOSX/Cocoa, wxGTK and Windows (the latter is used as a fallback generic implementation as well).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73576 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The support is currently limited to making all toolbar items selectable
and is only available in wxOSX with Cocoa and native toolbars.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73575 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Changing the bitmap could recreate the control if the height of the bitmap
changed but recreating wxBitmapComboBox lost all the client data pointers.
Do preserve them now when recreating.
Closes#14892.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73567 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxFrameBase::ShouldUpdateMenuFromIdle() should be defined inside "#if
wxUSE_MENUS" as it's only declared when wxUSE_MENUS==1.
Closes#15062.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73564 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This allows to generate the menu open/close/highlight events correctly for the
popup menus used in the dialogs.
Extend the menu sample with a test using such menus.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73562 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
r73386 introduced a crash in wxGTK drawing code when using old GTK+ versions
by releasing the mask pixmap prematurely. Apparently GTK+ itself was fixed at
some time in 2.19.x time frame but work around the bug for the sake of older
GTK+ versions in wxGTK itself by simply releasing the pixmap at the end of
DoDrawBitmap(), as pre-r73386 code did.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73549 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
g++ warned about possibly uninitialized variable, so initialize it in its
declaration even if it was actually already always initialized in the branches
where it could be used.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73548 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This results in warnings about converting string literal to (non const) C
string.
Also remove the now unneeded calls to c_str() inside wxString::Printf().
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73520 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
We called g_signal_connect("selection_get") in wxClipboard code each time its
AddData() method was called. This resulted in progressive but noticeable
slowdown as the handler was called more and more times.
Only connect to the handler once now.
Closes#15038.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73518 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
We must use physical coordinates for the brush origin to account for the
coordinates offset in scrolled windows, so add MSWAdjustBrushOrg() and call it
from MSWGetBgBrushForChild().
Closes#14917.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73495 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This doesn't actually change anything as wxHAS_MSW_BACKGROUND_ERASE_HOOK is
always defined, except under WinCE where this file is not used anyhow, but do
test it here for completeness.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73492 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This allows to avoid having another cursor resource and also makes this cursor
nicer as rightarr.cur looks rather out of place under modern Windows systems.
Closes#14991.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73491 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Create the new tab in wxAuiTabCtrl that was double clicked and not near the
last selected tab which could have been in another wxAuiTabCtrl.
Closes#14995.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73490 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Use wxMSW::GetLayout() wrapper to avoid directly binding to a function not
present in old Windows versions and also to fix linking errors with MinGW
after the changes of r73484.
See #3995.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73488 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
It turns out that the actual bitmap shown in this case varies between the
bitmaps at PBS_DEFAULTED and PBS_STYLUSHOT, so that it's invisible half of the
time if we don't specify the value for the latter. Do it now to fix unwanted
pulsing of the bitmap in the focused button.
Closes#15034.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73486 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
As MSW native control centers the image, it must be entirely redrawn when the
area in which the image is centered changes, but it doesn't happen by default,
so do it ourselves explicitly.
Also explain that this centering behaviour is platform-specific and shouldn't
be relied upon.
Closes#4564.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73485 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The mask must be mirrored in the same way as the main bitmap itself (currently
it's not mirrored at all but this could change in the future), so create the
temporary memory HDC with the same layout as is used by the main HDC.
Closes#3995.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73484 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Even with wxWS_EX_VALIDATE_RECURSIVELY flag, we should never validate the top
level children (e.g. dialogs) when validating the parent window. This is never
useful and can be completely unexpected.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73482 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
No real changes, just factor out the logic for children traversal into a
helper template class and reuse it in Validate() and both TransferData()
methods to avoid triplicating it.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73481 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Cast NULL to the type of third argument of SendMsg() explicitly to avoid a
warning about it from Ubuntu g++ 4.6.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73478 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
If LC_ALL or LC_MESSAGES is set but empty, ignore it and use the next
environment variable. This is consistent with the standard setlocale()
behaviour which only uses LC_ALL if it is set and not empty.
Closes#15006.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73466 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxBU_EXACTFIT in wxMSW only affected the width of the button but not its
height, which was still made as big as the standard button size as otherwise
the button text was rendered badly. However there is no reason to do this for
the buttons without any text, so let wxBU_EXACTFIT be really exact, in both
directions, in this case.
Also document this rather non obvious wxBU_EXACTFIT behaviour.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73461 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The previous fix (r73399) broke resizing from the side of the preceding grid
line, restore the old code and just add a loop finding the first visible line
before the one being clicked.
See #14947.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73460 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix warning in assert in wxProcess::SetPriority(): don't compare unsigned
priority with wxPRIORITY_MIN which is just 0, the condition is always true.
Closes#14931.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73456 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Don't dereference potentially NULL wxProcess pointer unconditionally.
This should have been together with the changes of r73425, see #14931.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73426 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Use wxHTML_CLR_TRANSPARENT_BACKGROUND instead of wxHTML_CLR_BACKGROUND for the
bgcolor attribute of the body tag to prevent clipping of the text cells by the
next cell with opaque background.
Closes#14986.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73412 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Owner-drawn checkbox (which is used when wxCheckBox colour is changed) didn't
center its label correctly and didn't right align it when using wxALIGN_RIGHT
style in focused state.
Closes#9628.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73404 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The code took into account the possibility that the days in the beginning of
the year might belong to the last week of the previous year but not that the
days at the end of the year could belong to the first week of the next year.
Closes#14973.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73402 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Override GetMainWindowOfCompositeControl() in the windows composing the
generic wxSearchCtrl to ensure that HasFocus() correctly returns true for the
entire control when any of them has focus.
Add a trivial unit test to check that this really works and facilitate adding
more tests for this class later.
Closes#14970.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73401 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
We need to call SetMenuItemInfo() from wxMenuItem::SetItemLabel() even for the
owner-drawn items, otherwise their width is not recomputed.
Closes#3897.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73400 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Don't blindly assume that the previous line is big enough if the current one
isn't in wxGrid::PosToEdgeOfLine() (this assumption is wrong even without
taking hiding into account...).
Closes#14947.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73399 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Use DWORD_PTR instead of DWORD for a pointer.
This was already done for another occurrence of the same cast in r58564 but
somehow this one fell through the cracks.
Close#14949.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73395 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Set the range before setting the initial value when creating wxSpinCtrl, as
otherwise the value was wrongly limited to the default 0..100 range instead of
the one really specified.
Closes#14894.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
In spite of the MSDN documentation, EC_USEFONTINFO can't be used in lParam
with rich edit controls, so pass it in wParam for them.
Closes#14598.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73391 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Properly ignore HDN_BEGINDRAG events for the columns without wxCOL_REORDERABLE
flag. This fixes dragging non-draggable columns in wxDataViewCtrl under MSW.
Closes#14940.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73389 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add wxWebViewFactory as an abstract factory to provide backend creation. Remove old factory methods using wxWebViewBackend enum in favour of the new wxString based method.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73369 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Don't assert if an already hidden/shown row/column is being hidden/shown again
but simply don't do anything. This is more convenient because the code outside
wxGrid has no efficient way to only hide a row/column if it's currently shown.
Closes#14960.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73366 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The changes of r73007 fixed the problem with menus remaining active while a
modal dialog was shown (see #14823) but also disabled processing of the events
from any popup menus shown by the dialog itself. Reallow the latter while
still forbidding the former now by checking whether the window associated with
the menu is the dialog itself.
Closes#14961.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73365 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This header is also needed in filename.cpp (see r73317 for a previous commit
fixing the same problem in filefn.cpp).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73344 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Don't use LOCALE_USER_DEFAULT when the locale hadn't been changed because the
user default locale often (and maybe even always) is different from "C" locale
used by the CRT resulting in mismatch between the conventions used by
wxDateTime::Format(), which uses the CRT locale, and wxDateTime::Parse(),
which uses Windows format. Instead use the hard-coded values corresponding to
the "C" locale to ensure we use the same values as the CRT in this case.
This also reverts r73244 which was applies to make the unit tests pass before
this fix as it's not necessary any longer.
Closes#14918.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73320 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
because gtk_menu_item_set_submenu() with NULL menu argument does not work
before GTK 2.12 and there is no need to avoid calling it on later GTK2 versions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73296 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Under MSW single line text controls can still use these styles, so don't
assume that the control should be made multi-line just because one of them is
specified.
This fixes the appearance of the in-place text control in wxGridCellTextEditor
which is created with wxTE_RICH2 style to work around some wxMSW problem.
Closes#11681.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73294 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This message is not supposed to be sent but apparently some buggy comctl32.dll
versions do send it instead of HDN_ITEMCHANGING, so handle it too.
Closes#13506.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73293 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Allocating a new icon for every notification could result in showing many
identical icons in the taskbar notification area if several notification
messages were generated which looked like a bug to the user. It was also
inconsistent with the behaviour in the case when UseTaskBarIcon() was called.
Always behave as in the latter case now, i.e. any subsequent notification
replaces the previous one instead of being shown in addition to it.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73287 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Wrong background was used for the text inside HTML tables since r72589, fix
this by setting the correct background before processing the table elements
and restoring it after doing it.
Closes#14909.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73283 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Under Unix we could return client display rectangle that was bigger than the
entire display size as it corresponded to the total screen size when
_NET_WORKAREA was not supported or was not correctly implemented by the WM.
Fix this by explicitly intersecting the client rect with the total one.
Closes#14419.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73282 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Our client size calculation can be wrong for reasons beyond our control,
notably on Ubuntu 12.04 with overlay scrollbars where the GtkScrolledWindow
"scrollbar-spacing" is wrong. By using the true size from size-allocate
when it becomes available, we can recover from an earlier incorrect client
size calculation. See #14871
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73231 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Ubuntu overlay scrollbar changes the GtkWindowGroup for its toplevel, which is
disastrous for modal windows. Put in a hack to detect and undo this.
Fixes#14855
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73196 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
At least some versions of MinGW don't define 64 bit integer types resulting in
errors when they're used in libtiff code, so explicitly include basetyps.h to
make sure these types are defined.
Closes#14897.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73190 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This fixes compilation of wxGTK under Windows after the changes of r72779 and
r72780, where _wchdir() would need to be used but we don't currently have a
wxChdir() CRT function wrapper so use wxSetWorkingDirectory() instead.
Closes#14886.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73160 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The key code was already found to be valid just above, so suppress Coverity
warning about an always true test by not checking it again. This also makes
the code more clear.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73148 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Don't check for impossible enum element value, it's better to not have the
default clause at all to get a warning from g++ if this enum ever changes
later. And for now the presence of default results in a warning from Coverity
about unreachable code.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73147 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The buffer may be uninitialized or at least not contain the correct data if
lstat() failed, don't use it in this case.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73144 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This doesn't really change anything as the returned value would be empty
anyhow in case of an error, but suppresses Coverity warning about not checking
the return value of a function whose return value is checked in other places.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73143 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxCharBuffer already initializes the last byte of the buffer it allocates to 0
so there is no need to do it explicitly.
Also don't allocate an extra byte, wxCharBuffer already adds one to the length
passed to it for the trailing NUL.
See #13885.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73141 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
For consistency with all the other wxTextCtrl-like classes, the value returned
by this method must not include line terminator characters (like '\n'). Notice
that Scintilla-specific GetLine() does still include them, for consistency
with the Scintilla API itself.
Closes#13646.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73140 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This doesn't happen often but when it does, the results are catastrophic and
not always easy to debug, so try catch this as soon as possible.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73139 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
It's useless and resulted in a warning from Coverity as it correctly
determined that this code could never be executed under Unix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73138 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775