Release Notes
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.
1.9.1.1
[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 close was called during DoubleClick 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.
1.9.0.4
[All] Fixed an issue where adding a row and setting celledit would scroll to the previous last row in the view.
1.9.0.3
[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
1.9.0.2
[All] Fixed gridline enums in inspector pane
[Win] Checkboxes now truncate correctly again
[Win] Fixed some mouse event issues.
1.9.0.1
[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 change
[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 popupmenu 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.
1.8.2.4
[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
1.8.2.3
[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
1.8.2.2
[All] Fixed Shift-Click behavior
[All] Dragging rows now sets a reasonable limit on the size of the dragging image
[All] Multiple Change events now coallesce into a single event
[All] SelCount optimised
[Demo] Changed main demo to use SelCount rather than SelectedRows.ubound in change event.
1.8.2.1
[All] Added notes to companion classes to help explain usage.
[All] DatePicker and PopupMenu now fire Action, Changed and CellTextChanged as appropriate
[All] Added SortedColumn for ListBox compatibility
[All] Added ScrollbarVertical and ScrollbarHorizontal 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 containerControl
[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 checkbox 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, HeadingTextSize 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 control 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 open
[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 checkbox, 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 popupmenu 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 control 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 control. 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 textarea for multiline cells and textfield 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
[Change] GridlinePaint no longer includes coords obscured by locked columns
[Change] Removed ColumnWidthExpression. Use Column().WidthExpression instead.
[Change] Added CellLostFocus Event
[All] Fixed stackoverflow when dragging from an embedded dataView
[All] Fixed bad printing with multiline enabled
[All] Checkbox 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 Change 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
1.7.1.2
[Mac] Fixed a crash using decimalAlignment
[Windows] Fixed a crash using the scrollwheel
1.7.1.1
[Mac] Fix for NSScroller positioning when user preference is "always"
1.7.1
[Change] Added ColumnByTitle function
[Change] DropObject event is now CellDropObject
[Change] 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
[Change] Added usesAlternatingBackgroundColors
[Change] Added RowSpan capability
[Change] Added addgroup method
[Change] 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 Checkbox 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
[Change] Added CellContainer for individual cells
[Change] 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 DataViewInternals to Internals.DataViewInternals And DataSource too
[All] Fixed Memory Issue where handler was not removed at close
[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)
1.5.3.1
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 TextArea rather than the custom control previously used.
General improvements to speed and xplat consistency.
Fixes regarding Raster mode for scrolling canvas
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 ContainerControl 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 popupMenu 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 CellTextSize CellBackgroundColor
Added AlignDecimal and ColumnAlignmentOffset
Added Columns() function (read only for now) to get column widths.
1.2
Optimized optimized optimized.
Moved DataView to DataViewInternals, 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 popupmenu 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 action 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 containerControl
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 popupmenu 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!