Commit graph

34240 commits

Author SHA1 Message Date
Frank Schoenheit [fs]
e24827c9a7 gridsort: respect the collator got in the service ctor 2011-01-18 22:12:03 +01:00
Frank Schoenheit [fs]
7ad4e757c3 gridsort: getStandardLessPredicate: optional collator instance for string comparison 2011-01-18 22:11:21 +01:00
Frank Schoenheit [fs]
73c1b2ce0d gridsort: corrected include 2011-01-18 21:31:48 +01:00
Frank Schoenheit [fs]
de9dba9275 gridsort: introduce XSortableGridDataModel::removeColumnSort 2011-01-18 17:30:17 +01:00
Frank Schoenheit [fs]
961e924dbc gridsort: #163172# added UNO API support for sorting grid data. Implementation still unfinished.
Things missing in the SortableGridData implementation
- add as listener to the delegator, so we're notified of changes
- translate and multiplex those changes
- do own notifications (XGridDataListener.dataChanged) when the sort order changed
- (possibly) update the sort order when the data in the current sort-column changed
2011-01-18 11:49:20 +01:00
Frank Schoenheit [fs]
e4e1fd5c19 gridsort: outsorced the STL-compatible Less-predicates for UNO types from enumerablemap.cxx to a dedicated file, which can be used in other places, too 2011-01-18 11:49:19 +01:00
Frank Schoenheit [fs]
4a593d1851 gridsort: initial support for sorting the table data (unfinished)
What's there is a IMouseFunction implementation which cares for sorting the ITableModel's data,
by the column whose header was clicked. This is dependent on the model declaring support for sorting,
by exposing a ITableSort interface.

Missing pieces:
- no UNO equivalent, yet (neither as design nor as implementation)
- visualization of the current sort order/column
2011-01-18 11:49:19 +01:00
Frank Schoenheit [fs]
dc971d000d gridsort: GCC WaE 2011-01-18 11:15:23 +01:00
Frank Schoenheit [fs]
405a0f6cf1 gridsort: fix getRowAtPoint 2011-01-17 14:25:56 +01:00
Frank Schoenheit [fs]
bdf5a65cb5 gridsort: do not activate header cells 2011-01-17 14:18:20 +01:00
Frank Schoenheit [fs]
0621b2ecec gridsort: fix impl_getColumnForOrdinate to take row headers into account 2011-01-17 13:54:53 +01:00
Frank Schoenheit [fs]
79610ce242 gridsort: moved the row selection functionality into a IMouseFunction implementation, too 2011-01-17 13:49:08 +01:00
Frank Schoenheit [fs]
1a31d1f55b gridsort: outsourced the column-resizing functionality into a dedicated class.
Less cluttering in the InputHandler implementation this way.
Same outsourcing is still to happen to the row selection functionality.
The upcoming feature of column sorting will be a IMouseFunction implementation, too.
2011-01-17 13:14:28 +01:00
Frank Schoenheit [fs]
dbff9efb81 gridsort: delegated the column resize functionality to the DefaultInputHandler implementation 2011-01-17 12:19:05 +01:00
Frank Schoenheit [fs]
9c169fd0b2 gridsort: UpdateTip: don't ignore the given text 2011-01-17 09:13:00 +01:00
Frank Schoenheit [fs]
7031556478 gridsort: made the row title a row heading, being an Any instead of a string 2011-01-16 22:18:58 +01:00
Frank Schoenheit [fs]
00abb7e08b gridsort: GCC WaE 2011-01-16 21:18:35 +01:00
Frank Schoenheit [fs]
622c6ecd2f gridsort: adjust column indexes when inserting columns 2011-01-16 21:09:59 +01:00
Frank Schoenheit [fs]
91b997afa6 gridsort: add disposal checks and some rudimentary mutex locking 2011-01-16 20:59:30 +01:00
Frank Schoenheit [fs]
2ecf0e5d2a gridsort: ComponentGuard class, encapsulating the 'lock mutex and check for disposal' patern 2011-01-16 20:59:12 +01:00
Frank Schoenheit [fs]
d35c316d00 gridsort: XMutableGridData: renamed updateRow to updateRowData for consistency; introduced updateRowToolTip as shortcut for multiple updateCellToolTip calls 2011-01-14 15:13:23 +01:00
Frank Schoenheit [fs]
db9388daa6 gridsort: if the tooltip text contains line breaks, force the tip style to be 'balloon' - the 'normal' style doesn't support line breaks 2011-01-14 13:59:11 +01:00
Frank Schoenheit [fs]
f64fd0b4a2 gridsort: +QUICKHELP_TIP_STYLE_BALLOON, to be used with ShowTip, to force a tip to appear in balloon-style 2011-01-14 13:56:26 +01:00
Frank Schoenheit [fs]
f30518cc97 gridsort: re-add tooltip support to X(Mutable)GridDataModel, this time more explicit, and less magical 2011-01-14 13:19:09 +01:00
Frank Schoenheit [fs]
d0cdc38a67 gridsort: TableDataWindow: use Help::ShowTip instead of Help::ShowQuickHelp.
This means it doesn't interfere with the "normal" quick help (which is a singleton really dedicated to, well,
quickly displaying help). Also, it means we do not need the QUICKHELP_NO_DELAY flag.

