diff options
| author | Ansariel <ansariel.hiller@phoenixviewer.com> | 2024-05-22 19:04:52 +0200 |
|---|---|---|
| committer | Ansariel <ansariel.hiller@phoenixviewer.com> | 2024-05-22 19:04:52 +0200 |
| commit | 1b67dd855c41f5a0cda7ec2a68d98071986ca703 (patch) | |
| tree | ab243607f74f78200787bba5b9b88f07ef1b966f /indra/newview/lltoolpipette.cpp | |
| parent | 6d6eabca44d08d5b97bfe3e941d2b9687c2246ea (diff) | |
| parent | e1623bb276f83a43ce7a197e388720c05bdefe61 (diff) | |
Merge remote-tracking branch 'origin/main' into DRTVWR-600-maint-A
# Conflicts:
# autobuild.xml
# indra/cmake/CMakeLists.txt
# indra/cmake/GoogleMock.cmake
# indra/llaudio/llaudioengine_fmodstudio.cpp
# indra/llaudio/llaudioengine_fmodstudio.h
# indra/llaudio/lllistener_fmodstudio.cpp
# indra/llaudio/lllistener_fmodstudio.h
# indra/llaudio/llstreamingaudio_fmodstudio.cpp
# indra/llaudio/llstreamingaudio_fmodstudio.h
# indra/llcharacter/llmultigesture.cpp
# indra/llcharacter/llmultigesture.h
# indra/llimage/llimage.cpp
# indra/llimage/llimagepng.cpp
# indra/llimage/llimageworker.cpp
# indra/llimage/tests/llimageworker_test.cpp
# indra/llmessage/tests/llmockhttpclient.h
# indra/llprimitive/llgltfmaterial.h
# indra/llrender/llfontfreetype.cpp
# indra/llui/llcombobox.cpp
# indra/llui/llfolderview.cpp
# indra/llui/llfolderviewmodel.h
# indra/llui/lllineeditor.cpp
# indra/llui/lllineeditor.h
# indra/llui/lltextbase.cpp
# indra/llui/lltextbase.h
# indra/llui/lltexteditor.cpp
# indra/llui/lltextvalidate.cpp
# indra/llui/lltextvalidate.h
# indra/llui/lluictrl.h
# indra/llui/llview.cpp
# indra/llwindow/llwindowmacosx.cpp
# indra/newview/app_settings/settings.xml
# indra/newview/llappearancemgr.cpp
# indra/newview/llappearancemgr.h
# indra/newview/llavatarpropertiesprocessor.cpp
# indra/newview/llavatarpropertiesprocessor.h
# indra/newview/llbreadcrumbview.cpp
# indra/newview/llbreadcrumbview.h
# indra/newview/llbreastmotion.cpp
# indra/newview/llbreastmotion.h
# indra/newview/llconversationmodel.h
# indra/newview/lldensityctrl.cpp
# indra/newview/lldensityctrl.h
# indra/newview/llface.inl
# indra/newview/llfloatereditsky.cpp
# indra/newview/llfloatereditwater.cpp
# indra/newview/llfloateremojipicker.h
# indra/newview/llfloaterimsessiontab.cpp
# indra/newview/llfloaterprofiletexture.cpp
# indra/newview/llfloaterprofiletexture.h
# indra/newview/llgesturemgr.cpp
# indra/newview/llgesturemgr.h
# indra/newview/llimpanel.cpp
# indra/newview/llimpanel.h
# indra/newview/llinventorybridge.cpp
# indra/newview/llinventorybridge.h
# indra/newview/llinventoryclipboard.cpp
# indra/newview/llinventoryclipboard.h
# indra/newview/llinventoryfunctions.cpp
# indra/newview/llinventoryfunctions.h
# indra/newview/llinventorygallery.cpp
# indra/newview/lllistbrowser.cpp
# indra/newview/lllistbrowser.h
# indra/newview/llpanelobjectinventory.cpp
# indra/newview/llpanelprofile.cpp
# indra/newview/llpanelprofile.h
# indra/newview/llpreviewgesture.cpp
# indra/newview/llsavedsettingsglue.cpp
# indra/newview/llsavedsettingsglue.h
# indra/newview/lltooldraganddrop.cpp
# indra/newview/llurllineeditorctrl.cpp
# indra/newview/llvectorperfoptions.cpp
# indra/newview/llvectorperfoptions.h
# indra/newview/llviewerparceloverlay.cpp
# indra/newview/llviewertexlayer.cpp
# indra/newview/llviewertexturelist.cpp
# indra/newview/macmain.h
# indra/test/test.cpp
Diffstat (limited to 'indra/newview/lltoolpipette.cpp')
| -rw-r--r-- | indra/newview/lltoolpipette.cpp | 272 |
1 files changed, 136 insertions, 136 deletions
diff --git a/indra/newview/lltoolpipette.cpp b/indra/newview/lltoolpipette.cpp index 36ac20bc59..dfd0dad7ad 100644 --- a/indra/newview/lltoolpipette.cpp +++ b/indra/newview/lltoolpipette.cpp @@ -1,136 +1,136 @@ -/** - * @file lltoolpipette.cpp - * @brief LLToolPipette class implementation - * - * $LicenseInfo:firstyear=2006&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA - * $/LicenseInfo$ - */ - -/** - * A tool to pick texture entry infro from objects in world (color/texture) - */ - -#include "llviewerprecompiledheaders.h" - -// File includes -#include "lltoolpipette.h" - -// Library includes -#include "lltooltip.h" - -// Viewer includes -#include "llviewerobjectlist.h" -#include "llviewerwindow.h" -#include "llselectmgr.h" -#include "lltoolmgr.h" - -// -// Member functions -// - -LLToolPipette::LLToolPipette() -: LLTool(std::string("Pipette")), - mSuccess(true) -{ -} - - -LLToolPipette::~LLToolPipette() -{ } - - -bool LLToolPipette::handleMouseDown(S32 x, S32 y, MASK mask) -{ - mSuccess = true; - mTooltipMsg.clear(); - setMouseCapture(true); - gViewerWindow->pickAsync(x, y, mask, pickCallback); - return true; -} - -bool LLToolPipette::handleMouseUp(S32 x, S32 y, MASK mask) -{ - mSuccess = true; - LLSelectMgr::getInstance()->unhighlightAll(); - // *NOTE: This assumes the pipette tool is a transient tool. - LLToolMgr::getInstance()->clearTransientTool(); - setMouseCapture(false); - return true; -} - -bool LLToolPipette::handleHover(S32 x, S32 y, MASK mask) -{ - gViewerWindow->setCursor(mSuccess ? UI_CURSOR_PIPETTE : UI_CURSOR_NO); - if (hasMouseCapture()) // mouse button is down - { - gViewerWindow->pickAsync(x, y, mask, pickCallback); - return true; - } - return false; -} - -bool LLToolPipette::handleToolTip(S32 x, S32 y, MASK mask) -{ - if (mTooltipMsg.empty()) - { - return false; - } - - LLRect sticky_rect; - sticky_rect.setCenterAndSize(x, y, 20, 20); - LLToolTipMgr::instance().show(LLToolTip::Params() - .message(mTooltipMsg) - .sticky_rect(sticky_rect)); - - return true; -} - -void LLToolPipette::setTextureEntry(const LLTextureEntry* entry) -{ - if (entry) - { - mTextureEntry = *entry; - mSignal(mTextureEntry); - } -} - -void LLToolPipette::pickCallback(const LLPickInfo& pick_info) -{ - LLViewerObject* hit_obj = pick_info.getObject(); - LLSelectMgr::getInstance()->unhighlightAll(); - - // if we clicked on a face of a valid prim, save off texture entry data - if (hit_obj && - hit_obj->getPCode() == LL_PCODE_VOLUME && - pick_info.mObjectFace != -1) - { - //TODO: this should highlight the selected face only - LLSelectMgr::getInstance()->highlightObjectOnly(hit_obj); - const LLTextureEntry* entry = hit_obj->getTE(pick_info.mObjectFace); - LLToolPipette::getInstance()->setTextureEntry(entry); - } -} - -void LLToolPipette::setResult(bool success, const std::string& msg) -{ - mTooltipMsg = msg; - mSuccess = success; -} +/**
+ * @file lltoolpipette.cpp
+ * @brief LLToolPipette class implementation
+ *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2010, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+/**
+ * A tool to pick texture entry infro from objects in world (color/texture)
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+// File includes
+#include "lltoolpipette.h"
+
+// Library includes
+#include "lltooltip.h"
+
+// Viewer includes
+#include "llviewerobjectlist.h"
+#include "llviewerwindow.h"
+#include "llselectmgr.h"
+#include "lltoolmgr.h"
+
+//
+// Member functions
+//
+
+LLToolPipette::LLToolPipette()
+: LLTool(std::string("Pipette")),
+ mSuccess(true)
+{
+}
+
+
+LLToolPipette::~LLToolPipette()
+{ }
+
+
+bool LLToolPipette::handleMouseDown(S32 x, S32 y, MASK mask)
+{
+ mSuccess = true;
+ mTooltipMsg.clear();
+ setMouseCapture(true);
+ gViewerWindow->pickAsync(x, y, mask, pickCallback);
+ return true;
+}
+
+bool LLToolPipette::handleMouseUp(S32 x, S32 y, MASK mask)
+{
+ mSuccess = true;
+ LLSelectMgr::getInstance()->unhighlightAll();
+ // *NOTE: This assumes the pipette tool is a transient tool.
+ LLToolMgr::getInstance()->clearTransientTool();
+ setMouseCapture(false);
+ return true;
+}
+
+bool LLToolPipette::handleHover(S32 x, S32 y, MASK mask)
+{
+ gViewerWindow->setCursor(mSuccess ? UI_CURSOR_PIPETTE : UI_CURSOR_NO);
+ if (hasMouseCapture()) // mouse button is down
+ {
+ gViewerWindow->pickAsync(x, y, mask, pickCallback);
+ return true;
+ }
+ return false;
+}
+
+bool LLToolPipette::handleToolTip(S32 x, S32 y, MASK mask)
+{
+ if (mTooltipMsg.empty())
+ {
+ return false;
+ }
+
+ LLRect sticky_rect;
+ sticky_rect.setCenterAndSize(x, y, 20, 20);
+ LLToolTipMgr::instance().show(LLToolTip::Params()
+ .message(mTooltipMsg)
+ .sticky_rect(sticky_rect));
+
+ return true;
+}
+
+void LLToolPipette::setTextureEntry(const LLTextureEntry* entry)
+{
+ if (entry)
+ {
+ mTextureEntry = *entry;
+ mSignal(mTextureEntry);
+ }
+}
+
+void LLToolPipette::pickCallback(const LLPickInfo& pick_info)
+{
+ LLViewerObject* hit_obj = pick_info.getObject();
+ LLSelectMgr::getInstance()->unhighlightAll();
+
+ // if we clicked on a face of a valid prim, save off texture entry data
+ if (hit_obj &&
+ hit_obj->getPCode() == LL_PCODE_VOLUME &&
+ pick_info.mObjectFace != -1)
+ {
+ //TODO: this should highlight the selected face only
+ LLSelectMgr::getInstance()->highlightObjectOnly(hit_obj);
+ const LLTextureEntry* entry = hit_obj->getTE(pick_info.mObjectFace);
+ LLToolPipette::getInstance()->setTextureEntry(entry);
+ }
+}
+
+void LLToolPipette::setResult(bool success, const std::string& msg)
+{
+ mTooltipMsg = msg;
+ mSuccess = success;
+}
|
