; DisplayFeatures
; ---------------
; $aFeatures parameter
; 1D/2D array of feature type/info pairs to specify features in this way:
;
; Local $aFeatures =   [ Type 1, Info 1 ]    ; One    feature type/info
;
; Local $aFeatures = [ [ Type 1, Info 1 ], _ ; First  feature type/info
;                      [ Type 2, Info 2 ], _ ; Second feature type/info
;                      [ Type 3, Info 3 ], _ ; Third  feature type/info
;                      ...
;                      [ Type n, Info n ] ]  ; N'th   feature type/info
;
; The order of the rows in $aFeatures doesn't matter.
;
; The following feature types can be used:
; "ColAlign"    => Column alignment
; "ColWidthMin" => Min. column width
; "ColWidthMax" => Max. column width
; "ColFormats"  => Column text formats
; "ColColors"   => Column background colors
; "BackColor"   => Listview background color
; "HdrColors"   => Listview header background colors
; "SortRows"    => Sort rows in data source by index
; "SortCols"    => Sort columns in data source by index
; "SortByCols"  => Sort rows by multiple columns
; "UserFunc"    => User supplied function
;
; Example
; To add a user supplied function define $aFeatures in this way:
; Local $aFeatures = [ "UserFunc", User_Func ]
;
; Below is documentation for the content of the information field for each function.


; "ColAlign" => Column alignment
; Provide a 1D/2D array of column index/alignment pairs in the info field to specify alignment
; for single columns in this way:
;
; Local $aAlignment =   [ Col index, Alignment   ]    ; Alignment for one column
;
; Local $aAlignment = [ [ -1,        Def. align. ], _ ; Alignment for unspecified columns
;                       [ Col index, Alignment   ], _ ; Alignment = 0, "L" or "Left" for Left
;                       [ Col index, Alignment   ], _ ;             2, "R" or "Right" for Right
;                       ...                           ;             4, "C" or "Center" for Center
;                       [ Col index, Alignment   ] ]
;
; Note that "Col index" is a listview column index (NOT a data source column index).
;
; Specify column alignment in this way:
;     Left aligned column:  0, "L" or "Left"
;     Right aligned column: 2, "R" or "Right"
;     Centered column:      4, "C" or "Center"
;
; The order of the rows in $aAlignment doesn't matter. Use index -1 to set a default column align-
; ment for unspecified columns. If not index -1 is supplied, default column alignment is set on
; basis of $iFlags.
;
; Local $aFeatures = [ "ColAlign", $aAlignment ]


; "ColWidthMin" => Min. column width
; In a virtual ListView column widths are calculated based on the first few rows in the ListView.
; This will not necessarily lead to correct column widths for all rows. Use "ColWidthMin" feature
; to specify minimum column widths.
;
; Supply a number in the info field to set a minimum width for all columns:
; Local $aFeatures = [ "ColWidthMin", 55 ] ; 55 is default
;
; Use a 1D/2D array to specify widths for single columns in this way:
;
; Local $aMin_ColWidth =   [ Col index, Width   ]    ; Width for one column
;
; Local $aMin_ColWidth = [ [ -1,        Def. w. ], _ ; Width for unspecified columns
;                          [ Col index, Width   ], _
;                          [ Col index, Width   ], _
;                          ...
;                          [ Col index, Width   ] ]
;
; "Col index" is a listview column index (NOT a data source column index). Width is the column width
; in pixels.
;
; The order of the rows in $aMin_ColWidth doesn't matter. Use index -1 to set a default column width
; for unspecified columns. If not index -1 is supplied default column width is set to 55 pixels.
;
; Local $aFeatures = [ "ColWidthMin", $aMin_ColWidth ]


; "ColWidthMax" => Max. column width
; Max. column width is used to limit the width of very wide columns if the total column width of all
; columns is close to or greater than the width of the screen.
;
; Supply a number in the info field to set a maximum column width:
; Local $aFeatures = [ "ColWidthMax", 350 ] ; 350 pixels is default