To prevent flickering when repeatedly showing such a tip, introduced Help::UpdateTip, which updates an existing
tip, instead of destroying the old tip window, and creating a new one.

Used this new UpdateTip also in the BrowseBox, means means some less flickering there, too.
2011-01-14 12:23:42 +01:00
Frank Schoenheit [fs]
acaf4f1d75 gridsort: moved tabledatawindow from svtools/inc/svtools to svtools/source/table - this is not a public file, after all 2011-01-14 11:44:35 +01:00
Frank Schoenheit [fs]
13cbe08da8 gridsort: fix calculation of auto-alternating-color: Do not adjust towards WHITE, but towards the color of the other rows 2011-01-14 11:31:43 +01:00
Frank Schoenheit [fs]
b6d8855706 gridsort: added runtime-checks (non-pro only) for consistency of m_aColumnWidths 2011-01-14 11:28:11 +01:00
Frank Schoenheit [fs]
b7f4e6a2d6 gridsort: respect runtime-changes of the table metrics (in the UNO control model) 2011-01-14 11:07:02 +01:00
Frank Schoenheit [fs]
dfe2edc22c gridsort: ouch. Removed IAccessibleTable::GetSelectedRows. It exposed an internal implementation detail, and in
fact some clients (the A11Y API implementation) exploited this, e.g. by simply adding elements to the array,
without the owner (the TableControl/_Impl) ever noticing it. Replaced that with a working API.

