Commit Graph

590 Commits

Author SHA1 Message Date
Stefan Csomor
2895324520 merging back XTI branch part 2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66555 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-04 08:31:53 +00:00
Vadim Zeitlin
a9544d0014 Avoid crashes in wxGenericListCtrl client<->screen conversion code.
At least in wxUniv build, DoScreenToClient() can be called before the main
control window is created which results in a crash when attempting to forward
to its DoScreenToClient() version.

Check for m_mainWin being non-NULL before using it to at least avoid the
crash, even if it's not really clear whether this is a 100% correct fix.

Closes #12390.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65831 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-10-16 18:11:32 +00:00
Vadim Zeitlin
cff48ba847 Fix display of right aligned columns in wxGenericListCtrl.
Take into account the width of the image when drawing the right aligned item
in wxGenericListCtrl.

Closes #12562.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65799 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-10-13 22:10:45 +00:00
Vadim Zeitlin
93f6e00d7b Destroy the in-place edit control in wxGenericListCtrl dtor.
If the in-place text control was still alive when wxGenericListCtrl was
destroyed, it resulted in asserts from wxWindow dtor about child windows still
being alive, so explicitly destroy it from wxListMainWindow dtor.

As this required a slightly different behaviour from wxListTextCtrlWrapper::
EndEdit(), replace its bool argument with an enum one which can take more than
2 values. Not using bool values when calling it also made the code more clear.

Finally, added a unit test verifying that the in-place control is indeed
destroyed correctly.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65769 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-10-05 13:38:05 +00:00
Steve Lamerton
92d9d10f80 Send generic wxListCtrl wxEVT_COMMAND_LIST_KEY_DOWN events from OnKeyDown rather than OnChar. Also remove the HasCurrent check. These changes bring the generic control into line with the control under wxMSW. Re-enable the previously failing unit test and document that the key down event might not have a valid item associated with it.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65586 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-22 08:48:15 +00:00
Vadim Zeitlin
ed84dc74d9 Fix drawing of items with custom background in wxGenericListCtrl.
This was broken by the changes of r64879 which erroneously used
wxRendererNative::DrawItemSelectionRect() even for the non-selected items.

Now only use DrawItemSelectionRect() for the selected items to make them
appear natively while drawing the non-selected items with custom background
colour ourselves.

Also refactor the code to avoid (the not quite and hence especially
pernicious) duplication between wxListLineData::Draw() and DrawInReportMode():
rename SetAttributes() to ApplyAttributes() and draw the item background in
this function now instead of doing it in both Draw() and DrawInReportMode().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65541 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-14 13:18:48 +00:00
Vadim Zeitlin
705c4d13d9 Don't use wxRendererNative::DrawFocusRect() under Mac.
This function doesn't do the right thing there, it draws the focus border as
it's drawn around controls such as buttons. This border overflows the item
rectangle and results in garbage remaining on screen when selection changes.

See #12229.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64966 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-14 14:52:28 +00:00
Vadim Zeitlin
3dea8ba7ac Account for largest item in wxGenericListCtrl::GetBestSize().
Don't just return a hard-coded value but at least return something big
enough to show the largest item in the control in non-report mode.

This fixes the appearance of wxListbook which simply truncated its items
before if they didn't fit in 80 pixels horizontally.

Also switch to implementing DoGetBestClientSize() instead of DoGetBestSize()
as this method doesn't account for the control borders (it does account for
the scrollbars however).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64884 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 10:44:08 +00:00
Vadim Zeitlin
e61fedabe7 Ensure that wxGenericListCtrl always has wx[HV]SCROLL styles.
Although these styles are unconditionally added when creating the window they
could be reset by calling SetWindowStyleFlag() later and this in fact happened
when changing control mode from wxListbook.

