Class GridWidgetBase

Abstract grid widget

Inherits from

Constructors

Name Description
this

Fields

Name Type Description
cellActivated Listener!(dlangui.widgets.grid.CellActivatedHandler) Callback to handle cell double click
cellPopupMenu Signal!(dlangui.widgets.grid.CellPopupMenuHandler) cell popup menu
cellSelected Listener!(dlangui.widgets.grid.CellSelectedHandler) Callback to handle selection change
menuItemAction Signal!(dlangui.widgets.menu.MenuItemActionHandler) popup menu item action
viewScrolled Listener!(dlangui.widgets.grid.ViewScrolledHandler) Callback for handling of view scroll (top left visible cell change)
checkChange Signal!(dlangui.widgets.widget.OnCheckHandler) checked state change event listener (bool delegate(Widget, bool))
click Signal!(dlangui.widgets.widget.OnClickHandler) on click event listener (bool delegate(Widget))
focusChange Signal!(dlangui.widgets.widget.OnFocusHandler) focus state change event listener (bool delegate(Widget, bool))
FOCUS_RECT_PADDING immutable(int)
keyEvent Signal!(dlangui.widgets.widget.OnKeyHandler) key event listener (bool delegate(Widget, KeyEvent)) - return true if event is processed by handler
mouseEvent Signal!(dlangui.widgets.widget.OnMouseHandler) mouse event listener (bool delegate(Widget, MouseEvent)) - return true if event is processed by handler
_backgroundDrawable Ref!(dlangui.graphics.resources.Drawable)
_cellBorderColor uint
_cellHeaderBackgroundColor uint
_cellHeaderBorderColor uint
_cellHeaderSelectedBackgroundColor uint
_col int selected cell column
_cols int column count (including header columns and fixed columns)
_colWidths int[] column widths
_customCellAdapter CustomGridCellAdapter
_defColumnWidth int default column width - for newly added columns
_defRowHeight int default row height - for newly added rows
_fixedCellBackgroundColor uint
_fixedCols int number of fixed (non-scrollable) columns
_fixedRows int number of fixed (non-scrollable) rows
_fullyVisibleCells Rect
_fullyVisibleCellsRect Rect
_gridModelAdapter GridModelAdapter
_headerCols int number of header columns (e.g. like row number in excel; 0 for no header column)
_headerRows int number of header rows (e.g. like col name A, B, C... in excel; 0 for no header row)
_maxScrollCol int
_maxScrollRow int
_row int selected cell row
_rowHeights int[] row heights
_rows int row count (including header rows and fixed rows)
_rowSelect bool when true, allows to select only whole row
_scrollCol int column scroll offset, relative to last fixed col; 0 = not scrolled
_scrollRow int row scroll offset, relative to last fixed row; 0 = not scrolled
_selectionColor uint
_selectionColorRowSelect uint
_showColHeaders bool when true, shows col headers row
_showRowHeaders bool when true, shows row headers column
_acceleratorMap ActionMap
_action Action
_checkable bool
_checked bool
_children ObjectList!(dlangui.widgets.widget.Widget)
_clickable bool
_clientRect Rect inner area, excluding additional controls like scrollbars
_focusable bool
_focusGroup bool
_fullScrollableArea Rect
_hscrollbar ScrollBar horizontal scrollbar control
_hscrollbarMode ScrollBarMode
_id string widget id
_measuredHeight int height measured by measure()
_measuredWidth int width measured by measure()
_needDraw bool true to force redraw
_needLayout bool true to force layout
_ownStyle Style own copy of style - to override some of style properties, null of no properties overriden
_parent Widget parent widget
_pos Rect current widget position, set by layout()
_state uint widget state (set of flags from State enum)
_styleId string style id to lookup style in theme
_tabOrder ushort
_tooltipText UIString
_trackHover bool does widget need to track mouse Hover
_visibility Visibility widget visibility: either Visible, Invisible, Gone
_visibleScrollableArea Rect
_vscrollbar ScrollBar vertical scrollbar control
_vscrollbarMode ScrollBarMode
_window Window window (to be used for top level widgets only!)

Properties

