Commit Graph

62 Commits

Author SHA1 Message Date
Vadim Zeitlin
ada789fa57 Fix warning about %lu being used with an int in 32 bit wxOSX build.
NSUInteger is unsigned long in 64 bit builds, but unsigned int in 32 bits, so
case it to long explicitly to avoid warnings about using it with %lu format
specifier.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@76284 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-04-05 10:44:27 +00:00
Vadim Zeitlin
1e879aa8b6 Don't crash in wxOSX wxDataViewChoiceRenderer if selection was cancelled.
Check for the index validity and ignore the value of -1 as it is passed if the
selection in the popup was cancelled.

Closes #16017.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@76045 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-02 15:49:52 +00:00
Vadim Zeitlin
853ee8bf12 Get rid of compile- and run-time checks for OS X < 10.5.
As 10.5 is the minimal supported version, it doesn't make sense to check for
it (or even earlier versions) during the build or run-time.

Closes #15580.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75028 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-10-17 12:34:12 +00:00
Vadim Zeitlin
ccef4c3ad1 Fix column sorting UI in wxDataViewCtrl under wxOSX.
Use -outlineView:didClickTableColumn: delegate method instead of
mouseDownInHeaderOfTableColumn: one to ensure that:

(a) We don't sort the column if it's being dragged/resized (closes #15340).
(b) We sort the column on mouse up, not down (closes #15386).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74635 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-08-06 17:36:17 +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
Václav Slavík
17473a770a Fix lots of warnings reported by Clang.
Mostly potentially lossy implicit conversions in headers (long->int). Also dangling else warnings. Struct/class mismatches.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74473 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-10 16:41:34 +00:00
Stefan Csomor
083c9c2088 associate the outline view with the impl, fixes #13748
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74109 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-04 16:18:53 +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
Stefan Csomor
77c8efc8c3 fixing overrelease and out-of-bounds write, fixes #13725
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72996 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-23 07:55:58 +00:00
Vadim Zeitlin
58b1ae5e72 Fix some typos in the comments in wxOSX code.
Closes #14636.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72435 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-08 16:03:34 +00:00
Stefan Csomor
2331e2cecc always use calibrated colors, fixes #14482
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72065 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-13 06:51:04 +00:00
Vadim Zeitlin
119e862ca9 Fix wxDataViewChoiceRenderer behaviour in wxOSX/Cocoa.
Changing the value of a "choice" cell in wxDataViewCtrl didn't work correctly
in wxOSX/Cocoa because wxDataViewChoiceRenderer used the base class version of
OSXOnCellChanged() which passed the integer index we received from NSOutlineView
to the model instead of the expected string.

Fix this by overriding OSXOnCellChanged() in wxDataViewChoiceRenderer itself
and using its argument as an integer index of the selection because this is
what it is, at least under OS X 10.7.

Closes #14373.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71939 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-02 14:36:56 +00:00
Vadim Zeitlin
9b98a2bcfd Fix appearance of items without icons in wxDataViewCtrl in wxOSX/Cocoa.
We need to set the cell image to none explicitly if the item doesn't have any,
otherwise the image for the previous cell would be reused.

Closes #14112.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70941 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-19 12:53:25 +00:00
Václav Slavík
ee1377e1fa Add wxDataViewCtrl::GetCurrentColumn().
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70375 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-17 14:05:07 +00:00
Vadim Zeitlin
fc672a2aba Use string column identifiers with NSTableColumns in wxDataViewCtrl.
Starting with OS X 10.7 the column identifiers used in NSOutlineView must be
of type NSString, so convert the code to use string identifiers instead of
wxPointerObject.

Closes #13661.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69996 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-12-13 21:08:17 +00:00
Vadim Zeitlin
f0e867e97c Fix wxDataViewCtrl compilation with 10.7 SDK under OS X.
Add the required casts to wxPointerObject.

Closes #13661.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69928 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-12-04 19:23:42 +00:00
Vadim Zeitlin
aadbdd1699 Remove wxHeaderColumn::SetAsSortKey() and only use SetSortOrder().
The two member functions, SetAsSortKey() and SetSortOrder(), were doing almost
the same thing but differently and the former was only used in the generic
wxDataViewCtrl implementation and not implemented in the native GTK/OS X one.

Remove SetAsSortKey() entirely and only keep UnsetAsSortKey() which is still
needed by generic/MSW wxDataViewCtrl. But only SetSortOrder() should now be
called to indicate that the column is used for sorting.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69174 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-21 15:07:46 +00:00
Vadim Zeitlin
fa93d732e2 Harmonize wxDataViewCtrl::GetSelection() behaviour in all ports.
wxDataViewCtrl::GetSelection() now always returns invalid item if more than
a single item is selected in a multi-selection control.

Also add HasSelection() and GetSelectedItemsCount() to allow checking if any
items are selected.

Updated the documentation, all ports and added a test for all these functions.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68844 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-22 12:41:19 +00:00
Stefan Csomor
930d20e710 avoid scrolling to cleared-non existing- data, reload before, fixes #13318
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68194 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-09 06:37:14 +00:00
Stefan Csomor
3dc3b2ab56 fixing uninit vars warning and memory errors
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67889 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-06-08 22:58:57 +00:00
Stefan Csomor
65e3da1909 first implementation for state on custom renderer, see #12890
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67843 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-06-02 09:25:11 +00:00
Stefan Csomor
8a07956565 reactivate commented out method
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67841 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-06-02 08:19:16 +00:00
Stefan Csomor
94156c296f cleanup
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67840 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-06-02 08:18:11 +00:00
Stefan Csomor
07edda049f first stab at supporting custom renderers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67831 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-06-01 20:05:03 +00:00
Robin Dunn
eeea3b039e Virtualize StartEditor and add implementations for the ports that can do it.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67817 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-05-31 19:36:47 +00:00
Dimitri Schoolwerth
d13b34d3f2 No code changes, fixed various typos.
Applied patch by snowleopard2 fixing typos in interface/. Extended the fixes throughout trunk.

Closes #13076.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67384 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-03 20:31:32 +00:00
Stefan Csomor
e7794cf2fe fixing unused params
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67218 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-16 10:58:46 +00:00
Robin Dunn
f8816e49e4 On OSX don't propogate the alignment setting from column to renderer if it is a custom renderer. This allows the Render function to deal with the alignment itself and brings the behavior into alignment (pun intended!) with the GTK and generic DV classes. Fixes #12883
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66706 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-19 08:09:51 +00:00
Václav Slavík
b06ed2f866 Implement wxCOL_WIDTH_AUTOSIZE on OS X.
Only Cocoa build on 10.5+ is supported. Before that, NSOutlineView
didn't have reasonable support for determining cell sizes.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66634 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-07 18:26:58 +00:00
Vadim Zeitlin
98f8e6666b Add the possibility to disable invisible wxDataViewCtrl items.
Add new wxDataViewModel::IsEnabled() and wxDataViewListStore::IsEnabledByRow()
methods and implement support for actually disabling the items in wxOSX/Cocoa
native implementation of wxDataViewCtrl and limited support for it in the
generic version.

We need to implement this in wxGTK using GtkCellRenderer "sensitive" propriety
later.

Closes #12686.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66403 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-12-19 15:02:56 +00:00
Robin Dunn
a2d0722f48 Avoid an endless recursion situation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65625 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-23 21:10:34 +00:00
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
Vadim Zeitlin
1e18430004 Don't lose selection in wxDataViewCtrl::Select() under Mac.
Calling Select() for an item should not deselect the other selected items in
multiple selection mode. This is consistent with the GTK and generic versions
behaviour and also just makes more sense but also document that this is indeed
the desired behaviour just in case.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65226 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-08-09 21:17:51 +00:00
Robert Roebling
f6cb92b81f Implemented wxDataViewColumn for wxOSX/Cocoa
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64552 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-10 12:43:09 +00:00
Stefan Csomor
c8fdb345a0 adding protocol support for 10.6
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63135 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-11 14:19:28 +00:00
Vadim Zeitlin
f49f59d0c9 Send the selected item in wxDVC SELECTION_CHANGED event in OSX/Cocoa.
This event was perfectly useless as it didn't indicate which item was
selected. Do set the selected item now, just as the generic and GTK versions
do.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62604 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-10 18:17:38 +00:00
Vadim Zeitlin
17f5d137d8 No changes, just reformat comments in osx/dataview.mm.
Wrap long lines to be able to read the comments and remove the perfectly
useless "// variable definition" and "// constant definition for
abbreviational purposes" noise.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62603 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-10 18:17:31 +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
a35169b622 Add support for wxDV_NO_HEADER to OS X/Cocoa wxDataViewCtrl.
Also use this flag with the tree control in the sample to test it and also
because it doesn't make much sense to have a single column without title
anyhow.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62601 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-10 17:42:46 +00:00
Vadim Zeitlin
2406d5341f More cleanup of OS X Cocoa wxDataViewCtrl code.
Add wxDataViewItemFromItem() and wxDataViewItemFromMaybeNilItem() functions
instead of repeating the same ugly casts several dozens of times.

Also wrap some more long lines.

No real changes.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62600 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-10 17:42:38 +00:00
Vadim Zeitlin
b0607dd221 Add support for custom attributes to wxOSX/Cocoa wxDataViewCustomRenderer.
Virtualize applying the attributes in a new OSXApplyAttr() function and simply
store the attribute in its wxDataViewCustomRenderer version so that it could
be reused later in Render().

The attributes now work correctly in wxOSX/Cocoa dataview sample too.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62599 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-10 17:42:24 +00:00
Vadim Zeitlin
508f680769 Don't overwrite background in custom renderer in OSX/Cocoa.
Erasing background seems to be unnecessary and was actively harmful for the
selected items which didn't appear with the correct background colour. Just
don't do it at all.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62597 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-10 17:42:04 +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
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
d831e2db16 Return the real column width from wxOSX wxDataViewColumn::GetWidth().
Code used to return the last programmatically set width value instead of the
real column width which could have been changed by user if the column was
resizeable, fix this by returning the current NSTableColumn:width value.

Closes #11397.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62516 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-31 15:57:51 +00:00
Vadim Zeitlin
eda34276d6 Don't show anything in the cells which should be empty in Cocoa wxDVC.
Implement a custom NSTableColumn-derived class to return nil for the cells
which shouldn't show anything at all because they are part of a container row.

This finally fixes the totally wrong display of the first page of the dataview
sample under OS X.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62493 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-24 01:03:36 +00:00
Vadim Zeitlin
9461dd8c71 Use virtual functions to convert NSObject to the correct type in wxDVC.
Instead of trying to determine the type of the value which should be extracted
from the NSObject we receive from NSOutlineView, just pass it to a virtual
method in the renderer which knows which type does it need.

This fixes the problem with editing boolean/checkbox columns and makes the
code more elegant.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62490 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-23 23:49:26 +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
0599fe19d9 Rewrite handling cell value changes in wxOSX/Cocoa wxDVC.
Instead of using a chain of dynamic_cast<>s to find the right type of the
value, construct a wxVariant corresponding to the type of the object we
receive in NSOutlineView:setObjectValue:forTableColumn:byItem and pass it to a
wxDataViewRenderer virtual function.

This fixes assert and allows to edit icon text items under OS X.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62436 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-17 01:04:26 +00:00
Vadim Zeitlin
8e59cbe40c No changes, just attempts to make the code more readable.
Reformat/reindent, use more wx coding style, wrap some extremely long lines.
Use shorter and less Carbon-ish variable names. Clarify some comments.

Also use static_cast<> because there is no need to use reinterpret_cast<> when
a static_cast<> will do.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62435 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-17 01:04:20 +00:00