As it doesn't make sense to have wxListCtrl without these styles, also add
them unconditionally in overridden SetWindowStyleFlag() as well.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64882 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 10:43:57 +00:00
Vadim Zeitlin
d67fc8b735 Fix item selection/focus drawing in generic wxListCtrl.
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
2010-07-11 10:43:43 +00:00
Vadim Zeitlin
d6a658ff0c Allow user code to override key events in generic wxListCtrl.
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
2010-07-11 10:43:35 +00:00
Vadim Zeitlin
5276b0a53c Use wxDELETE() and wxDELETEA() when possible.
Use wxDELETE[A]() functions which automatically NULL out their arguments after
deleting them instead of doing it manually.

Closes #9685.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-20 18:18:23 +00:00
Vadim Zeitlin
e612dec202 Assert if an invalid column index is specified when inserting wxListCtrl item.
This also catches the case of inserting an item in a report mode wxListCtrl
without adding any columns to it first. Previously this did result in an
assert but with a less clear error message and, most importantly, still a
crash afterwards. Assert only now, don't crash.

The message could still be improved but hopefully people will be able to
understand that inserting items when no columns are defined is not the right
thing to do.

Closes #12119.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64473 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-03 10:35:41 +00:00
Vadim Zeitlin
b6812a6f19 Add column parameter to wxListCtrl::GetItemText().
Allow retrieving the text from columns other than the first one directly.

Add implementations for MSW and generic versions, documentation and a unit
test.

Closes #11597.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64281 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-10 21:22:16 +00:00
Vadim Zeitlin
6578236183 Fix over aggressive clipping in generic wxListCtrl header drawing.
Clipping out 4 pixels vertically resulted in truncating any letters with
descent (e.g. "g" or "q") under OS X where the native header size is just tall
enough to show the text.

Simply don't clip that much but use the entire header width.

Closes #11780.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63947 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-12 00:37:13 +00:00
Vadim Zeitlin
476de5ea9a Fix crash in wxListbook if image list is assigned after adding pages.
The generic wxListCtrl didn't properly support switching between report and
non-report modes without invalidating the control contents, the required in
non report view geometry info pointers were not allocated when the control was
switched to a, say, list mode and not created in it.

Fix this by updating all list control lines when the report mode changes.

Closes #11698.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63946 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-12 00:37:08 +00:00
Stefan Csomor
7eb8aeb8b1 using statically allocated font objects for speedup
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63917 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-08 18:47:41 +00:00
Vadim Zeitlin
5d12911287 Revert unneeded fix for list control headers from r63177.
The call to SetItemMinSize() shouldn't be needed and the latest OS X version
does work correctly without it. Apparently the real bug was fixed somewhere
else in the meanwhile.

Closes #11309.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63662 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-03-12 09:36:37 +00:00
Vadim Zeitlin
c1fae0d0ee Don't store header height in generic wxListCtrl member variable.
This is simply unnecessary and resulted in a crash in wxDFB because the window
was used for this variable initialization before being created.

Closes #11711.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63638 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-03-06 00:31:04 +00:00
Vadim Zeitlin
1bab36277c Fix toggling the header in the generic wxListCtrl.
We need to update the lfags first before deciding whether we should create or
destroy the header.

Also add a test for toggling the header to the listctrl sample.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63637 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-03-06 00:31:00 +00:00
Stefan Csomor
237077b501 applying patch, closes #11309
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63177 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-18 09:03:05 +00:00
Stefan Csomor
0a84f928e9 moving themeing include to private.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61987 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-21 12:57:12 +00:00
Vadim Zeitlin
b3b17ee743 Fix recurring typo in "theming".
It was (consistently) misspelt as "themeing" in several places.

