Class GridWidgetBase
Abstract grid widget
Inherits from
-
ScrollWidgetBase
(base class) -
GridModelAdapter
-
MenuItemActionHandler
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