Item focus rectangle was not drawn at all under wxGTK as the code doing it was
disabled with a comment saying that it was drawn elsewhere -- but this wasn't
the case.
So remove #ifdefs for wxGTK/Mac from generic wxListCtrl code and do use
wxRendererNative methods for all platforms. This fixes the appearance of the
control under GTK and if it introduces any problems under Mac, they should be
fixed in its wxRendererNative implementation and not by adding #ifdefs here.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64879 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Using gtk_paint_focus() with a tree widget style did a clearly wrong thing
with Clearlooks theme: instead of drawing a focus rectangle it drew a
background with a shadow overflowing the specified rectangle. This resulted in
junk being left when the selection was changing in wx{List,Tree}Ctrl.
Just use the widgets own style instead as this seems to work just fine. After
this change the code for focus drawing in DrawItemSelectionRect() became
identical to the code of DrawFocusRect() so just call the latter from the
former instead of duplicating its code.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64878 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The changes of r58323 ("Restore keyboard navi") fixed the handling of cursor
keys in the generic wxListCtrl implementation but at the price of not sending
keyboard events for the cursor keys to wxListCtrl itself any more. This made
it impossible to override their handling in user code, something that used to
work in previous wx versions and still works in wxMSW.
Revert the changes of this revision now and fix the original code by simply
disabling the handling of the cursor keys in wxScrollHelperBase using a newly
added DisableKeyboardScrolling() method. This ensures that the keyboard events
for cursor keys are not used to scroll the window when they are forwarded to
wxListCtrl from wxListMainWindow.
The fix is conceptually ugly as it would be better to avoid the need for such
ad hoc functions as DisableKeyboardScrolling() but it is very simple and there
just doesn't seem to be any sane way to do it otherwise with wxScrollHelperBase.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64877 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The alignment was ignored unless a wxST_ELLIPSIZE_XXX style was already used.
Apparently calling gtk_label_set_ellipsize(PANGO_ELLIPSIZE_NONE) resets the
alignment, so set the alignment after setting the ellipsization style, not
before.
Another possible solution would be to avoid calling gtk_label_set_ellipsize()
completely if no ellipsization styles are given but maybe the original code
didn't do this for some (unknown and undocumented) reason so keep it this way.
Closes#10716.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64876 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The bitmap was 1 pixel smaller than needed due to the unwarranted use of
wxRect::GetRight() and GetBottom() instead of GetWidth() and GetHeight().
Closes#12213.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64874 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
XML_GetCurrentLineNumber() returns int in some versions of Expat and
unsigned long (or even uint64_t) in other versions. Just cast the value
to int so that it works correctly with all versions.
Fixes#12196.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64802 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The parser used to understand only 'Z' specifier for size_t/ptrdiff_t,
which is non-standard libc5 extension. C99 defines 'z' for this purpose,
so use that. Compatibility with 'Z' is preserved.
Also support Visual C++'s non-standard 'I' modifier with the same
meaning.
Fixes#12192.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64800 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Instead of always declaraing that a C++ type corresponds to either
Arg_String or Arg_Pointer, make Arg_String superset of Arg_Pointer.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64797 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
char arguments weren't recognized as allowed variadic types. Unlike in
Unicode build, where chars are treated specially, they are primitive
types in ANSI build.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64790 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775