Skip to content
Snippets Groups Projects
Commit c9caa217 authored by brad kittenbrink's avatar brad kittenbrink
Browse files

Added LLDispatchListener implementation for gSavedSettings.

parent f35bb882
No related branches found
No related tags found
No related merge requests found
......@@ -378,6 +378,7 @@ set(viewer_SOURCE_FILES
llvieweraudio.cpp
llviewercamera.cpp
llviewercontrol.cpp
llviewercontrollistener.cpp
llviewerdisplay.cpp
llviewerfloaterreg.cpp
llviewergenericmessage.cpp
......@@ -801,6 +802,7 @@ set(viewer_HEADER_FILES
llviewerbuild.h
llviewercamera.h
llviewercontrol.h
llviewercontrollistener.h
llviewerdisplay.h
llviewerfloaterreg.h
llviewergenericmessage.h
......
/**
* @file llviewercontrollistener.cpp
* @author Nat Goodspeed
* @date 2009-06-30
* @brief Implementation for llviewercontrollistener.
*
* $LicenseInfo:firstyear=2009&license=viewergpl$
* Copyright (c) 2009, Linden Research, Inc.
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
#include "llviewercontrollistener.h"
#include "llviewercontrol.h"
LLViewerControlListener gSavedSettingsListener;
LLViewerControlListener::LLViewerControlListener()
: LLDispatchListener("LLViewerControl", "group")
{
add("Global", boost::bind(&LLViewerControlListener::set, &gSavedSettings, _1));
add("Skin", boost::bind(&LLViewerControlListener::set, &gSavedSkinSettings, _1));
add("PerAccount", boost::bind(&LLViewerControlListener::set, &gSavedPerAccountSettings, _1));
add("Warning", boost::bind(&LLViewerControlListener::set, &gWarningSettings, _1));
add("Crash", boost::bind(&LLViewerControlListener::set, &gCrashSettings, _1));
#if 0
add(/*"toggleControl",*/ "Global", boost::bind(&LLViewerControlListener::toggleControl, &gSavedSettings, _1));
add(/*"toggleControl",*/ "Skin", boost::bind(&LLViewerControlListener::toggleControl, &gSavedSkinSettings, _1));
add(/*"toggleControl",*/ "PerAccount", boost::bind(&LLViewerControlListener::toggleControl, &gSavedPerAccountSettings, _1));
add(/*"toggleControl",*/ "Warning", boost::bind(&LLViewerControlListener::toggleControl, &gWarningSettings, _1));
add(/*"toggleControl",*/ "Crash", boost::bind(&LLViewerControlListener::toggleControl, &gCrashSettings, _1));
add(/*"setDefault",*/ "Global", boost::bind(&LLViewerControlListener::setDefault, &gSavedSettings, _1));
add(/*"setDefault",*/ "Skin", boost::bind(&LLViewerControlListener::setDefault, &gSavedSkinSettings, _1));
add(/*"setDefault",*/ "PerAccount", boost::bind(&LLViewerControlListener::setDefault, &gSavedPerAccountSettings, _1));
add(/*"setDefault",*/ "Warning", boost::bind(&LLViewerControlListener::setDefault, &gWarningSettings, _1));
add(/*"setDefault",*/ "Crash", boost::bind(&LLViewerControlListener::setDefault, &gCrashSettings, _1));
#endif // 0
}
//static
void LLViewerControlListener::set(LLControlGroup * controls, LLSD const & event_data)
{
if(event_data.has("key"))
{
std::string key(event_data["key"]);
if(controls->controlExists(key))
{
controls->setUntypedValue(key, event_data["value"]);
}
else
{
llwarns << "requested unknown control: \"" << key << '\"' << llendl;
}
}
}
//static
void LLViewerControlListener::toggleControl(LLControlGroup * controls, LLSD const & event_data)
{
if(event_data.has("key"))
{
std::string key(event_data["key"]);
if(controls->controlExists(key))
{
LLControlVariable * control = controls->getControl(key);
if(control->isType(TYPE_BOOLEAN))
{
control->set(!control->get().asBoolean());
}
else
{
llwarns << "requested toggle of non-boolean control: \"" << key << "\", type is " << control->type() << llendl;
}
}
else
{
llwarns << "requested unknown control: \"" << key << '\"' << llendl;
}
}
}
//static
void LLViewerControlListener::setDefault(LLControlGroup * controls, LLSD const & event_data)
{
if(event_data.has("key"))
{
std::string key(event_data["key"]);
if(controls->controlExists(key))
{
LLControlVariable * control = controls->getControl(key);
control->resetToDefault();
}
else
{
llwarns << "requested unknown control: \"" << key << '\"' << llendl;
}
}
}
/**
* @file llviewercontrollistener.h
* @author Brad Kittenbrink
* @date 2009-07-09
* @brief Event API for subset of LLViewerControl methods
*
* $LicenseInfo:firstyear=2009&license=viewergpl$
* Copyright (c) 2009, Linden Research, Inc.
* $/LicenseInfo$
*/
#ifndef LL_LLVIEWERCONTROLLISTENER_H
#define LL_LLVIEWERCONTROLLISTENER_H
#include "lleventdispatcher.h"
class LLControlGroup;
class LLSD;
class LLViewerControlListener : public LLDispatchListener
{
public:
LLViewerControlListener();
private:
static void set(LLControlGroup *controls, LLSD const & event_data);
static void toggleControl(LLControlGroup *controls, LLSD const & event_data);
static void setDefault(LLControlGroup *controls, LLSD const & event_data);
};
extern LLViewerControlListener gSavedSettingsListener;
#endif // LL_LLVIEWERCONTROLLISTENER_H
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment