BIS fnc initListNBoxSorting: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\[\[Category\:Function Group\: GUI(\|\{\{[a-zA-Z0-9_:]+\}\})?\]\]" to "")
m (Text replacement - "[[Image:" to "[[File:")
 
(28 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Function|Comments=
{{RV|type=function
____________________________________________________________________________________________


| arma3 |Game name=
|game1= arma3
|version1= 1.56


|1.00|Game version=
|gr1= GUI


|gr1= GUI |GROUP1=
|descr= [[File:A3_BIS_fnc_initListNBoxSorting_example.jpg|thumb|right|A GUI using [[BIS_fnc_initListNBoxSorting]]]]
____________________________________________________________________________________________
Automatically creates buttons and sets them up so they can be used to sort a [[CT_LISTNBOX]]. The buttons will automatically be resized to fit the column width of '''ctrlFilter'''.


| <pre>#define PICTURE_NONE "\a3\3DEN\Data\Displays\Display3DENSave\sort_none_ca.paa"
By default, the '''ctrlContent''' columns are sorted by [[lnbText]] (using [[lnbSort]]). If a specific column should be sorted by [[lnbValue]] (using [[lnbSortByValue]]) instead, then something needs to be set in the data of the corresponding '''ctrlFilter''' column (literally ''something'', the condition in the source code is <sqf inline>(_ctrlFilter lnbData [0, _i]) != ""</sqf>).
#define PICTURE_UP "\a3\3DEN\Data\Displays\Display3DENSave\sort_up_ca.paa"
#define PICTURE_DOWN "\a3\3DEN\Data\Displays\Display3DENSave\sort_down_ca.paa"</pre>
<small>''(Placeholder description extracted from the function header by [[BIS_fnc_exportFunctionsToWiki]])''</small> |Description=
____________________________________________________________________________________________


| <!-- [] call [[BIS_fnc_initListNBoxSorting]]; --> |Syntax=
Regarding '''ctrlFilter''':
* The position and size of this control define where the buttons for sorting are created, thus it should be placed above '''ctrlContent''' and its columns should have the same size as the columns of '''ctrlContent'''.
* The text set in the columns is displayed as text for the buttons (the buttons are actually transparent).
* The control can also be part of a [[CT_CONTROLS_GROUP]]. If that is the case, the buttons will be created as children of that group.
* To keep a uniform style between vanilla and custom controls it is recommended to create a background with [[CT_STATIC]] behind '''ctrlFilter''' with <syntaxhighlight lang="cpp" inline>colorBackground[] = { 0, 0, 0, 1 };</syntaxhighlight>.
See {{Link|CT_LISTNBOX#BIS_fnc_initListNBoxSorting Example}} for a full example including a config.


|p1= |Parameter 1=
|s1= [ctrlFilter, ctrlContent, columnIndexes, idc] call [[BIS_fnc_initListNBoxSorting]]


| |Return value=
|p1= ctrlFilter: [[Control]] - dummy [[CT_LISTNBOX]] control used for setting up the filter.
____________________________________________________________________________________________


|x1= <code></code> |Example 1=
|p2= ctrlContent: [[Control]] - the [[CT_LISTNBOX]] which actually contains the sortable content.
____________________________________________________________________________________________


| |See also=
|p3= columnIndexes: [[Array]] of [[Number]]s - (Optional, default: []) these are the column indexes of ''ctrlContent'' which should be sortable. An empty array means all columns are sortable.
}}


<h3 style="display:none">Notes</h3>
|p4= idc: [[Number]] - (Optional, default: 200) used to assign IDCs to the buttons created by this function. The first button has '''idc''', the second button has '''idc''' + 1 and so on.
<dl class="command_description">
<!-- Note Section BEGIN -->


<!-- Note Section END -->
|r1= [[Boolean]] - [[true]] on success, otherwise [[false]]
</dl>


<h3 style="display:none">Bottom Section</h3>
|x1= <sqf>[_lnbFilter, _lnbContent, [0,1,2,3]] call BIS_fnc_initListNBoxSorting;</sqf>


[[Category:Functions|{{uc:initListNBoxSorting}}]]
|seealso= [[BIS_fnc_initSliderValue]]
[[Category:{{Name|arma3}}: Functions|{{uc:initListNBoxSorting}}]]
}}

Latest revision as of 23:10, 20 November 2023

Hover & click on the images for description

Description

Description:

Automatically creates buttons and sets them up so they can be used to sort a CT_LISTNBOX. The buttons will automatically be resized to fit the column width of ctrlFilter.

By default, the ctrlContent columns are sorted by lnbText (using lnbSort). If a specific column should be sorted by lnbValue (using lnbSortByValue) instead, then something needs to be set in the data of the corresponding ctrlFilter column (literally something, the condition in the source code is (_ctrlFilter lnbData [0, _i]) != "").

Regarding ctrlFilter:

  • The position and size of this control define where the buttons for sorting are created, thus it should be placed above ctrlContent and its columns should have the same size as the columns of ctrlContent.
  • The text set in the columns is displayed as text for the buttons (the buttons are actually transparent).
  • The control can also be part of a CT_CONTROLS_GROUP. If that is the case, the buttons will be created as children of that group.
  • To keep a uniform style between vanilla and custom controls it is recommended to create a background with CT_STATIC behind ctrlFilter with colorBackground[] = { 0, 0, 0, 1 };.
See CT LISTNBOX - BIS_fnc_initListNBoxSorting Example for a full example including a config.
Execution:
call
Groups:
GUI

Syntax

Syntax:
[ctrlFilter, ctrlContent, columnIndexes, idc] call BIS_fnc_initListNBoxSorting
Parameters:
ctrlFilter: Control - dummy CT_LISTNBOX control used for setting up the filter.
ctrlContent: Control - the CT_LISTNBOX which actually contains the sortable content.
columnIndexes: Array of Numbers - (Optional, default: []) these are the column indexes of ctrlContent which should be sortable. An empty array means all columns are sortable.
idc: Number - (Optional, default: 200) used to assign IDCs to the buttons created by this function. The first button has idc, the second button has idc + 1 and so on.
Return Value:
Boolean - true on success, otherwise false

Examples

Example 1:
[_lnbFilter, _lnbContent, [0,1,2,3]] call BIS_fnc_initListNBoxSorting;

Additional Information

See also:
BIS_fnc_initSliderValue

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note