ctrlMapCursor: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "Category:Scripting Commands ArmA2" to "Category:Scripting Commands Arma 2") |
Lou Montana (talk | contribs) m (Text replacement - " <!-- (DIS)?CONTINUE Notes -->" to "") |
||
(23 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{RV|type=command | ||
| arma2 | | arma2 | ||
|1.00 | |1.00 | ||
| Changes the default cursor that appears when interacting with a map control to a custom one. Use an empty string to restore the default cursor. If the specified cursor does not exist, the default is used and no error is produced. ( NOT in case of | |gr1= GUI Control - Map | ||
| Changes the default cursor that appears when interacting with a map control to a custom one. Use an empty string to restore the default cursor. If the specified cursor does not exist, the default is used and no error is produced. ( NOT in case of Arma 3. Using an empty string will result in an error: "No entry 'bin\config.bin/CfgWrapperUI/Cursors.' ). The cursor is the name of a config entry from ''CfgWrapperUI / Cursors''. This command has the following specifics: | |||
* When used on Main Map ([[findDisplay]] 12 [[displayCtrl]] 51) it is possible to override multiple default cursors. For example, while leaving default "Arrow" intact, it is possible to just override "Scroll" with lets say "Wait" (Example 3) | * When used on Main Map ([[findDisplay]] 12 [[displayCtrl]] 51) it is possible to override multiple default cursors. For example, while leaving default "Arrow" intact, it is possible to just override "Scroll" with lets say "Wait" (Example 3) | ||
* When used on a custom map, for example user made Mini Map, there is only one single cursor "" for everything, therefore only this cursor can be overridden (see Example 4 on how to override it) | * When used on a custom map, for example user made Mini Map, there is only one single cursor "" for everything, therefore only this cursor can be overridden (see Example 4 on how to override it) | ||
Line 26: | Line 26: | ||
* HC_overMission | * HC_overMission | ||
* HC_unsel | * HC_unsel | ||
'''NOTE1''': Cursor names are '''case sensitive'''. | '''NOTE1''': Cursor names are '''case sensitive'''. | ||
| | | control '''ctrlMapCursor''' [defaultCursor, newCursor] | ||
| | |p1= control: [[Control]] - Map control | ||
| | |p2= defaultCursor: [[String]] - Cursor class name | ||
| [[ | |p3= newCursor: [[String]] - Cursor class name | ||
| [[Nothing]] | |||
|x1= <code>_map [[ctrlMapCursor]] ["Track", "Arrow"];</code> | |x1= <code>_map [[ctrlMapCursor]] ["Track", "Arrow"];</code> | ||
|x2= <code>[[uiNamespace]] [[setVariable]] ["_map",[[findDisplay]] 12 [[displayCtrl]] 51]; | |x2= <code>[[uiNamespace]] [[setVariable]] ["_map",[[findDisplay]] 12 [[displayCtrl]] 51]; | ||
([[uiNamespace]] [[getVariable]] "_map") [[ctrlMapCursor]] ["Track","HC_overFriendly"];</code> | ([[uiNamespace]] [[getVariable]] "_map") [[ctrlMapCursor]] ["Track","HC_overFriendly"];</code> | ||
|x3= <code>[[findDisplay]] 12 [[displayCtrl]] 51 [[ctrlMapCursor]] ["Scroll", "Wait"];</code> | |x3= <code>[[findDisplay]] 12 [[displayCtrl]] 51 [[ctrlMapCursor]] ["Scroll", "Wait"];</code> | ||
|x4= Cycle through all available cursors over custom map:<code>0 = [] [[spawn]] | |x4= Cycle through all available cursors over custom map:<code>0 = [] [[spawn]] | ||
Line 59: | Line 57: | ||
} | } | ||
[[forEach]] ("true" [[configClasses]] ([[configFile]] >> "CfgWrapperUI" >> "Cursors")); | [[forEach]] ("true" [[configClasses]] ([[configFile]] >> "CfgWrapperUI" >> "Cursors")); | ||
};</code> | };</code> | ||
| [[setMousePosition]], [[getMousePosition]] | |seealso= [[setMousePosition]], [[getMousePosition]] | ||
}} | }} | ||
{{GameCategory|arma2|Scripting Commands}} | |||
{{GameCategory|arma3|Scripting Commands}} | |||
{{GameCategory|tkoh|Scripting Commands}} | |||
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]] | [[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]] | ||
<dl class="command_description"> | <dl class="command_description"> | ||
<dt></dt> | |||
<dd class="notedate">Posted on February 8, 2016 - 22:43 (UTC)</dd> | <dd class="notedate">Posted on February 8, 2016 - 22:43 (UTC)</dd> | ||
<dt class="note">[[User:Bull A|Bull A]]</dt> | <dt class="note">[[User:Bull A|Bull A]]</dt> | ||
<dd class="note"> | <dd class="note"> | ||
When using this command, the cursor will change for the whole display, resulting in visual glitches. Adding the onMouseMoving event handler can help solve this problem: | When using this command, the cursor will change for the whole display, resulting in visual glitches. Adding the onMouseMoving event handler can help solve this problem: | ||
<code> | <code>_control [[ctrlAddEventHandler]] ["MouseMoving",{ | ||
_control [[ctrlAddEventHandler]] ["MouseMoving",{ | |||
_this [[params]] [ | _this [[params]] [ | ||
["_mapCtrl",[[controlNull]],[[[controlNull]]]], | ["_mapCtrl",[[controlNull]],[[[controlNull]]]], | ||
Line 110: | Line 93: | ||
</dd> | </dd> | ||
</dl> | </dl> | ||
Revision as of 01:50, 6 April 2021
Description
- Description:
- Description needed
- Groups:
- GUI Control - Map
Syntax
- Syntax:
- Syntax needed
- Parameters:
- control: Control - Map control
- defaultCursor: String - Cursor class name
- newCursor: String - Cursor class name
- Return Value:
- Return value needed
Examples
- Example 1:
_map ctrlMapCursor ["Track", "Arrow"];
- Example 2:
uiNamespace setVariable ["_map",findDisplay 12 displayCtrl 51]; (uiNamespace getVariable "_map") ctrlMapCursor ["Track","HC_overFriendly"];
- Example 3:
findDisplay 12 displayCtrl 51 ctrlMapCursor ["Scroll", "Wait"];
- Example 4:
- Cycle through all available cursors over custom map:
0 = [] spawn { disableSerialization; _map = findDisplay 46 createDisplay "RscCredits" ctrlCreate ["RscMapControl", -1]; _map ctrlSetPosition [0,0,1,1]; _map ctrlCommit 0; { _map ctrlMapCursor ["", configName _x]; //<-- the actual usage hint format ["Current cursor: %1", configName _x]; sleep 1; } forEach ("true" configClasses (configFile >> "CfgWrapperUI" >> "Cursors")); };
Additional Information
- See also:
- setMousePositiongetMousePosition
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
- Posted on February 8, 2016 - 22:43 (UTC)
- Bull A
-
When using this command, the cursor will change for the whole display, resulting in visual glitches. Adding the onMouseMoving event handler can help solve this problem:
_control ctrlAddEventHandler ["MouseMoving",{ _this params [ ["_mapCtrl",controlNull,[[[controlNull]]]], ["_xPos",-1,[0]], ["_yPos",-1,[0]], ["_mouseIn",false,[[[true]]]] ]; if (_mouseIn) then { // Mouse is in control area _mapCtrl ctrlMapCursor ["","Track"]; } else { // Mouse is out of control area, goes back to arrow _mapCtrl ctrlMapCursor ["","Arrow"]; }; }];