Commit Graph

86 Commits

Author SHA1 Message Date
Maarten Bent
e2d34e982e Skip all wxDPIChangedEvent
So base classes will process the event too.
This is need for (at least) wxGenericColourButton It has its own handler,
but also needs to handle the DPI event in wxButtonImageData.
2022-01-05 22:47:32 +01:00
Cătălin Răceanu
6fb64da922 Fix selection when wxOwnerDrawnComboBox contains identical items
Ensure that the drop-down selection is correct even if there are
multiple items with the same label in wxOwnerDrawnComboBox.

See https://github.com/wxWidgets/wxWidgets/pull/2544

Closes #19289.
2021-10-16 15:56:40 +02:00
Maarten Bent
1e17e8f500 Improve per-monitor DPI in wxVListBoxComboPopup
Adjust the default item height before the drawing size is calculated.
2021-02-13 01:59:23 +01:00
PB
f57f214122 Remove BCC-specific hdrstop pragma from everywhere 2020-10-12 21:58:37 +02:00
Stefan Csomor
792e4dcced macOS wxTextEntry::GetTextPeer fix for wxGenericComboCtrl (#1931)
* overriding GetTextPeer in generic combo control

* undo 81e3760e4a

* inlining GetTextPeer()

* moving out of line to reduce header include
2020-07-06 17:06:09 +02:00
Stefan Csomor
81e3760e4a avoiding assertion on macOS in wxOwnerDrawnComboBox::DoClear
wxTextEntry on macOS is calling GetEditableWindow to arrive at the native text entry view, which in this case fails, so route things directly
2020-07-04 15:06:38 +02:00
Vadim Zeitlin
366233e400 Add a TODO comment for wxVListBox refactoring
Just note that it would be better to avoid duplicating the code already
existing in another place in wxVListBoxComboPopup::SendComboBoxEvent().
2019-07-21 21:38:59 +02:00
Vadim Zeitlin
cd8dade23c Set event string field for wxOwnerDrawnComboBox events
Call wxCommandEvent::SetString() for consistency with the native
wxComboBox.
2019-07-21 21:37:05 +02:00
Maarten Bent
f74d756ca5 Use DPI Aware wxGetSystemMetrics
If no wxWindow is known, use wxTheApp->GetTopWindow().
Also use a wxWindow for all wxSystemSettings::GetMetric calls.
2019-07-15 00:00:18 +02:00
Artur Wieczorek
3cfec773c9 Replace wxArrayPtrVoid with wxVector<void*> 2019-01-04 21:37:27 +01:00
Artur Wieczorek
ea7f86d9f7 Use wxVector<int> instead of wxArrayInt 2018-11-14 22:37:16 +01:00
Artur Wieczorek
ae3e581bb9 Don't set wxComboCtrl value twice
The value is set once in wxComboPopup::Dismiss() so there is no need to set it again and generate spurious EVT_TEXT event.

See #18260.
2018-11-14 21:25:52 +01:00
Artur Wieczorek
8793e7fc11 Reduce the scope of variables using to index the loops 2018-11-12 23:54:11 +01:00
Artur Wieczorek
dfc5b35b04 Don't make a local copy of the entire array
Use reference to the member array instead.
2018-11-12 23:42:32 +01:00
Artur Wieczorek
3e50405b5f Update index of selected item of wxOwnerDrawnComboBox popup on inserting new item
We have to update index of the currently selected item if value of inserted item is the same as the value of currently selected item (we take lower index in this case) or if new item is inserted before the current selection (current selection index has to be increased in this case).

Closes #14153.
2018-11-12 23:18:09 +01:00
Paul Cornett
98cd5a6b20 Use wxString::clear() instead of assignment to wxEmptyString 2018-05-11 10:52:56 -07:00
John Roberts
f0d5e95412 Fix crash when clearing read-only wxOwnerDrawnComboBox
Check that we have an associated text entry before clearing it.

Fixes a crash introduced by 72fe57ec18
without reverting it as it still seems reasonable to use Clear() here.

Closes #18013.
2018-01-24 16:40:26 +01:00
Vadim Zeitlin
72fe57ec18 Use wxTextEntry::Clear() in wxOwnerDrawnComboBox::Clear()
This seems more natural than calling SetValue(wxEmptyString).

No real changes.
2017-11-07 03:14:49 +01:00
Mikko P
2326ca72f1 Fix owner drawn dropdown row height.
While m_combo->GetFont(); sets the proper font, the size of that font did not affect the character height.
2016-11-17 14:45:01 +01:00
Artur Wieczorek
9b3367a45f Reset client data flag when wxOwnerDrawnComboBox contents is cleared.
When contents of wxOwnerDrawnComboBox with user data is cleared then client data type should be reset to wxClientData_None value.

See #15896.
2016-02-04 21:40:21 +01:00
Dimitri Schoolwerth
8f8d58d193 Use wx-prefixed macros throughout the repository.
Change {DECLARE,IMPLEMENT}_*CLASS and {DECLARE,BEGIN,END}_EVENT_TABLE
occurrences to use the wx-prefixed version of the macros.
2015-04-23 22:00:35 +04:00
Václav Slavík
07fb285c52 Make wxOwnerDrawnComboBox::DoGetBestSize() twice as fast.
Don't call the very expensive wxComboCtrlBase::DoGetBestSize() method
when not needed - it calls wxComboCtrlBase::DoGetSizeFromTextSize(),
which is very expensive.

Also fix the code so that it doesn't apply GetSizeFromTextSize() twice
(once in the base class' DoGetBestSize(), once here).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-08-07 17:33:42 +00:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
Vadim Zeitlin
ce7fe42e84 Provide shorter synonyms for wxEVT_XXX constants.
Use the same short names as are used by the event table macros for the event
type constants themselves. This makes them much more comfortable to use, e.g.
Bind(wxEVT_BUTTON) compared to Bind(wxEVT_COMMAND_BUTTON_CLICKED).

The old long names are still kept for backwards compatibility and shouldn't be
removed as it doesn't really cost anything to continue providing them, but all
new event types should only use the short versions.

Closes #10661.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73850 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-04-25 10:11:03 +00:00
Vadim Zeitlin
e2ac737fba Implement wxComboCtrl::GetSizeFromTextSize().
Improve calculation of wxComboCtrl best size which doesn't work correctly for
non-default fonts as shown by r72935. It is still not perfect but better now.

Closes #14825.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72955 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-14 13:48:23 +00:00
Vadim Zeitlin
39191cbfdb Allow using horizontal cursor navigation keys in non-readonly wxComboCtrl.
Don't intercept Left/Right/Home/End keys until the control is read-only,
otherwise they're more useful for navigating in its text part than in its
drop-down.

Closes #14648.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72485 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-14 22:26:31 +00:00
Vadim Zeitlin
345c78ca5f Use wxDynamicCast() instead of IsKindOf() checks.
wxDynamicCast() is less verbose (due to the absence of "CLASSINFO") and more
compatible with the standard dynamic_cast<>, so prefer to use it when possible.

See #14356.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71624 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-01 11:01:18 +00:00
Stefan Neis
e75e881575 Spelling fixed for comments and a wxASSERT_MSG. Fixes #14022.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70625 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-19 14:49:37 +00:00
Vadim Zeitlin
bf8f10225c Get rid of ugly wxCONTROL_ITEMCONTAINER_CLIENTDATAOBJECT_RECAST macro.
Replace it with wxWindowWithItems<> template class which takes care of
disambiguating between the two inherited Get/SetClientXXX() versions and use
it as a base class in all clases that previously used the macro.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68460 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-30 11:30:08 +00:00
Dimitri Schoolwerth
6636ef8ddf Use wxString's empty() when checking if the string is (non-)empty throughout wx.
Instead of constructs such as if "( s.length() )" and "if (s.length() > 0)" use "if ( !s.empty() )" instead. Similarly for "if (s.length() == 0)" or "if ( s.IsNull() )", use "if ( s.empty() )".
No code changes intended except for a few instances where a construct like "if ( s.length() && wxFileExists(s) )" was changed to not check the length of the string and let wxFileExists handle such cases.



git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66728 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-22 14:38:36 +00:00
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
Jaakko Salli
238b33ab0e Added wxComboPopup::FindItem() to help in deciding how SetValue() should change the value of a read-only wxComboCtrl. This allows wxOwnerDrawnComboBox to have the same behavior as wxComboBox in that respect.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66409 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-12-20 13:51:24 +00:00
Jaakko Salli
f74ab0041b Make wxOwnerDrawnComboBox sorting identical to the MSW sorting (same as wxComboBox)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66398 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-12-17 12:23:34 +00:00
Jaakko Salli
65d30b7950 Mostly change the wxOwnerDrawnComboBox text value using ChangeValue() instead of SetValue()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66395 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-12-17 11:39:38 +00:00
Jaakko Salli
0306e73e63 Make the wxComboCtrl's wxTextEntry interface more complete and consistent. All text is no longer selected on SetValue(), but only when user selects an item from the drop-down list.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-12-17 11:20:50 +00:00
Jaakko Salli
2debe2b120 Removed a return statement from void function
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66389 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-12-16 19:25:31 +00:00
Jaakko Salli
eae20c901b Resolve ambiguity with wxOwnerDrawnComboBox::Clear(), virtual method which is derived from two base classes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66388 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-12-16 18:13:43 +00:00
Jaakko Salli
9ff4b6ccd9 Override wxTextEntry::GetSelection(long *from, long *to) in wxOwnerDrawnComboBox to resolve virtual method hiding issues
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66386 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-12-16 18:07:05 +00:00
Václav Slavík
71dd05d58a Fix wxOwnerDrawnComboBox keyboard navigation with duplicate items.
If the combobox contained duplicate strings (i.e. multiple items with the
same string value, but differing indexes), then navigating to the second
and subsequent ones skipped to the first occurence instead. We need to
preserve the index.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65463 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-03 19:33:18 +00:00
Jaakko Salli
c0c05e79b2 Supress SetFocus() warning in wxVListBoxComboPopup
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64258 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-09 10:29:48 +00:00
Václav Slavík
c765e6fb9d Fix text input and completion in wxComboCtrl and wxOwnerDrawnComboBox.
Both wxEVT_KEY_DOWN and wxEVT_CHAR must be handled and only the latter
used for completion (or any characters input). Don't make incorrect
assumptions about wxEVT_CHAR keycodes either, it's only the Unicode
character and printability that matter.

Otherwise, completion in readonly controls wouldn't work correctly
for e.g. numbers on numpad or non-ASCII characters.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63864 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-05 17:19:04 +00:00
Václav Slavík
10265e6c41 wxOwnerDrawnComboBox: handle Home and End keys as native control does.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63863 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-05 17:18:58 +00:00
Václav Slavík
293987e80c wxOwnerDrawnComboBox: handle numpad navigation keys.
For consitency with the native control, up/down/pgup/pgdown keys should
be handled even when pressed on the numpad.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63861 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-05 17:18:50 +00:00
Jaakko Salli
107defe36a Added wxComboCtrl::SetHint(), GetHint()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62989 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-26 10:33:35 +00:00
Julian Smart
a44c4abe5e Fix on Mac to prevent scrollbars always being shown
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61877 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-11 08:55:59 +00:00
Jaakko Salli
0847e36eff wxTextEntry::SetMargins(), GetMargins() - implemented on wxMSW and wxGTK (GTK+ 2.10+); also added similar functions into wxComboCtrl, deprecated old indent-functions; wxPropertyGrid modified to use the new functionality
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61834 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-05 12:39:12 +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
Jaakko Salli
31329795c4 Made sorting case-insensitive (to match wxComboBox) and fixed sorting in general for combo box classes inheriting from wxOwnerDrawnComboBox
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61401 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-11 07:01:32 +00:00
Jaakko Salli
b5b3c8a0cf Translate keycode(s) into character more consistenly in wxVListBoxComboPopup::HandleKey() (fixes #10395)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58202 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-18 19:57:23 +00:00
Jaakko Salli
697c314b16 Eliminate a warning
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55741 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-19 17:10:17 +00:00