Commit Graph

160 Commits

Author SHA1 Message Date
Vadim Zeitlin
53f60d4ab6 Refactor listbox event sending code to avoid duplication.
wxMSW wxListBox implementation contained the same code as the private
LBSendEvent() function in lboxcmn.cpp, so make this function a (protected)
member of wxListBoxBase and reuse it instead.

Also change its and CalcAndSendEvent() return type to bool to be able to
return whether the event was processed or not.

As the result of this refactoring, the "is selected" flag is now set correctly
for the selection events under MSW (it was always off before).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64496 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-05 22:57:53 +00:00
Vadim Zeitlin
316bba0c72 Invalidate wxListBox best size immediately without waiting for idle time.
Since r53743 the listbox best size was only invalidated during idle time but
this meant that it could be laid out using incorrect old best size. So while
we still defer (expensive) horizontal extent calculation until later, do
invalidate the best size immediately to ensure the listbox is laid out
correctly.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64246 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-08 10:28:01 +00:00
Vadim Zeitlin
e10092956f Fix multiple bugs in non-ownerdrawn wxListBox after recent merge.
Changes done in ownerdraw-refactor branch have broken non-ownerdrawn list
boxes as the code was now using m_aItems array even for them but it's not used
in this case.

Also remove unnecessarily overridden Delete() method which didn't add anything
to the base class implementation but just deleted the same m_aItems pointer
twice.

Also use HasFlag(wxLB_OWNERDRAW) everywhere consistently instead of testing
for it manually.

Closes #11729.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63551 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-02-25 00:03:44 +00:00
Vadim Zeitlin
85ee88cd53 Improve wxCheckListBox appearance under Vista/Win7.
Fix the items alignment and also code cleanup: fix indentation, remove magic
numbers &c.

Closes #10286.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63226 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-23 13:22:00 +00:00
Vadim Zeitlin
98fbab9e7b Refactor owner-drawing code.
Only keep common code in the base class and extract all menu/listbox-specific
stuff into derived classes.

This makes the code cleaner and more maintainable but introduces some problems
in wxCheckListBox appearance which will be fixed by the next patch.

Closes #10635.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63220 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-23 13:21:12 +00:00
Vadim Zeitlin
03647350fc No changes, just removed hard tabs and trailing white space.
This commit is huge but there are no non-white-space changes in it.

