Sorry about that. Required files are now included - But still are unfinished. I do not recommend implementing anything currently commented out.

UI controls for Always Build and Always Fly are now in.
Vertical Tabs option is now in.
This commit is contained in:
Beeks
2010-08-30 02:40:29 -04:00
parent f19f7a07ba
commit 6dcc7321fe
7 changed files with 549 additions and 167 deletions

View File

@@ -2,6 +2,204 @@
<llsd>
<map>
<!--Expanded settings from Vanilla SL -->
<key>AscentBuildAlwaysEnabled</key>
<map>
<key>Comment</key>
<string>Show build option regardless of whether you can (May not mean you can actually build there)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>AscentFlyAlwaysEnabled</key>
<map>
<key>Comment</key>
<string>Always allow fly (Does actually always allow flight)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>AscentCmdLine</key>
<map>
<key>Comment</key>
<string>Would you like the chatbar to be able to be used for command line functions?</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>AscentCmdLineClearChat</key>
<map>
<key>Comment</key>
<string>Clear chat history to stop lag from chat spam</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>clrchat</string>
</map>
<key>AscentCmdLineHeight</key>
<map>
<key>Comment</key>
<string>Teleport to height function command</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>gth</string>
</map>
<key>AscentCmdLinePos</key>
<map>
<key>Comment</key>
<string>Teleport to position function command</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>gtp</string>
</map>
<key>AscentCmdLineGround</key>
<map>
<key>Comment</key>
<string>Teleport to ground function command</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>flr</string>
</map>
<key>AscentCmdLineTeleportHome</key>
<map>
<key>Comment</key>
<string>Teleport to home function command</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>tph</string>
</map>
<key>AscentCmdLineRezPlatform</key>
<map>
<key>Comment</key>
<string>Rez a platform underneath you</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>rezplat</string>
</map>
<key>AscentPlatformSize</key>
<map>
<key>Comment</key>
<string>How wide the rezzed platform will appear to be.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>30</real>
</map>
<key>AscentCmdLineMapTo</key>
<map>
<key>Comment</key>
<string>Teleport to a region by name rapidly</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>mapto</string>
</map>
<key>AscentMapToKeepPos</key>
<map>
<key>Comment</key>
<string>Attempt to arrive in the same location you were at.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>AscentCmdLineDrawDistance</key>
<map>
<key>Comment</key>
<string>Change draw distance quickly</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>dd</string>
</map>
<key>AscentCmdTeleportToCam</key>
<map>
<key>Comment</key>
<string>Teleport to your camera</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>tp2cam</string>
</map>
<key>AscentCmdLineKeyToName</key>
<map>
<key>Comment</key>
<string>Use a fast key to name querry</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>key2name</string>
</map>
<key>AscentCmdLineOfferTp</key>
<map>
<key>Comment</key>
<string>Offer a teleport to target avatar</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>offertp</string>
</map>
<key>AscentCmdLineCalc</key>
<map>
<key>Comment</key>
<string>Calculates an expression</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>calc</string>
</map>
<key>AscentCmdLineTP2</key>
<map>
<key>Comment</key>
<string>Teleport to a person by name, partials work.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>tp2</string>
</map>
<key>OptionPlayTpSound</key>
<map>
<key>Comment</key>
@@ -233,112 +431,10 @@
<key>Value</key>
<real>0.1</real>
</map>
<!-- Expanded Settings that have optionally Account-Specific alternatives -->
<!-- Ascent-Specific Settings -->
<key>AscentCmdLine</key>
<key>WoLfVerticalIMTabs</key>
<map>
<key>Comment</key>
<string>Would you like the chatbar to be able to be used for command line functions?</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>AscentCmdLineClearChat</key>
<map>
<key>Comment</key>
<string>Clear chat history to stop lag from chat spam</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>clrchat</string>
</map>
<key>AscentCmdLineHeight</key>
<map>
<key>Comment</key>
<string>Teleport to height function command</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>gth</string>
</map>
<key>AscentCmdLinePos</key>
<map>
<key>Comment</key>
<string>Teleport to position function command</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>gtp</string>
</map>
<key>AscentCmdLineGround</key>
<map>
<key>Comment</key>
<string>Teleport to ground function command</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>flr</string>
</map>
<key>AscentCmdLineTeleportHome</key>
<map>
<key>Comment</key>
<string>Teleport to home function command</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>tph</string>
</map>
<key>AscentCmdLineRezPlatform</key>
<map>
<key>Comment</key>
<string>Rez a platform underneath you</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>rezplat</string>
</map>
<key>AscentPlatformSize</key>
<map>
<key>Comment</key>
<string>How wide the rezzed platform will appear to be.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>30</real>
</map>
<key>AscentCmdLineMapTo</key>
<map>
<key>Comment</key>
<string>Teleport to a region by name rapidly</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>mapto</string>
</map>
<key>AscentMapToKeepPos</key>
<map>
<key>Comment</key>
<string>Attempt to arrive in the same location you were at.</string>
<string>Vertical IM Tabs</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
@@ -346,71 +442,19 @@
<key>Value</key>
<integer>0</integer>
</map>
<key>AscentCmdLineDrawDistance</key>
<map>
<key>Comment</key>
<string>Change draw distance quickly</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>dd</string>
</map>
<key>AscentCmdTeleportToCam</key>
<!-- Expanded Settings that have optionally Account-Specific alternatives -->
<!-- Ascent-Specific Settings -->
<key>AscentPowerfulWizard</key>
<map>
<key>Comment</key>
<string>Teleport to your camera</string>
<string>User is a bad enough dude.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<string>Boolean</string>
<key>Value</key>
<string>tp2cam</string>
</map>
<key>AscentCmdLineKeyToName</key>
<map>
<key>Comment</key>
<string>Use a fast key to name querry</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>key2name</string>
</map>
<key>AscentCmdLineOfferTp</key>
<map>
<key>Comment</key>
<string>Offer a teleport to target avatar</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>offertp</string>
</map>
<key>AscentCmdLineCalc</key>
<map>
<key>Comment</key>
<string>Calculates an expression</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>calc</string>
</map>
<key>AscentCmdLineTP2</key>
<map>
<key>Comment</key>
<string>Teleport to a person by name, partials work.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>tp2</string>
<integer>0</integer>
</map>
<key>AscentUseCustomTag</key>
<map>