Name Type Description
col [get] int selected column
cols [set] GridWidgetBase set column count
cols [get] int column count
customCellAdapter [get] CustomGridCellAdapter Get adapter to override drawing of some particular cells
customCellAdapter [set] GridWidgetBase Set adapter to override drawing of some particular cells
defColumnWidth [set] GridWidgetBase
defColumnWidth [get] int default column width - for newly added columns
defRowHeight [set] GridWidgetBase
defRowHeight [get] int default row height - for newly added rows
fixedCols [set] int
fixedCols [get] int fixed (non-scrollable) data column count
fixedRows [set] int
fixedRows [get] int fixed (non-scrollable) data row count
gridModelAdapter [set] GridWidgetBase Set adapter to hold grid model data
gridModelAdapter [get] GridModelAdapter Get adapter to hold grid model data
headerCols [get] int row header column count
headerCols [set] GridWidgetBase
headerRows [set] GridWidgetBase
headerRows [get] int col header row count
row [get] int selected row
rows [set] GridWidgetBase set row count
rows [get] int row count
rowSelect [get] bool when true, allows only select the whole row
rowSelect [set] GridWidgetBase
showColHeaders [get] bool flag to enable column headers
showColHeaders [set] GridWidgetBase
showRowHeaders [set] GridWidgetBase
showRowHeaders [get] bool flag to enable row headers
acceleratorMap [get] ActionMap
action [get, set] const(Action) action to emit on click
alignment [get] ubyte returns alignment (combined vertical and horizontal)
alignment [set] Widget sets alignment (combined vertical and horizontal)
alpha [get] uint widget drawing alpha value (0=opaque .. 255=transparent)
alpha [set] Widget set widget drawing alpha value (0=opaque .. 255=transparent)
animating [get] bool returns true is widget is being animated - need to call animate() and redraw
backgroundColor [set] Widget set background color for widget - override one from style
backgroundColor [set] Widget set background color for widget - from string like "#5599CC" or "white"
backgroundColor [get] uint returns background color
backgroundDrawable [get, set] Ref!(dlangui.graphics.resources.Drawable) background drawable
backgroundImageId [get, set] string background image id
canCheck [get] bool
canClick [get] bool
canFocus [get] bool returns true if widget is focusable and visible and enabled
checkable [get] bool when true, control supports Checked state
checkable [set] Widget
checked [get] bool get checked state
checked [set] Widget set checked state
childCount [get] int returns number of children of this widget
clickable [get] bool when true, user can click this control, and get onClick listeners called
clickable [set] Widget
clientRect [get] Rect returns client area rectangle
enabled [get] bool return true if state has State.Enabled flag set
enabled [set] Widget change enabled state
focusable [set] Widget
focusable [get] bool whether widget can be focused
focused [get] bool
focusGroup [set] Widget set focus group flag for container widget
focusGroup [get] bool When focus group is set for some parent widget, focus from one of containing widgets can be moved using keyboard only to one of other widgets containing in it and cannot bypass bounds of focusGroup.
focusRectColors [get] const(uint[]) returns colors to draw focus rectangle (one for solid, two for vertical gradient) or null if no focus rect should be drawn for style
font [get] Ref!(dlangui.graphics.fonts.Font) returns font set for widget using style or set manually
fontFace [get] string returns font face
fontFace [set] Widget set font face for widget - override one from style
fontFamily [set] Widget set font family for widget - override one from style
fontFamily [get] FontFamily returns font family
fontItalic [get] bool returns font style (italic/normal)
fontItalic [set] Widget set font style (italic/normal) for widget - override one from style
fontSize [get] int returns font size in pixels
fontSize [set] Widget set font size for widget - override one from style
fontWeight [set] Widget set font weight for widget - override one from style
fontWeight [get] ushort returns font weight
halign [get] Align returns vertical alignment
hasTooltip [get] bool returns true if widget has tooltip to show
height [get] int returns current height of widget in pixels
hscrollbar [set] ScrollBar
hscrollbar [get] ScrollBar
hscrollbarMode [get] ScrollBarMode horizontal scrollbar mode
hscrollbarMode [set] ScrollBarMode
id [set] Widget set widget id
id [get] string returns widget id, null if not set
layoutHeight [get] int returns layout height options (WRAP_CONTENT, FILL_PARENT, or some constant value)
layoutHeight [set] Widget sets layout height options (WRAP_CONTENT, FILL_PARENT, or some constant value)
layoutWeight [get] int returns layout weight (while resizing to fill parent, widget will be resized proportionally to this value)
layoutWeight [set] Widget sets layout weight (while resizing to fill parent, widget will be resized proportionally to this value)
layoutWidth [get] int returns layout width options (WRAP_CONTENT, FILL_PARENT, or some constant value)
layoutWidth [set] Widget sets layout width options (WRAP_CONTENT, FILL_PARENT, or some constant value)
left [get] int returns widget rectangle left position
margins [get] Rect get margins (between widget bounds and its background)
margins [set] Widget set margins for widget with the same value for left, top, right, bottom - override one from style
margins [set] Widget set margins for widget - override one from style
maxHeight [get] int returns max height constraint (SIZE_UNSPECIFIED if no constraint set)
maxHeight [set] Widget set max height constraint (SIZE_UNSPECIFIED for no constraint)
maxWidth [set] Widget set max width constraint (SIZE_UNSPECIFIED for no constraint)
maxWidth [get] int returns max width constraint (SIZE_UNSPECIFIED if no constraint set)
measuredHeight [get] int returns measured height (calculated during measure() call)
measuredWidth [get] int returns measured width (calculated during measure() call)
minHeight [get] int returns min height constraint
minHeight [set] Widget set max height constraint (0 for no constraint)
minWidth [set] Widget set max width constraint (0 for no constraint)
minWidth [get] int returns min width constraint
needDraw [get] bool returns true if redraw is required for widget and its children
needLayout [get] bool returns true if layout is required for widget and its children
padding [get] Rect get padding (between background bounds and content of widget)
padding [set] Widget set padding for widget - override one from style
padding [set] Widget set padding for widget to the same value for left, top, right, bottom - override one from style
parent [set] Widget sets parent for widget
parent [get] Widget returns parent widget, null for top level widget
pos [get] Rect returns widget rectangle
resetState [set] Widget remove state flags (set of flags from State enum)
setState [set] Widget add state flags (set of flags from State enum)
state [set] Widget set new widget state (set of flags from State enum)
state [get] uint widget state (set of flags from State enum)
styleId [set] Widget set widget style id
styleId [get] string returns widget style id, null if not set
tabOrder [set] Widget
tabOrder [get] ushort tab order - hint for focus movement using Tab/Shift+Tab
text [get] dstring returns widget content text (override to support this)
text [set] Widget sets widget content text (override to support this)
textColor [set] Widget set text color for widget - from string like "#5599CC" or "white"
textColor [set] Widget set text color (ARGB 32 bit value)
textColor [get] uint get text color (ARGB 32 bit value)
textFlags [get] uint get text flags (bit set of TextFlag enum values)
textFlags [set] Widget set text flags (bit set of TextFlag enum values)
tooltipText [get, set] dstring tooltip text - when not empty, widget will show tooltips automatically; for advanced tooltips - override hasTooltip and createTooltip
top [get] int returns widget rectangle top position
trackHover [set] Widget set new trackHover flag value (when true, widget will change Hover state while mouse is moving)
trackHover [get] bool mouse movement processing flag (when true, widget will change Hover state while mouse is moving)
valign [get] Align returns horizontal alignment
visibility [set] Widget sets widget visibility (Visible, Invisible, Gone)
visibility [get] Visibility returns widget visibility (Visible, Invisible, Gone)
visible [get] bool returns true if this widget and all its parents are visible
vscrollbar [get] ScrollBar
vscrollbar [set] ScrollBar
vscrollbarMode [set] ScrollBarMode
vscrollbarMode [get] ScrollBarMode vertical scrollbar mode
wantsKeyTracking [get] bool override and return true to track key events even when not focused
width [get] int returns current width of widget in pixels
window [get] Window returns window (if widget or its parent is attached to window)
window [set] Window sets window (to be used for top level widget from Window implementation). TODO: hide it from API?
ownStyle [get] Style enforces widget's own style - allows override some of style properties
stateStyle [get] const(Style) returns style for current widget state
style [get, set] const(Style) accessor to style - by lookup in theme by styleId (if style id is not set, theme base style will be used).

