* Modified commands to add functions for is_enabled, is_running and is_starting,

currently not hooked to any functionality.
master
Leslie Linden 2011-10-04 14:09:03 -07:00
parent fc6c3fbe42
commit db2e763ff0
6 changed files with 109 additions and 92 deletions

View File

@ -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)
{
}

View File

@ -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;
};

View File

@ -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);

View File

@ -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>

View File

@ -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();
}

View File

@ -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();