Merge branch 'master' into V2Renderer

This commit is contained in:
Aleric Inglewood
2011-05-25 20:12:30 +02:00
13 changed files with 114 additions and 1434 deletions

View File

@@ -184,7 +184,6 @@ set(viewer_SOURCE_FILES
llfloatercolorpicker.cpp
llfloatercustomize.cpp
llfloaterdaycycle.cpp
llfloaterdickdongs.cpp
llfloaterdirectory.cpp
llfloatereditui.cpp
llfloaterenvsettings.cpp
@@ -661,7 +660,6 @@ set(viewer_HEADER_FILES
llfloatercolorpicker.h
llfloatercustomize.h
llfloaterdaycycle.h
llfloaterdickdongs.h
llfloaterdirectory.h
llfloatereditui.h
llfloaterenvsettings.h

View File

@@ -1894,10 +1894,10 @@
<integer>0</integer>
</array>
</map>
<key>BeaconAlwaysOn</key>
<key>ShowBeaconsFloater</key>
<map>
<key>Comment</key>
<string>Beacons / highlighting always on</string>
<string>Show beacons floater</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
@@ -1905,6 +1905,28 @@
<key>Value</key>
<integer>0</integer>
</map>
<key>BeaconsKeepVisible</key>
<map>
<key>Comment</key>
<string>Don't turn off BeaconsVisible when beacons floater is closed</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>BeaconsVisible</key>
<map>
<key>Comment</key>
<string>Show beacons / highlighting</string>
<key>Persist</key>
<integer>0</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>BrowserHomePage</key>
<map>
<key>Comment</key>
@@ -14724,6 +14746,17 @@
<key>Value</key>
<integer>0</integer>
</map>
<key>keepbeacons</key>
<map>
<key>Comment</key>
<string>Keep beacons when closing floater</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>LogTextureDownloadsToViewerLog</key>
<map>
<key>Comment</key>

View File

@@ -36,6 +36,7 @@
#include "llviewercontrol.h"
#include "lluictrlfactory.h"
#include "llcheckboxctrl.h"
#include "llsliderctrl.h"
#include "pipeline.h"
// [RLVa:KB]
@@ -44,7 +45,7 @@
LLFloaterBeacons::LLFloaterBeacons(const LLSD& seed)
{
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_dickdongs.xml");
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_beacons.xml");
// Initialize pipeline states from saved settings.
// OK to do at floater constructor time because beacons do not display unless the floater is open
@@ -58,10 +59,13 @@ LLFloaterBeacons::LLFloaterBeacons(const LLSD& seed)
LLPipeline::setRenderParticleBeacons( gSavedSettings.getBOOL("particlesbeacon"));
LLPipeline::setRenderHighlights( gSavedSettings.getBOOL("renderhighlights"));
LLPipeline::setRenderBeacons( gSavedSettings.getBOOL("renderbeacons"));
getChild<LLTextBox>("beacon_width_label")->setEnabled(gSavedSettings.getBOOL("renderbeacons"));
getChild<LLSliderCtrl>("beacon_width")->setEnabled(gSavedSettings.getBOOL("renderbeacons"));
}
BOOL LLFloaterBeacons::postBuild()
{
childSetCommitCallback("always_on", onClickUICheck, this);
childSetCommitCallback("touch_only", onClickUICheck, this);
childSetCommitCallback("scripted", onClickUICheck, this);
childSetCommitCallback("physical", onClickUICheck, this);
@@ -73,7 +77,6 @@ BOOL LLFloaterBeacons::postBuild()
}
// Needed to make the floater visibility toggle the beacons.
// Too bad we can't just add control_name="BeaconAlwaysOn" to the XML.
void LLFloaterBeacons::open()
{
// [RLVa:KB] - Checked: 2009-07-04 (RLVa-1.0.0b)
@@ -84,14 +87,19 @@ void LLFloaterBeacons::open()
// [/RLVa:KB]
LLFloater::open();
gSavedSettings.setBOOL( "BeaconAlwaysOn", TRUE);
gSavedSettings.setBOOL("ShowBeaconsFloater", TRUE);
gSavedSettings.setBOOL("BeaconsVisible", TRUE);
}
void LLFloaterBeacons::close(bool app_quitting)
{
LLFloater::close(app_quitting);
if(!app_quitting)
{
gSavedSettings.setBOOL( "BeaconAlwaysOn", FALSE);
gSavedSettings.setBOOL("ShowBeaconsFloater", FALSE);
if (!gSavedSettings.getBOOL("BeaconsKeepVisible"))
{
gSavedSettings.setBOOL("BeaconsVisible", FALSE);
}
}
}
@@ -103,59 +111,58 @@ void LLFloaterBeacons::onClickUICheck(LLUICtrl *ctrl, void* data)
LLCheckBoxCtrl *check = (LLCheckBoxCtrl *)ctrl;
std::string name = check->getName();
LLFloaterBeacons* view = (LLFloaterBeacons*)data;
if( name == "touch_only")
if (name == "always_on") gSavedSettings.setBOOL("BeaconsKeepVisible", check->get());
else if (name == "touch_only") LLPipeline::setRenderScriptedTouchBeacons(check->get());
else if (name == "scripted") LLPipeline::setRenderScriptedBeacons(check->get());
else if (name == "physical") LLPipeline::setRenderPhysicalBeacons(check->get());
else if (name == "sounds") LLPipeline::setRenderSoundBeacons(check->get());
else if (name == "particles") LLPipeline::setRenderParticleBeacons(check->get());
else if (name == "highlights") LLPipeline::setRenderHighlights(check->get());
else if (name == "beacons")
{
bool enabled = check->get();
LLPipeline::setRenderBeacons(enabled);
view->getChild<LLTextBox>("beacon_width_label")->setEnabled(enabled);
view->getChild<LLSliderCtrl>("beacon_width")->setEnabled(enabled);
}
if (check->get())
{
LLPipeline::toggleRenderScriptedTouchBeacons(NULL);
// Don't allow both to be ON at the same time. Toggle the other one off if both now on.
if (
LLPipeline::getRenderScriptedTouchBeacons(NULL) &&
if (LLPipeline::getRenderScriptedTouchBeacons(NULL) &&
LLPipeline::getRenderScriptedBeacons(NULL) )
{
LLPipeline::setRenderScriptedBeacons(FALSE);
view->getChild<LLCheckBoxCtrl>("scripted")->setControlValue(LLSD(FALSE));
view->getChild<LLCheckBoxCtrl>("touch_only")->setControlValue(LLSD(TRUE)); // just to be sure it's in sync with llpipeline
if (name == "touch_only")
{
LLPipeline::setRenderScriptedBeacons(FALSE);
view->getChild<LLCheckBoxCtrl>("scripted")->setControlValue(LLSD(FALSE));
}
else
{
LLPipeline::setRenderScriptedTouchBeacons(FALSE);
view->getChild<LLCheckBoxCtrl>("touch_only")->setControlValue(LLSD(FALSE));
}
}
}
else if(name == "scripted")
else
{
LLPipeline::toggleRenderScriptedBeacons(NULL);
// Don't allow both to be ON at the same time. Toggle the other one off if both now on.
if (
LLPipeline::getRenderScriptedTouchBeacons(NULL) &&
LLPipeline::getRenderScriptedBeacons(NULL) )
{
LLPipeline::setRenderScriptedTouchBeacons(FALSE);
view->getChild<LLCheckBoxCtrl>("touch_only")->setControlValue(LLSD(FALSE));
view->getChild<LLCheckBoxCtrl>("scripted")->setControlValue(LLSD(TRUE)); // just to be sure it's in sync with llpipeline
}
}
else if(name == "physical") LLPipeline::setRenderPhysicalBeacons(check->get());
else if(name == "sounds") LLPipeline::setRenderSoundBeacons(check->get());
else if(name == "particles") LLPipeline::setRenderParticleBeacons(check->get());
else if(name == "highlights")
{
LLPipeline::toggleRenderHighlights(NULL);
// Don't allow both to be OFF at the same time. Toggle the other one on if both now off.
if (
!LLPipeline::getRenderBeacons(NULL) &&
!LLPipeline::getRenderHighlights(NULL) )
if (!LLPipeline::getRenderBeacons(NULL) &&
!LLPipeline::getRenderHighlights(NULL))
{
LLPipeline::setRenderBeacons(TRUE);
view->getChild<LLCheckBoxCtrl>("beacons")->setControlValue(LLSD(TRUE));
view->getChild<LLCheckBoxCtrl>("highlights")->setControlValue(LLSD(FALSE)); // just to be sure it's in sync with llpipeline
}
}
else if(name == "beacons")
{
LLPipeline::toggleRenderBeacons(NULL);
// Don't allow both to be OFF at the same time. Toggle the other one on if both now off.
if (
!LLPipeline::getRenderBeacons(NULL) &&
!LLPipeline::getRenderHighlights(NULL) )
{
LLPipeline::setRenderHighlights(TRUE);
view->getChild<LLCheckBoxCtrl>("highlights")->setControlValue(LLSD(TRUE));
view->getChild<LLCheckBoxCtrl>("beacons")->setControlValue(LLSD(FALSE)); // just to be sure it's in sync with llpipeline
if (name == "highlights")
{
LLPipeline::setRenderBeacons(TRUE);
view->getChild<LLCheckBoxCtrl>("beacons")->setControlValue(LLSD(TRUE));
view->getChild<LLTextBox>("beacon_width_label")->setEnabled(TRUE);
view->getChild<LLSliderCtrl>("beacon_width")->setEnabled(TRUE);
}
else
{
LLPipeline::setRenderHighlights(TRUE);
view->getChild<LLCheckBoxCtrl>("highlights")->setControlValue(LLSD(TRUE));
}
}
}
}

View File

@@ -44,7 +44,6 @@ public:
/*virtual*/ BOOL postBuild();
// Needed to make the floater visibility toggle the beacons.
// Too bad we can't just add control_name="BeaconAlwaysOn" to the XML.
/*virtual*/ void open();
/*virtual*/ void close(bool app_quitting);

View File

@@ -1,93 +0,0 @@
/**
* @file LLFloaterDickDongs.cpp
* @brief Front-end to LLPipeline controls for highlighting various kinds of objects.
* @author Coco
*
* $LicenseInfo:firstyear=2001&license=viewergpl$
*
* Copyright (c) 2001-2009, Linden Research, Inc.
*
* Second Life Viewer Source Code
* The source code in this file ("Source Code") is provided by Linden Lab
* to you under the terms of the GNU General Public License, version 2.0
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
* online at
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* 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.
*
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
* COMPLETENESS OR PERFORMANCE.
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
#include "llfloaterdickdongs.h"
#include "llcommon.h"
#include "llmd5.h"
#include "llagent.h"
#include "lluuid.h"
#include "llviewercontrol.h"
#include "lluictrlfactory.h"
#include "llcheckboxctrl.h"
//this is really the only thing that needs to be here atm
LLFloaterDickDongs::LLFloaterDickDongs(const LLSD& seed)
{
//LLUICtrlFactory::getInstance()->buildFloater(this, "floater_dickdongs.xml");
}
//Not needed yet
/*
BOOL LLFloaterDickDongs::postBuild()
{
childSetCommitCallback("touch_only", onClickUICheck, this);
childSetCommitCallback("scripted", onClickUICheck, this);
childSetCommitCallback("physical", onClickUICheck, this);
childSetCommitCallback("sounds", onClickUICheck, this);
childSetCommitCallback("particles", onClickUICheck, this);
childSetCommitCallback("highlights", onClickUICheck, this);
childSetCommitCallback("beacons", onClickUICheck, this);
return TRUE;
}
*/
void LLFloaterDickDongs::open()
{
LLUUID user = gAgent.getID();
char hex_salty_uuid[MD5HEX_STR_SIZE];
LLMD5 salted_uuid_hash((const U8*)user.asString().c_str(), 1);
salted_uuid_hash.hex_digest(hex_salty_uuid);
int i = (int)strtol((std::string(hex_salty_uuid).substr(0, 7) + "\n").c_str(),(char **)NULL,16);
llinfos << "Bridge Channel: " << (S32)i << llendl;
LLFloater::open();
}
void LLFloaterDickDongs::close(bool app_quitting)
{
LLFloater::close(app_quitting);
}
//Also not needed yet
/*
// Callback attached to each check box control to both affect their main purpose
// and to implement the couple screwy interdependency rules that some have.
//static
void LLFloaterDickDongs::onClickUICheck(LLUICtrl *ctrl, void* data)
{
LLCheckBoxCtrl *check = (LLCheckBoxCtrl *)ctrl;
std::string name = check->getName();
LLFloaterDickDongs* view = (LLFloaterDickDongs*)data;
}
*/

View File

@@ -1,57 +0,0 @@
/**
* @file llfloaterbeacons.h
* @brief Front-end to LLPipeline controls for highlighting various kinds of objects.
* @author Coco
*
* $LicenseInfo:firstyear=2002&license=viewergpl$
*
* Copyright (c) 2002-2009, Linden Research, Inc.
*
* Second Life Viewer Source Code
* The source code in this file ("Source Code") is provided by Linden Lab
* to you under the terms of the GNU General Public License, version 2.0
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
* online at
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* 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.
*
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
* COMPLETENESS OR PERFORMANCE.
* $/LicenseInfo$
*/
#ifndef LL_LLFLOATERDICKDONGS_H
#define LL_LLFLOATERDICKDONGS_H
#include "llfloater.h"
class LLFloaterDickDongs : public LLFloater, public LLFloaterSingleton<LLFloaterDickDongs>
{
friend class LLUISingleton<LLFloaterDickDongs, VisibilityPolicy<LLFloater> >;
public:
// /*virtual*/ BOOL postBuild();
// Needed to make the floater visibility toggle the beacons.
// Too bad we can't just add control_name="BeaconAlwaysOn" to the XML.
/*virtual*/ void open();
/*virtual*/ void close(bool app_quitting);
private:
LLFloaterDickDongs(const LLSD& seed);
//static void onClickUICheck(LLUICtrl *ctrl, void* data);
};
#endif

View File

@@ -2035,7 +2035,7 @@ bool idle_startup()
LLFloaterActiveSpeakers::showInstance();
}
if (gSavedSettings.getBOOL("BeaconAlwaysOn"))
if (gSavedSettings.getBOOL("ShowBeaconsFloater"))
{
LLFloaterBeacons::showInstance();
}

File diff suppressed because it is too large Load Diff

View File

@@ -522,8 +522,8 @@ public:
ypos += y_inc;
}
// only display these messages if we are actually rendering beacons at this moment
static const LLCachedControl<bool> beacon_always_on("BeaconAlwaysOn",false);
if (LLPipeline::getRenderBeacons(NULL) && beacon_always_on)
static const LLCachedControl<bool> beacons_visible("BeaconsVisible",false);
if (LLPipeline::getRenderBeacons(NULL) && beacons_visible)
{
if (LLPipeline::getRenderParticleBeacons(NULL))
{

View File

@@ -2775,8 +2775,8 @@ void LLPipeline::postSort(LLCamera& camera)
}
llpushcallstacks ;
// only render if the flag is set. The flag is only set if we are in edit mode or the toggle is set in the menus
static const LLCachedControl<bool> beacon_always_on("BeaconAlwaysOn",false);
if (beacon_always_on && !sShadowRender)
static const LLCachedControl<bool> beacons_visible("BeaconsVisible", false);
if (beacons_visible && !sShadowRender)
{
if (sRenderScriptedTouchBeacons)
{

View File

@@ -1,24 +1,25 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater can_close="true" can_drag_on_left="false" can_minimize="true" can_resize="false"
width="250" height="225"
width="250" height="255"
name="beacons" title="Beacons"
rect_control="FloaterBeaconsRect" control_name="BeaconAlwaysOn">
<panel bottom="10" follows="left|top|right|bottom" left="10" width="230" height="200" name="beacons_panel">
<check_box bottom_delta="-33" follows="left|top" left="0" name="touch_only" label="Scripted Objects with Touch Only" control_name="scripttouchbeacon" />
rect_control="FloaterBeaconsRect" control_name="ShowBeaconsFloater">
<panel bottom="10" follows="left|top|right|bottom" left="10" width="230" height="230" name="beacons_panel">
<check_box bottom_delta="-33" follows="left|top" left="0" name="always_on" label="Keep beacons when closing floater" control_name="keepbeacons" />
<check_box bottom_delta="-30" follows="left|top" left="0" name="touch_only" label="Scripted Objects with Touch Only" control_name="scripttouchbeacon" />
<check_box bottom_delta="-20" follows="left|top" left="0" name="scripted" label="Scripted Objects" control_name="scriptsbeacon" />
<check_box bottom_delta="-20" follows="left|top" left="0" name="physical" label="Physical Objects" control_name="physicalbeacon" />
<check_box bottom_delta="-20" follows="left|top" left="0" name="sounds" label="Sound Sources" control_name="soundsbeacon" />
<check_box bottom_delta="-20" follows="left|top" left="0" name="particles" label="Particle Sources" control_name="particlesbeacon" />
<check_box bottom_delta="-20" follows="left|top" left="0" name="highlights" label="Render Highlights" control_name="renderhighlights" />
<check_box bottom_delta="-30" follows="left|top" left="0" name="highlights" label="Render Highlights" control_name="renderhighlights" />
<check_box bottom_delta="-20" follows="left|top" left="0" name="beacons" label="Render Beacons" control_name="renderbeacons" />
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom_delta="-30" drop_shadow_visible="true" enabled="true" follows="left|top"
font="SansSerifSmall" h_pad="0" halign="left" height="12" left="5"
bottom_delta="-15" drop_shadow_visible="true" enabled="true" follows="left|top"
font="SansSerifSmall" h_pad="0" halign="left" height="12" left="25"
mouse_opaque="true" name="beacon_width_label" v_pad="0" width="128">
Beacon Width:
</text>
<slider bottom_delta="-20" can_edit_text="false" enabled="true" width="185" height="16" mouse_opaque="true"
decimal_digits="0" increment="1" initial_val="1" left="30" min_val="1.0" max_val="16.0"
decimal_digits="0" increment="1" initial_val="1" left="16" min_val="1.0" max_val="16.0"
name="beacon_width" show_text="true" value="1" control_name="DebugBeaconLineWidth"/>
</panel>
</floater>

View File

@@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater can_close="true" can_drag_on_left="false" can_minimize="true" can_resize="true"
width="250" height="225"
name="dickdongs" title="HOLYFUCKSHIT A CUSTOM FLOATER"
rect_control="FloaterDickDongsRect" control_name="DickDongsFloater">
<panel bottom="10" follows="left|top|right|bottom" left="10" width="230" height="200" name="dickdongs_panel">
<check_box bottom_delta="-33" follows="left|top" left="0" name="myfirstcheckbox1" label="LOOK AT THIS A MOTHERFUCKING CHECKBOX JESUS CHRIST" control_name="DickDongsCheckbox1" />
<check_box bottom_delta="-20" follows="left|top" left="0" name="myfirstcheckbox2" label="HOLY SHIT ANOTHER CHECKBOX?? GODDAMN IT'S MY LUCKY DAY" control_name="DickDongsCheckbox2" />
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom_delta="-30" drop_shadow_visible="true" enabled="true" follows="left|top"
font="SansSerifSmall" h_pad="0" halign="left" height="12" left="5"
mouse_opaque="true" name="amountofawesomelabel" v_pad="0" width="128">
AMOUNT OF AWESOME:
</text>
<slider bottom_delta="-20" can_edit_text="false" enabled="false" width="185" height="16" mouse_opaque="true"
decimal_digits="0" increment="1" initial_val="16" left="30" min_val="1.0" max_val="16.0"
name="beacon_width" show_text="false" value="1" control_name="DickDongsSlider1"/>
</panel>
</floater>

View File

@@ -408,100 +408,11 @@
<on_click function="View.HighlightTransparent" userdata="" />
<on_check function="View.CheckHighlightTransparent" />
</menu_item_check>
<menu create_jump_keys="true" drop_shadow="true" enabled="true"
label="Beacons" mouse_opaque="false" name="Beacons"
opaque="true" tear_off="true">
<menu_item_check enabled="true" height="18"
label="Beacons Always On" mouse_opaque="true"
name="Beacons Always On" shortcut="control|n">
<on_click function="ToggleControl"
userdata="BeaconAlwaysOn" />
<on_check control="BeaconAlwaysOn" />
</menu_item_check>
<menu_item_separator enabled="true" height="8"
label="-----------" mouse_opaque="true" name="separator" />
<menu_item_check enabled="true" height="18"
label="Scripted Objects with Touch Only" left="0" color="1 0 0 1"
mouse_opaque="true" name="Scripted Objects With Touch Only">
<on_click function="View.ToggleBeacon"
userdata="scripttouchbeacon" />
<on_check function="View.CheckBeaconEnabled"
userdata="scripttouchbeacon" />
</menu_item_check>
<menu_item_check enabled="true" height="18"
label="Scripted Objects" mouse_opaque="true" color="1 0 0 1"
name="Scripted Objects">
<on_click function="View.ToggleBeacon"
userdata="scriptsbeacon" />
<on_check function="View.CheckBeaconEnabled"
userdata="scriptsbeacon" />
</menu_item_check>
<menu_item_check enabled="true" height="18"
label="Physical Objects" mouse_opaque="true" color="0 1 0 1"
name="Physical Objects">
<on_click function="View.ToggleBeacon"
userdata="physicalbeacon" />
<on_check function="View.CheckBeaconEnabled"
userdata="physicalbeacon" />
</menu_item_check>
<menu_item_check enabled="true" height="18"
label="Sound Sources" mouse_opaque="true" color="1 1 0 1"
name="Sound Sources">
<on_click function="View.ToggleBeacon"
userdata="soundsbeacon" />
<on_check function="View.CheckBeaconEnabled"
userdata="soundsbeacon" />
</menu_item_check>
<menu_item_check enabled="true" height="18"
label="Particle Sources" mouse_opaque="true" color="0 0 1 1"
name="Particle Sources">
<on_click function="View.ToggleBeacon"
userdata="particlesbeacon" />
<on_check function="View.CheckBeaconEnabled"
userdata="particlesbeacon" />
</menu_item_check>
<menu_item_separator enabled="true" height="8"
label="-----------" mouse_opaque="true" name="separator" />
<menu_item_check enabled="true" height="18"
label="Render Highlights" mouse_opaque="true"
name="Render Highlights">
<on_click function="View.ToggleBeacon"
userdata="renderhighlights" />
<on_check function="View.CheckBeaconEnabled"
userdata="renderhighlights" />
</menu_item_check>
<menu_item_check enabled="true" height="18"
label="Render Beacons" mouse_opaque="true"
name="Render Beacons">
<on_click function="View.ToggleBeacon"
userdata="renderbeacons" />
<on_check function="View.CheckBeaconEnabled"
userdata="renderbeacons" />
</menu_item_check>
<menu_item_separator enabled="true" height="8"
label="-----------" mouse_opaque="true" name="separator3" />
<menu create_jump_keys="true"
drop_shadow="true" enabled="true" height="117"
label="Beacon Width" mouse_opaque="false" name="Beacon Width"
opaque="true" tear_off="true">
<menu_item_call enabled="true" height="18" label="1"
mouse_opaque="true" name="Beacon Width 1">
<on_click function="View.BeaconWidth" userdata="1" />
</menu_item_call>
<menu_item_call enabled="true" height="18" label="4"
mouse_opaque="true" name="Beacon Width 4">
<on_click function="View.BeaconWidth" userdata="4" />
</menu_item_call>
<menu_item_call enabled="true" height="18" label="16"
mouse_opaque="true" name="Beacon Width 16">
<on_click function="View.BeaconWidth" userdata="16" />
</menu_item_call>
<menu_item_call enabled="true" height="18" label="32"
mouse_opaque="true" name="Beacon Width 32">
<on_click function="View.BeaconWidth" userdata="32" />
</menu_item_call>
</menu>
</menu>
<menu_item_check name="beacons" label="Beacons"
shortcut="control|alt|shift|N">
<on_click function="ShowFloater" userdata="beacons" />
<on_check function="FloaterVisible" userdata="beacons" />
</menu_item_check>
<menu_item_check bottom="-384" enabled="true" height="19" label="Hide Particles" left="0"
mouse_opaque="true" name="Hide Particles" width="129" shortcut="control|alt|shift|=">
<on_click function="View.ToggleRenderType" userdata="hideparticles" />