; "ColFormats" => Column text formats
; Use a 1D/2D array of column index/formatting line pairs in the info field to add text formatting for
; single columns in this way:
;
; Local $aColumn_Formats =   [ Col index, Formatting line ]    ; Formatting for one column
;
; Local $aColumn_Formats = [ [ Col index, Formatting line ], _ ; Formatting for multiple columns
;                            [ Col index, Formatting line ], _
;                            ...
;                            [ Col index, Formatting line ] ]
;
; "Col index" is a data source column index (NOT a listview column index).
;
; "Formatting line" specifies a formatting function and 0 - 5 formatting parameters in this way:
; "Formatting function", "p1", "p2", "p3", "p4", "p5"
; See details in HelpFiles\DisplayFormats.txt.
;
; The order of the rows in $aColumn_Formats doesn't matter. HelpFiles\DisplayFormats.au3 can be used
; to test column formats.
;
; Local $aFeatures = [ "ColFormats", $aColumn_Formats ]


; "ColColors" => Column background colors
; Use a 1D/2D array of column index/color pairs in the information field to specify colors for single
; columns in this way:
;
; Local $aColumn_Colors =   [ Col index, Color ]    ; Color for one column
;
; Local $aColumn_Colors = [ [ Col index, Color ], _ ; Colors for multiple columns
;                           [ Col index, Color ], _
;                           ...
;                           [ Col index, Color ] ]
;
; "Col index" is a listview column index (NOT a data source column index). Color is a color in RGB
; format eg. 0xFFFFCC (yellow). The order of the rows in $aColumn_Colors doesn't matter.
;
; Local $aFeatures = [ "ColColors", $aColumn_Colors ]


; "BackColor" => Listview background color
; Supply a color in the info field to set listview background color and text background color:
; Local $aFeatures = [ "BackColor", 0xFFFFFF ] ; 0xFFFFFF (white) is default


; "HdrColors" => Listview header background colors
; Supply a color in the info field to set a header background color for all items:
; Local $aFeatures = [ "HdrColors", Color ]
;
; Use a 1D/2D array to specify background colors for single items in this way:
;
; Local $aHeader_Colors =   [ Hdr. item, Color ]    ; Color for one header item
;
; Local $aHeader_Colors = [ [ -1,        Color ], _ ; Color for unspecified header items
;                           [ Hdr. item, Color ], _
;                           [ Hdr. item, Color ], _
;                           ...
;                           [ Hdr. item, Color ] ]
;
; "Hdr. item" is a header item index (same value as the listview column index). Color is the header
; item background color. Set Color = -1 to not use a background color for the item.
;
; The order of the rows in $aHeader_Colors doesn't matter. Use "Hdr. item" = -1 to set a default
; background color for unspecified items.
;
; Local $aFeatures = [ "HdrColors", $aHeader_Colors ]


; "SortRows" => Sort rows in data source by index
; A 1D array or a DllStruct can be used to sort the rows in the data source by index. If the data
; source is an array the 1D array or DllStruct should contain array row indices.
;
; If an array is used to sort the rows in the data source:
; Local $aFeatures = [ "SortRows", $aIndex ]
;
; If a DllStruct is used to sort the rows in the data source:
; Local $aFeatures = [ "SortRows", $tIndex ]


; "SortCols" => Sort columns in data source by index
; A 1D array of column indices can be used to sort the columns in the data source by index:
; Local $aFeatures = [ "SortCols", $aColIndex ]