View File

@@ -0,0 +1,188 @@
/**
* @file ascentuploadbrowser.h
* @Author Duncan Garrett
* Meant as a replacement to using Windows' file browser for uploads.
*
* Created August 27 2010
*
* ALL SOURCE CODE IS PROVIDED "AS IS." THE CREATOR MAKES NO
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
* COMPLETENESS OR PERFORMANCE.
* k ilu bye
*/
#include "llviewerprecompiledheaders.h"
#include "ascentuploadbrowser.h"
//UI Elements
#include "llbutton.h" //Buttons
#include "llcombobox.h" //Combo dropdowns
#include "llscrolllistctrl.h" //List box for filenames
#include "lluictrlfactory.h" //Loads the XUI
// project includes
#include "llviewercontrol.h"
#include "llviewerwindow.h"
#include "llsdserialize.h" //XML Parsing - Probably not needed
///----------------------------------------------------------------------------
/// Local function declarations, constants, enums, and typedefs
///----------------------------------------------------------------------------
ASFloaterUploadBrowser* ASFloaterUploadBrowser::sInstance = NULL;
///----------------------------------------------------------------------------
/// Class LLFloaterAbout
///----------------------------------------------------------------------------
// Default constructor
ASFloaterUploadBrowser::ASFloaterUploadBrowser()
: LLFloater(std::string("floater_upload_browser"), std::string("FloaterUploadRect"), LLStringUtil::null)
{
mPathName = "C:\\Users\\Duncan\\Documents"+gDirUtilp->getDirDelimiter(); //(gDirUtilp->getSkinBaseDir()+gDirUtilp->getDirDelimiter());
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_upload_browser.xml");
mFileList = getChild<LLScrollListCtrl>("file_list");
childSetCommitCallback("file_list", onClickFile, this);
childSetDoubleClickCallback("file_list", onDoubleClick);
refresh();
mFileList->sortByColumn(std::string("file_name"), TRUE);
mFileList->sortByColumn(std::string("file_type"), TRUE);
}
// Destroys the object
ASFloaterUploadBrowser::~ASFloaterUploadBrowser()
{
sInstance = NULL;
}
void ASFloaterUploadBrowser::onClickFile(LLUICtrl* ctrl, void* user_data)
{
ASFloaterUploadBrowser* panelp = (ASFloaterUploadBrowser*)user_data;
panelp->refreshUploadOptions();
}
void ASFloaterUploadBrowser::refreshUploadOptions()
{
if (mFileList->getFirstSelected()->getColumn(LIST_FILE_TYPE)->getValue().asInteger() == LIST_TYPE_FILE)
{
if (mFileList->getAllSelected().size() > 1)
{
llinfos << "Selected multiple files." << llendl;
childSetValue("asset_name", "(Multiple)");
}
else
{
llinfos << "Selected a file." << llendl;
std::string name = mFileList->getFirstSelected()->getColumn(LIST_FILE_NAME)->getValue().asString();
childSetValue("asset_name", name);
}
}
}
void ASFloaterUploadBrowser::onDoubleClick(void* user_data)
{
ASFloaterUploadBrowser* panelp = (ASFloaterUploadBrowser*)user_data;
panelp->handleDoubleClick();
}
void ASFloaterUploadBrowser::handleDoubleClick()
{
if (mFileList->getFirstSelected()->getColumn(LIST_FILE_TYPE)->getValue().asInteger() == LIST_TYPE_PARENT)
{
llinfos << "Double-clicked Parent." << llendl;
}
else if (mFileList->getFirstSelected()->getColumn(LIST_FILE_TYPE)->getValue().asInteger() == LIST_TYPE_FOLDER)
{
/*std::string newPath = (mFileList->getFirstSelected()->getColumn(LIST_FILE_NAME)->getValue().asString()+gDirUtilp->getDirDelimiter());
newPath = (mPathName+newPath);
mPathName = newPath.c_str();*/
llinfos << "Double-clicked Folder. Directory should change to " << mPathName << mFileList->getFirstSelected()->getColumn(LIST_FILE_NAME)->getValue().asString() << llendl;
//mPathName.append(mFileList->getFirstSelected()->getColumn(LIST_FILE_NAME)->getValue().asString().c_str() + gDirUtilp->getDirDelimiter());
refresh();
}
}
void ASFloaterUploadBrowser::refresh()
{
llinfos << "Emptying existing file list." << mPathName << llendl;
mFileList->deleteAllItems();
llinfos << "Getting file listing at " << mPathName << llendl;
bool found = true;
while(found)
{
std::string filename;
found = gDirUtilp->getNextFileInDir(mPathName, "*.*", filename, false);
if(found)
{
S32 periodIndex = filename.find_last_of(".");
std::string extension = filename.substr(periodIndex + 1, filename.length() - 1);
llinfos << extension << llendl;
LLSD element;
element["path"] = mPathName + filename;
LLSD& filename_column = element["columns"][LIST_FILE_NAME];
filename_column["column"] = "file_name";
filename_column["font"] = "SANSSERIF";
filename_column["font-style"] = "NORMAL";
LLSD& filetype_column = element["columns"][LIST_FILE_TYPE];
filetype_column["column"] = "file_type";
filetype_column["type"] = "number";
LLSD& invtype_column = element["columns"][LIST_INVENTORY_TYPE];
invtype_column["column"] = "icon_inventory_type";
invtype_column["type"] = "icon";
invtype_column["value"] = "inv_folder_trash.tga";
if ((extension == "jpeg")||(extension == "jpg")||(extension == "tga")
||(extension == "png")||(extension == "bmp"))
{
invtype_column["value"] = "inv_item_texture.tga";
filename_column["value"] = filename.substr(0, periodIndex);
filetype_column["value"] = LIST_TYPE_FILE;
}
else if (extension == "wav")
{
invtype_column["value"] = "inv_item_sound.tga";
filename_column["value"] = filename.substr(0, periodIndex);
filetype_column["value"] = LIST_TYPE_FILE;
}
else if ((extension == "bvh")||(extension == "anim"))
{
invtype_column["value"] = "inv_item_animation.tga";
filename_column["value"] = filename.substr(0, periodIndex);
filetype_column["value"] = LIST_TYPE_FILE;
}
else if ((extension == filename.substr(0, filename.length() - 1))&&(filename != "."))
{
invtype_column["value"] = "inv_folder_plain_closed.tga";
filename_column["value"] = filename;
filetype_column["value"] = LIST_TYPE_FOLDER;
}
else if (filename == "..")
{
invtype_column["value"] = "inv_folder_plain_open.tga";
filename_column["value"] = filename;
filetype_column["value"] = LIST_TYPE_PARENT;
}
if (invtype_column["value"].asString() != "inv_folder_trash.tga")
{
mFileList->addElement(element, ADD_BOTTOM);
}
}
}
}
// static
void ASFloaterUploadBrowser::show(void*)
{
if (!sInstance)
{
sInstance = new ASFloaterUploadBrowser();
}
sInstance->open(); /*Flawfinder: ignore*/
}

