summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2021-04-26 23:55:45 +0300
committerAndrey Kleshchev <andreykproductengine@lindenlab.com>2021-04-26 23:55:45 +0300
commit8b3f4b56f93bfae8251e79c9210836437d2e945b (patch)
treeb997b9cc1fdcc4029a51daacdd038f05fd33bdbf /indra/newview
parentb391e7f93f008b6f3c30c9bfb9ac0cd93de1a6c2 (diff)
SL-14664 Increase range of supported cursors on prim's media
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llviewermedia.cpp63
1 files changed, 51 insertions, 12 deletions
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index 9ed2df2759..8cf9f4a85c 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -3194,18 +3194,57 @@ void LLViewerMediaImpl::handleMediaEvent(LLPluginClassMedia* plugin, LLPluginCla
std::string cursor = plugin->getCursorName();
- if(cursor == "arrow")
- mLastSetCursor = UI_CURSOR_ARROW;
- else if(cursor == "ibeam")
- mLastSetCursor = UI_CURSOR_IBEAM;
- else if(cursor == "splith")
- mLastSetCursor = UI_CURSOR_SIZEWE;
- else if(cursor == "splitv")
- mLastSetCursor = UI_CURSOR_SIZENS;
- else if(cursor == "hand")
- mLastSetCursor = UI_CURSOR_HAND;
- else // for anything else, default to the arrow
- mLastSetCursor = UI_CURSOR_ARROW;
+ static const std::map<std::string, ECursorType> cursor_name_to_enum
+ {
+ {std::string("arrow"), UI_CURSOR_ARROW},
+ {std::string("wait"), UI_CURSOR_WAIT},
+ {std::string("hand"), UI_CURSOR_HAND},
+ {std::string("ibeam"), UI_CURSOR_IBEAM},
+ {std::string("cross"), UI_CURSOR_CROSS},
+ {std::string("split_nwse"), UI_CURSOR_SIZENWSE},
+ {std::string("split_nesw"), UI_CURSOR_SIZENESW},
+ {std::string("split_we"), UI_CURSOR_SIZEWE},
+ {std::string("split_ns"), UI_CURSOR_SIZENS},
+ {std::string("cursor_no"), UI_CURSOR_NO},
+ {std::string("working"), UI_CURSOR_WORKING},
+ {std::string("tool_grab"), UI_CURSOR_TOOLGRAB},
+ {std::string("tool_land"), UI_CURSOR_TOOLLAND},
+ {std::string("tool_focus"), UI_CURSOR_TOOLFOCUS},
+ {std::string("tool_create"), UI_CURSOR_TOOLCREATE},
+ {std::string("arrow_drag"), UI_CURSOR_ARROWDRAG},
+ {std::string("arrow_copy"), UI_CURSOR_ARROWCOPY},
+ {std::string("arrow_drag_multi"), UI_CURSOR_ARROWDRAGMULTI},
+ {std::string("arrow_copy_multi"), UI_CURSOR_ARROWCOPYMULTI},
+ {std::string("cursor_no_locked"), UI_CURSOR_NOLOCKED},
+ {std::string("arrow_locked"), UI_CURSOR_ARROWLOCKED},
+ {std::string("grab_locked"), UI_CURSOR_GRABLOCKED},
+ {std::string("tool_translate"), UI_CURSOR_TOOLTRANSLATE},
+ {std::string("tool_rotate"), UI_CURSOR_TOOLROTATE},
+ {std::string("tool_scale"), UI_CURSOR_TOOLSCALE},
+ {std::string("tool_camera"), UI_CURSOR_TOOLCAMERA},
+ {std::string("tool_pan"), UI_CURSOR_TOOLPAN},
+ {std::string("tool_zoomin"), UI_CURSOR_TOOLZOOMIN},
+ {std::string("tool_pick_object3"), UI_CURSOR_TOOLPICKOBJECT3},
+ {std::string("tool_play"), UI_CURSOR_TOOLPLAY},
+ {std::string("tool_pause"), UI_CURSOR_TOOLPAUSE},
+ {std::string("tool_media_open"), UI_CURSOR_TOOLMEDIAOPEN},
+ {std::string("tool_pipette"), UI_CURSOR_PIPETTE},
+ {std::string("tool_sit"), UI_CURSOR_TOOLSIT},
+ {std::string("tool_buy"), UI_CURSOR_TOOLBUY},
+ {std::string("tool_open"), UI_CURSOR_TOOLOPEN},
+ {std::string("tool_pathfinding"), UI_CURSOR_TOOLPATHFINDING},
+ };
+
+ std::map<std::string, ECursorType>::const_iterator iter = cursor_name_to_enum.find(cursor);
+ if (iter != cursor_name_to_enum.end())
+ {
+ mLastSetCursor = iter->second;
+ }
+ else
+ {
+ // for anything else, default to the arrow
+ mLastSetCursor = UI_CURSOR_ARROW;
+ }
}
break;