; "SortByCols" => Sort rows by multiple columns
; Provide a 1D/2D array of column index/sorting index pairs in the info field of the $aFeatures array
; to specify sorting by multiple columns in this way:
;
; Use header item arrows to mark a column as target for sorting:
; Local $aSortInfo = [ [ Col index, $aSortIndex, ""                 ], _ ; Default (same as next line)
;                      [ Col index, $aSortIndex, "", "Asc",  "Desc" ], _ ; Asc/desc with the same index
;                      [ Col index, $aSortIndex, "", "Desc", "Asc"  ], _ ; Desc/asc with the same index
;                      [ Col idx k, $aSortIdx1,  "", "Asc"  ], _ ; Column is sorted asc/desc with two indexes
;                      [ Col idx k, $aSortIdx2,  "", "Desc" ], _ ;    First asc (default) and then desc
;                      [ Col idx l, $aSortIdx3,  "", "Desc" ], _ ; Column is sorted desc/asc with two indexes
;                      [ Col idx l, $aSortIdx4,  "", "Asc"  ], _ ;    First desc (default) and then asc
;                      [ Col idx m, $aSortIdx5,  "", "Asc"  ], _ ; Column is only sorted asc  (with one index)
;                      [ Col idx n, $aSortIdx6,  "", "Desc" ], _ ; Column is only sorted desc (with one index)
;                      ...
;                      [ Col index, $aSortIndex, ""         ] ]
; Local $aFeatures = [ "SortByCols", $aSortInfo ]
;
; Use header item colors to mark a column as target for sorting:
; Local $aSortInfo = [ [ Col index, $aSortIndex, "Yellow|Green|Red"                 ], _ ; Default (same as next line)
;                      [ Col index, $aSortIndex, "Yellow|Green|Red", "Asc",  "Desc" ], _ ; Asc/desc with the same index
;                      [ Col index, $aSortIndex, "Yellow|Red|Green",                ], _ ; Default (same as next line)
;                      [ Col index, $aSortIndex, "Yellow|Red|Green", "Desc", "Asc"  ], _ ; Desc/asc with the same index
;                      [ Col idx k, $aSortIdx1,  "Yellow|Green",     "Asc"  ], _ ; Column is sorted asc/desc with two indexes
;                      [ Col idx k, $aSortIdx2,  "Red",              "Desc" ], _ ;    First asc (default) and then desc
;                      [ Col idx l, $aSortIdx3,  "Yellow|Red",       "Desc" ], _ ; Column is sorted desc/asc with two indexes
;                      [ Col idx l, $aSortIdx4,  "Green",            "Asc"  ], _ ;    First desc (default) and then asc
;                      [ Col idx m, $aSortIdx5,  "Yellow|Green",     "Asc"  ], _ ; Column is only sorted asc  (with one index)
;                      [ Col idx n, $aSortIdx6,  "Yellow|Red",       "Desc" ], _ ; Column is only sorted desc (with one index)
;                      ...
;                      [ Col index, $aSortIndex, "Yellow|Green|Red"         ] ]
; Local $aFeatures = [ "SortByCols", $aSortInfo ]
;
; Use header item texts to mark a column as target for sorting:
; Local $aSortInfo = [ [ Col index, $aSortIndex, "Sort|Asc|Desc"                 ], _ ; Default (same as next line)
;                      [ Col index, $aSortIndex, "Sort|Asc|Desc", "Asc",  "Desc" ], _ ; Asc/desc with the same index
;                      [ Col index, $aSortIndex, "Sort|Desc|Asc",                ], _ ; Default (same as next line)
;                      [ Col index, $aSortIndex, "Sort|Desc|Asc", "Desc", "Asc"  ], _ ; Desc/asc with the same index
;                      [ Col idx k, $aSortIdx1,  "Sort|Asc",      "Asc"  ], _ ; Column is sorted asc/desc with two indexes
;                      [ Col idx k, $aSortIdx2,  "Desc",          "Desc" ], _ ;    First asc (default) and then desc
;                      [ Col idx l, $aSortIdx3,  "Sort|Desc",     "Desc" ], _ ; Column is sorted desc/asc with two indexes
;                      [ Col idx l, $aSortIdx4,  "Asc",           "Asc"  ], _ ;    First desc (default) and then asc
;                      [ Col idx m, $aSortIdx5,  "Sort|Asc",      "Asc"  ], _ ; Column is only sorted asc  (with one index)
;                      [ Col idx n, $aSortIdx6,  "Sort|Desc",     "Desc" ], _ ; Column is only sorted desc (with one index)
;                      ...
;                      [ Col index, $aSortIndex, "Sort|Asc|Desc"         ] ]
; Local $aFeatures = [ "SortByCols", $aSortInfo ]


; "UserFunc" => User supplied function
; If specified a "User Func" button is created in the GUI. Click the button to run the user supplied
; function. The function must not take any parameters. A user supplied function can among other things
; be used to display two data display GUIs side by side. This is demonstrated in the examples.
;
; Supply the function in the info field:
; Local $hUser_Func = User_Func
; Local $aFeatures = [ "UserFunc", $hUser_Func ] ; User function contained in a variable
; Local $aFeatures = [ "UserFunc", User_Func ]   ; User function as a literal function (without quotes)
;
; Use a 1D array in the info field to also set the name of the "User Func" button:
; Local $aUserFunc = [ User_Func, "Button text" ]
; Local $aFeatures = [ "UserFunc", $aUserFunc ]
;
Func User_Func()
EndFunc
