Commit Graph

207 Commits

Author SHA1 Message Date
Vadim Zeitlin
80ce465c64 Add wxDataViewCtrl::{Set,Get}CurrentItem().
Current item is the same as the selected item in single selection mode but in
multiple selection mode there was no way to neither get this item nor change
it before so add the new functions to allow doing this now.

The new methods are implemented for the generic, GTK and OS X/Cocoa versions
but only stubs are provided for OS X/Carbon.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65228 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-08-10 12:53:03 +00:00
Václav Slavík
ce5abbf9f5 Fix wxDataViewCtrl to omit expander space for all kinds of lists.
List-only models don't have expanders and so the control shouldn't
reserve any space for them; the notion of expander column doesn't make
sense here.

Previously, this was done correctly only for wxDataViewVirtualListModel;
"ordinary" list models, such as the one used by wxDataViewListCtrl, were
treated as generic tree models and 0th column had ugly empty space
reserved for (never used) expander.

This patch fixes it by adding IsListModel() helper function in
addition to existing IsVirtualListModel(). Some of the
IsVirtualListModel() tests were changed into IsListModel() checks as
appropriate.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65140 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-29 20:54:00 +00:00
Václav Slavík
780e4fd003 Fix gcc warning in wxDataViewListCtrl::ItemToRow().
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65138 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-29 15:30:11 +00:00
Václav Slavík
fa629adae4 Add index-based selection functions to wxDataViewListCtrl.
These are convenience functions for work working with indexes, for
consistency with other wxDataViewListCtrl methods.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65122 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-27 21:45:50 +00:00
Václav Slavík
17de95e4e0 Add item<->row mapping helpers to wxDataViewListCtrl.
These are commonly needed when using wxDataViewListCtrl, yet they were
only available in wxDataViewIndexListModel.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65121 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-27 21:45:45 +00:00
Robert Roebling
9ca2afd1db Make calls wxDataViewModel::ItemDeleted() etc. non-virtual as they are not supposed to be overridden
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65082 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-24 15:30:03 +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
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
Vadim Zeitlin
c80cde0001 Add support for custom attributes to wxGTK wxDataViewCustomRenderer.
Call SetAttr() to store them in wxDataViewCustomRenderer before rendering it
and also honour the attributes in RenderText() (by reusing the same code we
already use for wxDataViewTextRenderer).

The attributes now work correctly in dataview sample under wxGTK as well.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62596 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-10 17:41:58 +00:00
Vadim Zeitlin
6eec70b984 Big wxDataViewCtrl renderer classes refactoring.
This commit adds no changes in functionality but paves way for the upcoming
improvements of wxDataViewCustomRenderer.

First, introduce wxDataViewCustomRendererBase class in order to allow
implementing behaviour common to custom renderers in all ports in this class
instead of triplicating it.

This required splitting monolithic dataview.h in more parts, now we have
wx/dvrenderer.h which defines wxDataViewRendererBase and the new
wxDataViewCustomRendererBase and includes wx/port/dvrenderer.h which define
wxDataViewRenderer and wx/port/dvrenderers.h which defines all the other
renderer classes.

Also bring renderers hierarchy in the generic version closer to other ports:
all standard renderer classes now inherit from wxDataViewRenderer and not
wxDataViewCustomRenderer in for consistency with the other ports.
wxDataViewRenderer itself still does derive from wxDataViewCustomRendererBase,
unlike elsewhere, but this is unavoidable considering that all generic
renderers are custom ones.

Finally do some cleanup in OS X part of the code: correct indentation,
spacing, comment style.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62589 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-10 17:40:58 +00:00
Vadim Zeitlin
74d9b8fbd6 Make public and document wxDataView{Index,Virtual}ListModel::GetCount().
This method is useful for getting the number of items in the control and
should be part of the public API instead of being marked as internal.

Closes #11380.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62519 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-31 15:58:19 +00:00
Vadim Zeitlin
7fadac8872 Make wxDataViewModel::GetAttr() and GetAttrByRow() const.
This is an incompatible change but having to use a non-const model pointer to
call a clearly logically const version was simply too ugly so change it while
we still can.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62500 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-24 21:42:04 +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
b372f20e7e Add wxDataViewModel::HasValue().
This method allows to simply test whether we have a value at the given row and
column or not (as it happens for container items unless they too have columns).

Currently this method is not virtual and is not used by the implementations
yet but it might make sense to make it virtual and allow overriding it in the
future.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62492 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-24 01:03:24 +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
c937bcac0f Add ellipsization support to wxDataViewCtrl.
Implemented ellipsization in the generic, GTK and both OS X Carbon and Cocoa
versions but it currently doesn't work well in GTK as it changes the item
alignment unconditionally, this will need to be fixed later.

The behaviour for the columns is currently inconsistent between ports too:
under MSW they (natively) use wxELLIPSIZE_END, under GTK -- wxELLIPSIZE_NONE
and under OS X the same ellipsization mode as the column contents, i.e.
wxELLIPSIZE_MIDDLE by default.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62433 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-16 21:35:26 +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
2d0d781336 Remove wxDataViewTextRendererAttr by merging it with wxDataViewTextRenderer.
There is no reason to have a separate class for rendering the text honouring
the attributes defined for it, wxDataViewTextRenderer itself already does this
perfectly well.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62383 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-12 13:59:25 +00:00
Vadim Zeitlin
2fa90e33ea Use default composite controls attributes for wxDataViewCtrl.
wxDataViewCtrl should use the same colours/fonts as the native list and tree
controls.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62152 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-26 16:43:12 +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
e4e83d3ad6 Make wxDataViewModel derive from wxRefCounter
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61048 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-14 14:11:07 +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
Francesco Montorsi
ce468dc28b don't return hardcoded constants for empty renderers, introduce wxDVC_DEFAULT_RENDERER_SIZE.
Some code styling review (indentation, long line wrapping, etc)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59392 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-06 22:56:27 +00:00
Francesco Montorsi
fca0d8b506 some more const-ification of HasEditorCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59383 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-06 20:40:36 +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
Francesco Montorsi
6effcb7c9d fix for when wxUSE_DRAG_AND_DROP==0 (e.g. in wxX11)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58820 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-10 00:15:37 +00:00
Kevin Ollivier
4879f2120c Enable wxDVC on OS X Cocoa using the generic control.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58784 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-08 23:24:29 +00:00
Vadim Zeitlin
5e14f15d48 yet another wxUSE_DRAG_AND_DROP==0 compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58727 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-07 21:46:31 +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
664e13143e renamed wx/ptr_shrd.h to wx/sharedptr.h; split wx/ptr_scpd.h in wx/scopedptr.h and wx/scopedarray.h; extracted common parts into new wx/checkeddelete.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58634 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-03 12:01:46 +00:00
Vadim Zeitlin
62c9b3d73f another wxUSE_DRAG_AND_DROP==0 compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58593 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-01 12:51:33 +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
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
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
832df17108 Document wxDataViewListCtrl, minor corrections
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58141 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-16 15:44:12 +00:00
Robert Roebling
bda698ed19 Document wxDataViewListStore
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58138 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-16 15:20:42 +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