View File

@@ -0,0 +1,56 @@
/**
* @file ascentuploadbrowser.h
* @Author Duncan Garrett
* Meant as a replacement to using Windows' file browser for uploads.
*
* Created August 27 2010
*
* ALL SOURCE CODE IS PROVIDED "AS IS." THE CREATOR MAKES NO
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
* COMPLETENESS OR PERFORMANCE.
* k ilu bye
*/
#ifndef ASCENT_UPLOAD_BROWSER
#define ASCENT_UPLOAD_BROWSER
#include "llfloater.h"
class LLScrollListCtrl;
class ASFloaterUploadBrowser : public LLFloater
{
public:
ASFloaterUploadBrowser();
virtual ~ASFloaterUploadBrowser();
static void onClickFile(LLUICtrl* ctrl, void* user_data);
static void onDoubleClick(void* user_data);
void refresh();
void refreshUploadOptions();
void handleDoubleClick();
static void show(void*);
std::vector<LLSD> datas;
private:
static ASFloaterUploadBrowser* sInstance;
enum FILE_COLUMN_ORDER
{
LIST_FILE_TYPE,
LIST_INVENTORY_TYPE,
LIST_FILE_NAME,
LIST_DATA
};
enum FILE_TYPE_ORDER
{
LIST_TYPE_PARENT,
LIST_TYPE_FOLDER,
LIST_TYPE_FILE
};
LLScrollListCtrl* mFileList;
std::string mPathName;
};
#endif // ASCENT_UPLOAD_BROWSER

