mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-07-23 03:59:29 +02:00
web entity wantsKeyboardFocus property
This commit is contained in:
parent
eebeca515e
commit
dc32e5c0a3
10 changed files with 50 additions and 4 deletions
|
@ -171,6 +171,7 @@ void WebEntityRenderer::doRenderUpdateSynchronousTyped(const ScenePointer& scene
|
||||||
_dpi = entity->getDPI();
|
_dpi = entity->getDPI();
|
||||||
_color = entity->getColor();
|
_color = entity->getColor();
|
||||||
_alpha = entity->getAlpha();
|
_alpha = entity->getAlpha();
|
||||||
|
_wantsKeyboardFocus = entity->wantsKeyboardFocus();
|
||||||
_pulseProperties = entity->getPulseProperties();
|
_pulseProperties = entity->getPulseProperties();
|
||||||
|
|
||||||
if (_contentType == ContentType::NoContent) {
|
if (_contentType == ContentType::NoContent) {
|
||||||
|
|
|
@ -67,7 +67,7 @@ protected:
|
||||||
virtual bool isTransparent() const override;
|
virtual bool isTransparent() const override;
|
||||||
|
|
||||||
virtual bool wantsHandControllerPointerEvents() const override { return true; }
|
virtual bool wantsHandControllerPointerEvents() const override { return true; }
|
||||||
virtual bool wantsKeyboardFocus() const override { return true; }
|
virtual bool wantsKeyboardFocus() const override { return _wantsKeyboardFocus; }
|
||||||
|
|
||||||
void handlePointerEventAsTouch(const PointerEvent& event);
|
void handlePointerEventAsTouch(const PointerEvent& event);
|
||||||
void handlePointerEventAsMouse(const PointerEvent& event);
|
void handlePointerEventAsMouse(const PointerEvent& event);
|
||||||
|
@ -103,6 +103,7 @@ private:
|
||||||
bool _useBackground { false };
|
bool _useBackground { false };
|
||||||
QString _userAgent;
|
QString _userAgent;
|
||||||
WebInputMode _inputMode { WebInputMode::TOUCH };
|
WebInputMode _inputMode { WebInputMode::TOUCH };
|
||||||
|
bool _wantsKeyboardFocus { true };
|
||||||
|
|
||||||
glm::vec3 _contextPosition;
|
glm::vec3 _contextPosition;
|
||||||
|
|
||||||
|
|
|
@ -644,6 +644,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
|
||||||
CHECK_PROPERTY_CHANGE(PROP_SCRIPT_URL, scriptURL);
|
CHECK_PROPERTY_CHANGE(PROP_SCRIPT_URL, scriptURL);
|
||||||
CHECK_PROPERTY_CHANGE(PROP_MAX_FPS, maxFPS);
|
CHECK_PROPERTY_CHANGE(PROP_MAX_FPS, maxFPS);
|
||||||
CHECK_PROPERTY_CHANGE(PROP_INPUT_MODE, inputMode);
|
CHECK_PROPERTY_CHANGE(PROP_INPUT_MODE, inputMode);
|
||||||
|
CHECK_PROPERTY_CHANGE(PROP_WANTS_KEYBOARD_FOCUS, wantsKeyboardFocus);
|
||||||
CHECK_PROPERTY_CHANGE(PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT, showKeyboardFocusHighlight);
|
CHECK_PROPERTY_CHANGE(PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT, showKeyboardFocusHighlight);
|
||||||
CHECK_PROPERTY_CHANGE(PROP_WEB_USE_BACKGROUND, useBackground);
|
CHECK_PROPERTY_CHANGE(PROP_WEB_USE_BACKGROUND, useBackground);
|
||||||
CHECK_PROPERTY_CHANGE(PROP_USER_AGENT, userAgent);
|
CHECK_PROPERTY_CHANGE(PROP_USER_AGENT, userAgent);
|
||||||
|
@ -1423,6 +1424,8 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
|
||||||
* @property {string} scriptURL="" - The URL of a JavaScript file to inject into the web page.
|
* @property {string} scriptURL="" - The URL of a JavaScript file to inject into the web page.
|
||||||
* @property {number} maxFPS=10 - The maximum update rate for the web content, in frames/second.
|
* @property {number} maxFPS=10 - The maximum update rate for the web content, in frames/second.
|
||||||
* @property {WebInputMode} inputMode="touch" - The user input mode to use.
|
* @property {WebInputMode} inputMode="touch" - The user input mode to use.
|
||||||
|
* @property {boolean} wantsKeyboardFocus=true - <code>true</code> if the entity should capture keyboard focus, <code>false</code> if it
|
||||||
|
* shouldn't.
|
||||||
* @property {boolean} showKeyboardFocusHighlight=true - <code>true</code> if the entity is highlighted when it has keyboard
|
* @property {boolean} showKeyboardFocusHighlight=true - <code>true</code> if the entity is highlighted when it has keyboard
|
||||||
* focus, <code>false</code> if it isn't.
|
* focus, <code>false</code> if it isn't.
|
||||||
* @property {boolean} useBackground=true - <code>true</code> if the web entity should have a background,
|
* @property {boolean} useBackground=true - <code>true</code> if the web entity should have a background,
|
||||||
|
@ -1857,6 +1860,7 @@ ScriptValue EntityItemProperties::copyToScriptValue(ScriptEngine* engine, bool s
|
||||||
COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SCRIPT_URL, scriptURL);
|
COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SCRIPT_URL, scriptURL);
|
||||||
COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_MAX_FPS, maxFPS);
|
COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_MAX_FPS, maxFPS);
|
||||||
COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_INPUT_MODE, inputMode, getInputModeAsString());
|
COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_INPUT_MODE, inputMode, getInputModeAsString());
|
||||||
|
COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_WANTS_KEYBOARD_FOCUS, wantsKeyboardFocus);
|
||||||
COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT, showKeyboardFocusHighlight);
|
COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT, showKeyboardFocusHighlight);
|
||||||
COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_WEB_USE_BACKGROUND, useBackground);
|
COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_WEB_USE_BACKGROUND, useBackground);
|
||||||
COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_USER_AGENT, userAgent);
|
COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_USER_AGENT, userAgent);
|
||||||
|
@ -2238,6 +2242,7 @@ void EntityItemProperties::copyFromScriptValue(const ScriptValue& object, bool h
|
||||||
COPY_PROPERTY_FROM_QSCRIPTVALUE(scriptURL, QString, setScriptURL);
|
COPY_PROPERTY_FROM_QSCRIPTVALUE(scriptURL, QString, setScriptURL);
|
||||||
COPY_PROPERTY_FROM_QSCRIPTVALUE(maxFPS, uint8_t, setMaxFPS);
|
COPY_PROPERTY_FROM_QSCRIPTVALUE(maxFPS, uint8_t, setMaxFPS);
|
||||||
COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(inputMode, InputMode);
|
COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(inputMode, InputMode);
|
||||||
|
COPY_PROPERTY_FROM_QSCRIPTVALUE(wantsKeyboardFocus, bool, setWantsKeyboardFocus);
|
||||||
COPY_PROPERTY_FROM_QSCRIPTVALUE(showKeyboardFocusHighlight, bool, setShowKeyboardFocusHighlight);
|
COPY_PROPERTY_FROM_QSCRIPTVALUE(showKeyboardFocusHighlight, bool, setShowKeyboardFocusHighlight);
|
||||||
COPY_PROPERTY_FROM_QSCRIPTVALUE(useBackground, bool, setUseBackground);
|
COPY_PROPERTY_FROM_QSCRIPTVALUE(useBackground, bool, setUseBackground);
|
||||||
COPY_PROPERTY_FROM_QSCRIPTVALUE(userAgent, QString, setUserAgent);
|
COPY_PROPERTY_FROM_QSCRIPTVALUE(userAgent, QString, setUserAgent);
|
||||||
|
@ -2522,6 +2527,7 @@ void EntityItemProperties::merge(const EntityItemProperties& other) {
|
||||||
COPY_PROPERTY_IF_CHANGED(scriptURL);
|
COPY_PROPERTY_IF_CHANGED(scriptURL);
|
||||||
COPY_PROPERTY_IF_CHANGED(maxFPS);
|
COPY_PROPERTY_IF_CHANGED(maxFPS);
|
||||||
COPY_PROPERTY_IF_CHANGED(inputMode);
|
COPY_PROPERTY_IF_CHANGED(inputMode);
|
||||||
|
COPY_PROPERTY_IF_CHANGED(wantsKeyboardFocus);
|
||||||
COPY_PROPERTY_IF_CHANGED(showKeyboardFocusHighlight);
|
COPY_PROPERTY_IF_CHANGED(showKeyboardFocusHighlight);
|
||||||
COPY_PROPERTY_IF_CHANGED(useBackground);
|
COPY_PROPERTY_IF_CHANGED(useBackground);
|
||||||
COPY_PROPERTY_IF_CHANGED(userAgent);
|
COPY_PROPERTY_IF_CHANGED(userAgent);
|
||||||
|
@ -2917,6 +2923,7 @@ bool EntityItemProperties::getPropertyInfo(const QString& propertyName, EntityPr
|
||||||
ADD_PROPERTY_TO_MAP(PROP_SCRIPT_URL, ScriptURL, scriptURL, QString);
|
ADD_PROPERTY_TO_MAP(PROP_SCRIPT_URL, ScriptURL, scriptURL, QString);
|
||||||
ADD_PROPERTY_TO_MAP(PROP_MAX_FPS, MaxFPS, maxFPS, uint8_t);
|
ADD_PROPERTY_TO_MAP(PROP_MAX_FPS, MaxFPS, maxFPS, uint8_t);
|
||||||
ADD_PROPERTY_TO_MAP(PROP_INPUT_MODE, InputMode, inputMode, WebInputMode);
|
ADD_PROPERTY_TO_MAP(PROP_INPUT_MODE, InputMode, inputMode, WebInputMode);
|
||||||
|
ADD_PROPERTY_TO_MAP(PROP_WANTS_KEYBOARD_FOCUS, WantsKeyboardFocus, wantsKeyboardFocus, bool);
|
||||||
ADD_PROPERTY_TO_MAP(PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT, ShowKeyboardFocusHighlight, showKeyboardFocusHighlight, bool);
|
ADD_PROPERTY_TO_MAP(PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT, ShowKeyboardFocusHighlight, showKeyboardFocusHighlight, bool);
|
||||||
ADD_PROPERTY_TO_MAP(PROP_WEB_USE_BACKGROUND, useBackground, useBackground, bool);
|
ADD_PROPERTY_TO_MAP(PROP_WEB_USE_BACKGROUND, useBackground, useBackground, bool);
|
||||||
ADD_PROPERTY_TO_MAP(PROP_USER_AGENT, UserAgent, userAgent, QString);
|
ADD_PROPERTY_TO_MAP(PROP_USER_AGENT, UserAgent, userAgent, QString);
|
||||||
|
@ -3340,6 +3347,7 @@ OctreeElement::AppendState EntityItemProperties::encodeEntityEditPacket(PacketTy
|
||||||
APPEND_ENTITY_PROPERTY(PROP_SCRIPT_URL, properties.getScriptURL());
|
APPEND_ENTITY_PROPERTY(PROP_SCRIPT_URL, properties.getScriptURL());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_MAX_FPS, properties.getMaxFPS());
|
APPEND_ENTITY_PROPERTY(PROP_MAX_FPS, properties.getMaxFPS());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_INPUT_MODE, (uint32_t)properties.getInputMode());
|
APPEND_ENTITY_PROPERTY(PROP_INPUT_MODE, (uint32_t)properties.getInputMode());
|
||||||
|
APPEND_ENTITY_PROPERTY(PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT, properties.getWantsKeyboardFocus());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT, properties.getShowKeyboardFocusHighlight());
|
APPEND_ENTITY_PROPERTY(PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT, properties.getShowKeyboardFocusHighlight());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_WEB_USE_BACKGROUND, properties.getUseBackground());
|
APPEND_ENTITY_PROPERTY(PROP_WEB_USE_BACKGROUND, properties.getUseBackground());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_USER_AGENT, properties.getUserAgent());
|
APPEND_ENTITY_PROPERTY(PROP_USER_AGENT, properties.getUserAgent());
|
||||||
|
@ -3806,6 +3814,7 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int
|
||||||
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SCRIPT_URL, QString, setScriptURL);
|
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SCRIPT_URL, QString, setScriptURL);
|
||||||
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_MAX_FPS, uint8_t, setMaxFPS);
|
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_MAX_FPS, uint8_t, setMaxFPS);
|
||||||
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_INPUT_MODE, WebInputMode, setInputMode);
|
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_INPUT_MODE, WebInputMode, setInputMode);
|
||||||
|
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_WANTS_KEYBOARD_FOCUS, bool, setWantsKeyboardFocus);
|
||||||
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT, bool, setShowKeyboardFocusHighlight);
|
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT, bool, setShowKeyboardFocusHighlight);
|
||||||
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_WEB_USE_BACKGROUND, bool, setUseBackground);
|
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_WEB_USE_BACKGROUND, bool, setUseBackground);
|
||||||
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_USER_AGENT, QString, setUserAgent);
|
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_USER_AGENT, QString, setUserAgent);
|
||||||
|
@ -4169,6 +4178,7 @@ void EntityItemProperties::markAllChanged() {
|
||||||
_scriptURLChanged = true;
|
_scriptURLChanged = true;
|
||||||
_maxFPSChanged = true;
|
_maxFPSChanged = true;
|
||||||
_inputModeChanged = true;
|
_inputModeChanged = true;
|
||||||
|
_wantsKeyboardFocusChanged = true;
|
||||||
_showKeyboardFocusHighlightChanged = true;
|
_showKeyboardFocusHighlightChanged = true;
|
||||||
_useBackgroundChanged = true;
|
_useBackgroundChanged = true;
|
||||||
_userAgentChanged = true;
|
_userAgentChanged = true;
|
||||||
|
@ -4836,6 +4846,9 @@ QList<QString> EntityItemProperties::listChangedProperties() {
|
||||||
if (faceCameraChanged()) {
|
if (faceCameraChanged()) {
|
||||||
out += "faceCamera";
|
out += "faceCamera";
|
||||||
}
|
}
|
||||||
|
if (wantsKeyboardFocusChanged()) {
|
||||||
|
out += "wantsKeyboardFocus";
|
||||||
|
}
|
||||||
if (showKeyboardFocusHighlightChanged()) {
|
if (showKeyboardFocusHighlightChanged()) {
|
||||||
out += "showKeyboardFocusHighlight";
|
out += "showKeyboardFocusHighlight";
|
||||||
}
|
}
|
||||||
|
|
|
@ -362,6 +362,7 @@ public:
|
||||||
DEFINE_PROPERTY_REF(PROP_SCRIPT_URL, ScriptURL, scriptURL, QString, "");
|
DEFINE_PROPERTY_REF(PROP_SCRIPT_URL, ScriptURL, scriptURL, QString, "");
|
||||||
DEFINE_PROPERTY_REF(PROP_MAX_FPS, MaxFPS, maxFPS, uint8_t, WebEntityItem::DEFAULT_MAX_FPS);
|
DEFINE_PROPERTY_REF(PROP_MAX_FPS, MaxFPS, maxFPS, uint8_t, WebEntityItem::DEFAULT_MAX_FPS);
|
||||||
DEFINE_PROPERTY_REF_ENUM(PROP_INPUT_MODE, InputMode, inputMode, WebInputMode, WebInputMode::TOUCH);
|
DEFINE_PROPERTY_REF_ENUM(PROP_INPUT_MODE, InputMode, inputMode, WebInputMode, WebInputMode::TOUCH);
|
||||||
|
DEFINE_PROPERTY_REF(PROP_WANTS_KEYBOARD_FOCUS, WantsKeyboardFocus, wantsKeyboardFocus, bool, true);
|
||||||
DEFINE_PROPERTY_REF(PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT, ShowKeyboardFocusHighlight, showKeyboardFocusHighlight, bool, true);
|
DEFINE_PROPERTY_REF(PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT, ShowKeyboardFocusHighlight, showKeyboardFocusHighlight, bool, true);
|
||||||
DEFINE_PROPERTY_REF(PROP_WEB_USE_BACKGROUND, UseBackground, useBackground, bool, true);
|
DEFINE_PROPERTY_REF(PROP_WEB_USE_BACKGROUND, UseBackground, useBackground, bool, true);
|
||||||
DEFINE_PROPERTY_REF(PROP_USER_AGENT, UserAgent, userAgent, QString, WebEntityItem::DEFAULT_USER_AGENT);
|
DEFINE_PROPERTY_REF(PROP_USER_AGENT, UserAgent, userAgent, QString, WebEntityItem::DEFAULT_USER_AGENT);
|
||||||
|
|
|
@ -322,9 +322,10 @@ enum EntityPropertyList {
|
||||||
PROP_SCRIPT_URL = PROP_DERIVED_2,
|
PROP_SCRIPT_URL = PROP_DERIVED_2,
|
||||||
PROP_MAX_FPS = PROP_DERIVED_3,
|
PROP_MAX_FPS = PROP_DERIVED_3,
|
||||||
PROP_INPUT_MODE = PROP_DERIVED_4,
|
PROP_INPUT_MODE = PROP_DERIVED_4,
|
||||||
PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT = PROP_DERIVED_5,
|
PROP_WANTS_KEYBOARD_FOCUS = PROP_DERIVED_5,
|
||||||
PROP_WEB_USE_BACKGROUND = PROP_DERIVED_6,
|
PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT = PROP_DERIVED_6,
|
||||||
PROP_USER_AGENT = PROP_DERIVED_7,
|
PROP_WEB_USE_BACKGROUND = PROP_DERIVED_7,
|
||||||
|
PROP_USER_AGENT = PROP_DERIVED_8,
|
||||||
|
|
||||||
// Polyline
|
// Polyline
|
||||||
PROP_LINE_POINTS = PROP_DERIVED_0,
|
PROP_LINE_POINTS = PROP_DERIVED_0,
|
||||||
|
|
|
@ -61,6 +61,7 @@ EntityItemProperties WebEntityItem::getProperties(const EntityPropertyFlags& des
|
||||||
COPY_ENTITY_PROPERTY_TO_PROPERTIES(scriptURL, getScriptURL);
|
COPY_ENTITY_PROPERTY_TO_PROPERTIES(scriptURL, getScriptURL);
|
||||||
COPY_ENTITY_PROPERTY_TO_PROPERTIES(maxFPS, getMaxFPS);
|
COPY_ENTITY_PROPERTY_TO_PROPERTIES(maxFPS, getMaxFPS);
|
||||||
COPY_ENTITY_PROPERTY_TO_PROPERTIES(inputMode, getInputMode);
|
COPY_ENTITY_PROPERTY_TO_PROPERTIES(inputMode, getInputMode);
|
||||||
|
COPY_ENTITY_PROPERTY_TO_PROPERTIES(wantsKeyboardFocus, wantsKeyboardFocus);
|
||||||
COPY_ENTITY_PROPERTY_TO_PROPERTIES(showKeyboardFocusHighlight, getShowKeyboardFocusHighlight);
|
COPY_ENTITY_PROPERTY_TO_PROPERTIES(showKeyboardFocusHighlight, getShowKeyboardFocusHighlight);
|
||||||
COPY_ENTITY_PROPERTY_TO_PROPERTIES(useBackground, getUseBackground);
|
COPY_ENTITY_PROPERTY_TO_PROPERTIES(useBackground, getUseBackground);
|
||||||
COPY_ENTITY_PROPERTY_TO_PROPERTIES(userAgent, getUserAgent);
|
COPY_ENTITY_PROPERTY_TO_PROPERTIES(userAgent, getUserAgent);
|
||||||
|
@ -83,6 +84,7 @@ bool WebEntityItem::setSubClassProperties(const EntityItemProperties& properties
|
||||||
SET_ENTITY_PROPERTY_FROM_PROPERTIES(scriptURL, setScriptURL);
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(scriptURL, setScriptURL);
|
||||||
SET_ENTITY_PROPERTY_FROM_PROPERTIES(maxFPS, setMaxFPS);
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(maxFPS, setMaxFPS);
|
||||||
SET_ENTITY_PROPERTY_FROM_PROPERTIES(inputMode, setInputMode);
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(inputMode, setInputMode);
|
||||||
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(wantsKeyboardFocus, setWantsKeyboardFocus);
|
||||||
SET_ENTITY_PROPERTY_FROM_PROPERTIES(showKeyboardFocusHighlight, setShowKeyboardFocusHighlight);
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(showKeyboardFocusHighlight, setShowKeyboardFocusHighlight);
|
||||||
SET_ENTITY_PROPERTY_FROM_PROPERTIES(useBackground, setUseBackground);
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(useBackground, setUseBackground);
|
||||||
SET_ENTITY_PROPERTY_FROM_PROPERTIES(userAgent, setUserAgent);
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(userAgent, setUserAgent);
|
||||||
|
@ -113,6 +115,7 @@ int WebEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* data, i
|
||||||
READ_ENTITY_PROPERTY(PROP_SCRIPT_URL, QString, setScriptURL);
|
READ_ENTITY_PROPERTY(PROP_SCRIPT_URL, QString, setScriptURL);
|
||||||
READ_ENTITY_PROPERTY(PROP_MAX_FPS, uint8_t, setMaxFPS);
|
READ_ENTITY_PROPERTY(PROP_MAX_FPS, uint8_t, setMaxFPS);
|
||||||
READ_ENTITY_PROPERTY(PROP_INPUT_MODE, WebInputMode, setInputMode);
|
READ_ENTITY_PROPERTY(PROP_INPUT_MODE, WebInputMode, setInputMode);
|
||||||
|
READ_ENTITY_PROPERTY(PROP_WANTS_KEYBOARD_FOCUS, bool, setWantsKeyboardFocus);
|
||||||
READ_ENTITY_PROPERTY(PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT, bool, setShowKeyboardFocusHighlight);
|
READ_ENTITY_PROPERTY(PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT, bool, setShowKeyboardFocusHighlight);
|
||||||
READ_ENTITY_PROPERTY(PROP_WEB_USE_BACKGROUND, bool, setUseBackground);
|
READ_ENTITY_PROPERTY(PROP_WEB_USE_BACKGROUND, bool, setUseBackground);
|
||||||
READ_ENTITY_PROPERTY(PROP_USER_AGENT, QString, setUserAgent);
|
READ_ENTITY_PROPERTY(PROP_USER_AGENT, QString, setUserAgent);
|
||||||
|
@ -131,6 +134,7 @@ EntityPropertyFlags WebEntityItem::getEntityProperties(EncodeBitstreamParams& pa
|
||||||
requestedProperties += PROP_SCRIPT_URL;
|
requestedProperties += PROP_SCRIPT_URL;
|
||||||
requestedProperties += PROP_MAX_FPS;
|
requestedProperties += PROP_MAX_FPS;
|
||||||
requestedProperties += PROP_INPUT_MODE;
|
requestedProperties += PROP_INPUT_MODE;
|
||||||
|
requestedProperties += PROP_WANTS_KEYBOARD_FOCUS;
|
||||||
requestedProperties += PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT;
|
requestedProperties += PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT;
|
||||||
requestedProperties += PROP_WEB_USE_BACKGROUND;
|
requestedProperties += PROP_WEB_USE_BACKGROUND;
|
||||||
requestedProperties += PROP_USER_AGENT;
|
requestedProperties += PROP_USER_AGENT;
|
||||||
|
@ -158,6 +162,7 @@ void WebEntityItem::appendSubclassData(OctreePacketData* packetData, EncodeBitst
|
||||||
APPEND_ENTITY_PROPERTY(PROP_SCRIPT_URL, getScriptURL());
|
APPEND_ENTITY_PROPERTY(PROP_SCRIPT_URL, getScriptURL());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_MAX_FPS, getMaxFPS());
|
APPEND_ENTITY_PROPERTY(PROP_MAX_FPS, getMaxFPS());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_INPUT_MODE, (uint32_t)getInputMode());
|
APPEND_ENTITY_PROPERTY(PROP_INPUT_MODE, (uint32_t)getInputMode());
|
||||||
|
APPEND_ENTITY_PROPERTY(PROP_WANTS_KEYBOARD_FOCUS, wantsKeyboardFocus());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT, getShowKeyboardFocusHighlight());
|
APPEND_ENTITY_PROPERTY(PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT, getShowKeyboardFocusHighlight());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_WEB_USE_BACKGROUND, getUseBackground());
|
APPEND_ENTITY_PROPERTY(PROP_WEB_USE_BACKGROUND, getUseBackground());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_USER_AGENT, getUserAgent());
|
APPEND_ENTITY_PROPERTY(PROP_USER_AGENT, getUserAgent());
|
||||||
|
@ -269,6 +274,17 @@ WebInputMode WebEntityItem::getInputMode() const {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WebEntityItem::setWantsKeyboardFocus(bool value) {
|
||||||
|
withWriteLock([&] {
|
||||||
|
_needsRenderUpdate |= _wantsKeyboardFocus != value;
|
||||||
|
_wantsKeyboardFocus = value;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
bool WebEntityItem::wantsKeyboardFocus() const {
|
||||||
|
return _wantsKeyboardFocus;
|
||||||
|
}
|
||||||
|
|
||||||
void WebEntityItem::setShowKeyboardFocusHighlight(bool value) {
|
void WebEntityItem::setShowKeyboardFocusHighlight(bool value) {
|
||||||
_showKeyboardFocusHighlight = value;
|
_showKeyboardFocusHighlight = value;
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,6 +72,9 @@ public:
|
||||||
void setInputMode(const WebInputMode& value);
|
void setInputMode(const WebInputMode& value);
|
||||||
WebInputMode getInputMode() const;
|
WebInputMode getInputMode() const;
|
||||||
|
|
||||||
|
bool wantsKeyboardFocus() const;
|
||||||
|
void setWantsKeyboardFocus(bool value);
|
||||||
|
|
||||||
bool getShowKeyboardFocusHighlight() const;
|
bool getShowKeyboardFocusHighlight() const;
|
||||||
void setShowKeyboardFocusHighlight(bool value);
|
void setShowKeyboardFocusHighlight(bool value);
|
||||||
|
|
||||||
|
@ -94,6 +97,7 @@ protected:
|
||||||
QString _scriptURL;
|
QString _scriptURL;
|
||||||
uint8_t _maxFPS;
|
uint8_t _maxFPS;
|
||||||
WebInputMode _inputMode;
|
WebInputMode _inputMode;
|
||||||
|
bool _wantsKeyboardFocus { false };
|
||||||
bool _showKeyboardFocusHighlight { false };
|
bool _showKeyboardFocusHighlight { false };
|
||||||
bool _useBackground { false };
|
bool _useBackground { false };
|
||||||
QString _userAgent;
|
QString _userAgent;
|
||||||
|
|
|
@ -292,6 +292,7 @@ enum class EntityVersion : PacketVersion {
|
||||||
TextAlignment,
|
TextAlignment,
|
||||||
Mirror,
|
Mirror,
|
||||||
EntityTags,
|
EntityTags,
|
||||||
|
WantsKeyboardFocus,
|
||||||
|
|
||||||
// Add new versions above here
|
// Add new versions above here
|
||||||
NUM_PACKET_TYPE,
|
NUM_PACKET_TYPE,
|
||||||
|
|
|
@ -237,6 +237,9 @@
|
||||||
"showKeyboardFocusHighlight": {
|
"showKeyboardFocusHighlight": {
|
||||||
"tooltip": "If enabled, highlights when it has keyboard focus."
|
"tooltip": "If enabled, highlights when it has keyboard focus."
|
||||||
},
|
},
|
||||||
|
"wantsKeyboardFocus": {
|
||||||
|
"tooltip": "If enabled, this web entity will capture keyboard focus once clicked."
|
||||||
|
},
|
||||||
"isEmitting": {
|
"isEmitting": {
|
||||||
"tooltip": "If enabled, then particles are emitted."
|
"tooltip": "If enabled, then particles are emitted."
|
||||||
},
|
},
|
||||||
|
|
|
@ -808,6 +808,11 @@ const GROUPS = [
|
||||||
},
|
},
|
||||||
propertyID: "inputMode",
|
propertyID: "inputMode",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: "Wants Keyboard Focus",
|
||||||
|
type: "bool",
|
||||||
|
propertyID: "wantsKeyboardFocus",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
label: "Focus Highlight",
|
label: "Focus Highlight",
|
||||||
type: "bool",
|
type: "bool",
|
||||||
|
|
Loading…
Reference in a new issue