Commit Graph

74 Commits

Author SHA1 Message Date
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
d4953dd469 Remove unused anywhere wxDataViewRenderer::RightClick().
Code calling this method was removed by r53020 but its declaration was still
left (almost certainly by mistake) in the header, remove it now too.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62578 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-09 01:57:52 +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
84fc95da58 Use correct colour for selected items in generic wxDVC.
wxDataViewCustomRenderer::RenderText() taking attributes must use correct
colour for the selected items if no attribute is specified as it can be (and
is) called directly and not only via the compatibility overload.

This fixes the display of the selected items in the dataview sample broken by
recent changes.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62417 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-15 16:53:45 +00:00
Vadim Zeitlin
38c349189a Implement attributes support in generic wxDataViewIconTextRenderer.
Simply override RenderWithAttr() instead of Render().

Update the sample to show that this works now.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62395 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-12 22:44:15 +00:00
Vadim Zeitlin
3e60a3c147 Make generic wxDataViewProgressRenderer fill the entire cell.
After the fixes in the previous commit it is finally possibly to make the
progress renderer expand to the entire cell area instead of taking a
fixed width, it is enough to simply override RenderWithAttr() instead of
Render() and ignore the alignment as this avoids the use of (arbitrary and
hardcoded) wxDataViewProgressRenderer::GetSize().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-12 22:44:09 +00:00
Vadim Zeitlin
a6f1201f97 Handle cell alignment in the renderer itself in generic wxDVC.
Instead of using wxDataViewRenderer::GetSize() and rendering the cell into the
appropriate part of the rectangle, pass the full rectangle and the alignment
of the cell contents in it to the renderer itself.

This fixes the bug with bold text being truncated in the "attributes" column
of the dataview sample and is also generally more flexible as the renderer may
decide itself what to do with the extra space.