In this course, removed XGridSelection::getMin/MaxSelectionIndex. Pretty useless IMO, unused, and ugly to
implement.
2011-01-14 11:04:24 +01:00
Frank Schoenheit [fs]
d41461c3de gridsort: replaced RemoveSelectedRow by ClearSelection - the first implementation was buggy, anyway, and ClearSelection is the same as SelectAll( false ) (which was the only use case) 2011-01-14 09:50:02 +01:00
Frank Schoenheit [fs]
4394d293a5 gridsort: fixed invalidateRowRange for some edge cases 2011-01-14 09:32:50 +01:00
Frank Schoenheit [fs]
3d914bead0 gridsort: rowsRemoved/Inserted: update scrollbars 2011-01-13 16:52:06 +01:00
Frank Schoenheit [fs]
efd8adea09 gridsort: added runtime (non-pro) consistency checks for TableControl_Impl::m_aSelectedRows 2011-01-13 16:49:07 +01:00
Frank Schoenheit [fs]
3fbbc7662d gridsort: cleaned up (parts of) the selection-related code 2011-01-13 16:28:06 +01:00
Frank Schoenheit [fs]
2702fbdf06 gridsort: moved *all* members from TableControl to TableControl_Impl - this is what the PIMPL pattern is good for, right? (Removed the AccessibleTableControl_Impl class in this course, not needed anymore) 2011-01-13 15:07:42 +01:00
Frank Schoenheit [fs]
4c08b4b3d3 gridsort: reworked the notification system for inserted/removed rows
In this course, more code which was in SVTXGridControl was moved to the places it belongs to, effectively
meaning that the TableControl has better chances than before to be used outside an SVTXGridControl (though
we're not there, yet).

Also, the selection-related methods in TableControl/_Impl got some refactoring love, so the implementation
details are hidden in the Impl class now, instead of being exposed to an exploited by the TableControl.

And while we were there ... The XGridSelection does not provide a |selectColumn| anymore (there was no
preparation whatsoever for column selection, anywhere, thus it was a complete dummy.)
Also, its de/selectRows methods have been removed: They have questionable use, and make implementation
rather difficult, compared with multiple calls to de/selectRow.
2011-01-13 14:08:36 +01:00
Frank Schoenheit [fs]
6fba3904b9 gridsort: removed the XGridDataModel.removeRows flavour which took an arbitrary sequence of indexes - this makes the handling, in particular for listeners, unnecessarily complex, and has a questionable use only 2011-01-12 21:59:36 +01:00
Frank Schoenheit [fs]
c9eead1b99 gridsort: impl_getCellRect: no need to adjust the rect as returned by the TableCellGeometry instance. If there are really situations which rely on this, there'y buggy, and need to be fixed properly. 2011-01-12 14:34:38 +01:00
Frank Schoenheit [fs]
c2718415ea gridsort: consolidated retrieval of text draw flags - on incarnation of those 10 lines of code is enough, isn't it? 2011-01-12 14:09:38 +01:00
Frank Schoenheit [fs]
8578ba4dc7 gridsort: consolidated and fixed table cell rendering.
Instead of tampering with the target areas for cell rendering in various different places, do this in the
renderer only, in a single defined way.
2011-01-12 14:00:45 +01:00
Frank Schoenheit [fs]
6c8d7babb6 gridsort: reworked the color model for grid controls. Now supporting more than two alternating colors,
having more reasonable defaults for the colors (VOID instead of some hard-coded values, which thus are unusable).
Also, introduced new property UseGridLines controlling whether or not to paint the table grid.
2011-01-12 12:34:24 +01:00
Frank Schoenheit [fs]
76365bac02 gridsort: don't display cell tooltips unconditionally. Instead, when we use the cell content as tooltip, display it if and only if the renderer tells us it would not fit into the cell 2011-01-11 21:45:47 +01:00
Frank Schoenheit [fs]
69e0e16e0e gridsort: +QUICKHELP_NO_DELAY 2011-01-11 21:45:01 +01:00
Frank Schoenheit [fs]
5e725b448f gridsort: PaintRowHeader's RowPos argument was superfluous - removed 2011-01-11 17:21:55 +01:00
Frank Schoenheit [fs]
0bbace39b3 gridsort: XGridControl: add methods to retrieve the current row/col 2011-01-11 14:00:09 +01:00
Frank Schoenheit [fs]
e73cc303e5 gridsort: Help::ShowQuickHelp: new flag QUICKHELP_FORCE_REPOSITION, which re-positions the window even if the quick help text didn't change. Use this in the table control, this prevents the help text appearing too far from the mouse position 2011-01-11 13:35:20 +01:00
Frank Schoenheit [fs]
3d7ca63d0e gridsort: IAbstractTableControl renamed to ITableControl, added a few more methods previously found at the TableControl_Impl only 2011-01-11 13:26:40 +01:00
Frank Schoenheit [fs]
16028c42b1 gridsort: XGridControl::getItemIndexAtPoint renamed to getRowAtPoint; introduced getColumnAtPoint 2011-01-11 12:36:41 +01:00
Frank Schoenheit [fs]
012b72f488 gridsort: +XGridColumn::HelpText, to be displayed as tooltip for the column header 2011-01-11 11:42:27 +01:00