piDogDataView.Release Notes

Scope: Public
Release Notes [New] Added cellValueAt(row,column)=value setter method as alias to Cell(row,column)=value for clarity [Mac] Setting CellBackgroundColor now overrides UsesSystemColors [All] Misc fixes for errors when used in an api1 style project [All] Fix to allow returning true from mouseDownScrollingLayer to prevent focus change. [All] Fixes for text color and row height when printing [All] More threaded access fixes [Win] Fix for CellContainer rendering not drawing certain controls [New] Added DataView.ColumnDateFormat and ListColumn.DateFormat [New] Added CellTextAt method for easier differentiation from cellValueAt [All] Fix for display issues when hiding many rows [All] Fix default formatting of integer and floating point cell values [All] Fix for setting rowcount to less than current value [All] Fix to some issues with threaded use [All] Fixed several possible NilObjectExceptions [All] Fixed custom column sort [All] Fix for display issues when hiding many rows [Win] Fix for GDI leak on Windows [Win] More effective cellContainer rendering [All] Miscellaneous fixes for Focus [All] Added internal flag to prevent case where handling of sortColumn event triggers the event repeatedly. [All] Backdrop Image wasn't using new resolution aware method. [New] removed remaining deprecated items [All] Cell Editor no longer resizes with window [All] Cell Editor again visible when scrolled under header [All] Fixed issue where hiding all rows would cause scrolling as though none were hidden [All] Fixed single pixel gap on the right edge of the view when bordered and no vertical scrollbar visible [All] Fix various alignment issues with BackdropImage and OverlayImage [All] ScrollingImage/BackdropImage/OverlayImage now render internally to a proper resolution for the display. [All] CompareRows even now follows standard where 1=greater than -1=less than [Mac] Fixed "ghost" cell editor [Mac] Fixed font weight [Win] Fixed borderwidth when UI scaling in effect [Win] Fix for misalignment of rendering when scrolling area smaller than scroller bounds [New] Updated to API2 DesktopControl [New] Removed all API2 deprecations [New] Changed many items to new API2 style names (search "deprecated" in the demo project or see documentation in download for DataView) [New] Added AutoDarkMode property to automatically convert colors to their dark mode equivalents when set [New] SelectAll event allowing overriding default behavior [Change] Select All menu now only selects visible rows [Change] SelectedRows now returns visible(rowHidden=false) selected rows [Change] SelectedCells now returns visible(row/column hidden=false) selected cells [Demo] Database demo window now uses DataView.loadFromDB rather than a customized datasource. [All] Improvements to gridline drawing [All] Many internal scrolling fixes and improvements to reliability [All] Column resizing now works properly again [All] Fix miscalculated scrolling size when unhideAll is used [All] Fixes for CellContainers including row dragging and inactive colors [All] Fix missing show/hide button on group rows [All] Fixed alignment of image for rows as dragItem [Mac] Fix for failed column drag when vibrant header in use [Mac] Fixes for Vibrancy view positioning behind dataview [Mac] Now allows choosing vibrant material for header view [Win] Fixes for datepicker cells not accepting keystrokes [Win] Fix for incorrect cell edit alignment and tracking [Linux] Headers no longer show in disabled state when control loses focus [IMORTANT] When updating to this version, you will need to do a global search and replace "DataView" with "DataView" in your project (run it in a copy first to avoid issues) [New] Added cut/copy/paste and select all handlers [New] Added loadFromDB function [New] Added FormatCellText event to allow customizing cell rendering without a custom datasource subclass [New] Added SelectionChanged Event [New] Added event for PaintDatePickerIcon [New] Added rowIdentifier(value as string) set/get methods [All] Fix for DatePicker not properly accepting clicks [All] Made drag row Pressed less sensitive to help reduce accidental drags [All] Scrolled event now includes byX and byY parameters [All] ColumnResize event now fires for expanding last column width [All] Fixes for rendering date cells when a datetime is assigned [All] Some internal optimizations mainly affecting loading speed with large row sets [Win] Fix for issues with double-click [Linux] Improvements to native scrollbar rendering [New] Now allows passing an array of variants to AddRow method [SelectionChanged] HeadingTextPaint now passes x and width byref to allow changing the location and size of text using built in rendering [Bug] Fix for tabbing out of editableText Cell into CellContainerCell not keeping focus [Bug] DatePicker now allows a full 1 second to type a date [Demo] Inspector window follows more nicely on macOS [New] Added CopyDelimiter and CopyLineBreak properties to allow customizing how cells are copied as text (default=TAB,CRLF) [New] Added Title() method to xWindowWrapper for Xojo cross version compatibility [All] Fix for potential exception in Draw_ResizingColumns [All] Fix for header not scrolling horizontally properly [All] Fix for failure to respect changed value when handling cellDidEdit. [macOS] Setting a material on a DataView now behaves when dataview is within a container. [Win] Improvements in how listHighlightColor is read from OS [Win] Improvement to how dpi changes are detected [Win] Now handles hidpi better on Windows Fix for error running on Windows Fix for error when placed on DesktopUIControl [All] Added SortChildRows function to datasource. Allows for keeping child rows under parents when comparerows is used. [All] Sort no longer automatically called when a cell is changed [Bug] Fix for double click causing next click to fail [Bug] Fix for exception when placed on DesktopWindow [Bug] Fix for wrong graphics scale in celltextpaint and headertextpaint on retina/hidpi display [New] Internal rendering overhaul. [New] FPS greatly improved for HIDPI/Retina [New] using dashed gridlines no longer slows rendering speed [New] Added CellTextWidth method to get the required width to display the full text for a given cell [New] Added ListColumn.AutoExpandWidth() to allow for automatically expanding column width to show all text in cells of that column [New] Added property DefaultMaxColumnWidth to allow setting a default max width for new columns [New] Added EndEditing parameter to cellDidEdit to allow preventing editing of next cell when tabbing out of editing cell [SelectionChanged] ***** DataSource renamed to dvDataSource to avoid naming conflicts ***** [All] Fix for DesktopPopupMenu cells not displaying the currently assigned value [All] Fix for potential exception when user resizing columns [All] Fix for situations where a dataview is embedded in a panel inside a desktopContainer [All] (pidogScrollingCanvas) Some improvements to scrolling when a drag is near the edge of the control [All] (pidogScrollingCanvas) Home and End keys now scroll to top and bottom of view [All] Fixed a possible exception when resizing columns [Mac] Fix for column alignment Center/Right on M1 Macs [Win] Fixed a bug preventing running on Windows [New] Added property ScrollToFocusOnSort to allow disabling scroll animation when sorting or adding rows to a sorted list [New] Added AutomaticHeadingHeight [New] Added xCompatibilityMod to allow interoperability between Desktop API1 and API2 [Bug] Prevents IllegalCastException when placed on TabPanel or Container with Desktop API2 [Bug] Fix for ScrollToRect, ScrollCellIntoView not accounting for scrollbars. [Demo] Inspector now displays negative values properly [New] Added headingHelpTag [New] Added event ScrollabilityChanged and properties CanScrollVertical and CanScrollHorizontal [New] Added UsesThemeHighlightColor property to allow DesktopControl over whether the user chosen tint color is used as as row selection color with UsesSystemColors=true on Windows. [All] Fixed issue with scrolling and row pickup being slow with a very large list [All] Improved scrolling when SnapToRowTops is true with a large list [All] Fixes for when scrollbars show/hide [All] Fix for cell borders when scrolling past left edge with locked columns. [All] Fixed a bug in RemoveRow where depopulate values could be called after the row was removed causing values to be saved to the wrong row. [All] Fix issue where DoublePressed could be called twice [Win] Improvements for scrollbar rendering when scroll buttons are visible on Win10+ [SelectionChanged] Changed DoublePressed(row,column) event to CellDoubleClick(row,column) [SelectionChanged] Added DoublePressed(x,y) event [New] Added HeadingTextBold property to render all column headers as bold text [New] Added PageUp, PageDown, PageLeft, and PageRight events [New] Horizontal pagescroll now tries to scroll to closest column boundary [New] Added PageScrollToColumnBounds to allow turning off new page-scroll-to-column behavior [New] Added HeadingTextPadding property to allow DesktopControl of padding space around heading text [All] No longer sets empty string as cell value when adding empty row [All] Now draws gridlines full width when columns do not fill the view [All] Fixed misc issues with gridlines and cell borders with paintemptyrows set. [All] Gridlines now render with pixel accuracy again for sharp appearance [All] Using CompareRows event to impliment custom sort now much faster with long lists [All] Fixed piDogGeometry.doubleRect constructor with zero width or height not setting bottom and right values respectively [All] Fix for cellBorders and Gridlines when using columnspan or rowspan [All] Fixed a NilObjectException [All] Fix for black background in celleditor with Xojo > 2019r1.1 [All] DeleteAllRows now resets LastIndex to -1 [All] Adjusted firing of cellclick to allow changing selectiontype during the event to affect the current selection Pressed. [All] Minor cell editor adjustments [All] Small fix when hierrarchical is set after adding folders. [Mac] Fixed inactive progressbar rendering under macOS Big Sur [Win] Fixed an issue with CellTextHeight when zoom<>1.0 [Win] Fixed a potential crash when closing windows containing DataView [All] Fix for cellBorders and Gridlines when using columnspan or rowspan [Win] Removed an errant "®" from source code preventing running on WIndows OS's 1.15.6 [All] Added DragReorderRowsOut event to provide the opportunity to choose to delete dragged rows or restore them [All] Added LazyRendering option to provide smoother scrolling by allowing row rendering to be deferred if a frame is taking too long to render [All] Fix for index cells not highlighting text correctly. [All] Now clears Selections when changing CellSelectionMode [All] Fixes for cell Vertical alignment and positioning [All] Fixes for cell text positioning shift when changing column size where text becomes truncated [All] Fix for last row not rendering gridlines when partially visible [All] Fixed some issues where a right click during a drag could cause the drag to become stuck in place [All] Fixes for lag when setting many cell heights in same column [All] Focused cell now follows drag reorder and column reorder [Win] Fix for DesktopPopupMenu raising event with old value on windows. [Win] Fix for extra pixel visible next to vertical scrollbar [Win] Fixed some issues with column dragging under Windows OS with screen scaling >1 [Win] Fix for container rendering under Windows on Xojo pre-2018 [Win] Partial Fix for CellContainer flicker on Windows with older Xojo versions [Win] Fixes an issue with scrolling after a cellcontainer has had focus [Win Linux] Added arrows to native scrollbars on Windows and Linux [Linux] More adjustments for scrollbar rendering [Win] Fix for glitch expanding folders [Win] Fix for glitch in cellBorder alignments [Bug] Fix for compilation errors on older Xojo versions (pre 2017) [Demo] Improved Inspector behavior [Demo] Removed items from main demo that are available in Inspector. [Win] Fixed a crashing bug when closing a container DesktopControl with a DataView embedded. [All] Fixed FloatingGroupRows behavior when no childRows visible [All] Clicking text in a DesktopCheckbox cell now checks/unchecks DesktopCheckbox [Win] Fixed potential crashing bug on window Closing. Important Fix!!! [Win] Fixed potential exception when tabbing out of last cell with container focused [New] Reworked several aspects of scrollers. Primarily for Window and Linux. [All] changes to improve handling of focused cell when the parent folder is collapsed [All] ScrollerOnLeft now adjusts first column properly to avoid obscured content [All] Scrollwheel deltas now passed Byref to allow modification of the delta values [Windows/Linux] Scrollwheel deltas now more reasonable with long lists [Mac] Native Scrollers now work with no scroller slots again. [New] CellKeyDown now fires for a focused cell. Editing mode not required. [Bug] Fixes for click outside Cell Editor not finishing edit [Bug] Fix for Cell Editor not retaining focus (0 row) [Bug] Fix for edge drag at bottom scrolling incorrectly [Bug] Fix for Cell Edit turning black with Xojo 2019 r3+ [New] Added CellContainer.FillCellWidth and FillCellHeight properties to replace reliance on defunct LockLeft,LockTop etc. [Bug] SnapToRowTops now more reliable and accurate [Bug] Scrolling lag corrected when paintEmptyRows=true or using Gridlines [Bug] Empty rows now respect Column.DefaultColumnSpan property [Bug] CellContainer insets corrected for heirarchical lists [New] You can now set the varType of a column to treat values in that column as that type of value ie me.column(x).vartype=varType(1.0) //set type to double [New] Added inspector Window to demo to allow Viewing and modifying properties of Demo Items. [New] Added SortIndicatorPaint event to allow custom drawing of column sort indicator [Demo] Reorganized Demo folders more logically [Docs] Added example code for several events. [All] CellTextPaint now passes x and width byref to allow modifying location of built-in text. [Bug] Fix for issue where cellContainer would shift when cell was activated [Bug] Fix for Cell Editor not sizing correctly, esp on Win7 [Bug] Fix for group row rendering glitch [Bug] AddChildRow now sets parent row as folder if not already set [Bug] CellPicture now adds padding between cell picture and cell text [Bug] No longer raises an exception if cell formatting functions (cellBold etc) are called out of the existing column bounds [macOS] Fixed a rendering issue for cellContainers when switching between light and dark modes [Win] No longer tries to emulate theme color for selected rows. [Linux] Fixed issues with DesktopPopupMenu cells and dateChooser modality/placement [New] Added CheckAllChecked event to allow custom handling of check-all heading DesktopCheckbox [New] Added RowBackGroundColor(index as integer) [New] Added RowBold(index as integer) [New] Added RowFont(index as integer) [New] Added RowItalic(index as integer) [New] Added RowTextColor(index as integer) [New] Added RowFontSize(index as integer) [Bug] DataViewListboxStyle and DataViewFIleBrowserStyle subclass now respects overrrides of various properties [Bug] Replacing DataSource now keeps DefaultRowHeight in place [Bug] Column TextFont/Italic/Bold now work as expected again [Bug] Certain Fonts now render again in tight cell spaces [Bug] Fixed issue with gridlines not removing line in cells with columnSpan. [Bug] Adding a step to distribution to ensure inspector properties get added for Xojo 2019r2.1+ [Bug] Fix for IllegalCastException when editing a cell. 1.15.2 [Demo] Fixes to database demo for Xojo2019r3 [Demo] Added nil checks to avoid exception with nil recordset [New] Added DefualtColumnSpan to ListColumn class to allow using a column for it's header only [New] CheckAllCheckbox now checks newly aded rows if checked [New] ColumnCheckallState method for setting Checkall state [New] Locked Rows now excluded from column sort [All] ContextualMenu events now bubble up properly [All] Speed improvements to gridLine rendering when no CellBorders or CellHeights/ColumnSpans are set [All] Improvements to scroll-on-edge-drag [Bug] Fix for CellPicture Heights on non-retina display [Bug] Fix for scaling of empty columns on Retina displays [Bug] CellTextpaint now fires for Progressbar cells [Bug] Fixes for automatic checkboxes when columns rearranged [Bug] Fixed minor visual glitch when expanding/collapsing folders [Bug] No longer scrolls to focused cell when expanding a row [Linux] More fixes for cellcontainer click/drag behavior. [New] Added CacheColumnsDuringResize to allow turning off the default cached column rendering during window resize. [Win7] Fix for CellEdit on Win7 not wrapping text during edit. [Linux] Improved AutoExpandCellEditor behavior on Linux. [All] Various internal classes no longer appear in Library pane [Bug] Fixed an issue where first row couldn't be edited when at 2x+ zoom [Bug] Cell editor now reflects font and size of cell being edited [Win] Character Wrap now supported on Windows targets [Bug] Fixed a potential exception in render_column [Demo] Added AddRow and DeleteRow to Database Demo/DBDataSource [New] All datasource accessors to rows() array now use RowID method to allow overidding by subclasses [Bug] Fixed an issue where a celledit could overlap heading if top of dataview was > 0 [Bug] Fixed issue with tabbing to a cell in a sorted column [Bug] Scrolling to Cell after editing a sorted column now works as expected [Bug] Fixed inconsistent handling of mouseup [Bug] Fix for bug that would allow cell editfield to float when the list is scrolled during edit [Bug] Fix for handling of AddChildRow when the parent has multiple levels of children [Bug] Fix for possible exception related to TimerPDS [Bug] Now allows scrollwheel events to pass through when no scrolling available [Bug] Fix for piDogScrollingCanvas registration code [Demo] Added code to prevent white backgrounds on contactList demo on Windows OS's. [All] dvDataViewInternals and other secondary items no longer appear in Library pane of IDE [Bug] No longer causes stack overflow when setting usesSystemColors from ThemeChanged event [Bug] Fixes for RowTop esp when list has 1 row [Bug] Internal fix for Alternatng row sequencing [All] Added DrawsFlatHeaderSeparators property to automatically draw vertical lines between header cells [Mac] UsesAlternatingRowColors can now be changed when UsesSystemColors = true [New] Checkboxes now follow text when center aligned and move to the right end when right aligned [Bug] Fix for possible issues when using dataview.columndefaults to pre-set-up columns [Bug] Fixed blurry header with vibrantHeader set [Bug] Fixed OutOfBoundsException in drag/drop between 2 dataviews [Bug] DataSource changes now only update parent dataview. [Bug] Floating Group alignment adjusted by 1-pixel [Bug] Collapsing an empty Folder or Group row no longer causes scroll position to jump. [Bug] Added more checks for string to NSString conversion to prevent crash when conversion fails [Bug] Fix that caused HasBorder Dataview to allow slight horizontal scroll when not needed. [All] Misc minor optimizations [All] Fixes for Xojo 2015 [Demo Bug] Database demo fix for sortcolumn infinite loop bug [Mac] Fix for potential "dead zones" when using native scrollers. [Win] Fix for 1 pixel misalignment of native scrollers. [Win] Now runs under Windows XP [Win] Fix for System hightlight Color on Windows 10 [Win] Fix for cellRect 1-pixel offset [All] Misc minor optimizations [Bug] Fix for InitialValue being loaded twice at Opening. [Bug] Fix for DynaPDFMBS support missing default for cellValue call [New] Added LockedRows property and LockRows() method to allow locking a number of rows to top of list. [New] Added LockedColumns property along side LockColumns method [New] Added LockedColumnCount property in addition to LockColumns() method [New] Added requirement for third paramter (default) to cellValue method. [New] Added shift-click rectangle selection behavior for shift-click with both cell sellection and multiple selection modes. [New] InitialValue can now be set via code after Opening. [All] Optimized speed of adding columns [All] Optimizations to scrolling responsiveness [All] Made improvements to floating group headings behavior. [Bug] Fix for gap in rendering with a single row in a DataView [Bug] Fix for shift-click and command-click selection functions [Bug] Fixed Single selection mode behaviour with command-click and shift-click [Bug] Fix for blank area at bottom of list when paintEmptyRows=true [Bug] Fix for click tracking and rendering in custom scrollers [Bug] Fixed a bug that could cause a rendering slowdown [Mac] Improved trackpad scolling gesture response in LockedColumn And LockedRow areas [Linux] Fixes for TextScaling and CellContainer rendering [Demo] General improvements to scrolling in option pane. [Bug] Fixed an issue preventing cellContainers from rendering on first paint. [Bug] Fix for potential OutOfBoundsException during column resize. [Bug] Improved edge alignment of non-native scrollers [Bug] Fix for demo bugs if run in pre Xojo 2015r3 IDE [Bug] Fix for disclosure triangles in pre 2018 IDE [Win] Cleaned up minor issue that could potentially cause rare crash on quit. [All] Removed some items deprecated by Xojo [All] Improvements to look and feel of folder animations [Bug] CellEdit now returns 0 if the user deletes the value when the column type is a number type. [Bug] Fixed a possible KeyNotFoundException on Opening in Catalina. [Bug] Fix for potential exception when lockedColumnCount > ColumnCount [Bug] Fix for potential exception in iFocusedCell getter [Win] [hidpi] [piDogScrollingCanvas] Fix for artifacts on Windows [Win] Eliminated some unneeded duplication of scrollingImage [New] Added CellFormatString() to compliment ListColumn.FormatString [Mac Bug!] Fixed an issue preventing mouse clicks in Native Scrollers [Win] Fixed a "blank space" rendering issue with locked columns [Linux] Fix for header sort triangle rendering [Linux] Fix for checkall DesktopCheckbox not working [Bug] Added overrides to allow more thread safety [Bug] Fixed potential exception when tabbing through empty DataView [Bug] Fixed an issue where rows following an inserted row may not be redrawn properly 1.14.6 [New] Added CellCueText and ListColumn.CueText to provide a string to display to the user when a cell value is Nil [Mac] Improved handling of system colors (Proper ColorSpace and selection color pre-mojave) [Mac] No longer leaves artifact on tabPanel and pagePanel if vibrancy enabled [Bug] Select all now ignored when selectionMode=SelectionSingle [Bug] Programatically selecting a row with SelectionMode=SelectionSingle now deselects other rows [Bug] ScrollingLayerSizeChanged event now only fired if size truly changed [Optimization] Internally datasource is no longer a computed property. This improves rendering speed. [Optimization] Row IDs now allocated dynamically. This allows much faster operation for on-demand views. [Optimization] Eliminated unneeded internal checks for window being nil. [Removed] EnableVibrancy now ignores includeTitleBar as it is too unreliable. [Bug] CellAction now fires again when editable cell is edited [Win] Fixed a stackoverflow on WIndows when editing a cell [Win] Scrolling now works during cell editing [SelectionChanged] UsesSystemColors no longer overwrites previous value of UsesAlternatingBackgroundColors when set/unset [SelectionChanged] UsesSystemColors and UsesSystemHeaders now override color setting rather than replacing them. This allows you to set the value to true and grab any system colors you need and then set the value back to false without losing the currently configured settings. [New] Added CopySystemColors to allow grabbing all system theme colors and to still be able to override desired values. [Improvement] Improved speed when adding many empty rows at once. [Bug] Fixed clipping of rows beneath locked columns [Bug] Setting listIndex now also updates current location for keyboard navigation [Mac] Now handles DarkMode switching 100% reliably [Bug] HeadingTextPaint now scales graphics context properly [Bug] Fixed a potential exception on quit [Bug] Fix for possible infinite refresh loop when setting cell values in RowWillRender [Linux] Fixed misc issues related to text scaling [Demo] Added Contacts List Example [All] More improvements to tab navigation between container controls [All] Added duration parameter to NavigateToNextCell method [Mac] Now handles zoom gesture over locked columns [Mac] Fixed bug when clicking a combobox in an embedded container [Linux] Containers now accept mouse clicks again [Linux] DateChooser now shows in the correct position relative to the selected cell [Linux] Containers now accept mouse clicks again [Win] Fixed issue with calculating CellTextHeight during window resize [Mac] Setting HeadingFontSize now respected in Opening event [Mac] Fix for pre Mojave macOS when enabling vibrancy [Mac] Fix for lag when scrollbars need to be hidden or shown on macOS [Bug] Fix to allow scrollers to resize smaller than 50 pixels if needed [Demo] Several adjustments. Live adjustment of header and rowHeights works again. [Performance] Increased cache size to improve scrolling [Mac] ColumnWidths now correct with Native scrollers. [Win] Fixed a bug with Native Scrollers not working in some cases [Bug] Fix for potential OutOfBoundsException in piDogScrollingCanvas [Bug] Dragging a column no longer triggers vertical scrolling 1.14.4 [Demo] Added new main demo menu window [New] Implemented Tab-Navigation in CellContainers and Tabbing between CellContainers [SelectionChanged] Click in a DesktopPopupMenu cell now allows drag within cell and release to still fire menu [Mac] No longer requires a second click to Opening the last closed DesktopPopupMenu [Win] Improved CellContainer rendering for Windows 7 [Win] Fixed an issue compiling for 64bit [Win] Fixed FunctionNotFoundException on Win7 [Bug] Fixed some issues with cell borders when rowspan is used [Win] Fixed an issue compiling for 64bit [Win] Fixed FunctionNotFoundException on Win7 [SelectionChanged] Click in a DesktopPopupMenu cell now allows drag within cell and release to still fire menu [New] Added SelectedState property to CellContainer for adjusting appearance based on state [New] Added SelectedStateChanged event to CellContainer for adjusting appearance based on state [SelectionChanged] Selection now follows tab-key navigation [Bug] Calling editCell() while another cell is editing will now save edited value calling CellDidEdit with a FocusLost Pressed [Bug] Fix for incorrect draw of edit field when mousing to bottom of view with editing cell at or under header [Bug] Fixed potential OutOfBoundsException when resizing after adding/removing columns [Bug] Fix for setting DesktopPopupMenu Cells via code when CellOptionList is used vs ColumnOptionList [Bug] Fixed cellRect drawing bug [Win] Changed calculation of mouse location to avoid errors on multi-display systems [Win] Added Poll method to TImerPDS to prevent failed timer firings during mouse events [Misc] More properties defer adjusting scrolling size to avoid some undesired scrolling when removing and adding rows/columns 1.14.3 [Bug] Internal handlers now use weakref to avoid issues with DataView in container [Bug] Locked Columns with cellHeight now render correctly again. [Bug] Dragging rows to end of list now exposes all available rows. [Bug] Dragging rows out and back in to DataView no longer displays unneeded animations [Bug] CellTextChange now fires again when a cell is edited [Bug] Fixed issues with column heights when resizing while scrolled to end of list [Bug] AutoScrolling should work more smoothly and reliably [Bug] CellMouseExit now fires when mousing out of the view. [New] OptionList.index now defaults to -1 [All] DesktopCheckbox click hits now more accurate [Bug] Fixes for disclosure triangles not receiving mouse clicks in certain circumstances. [Mac] Mouse clicks no longer blocked at right edge when useNativescrollers set and AllowAutoHideScrollbars is true [Win] Printing of cell backgrounds now fills cell 1.14.2 [Demo] Now sets Font menu index's to zero to avoid lag during Opening [Demo] Now sets Font menu index's to zero to avoid lag during Opening [Demo] Reorganized Pressed buttons [New] CellDidEdit event now includes Pressed parameter to determine whether cellEdit ended due to Enter Key, Esc, Tab, or Click away. [New] CellDidEdit event now includes byref AllowMoveFocus parameter to allow keeping the cell in edit mode. [Compatibility] Added conditionals for backward compatibility with Xojo 2014 [Compatibility] Added conditionals for backward compatibility with Xojo 2014 [Compatibility] LastIndex is now a property rather than a function [Performance] AddColumn now defers recalculating column widths [Performance] Cleaned up AddColumn and RemoveColumn functions [Bug] MouseUp and MouseDrag now fire when True is returned from MouseDown [Bug] Fixed a crash in apps built with unregistered version of DataView [Bug] Setting Selectable on a row or cell now prevents selection as intended [Bug] PaintEmptyRows now functions correctly again. [Bug] Fixed a possible crash during resize [Bug] SelectionChanged event now fires after row reorder [Bug] DesktopPopupMenu Cells using CellOptionList instead of ColumnOptionList now properly sets cellValue when selected [Bug] FontSize and HeadingFontSize now return the system default values if set to zero. [Bug] TextFont and HeadingFont now return "System" if no value is set 1.14.1 [Compatibility] ColumnSortDirection now accepts -1 for the column [Compatibility] HeadingType now accepts -1 for the column [Compatibility] Added PressHeader method [Compatibility] Made DataViewListboxStyle class more customizable by respecting IDE settings for Headingheight, DefaultRowHeight. [Compatibility] LastIndex is now a property rather than a function. [Bug] Fixed an exception when resizing to 0 width or height [Bug] All events now map Column correctly when accessColumnsByInsertionOrder is set. Includes HeadingConstructContextualMenu, CellConstructContextualMenu, HeadingContextualMenuAction, CellContextualMenuAction, DragOver, CellDropObject, DropCells, CellKeyDown, CellAction, CellDidEdit, CellWillEdit, ColumnDrag, ColumnDragTo, DoublePressed, DrawCellRect, CompareRows, GridlinePaint, CellGotFocus, CellKeyDown, CellLostFocus, CellTextChange, prepareDatePicker, CellBackgroundPaint, CellTextPaint, HeadingBackgroundPaint, HeadingTextPaint [Bug] ESC key now cancels a cell edit again. [All] Borders now drawn with OS colors [Mac] DesktopPopupMenu cells now correctly select the current DesktopMenuItem. [Mac] Fixed a ghosting problem when editing a cell in dark mode [Mac] Fixed a crash when moving a window between screen where a dataview container had been added and removed. [Mac] Now respects HasHorizontalScrollBar and HasVerticalScrollBar with native scrollers on mac [Win] Now responds live to scaling changes on Windows 10 [Linux] DesktopPopupMenu cells now highlight the currently selected item. [HIDPI] Reworked some HIDPI rendering to be more efficient and more accurate. [Demo] Fixed some overlapping controls in options pane [Demo] Event log no longer prevents demo from quitting on WIndows [Bug] MouseDown now fires for right-click [Bug] SelectionAsText no longer raises exception [Bug] ColumnWidths inspector value respected again [Win] Fix for miscellaneous timing issues. Selection not drawing and others [Win] Cell text now renders more nicely 1.14.0 [New] Column resizing now optionally creates a temporary datasource containing the visible rows to use in rendering during resize operations to prevent slowdowns due to repetative queries if the datasource is using a database backend. [New] Added UseTempDataSourceForColumnResize property to clone the visible rows for use during column resize operations to reduce overhead and improve performance when a database is used as backend for DataSource. [New] Added DataViewListboxStyle and DataViewFileBrowserStyle example subclasses [New] Added UsesSystemSortIndicators to separate rendering preference [New] Added UsesSystemHeader to separate System Headers, Colors, and SortArrows [New] Added ThemeChanged event to allow for adjusting rendering colors and styles etc when the system colors/theme changes [New] Added HeadingType() method for Listbox compatibility [New] Added CellTypes.Date cell type to store and display dates, but without a chooser [New] Added ClearBorders method to remove all cell borders [New] Added method AddColumn(heading as string, fieldName as string="") [New] Added DataView.ColumnDefaults to allow setting default values for new columns added to the dataview [Demo] Event logging window efficiency improved. [SelectionChanged] Cells of DesktopPopupMenu or Date Type now store Index and TotalSeconds respectively to reduce memory usage [SelectionChanged] Made default values closer to Xojo Listbox appearance and behaviors [SelectionChanged] Checkboxes, DesktopPopupMenu cells and date cells now use system colors only when UsesSystemColors is set [Bug] Fixed some "Jumpy" column resizing behavior [Bug] Fixed some lag when dragging to select multiple rows [Bug] MouseDown now fires when right clicked [Performance] Improved ProgressBar rendering [Performance] Now invalidates cell when setting value rather than refresh to avoid lag when adding rows [Mac] More header improvements to make column resizing/reordering appearance more seamless. [Mac] More Dark-Mode improvements [Win] Fixed "White text" rendering issue [Linux] Major improvements to theme rendering on current Linux flavors [HIDPI] Fixes for heading rendering and scrollbars on Windows and gridlines on Mac in HIDPI [Bug] Fixed an issue that could cause LastIndex value to be wrong when adding rows with a sortcolumn selected. [Bug] Setting a cell value in the sorted column now causes the sort to be performed. [Performance] Improved ProgressBar rendering [Performance] Now invalidates cell when setting value rather than refresh to avoid lag when adding rows [Demo] Event logging window efficiency improved. 1.13.5 [IMPORTANT] DataView Users must now call DataView.Register() rather than piDogScrollingCanvas.Register() [New] Added "edit as DesktopTextControl" parameter to CellKeyDown event to allow verifying entry and preventing exiting an edit by intercepting "Enter" and "Tab" keystrokes [New] Added WillNavigateToCell event to allow modifying the next cell to receive focus when navigating via keyboard. [New] Added NavigateToNextCell to allow simulating navigation via a Tab press [Mac] Fixed an issue where alignment could be wrong after scrolling when using native scrollers and scrolling area is smaller than the DesktopControl. [Bug] Fix for failed zoom gestures when window is resized. [Bug] No longer requires constant redrawing scrolling layer when scrolling in raster mode. [Linux] removed code preventing compile with Xojo pre 2017r2 [Mac] Fixed scrollerbounds on retina displays with locked columns set [Mac] Fixed header drawing with vibrant header on retina displays [Mac] Fixed some header transparency issues with UsesSystemColors set to True [Mac] Vibrant Header now fills gap on the right edge when scrollbar is visible [Mac] Fixed scrolling image alignment with native scrollers [Win] Row background colors with alpha now render correctly. [Win] Scrollerbounds adjusted for HIDPI displays with lockcolumns set 1.13.4 [Demo] Added Event Log window to allow viewing events as they fire. [New] Added Parent method to Datepicker class to allow checking which DesktopControl opened the current picker [New] Added ColumnData getter/setter to allow accessing a single column's data all at once [New] Added optional FieldName parameter to AddColumn [Mac New] Added NSVisualEffectMaterial and NSVisualEffectMaterialWIndow for better Mojave/Darkmode/Vibrancy support [Mac New] EnableVibrancy now includes Material parameter as NSVisualEffectMaterials [All] Mouse event now suppressed while dateChooser visible [Mac] Fixed a one-pixel gap at top of vertical scroller [Mac] Fixed an issue where Vibrancy did not work as expected [Bug] Fixed issues with MouseEnter and MouseExit not firing [Bug] cellMouseEnter/exit now fire reliably and suppressed when mouse is over header [Bug] No longer turns on builtInScrollers when setting UseNativeScrollers=false [Bug] ScrollPastX and ScrollPastY now fire again. [Bug] Fixed cell assignment using -1 for row or column parameter. 1.13.3 [Bug] Fixed column lookups with AccessColumnsByInsertionOrder set. Specifically cellClick, columnByTitle, columnByFieldName, cellHelpTag and FocusCell. [Bug] Fixed alignment offset for dateChooser cells. [Bug] Fixed some more issues with scrollbars covering part of last column [Mac] Fixed native scrollbar alignment 1 pixel error 1.13.2 [New] Added AlignmentVertical and AlignmentHorizontal properties to piDogScrollingCanvas [Bug] Fixed jitteryness when resizing window with empty rows in DataView [Bug] Fixed an issues where returning true from MouseDown breaks other functionality [Bug] Fixed black lines on the edges of header above vertical scrollbar. [Bug] Fixed a potential exception in hovering timer. 1.13.1 [New] Reorganized inspector values to make settings easiers to find [New] Added property ControlCellsUseSystemFont to allow using default fonts and sizes or customized ones for DesktopCheckbox, popup and date chooser cells. [Bug] listColumn.clone now copies optionlist to new column [Bug] cellOptionList now reverts to column.OptionList [Bug] Fixed a small gap on the left and right of the list when autosized 1.13.0 [All] Assigning an optionList to CellOptionList(r,c) now sets the cell to be CellTypes.Popup [All] AdjustScrollerBounds now exposed to DataView [All] Now accepts Heading(-1) assignment like Xojo listbox [Bug] Fixes to content width when ZoomScalesColumnWidths=true [Bug] cellEdit now adjusts bounds correctly on Retina displays [Bug] Children of Group Rows now remain with parents when sorting [Bug] Fixes to issues related to empty space to right of last column [Bug] cellOptionList now clones the optionList on set to avoid 'drone' behavior [Mac] Now shows checkmark next to current item in DesktopPopupMenu cells [Win] Fixes to TimerPDS that could cause freezing / non-reponsive scrollbars [Demo] Fix for selectedRows in DBDataSource Demo to return row numbers correctly [Bug] Fixed a bug centering the view when the content width is less than the view width. [Bug] Fixed a potential crash on quit condition. [Bug] Fixes for embedded ContainerControls causing blocking at top of DataView [Win] Fixes for embedded DataView rendering [Win] Fixed issues with mousedown not being captured on Windows mostly affecting embedded containers [Win] Fixed a scrollbar freezing issue. [Win] Fixed a crash on WIndows 64bit builds related to DateChooser [Bug] Fix for ZoomScalesColumnWidths [Win] DesktopPopupMenu Font size fix [Win] Fix for 1-pixel gap to right of vertical scrollbar [New] Added EditCellPaste event to allow custom behavior when the user pastes into an editing cell [New] Added Cut, Copy, Paste ans SelectAll methods [New] Now copies Selected Rows/Cells as tab-delimited text [New] Now accepts pasted tab-delimited text as it would in a standard spreadsheet DesktopApplication [New] Added CellOptionList, ColumnOptionList and ListColumn.OptionList for better clarity and to free up CellTag and ColumnTag for other uses. [Bug] Fixed gap in row drag image when zoom>1 [Bug] Fixed jumpy scrollToRect when horizontal scrollbar is visible [Mac] Possible row color error resolved in Mojave. [Mac] Fix for end users running pre 10.10 OSX [Win] Fixed a bug where date picker would cause cause scrolling to fail after closing the date picker. [New] Added Mojave and Darkmode methods to allow custom drawing based on macOS theme/OS. [Bug] Fixed behavior of date pickers and click away from date picker [Demo] Now disables Column options until a column is selected [Mac] Alternating row colors now look good on Mojave Dark Mode. (Best combination is UsesSystemColors and EnableVibrancy and EnableVibrantHeader) [Mac] Many improvements for DarkMode [Win] Fixed an exception due to str(string) bug [Win] Fixed misc DatePicker bugs [Win] Fixed Scrollbar track drawing [Linux] Updated to newest modGTK3 for better appearance on Linux [Win] Fixed a bug in DateChooser causing the chooser to not Closing out correctly [Mac] No longer leaves a gap at the bottom of the list. [Bug] fixed ambiguous variable preventing run on some setups. [All] Offscreen segments now prerender in a staggered pattern. [Bug] Fix demo resources being referenced incorrectly [Bug] Fixed a gap between rows when zoomed in [Win] Fixed an issue that could cause scrollbars to become unresponsive. [Win] Now draws a corner where scrollbars meet [Bug] Now unhides columns when columnwidths is used to set a previously hidden column to a value > 0 [Win] Fixed Native Scrollers to draw slots as expected. [Win] Fixed Fuzzy row rendering on HIDPI [Mac] Fixes for scrolling overshoot when using a mouse on OSX [Linux] Fixed DesktopCheckbox, Progressbar and Scrollbar rendering for 2017r2+ and Gtk3.20+ [Linux] Fixes for Gtk 3.20 [Linux] Removed support for passing mouse events to embedded containers 1.12.3 [New] Added ZoomScalesColumnWidths to allow column adjustment to be based on scaled view size [New] Added editDelay property to set how long (in seconds) the user must hover the mouse after click to enter edit mode. [Bug] Scrollers now overshoot to prevent scrolling area from being obscured [Bug] Fixed an issue with groups expand button not responding [Bug] Fixed minor issue with Scrolling LayerSize when changing zoom level [Bug] Fixes for Dark Mode and Vibrancy on Mojave [Bug] Fixed a potential exception in 64bit mode during Opening. 1.12.2 [SelectionChanged] DragRow is Now DragRows and includes Rows() rather than Row. Also includes RemoveDraggedRows byref parameter [New] Added dragDelay property to allow setting click/hold time required before drag begins [New] Added DragAccepted Event when a row drag is dropped on another DataView [New] Cell Editor now aligns the same as the cell being edited [New] added TabToEditableCellsOnly Property to allow skipping non-editable cells when tabbing. [Bug] CellTextChange and CellAction now fire when a cell has been edited [Bug] CellDidEdit now fires reliably [Bug] CellKeyDown now fires for tab/enter/return keys when editing a cell to allow custom tabbing. [SelectionChanged] Removed CellTextPaintEnabled and CellBackgroundPaintEnabled [New] Added code to draw in disabled state, including ListDisabledTextColor and HeadingDisabledTextColor properties [New] Added CellPopupMenuAction Event [Mac] Fixed a bug related to Vibrancy when includeTitleBar=true [Win] Added workaround for a bug in Xojo 2018r2 related to graphics.clip and graphics.clearRectangle [Win] Fixed a possible exception when a celltext is less than 1 pixel width or height 1.12.1 [SelectionChanged] RowFromXY and ColumnFromXY now have added parameter 'isMouseCoordinates' to allow default behavior to match ListBox [Bug] MouseUp event now works as expected [Bug] Scrollbars now cause extra scrolling space if the last row would be obscured. [Bug] Vertical Scrollbars no longer appear when not needed [Bug] PDF output now behaves on computers with Retina displays [Bug] Printing now behaves on computers with Retina displays [Bug] Embedded containers now render correctly on HIDPI Displays [Bug] Drawing ImageSets now scales correctly on HIDPI Displays [Bug] Focused Containers now draw correctly when the parent window becomes inactive [Mac] Native Scrollers again hide properly per user preference. [Mac] Heading height now correct when UsesSystemColors is set [Win] Fix for text rendering on non-opaque background [Win] Fix for containers not coloring background when selected [Win] Heading displays correctly if no heading height is specified with UsesSystemColors [Win] Native Scrollers no longer autohide [Win] Native Scrollers now hide when not needed [Win] Fix for DateChooser not responding to mouse clicks [Win] Improved Text rendering in Windows scaled displays. [Win] Embedded RadioButtons now render correctly [Win] SelectedHeadingColor now correct with UsesSystemColors [Win] HeadingHeight now correct with UsesSystemColors [Win/Linux] Embedded DataView now renders correctly [Win7] Fix for containers not rendering 1.12.0 [New] Updates for new Docset documentation system [New] CellEdit now returns a variant of the same type stored in the dataview. [New] CellWillEdit event provides an opportunity to prevent the edit by returning true or adjust the text presented for editing. [New] CellDidEdit event provides an opportuntiy to reject the edit or adjust the value stored based on the text entered by the user [New] Added RenderCell method to allow creating a snapshot of an individual cell. [New] AddFolder now accepts a list of titles to populate cells. [New] Added "Selectable" setter and getter for rows/cells to prevent/allow selection. [New] Added ListColumn properties TextBold, TextItalic, TextFont, FontSize [New] Now provides visual feedback and scrolling when dragging rows over a list (dragitem, not dragreorder) [New] DropObject now fires if CellDropObject, DropCells and DropRows do not apply. [SelectionChanged] CellDropObject now fires regardless of whether a cell or row was dragged. [SelectionChanged] Cells with Double Values now formatted more readably [Bug] Fixed an issue drawing disclosure triangles in the correct colors when cellcontainer in use [Bug] CellBackgroundColor now overrides Column.BackgroundColor [Bug] Fix for SaveAsPDF where widths() was ignored [Bug] Expanding a row during the ExpandRow Event no longer loses track of currently Expanding Folder [Bug] Fixed an issue in calculating odd/even count for empty rows [Bug] Fixed an issue where empty rows were not painted if rows had custom height set [Bug] Fixed an issue dragging a group row when other rows are also selected [Bug] Fixed an issue where group headings would draw twice when floating [Bug] Fixed a possible crash when scrolling past left edge with gridlines enabled [Bug] certain inspector settings no longer ignored [Win] Align center now works with recent Xojo IDE 1.11.0 [New] added Native PDF generation on MacOS and via DynaPDFMBS for all platforms [New] Alternating BGColors now account for hidden rows and groups [New] Added CellInfo object for use during printCell events etc [New] Added getWidthsForWidth method to get column size fit to view size or forWidth varialbe. [New] added CellInfo object for use during print** events [New] toXML and fromXML now store cell formatting data. [New] Dragging a cell to another cell in cellSelectionMode will swap the cells [New] Dragging a single cell now renders the dragitem with cell formatting/colors etc [New] Dragging a cell now highlights the drop target cell [New] Added DropCells event. DragItem includes XML representation of the dropped cells. [New] CellTextHeight now accepts an optional parameter, forWidth, to specify the width of the cell [New] Added PrintHeight method to find the required size for printing the list. [New] Added event SetPrintHeight and property HasPrintHeight to CellContainer class for customized printing heights. [New] Added Printing property to CellContainer class to allow for custom handling of paint event. [New] PrintPage now returns a double to include partial rows printed (overhang). Only applies to rows > 1/4 printed page size. PrintPage likewise accpts a double for startRow. [New] DateChooser now allows arrow key navigation and typing a date to choose [New] Added ScrollRowIntoView [New] Added FocusCell method to allow setting the active cell via code [New] Added BorderRaised type for GridLines [New] Tabbing to an editable cell now edits the cell [Demo] PrintDialog now passes the correct scale for the printer DPI. Now prints at best resolution. [Demo] Added some DynaPDF sample code to dataViewContainer example [Demo] Added some sample code to textareaContainer to show swapping controls for printing [All] Mouse interactions now consistent between disclosures, checkboxes, popups and datechoosers [All] Tab and Return now Closing an Opening datepicker [All] Tab now wraps to next/previous row [All] Tab now moves to next cell from cell editor [Mac] Fix for cell rect offset with headerOffset<>0 [Mac] UsesSystemColors now guarantees reading the current NSAppearance [Mac] Re-Exposed EnableVibrancy and other improvements for Vibrancy support [Mac] Scrollwheel above a cellContainer now passes scrolls to the container [Bug] Fixed a glitch rendering chilrows during expandRow animation[New] Added childrenPersist property to allow adding children to folders that are hidden and shown when the folder is expanded/collapsed [Bug] Fixed a possible exception in dateChooser when quitting with a datePicker Opening [Bug] Fixed an issue where scrolling to a cell immediately after adding that row would scroll to the previous row. [Bug] Fixed several issues with keyboard navigation [Bug] Tabbing out of a cell editor now works as expected [Bug] Clicking empty header to the right of last column no longer selects last column [Bug] Row backgrounds now render to the right edge again when list is narrower than view [Bug] Fixed ConstructContextualMenu and ContextualMenuItemSelected [Bug] Fixes to Hidden rows functionality. [Bug] Fixed an issue where cellContainers could resize unpredictably when the window is resized [Bug] Keyboard navigation now moves to the proper cell when columnSpan is set [New] Added stats display to demo to monitor CPU/Memory usage (free to use) [Mac] Fixed issues related to header and group rendering on retina displays [Win] Fixed an issue rendering native headers on WIndows [Linux] Fix for datepicker displaying offset below target cell [All] Fixes for 2014r2.1 compatibility [Bug] Fixed an issue where floating group headings would break if child rows had rowdepth=-1 [Bug] Fixed group expand/collapse functionality with retina displays [New] Added RowDepth(index) get/set [New] Added GroupSupressShowHideText(index) method [New] Dropping a row at the left edge will move it to the top level regardless of whether it is dropped under a folder [New] Added getters for CellItalic and CellVerticalAlignment [Bug] Fixed an issue where dragging past bottom of the list would select the top row [New] Added GroupShowText and GroupHideText properties to allow overriding built-in Group Show/Hide texts [Bug] Fixed a crash on RemoveRow [Bug] Fixed a bug allowing cellrects to overdraw floating group headings [Bug] Keyboard navigation now scrolls group rows down to be clear of floating group headings 1.10.2 [Demo] Added Column hiding, Column.FieldName, editable on/off to DataBase demo [New] Added CellTypes.Password for use in CellType and ColumnType. [New] DrawsCellRect property added to turn off drawing of active cell rect. [New] Group headings now float at top of View until last child scrolls up. [New] Now allows DataSource to be shared amongst multiple DataViews [New] Added DefaultWidthExpression and DefaultMinColumnWidthExpression [New] Added ListColumn.VerticalAlignment and ListColumn.HeadingVerticalAlignment Properties [New] Added FlatHeader property [New] Added ListColumn.HeadingTextWrapMode [New] Added listColumn.HeadingSelectedTextColor [New] Added ListColumn.defaults to allow setting default properties for subsequent new columns [New] Added Column.FieldName for convenience when using database as backing store [New] Added ColumnByFieldName method [Mac] Now handles scrolling with mouse hovering locked columns or header with nativeScrollers [Mac] Fixed an issue where wide byte multiline text would omit the last character. [Bug] Show/Hide constant now dynamic to fix failure to display on Group headings [Bug] Group Headings no longer use alternating row colors [Bug] Setting ListIndex now fires SelectionChanged event [Bug] Fixed a possible OutOfBounds Exception when resizing columns when cell formatting is in effect. [Bug] Fixed rendering issues with columnSpan when spanned area was near view boundary. [Bug] No longer shows splitter arrow when no heading is present. [Bug] Fixed a possible gap in cell backgrounds with nativeScrollers [Bug] Cellrect drawing now behaves when locked columns are in play [Bug] Mac cell editor no longer has a horizontal scrollbar [Bug] CellBorders no longer everdraw previously drawn cells with CellBorders [Bug] Gridlines no longer overdraw celBorders 1.10.1 [New] Now draws a rectangle around the current cell affected by keyboard navigation. [New] Added DrawCellRect event to allow handling or preventing drawing of rectangle around current cell. [New] Spacebar now activates dateChooser, DesktopPopupMenu, DesktopCheckbox and editable cells [New] Added ShowDatePicker method to display a dateChooser for a specified cell [New] Navigation via keyboard now skips over Group Rows. [New] toXML and fromXML now store group rows and hidden columns and rows. [New] toXML and fromXML now store column indexes and indexlist to preserve column reordering [New] AddRows() and InsertRows() methods added to allow quickly adding rows and rowtags. [New] Added DataView.SnapToRowTops property to allow scrolling row by row. [Win] Native Scrollers no longer clip right and bottom edges [Mac] Fixed a minor memory leak in DesktopPopupMenu's [Mac] fixed an issue with cell editor rendering too large behind editor on retina displays [Bug] Fixed an issue where scrolling would shift when zoom<>1 and LockColumns<>0 [Bug] piDogScrollingCanvas.ScrollToRect now respects the passed in duration value [Bug] ContextualMenu clicks now fall through to ConstructContextualMenu if click is below rows (in empty space) [Bug] Fixed issue with headings not fully rendering [Bug] Fixed an issue with last vertical gridline not rendering when columns don't fill the width of the view [Bug] Fixed an issue with center aligned and wrapped text is misaligned [Bug] Fixed Group rows to display show/hide rather than show/show [Bug] Fixed a bug in scrolling while navigating via keyboard, especially with locked columns [Bug] Fixed a bug in scrolling while navigating via keyboard, especially with locked columns [Bug] RowHidden is now properly respected when rowspan or columnspan has been set. [Bug] Setting rowHeight to 0 now allows cells with specific heights or spans to render and interact. 1.10.0 [New] Added RowWillRender event to allow for last-moment populating of data.[New] Added Clone, CopyDataTo and Constructor to ListColumn -thx Thomas Hanke [New] Added ColumnHidden get/set to DataVew -thx Thomas Hanke [New] Added kShow/kHide constants for localization of group row disclosure text -thx Thomas Hanke [New] Added NewListColumn function to DataSource -thx Thomas Hanke [New] added CellVerticalAlignment to allow AlignTop, AlignMiddle and AlignBottom. Doesn't affect DesktopCheckbox, popup or DateChooser cells. [New] added VerticalAlignment to set default vertical alignment for all cells. [New] Added showPopupMenu method to allow activation on popup type cells via code [Win] Fixed potential NilObjectException when building with RealStudio 2012 [Win] Fixed a bug causing Multiline CellEdit to wrap text at one character on Win7. [Win] Fixed multiline cell rendering when aligned center or right [Win] Fixed an issue preventing DateChooser from showing with RealStudio 2012 [All] Setting LockColumns now adjusts Scroller Area to reflect the non-locked area [All] Removing a row now updates any affected checkboxes above in the hierarchy with AutomaticCheckboxes enabled. [All] fixed a bug that would cause a cell to begin editing if quickly mousing away and back to the cell. [All] Fixed a bug when printing a custom set of columns (wrong headings) [All] Fixed multiline rendering when printing cells aligned center or right [All] Now allows assigning a string to dataview.cell(r,c) to set the index of a DesktopPopupMenu based on matching an item in the assosiated optionlist. [Bug] optionList now allows setting stringValue. This fixes issues loading data from a database backend. [Bug] Fixed Gridline rendering on Retina displays during column drag and resize. [Bug] Now repects italic setting with System font -thx Thomas Hanke [Bug] Clicking below all rows no longer behaves as though the last row was clicked. [Bug] CellContainers no longer left behind when removing a row with an active container. [Bug] PrintPage no longer leaves a gap between header and first row [Bug] Fixed issue with hidden column header rendering when hidden [Bug] Fixed y positioning of celltextpaint when printing [Bug] Fixed a bug causing embedded dataview not to render. [Demo] Moved database demo stuff to it's own folder [Demo] Work on print dialog to allow inset and page numbering 1.9.2 [New] added ActivateCell method to allow making a cellContainer active and available for access via code such as setFocus etc [New] Added AddColumn(NewColumn as piDogDataView.ListColumn, index as integer) to allow more direct configuration of new columns [New] Now allows the dataview to have no columns without throwing an exception [All] Fixed cell(-1,-1), cell(-1,x) and cell(x,-1) [All] MinWidthExpression now defaults to 5 to avoid inerfering with small column sizes [Bug] Fixed a potential StackOverflowException. [All] Fixed issues with datePicker not opening properly and other related issues [Demo] Fixed options pane column selections 1.9.1 [All] Fixed an issue where an exception occurred if Closing was called during DoublePressed or CellClick [All] Fixed "Check All" checkboxes to align with column checkboxes [All] Added "AutomaticCheckboxes" property to propagate checked/indeterminate status in a heirarchical list and to check all boxes. [All] Added "TextWrapModeCharacter" [All] Column.CheckAllChecked as Boolean replaced with Column.CheckAllChecked as Integer to allow for indeterminite checkboxes [All] Setting columnWidths property with a width less than a column's minimum width now decreases the minimum width. [Mac] DatePicker now allows nil date and returns nil when no selection is made. [Demo] ScrollingCanvas demo "snapshot" window now has a button to capture the front window's contents rather than a timer to avoid related crashes. [Bug] Fixed an issue preventing double click from beginning a cell edit operation. [All] Fixed an issue where adding a row and setting celledit would scroll to the previous last row in the view. [Windows] Changed gridline drawing to use graphics.drawline for dotted lines under windows. [Windows] BackgroundColor now works again. [Windows] Selection color now correct under Windows 10 when usesSystemColors is selected. [All] Removed PageLeft and PageTop to avoid confusion. [All] PrintPage now aligns text properly when alignment is other than left aligned. [All] Accessing a column beyond existing columns now raises an OutOfBoundsException [Mac] Fixed CellEdit artifacts on retina displays [Mac] TextAlignment now works properly again under macOS 10.13 [Mac] Scrolling is now slightly smoother [Linux] fixed some blurry results with HIDPI mode [All] Fixed gridline enums in inspector pane [Win] Checkboxes now truncate correctly again [Win] Fixed some mouse event issues. [All] Fixed backward compatibility issues with RealStudio (2012r2.1) and Xojo 2013r1 [All] Fixed a bug causing closed DataViews not to be released [All] Gridlines now draw correctly when a view has empty rows visible and PaintEmptyRows=true [All] Border drawing improved [All] Clicks in embedded containers now update container when click causes selection to SelectionChanged [Mac] Fixed a crash related to drawing ProgressBars on macOS [Mac] Fixed a bug causing ProgressBars to be misaligned [Win] Now draws dashed Gridlines [Win] No longer draws gridlines over selected DesktopPopupMenu cell border 1.9.0 [New] Added cellBorderTop, cellBorderBottom, cellBorderLeft, cellBorderRight [New] Added gridlinesHorizontal and gridlinesVertical properties to match Listbox [New] Added gridlinesHorizontalColor and gridlinesVerticalColor [New] Added optional Indent parameter to InsertRow and InsertFolder for compatibility [New] Added TypeIndex to allow setting a column to display "Line numbers" in the same style as the list header. If column 0 is an Index, disclosures move to row 1. [New] Added property "AutoExpandCellEditor" to allow Cell Editor to expand to accomodate entered text in multiline cells. [New] AddRow can now accept an array of Variants for faster adding [All] GridlinePaint event now fires for each cell, allowing custom painting of each cell [All] Fixed a visual hiccup when expanding a folder [All] Setting contents of a dataView using cell(-1,-1) no longer causes an outOfBoundsException. [All] Scrolling to a cell/rect now uses a proper ease out algorythm [All] Major improvements to render speed made by eliminating duplicate calls to show scrollers. [All] PrintPage added pageTop and pageLeft to allow correct printing of embedded containers on MacOS [All] Eliminated delay when picking up rows on lists with large number of rows. [Linux] Updated to gtk3 for use with Xojo 2017r2 [Linux] PopupMenus and DatePicker cells now use themed text color with UsesSystemColors set. [Linux] UseNativeScrollers now renders scrollers via GTKStyleContext [Win] Embedded containers now render Textareas correctly under Windows 7. [Win] Fixed column dragging animation glitch [Win] DatePicker no longer prevents mousewheel after selecting a date. [All] Fixed a bug when setting CellBackgroundColor [All] Fixed initial inspector values to enable acceptFocus [All] Now selects row 0 if no selection exists prior to keyboard navigation [Win] Fixed cell clipping in Xojo 2016r3 [All] No longer redraws all visible cells when becoming active/inactive and gaining/losing focus [All] Changed DataView.Refresh to DataView.Redraw to redraw all graphical elements [All] Setting width/height via code now adjusts coords correctly [All] Fixed coordinates in piDogScrollingCanvas when resizing the parent window [All] Added DataSource override method for cellPicture [All] Fixed Shift-Click behavior [All] Dragging rows now sets a reasonable limit on the size of the dragging image [All] Multiple SelectionChanged events now coallesce into a single event [All] SelCount optimised [Demo] Changed main demo to use SelCount rather than SelectedRows.LastIndex in SelectionChanged event. [All] Added notes to companion classes to help explain usage. [All] DatePicker and DesktopPopupMenu now fire Pressed, Changed and CellTextChanged as appropriate [All] Added SortedColumn for ListBox compatibility [All] Added HasVerticalScrollBar and HasHorizontalScrollBar for Listbox Compatibility [All] ActiveCell now returns the current editing cell [All] Cells with overlapping cells due to colspans now render correctly when resizing and reordering [All] Fixed up some issues with editField when embedding DataView in a DesktopContainer [All] Fixed up some container allignment issues [All] Fixed an issue using cellBackGroundColor on individual cells [All] Headers now resume unclicked appearance if HeaderPressed returns true (press was handled) [All] Fixed an issue with cells being improperly clipped [Linux/Win] using decimalAlign now works as expected [Mac] DatePicker now allows selecting currently selected date to dismiss [Mac] Fixed a bug preventing trackpad clicks from registering on embedded containers in macOS 10.12 [Linux] Contextual Menu functions now function properly. 1.8.2 [New] Added cellPicture functionality [All] Added support for Page Up/Down and Home/End keys [All] Resizing columns now much faster and smoother [All] Resizing columns with % or * values should no longer snap or bump after release [All] Fix for dragging rows/cells not drawing rows, or drawing wrong rows. [All] Fixes for gridline locations when resizing columns. [Bug] GridX no longer contains an extra coord in GridlinePaint event [Win] [Bug] Fixed DesktopCheckbox drawing with high-contrast and classic theme on Windows [Win] [Bug] Fixed possible crash when resizing DateChooser columns on Windows [Win] Native Scrollers and progressbars now drawn more accurately on Windows Classic and high contrast themes [Linux] Fix for scrollers in HIDPI [Linux][Win] Minor fixes for DateChooser 1.8.1 [New] Added AccessColumnsByInsertionOrder property to DataView [New] Added HeadingTextColor, HeadingTextBold, HeadingTextFont, HeadingFontSize and HeadingTextItalic to listColumn [New] Added more cell formatting options to listColumn class [New] Added AllowsUnderflow property to always fill available width of the view [Bug] GridlinePaint event now sets maxy to fill the DesktopControl if a partial row is visible [Bug] GridlinePaint event now includes gridX coords for locked columns [Bug] Resizing, Resized, and ScrollingLayerSizeChanged events now available in DataView [Bug] Fixed possible outOfBounds exception when editing a cell [Bug] Fixed Issue where view would scroll on mouseClick if using Native Scrollers on Mac [Bug] Fixes for drag and drop on an On-Demand list. [Bug[ Calls inside DataView now refer exclusively to datasource for cell/column info. [Bug] Fixed minor glitches in Embedded cellContainers [Bug] SortColumn no longer tries to sort on column(0) on Opening [Bug] Fixed possible crash on quit [Bug] Fixed some issues with column resizing [All] Reorganized some inspector settings for ease of setup [All] CellTextHeight now accounts for CellPadding [All] Cancelling a Dragreorder by pressing escape now restores the list correctly again. [All] Scrollers no longer apear when not needed. [All] Now allows setting Various text formatting on DesktopCheckbox, popup and datechooser cells. [All] Embedded Containers now behave when resizing the window after clicking a container. [All] TimerPDS now works correctly when dropped on a window [All] Minor improvement in folder expand/collapse animation [All] Added cellBackgroundPaintEnabled property to improve efficiency when only standard cell painting is needed [All] RowHeight now returns defaultRowHeight if no row parameter is passed [All] Added CellTextPaintEnabled property to improve performance when using standard cell painting [All] Calendar and PopupMenus now fire on mouseup to allow dragging in DesktopPopupMenu and calendar cells [Mac] Minor optimization to cell rendering [Mac] Resizing no longer causes unwanted scrolling [Mac] Resizing with NativeScrollers no longer leaves blank area to right of scrolling area [Mac] Resizing larger with view scrolled to the right no longer leaves empty space [Win] Fixed a bug preventing running a project using DataView under Xojo 2015.* [Win] Fixed blurry text on Windows [Win] More Windows fixes for Xojo 2016r4 [Win] Now builds with Xojo 2014r2.1 again [Win] Updated DesktopControl rendering under classic and high contrast themes to work correctly [Linux] Fixed an issue with rendering during multislect 1.8.0 [New] Added ColumnResizingMode to specify the resizing behavior when resizing the DesktopControl. ie a window resize [New] Added ColumnResizingUserMode to specify the behavior when the user is resizing a column by dragging the separator [New] Added AutoResizeable to listColumn to allow exclusion of a column from autoresizing behavior. [New] Added AllowsOverflow. True causes a horizontal scroller to be added when all columns are at minimum widths. [New] Now uses DesktopTextArea for multiline cells and DesktopTextField for truncated cells [New] Added CellTextWrapMode and ListColumn.TextWrapMode [New] Added ContextualMenu Support to Headings [New] Added HeadingConstructContextualMenu and HeadingContextualMenuAction [New] Added ListColumn.HeadingAlignment [New] Added DrawInto method with optional hidescrollers parameter [New] Added ColumnResize Event [New] Added DragCells event [New] Added accessor for cellBackgroundColor [SelectionChanged] GridlinePaint no longer includes coords obscured by locked columns [SelectionChanged] Removed ColumnWidthExpression. Use Column().WidthExpression instead. [SelectionChanged] Added CellLostFocus Event [All] Fixed stackoverflow when dragging from an embedded dataView [All] Fixed bad printing with multiline enabled [All] DesktopCheckbox cells now truncate correctly again [All] Fixed possible gap in background fill when zoom<>1 [All] CellEdited now fires as expected [All] CellKeyDown now fires as expected [All] CellAction And SelectionChanged events now fire when the user selects a date in a dateChooser cell [All] Improved selection speed when list contains millions of rows [All] Column reorder animation now more natural [All] Now allows mouse actions to pass through above top of vert scroller. (In header) [All] Added DrawInto method with optional hidescrollers parameter [All] Fixed stackoverflow when dragging from an embedded dataView [All] Fixed bad printing with multiline enabled [All] Added listColumn.Hidden property [Mac] Some fixes for NSScroller scroll-on-drag [Mac] Fixed a bug preventing backdropimage and backgroundpattern being drawn in 64bit builds [Mac] Fixed vertical alignment when font is not found [WIndows] Fixes for HIDPI mode [Linux] Fixed a glitch in Linux scrolling when CellEdit scrolls out-of-view [Linux] Added support for display scaling [Linux] CellEdit now scrolls with the view nicely [Mac] Fixed a crash using decimalAlignment [Windows] Fixed a crash using the scrollwheel [Mac] Fix for NSScroller positioning when user preference is "always" 1.7.1 [SelectionChanged] Added ColumnByTitle function [SelectionChanged] DropObject event is now CellDropObject [SelectionChanged] Now compatible with Xojo 2013r1 and later [All] Misc scrollers issues fixed. [WIN] Fixed DateChooser for Windows 64bit [Win] [Linux] Better handling of System Font and Size [Mac] NSScroller issues fixed [Mac] Now renders system headers as pressed when clicked. 1.7.0 [Demo] Added helptags to demo window for many of the available settings [SelectionChanged] Added usesAlternatingBackgroundColors [SelectionChanged] Added RowSpan capability [SelectionChanged] Added addgroup method [SelectionChanged] Added cellAlignment [All] Added DragOut event with XML representation of dragged rows allowing dropping in another DataView. [All] Fixed EditPasteHandler event [All] Setting ListIndex now moves current keyboard navigation point [All] Improved TimerPDS to prevent possible unreleased instances. [All] Now updates ScrollBar positions when setting scrollposition programatically. [ALL] Major improvements to CellContainer behavior and rendering! [All] UsesSystemColors now use the system's themed header frames [All] Much more work on system theme color compliance [All] Added SnapBackDuration [All] TimerPDS now resets to zero after firing when mode=1 [Mac] Fixed drag-to-scroll using NSScrollers [Mac] Improved shadows/translucency for dragged rows/columns [Mac] Added native headings [Linux] ProgressBars PopupMenus and DesktopCheckbox cells now render with correct theming [Linux] CellContainers now fully supported [Linux][Win] Scrollwheel events now handled natively [Linux][Win] Headers now support MouseOver state coloring.[Mac] Improved performance of NSScrollers [Win] Reduced flicker when resizing [Win] Fixed possible crash under win32 when embedding containers [Win] Improved responsiveness significantly 1.6.1 [SelectionChanged] Added CellContainer for individual cells [SelectionChanged] Added ColumnSpan for individual cells. [Mac] Fixed VibrantHeader to not require usesSystemColors [Mac] Fixed text rendering after drawing a container [Win] Improved Windows container handling (No longer considered beta) [All] Group headings now render independent of zoom/h-scrolling [All] Moved dvDataViewInternals to Internals.dvDataViewInternals And DataSource too [All] Fixed Memory Issue where handler was not removed at Closing [All] Inspector color values now respected again [Demo] Added DataViewContainer 1.6 Added column reordering with events:columnDrag, ColumnDragTo and ColumnReorder. Added cellContainer functionality via column.cellcontainer (not fully supported for linux/windows) CellContainer has properties:row,column,view and events:populateValues and depopulateValues (see examples) Now relies completely on timerPDS rather than Xojo Timer. Rendering views with progressBars is now much faster. Scrolling feel improved Scrollwheel offset increased under windows Fixed spacing of win32 headers Added compareRows event cellBackgroundPaint and CellTextPaint now clip the graphics context properly Retina handling is now transparent in CellBackgroundPaint and CellTextPaint (same as drawing to a window context) Fixed build error 1.5.3 Fixed build error for mac 64bit Now updates scrolling when dataSource assignment is made 1.5.2 Fixed a Mac exception related to LockFocus Fixes for rendering not working correctly for Win32 Changed SortColumn to SortedColumn Fixed row caching to have upper limit to prevent excessive memory consumption Fixed an issue where adding a row could redraw the wrong area and leave the view blank 1.5.1 Multiple fixes for inspector values not being available in IDE Fixed animation not working on win32 1.5 Added printing support via printPage method. Fixed A crash in column resizing. Changes made to objects returned from DataView.Column() are now applied to the view. Moved CellEdit to use a DesktopTextArea rather than the custom DesktopControl previously used. General improvements to speed and xplat consistency. Fixes regarding Raster mode for scrolling DesktopCanvas UseNSScrollers changed to UseNativeScrollers (Windows now optionally uses Windows style scrollers) Added DataView.CellPadding Added DataView.RectFromCell Added DataView.ViewRectFromCell Added piDogScrollingCanvas.TranslatePointToView Added piDogScrollingCanvas.TranslateRectToView Added Native Scrollers for Windows More improvements for Retina support Fixed Shadow Color for Drag Reorder on Mac 64bit builds Innumerable internal improvements to efficiency and stability 1.4.1 Added StaticHeader to lock header to top of the control Added EnableVibrantHeader for a Finder-like effect on OSX 10.10+ Added DisableVerticalBounce and DisableHorizontalBounce More rendering/scrolling/animation improvements Vastly improved performance when many columns (>100) are used 1.4.0 64bit compatible! Fixed an issue dragging groups. Now groups collapse on drag and re-expand on drop. Fixed a memory leak due to min/max used in for/next conditional Fixed memory consumption due to some cached rows not being recycled Improved rendering time and responsiveness Finished folder animations with locked columns Finished DragReorder with Locked Columns Fixed Mac HelpTags Fixed bug in locked columns causing vertical scrolling to fail Added "Drop-In" Folder AnimationStyle Added FolderAnimationDuration property Fixed subrow offsets for group expand/contract Added DataSource subclass to expose available methods to override in a subclass Added multiline support! Updated celledit to support multiline text. Moved all relevant constants into the DataView class for consistency Linux Controls now rendered via DesktopContainer to allow for immediate display Fixed Vibrancy 1.3.2 fixed an error accessing column properties fixed a crash when columncount exceeds columns in initialValue added EditCell function 1.3.1 Win32 font problems fixed Fixed a possible StackOverflowException when resizing a column with editfield visible piDogScrollingCanvas: -Fixed an issue with scrollerbounds not adjusting correctly -ScrollerBounds property removed -AdjustScrolerBounds event added -Window resizing flicker fixed -Win32 rendering/scrolling improved -SnapBackDuration replaced with ScrollWheelDuration 1.3 Added LockColumns property to allow a number of columns to be locked to left edge. Added ColumnFormatString to allow direct formatting of values without modifying values Fixed issues with scrollpast coords Added CellMouseEnter and CellMouseExit Added CellHelpTag Now uses System Font by default on Win32 Fixed DesktopPopupMenu offsets when embedded in containers Fixed issue where scrollers could draw chunks of header in the wrong place on Linux Added Sort() function Added ColumnHeading() functions Added basic editing functionality to the DBDataSource Demo Window Added documentation to some properties of the DataView Class Added standard mouse Events to piDogScrollingCanvas Added Cell formatting options. CellFont CellBold CellItalic CellTextColor CellFontSize CellBackgroundColor Added AlignDecimal and ColumnAlignmentOffset Added Columns() function (read only for now) to get column widths. 1.2 Optimized optimized optimized. Moved DataView to dvDataViewInternals, and added a DataView Wrapper Class to expose methods/properties more clearly You can now use a transparent color as a backgroundColor to allow window color to show throught Rows are now rendered as segments to allow for effective width greater than 30,000 pixels and better dragrow animation with many columns Scrolling now mimicks nsscrollView more precisely MouseWheel can now be used to "Scroll past" the edge of the list Added changed and cellAction events when popup menus are changed Linux ProgressBars now render all value at once to avoid most display delay. Added dragover and dropobject events More vibrancy fixes Improved animations More improvements to DesktopPopupMenu allignment Improved rowPicture allignment and scaling DisclosureTriangles now render in light/dark color depending on the TextColor. Folder animation now caches animated rows for better look when using non-opaque background colors Demo now shows render time and actual frames to screen. Editable cells now accept accented characters on Mac Editable cells now allow dragging of selected text. Editable cells no longer allow cursor to move past 0 when delete key pressed with cursor at 0 Fixed copy Pressed during cell editing to copy the correct range. Scrollers now use native drawing calls to render (all platforms) Overrides isCompatibleWithOverlayScrollers to return true (setable property) Added option to disable NSScroller tracks DragReorder now properly considers height of row after drop to determine new index Now has internal MouseDrag and MouseUp handling Fixed Windows checkboxes to render precisely Windows progressbars height now based on half theme size Scrollers now have elastic compression on scrollpast (all platforms) Fixed an issue where NSScrollers would jump to the top when a folder was collapsed Fixed a situation where cached pictures were not cleared before reuse. 1.1.1 Fixed an exception when DataView is added to a DesktopContainer Fixed scaling artifacts when resizing header Fixed popup menu positioning when zoom <> 1 Fixes some issues with enabling vibrancy PrettyZoom setting is now respected again. 1.1 Added Vibrancy to piDogScrollingCanvas, DataView inherits it. DataSource is now properly released when a DataView is closed. Numerous internal fixes and optimizations. Fixes for retina compatibility. Improved accuracy of DesktopPopupMenu placement. Added InsertColumn/RemoveColumn. Added GridlinePaint event. 1.0.3 Fixed an issue where prerender timer could try to prerender all rows causing high memory use and poor performance. Added truncateText property to allow disabling of text truncation Text rendering now uses CoreText on MacOS for HUGE speed improvements Shadow rendering now uses CoreGraphics on MacOS for more responsive drags Fixed a bug where resizing a column to 0 would lead to an exception. Fixed a bug where zoom gestures could fail after a DragItem was created. Now renders checkboxes as disabled when window loses focus Added progress celltype/columntype 1.0.2 Fixed exception in ConstructContextualMenu when an empty cell is clicked ConstructContextualMenu now passes -1,-1 for row,column when an empty cell is clicked RowPictures now refuse to scale above 100% when rowheight/cellheight are set toXML and fromXML now include celltype, cellcheck, and (optionally) rowpicture DisclosureTriangles are now animated CollapseRow animation now correctly renders subrows 1.0.1 Fixed Folder expansion animation Added background caching of some offscreen rows for better scrolling feel Fixed a bug adding rows from a thread in the demo window Fixed CellBGPaintEnabled to default to true Fixed a potential crashing bug in dragReorder Added Cell(-1,-1) functionality for better compatibility with Xojo Listbox 1.0 Initial release!