Methods

Name Description
activateCell Select cell and call onCellActivated handler
autoFit
autoFitColumnWidth
autoFitColumnWidths
autoFitRowHeight
autoFitRowHeights
canShowPopupMenu returns true if widget can show popup menu (e.g. by mouse right click at point x,y)
cellRect returns cell rectangle relative to client area; row 0 is col headers row; col 0 is row headers column
colWidth returns column width (index includes col/row headers, if any); returns 0 for columns hidden by scroll at the left
fillColumnWidth extend specified column width to fit client area if grid width
fullContentSize calculate full content size in pixels
makeCellVisible ensure that cell is visible (scroll if necessary)
onHScroll process horizontal scrollbar event
onMouseEvent handle mouse wheel events
onVScroll process vertical scrollbar event
pointToCell converts client rect relative coordinates to cell coordinates
resize set new size
rowHeight returns row height (index includes col/row headers, if any); returns 0 for riws hidden by scroll at the top
scrollBy move scroll position horizontally by dx, and vertically by dy; returns true if scrolled
scrollTo set scroll position to show specified cell as top left in scrollable area; col or row -1 value means no change
selectCell move selection to specified cell
setBoolProperty set string property value, for ML loaders
setColWidth
setIntProperty set int property value, for ML loaders
setRowHeight
showPopupMenu shows popup menu at (x,y)
addChild adds child, returns added item
addChildren adds child, returns added item
addOnCheckChangeListener helper function to add onCheckChangeListener in method chain
addOnClickListener helper function to add onCheckChangeListener in method chain
addOnFocusChangeListener helper function to add onFocusChangeListener in method chain
animate animates window; interval is time left from previous draw, in hnsecs (1/10000000 of second)
applyAlign Applies alignment for content of size sz - set rectangle rc to aligned value of content inside of initial value of rc.
applyMargins Helper function: applies margins to rectangle
applyPadding Helper function: applies padding to rectangle
cancelLayout
cancelTimer cancel timer - pass value returned from setTimer() as timerId parameter
child returns child by index
childById find child of specified type T by id, returns null if not found or cannot be converted to type T
childIndex returns index of widget in child list, -1 if passed widget is not a child of this widget
compareId compare widget id with specified value, returs true if matches
createTooltip will be called from window once tooltip request timer expired; if null is returned, popup will not be shown; you can change alignment and position of popup here
dispatchAction call to dispatch action
drawFocusRect draws focus rectangle, if enabled in styles
executeInUiThread execute delegate later in UI thread if this widget will be still available (can be used to modify UI from background thread, or just to postpone execution of action)
findFocusableChild searches children for first focusable item, returns null if not found
findKeyAction map key to action
focusGroupWidget find nearest parent of this widget with focusGroup flag, returns topmost parent if no focusGroup flag set to any of parents.
getCursorType returns mouse cursor type for widget
handleActionStateChanged called when state of action assigned on widget is changed
handleActionStateRequest override to handle specific actions state (e.g. change enabled state for supported actions)
handleMoveFocusUsingKeys
invalidate request redraw
isActionEnabled override to change popup menu items state
isChild returns true if item is child of this widget (when deepSearch == true - returns true if item is this widget or one of children inside children tree).
isPointInside returns true if point is inside of this widget
layout Set widget rectangle to specified value and layout widget contents. (Step 2 of two phase layout).
makeRectVisible
measure Measure widget according to desired width and height constraints. (Step 1 of two phase layout).
onDraw Draw widget at its position to buffer
onEvent handle custom event
onKeyEvent process key event, return true if event is processed.
onScrollEvent handle scroll event
onThemeChanged handle theme change: e.g. reload some themed resources
onTimer handle timer; return true to repeat timer event after next interval, false cancel timer
removeAllChildren
removeChild removes child, returns removed item
removeChild removes child by ID, returns removed item
removeChild removes child, returns removed item
requestActionsUpdate set action update request flag, will be cleared after redraw
requestLayout request relayout of widget and its children
setDoubleProperty set double property value, for ML loaders
setDstringProperty set string property value, for ML loaders
setFocus sets focus to this widget or suitable focusable child, returns previously focused widget
setRectProperty set Rect property value, for ML loaders
setStringProperty set string property value, for ML loaders
setTimer set new timer to call onTimer() after specified interval (for recurred notifications, return true from onTimer)
setUistringProperty set string property value, for ML loaders
updateActionState ask for update state of some action (unles force=true, checks window flag actionsUpdateRequested), returns true if action state is changed
updateActionState call to update state for action (if action is assigned for widget)
updateStateFromAction apply enabled, visibile and checked state for this widget from action's state
calcScrollableAreaPos calculate scrollable area info
colByAbsoluteX column by X, ignoring scroll position
drawCell draw data cell content
drawCellBackground draw data cell background
drawClient
drawHeaderCell draw header cell content
drawHeaderCellBackground draw header cell background
getCellPopupMenu
handleAction override to handle specific actions
measureCell
measureColWidth
measureRowHeight
onMenuItemAction handle popup menu action
rowByAbsoluteY row by Y, ignoring scroll position
updateScrollBars update scrollbar positions
drawExtendedArea
handleCheckChange override to handle check changes
handleClick
handleClientRectLayout override to support modification of client rect after change, e.g. apply offset
handleFocusChange override to handle focus changes
measuredContent helper function for implement measure() when widget's content dimensions are known
scheduleTooltip schedule tooltip
updateHScrollBar update horizontal scrollbar widget position
updateVScrollBar update verticat scrollbar widget position

Authors

Vadim Lopatin, coolreader.org@gmail.com

Copyright

Vadim Lopatin, 2014

License

Boost License 1.0