summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llui/llcommandmanager.cpp24
-rw-r--r--indra/llui/llcommandmanager.h43
-rw-r--r--indra/llui/lltoolbar.cpp4
-rw-r--r--indra/newview/app_settings/commands.xml92
-rw-r--r--indra/newview/llfloatertoybox.cpp34
-rw-r--r--indra/newview/llfloatertoybox.h4
6 files changed, 109 insertions, 92 deletions
diff --git a/indra/llui/llcommandmanager.cpp b/indra/llui/llcommandmanager.cpp
index b1147134c2..922f243806 100644
--- a/indra/llui/llcommandmanager.cpp
+++ b/indra/llui/llcommandmanager.cpp
@@ -48,24 +48,36 @@ const LLCommandId LLCommandId::null("null command");
//
LLCommand::Params::Params()
- : function("function")
- , available_in_toybox("available_in_toybox", false)
+ : available_in_toybox("available_in_toybox", false)
, icon("icon")
, label_ref("label_ref")
, name("name")
- , parameter("parameter")
, tooltip_ref("tooltip_ref")
+ , execute_function("execute_function")
+ , execute_parameters("execute_parameters")
+ , is_enabled_function("is_enabled_function")
+ , is_enabled_parameters("is_enabled_parameters")
+ , is_running_function("is_running_function")
+ , is_running_parameters("is_running_parameters")
+ , is_starting_function("is_starting_function")
+ , is_starting_parameters("is_starting_parameters")
{
}
LLCommand::LLCommand(const LLCommand::Params& p)
- : mFunction(p.function)
- , mAvailableInToybox(p.available_in_toybox)
+ : mAvailableInToybox(p.available_in_toybox)
, mIcon(p.icon)
, mIdentifier(p.name)
, mLabelRef(p.label_ref)
- , mParameter(p.parameter)
, mTooltipRef(p.tooltip_ref)
+ , mExecuteFunction(p.execute_function)
+ , mExecuteParameters(p.execute_parameters)
+ , mIsEnabledFunction(p.is_enabled_function)
+ , mIsEnabledParameters(p.is_enabled_parameters)
+ , mIsRunningFunction(p.is_running_function)
+ , mIsRunningParameters(p.is_running_parameters)
+ , mIsStartingFunction(p.is_starting_function)
+ , mIsStartingParameters(p.is_starting_parameters)
{
}
diff --git a/indra/llui/llcommandmanager.h b/indra/llui/llcommandmanager.h
index 6481a05689..3ac5548a0d 100644
--- a/indra/llui/llcommandmanager.h
+++ b/indra/llui/llcommandmanager.h
@@ -83,41 +83,72 @@ private:
typedef std::list<LLCommandId> command_id_list_t;
+
class LLCommand
{
public:
struct Params : public LLInitParam::Block<Params>
{
Mandatory<bool> available_in_toybox;
- Mandatory<std::string> function;
Mandatory<std::string> icon;
Mandatory<std::string> label_ref;
Mandatory<std::string> name;
- Optional<LLSD> parameter;
Mandatory<std::string> tooltip_ref;
+ Mandatory<std::string> execute_function;
+ Optional<LLSD> execute_parameters;
+
+ Optional<std::string> is_enabled_function;
+ Optional<LLSD> is_enabled_parameters;
+
+ Optional<std::string> is_running_function;
+ Optional<LLSD> is_running_parameters;
+
+ Optional<std::string> is_starting_function;
+ Optional<LLSD> is_starting_parameters;
+
Params();
};
LLCommand(const LLCommand::Params& p);
const bool availableInToybox() const { return mAvailableInToybox; }
- const std::string& functionName() const { return mFunction; }
const std::string& icon() const { return mIcon; }
const LLCommandId& id() const { return mIdentifier; }
const std::string& labelRef() const { return mLabelRef; }
- const LLSD& parameter() const { return mParameter; }
const std::string& tooltipRef() const { return mTooltipRef; }
+ const std::string& executeFunctionName() const { return mExecuteFunction; }
+ const LLSD& executeParameters() const { return mExecuteParameters; }
+
+ const std::string& isEnabledFunctionName() const { return mIsEnabledFunction; }
+ const LLSD& isEnabledParameters() const { return mIsEnabledParameters; }
+
+ const std::string& isRunningFunctionName() const { return mIsRunningFunction; }
+ const LLSD& isRunningParameters() const { return mIsRunningParameters; }
+
+ const std::string& isStartingFunctionName() const { return mIsStartingFunction; }
+ const LLSD& isStartingParameters() const { return mIsStartingParameters; }
+
private:
LLCommandId mIdentifier;
bool mAvailableInToybox;
- std::string mFunction;
std::string mIcon;
std::string mLabelRef;
- LLSD mParameter;
std::string mTooltipRef;
+
+ std::string mExecuteFunction;
+ LLSD mExecuteParameters;
+
+ std::string mIsEnabledFunction;
+ LLSD mIsEnabledParameters;
+
+ std::string mIsRunningFunction;
+ LLSD mIsRunningParameters;
+
+ std::string mIsStartingFunction;
+ LLSD mIsStartingParameters;
};
diff --git a/indra/llui/lltoolbar.cpp b/indra/llui/lltoolbar.cpp
index efa077ffa1..a544aa9ec7 100644
--- a/indra/llui/lltoolbar.cpp
+++ b/indra/llui/lltoolbar.cpp
@@ -525,8 +525,8 @@ LLToolBarButton* LLToolBar::createButton(const LLCommandId& id)
if (!mReadOnly)
{
LLUICtrl::CommitCallbackParam cbParam;
- cbParam.function_name = commandp->functionName();
- cbParam.parameter = commandp->parameter();
+ cbParam.function_name = commandp->executeFunctionName();
+ cbParam.parameter = commandp->executeParameters();
button->setCommitCallback(cbParam);
button->setStartDragCallback(mStartDragItemCallback);
button->setHandleDragCallback(mHandleDragItemCallback);
diff --git a/indra/newview/app_settings/commands.xml b/indra/newview/app_settings/commands.xml
index 77bf7cace3..3a91ef490d 100644
--- a/indra/newview/app_settings/commands.xml
+++ b/indra/newview/app_settings/commands.xml
@@ -5,183 +5,183 @@
icon="Command_AboutLand_Icon"
label_ref="Command_AboutLand_Label"
tooltip_ref="Command_AboutLand_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="about_land"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="about_land"
/>
<command name="appearance"
available_in_toybox="true"
icon="Command_Appearance_Icon"
label_ref="Command_Appearance_Label"
tooltip_ref="Command_Appearance_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="appearance"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="appearance"
/>
<command name="avatar"
available_in_toybox="true"
icon="Command_Avatar_Icon"
label_ref="Command_Avatar_Label"
tooltip_ref="Command_Avatar_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="avatar_picker"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="avatar_picker"
/>
<command name="build"
available_in_toybox="true"
icon="Command_Build_Icon"
label_ref="Command_Build_Label"
tooltip_ref="Command_Build_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="build"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="build"
/>
<command name="chat"
available_in_toybox="true"
icon="Command_Chat_Icon"
label_ref="Command_Chat_Label"
tooltip_ref="Command_Chat_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="chat_bar"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="chat_bar"
/>
<command name="compass"
available_in_toybox="false"
icon="Command_Compass_Icon"
label_ref="Command_Compass_Label"
tooltip_ref="Command_Compass_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="compass"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="compass"
/>
<command name="destinations"
available_in_toybox="true"
icon="Command_Destinations_Icon"
label_ref="Command_Destinations_Label"
tooltip_ref="Command_Destinations_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="destinations"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="destinations"
/>
<command name="gestures"
available_in_toybox="true"
icon="Command_Gestures_Icon"
label_ref="Command_Gestures_Label"
tooltip_ref="Command_Gestures_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="gestures"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="gestures"
/>
<command name="howto"
available_in_toybox="true"
icon="Command_HowTo_Icon"
label_ref="Command_HowTo_Label"
tooltip_ref="Command_HowTo_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="help_browser"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="help_browser"
/>
<command name="inventory"
available_in_toybox="true"
icon="Command_Inventory_Icon"
label_ref="Command_Inventory_Label"
tooltip_ref="Command_Inventory_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="inventory"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="inventory"
/>
<command name="map"
available_in_toybox="true"
icon="Command_Map_Icon"
label_ref="Command_Map_Label"
tooltip_ref="Command_Map_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="world_map"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="world_map"
/>
<command name="marketplace"
available_in_toybox="true"
icon="Command_Marketplace_Icon"
label_ref="Command_Marketplace_Label"
tooltip_ref="Command_Marketplace_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="marketplace"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="marketplace"
/>
<command name="minimap"
available_in_toybox="true"
icon="Command_MiniMap_Icon"
label_ref="Command_MiniMap_Label"
tooltip_ref="Command_MiniMap_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="mini_map"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="mini_map"
/>
<command name="move"
available_in_toybox="true"
icon="Command_Move_Icon"
label_ref="Command_Move_Label"
tooltip_ref="Command_Move_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="moveview"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="moveview"
/>
<command name="people"
available_in_toybox="true"
icon="Command_People_Icon"
label_ref="Command_People_Label"
tooltip_ref="Command_People_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="people"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="people"
/>
<command name="places"
available_in_toybox="true"
icon="Command_Places_Icon"
label_ref="Command_Places_Label"
tooltip_ref="Command_Places_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="places"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="places"
/>
<command name="preferences"
available_in_toybox="true"
icon="Command_Preferences_Icon"
label_ref="Command_Preferences_Label"
tooltip_ref="Command_Preferences_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="preferences"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="preferences"
/>
<command name="profile"
available_in_toybox="true"
icon="Command_Profile_Icon"
label_ref="Command_Profile_Label"
tooltip_ref="Command_Profile_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="my_profile"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="my_profile"
/>
<command name="search"
available_in_toybox="true"
icon="Command_Search_Icon"
label_ref="Command_Search_Label"
tooltip_ref="Command_Search_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="search"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="search"
/>
<command name="snapshot"
available_in_toybox="true"
icon="Command_Snapshot_Icon"
label_ref="Command_Snapshot_Label"
tooltip_ref="Command_Snapshot_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="snapshot"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="snapshot"
/>
<command name="speak"
available_in_toybox="true"
icon="Command_Speak_Icon"
label_ref="Command_Speak_Label"
tooltip_ref="Command_Speak_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="speak"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="speak"
/>
<command name="view"
available_in_toybox="true"
icon="Command_View_Icon"
label_ref="Command_View_Label"
tooltip_ref="Command_View_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="camera"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="camera"
/>
<command name="voice"
available_in_toybox="true"
icon="Command_Voice_Icon"
label_ref="Command_Voice_Label"
tooltip_ref="Command_Voice_Tooltip"
- function="Floater.ToolbarToggle"
- parameter="voice_controls"
+ execute_function="Floater.ToolbarToggle"
+ execute_parameters="voice_controls"
/>
</commands>
diff --git a/indra/newview/llfloatertoybox.cpp b/indra/newview/llfloatertoybox.cpp
index 7a6afb4e33..cf22e071aa 100644
--- a/indra/newview/llfloatertoybox.cpp
+++ b/indra/newview/llfloatertoybox.cpp
@@ -61,8 +61,6 @@ BOOL LLFloaterToybox::postBuild()
center();
mBtnRestoreDefaults = getChild<LLButton>("btn_restore_defaults");
- mBtnRestoreDefaults->setCommitCallback(boost::bind(&LLToolBarView::loadDefaultToolbars));
-
mToolBar = getChild<LLToolBar>("toybox_toolbar");
LLCommandManager& cmdMgr = LLCommandManager::instance();
@@ -97,46 +95,26 @@ BOOL LLFloaterToybox::postBuild()
return TRUE;
}
-void LLFloaterToybox::onOpen(const LLSD& key)
-{
-
-}
-
-BOOL LLFloaterToybox::canClose()
-{
- return TRUE;
-}
-
-void LLFloaterToybox::onClose(bool app_quitting)
-{
-
-}
-
void LLFloaterToybox::draw()
{
llassert(gToolBarView != NULL);
- LLCommandManager& cmdMgr = LLCommandManager::instance();
+ const command_id_list_t& command_list = mToolBar->getCommandsList();
- for (U32 i = 0; i < cmdMgr.commandCount(); i++)
+ for (command_id_list_t::const_iterator it = command_list.begin(); it != command_list.end(); ++it)
{
- LLCommand * command = cmdMgr.getCommand(i);
+ const LLCommandId& id = *it;
- if (command->availableInToybox())
- {
- mToolBar->enableCommand(command->id(), !gToolBarView->hasCommand(command->id()));
- }
+ const bool commandOnToolbar = gToolBarView->hasCommand(id);
+ mToolBar->enableCommand(id, !commandOnToolbar);
}
LLFloater::draw();
}
-void LLFloaterToybox::onFocusReceived()
-{
-}
-
void LLFloaterToybox::onBtnRestoreDefaults()
{
+ LLToolBarView::loadDefaultToolbars();
}
diff --git a/indra/newview/llfloatertoybox.h b/indra/newview/llfloatertoybox.h
index 3574e060bf..f7245506c5 100644
--- a/indra/newview/llfloatertoybox.h
+++ b/indra/newview/llfloatertoybox.h
@@ -42,11 +42,7 @@ public:
// virtuals
BOOL postBuild();
- void onOpen(const LLSD& key);
- BOOL canClose();
- void onClose(bool app_quitting);
void draw();
- void onFocusReceived();
protected:
void onBtnRestoreDefaults();