It also somewhat reduces the code duplication between CreateItemBitmap() and
OnPaint().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62393 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-12 22:44:03 +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
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
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
Robert Roebling
220bfe1596 Make all instances of HasEditorCtrl() const, not just a few
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59376 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-06 19:07:40 +00:00
Francesco Montorsi
bc4f1ff265 Indentation/coding style adjustments.
Make the columns resize when dragging the columns in the header control intercepting the EVT_HEADER_RESIZING event

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59360 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-06 00:05:05 +00:00
Vadim Zeitlin
c0c133e13b add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-08 11:45:59 +00:00
Vadim Zeitlin
9adeb77af4 add missing wxUSE_DRAG_AND_DROP checks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58347 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-23 23:55:17 +00:00
Robert Roebling
3fdf86f91e Override GetDefaultBorder, currently changes nothing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58292 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-22 13:33:00 +00:00
Robert Roebling
821baf7da4 Skeleton for generic Drag code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58247 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-20 19:04:03 +00:00
Vadim Zeitlin
938161a6a4 compilation fix after wxScrollHelperNative renaming to wxScrollHelper
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57532 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-24 17:13:20 +00:00
Robert Roebling
739a839903 Added wxDataViewCtrl::IsExpanded(item)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57374 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-16 21:23:55 +00:00
Vadim Zeitlin
702f5349c6 implement column reordering support in wxMSW wxHeaderCtrl; use it in wxDataViewCtrl (and make difference between column indices and positions more clear in it)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-10 15:56:11 +00:00
Vadim Zeitlin
46234a0383 restore sorting functionality of the generic wxDataViewCtrl but implement it on top of wxHeaderCtrl support for it now; don't have const and non-const overloads of GetSortingColumn() in wxDVC returning different things (could this have really been intentional?); added GetSortingColumnIndex()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57206 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-08 21:13:29 +00:00
Vadim Zeitlin
aef252d9da implement column resizing events in wxHeaderCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57190 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-08 14:40:42 +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
56873923f3 extract (and expand and clean up and document) the header window implementation used inside the generic wxDataViewCtrl in a separate wxHeaderCtrl class which could be reused in (generic) wxListCtrl and, most importantly, wxGrid later
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57093 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-03 21:53:10 +00:00
Robert Roebling
788432e343 Correct TAB handling for generic wxDataViewCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56482 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-21 19:10:25 +00:00
Robert Roebling
236a34ef3e Fix crash again
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56210 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-10 10:02:35 +00:00
Robert Roebling
2571a33fd3 implement GetSizeAvailableForScrollTarget
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56204 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-09 19:18:28 +00:00
Robert Roebling
19723525ce Added InsertColumn( pos, col ), some reformating
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53684 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-21 08:47:21 +00:00
Robert Roebling
e51bf69961 Adapt MSW's renderer's alignment to use column header's alignment by default
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53091 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-04-08 11:17:54 +00:00
Robin Dunn
5cfb6fee91 Make some wxDataViewCustomRenderer virtuals consistent across platforms.
Add missing WXDLLIMPEXP_ADV.
Add missing impl for wxDataViewEvent::GetPosition

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-17 21:00:06 +00:00
Robert Roebling
ad3867930c Partial impl of auto resizing columns
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51205 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-14 11:04:57 +00:00
Robert Roebling
fc8c1a15b2 Implement rest of MSW's wxDataViewCtrl's native column reordering
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50940 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-28 23:07:30 +00:00
Robert Roebling
99c75ebc5e Patch from Hartwig and me for implementing reorderable dataview columns. Works on OS X and GTK+, breaks OS X a litte
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50919 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-26 18:30:56 +00:00
Robert Roebling
4264606eed Add wxDataViewTextRendererAttr, blind noop under wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49730 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-08 22:51:58 +00:00
Vadim Zeitlin
4660b55651 fixes for DLL build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49592 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-02 00:05:09 +00:00
Robert Roebling
52e750fc75 Added wxDataViewCustomRenderer::RenderText() for renderer simple text in platform dependent way, added wxDataViewSpinRenderer
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49272 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-10-20 20:09:10 +00:00
Robert Roebling
736fe67c66 Added PrependColumn methods and short cuts. Added test for DeleteColumn to sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49233 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-10-18 20:56:38 +00:00
Robert Roebling
453091c269 Add wxDataViewCtrl::GetColumnPosition() stubs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48655 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-13 13:29:19 +00:00
Robert Roebling
21f47fb900 Add wxDataViewCtrl::GetSortingColumn() stubs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48654 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-13 12:57:40 +00:00
Robert Roebling
24c4a50f43 Patch from Bo, implements mouse hover, default sort
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48457 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-29 20:29:59 +00:00
Robert Roebling
57f2a65292 Applied patch from Bo, WIP
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48424 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-28 09:32:43 +00:00
Robert Roebling
afebb87be1 Patch from Bo for recent API changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48398 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-26 14:48:29 +00:00
Robert Roebling
a87b466df3 Correct signature of HitTest()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48369 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-24 20:00:32 +00:00
Robert Roebling
fbda518cb7 Minor API changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48368 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-24 11:21:52 +00:00
Robert Roebling
66e09788ab Patch from Bo, adapt generic code to new API, add GetItemRect and HitTest
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48223 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-20 17:26:11 +00:00
Robert Roebling
6154212e51 Change EnsureVisble() to including column parameter, implemented it for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48206 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-19 21:44:34 +00:00
Robert Roebling
b7e9f8b136 Bo's patch adding Selection API and some more changes, doesn't compile yet
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48182 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-19 19:03:01 +00:00
Robert Roebling
704c349086 Patch from Bo for generic wxDataViewCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47492 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-16 10:37:04 +00:00
Robert Roebling
3b6280beb2 Bo's patch for generic code, more sorting code, WIP
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47374 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-12 12:58:28 +00:00
Robert Roebling
aba9bfd00a Bo'd patch to make wxDataViewCtrl compile again (4th attempt
to actually commit).



git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47257 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-09 10:38:22 +00:00
Václav Slavík
b5dbe15d0b added WXDLLIMPEXP_FWD_FOO macros in addition to WXDLLIMPEXP_FOO for use with forward declarations (in preparation for GCC visibility support)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47254 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-09 10:09:52 +00:00