View File

@@ -43,7 +43,7 @@
#include "llviewercontrol.h"
#include "llimview.h"
#include "llimpanel.h"
#include "llstring.h"
//
// LLFloaterMyFriends
//
@@ -94,7 +94,18 @@ LLFloaterChatterBox::LLFloaterChatterBox(const LLSD& seed) :
{
mAutoResize = FALSE;
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_chatterbox.xml", NULL, FALSE);
std::string chatterbox_layout;
if(gSavedSettings.getBOOL("WoLfVerticalIMTabs"))
{
chatterbox_layout = "floater_chatterbox_wolf.xml";
}
else
{
chatterbox_layout = "floater_chatterbox.xml";
}
LLUICtrlFactory::getInstance()->buildFloater(this, chatterbox_layout, NULL, FALSE);
/*childHide("chatterbox_tabs_horiz");
childShow("chatterbox_tabs_vert");*/
if (gSavedSettings.getBOOL("ContactsTornOff"))
{
LLFloaterMyFriends* floater_contacts = LLFloaterMyFriends::getInstance(0);

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<multi_floater can_close="true" can_drag_on_left="false" can_minimize="true" can_resize="true"
height="390" name="floater_chatterbox"
rect_control="ChatterboxRect" title="Communicate" width="392">
<tab_container bottom="2" follows="left|right|top|bottom" height="370" left="0"
name="chatterbox_tabs" tab_position="left" tab_width="110" width="395" />
</multi_floater>

View File

@@ -0,0 +1,53 @@
<?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="650" height="340" min_width="650" min_height="340" max_width="650"
name="browser" title="Upload Browser" control_name="UploadBrowserFloater">
<tab_container bottom="0" follows="left|right|top|bottom" height="320" left="4"
name="FilesAndFolders" tab_position="top" tab_width="80" width="600">
<panel bottom="0" label="Files" left="0" name="file_panel" width="370">
<scroll_list bottom="10" can_resize="true" column_padding="0" draw_heading="true"
follows="left|top|bottom" left="5" multi_select="true"
name="file_list" width="340" search_column="1"
tool_tip="Hold shift or control while clicking to select multiple friends"
top="-10">
<column name="file_type" width="0" />
<column image="ff_edit_mine_button.tga" name="icon_inventory_type"
tool_tip="Inventory Type" width="20" />
<column dynamicwidth="true" label="Filename" name="file_name" tool_tip="Filename" />
</scroll_list>
<text type="string" length="50" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-23" drop_shadow_visible="true" enabled="true" follows="left|top"
font="SansSerifSmall" h_pad="0" halign="left" height="12" left="352"
mouse_opaque="true" name="name_label" v_pad="0" width="128">
Name:
</text>
<line_editor bottom_delta="-4" follows="left|top" font="SansSerifSmall" height="18" max_length="255"
width="214" name="asset_name" left_delta="70" select_all_on_focus_received="true" select_on_focus="true"/>
<text type="string" length="50" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top"
font="SansSerifSmall" h_pad="0" halign="left" height="12" left="352"
mouse_opaque="true" name="name_label" v_pad="0" width="128">
Description:
</text>
<line_editor bottom_delta="-4" follows="left|top" font="SansSerifSmall" height="18" max_length="255"
width="214" name="asset_desc" left_delta="70" select_all_on_focus_received="true" select_on_focus="true"/>
<slider bottom_delta="0" 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="timeline" show_text="false" value="1" control_name="AnimationTimelineScrubber"/>
<button bottom="9" follows="bottom|left" height="22" label="Upload (L$10)"
left="375" name="upload_button" tool_tip="Standard upload (L$10)"
width="120" />
<button bottom_delta="0" follows="bottom|left" height="22" label="Temp Upload"
left_delta="125" name="upload_button" tool_tip="Uploads a temporary version of the texture. It's free, but has a limited lifespan and area it can be used."
width="120" />
</panel>
<panel bottom="0" label="Folders" left="0" name="folder_panel" width="370">
<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="170">
Oh god this needs to be finished
</text>
</panel>
</tab_container>
</floater>

View File

@@ -41,11 +41,33 @@
tool_tip="Does not hide the UI when logging out."
mouse_opaque="true" name="always_rez_in_group_check" radio_style="false"
width="400" />
<check_box bottom_delta="-20" control_name="AscentBuildAlwaysEnabled" enabled="true"
follows="left|top" font="SansSerifSmall" height="16" initial_value="true"
label="Always show Build as enabled" left="10"
tool_tip="Allows you to use the Build menu without having to be tricky about it. May not mean you can actually build there."
mouse_opaque="true" name="always_build_check" radio_style="false"
width="400" />
<check_box bottom_delta="-20" control_name="AscentFlyAlwaysEnabled" enabled="true"
follows="left|top" font="SansSerifSmall" height="16" initial_value="true"
label="Always allow Fly" left="10"
tool_tip="Lets you fly in locations you shouldn't be allowed to. Use at your own risk - Just because you can doesn't mean you should."
mouse_opaque="true" name="always_fly_check" radio_style="false"
width="400" />
<!--<check_box bottom_delta="-20" control_name="AscentPowerfulWizard" enabled="true"
follows="left|top" font="SansSerifSmall" height="16" initial_value="true"
label="Enable Power User functionality" left="10"
tool_tip="Adds features deemed too dangerous for normal use. These features can wreak havoc or do bad things if misused - Mostly to yourself. Turn this on at your own risk, and use any features it enables responsibly. Ascent devs will not replace anything you break if you ruin something important."
mouse_opaque="true" name="always_fly_check" radio_style="false"
width="400" />-->
</panel>
<panel border="true" left="1" bottom="-408" height="408" width="500" mouse_opaque="true"
follows="left|top|right|bottom" label="Chat/IM" name="Chat/IM">
<check_box bottom_delta="-25" control_name="HideNotificationsInChat" enabled="true"
<check_box bottom_delta="-25" control_name="WoLfVerticalIMTabs" enabled="true"
follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
label="Use Vertical IMs (Requires a restart)" left="10"
mouse_opaque="true" name="use_vertical_ims_check" radio_style="false"
width="400" />
<check_box bottom_delta="-20" control_name="HideNotificationsInChat" enabled="true"
follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
label="Do not echo/log notifications in chat" left="10"
mouse_opaque="true" name="hide_notifications_in_chat_check" radio_style="false"