Commit Graph

222 Commits

Author SHA1 Message Date
Robert Roebling
65887bd0f1 Second try to get wxDataViewChoiceByIndex and its name right, hopefully fixes #11970: wxDataViewChoiceRenderer set/get methods should use the current selection
index not a string

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64378 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-21 20:13:49 +00:00
Robert Roebling
559c42a5b2 Make GetIndexOf() and get_path() work for virtual list models, fixes #12073: wxDataViewCtrl crashes when deleting an item
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64362 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-20 18:39:20 +00:00
Robert Roebling
0bddfd416f Don't call super class explicitly so overriding is possible, closes #12025 (wxDataViewVirtualListModel calls super-class' version of certain virtual methods).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64320 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-16 14:44:58 +00:00
Vadim Zeitlin
fd61f68445 No changes, just make wxDataViewEditorCtrlEvtHandler private.
This class is used by wxDataViewCtrl implementation only, there is no need for
it to be in a public header.

Move the class declaration from wx/dataview.h to datavcmn.cpp.

See #11732.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64217 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-05 12:45:14 +00:00
Vadim Zeitlin
66c02e6e33 Pop event handler from wxDVC edit control before destroying it.
This fixes the assert in wxWindow dtor checking that all event handlers pushed
on the window were removed.

Also fix a memory leak by not creating an unnecessary object of wxKillRef
class. In fact remove this class entirely.

Closes #11732.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64216 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-05 12:45:09 +00:00
Vadim Zeitlin
2d6bba4118 Fix memory leak in wxDataViewListStore::DeleteItem().
The item data needs to be deleted in addition to simply removing it from the
internal storage.

Closes #11757.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63635 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-03-05 23:55:31 +00:00
Vadim Zeitlin
c3fe02e952 Use correct width in wxDataViewCustomRendererBase::RenderText().
The text should be ellipsized to fit in the text rectangle, not the total cell
one (which is larger).

See #11558.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62939 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-19 11:17:25 +00:00
Vadim Zeitlin
9e9cfb9115 Restore the use of correct alignment in wxDVC renderers.
The code from old CalculateAlignment() was somehow lost during the
refactoring, restore it in wxDataViewCustomRendererBase::RenderText().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62639 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-14 15:51:50 +00:00
Robert Roebling
8ddda15ba5 Implement and document wxDataViewTreeCtrl::IsContainer(), use it in the sample to not add items to non-containers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62630 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-13 14:14:44 +00:00
Robert Roebling
9c20523110 Correct sorting in wxDataViewTreeStore, fixes #11436, part II
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62628 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-13 13:56:32 +00:00
Vadim Zeitlin
0e17930f43 Fix width of the wxDataViewTreeCtrl column under OSX/Cocoa.
Set the column resizing mode to "automatic" instead of "none" if the control
doesn't show the header. This allows the native control to properly resize the
only tree control column to always take up the entire window size (provided we
don't explicitly create it resizeable, so don't do this).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-10 17:42:58 +00:00
Vadim Zeitlin
62265c2c67 Allow custom wxDataViewCtrl renderers to easily use attributes.
Set up the DC passed to wxDataViewCustomRenderer::Render() to use the font and
colour defined by the item attribute by default so that any calls to
RenderText() from it will use them automatically.

Also added public wxDataViewCustomRenderer::GetAttr() to allow retrieving the
attribute explicitly in Render().

The column using custom renderer in the dataview sample now works as expected
in the generic version; the native ones will be corrected in the upcoming
commits.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-10 17:41:11 +00:00
Vadim Zeitlin
0ead57d528 No real changes, just fix a typo in wxDataViewModel::Compare().
Return -1 from the comparison function instead of -11 when comparing
wxDateTime values. It shouldn't matter which value is returned as long as it's
negative but it is definitely tidier.

