phoenix-firestorm/indra/newview/rlvfloaters.h

174 lines
4.3 KiB
C++

/**
*
* Copyright (c) 2009-2011, Kitty Barnett
*
* The source code in this file is provided to you under the terms of the
* GNU Lesser General Public License, version 2.1, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. Terms of the LGPL can be found in doc/LGPL-licence.txt
* in this distribution, or online at http://www.gnu.org/licenses/lgpl-2.1.txt
*
* By copying, modifying or distributing this software, you acknowledge that
* you have read and understood your obligations described above, and agree to
* abide by those obligations.
*
*/
#pragma once
#include "llfloater.h"
#include "rlvdefines.h"
#include "rlvcommon.h"
// ============================================================================
// Foward declarations
//
class LLChatEntry;
class LLComboBox;
class LLLayoutPanel;
class LLTextEditor;
// ============================================================================
// RlvFloaterLocks class declaration
//
enum class ERlvBehaviourFilter {
BEHAVIOURS_ONLY,
EXCEPTIONS_ONLY,
ALL
};
class RlvFloaterBehaviours : public LLFloater
{
friend class LLFloaterReg;
private:
RlvFloaterBehaviours(const LLSD& sdKey) : LLFloater(sdKey) {}
/*
* LLFloater overrides
*/
public:
/*virtual*/ void onOpen(const LLSD& sdKey);
/*virtual*/ void onClose(bool fQuitting);
/*virtual*/ bool postBuild();
/*
* Member functions
*/
static std::string getFormattedBehaviourString(ERlvBehaviourFilter eFilter);
protected:
void onAvatarNameLookup(const LLUUID& idAgent, const LLAvatarName& avName);
void onBtnCopyToClipboard();
void onCommand(const RlvCommand& rlvCmd, ERlvCmdRet eRet);
void refreshAll();
/*
* Member variables
*/
protected:
boost::signals2::connection m_ConnRlvCommand;
uuid_vec_t m_PendingLookup;
};
// ============================================================================
// RlvFloaterLocks class declaration
//
class RlvFloaterLocks : public LLFloater
{
friend class LLFloaterReg;
private:
RlvFloaterLocks(const LLSD& sdKey) : LLFloater(sdKey) {}
/*
* LLFloater overrides
*/
public:
/*virtual*/ void onOpen(const LLSD& sdKey);
/*virtual*/ void onClose(bool fQuitting);
/*virtual*/ bool postBuild();
/*
* Member functions
*/
protected:
void onRlvCommand(const RlvCommand& rlvCmd, ERlvCmdRet eRet);
void refreshAll();
/*
* Member variables
*/
protected:
boost::signals2::connection m_ConnRlvCommand;
};
// ============================================================================
// RlvFloaterStrings class declaration
//
class RlvFloaterStrings : public LLFloater
{
friend class LLFloaterReg;
private:
RlvFloaterStrings(const LLSD& sdKey);
// LLFloater overrides
public:
/*virtual*/ void onClose(bool fQuitting);
/*virtual*/ bool postBuild();
// Member functions
protected:
void onStringRevertDefault();
void checkDirty(bool fRefresh);
void refresh();
// Member variables
protected:
bool m_fDirty;
std::string m_strStringCurrent;
LLComboBox* m_pStringList;
LLSD m_sdStringsInfo;
};
// ============================================================================
// RlvFloaterConsole - debug console to allow command execution without the need for a script
//
class RlvFloaterConsole : public LLFloater
{
friend class LLFloaterReg;
template<ERlvParamType> friend struct RlvCommandHandlerBaseImpl;
friend class RlvHandler;
private:
RlvFloaterConsole(const LLSD& sdKey);
~RlvFloaterConsole() override;
/*
* LLFloater overrides
*/
public:
bool postBuild() override;
void onClose(bool fQuitting) override;
/*
* Member functions
*/
protected:
void addCommandReply(const std::string& strCommand, const std::string& strReply);
void onInput(LLUICtrl* ctrl, const LLSD& param);
void reshapeLayoutPanel();
/*
* Member variables
*/
protected:
LLTextEditor* m_pOutputText = nullptr;
LLLayoutPanel* m_pInputPanel = nullptr;
LLChatEntry* m_pInputEdit = nullptr;
int m_nInputEditPad = 0;
};
// ============================================================================