Some files containing third-party sources (src/msw/wince/time.cpp,
src/x11/pango*.cpp) were left unchanged.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61724 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-21 10:41:26 +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
43b2d5e7c3 Put braces around all calls to wxLogFunctions() inside an if statement.
This suppresses all the remaining g++ -Wparentheses warnings and uses consistent style everywhere.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61475 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-20 16:47:54 +00:00
Vadim Zeitlin
58dcd1ae52 added wxLB_NO_SB style and implementation for wxMSW (closes #10991)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61440 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-17 14:36:30 +00:00
Vadim Zeitlin
743b426605 Added DoGetClientBestSize() and use it for a couple of controls in wxMSW.
DoGetClientBestSize() returns the best size of the client area, without
accounting for the border which is done by GetBestSize() itself and
DoGetBorderSize() called from it.

Use DoGetClientBestSize() in wxStaticText (where it was done
insideDoGetBestSize() before) and in wxListBox, to fix its height calculation.

Also use correct height of listbox items as returned by the control itself
instead of trying to guess it.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61169 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-22 20:36:13 +00:00
Paul Cornett
6efda5fda4 fix off-by-one size of wxCheckListBox item draw rect
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60530 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-05-06 15:51:09 +00:00
Vadim Zeitlin
44e7bad0d4 use correct item index for wxEVT_COMMAND_LISTBOX_DOUBLECLICKED events (see #10429)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58405 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-25 18:09:00 +00:00
Vadim Zeitlin
e4de7a7759 don't use the client data for storing wxOwnerDrawn in wxCheckListbox implementation as we already store them in internal array anyhow, this allows the user to use his own client data with wxCheckListbox (#10290)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57543 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-25 13:10:55 +00:00
Vadim Zeitlin
f022dc238a fix initial best size of (check) list boxes under MSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57367 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-16 13:59:04 +00:00
Robert Roebling
1ddb283ad5 Defer SetHorizontalExtent to idle, also fixes (wxListBox::Delete ignores Freeze/Thaw and is verrrrry slow)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53743 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-25 20:54:30 +00:00
Robert Roebling
84c5c49bca Move event generation in multiple selectino mode to common code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53717 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-23 11:02:32 +00:00
Vadim Zeitlin
74052fe83b added more includes of wx/msw/dc.h needed since r52054 for wxMSW compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52074 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-25 02:13:36 +00:00
Vadim Zeitlin
ad998d785c call Clear() in dtor: this is necessary at least to clean up client object data
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50587 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-08 21:09:20 +00:00
Václav Slavík
937013e0fd 1. added wxEvtHandler::SafelyProcessEvent() and wxWindow::HandleWindowEvent() to correctly handle exceptions in even handlers in wxGTK
2. use HandleWindowEvent() everywhere as more obvious and convenient shortcut for GetEventHandler()->ProcessEvent(); also for consistency with wxGTK where it's required

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50329 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-29 17:00:58 +00:00
Vadim Zeitlin
b4a11fe85c don't access m_clientDataItemsType directly
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48732 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-17 00:12:13 +00:00
Vadim Zeitlin
a236aa2058 many wxItemContainer-related changes:
1. the main function for item insertion is now DoInsertItems() which allows
   for much more efficient addition of many new items at once
2. the items client data management is done entirely in wxItemContainer
   itself, the derived classes don't have to distinguish between void and
   object client data
3. many fixes for sorted controls, in particular implemented wxCB_SORT support
   in wxGTK combobox


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47730 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-26 13:54:14 +00:00
Václav Slavík
e0a050e347 more changes to make wx compile without implicit wxString->char* conversion (for STL build)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46553 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-20 07:44:45 +00:00
Vadim Zeitlin
81b635b1ef use LRESULT instead of LONG in MSWOnDraw() to fix it under Win64 (bug 1715591)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45957 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-05-11 13:01:34 +00:00
Vadim Zeitlin
0ad2a19e42 corrected IMPLEMENT_DYNAMIC_CLASS macros to ensure that the controls are seen to derive from wxControlWithItems by the wx RTTI code (patch 1659708)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44503 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-02-14 16:10:08 +00:00
Robin Dunn
170acdc90e GetBestFittingSize --> GetEffectiveMinSize
SetBestFittingSize --> SetInitialSize
SetBestSize  --> SetInitialSize
SetInitialBestSize --> SetInitialSize


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42816 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-31 08:50:17 +00:00
Vadim Zeitlin
fca418ae12 call SetHorizontalExtent() from SetString(); also simplified/cleaned up the former function and call InvalidateBestSize() from it automatically now
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40077 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-07-12 21:44:34 +00:00
Włodzimierz Skiba
2a673eb1c9 Include wx/listbox.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39505 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-06-01 08:23:42 +00:00
Włodzimierz Skiba
cdccdfabb2 Include wx/window.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39021 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-05-04 07:57:04 +00:00
Włodzimierz Skiba
e4db172a3b Include wx/log.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38920 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-04-26 08:21:31 +00:00
Włodzimierz Skiba
ad9835c97c Include wx/dynarray.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38841 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-04-19 14:18:39 +00:00
Vadim Zeitlin
aa61d35253 replaced all int/size_t indices in wxControlWithItems API with unsigned int (committing on behalf of ABX)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38319 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-03-23 22:05:23 +00:00
Włodzimierz Skiba
8228b8932a Line-up interfaces to use size_t for GetCount()s (and count related api).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38076 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-03-14 19:44:45 +00:00
Vadim Zeitlin
c00fed0ef4 added wxListBox::HitTest() from Ryan (patch 1446207)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37923 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-03-09 12:48:52 +00:00
Vadim Zeitlin
7d09b97f53 disallow creation of wxDC objects and made wxDC an ABC; use wxDCTemp instead of wxDC in wx code; fixed WinCE bug with deleting a DC which should be released in wxListBox::MSWOnMeasure()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36564 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-12-25 02:34:42 +00:00
Michael Wetherell
4a10ea8b13 Warning fixes for win64
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35921 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-10-17 22:08:05 +00:00
Włodzimierz Skiba
11e62fe658 wxItemContainerImmutable::FindString unified.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35742 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-09-27 17:05:26 +00:00
Mart Raudsepp
8907154c1a Nuke #pragma implementation/interface's
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-09-23 12:56:45 +00:00
Julian Smart
ce0e1aacbc Applied patch [ 1218833 ] [wxMSW] wxListBox optimisation for XP
Also removed temporary fix to hardwire listbox background colour


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34674 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-06-16 15:36:48 +00:00
Julian Smart
a374cdc43e Need to set background colour for wxListBox, not just wxCheckListBox,
to avoid scrolling problem when Windows effects are switched on.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34624 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-06-10 08:39:19 +00:00
Robin Dunn
31582e4e11 Patch #1203934: enable best size caching for MSW widgets
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34120 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-05-18 02:23:01 +00:00
Dimitri Schoolwerth
767b35a56f applied patch #1185523: "Replace GetTextExtentPoint with GetTextExtentPoint32"
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34100 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-05-17 16:03:25 +00:00
Julian Smart
2cef71bc23 Remove obsolete includes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33848 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-04-23 18:59:33 +00:00
Robin Dunn
908f91bce9 Add room for the scrollbar
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33558 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-04-13 04:57:08 +00:00
Robin Dunn
66cf41cb6c Correct GetString check message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32376 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-02-26 00:19:35 +00:00
Vadim Zeitlin
c6179a847d 1. added SetSelection() to wxItemContainer and removed its declarations
from derived classes
2. made wxItemContainer::Select() non virtual: it simply calls SetSelection()
3. renamed wxListBox::SetSelection(n, select) to DoSetSelection() for all
   ports and defined non virtual SetSelection() overloads in the base class
   to avoid virtual functions hiding


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32004 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-02-13 17:08:27 +00:00
Kevin Hock
687706f5e7 Use event modifiers and accessors rather than m_ variables directly, which are now protected rather than public with 2.4 compatibility disabled
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31454 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-01-18 15:08:15 +00:00
Julian Smart
6305fabeeb VC++ 5 compatibility
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31086 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-12-20 09:24:55 +00:00
Włodzimierz Skiba
50c6bf91c8 Fixme removal.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31009 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-12-14 20:32:24 +00:00
Włodzimierz Skiba
c34924f7bc OW fixes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30425 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-11-10 19:54:00 +00:00
Włodzimierz Skiba
84f7327f47 Undo last change due to STL.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29805 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-10-12 15:30:08 +00:00