Closes #11381.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62517 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-31 15:57:58 +00:00
Vadim Zeitlin
2feacb6eb3 Add wxDataViewListModel base class for list models.
Introduce a base class for wxDataViewIndexListModel and
wxDataViewVirtualListModel instead of duplicating the same code in both of
them making the code difficult to maintain and change.

For now this class is not documented as it is used just to avoid duplication
in the implementation but maybe we should make it public to allow defining
other flat list data models (if this can be made to work in Carbon version).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62499 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-24 21:41:54 +00:00
Vadim Zeitlin
43c64cc6c9 Create model and column in wxDataViewTreeCtrl::Create(), not ctor.
Old code created the tree model and its unique built-in column only in
wxDataViewTreeCtrl ctor but not in Create(), meaning that the behaviour was
very different depending on whether you used base class ctor call or Create()
in a derived class. This was confusing and completely inconsistent with wx API
in which using the default ctor and Create() is supposed to always have
exactly the same effect as using non-default ctor so change this to create the
model in Create() so that it's always done.

Slightly update the documentation and also add wxDataViewTreeCtrl::Init() for
consistency.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62498 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-24 21:41:44 +00:00
Vadim Zeitlin
795dac4c86 Add wxDataViewModel::ChangeValue() and use it in wxDVC implementation.
ChangeValue() is a trivial wrapper calling both SetValue() and ValueChanged().
It allows to replace many calls to SetValue() immediately followed by
ValueChanged() with a single function call which is significantly shorter and
less error-prone (e.g. most of the existing code didn't test SetValue() return
code at all).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62489 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-23 23:49:16 +00:00
Vadim Zeitlin
9aa2e298ae Fixes to comparison operators for wxDVC classes.
Comparison operators for wxDataViewItem and wxDataViewIconText were not inline
and not exported, resulting in linking errors for any code using them in
shared wx build. Fix this by making them inline.

Also correct wxDataViewIconText operator==() implementation to compare icons
as well and to return true when comparing the object with itself.

Finally add operator!=() matching existing operator==() as a class having one
of these operators is supposed to have the other one as well and it costs
nothing to define it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62401 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-14 17:00:28 +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
3569e0d042 Implement wxDataViewTreeStore::DeleteAllItems().
Just delete all root children.