Closes #11206.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61962 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-18 16:16:30 +00:00
Vadim Zeitlin
9a83f86094 Globally replace _T() with wxT().
Standardize on using a single macro across all wxWidgets sources and solve the name clash with Sun CC standard headers (see #10660).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-23 20:30:22 +00:00
Vadim Zeitlin
e1983cad7c implement Update() properly for the generic wxListCtrl (see #10857)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60824 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-05-30 22:25:42 +00:00
Vadim Zeitlin
b18e2046af pass wxIntPtr, not wxUIntPtr, to wxListCtrl::SortItems() callback as it's more compatible with the existing code assuming that this parameter is signed (as our own wxFileCtrl did)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60198 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-16 13:00:40 +00:00
Vadim Zeitlin
6e2f308461 use wxUIntPtr instead of long for 3rd parameter of wxListCtrl::SortItems() to allow passing pointers to it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60182 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-15 21:23:50 +00:00
Stefan Csomor
f1c40652a0 reworked font handling for osx
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-20 13:56:57 +00:00
Paul Cornett
fd1dc2a7e6 fix event table base for wxListMainWindow
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59075 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-21 20:30:57 +00:00
Francesco Montorsi
977a41ec3e use YieldFor() in wxTopLevelWindowGTK::RequestUserAttention; comment on the use of YieldFor() in wxProgressDialog; add some TODOs near wxYieldIfNeeded()/wxSafeYield() calls in wxListCtrl, wxDataViewCtrl, wxTreeCtrl (closes #10320)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58916 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-15 15:42:15 +00:00
Vadim Zeitlin
5d55031c21 compilation fixes for wxMSW/Univ
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58645 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-04 10:07:58 +00:00
Francesco Montorsi
64894596ea fix a typo in comment
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58589 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-01 12:06:15 +00:00
Robert Roebling
edea2c4af5 Fixes #10443: wxListCtrl::MoveToItem
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58479 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-28 10:24:14 +00:00
Robert Roebling
e5d28ed426 Fix for GetScrollPos() assert
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58459 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-27 15:35:34 +00:00
Francesco Montorsi
74491934c6 fix PCH builds
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58454 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-27 12:33:16 +00:00
Francesco Montorsi
52d2a5e454 fix crash when calling InsertColumn() on a wxListCtrl with wxLC_NO_HEADER style
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58453 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-27 12:05:27 +00:00
Francesco Montorsi
ad48602087 small cleanup; move private class definitions in a private header
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58452 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-27 12:01:54 +00:00
Robert Roebling
32fc355f09 Finally corrected drawing of wxListCtrl selection rect for GTK+
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58415 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-25 20:22:37 +00:00
Vadim Zeitlin
21f673955a removed debugging wxPrintf() which not only had nothing to do there but also broke PCH-less compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58376 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-25 11:06:31 +00:00
Stefan Csomor
64374d1b06 bring in the definition of wxSizer, making non-precomp builds working again after r58312
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58358 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-24 18:07:46 +00:00
Francesco Montorsi
7d7b3f69f2 do not export private symbols in wx shared libraries
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58351 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-24 13:40:46 +00:00
Robert Roebling
dff750b48f Always use theme border for inner window under wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58333 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-23 15:10:09 +00:00
Robert Roebling
43cb7161a0 GTK+'s native controls usually have a bigger line height
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58324 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-23 11:55:45 +00:00
Robert Roebling
8be0b88848 Restore keyboard navi
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-23 11:51:52 +00:00
Robert Roebling
06cd40a8b9 Reorganized wxListCtrl's window layout (same as wxDataViewCtrl), call RecalculatePositions() from OnPaint() to get rid of flicker
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58312 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-22 23:01:14 +00:00
Vadim Zeitlin
d3b9f782ef don't use annoying and unneeded in C++ casts of NULL to "T *" in all other files neither
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-19 13:55:27 +00:00
Stefan Csomor
7ac5e1c908 adding 10.4 build compatibility for osx cocoa, see #10361
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58058 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-12 20:14:39 +00:00
Vadim Zeitlin
9f2968ad0b make colours used by list and tree controls more consistent with the system theme settings; also use the correct colour for the status bar (closes #10089)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57542 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-25 13:03:24 +00:00
Vadim Zeitlin
040745d7fc don't use deprecated OnScroll()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57539 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-25 12:38:58 +00:00
Robin Dunn
5ac526c40c Assert that a mode style *is* set, not that one isn't set.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56381 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-16 22:37:58 +00:00