Closes #11063.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61595 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-03 20:42:49 +00:00
Robert Roebling
ca21a4e729 Reduce size of virtual list before sending out delete notification, fixes #10966: wxDataViewVirtualListModel row deletion bug
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61361 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-09 18:26:47 +00:00
Vadim Zeitlin
47a8b1e1ff added EVT_DATAVIEW_CACHE_HINT event (closes #9891)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61331 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-05 15:21:52 +00:00
Robert Roebling
9330d5afb6 Many more corrections and clarifications to virtual index list model use
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61078 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-16 17:59:09 +00:00
Robert Roebling
b879becf6a Correct wxDataViewListModel::RowPrepended
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61066 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-15 19:36:59 +00:00
Robert Roebling
86ba79ed17 In virtual list mode, map first row to 1, not to 0 as this is reserved for an invalid item
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60996 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-11 15:10:52 +00:00
Robert Roebling
0a807957e6 Closes #10495: wxDataViewCtrl needs a way to start the label editor programmatically, also Windows port now emits vetoable ..._EDITING_STARTED event
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60857 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-01 13:57:38 +00:00
Robert Roebling
e86edab05b Add wxDataViewCtrl implementation for OSX/Cocoa (closes #10617: wxDataView for wxOSX-Cocoa)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60552 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-05-08 17:07:50 +00:00
Vadim Zeitlin
657a8a3598 first round of debug/release merge: introduce wxDEBUG_LEVEL, for now defined as 1 if __WXDEBUG__ is defined, i.e. no real changes; don't use __WXDEBUG__ in the headers to keep debug and release builds ABI-compatible; add functions to customize or disable asserts handling
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59711 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-21 23:36:37 +00:00
Robert Roebling
862de7b3d9 Make wxDataViewModel::Compare() const
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59469 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-10 13:37:26 +00:00
Robert Roebling
3e978cf7b2 Add wxDataViewEvent for vetoing label editing (see also #10495)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59456 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-09 20:48:04 +00:00
Robert Roebling
c937344c8f Commit most parts of #10495 wxDataViewCtrl needs a way to start the label editor programmatically
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59438 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-08 21:41:57 +00:00
Francesco Montorsi
8af28fabff fix crash when using wxDataViewListStore::DeleteAllItems
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59359 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-06 00:01:11 +00:00
Vadim Zeitlin
9b11752c4f require semicolon after wxDECLARE/DEFINE_EVENT() (closes #10456)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58718 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-07 18:59:25 +00:00
Vadim Zeitlin
f54e5c1a4f another fix for wxUSE_DRAG_AND_DROP==0 build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58485 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-28 21:36:57 +00:00
Robert Roebling
0cdbed4cfa Compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58258 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-21 13:59:35 +00:00
Paul Cornett
8c2654ce3d build fixes and cleanup
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58245 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-20 17:50:51 +00:00
Robert Roebling
e4de825ee6 Add event based Drop API
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58240 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-20 13:46:21 +00:00
Robert Roebling
591cc82deb Simplified event based Drag API for wxDataViewCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58238 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-20 11:58:52 +00:00
Robert Roebling
15cac64f75 New eventb based Drag interface for wxDataViewCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58236 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-19 22:27:06 +00:00
Robert Roebling
95b20f41b6 Rename XxxxCol() -> XxxxColumn() and resolve inheritance problems from it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58231 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-19 14:44:47 +00:00
Robert Roebling
2f21b2be1b Forgot DeleteChildren()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58223 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-19 11:53:34 +00:00
Robert Roebling
e700e2964b Move model notification code of tree store from the store to the control, implement Insert() methods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58222 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-19 11:42:54 +00:00
Robert Roebling
dc813e6c7e Added wxDataViewListCtrl, use it in the sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58136 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-16 15:04:00 +00:00
Robert Roebling
8eff6c56f0 Change GetValue() and SetValue() to GetValueByRow() and SetValueByRow() in row based interface, Add wxDataViewListStore (WIP)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58124 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-16 11:23:37 +00:00
Vadim Zeitlin
3c77890141 add more flexible and safer template Connect() overloads (#10000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58039 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-12 14:26:13 +00:00
Robert Roebling
4219d8b027 Add wxDataViewCtrl::ExpandAncestors() and call it from both EnsureVisible() and Select()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57511 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-23 14:56:07 +00:00
Robert Roebling
a881f34e49 Call Expand on an item's parent chain in EnsureVisible
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57441 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-20 15:11:38 +00:00
Robert Roebling
5179bc0bca Fixes #10247: wxDataViewCtrl - event is generated when clicking on a non existing row
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57377 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-16 21:57:40 +00:00
Vadim Zeitlin
4bfd0ed552 don't access inexistent column in wxDataViewTreeCtrl::OnSize() (this bug also probably explains why this code doesn't actually work: size event is generated before we have any columns)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57189 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-08 13:25:09 +00:00
Vadim Zeitlin
e2bfe6731e - Rewrite wxHeaderCtrl to be virtual-like: even if we don't need an infinite
number of columns in it, it turns out that getting column information from
  the associated control is much easier than copying it into the control.
- Provide wxHeaderCtrlSimple derived class which can be used easily if
  callback approach of wxHeaderCtrl is not needed.
- Because of wxHeaderCtrl virtualization, port-specific implementations of
  wxHeaderColumn are not needed any more and were removed.
- Use wxHeaderCtrl in the generic wxDataViewCtrl: this means that column
  events are broken right now in it as they haven't been implemented by
  wxHeaderCtrl yet, this will be fixed a.s.a.p.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57161 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-07 14:47:55 +00:00
Vadim Zeitlin
e215c9959c suppress (harmless) unused parameter warnings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57137 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-05 22:48:25 +00:00