summaryrefslogtreecommitdiff
path: root/indra/newview/llviewermenu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llviewermenu.cpp')
-rw-r--r--indra/newview/llviewermenu.cpp5282
1 files changed, 2829 insertions, 2453 deletions
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index ac36cf7bb6..5536951ce6 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -40,10 +40,12 @@
#include <sstream>
// linden library includes
-#include "audioengine.h"
+#include "llaudioengine.h"
+#include "llfloaterreg.h"
#include "indra_constants.h"
#include "llassetstorage.h"
#include "llchat.h"
+#include "llcombobox.h"
#include "llfeaturemanager.h"
#include "llfocusmgr.h"
#include "llfontgl.h"
@@ -64,7 +66,7 @@
// newview includes
#include "llagent.h"
-
+#include "llagentwearables.h"
#include "llagentpilot.h"
#include "llbox.h"
#include "llcallingcard.h"
@@ -79,37 +81,31 @@
#include "lldrawpooltree.h"
#include "llface.h"
#include "llfirstuse.h"
+#include "llfirsttimetipmanager.h"
#include "llfloater.h"
#include "llfloaterabout.h"
#include "llfloaterbuycurrency.h"
#include "llfloateractivespeakers.h"
#include "llfloateranimpreview.h"
-#include "llfloateravatarinfo.h"
#include "llfloateravatartextures.h"
-#include "llfloaterbeacons.h"
#include "llfloaterbuildoptions.h"
#include "llfloaterbump.h"
#include "llfloaterbuy.h"
#include "llfloaterbuycontents.h"
#include "llfloaterbuycurrency.h"
#include "llfloaterbuyland.h"
-#include "llfloatercamera.h"
#include "llfloaterchat.h"
#include "llfloatercustomize.h"
#include "llfloaterdaycycle.h"
#include "llfloaterdirectory.h"
-#include "llfloatereditui.h"
#include "llfloaterchatterbox.h"
-#include "llfloaterfriends.h"
#include "llfloaterfonttest.h"
#include "llfloatergesture.h"
#include "llfloatergodtools.h"
-#include "llfloatergroupinfo.h"
#include "llfloatergroupinvite.h"
#include "llfloatergroups.h"
-#include "llfloaterhtml.h"
#include "llfloaterhtmlcurrency.h"
-#include "llfloaterhtmlhelp.h" // gViewerHtmlHelp
+#include "llfloatermediabrowser.h" // gViewerHtmlHelp
#include "llfloaterhtmlsimple.h"
#include "llfloaterhud.h"
#include "llfloaterinspect.h"
@@ -117,27 +113,24 @@
#include "llfloaterland.h"
#include "llfloaterlandholdings.h"
#include "llfloatermap.h"
-#include "llfloatermute.h"
#include "llfloateropenobject.h"
-#include "llfloaterpermissionsmgr.h"
#include "llfloaterperms.h"
#include "llfloaterpostprocess.h"
#include "llfloaterpreference.h"
+#include "llfloaterreg.h"
#include "llfloaterregioninfo.h"
#include "llfloaterreporter.h"
#include "llfloaterscriptdebug.h"
#include "llfloatersettingsdebug.h"
#include "llfloaterenvsettings.h"
-#include "llfloaterstats.h"
-#include "llfloatertest.h"
#include "llfloatertools.h"
#include "llfloaterwater.h"
#include "llfloaterwindlight.h"
#include "llfloaterworldmap.h"
#include "llfloatermemleak.h"
-#include "llframestats.h"
-#include "llframestatview.h"
#include "llfasttimerview.h"
+#include "llavataractions.h"
+#include "lllandmarkactions.h"
#include "llmemoryview.h"
#include "llgivemoney.h"
#include "llgroupmgr.h"
@@ -148,12 +141,15 @@
#include "llimagebmp.h"
#include "llimagej2c.h"
#include "llimagetga.h"
+#include "llinventorybridge.h"
#include "llinventorymodel.h"
-#include "llinventoryview.h"
+#include "llfloaterinventory.h"
#include "llkeyboard.h"
#include "llpanellogin.h"
+#include "llpanelblockedlist.h"
#include "llmenucommands.h"
#include "llmenugl.h"
+#include "llmimetypes.h"
#include "llmorphview.h"
#include "llmoveview.h"
#include "llmutelist.h"
@@ -162,7 +158,9 @@
#include "llparcel.h"
#include "llprimitive.h"
#include "llresmgr.h"
+#include "llrootview.h"
#include "llselectmgr.h"
+#include "llsidetray.h"
#include "llsky.h"
#include "llstatusbar.h"
#include "llstatview.h"
@@ -177,17 +175,16 @@
#include "lltoolgrab.h"
#include "lltoolmgr.h"
#include "lltoolpie.h"
-#include "lltoolplacer.h"
#include "lltoolselectland.h"
+#include "lltrans.h"
#include "lluictrlfactory.h"
#include "lluploaddialog.h"
#include "lluserauth.h"
#include "lluuid.h"
-#include "llvelocitybar.h"
#include "llviewercamera.h"
#include "llviewergenericmessage.h"
#include "llviewergesture.h"
-#include "llviewerimagelist.h" // gImageList
+#include "llviewertexturelist.h" // gTextureList
#include "llviewerinventory.h"
#include "llviewermenufile.h" // init_menu_file()
#include "llviewermessage.h"
@@ -199,6 +196,7 @@
#include "llviewerstats.h"
#include "llviewerwindow.h"
#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llvolume.h"
#include "llweb.h"
#include "llworld.h"
@@ -216,17 +214,6 @@
#include "lltexlayer.h"
using namespace LLVOAvatarDefines;
-using namespace LLOldEvents;
-
-void init_client_menu(LLMenuGL* menu);
-void init_server_menu(LLMenuGL* menu);
-
-void init_debug_world_menu(LLMenuGL* menu);
-void init_debug_rendering_menu(LLMenuGL* menu);
-void init_debug_ui_menu(LLMenuGL* menu);
-void init_debug_xui_menu(LLMenuGL* menu);
-void init_debug_avatar_menu(LLMenuGL* menu);
-void init_debug_baked_texture_menu(LLMenuGL* menu);
BOOL enable_land_build(void*);
BOOL enable_object_build(void*);
@@ -238,13 +225,14 @@ void handle_test_load_url(void*);
//
// Evil hackish imported globals
-//
-extern BOOL gRenderLightGlows;
-extern BOOL gRenderAvatar;
-extern BOOL gHideSelectedObjects;
-extern BOOL gShowOverlayTitle;
-extern BOOL gOcclusionCull;
-extern BOOL gAllowSelectAvatar;
+
+//extern BOOL gHideSelectedObjects;
+//extern BOOL gAllowSelectAvatar;
+//extern BOOL gDebugAvatarRotation;
+extern BOOL gDebugClicks;
+extern BOOL gDebugWindowProc;
+//extern BOOL gDebugTextEditorTips;
+//extern BOOL gDebugSelectMgr;
//
// Globals
@@ -256,15 +244,11 @@ LLMenuGL *gPopupMenuView = NULL;
LLMenuBarGL *gLoginMenuBarView = NULL;
// Pie menus
-LLPieMenu *gPieSelf = NULL;
-LLPieMenu *gPieAvatar = NULL;
-LLPieMenu *gPieObject = NULL;
-LLPieMenu *gPieAttachment = NULL;
-LLPieMenu *gPieLand = NULL;
-
-// local constants
-const std::string CLIENT_MENU_NAME("Advanced");
-const std::string SERVER_MENU_NAME("Admin");
+LLContextMenu *gPieSelf = NULL;
+LLContextMenu *gPieAvatar = NULL;
+LLContextMenu *gPieObject = NULL;
+LLContextMenu *gPieAttachment = NULL;
+LLContextMenu *gPieLand = NULL;
const std::string SAVE_INTO_INVENTORY("Save Object Back to My Inventory");
const std::string SAVE_INTO_TASK_INVENTORY("Save Object Back to Object Contents");
@@ -272,27 +256,24 @@ const std::string SAVE_INTO_TASK_INVENTORY("Save Object Back to Object Contents"
LLMenuGL* gAttachSubMenu = NULL;
LLMenuGL* gDetachSubMenu = NULL;
LLMenuGL* gTakeOffClothes = NULL;
-LLPieMenu* gPieRate = NULL;
-LLPieMenu* gAttachScreenPieMenu = NULL;
-LLPieMenu* gAttachPieMenu = NULL;
-LLPieMenu* gAttachBodyPartPieMenus[8];
-LLPieMenu* gDetachPieMenu = NULL;
-LLPieMenu* gDetachScreenPieMenu = NULL;
-LLPieMenu* gDetachBodyPartPieMenus[8];
+LLContextMenu* gPieRate = NULL;
+LLContextMenu* gAttachScreenPieMenu = NULL;
+LLContextMenu* gAttachPieMenu = NULL;
+LLContextMenu* gAttachBodyPartPieMenus[8];
+LLContextMenu* gDetachPieMenu = NULL;
+LLContextMenu* gDetachScreenPieMenu = NULL;
+LLContextMenu* gDetachBodyPartPieMenus[8];
LLMenuItemCallGL* gAFKMenu = NULL;
LLMenuItemCallGL* gBusyMenu = NULL;
-typedef LLMemberListener<LLView> view_listener_t;
-
//
// Local prototypes
-//
-void handle_leave_group(void *);
// File Menu
+const char* upload_pick(void* data);
void handle_compress_image(void*);
-BOOL enable_save_as(void *);
+
// Edit menu
void handle_dump_group_info(void *);
@@ -300,7 +281,6 @@ void handle_dump_capabilities_info(void *);
void handle_dump_focus(void*);
// Advanced->Consoles menu
-void handle_show_notifications_console(void*);
void handle_region_dump_settings(void*);
void handle_region_dump_temp_asset_data(void*);
void handle_region_clear_temp_asset_data(void*);
@@ -309,7 +289,7 @@ void handle_region_clear_temp_asset_data(void*);
BOOL sitting_on_selection();
void near_sit_object();
-void label_sit_or_stand(std::string& label, void*);
+//void label_sit_or_stand(std::string& label, void*);
// buy and take alias into the same UI positions, so these
// declarations handle this mess.
BOOL is_selection_buy_not_take();
@@ -321,51 +301,31 @@ BOOL enable_buy(void*);
void handle_buy(void *);
void handle_buy_object(LLSaleInfo sale_info);
void handle_buy_contents(LLSaleInfo sale_info);
-void label_touch(std::string& label, void*);
// Land pie menu
void near_sit_down_point(BOOL success, void *);
// Avatar pie menu
-void handle_follow(void *userdata);
-void handle_talk_to(void *userdata);
// Debug menu
-void show_permissions_control(void*);
-void toggle_build_options(void* user_data);
-void reload_ui(void*);
-void handle_agent_stop_moving(void*);
-void print_packets_lost(void*);
-void drop_packet(void*);
-void velocity_interpolate( void* data );
-void toggle_wind_audio(void);
-void toggle_water_audio(void);
+
+
+void velocity_interpolate( void* );
+
void handle_rebake_textures(void*);
BOOL check_admin_override(void*);
void handle_admin_override_toggle(void*);
#ifdef TOGGLE_HACKED_GODLIKE_VIEWER
void handle_toggle_hacked_godmode(void*);
BOOL check_toggle_hacked_godmode(void*);
+bool enable_toggle_hacked_godmode(void*);
#endif
-void toggle_glow(void *);
-BOOL check_glow(void *);
-
-void toggle_vertex_shaders(void *);
-BOOL check_vertex_shaders(void *);
-
-void toggle_cull_small(void *);
-
void toggle_show_xui_names(void *);
BOOL check_show_xui_names(void *);
-void run_vectorize_perf_test(void *)
-{
- gSavedSettings.setBOOL("VectorizePerfTest", TRUE);
-}
-
// Debug UI
-void handle_web_search_demo(void*);
+
void handle_web_browser_test(void*);
void handle_buy_currency_test(void*);
void handle_save_to_xml(void*);
@@ -376,16 +336,12 @@ void handle_god_mode(void*);
// God menu
void handle_leave_god_mode(void*);
-BOOL is_inventory_visible( void* user_data );
+
void handle_reset_view();
-void disabled_duplicate(void*);
void handle_duplicate_in_place(void*);
-void handle_repeat_duplicate(void*);
-void handle_export(void*);
-// void handle_deed_object_to_group(void*);
-// BOOL enable_deed_object_to_group(void*);
+
void handle_object_owner_self(void*);
void handle_object_owner_permissive(void*);
void handle_object_lock(void*);
@@ -400,11 +356,8 @@ void handle_force_parcel_owner_to_me(void*);
void handle_force_parcel_to_content(void*);
void handle_claim_public_land(void*);
-void handle_god_request_havok(void *);
void handle_god_request_avatar_geometry(void *); // Hack for easy testing of new avatar geometry
-void reload_personal_settings_overrides(void *);
void reload_vertex_shader(void *);
-void slow_mo_animations(void *);
void handle_disconnect_viewer(void *);
void force_error_breakpoint(void *);
@@ -414,25 +367,13 @@ void force_error_infinite_loop(void *);
void force_error_software_exception(void *);
void force_error_driver_crash(void *);
-void handle_stopall(void*);
-//void handle_hinge(void*);
-//void handle_ptop(void*);
-//void handle_lptop(void*);
-//void handle_wheel(void*);
-//void handle_dehinge(void*);
-BOOL enable_dehinge(void*);
void handle_force_delete(void*);
void print_object_info(void*);
void print_agent_nvpairs(void*);
void toggle_debug_menus(void*);
-void export_info_callback(LLAssetInfo *info, void **user_data, S32 result);
-void export_data_callback(LLVFS *vfs, const LLUUID& uuid, LLAssetType::EType type, void **user_data, S32 result);
void upload_done_callback(const LLUUID& uuid, void* user_data, S32 result, LLExtStat ext_status);
-BOOL menu_check_build_tool( void* user_data );
-void handle_reload_settings(void*);
-void focus_here(void*);
void dump_select_mgr(void*);
-void dump_volume_mgr(void*);
+
void dump_inventory(void*);
void edit_ui(void*);
void toggle_visibility(void*);
@@ -442,52 +383,30 @@ BOOL get_visibility(void*);
void request_friendship(const LLUUID& agent_id);
// Tools menu
-void handle_force_unlock(void*);
void handle_selected_texture_info(void*);
-void handle_dump_image_list(void*);
-void handle_crash(void*);
void handle_dump_followcam(void*);
void handle_viewer_enable_message_log(void*);
void handle_viewer_disable_message_log(void*);
-void handle_send_postcard(void*);
-void handle_gestures_old(void*);
-void handle_focus(void *);
+
BOOL enable_buy_land(void*);
-void handle_move(void*);
-void handle_show_inventory(void*);
-void handle_activate(void*);
-BOOL enable_activate(void*);
// Help menu
-void handle_buy_currency(void*);
void handle_test_male(void *);
void handle_test_female(void *);
void handle_toggle_pg(void*);
void handle_dump_attachments(void *);
-void handle_show_overlay_title(void*);
void handle_dump_avatar_local_textures(void*);
void handle_debug_avatar_textures(void*);
void handle_grab_texture(void*);
BOOL enable_grab_texture(void*);
void handle_dump_region_object_cache(void*);
-BOOL menu_ui_enabled(void *user_data);
-BOOL menu_check_control( void* user_data);
-void menu_toggle_variable( void* user_data );
-BOOL menu_check_variable( void* user_data);
-BOOL enable_land_selected( void* );
-BOOL enable_more_than_one_selected(void* );
-BOOL enable_selection_you_own_all(void*);
-BOOL enable_selection_you_own_one(void*);
BOOL enable_save_into_inventory(void*);
BOOL enable_save_into_task_inventory(void*);
-BOOL enable_not_thirdperson(void*);
-// BOOL enable_export_selected(void *);
-BOOL enable_have_card(void*);
-BOOL enable_detach(void*);
-BOOL enable_region_owner(void*);
+
+BOOL enable_detach(const LLSD& = LLSD());
void menu_toggle_attached_lights(void* user_data);
void menu_toggle_attached_particles(void* user_data);
@@ -521,27 +440,6 @@ void LLMenuParcelObserver::changed()
}
-//-----------------------------------------------------------------------------
-// Menu Construction
-//-----------------------------------------------------------------------------
-
-// code required to calculate anything about the menus
-void pre_init_menus()
-{
- // static information
- LLColor4 color;
- color = gColors.getColor( "MenuDefaultBgColor" );
- LLMenuGL::setDefaultBackgroundColor( color );
- color = gColors.getColor( "MenuItemEnabledColor" );
- LLMenuItemGL::setEnabledColor( color );
- color = gColors.getColor( "MenuItemDisabledColor" );
- LLMenuItemGL::setDisabledColor( color );
- color = gColors.getColor( "MenuItemHighlightBgColor" );
- LLMenuItemGL::setHighlightBGColor( color );
- color = gColors.getColor( "MenuItemHighlightFgColor" );
- LLMenuItemGL::setHighlightFGColor( color );
-}
-
void initialize_menus();
//-----------------------------------------------------------------------------
@@ -560,13 +458,13 @@ void set_underclothes_menu_options()
{
if (gMenuHolder && gAgent.isTeen())
{
- gMenuHolder->getChild<LLView>("Self Underpants", TRUE)->setVisible(FALSE);
- gMenuHolder->getChild<LLView>("Self Undershirt", TRUE)->setVisible(FALSE);
+ gMenuHolder->getChild<LLView>("Self Underpants")->setVisible(FALSE);
+ gMenuHolder->getChild<LLView>("Self Undershirt")->setVisible(FALSE);
}
if (gMenuBarView && gAgent.isTeen())
{
- gMenuBarView->getChild<LLView>("Menu Underpants", TRUE)->setVisible(FALSE);
- gMenuBarView->getChild<LLView>("Menu Undershirt", TRUE)->setVisible(FALSE);
+ gMenuBarView->getChild<LLView>("Menu Underpants")->setVisible(FALSE);
+ gMenuBarView->getChild<LLView>("Menu Undershirt")->setVisible(FALSE);
}
}
@@ -593,62 +491,63 @@ void init_menus()
/// The popup menu is now populated by the show_context_menu()
/// method.
- gPopupMenuView = new LLMenuGL( "Popup" );
- gPopupMenuView->setVisible( FALSE );
+ LLMenuGL::Params menu_params;
+ menu_params.name = "Popup";
+ menu_params.visible = false;
+ gPopupMenuView = LLUICtrlFactory::create<LLMenuGL>(menu_params);
gMenuHolder->addChild( gPopupMenuView );
///
/// Pie menus
///
- gPieSelf = LLUICtrlFactory::getInstance()->buildPieMenu("menu_pie_self.xml", gMenuHolder);
+ gPieSelf = LLUICtrlFactory::getInstance()->createFromFile<LLContextMenu>("menu_pie_self.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
// TomY TODO: what shall we do about these?
- gDetachScreenPieMenu = gMenuHolder->getChild<LLPieMenu>("Object Detach HUD", true);
- gDetachPieMenu = gMenuHolder->getChild<LLPieMenu>("Object Detach", true);
+ gDetachScreenPieMenu = gMenuHolder->getChild<LLContextMenu>("Object Detach HUD", true);
+ gDetachPieMenu = gMenuHolder->getChild<LLContextMenu>("Object Detach", true);
- gPieAvatar = LLUICtrlFactory::getInstance()->buildPieMenu("menu_pie_avatar.xml", gMenuHolder);
+ gPieAvatar = LLUICtrlFactory::getInstance()->createFromFile<LLContextMenu>("menu_pie_avatar.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
- gPieObject = LLUICtrlFactory::getInstance()->buildPieMenu("menu_pie_object.xml", gMenuHolder);
+ gPieObject = LLUICtrlFactory::getInstance()->createFromFile<LLContextMenu>("menu_pie_object.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
- gAttachScreenPieMenu = gMenuHolder->getChild<LLPieMenu>("Object Attach HUD");
- gAttachPieMenu = gMenuHolder->getChild<LLPieMenu>("Object Attach");
- gPieRate = gMenuHolder->getChild<LLPieMenu>("Rate Menu");
+ gAttachScreenPieMenu = gMenuHolder->getChild<LLContextMenu>("Object Attach HUD");
+ gAttachPieMenu = gMenuHolder->getChild<LLContextMenu>("Object Attach");
+ gPieRate = gMenuHolder->getChild<LLContextMenu>("Rate Menu");
- gPieAttachment = LLUICtrlFactory::getInstance()->buildPieMenu("menu_pie_attachment.xml", gMenuHolder);
+ gPieAttachment = LLUICtrlFactory::getInstance()->createFromFile<LLContextMenu>("menu_pie_attachment.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
- gPieLand = LLUICtrlFactory::getInstance()->buildPieMenu("menu_pie_land.xml", gMenuHolder);
+ gPieLand = LLUICtrlFactory::getInstance()->createFromFile<LLContextMenu>("menu_pie_land.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
///
/// set up the colors
///
LLColor4 color;
- LLColor4 pie_color = gColors.getColor("PieMenuBgColor");
- gPieSelf->setBackgroundColor( pie_color );
- gPieAvatar->setBackgroundColor( pie_color );
- gPieObject->setBackgroundColor( pie_color );
- gPieAttachment->setBackgroundColor( pie_color );
- gPieLand->setBackgroundColor( pie_color );
+ LLColor4 context_menu_color = LLUIColorTable::instance().getColor("MenuPopupBgColor");
+
+ gPieSelf->setBackgroundColor( context_menu_color );
+ gPieAvatar->setBackgroundColor( context_menu_color );
+ gPieObject->setBackgroundColor( context_menu_color );
+ gPieAttachment->setBackgroundColor( context_menu_color );
+
+ gPieLand->setBackgroundColor( context_menu_color );
- color = gColors.getColor( "MenuPopupBgColor" );
+ color = LLUIColorTable::instance().getColor( "MenuPopupBgColor" );
gPopupMenuView->setBackgroundColor( color );
// If we are not in production, use a different color to make it apparent.
if (LLViewerLogin::getInstance()->isInProductionGrid())
{
- color = gColors.getColor( "MenuBarBgColor" );
+ color = LLUIColorTable::instance().getColor( "MenuBarBgColor" );
}
else
{
- color = gColors.getColor( "MenuNonProductionBgColor" );
+ color = LLUIColorTable::instance().getColor( "MenuNonProductionBgColor" );
}
- gMenuBarView = (LLMenuBarGL*)LLUICtrlFactory::getInstance()->buildMenu("menu_viewer.xml", gMenuHolder);
+ gMenuBarView = LLUICtrlFactory::getInstance()->createFromFile<LLMenuBarGL>("menu_viewer.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
gMenuBarView->setRect(LLRect(0, top, 0, top - MENU_BAR_HEIGHT));
gMenuBarView->setBackgroundColor( color );
- // gMenuBarView->setItemVisible("Tools", FALSE);
- gMenuBarView->arrange();
-
gMenuHolder->addChild(gMenuBarView);
// menu holder appears on top of menu bar so you can see the menu title
@@ -659,6 +558,7 @@ void init_menus()
LLViewerLogin::getInstance()->isInProductionGrid());
// Assume L$10 for now, the server will tell us the real cost at login
+ // *TODO:Also fix cost in llfolderview.cpp for Inventory menus
const std::string upload_cost("10");
gMenuHolder->childSetLabelArg("Upload Image", "[COST]", upload_cost);
gMenuHolder->childSetLabelArg("Upload Sound", "[COST]", upload_cost);
@@ -667,820 +567,1828 @@ void init_menus()
gAFKMenu = gMenuBarView->getChild<LLMenuItemCallGL>("Set Away", TRUE);
gBusyMenu = gMenuBarView->getChild<LLMenuItemCallGL>("Set Busy", TRUE);
- gAttachSubMenu = gMenuBarView->getChildMenuByName("Attach Object", TRUE);
- gDetachSubMenu = gMenuBarView->getChildMenuByName("Detach Object", TRUE);
-
- // TomY TODO convert these two
- LLMenuGL*menu;
-
- menu = new LLMenuGL(CLIENT_MENU_NAME);
- init_client_menu(menu);
- gMenuBarView->appendMenu( menu );
- menu->updateParent(LLMenuGL::sMenuContainer);
-
- menu = new LLMenuGL(SERVER_MENU_NAME);
- init_server_menu(menu);
- gMenuBarView->appendMenu( menu );
- menu->updateParent(LLMenuGL::sMenuContainer);
+ gAttachSubMenu = gMenuBarView->findChildMenuByName("Attach Object", TRUE);
+ gDetachSubMenu = gMenuBarView->findChildMenuByName("Detach Object", TRUE);
gMenuBarView->createJumpKeys();
// Let land based option enable when parcel changes
gMenuParcelObserver = new LLMenuParcelObserver();
- //
- // Debug menu visiblity
- //
- show_debug_menus();
-
- gLoginMenuBarView = (LLMenuBarGL*)LLUICtrlFactory::getInstance()->buildMenu("menu_login.xml", gMenuHolder);
+ gLoginMenuBarView = LLUICtrlFactory::getInstance()->createFromFile<LLMenuBarGL>("menu_login.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
+ gLoginMenuBarView->arrangeAndClear();
LLRect menuBarRect = gLoginMenuBarView->getRect();
gLoginMenuBarView->setRect(LLRect(menuBarRect.mLeft, menuBarRect.mTop, gViewerWindow->getRootView()->getRect().getWidth() - menuBarRect.mLeft, menuBarRect.mBottom));
-
gLoginMenuBarView->setBackgroundColor( color );
-
gMenuHolder->addChild(gLoginMenuBarView);
}
+///////////////////
+// SHOW CONSOLES //
+///////////////////
-void init_client_menu(LLMenuGL* menu)
+class LLAdvancedToggleConsole : public view_listener_t
{
- LLMenuGL* sub_menu = NULL;
-
- //menu->append(new LLMenuItemCallGL("Permissions Control", &show_permissions_control));
- // this is now in the view menu so we don't need it here!
-
+ bool handleEvent(const LLSD& userdata)
{
- // *TODO: Translate
- LLMenuGL* sub = new LLMenuGL("Consoles");
- menu->appendMenu(sub);
- sub->append(new LLMenuItemCheckGL("Frame Console",
- &toggle_visibility,
- NULL,
- &get_visibility,
- (void*)gDebugView->mFrameStatView,
- '2', MASK_CONTROL|MASK_SHIFT ) );
- sub->append(new LLMenuItemCheckGL("Texture Console",
- &toggle_visibility,
- NULL,
- &get_visibility,
- (void*)gTextureView,
- '3', MASK_CONTROL|MASK_SHIFT ) );
- LLView* debugview = gDebugView->mDebugConsolep;
- sub->append(new LLMenuItemCheckGL("Debug Console",
- &toggle_visibility,
- NULL,
- &get_visibility,
- debugview,
- '4', MASK_CONTROL|MASK_SHIFT ) );
-
- sub->append(new LLMenuItemCheckGL("Fast Timers",
- &toggle_visibility,
- NULL,
- &get_visibility,
- (void*)gDebugView->mFastTimerView,
- '9', MASK_CONTROL|MASK_SHIFT ) );
+ std::string console_type = userdata.asString();
+ if ("texture" == console_type)
+ {
+ toggle_visibility( (void*)gTextureView );
+ }
+ else if ("debug" == console_type)
+ {
+ toggle_visibility( (void*)((LLView*)gDebugView->mDebugConsolep) );
+ }
+ else if ("fast timers" == console_type)
+ {
+ toggle_visibility( (void*)gDebugView->mFastTimerView );
+ }
#if MEM_TRACK_MEM
- sub->append(new LLMenuItemCheckGL("Memory",
- &toggle_visibility,
- NULL,
- &get_visibility,
- (void*)gDebugView->mMemoryView,
- '0', MASK_CONTROL|MASK_SHIFT ) );
+ else if ("memory view" == console_type)
+ {
+ toggle_visibility( (void*)gDebugView->mMemoryView );
+ }
#endif
-
- sub->appendSeparator();
-
- // Debugging view for unified notifications
- sub->append(new LLMenuItemCallGL("Notifications Console...",
- &handle_show_notifications_console, NULL, NULL, '5', MASK_CONTROL|MASK_SHIFT ));
-
+ return true;
+ }
+};
+class LLAdvancedCheckConsole : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ std::string console_type = userdata.asString();
+ bool new_value = false;
+ if ("texture" == console_type)
+ {
+ new_value = get_visibility( (void*)gTextureView );
+ }
+ else if ("debug" == console_type)
+ {
+ new_value = get_visibility( (void*)((LLView*)gDebugView->mDebugConsolep) );
+ }
+ else if ("fast timers" == console_type)
+ {
+ new_value = get_visibility( (void*)gDebugView->mFastTimerView );
+ }
+#if MEM_TRACK_MEM
+ else if ("memory view" == console_type)
+ {
+ new_value = get_visibility( (void*)gDebugView->mMemoryView );
+ }
+#endif
+
+ return new_value;
+ }
+};
+
+
+//////////////////////////
+// DUMP INFO TO CONSOLE //
+//////////////////////////
+
+
+class LLAdvancedDumpInfoToConsole : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ std::string info_type = userdata.asString();
+ if ("region" == info_type)
+ {
+ handle_region_dump_settings(NULL);
+ }
+ else if ("group" == info_type)
+ {
+ handle_dump_group_info(NULL);
+ }
+ else if ("capabilities" == info_type)
+ {
+ handle_dump_capabilities_info(NULL);
+ }
+ return true;
+ }
+};
+
+
+//////////////
+// HUD INFO //
+//////////////
+
+
+class LLAdvancedToggleHUDInfo : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ std::string info_type = userdata.asString();
+
+ if ("camera" == info_type)
+ {
+ gDisplayCameraPos = !(gDisplayCameraPos);
+ }
+ else if ("wind" == info_type)
+ {
+ gDisplayWindInfo = !(gDisplayWindInfo);
+ }
+ else if ("fov" == info_type)
+ {
+ gDisplayFOV = !(gDisplayFOV);
+ }
+ return true;
+ }
+};
+
+class LLAdvancedCheckHUDInfo : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ std::string info_type = userdata.asString();
+ bool new_value = false;
+ if ("camera" == info_type)
+ {
+ new_value = gDisplayCameraPos;
+ }
+ else if ("wind" == info_type)
+ {
+ new_value = gDisplayWindInfo;
+ }
+ else if ("fov" == info_type)
+ {
+ new_value = gDisplayFOV;
+ }
+ return new_value;
+ }
+};
+
+///////////////////////
+// CLEAR GROUP CACHE //
+///////////////////////
+
+class LLAdvancedClearGroupCache : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLGroupMgr::debugClearAllGroups(NULL);
+ return true;
+ }
+};
+
+
+
+
+/////////////////
+// RENDER TYPE //
+/////////////////
+U32 render_type_from_string(std::string render_type)
+{
+ if ("simple" == render_type)
+ {
+ return LLPipeline::RENDER_TYPE_SIMPLE;
+ }
+ else if ("alpha" == render_type)
+ {
+ return LLPipeline::RENDER_TYPE_ALPHA;
+ }
+ else if ("tree" == render_type)
+ {
+ return LLPipeline::RENDER_TYPE_TREE;
+ }
+ else if ("character" == render_type)
+ {
+ return LLPipeline::RENDER_TYPE_AVATAR;
+ }
+ else if ("surfacePath" == render_type)
+ {
+ return LLPipeline::RENDER_TYPE_TERRAIN;
+ }
+ else if ("sky" == render_type)
+ {
+ return LLPipeline::RENDER_TYPE_SKY;
+ }
+ else if ("water" == render_type)
+ {
+ return LLPipeline::RENDER_TYPE_WATER;
+ }
+ else if ("ground" == render_type)
+ {
+ return LLPipeline::RENDER_TYPE_GROUND;
+ }
+ else if ("volume" == render_type)
+ {
+ return LLPipeline::RENDER_TYPE_VOLUME;
+ }
+ else if ("grass" == render_type)
+ {
+ return LLPipeline::RENDER_TYPE_GRASS;
+ }
+ else if ("clouds" == render_type)
+ {
+ return LLPipeline::RENDER_TYPE_CLOUDS;
+ }
+ else if ("particles" == render_type)
+ {
+ return LLPipeline::RENDER_TYPE_PARTICLES;
+ }
+ else if ("bump" == render_type)
+ {
+ return LLPipeline::RENDER_TYPE_BUMP;
+ }
+ else
+ {
+ return 0;
+ }
+}
+
+
+class LLAdvancedToggleRenderType : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ U32 render_type = render_type_from_string( userdata.asString() );
+ if ( render_type != 0 )
+ {
+ LLPipeline::toggleRenderTypeControl( (void*)render_type );
+ }
+ return true;
+ }
+};
+
+
+class LLAdvancedCheckRenderType : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ U32 render_type = render_type_from_string( userdata.asString() );
+ bool new_value = false;
+
+ if ( render_type != 0 )
+ {
+ new_value = LLPipeline::hasRenderTypeControl( (void*)render_type );
+ }
+
+ return new_value;
+ }
+};
+
+
+/////////////
+// FEATURE //
+/////////////
+U32 feature_from_string(std::string feature)
+{
+ if ("ui" == feature)
+ {
+ return LLPipeline::RENDER_DEBUG_FEATURE_UI;
+ }
+ else if ("selected" == feature)
+ {
+ return LLPipeline::RENDER_DEBUG_FEATURE_SELECTED;
+ }
+ else if ("highlighted" == feature)
+ {
+ return LLPipeline::RENDER_DEBUG_FEATURE_HIGHLIGHTED;
+ }
+ else if ("dynamic textures" == feature)
+ {
+ return LLPipeline::RENDER_DEBUG_FEATURE_DYNAMIC_TEXTURES;
+ }
+ else if ("foot shadows" == feature)
+ {
+ return LLPipeline::RENDER_DEBUG_FEATURE_FOOT_SHADOWS;
+ }
+ else if ("fog" == feature)
+ {
+ return LLPipeline::RENDER_DEBUG_FEATURE_FOG;
+ }
+ else if ("fr info" == feature)
+ {
+ return LLPipeline::RENDER_DEBUG_FEATURE_FR_INFO;
+ }
+ else if ("flexible" == feature)
+ {
+ return LLPipeline::RENDER_DEBUG_FEATURE_FLEXIBLE;
+ }
+ else
+ {
+ return 0;
+ }
+};
+
+
+class LLAdvancedToggleFeature : public view_listener_t{
+ bool handleEvent(const LLSD& userdata)
+ {
+ U32 feature = feature_from_string( userdata.asString() );
+ if ( feature != 0 )
+ {
+ LLPipeline::toggleRenderDebugFeature( (void*)feature );
+ }
+ return true;
+ }
+};
+
+class LLAdvancedCheckFeature : public view_listener_t
+{bool handleEvent(const LLSD& userdata)
+{
+ U32 feature = feature_from_string( userdata.asString() );
+ bool new_value = false;
+
+ if ( feature != 0 )
+ {
+ new_value = LLPipeline::toggleRenderDebugFeatureControl( (void*)feature );
+ }
+
+ return new_value;
+}
+};
+
+
+//////////////////
+// INFO DISPLAY //
+//////////////////
+U32 info_display_from_string(std::string info_display)
+{
+ if ("verify" == info_display)
+ {
+ return LLPipeline::RENDER_DEBUG_VERIFY;
+ }
+ else if ("bboxes" == info_display)
+ {
+ return LLPipeline::RENDER_DEBUG_BBOXES;
+ }
+ else if ("points" == info_display)
+ {
+ return LLPipeline::RENDER_DEBUG_POINTS;
+ }
+ else if ("octree" == info_display)
+ {
+ return LLPipeline::RENDER_DEBUG_OCTREE;
+ }
+ else if ("shadow frusta" == info_display)
+ {
+ return LLPipeline::RENDER_DEBUG_SHADOW_FRUSTA;
+ }
+ else if ("occlusion" == info_display)
+ {
+ return LLPipeline::RENDER_DEBUG_OCCLUSION;
+ }
+ else if ("render batches" == info_display)
+ {
+ return LLPipeline::RENDER_DEBUG_BATCH_SIZE;
+ }
+ else if ("texture anim" == info_display)
+ {
+ return LLPipeline::RENDER_DEBUG_TEXTURE_ANIM;
+ }
+ else if ("texture priority" == info_display)
+ {
+ return LLPipeline::RENDER_DEBUG_TEXTURE_PRIORITY;
+ }
+ else if ("shame" == info_display)
+ {
+ return LLPipeline::RENDER_DEBUG_SHAME;
+ }
+ else if ("texture area" == info_display)
+ {
+ return LLPipeline::RENDER_DEBUG_TEXTURE_AREA;
+ }
+ else if ("face area" == info_display)
+ {
+ return LLPipeline::RENDER_DEBUG_FACE_AREA;
+ }
+ else if ("lights" == info_display)
+ {
+ return LLPipeline::RENDER_DEBUG_LIGHTS;
+ }
+ else if ("particles" == info_display)
+ {
+ return LLPipeline::RENDER_DEBUG_PARTICLES;
+ }
+ else if ("composition" == info_display)
+ {
+ return LLPipeline::RENDER_DEBUG_COMPOSITION;
+ }
+ else if ("glow" == info_display)
+ {
+ return LLPipeline::RENDER_DEBUG_GLOW;
+ }
+ else if ("collision skeleton" == info_display)
+ {
+ return LLPipeline::RENDER_DEBUG_AVATAR_VOLUME;
+ }
+ else if ("agent target" == info_display)
+ {
+ return LLPipeline::RENDER_DEBUG_AGENT_TARGET;
+ }
+ else
+ {
+ return 0;
+ }
+};
+
+class LLAdvancedToggleInfoDisplay : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ U32 info_display = info_display_from_string( userdata.asString() );
+
+ if ( info_display != 0 )
+ {
+ LLPipeline::toggleRenderDebug( (void*)info_display );
+ }
+
+ return true;
+ }
+};
+
+
+class LLAdvancedCheckInfoDisplay : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ U32 info_display = info_display_from_string( userdata.asString() );
+ bool new_value = false;
+
+ if ( info_display != 0 )
+ {
+ new_value = LLPipeline::toggleRenderDebugControl( (void*)info_display );
+ }
+
+ return new_value;
+ }
+};
+
+
+///////////////////////////
+//// RANDOMIZE FRAMERATE //
+///////////////////////////
+
+
+class LLAdvancedToggleRandomizeFramerate : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ gRandomizeFramerate = !(gRandomizeFramerate);
+ return true;
+ }
+};
+
+class LLAdvancedCheckRandomizeFramerate : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = gRandomizeFramerate;
+ return new_value;
+ }
+};
+
+void run_vectorize_perf_test(void *)
+{
+ gSavedSettings.setBOOL("VectorizePerfTest", TRUE);
+}
+
+
+////////////////////////////////
+// RUN Vectorized Perform Test//
+////////////////////////////////
+
+
+class LLAdvancedVectorizePerfTest : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ run_vectorize_perf_test(NULL);
+ return true;
+ }
+};
+
+///////////////////////////
+//// PERIODIC SLOW FRAME //
+///////////////////////////
+
+
+class LLAdvancedTogglePeriodicSlowFrame : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ gPeriodicSlowFrame = !(gPeriodicSlowFrame);
+ return true;
+ }
+};
+
+class LLAdvancedCheckPeriodicSlowFrame : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = gPeriodicSlowFrame;
+ return new_value;
+ }
+};
+
+
+
+////////////////
+// FRAME TEST //
+////////////////
+
+
+class LLAdvancedToggleFrameTest : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLPipeline::sRenderFrameTest = !(LLPipeline::sRenderFrameTest);
+ return true;
+ }
+};
+
+class LLAdvancedCheckFrameTest : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = LLPipeline::sRenderFrameTest;
+ return new_value;
+ }
+};
+
+
+///////////////////////////
+// SELECTED TEXTURE INFO //
+///////////////////////////
+
+
+class LLAdvancedSelectedTextureInfo : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_selected_texture_info(NULL);
+ return true;
+ }
+};
- sub->appendSeparator();
+//////////////////////
+// TOGGLE WIREFRAME //
+//////////////////////
- sub->append(new LLMenuItemCallGL("Region Info to Debug Console",
- &handle_region_dump_settings, NULL));
- sub->append(new LLMenuItemCallGL("Group Info to Debug Console",
- &handle_dump_group_info, NULL, NULL));
- sub->append(new LLMenuItemCallGL("Capabilities Info to Debug Console",
- &handle_dump_capabilities_info, NULL, NULL));
- sub->createJumpKeys();
+class LLAdvancedToggleWireframe : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ gUseWireframe = !(gUseWireframe);
+ return true;
+ }
+};
+
+class LLAdvancedCheckWireframe : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = gUseWireframe;
+ return new_value;
}
+};
- // neither of these works particularly well at the moment
- /*menu->append(new LLMenuItemCallGL( "Reload UI XML", &reload_ui,
- NULL, NULL) );*/
- /*menu->append(new LLMenuItemCallGL("Reload settings/colors",
- &handle_reload_settings, NULL, NULL));*/
- menu->append(new LLMenuItemCallGL("Reload personal setting overrides",
- &reload_personal_settings_overrides, NULL, NULL, KEY_F12, MASK_CONTROL|MASK_SHIFT));
-
- sub_menu = new LLMenuGL("HUD Info");
- {
- sub_menu->append(new LLMenuItemCheckGL("Velocity",
- &toggle_visibility,
- NULL,
- &get_visibility,
- (void*)gVelocityBar));
-
- sub_menu->append(new LLMenuItemToggleGL("Camera", &gDisplayCameraPos ) );
- sub_menu->append(new LLMenuItemToggleGL("Wind", &gDisplayWindInfo) );
- sub_menu->append(new LLMenuItemToggleGL("FOV", &gDisplayFOV ) );
- sub_menu->createJumpKeys();
- }
- menu->appendMenu(sub_menu);
-
- menu->appendSeparator();
-
- menu->append(new LLMenuItemCheckGL( "High-res Snapshot",
- &menu_toggle_control,
- NULL,
- &menu_check_control,
- (void*)"HighResSnapshot"));
+//////////////////////
+// DISABLE TEXTURES //
+//////////////////////
+
+class LLAdvancedToggleDisableTextures : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLViewerTexture::sDontLoadVolumeTextures = !LLViewerTexture::sDontLoadVolumeTextures;
+ return true;
+ }
+};
+
+class LLAdvancedCheckDisableTextures : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = LLViewerTexture::sDontLoadVolumeTextures; // <-- make this using LLCacheControl
+ return new_value;
+ }
+};
+
+//////////////////////////
+// DUMP SCRIPTED CAMERA //
+//////////////////////////
- menu->append(new LLMenuItemCheckGL( "Quiet Snapshots to Disk",
- &menu_toggle_control,
- NULL,
- &menu_check_control,
- (void*)"QuietSnapshotsToDisk"));
-
- menu->append(new LLMenuItemCheckGL("Show Mouselook Crosshairs",
- &menu_toggle_control,
- NULL,
- &menu_check_control,
- (void*)"ShowCrosshairs"));
-
- menu->append(new LLMenuItemCheckGL("Debug Permissions",
- &menu_toggle_control,
- NULL,
- &menu_check_control,
- (void*)"DebugPermissions"));
+class LLAdvancedDumpScriptedCamera : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_dump_followcam(NULL);
+ return true;
+}
+};
+
+
+
+//////////////////////////////
+// DUMP REGION OBJECT CACHE //
+//////////////////////////////
+
+
+class LLAdvancedDumpRegionObjectCache : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+{
+ handle_dump_region_object_cache(NULL);
+ return true;
+ }
+};
+
+class LLAdvancedWebBrowserTest : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_web_browser_test(NULL);
+ return true;
+ }
+};
+class LLAdvancedBuyCurrencyTest : public view_listener_t
+ {
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_buy_currency_test(NULL);
+ return true;
+ }
+};
-#ifdef TOGGLE_HACKED_GODLIKE_VIEWER
- if (!LLViewerLogin::getInstance()->isInProductionGrid())
+////////////////////////
+// TOGGLE EDITABLE UI //
+////////////////////////
+
+
+class LLAdvancedToggleEditableUI : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
{
- menu->append(new LLMenuItemCheckGL("Hacked Godmode",
- &handle_toggle_hacked_godmode,
- NULL,
- &check_toggle_hacked_godmode,
- (void*)"HackedGodmode"));
+ edit_ui(NULL);
+ return true;
}
-#endif
+};
+
+
+/////////////////////
+// DUMP SELECT MGR //
+/////////////////////
- menu->append(new LLMenuItemCallGL("Clear Group Cache",
- LLGroupMgr::debugClearAllGroups));
- menu->appendSeparator();
- sub_menu = new LLMenuGL("Rendering");
- init_debug_rendering_menu(sub_menu);
- menu->appendMenu(sub_menu);
+class LLAdvancedDumpSelectMgr : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ dump_select_mgr(NULL);
+ return true;
+ }
+};
+
+
+
+////////////////////
+// DUMP INVENTORY //
+////////////////////
+
+
+class LLAdvancedDumpInventory : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ dump_inventory(NULL);
+ return true;
+ }
+};
+
+
+
+///////////////////////
+// DUMP FOCUS HOLDER //
+///////////////////////
+
+
+class LLAdvancedDumpFocusHolder : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_dump_focus(NULL);
+ return true;
+ }
+};
+
+
+
+////////////////////////////////
+// PRINT SELECTED OBJECT INFO //
+////////////////////////////////
+
+
+class LLAdvancedPrintSelectedObjectInfo : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ print_object_info(NULL);
+ return true;
+ }
+};
+
+
+
+//////////////////////
+// PRINT AGENT INFO //
+//////////////////////
+
+
+class LLAdvancedPrintAgentInfo : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ print_agent_nvpairs(NULL);
+ return true;
+ }
+};
+
+
+
+////////////////////////////////
+// PRINT TEXTURE MEMORY STATS //
+////////////////////////////////
+
+
+class LLAdvancedPrintTextureMemoryStats : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ output_statistics(NULL);
+ return true;
+ }
+};
+
+//////////////////
+// DEBUG CLICKS //
+//////////////////
+
+
+class LLAdvancedToggleDebugClicks : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ gDebugClicks = !(gDebugClicks);
+ return true;
+ }
+};
+
+class LLAdvancedCheckDebugClicks : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = gDebugClicks;
+ return new_value;
+ }
+};
- sub_menu = new LLMenuGL("World");
- init_debug_world_menu(sub_menu);
- menu->appendMenu(sub_menu);
- sub_menu = new LLMenuGL("UI");
- init_debug_ui_menu(sub_menu);
- menu->appendMenu(sub_menu);
- sub_menu = new LLMenuGL("XUI");
- init_debug_xui_menu(sub_menu);
- menu->appendMenu(sub_menu);
+/////////////////
+// DEBUG VIEWS //
+/////////////////
- sub_menu = new LLMenuGL("Character");
- init_debug_avatar_menu(sub_menu);
- menu->appendMenu(sub_menu);
+class LLAdvancedToggleDebugViews : public view_listener_t
{
- LLMenuGL* sub = NULL;
- sub = new LLMenuGL("Network");
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLView::sDebugRects = !(LLView::sDebugRects);
+ return true;
+ }
+};
- sub->append(new LLMenuItemCallGL("Enable Message Log",
- &handle_viewer_enable_message_log, NULL));
- sub->append(new LLMenuItemCallGL("Disable Message Log",
- &handle_viewer_disable_message_log, NULL));
+class LLAdvancedCheckDebugViews : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = LLView::sDebugRects;
+ return new_value;
+ }
+};
- sub->appendSeparator();
- sub->append(new LLMenuItemCheckGL("Velocity Interpolate Objects",
- &velocity_interpolate,
- NULL,
- &menu_check_control,
- (void*)"VelocityInterpolate"));
- sub->append(new LLMenuItemCheckGL("Ping Interpolate Object Positions",
- &menu_toggle_control,
- NULL,
- &menu_check_control,
- (void*)"PingInterpolate"));
- sub->appendSeparator();
+///////////////////////
+// XUI NAME TOOLTIPS //
+///////////////////////
- sub->append(new LLMenuItemCallGL("Drop a Packet",
- &drop_packet, NULL, NULL,
- 'L', MASK_ALT | MASK_CONTROL));
- menu->appendMenu( sub );
- sub->createJumpKeys();
+class LLAdvancedToggleXUINameTooltips : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ toggle_show_xui_names(NULL);
+ return true;
}
+};
+
+class LLAdvancedCheckXUINameTooltips : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
{
- LLMenuGL* sub = NULL;
- sub = new LLMenuGL("Recorder");
+ bool new_value = check_show_xui_names(NULL);
+ return new_value;
+ }
+};
- sub->append(new LLMenuItemCheckGL("Full Session Logging", &menu_toggle_control, NULL, &menu_check_control, (void*)"StatsSessionTrackFrameStats"));
- sub->append(new LLMenuItemCallGL("Start Logging", &LLFrameStats::startLogging, NULL));
- sub->append(new LLMenuItemCallGL("Stop Logging", &LLFrameStats::stopLogging, NULL));
- sub->append(new LLMenuItemCallGL("Log 10 Seconds", &LLFrameStats::timedLogging10, NULL));
- sub->append(new LLMenuItemCallGL("Log 30 Seconds", &LLFrameStats::timedLogging30, NULL));
- sub->append(new LLMenuItemCallGL("Log 60 Seconds", &LLFrameStats::timedLogging60, NULL));
- sub->appendSeparator();
- sub->append(new LLMenuItemCallGL("Start Playback", &LLAgentPilot::startPlayback, NULL));
- sub->append(new LLMenuItemCallGL("Stop Playback", &LLAgentPilot::stopPlayback, NULL));
- sub->append(new LLMenuItemToggleGL("Loop Playback", &LLAgentPilot::sLoop) );
- sub->append(new LLMenuItemCallGL("Start Record", &LLAgentPilot::startRecord, NULL));
- sub->append(new LLMenuItemCallGL("Stop Record", &LLAgentPilot::saveRecord, NULL));
- menu->appendMenu( sub );
- sub->createJumpKeys();
+////////////////////////
+// DEBUG MOUSE EVENTS //
+////////////////////////
+
+
+class LLAdvancedToggleDebugMouseEvents : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLView::sDebugMouseHandling = !(LLView::sDebugMouseHandling);
+ return true;
}
+};
+
+class LLAdvancedCheckDebugMouseEvents : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = LLView::sDebugMouseHandling;
+ return new_value;
+ }
+};
- menu->appendSeparator();
- menu->append(new LLMenuItemToggleGL("Show Updates",
- &gShowObjectUpdates));
+
+////////////////
+// DEBUG KEYS //
+////////////////
+
+
+class LLAdvancedToggleDebugKeys : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLView::sDebugKeys = !(LLView::sDebugKeys);
+ return true;
+ }
+};
- menu->appendSeparator();
+class LLAdvancedCheckDebugKeys : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = LLView::sDebugKeys;
+ return new_value;
+ }
+};
- menu->append(new LLMenuItemCallGL("Compress Images...",
- &handle_compress_image, NULL, NULL));
-
- menu->append(new LLMenuItemCheckGL("Limit Select Distance",
- &menu_toggle_control,
- NULL,
- &menu_check_control,
- (void*)"LimitSelectDistance"));
-
- menu->append(new LLMenuItemCheckGL("Disable Camera Constraints",
- &menu_toggle_control,
- NULL,
- &menu_check_control,
- (void*)"DisableCameraConstraints"));
-
- menu->append(new LLMenuItemCheckGL("Mouse Smoothing",
- &menu_toggle_control,
- NULL,
- &menu_check_control,
- (void*) "MouseSmooth"));
- menu->appendSeparator();
-
- menu->append(new LLMenuItemCheckGL( "Console Window",
- &menu_toggle_control,
- NULL,
- &menu_check_control,
- (void*)"ShowConsoleWindow"));
-
- if(gSavedSettings.getBOOL("QAMode"))
- {
- LLMenuGL* sub = NULL;
- sub = new LLMenuGL("Debugging");
-#if LL_WINDOWS
- sub->append(new LLMenuItemCallGL("Force Breakpoint", &force_error_breakpoint, NULL, NULL, 'B', MASK_CONTROL | MASK_ALT));
-#endif
- sub->append(new LLMenuItemCallGL("Force LLError And Crash", &force_error_llerror));
- sub->append(new LLMenuItemCallGL("Force Bad Memory Access", &force_error_bad_memory_access));
- sub->append(new LLMenuItemCallGL("Force Infinite Loop", &force_error_infinite_loop));
- sub->append(new LLMenuItemCallGL("Force Driver Crash", &force_error_driver_crash));
- sub->append(new LLMenuItemCallGL("Force Disconnect Viewer", &handle_disconnect_viewer));
- // *NOTE:Mani this isn't handled yet... sub->append(new LLMenuItemCallGL("Force Software Exception", &force_error_unhandled_exception));
- sub->createJumpKeys();
- menu->appendMenu(sub);
+
+
+///////////////////////
+// DEBUG WINDOW PROC //
+///////////////////////
+
+
+class LLAdvancedToggleDebugWindowProc : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ gDebugWindowProc = !(gDebugWindowProc);
+ return true;
}
+};
- menu->append(new LLMenuItemCheckGL( "Output Debug Minidump",
- &menu_toggle_control,
- NULL,
- &menu_check_control,
- (void*)"SaveMinidump"));
+class LLAdvancedCheckDebugWindowProc : public view_listener_t
+ {
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = gDebugWindowProc;
+ return new_value;
+ }
+};
- menu->append(new LLMenuItemCallGL("Debug Settings...", LLFloaterSettingsDebug::show, NULL, NULL));
- menu->append(new LLMenuItemCheckGL("View Admin Options", &handle_admin_override_toggle, NULL, &check_admin_override, NULL, 'V', MASK_CONTROL | MASK_ALT));
+// ------------------------------XUI MENU ---------------------------
- menu->append(new LLMenuItemCallGL("Request Admin Status",
- &handle_god_mode, NULL, NULL, 'G', MASK_ALT | MASK_CONTROL));
+//////////////////////
+// LOAD UI FROM XML //
+//////////////////////
- menu->append(new LLMenuItemCallGL("Leave Admin Status",
- &handle_leave_god_mode, NULL, NULL, 'G', MASK_ALT | MASK_SHIFT | MASK_CONTROL));
- menu->createJumpKeys();
+class LLAdvancedLoadUIFromXML : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_load_from_xml(NULL);
+ return true;
}
+};
+
+
+
+////////////////////
+// SAVE UI TO XML //
+////////////////////
+
-void init_debug_world_menu(LLMenuGL* menu)
+class LLAdvancedSaveUIToXML : public view_listener_t
{
-/* REMOVE mouse move sun from menu options
- menu->append(new LLMenuItemCheckGL("Mouse Moves Sun",
- &menu_toggle_control,
- NULL,
- &menu_check_control,
- (void*)"MouseSun",
- 'M', MASK_CONTROL|MASK_ALT));
-*/
- menu->append(new LLMenuItemCheckGL("Sim Sun Override",
- &menu_toggle_control,
- NULL,
- &menu_check_control,
- (void*)"SkyOverrideSimSunPosition"));
- menu->append(new LLMenuItemCallGL("Dump Scripted Camera",
- &handle_dump_followcam, NULL, NULL));
- menu->append(new LLMenuItemCheckGL("Fixed Weather",
- &menu_toggle_control,
- NULL,
- &menu_check_control,
- (void*)"FixedWeather"));
- menu->append(new LLMenuItemCallGL("Dump Region Object Cache",
- &handle_dump_region_object_cache, NULL, NULL));
- menu->createJumpKeys();
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_save_to_xml(NULL);
+ return true;
}
+};
-void handle_export_menus_to_xml(void*)
+class LLAdvancedSendTestIms : public view_listener_t
{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLIMModel::instance().testMessages();
+ return true;
+}
+};
- LLFilePicker& picker = LLFilePicker::instance();
- if(!picker.getSaveFile(LLFilePicker::FFSAVE_XML))
+class LLAdvancedAvatarInspector : public view_listener_t
+{
+ bool handleEvent(const LLSD& avatar_id)
{
- llwarns << "No file" << llendl;
- return;
+ LLFloaterReg::showInstance("inspect_avatar", avatar_id);
+ return true;
+ }
+};
+
+///////////////
+// XUI NAMES //
+///////////////
+
+
+class LLAdvancedToggleXUINames : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ toggle_show_xui_names(NULL);
+ return true;
+ }
+};
+
+class LLAdvancedCheckXUINames : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = check_show_xui_names(NULL);
+ return new_value;
}
- std::string filename = picker.getFirstFile();
+};
+
+
+////////////////////////
+// GRAB BAKED TEXTURE //
+////////////////////////
+
- llofstream out(filename);
- LLXMLNodePtr node = gMenuBarView->getXML();
- node->writeToOstream(out);
- out.close();
+class LLAdvancedGrabBakedTexture : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ std::string texture_type = userdata.asString();
+ if ("iris" == texture_type)
+ {
+ handle_grab_texture( (void*)TEX_EYES_BAKED );
+ }
+ else if ("head" == texture_type)
+ {
+ handle_grab_texture( (void*)TEX_HEAD_BAKED );
+ }
+ else if ("upper" == texture_type)
+ {
+ handle_grab_texture( (void*)TEX_UPPER_BAKED );
+ }
+ else if ("lower" == texture_type)
+ {
+ handle_grab_texture( (void*)TEX_SKIRT_BAKED );
+ }
+ else if ("skirt" == texture_type)
+ {
+ handle_grab_texture( (void*)TEX_SKIRT_BAKED );
+ }
+ else if ("hair" == texture_type)
+ {
+ handle_grab_texture( (void*)TEX_HAIR_BAKED );
}
-extern BOOL gDebugClicks;
-extern BOOL gDebugWindowProc;
-extern BOOL gDebugTextEditorTips;
-extern BOOL gDebugSelectMgr;
-
-void init_debug_ui_menu(LLMenuGL* menu)
-{
- menu->append(new LLMenuItemCheckGL("Rotate Mini-Map", menu_toggle_control, NULL, menu_check_control, (void*)"MiniMapRotate"));
- menu->append(new LLMenuItemCheckGL("Use default system color picker", menu_toggle_control, NULL, menu_check_control, (void*)"UseDefaultColorPicker"));
- menu->append(new LLMenuItemCheckGL("Show search panel in overlay bar", menu_toggle_control, NULL, menu_check_control, (void*)"ShowSearchBar"));
- menu->appendSeparator();
-
- menu->append(new LLMenuItemCallGL("Web Browser Test", &handle_web_browser_test));
- // commented out until work is complete: DEV-32268
- // menu->append(new LLMenuItemCallGL("Buy Currency Test", &handle_buy_currency_test));
- menu->append(new LLMenuItemCallGL("Editable UI", &edit_ui));
- menu->append(new LLMenuItemCallGL( "Dump SelectMgr", &dump_select_mgr));
- menu->append(new LLMenuItemCallGL( "Dump Inventory", &dump_inventory));
- menu->append(new LLMenuItemCallGL( "Dump Focus Holder", &handle_dump_focus, NULL, NULL, 'F', MASK_ALT | MASK_CONTROL));
- menu->append(new LLMenuItemCallGL( "Print Selected Object Info", &print_object_info, NULL, NULL, 'P', MASK_CONTROL|MASK_SHIFT ));
- menu->append(new LLMenuItemCallGL( "Print Agent Info", &print_agent_nvpairs, NULL, NULL, 'P', MASK_SHIFT ));
- menu->append(new LLMenuItemCallGL( "Memory Stats", &output_statistics, NULL, NULL, 'M', MASK_SHIFT | MASK_ALT | MASK_CONTROL));
- menu->append(new LLMenuItemCheckGL("Double-Click Auto-Pilot",
- menu_toggle_control, NULL, menu_check_control,
- (void*)"DoubleClickAutoPilot"));
- menu->appendSeparator();
-// menu->append(new LLMenuItemCallGL( "Print Packets Lost", &print_packets_lost, NULL, NULL, 'L', MASK_SHIFT ));
- menu->append(new LLMenuItemToggleGL("Debug SelectMgr", &gDebugSelectMgr));
- menu->append(new LLMenuItemToggleGL("Debug Clicks", &gDebugClicks));
- menu->append(new LLMenuItemToggleGL("Debug Views", &LLView::sDebugRects));
- menu->append(new LLMenuItemCheckGL("Show Name Tooltips", toggle_show_xui_names, NULL, check_show_xui_names, NULL));
- menu->append(new LLMenuItemToggleGL("Debug Mouse Events", &LLView::sDebugMouseHandling));
- menu->append(new LLMenuItemToggleGL("Debug Keys", &LLView::sDebugKeys));
- menu->append(new LLMenuItemToggleGL("Debug WindowProc", &gDebugWindowProc));
- menu->append(new LLMenuItemToggleGL("Debug Text Editor Tips", &gDebugTextEditorTips));
- menu->appendSeparator();
- menu->append(new LLMenuItemCheckGL("Show Time", menu_toggle_control, NULL, menu_check_control, (void*)"DebugShowTime"));
- menu->append(new LLMenuItemCheckGL("Show Render Info", menu_toggle_control, NULL, menu_check_control, (void*)"DebugShowRenderInfo"));
- menu->append(new LLMenuItemCheckGL("Show Matrices", menu_toggle_control, NULL, menu_check_control, (void*)"DebugShowRenderMatrices"));
- menu->append(new LLMenuItemCheckGL("Show Color Under Cursor", menu_toggle_control, NULL, menu_check_control, (void*)"DebugShowColor"));
+ return true;
+ }
+};
+
+class LLAdvancedEnableGrabBakedTexture : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+{
+ std::string texture_type = userdata.asString();
+ bool new_value = false;
+
+ if ("iris" == texture_type)
+ {
+ new_value = enable_grab_texture( (void*)TEX_EYES_BAKED );
+ }
+ else if ("head" == texture_type)
+ {
+ new_value = enable_grab_texture( (void*)TEX_HEAD_BAKED );
+ }
+ else if ("upper" == texture_type)
+ {
+ new_value = enable_grab_texture( (void*)TEX_UPPER_BAKED );
+ }
+ else if ("lower" == texture_type)
+ {
+ new_value = enable_grab_texture( (void*)TEX_LOWER_BAKED );
+ }
+ else if ("skirt" == texture_type)
+ {
+ new_value = enable_grab_texture( (void*)TEX_SKIRT_BAKED );
+ }
- menu->createJumpKeys();
+ return new_value;
}
+};
+
+///////////////////////
+// APPEARANCE TO XML //
+///////////////////////
+
-void init_debug_xui_menu(LLMenuGL* menu)
+class LLAdvancedAppearanceToXML : public view_listener_t
{
- menu->append(new LLMenuItemCallGL("Floater Test...", LLFloaterTest::show));
- menu->append(new LLMenuItemCallGL("Font Test...", LLFloaterFontTest::show));
- menu->append(new LLMenuItemCallGL("Export Menus to XML...", handle_export_menus_to_xml));
- menu->append(new LLMenuItemCallGL("Edit UI...", LLFloaterEditUI::show));
- menu->append(new LLMenuItemCallGL("Load from XML...", handle_load_from_xml));
- menu->append(new LLMenuItemCallGL("Save to XML...", handle_save_to_xml));
- menu->append(new LLMenuItemCheckGL("Show XUI Names", toggle_show_xui_names, NULL, check_show_xui_names, NULL));
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLVOAvatar::dumpArchetypeXML(NULL);
+ return true;
+ }
+};
+
+
+
+///////////////////////////////
+// TOGGLE CHARACTER GEOMETRY //
+///////////////////////////////
+
- //menu->append(new LLMenuItemCallGL("Buy Currency...", handle_buy_currency));
- menu->createJumpKeys();
+class LLAdvancedToggleCharacterGeometry : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_god_request_avatar_geometry(NULL);
+ return true;
}
+};
-void init_debug_rendering_menu(LLMenuGL* menu)
+class LLEnableGodCustomerService : public view_listener_t
{
- LLMenuGL* sub_menu = NULL;
+ bool handleEvent(const LLSD& userdata)
+{
+ bool new_value = enable_god_customer_service(NULL);
+ return new_value;
+ }
+};
+
- ///////////////////////////
- //
- // Debug menu for types/pools
- //
- sub_menu = new LLMenuGL("Types");
- menu->appendMenu(sub_menu);
-
- sub_menu->append(new LLMenuItemCheckGL("Simple",
- &LLPipeline::toggleRenderTypeControl, NULL,
- &LLPipeline::hasRenderTypeControl,
- (void*)LLPipeline::RENDER_TYPE_SIMPLE, '1', MASK_ALT|MASK_SHIFT));
- sub_menu->append(new LLMenuItemCheckGL("Alpha",
- &LLPipeline::toggleRenderTypeControl, NULL,
- &LLPipeline::hasRenderTypeControl,
- (void*)LLPipeline::RENDER_TYPE_ALPHA, '2', MASK_ALT|MASK_SHIFT));
- sub_menu->append(new LLMenuItemCheckGL("Tree",
- &LLPipeline::toggleRenderTypeControl, NULL,
- &LLPipeline::hasRenderTypeControl,
- (void*)LLPipeline::RENDER_TYPE_TREE, '3', MASK_ALT|MASK_SHIFT));
- sub_menu->append(new LLMenuItemCheckGL("Character",
- &LLPipeline::toggleRenderTypeControl, NULL,
- &LLPipeline::hasRenderTypeControl,
- (void*)LLPipeline::RENDER_TYPE_AVATAR, '4', MASK_ALT|MASK_SHIFT));
- sub_menu->append(new LLMenuItemCheckGL("SurfacePatch",
- &LLPipeline::toggleRenderTypeControl, NULL,
- &LLPipeline::hasRenderTypeControl,
- (void*)LLPipeline::RENDER_TYPE_TERRAIN, '5', MASK_ALT|MASK_SHIFT));
- sub_menu->append(new LLMenuItemCheckGL("Sky",
- &LLPipeline::toggleRenderTypeControl, NULL,
- &LLPipeline::hasRenderTypeControl,
- (void*)LLPipeline::RENDER_TYPE_SKY, '6', MASK_ALT|MASK_SHIFT));
- sub_menu->append(new LLMenuItemCheckGL("Water",
- &LLPipeline::toggleRenderTypeControl, NULL,
- &LLPipeline::hasRenderTypeControl,
- (void*)LLPipeline::RENDER_TYPE_WATER, '7', MASK_ALT|MASK_SHIFT));
- sub_menu->append(new LLMenuItemCheckGL("Ground",
- &LLPipeline::toggleRenderTypeControl, NULL,
- &LLPipeline::hasRenderTypeControl,
- (void*)LLPipeline::RENDER_TYPE_GROUND, '8', MASK_ALT|MASK_SHIFT));
- sub_menu->append(new LLMenuItemCheckGL("Volume",
- &LLPipeline::toggleRenderTypeControl, NULL,
- &LLPipeline::hasRenderTypeControl,
- (void*)LLPipeline::RENDER_TYPE_VOLUME, '9', MASK_ALT|MASK_SHIFT));
- sub_menu->append(new LLMenuItemCheckGL("Grass",
- &LLPipeline::toggleRenderTypeControl, NULL,
- &LLPipeline::hasRenderTypeControl,
- (void*)LLPipeline::RENDER_TYPE_GRASS, '0', MASK_ALT|MASK_SHIFT));
- sub_menu->append(new LLMenuItemCheckGL("Clouds",
- &LLPipeline::toggleRenderTypeControl, NULL,
- &LLPipeline::hasRenderTypeControl,
- (void*)LLPipeline::RENDER_TYPE_CLOUDS, '-', MASK_ALT|MASK_SHIFT));
- sub_menu->append(new LLMenuItemCheckGL("Particles",
- &LLPipeline::toggleRenderTypeControl, NULL,
- &LLPipeline::hasRenderTypeControl,
- (void*)LLPipeline::RENDER_TYPE_PARTICLES, '`', MASK_ALT|MASK_SHIFT));
- sub_menu->append(new LLMenuItemCheckGL("Bump",
- &LLPipeline::toggleRenderTypeControl, NULL,
- &LLPipeline::hasRenderTypeControl,
- (void*)LLPipeline::RENDER_TYPE_BUMP, '\\', MASK_ALT|MASK_SHIFT));
-
- sub_menu->createJumpKeys();
- sub_menu = new LLMenuGL("Features");
- menu->appendMenu(sub_menu);
- sub_menu->append(new LLMenuItemCheckGL("UI",
- &LLPipeline::toggleRenderDebugFeature, NULL,
- &LLPipeline::toggleRenderDebugFeatureControl,
- (void*)LLPipeline::RENDER_DEBUG_FEATURE_UI, KEY_F1, MASK_CONTROL|MASK_SHIFT));
- sub_menu->append(new LLMenuItemCheckGL("Selected",
- &LLPipeline::toggleRenderDebugFeature, NULL,
- &LLPipeline::toggleRenderDebugFeatureControl,
- (void*)LLPipeline::RENDER_DEBUG_FEATURE_SELECTED, KEY_F2, MASK_CONTROL|MASK_SHIFT));
- sub_menu->append(new LLMenuItemCheckGL("Highlighted",
- &LLPipeline::toggleRenderDebugFeature, NULL,
- &LLPipeline::toggleRenderDebugFeatureControl,
- (void*)LLPipeline::RENDER_DEBUG_FEATURE_HIGHLIGHTED, KEY_F3, MASK_CONTROL|MASK_SHIFT));
- sub_menu->append(new LLMenuItemCheckGL("Dynamic Textures",
- &LLPipeline::toggleRenderDebugFeature, NULL,
- &LLPipeline::toggleRenderDebugFeatureControl,
- (void*)LLPipeline::RENDER_DEBUG_FEATURE_DYNAMIC_TEXTURES, KEY_F4, MASK_CONTROL|MASK_SHIFT));
- sub_menu->append(new LLMenuItemCheckGL( "Foot Shadows",
- &LLPipeline::toggleRenderDebugFeature, NULL,
- &LLPipeline::toggleRenderDebugFeatureControl,
- (void*)LLPipeline::RENDER_DEBUG_FEATURE_FOOT_SHADOWS, KEY_F5, MASK_CONTROL|MASK_SHIFT));
- sub_menu->append(new LLMenuItemCheckGL("Fog",
- &LLPipeline::toggleRenderDebugFeature, NULL,
- &LLPipeline::toggleRenderDebugFeatureControl,
- (void*)LLPipeline::RENDER_DEBUG_FEATURE_FOG, KEY_F6, MASK_CONTROL|MASK_SHIFT));
- sub_menu->append(new LLMenuItemCheckGL("Test FRInfo",
- &LLPipeline::toggleRenderDebugFeature, NULL,
- &LLPipeline::toggleRenderDebugFeatureControl,
- (void*)LLPipeline::RENDER_DEBUG_FEATURE_FR_INFO, KEY_F8, MASK_CONTROL|MASK_SHIFT));
- sub_menu->append(new LLMenuItemCheckGL( "Flexible Objects",
- &LLPipeline::toggleRenderDebugFeature, NULL,
- &LLPipeline::toggleRenderDebugFeatureControl,
- (void*)LLPipeline::RENDER_DEBUG_FEATURE_FLEXIBLE, KEY_F9, MASK_CONTROL|MASK_SHIFT));
- sub_menu->createJumpKeys();
/////////////////////////////
- //
- // Debug menu for info displays
- //
- sub_menu = new LLMenuGL("Info Displays");
- menu->appendMenu(sub_menu);
-
- sub_menu->append(new LLMenuItemCheckGL("Verify", &LLPipeline::toggleRenderDebug, NULL,
- &LLPipeline::toggleRenderDebugControl,
- (void*)LLPipeline::RENDER_DEBUG_VERIFY));
- sub_menu->append(new LLMenuItemCheckGL("BBoxes", &LLPipeline::toggleRenderDebug, NULL,
- &LLPipeline::toggleRenderDebugControl,
- (void*)LLPipeline::RENDER_DEBUG_BBOXES));
- sub_menu->append(new LLMenuItemCheckGL("Points", &LLPipeline::toggleRenderDebug, NULL,
- &LLPipeline::toggleRenderDebugControl,
- (void*)LLPipeline::RENDER_DEBUG_POINTS));
- sub_menu->append(new LLMenuItemCheckGL("Octree", &LLPipeline::toggleRenderDebug, NULL,
- &LLPipeline::toggleRenderDebugControl,
- (void*)LLPipeline::RENDER_DEBUG_OCTREE));
- sub_menu->append(new LLMenuItemCheckGL("Shadow Frusta", &LLPipeline::toggleRenderDebug, NULL,
- &LLPipeline::toggleRenderDebugControl,
- (void*)LLPipeline::RENDER_DEBUG_SHADOW_FRUSTA));
- sub_menu->append(new LLMenuItemCheckGL("Occlusion", &LLPipeline::toggleRenderDebug, NULL,
- &LLPipeline::toggleRenderDebugControl,
- (void*)LLPipeline::RENDER_DEBUG_OCCLUSION));
- sub_menu->append(new LLMenuItemCheckGL("Render Batches", &LLPipeline::toggleRenderDebug, NULL,
- &LLPipeline::toggleRenderDebugControl,
- (void*)LLPipeline::RENDER_DEBUG_BATCH_SIZE));
- sub_menu->append(new LLMenuItemCheckGL("Animated Textures", &LLPipeline::toggleRenderDebug, NULL,
- &LLPipeline::toggleRenderDebugControl,
- (void*)LLPipeline::RENDER_DEBUG_TEXTURE_ANIM));
- sub_menu->append(new LLMenuItemCheckGL("Texture Priority", &LLPipeline::toggleRenderDebug, NULL,
- &LLPipeline::toggleRenderDebugControl,
- (void*)LLPipeline::RENDER_DEBUG_TEXTURE_PRIORITY));
- sub_menu->append(new LLMenuItemCheckGL("Avatar Rendering Cost", &LLPipeline::toggleRenderDebug, NULL,
- &LLPipeline::toggleRenderDebugControl,
- (void*)LLPipeline::RENDER_DEBUG_SHAME));
- sub_menu->append(new LLMenuItemCheckGL("Texture Area (sqrt(A))",&LLPipeline::toggleRenderDebug, NULL,
- &LLPipeline::toggleRenderDebugControl,
- (void*)LLPipeline::RENDER_DEBUG_TEXTURE_AREA));
- sub_menu->append(new LLMenuItemCheckGL("Face Area (sqrt(A))",&LLPipeline::toggleRenderDebug, NULL,
- &LLPipeline::toggleRenderDebugControl,
- (void*)LLPipeline::RENDER_DEBUG_FACE_AREA));
- sub_menu->append(new LLMenuItemCheckGL("Lights", &LLPipeline::toggleRenderDebug, NULL,
- &LLPipeline::toggleRenderDebugControl,
- (void*)LLPipeline::RENDER_DEBUG_LIGHTS));
- sub_menu->append(new LLMenuItemCheckGL("Particles", &LLPipeline::toggleRenderDebug, NULL,
- &LLPipeline::toggleRenderDebugControl,
- (void*)LLPipeline::RENDER_DEBUG_PARTICLES));
- sub_menu->append(new LLMenuItemCheckGL("Composition", &LLPipeline::toggleRenderDebug, NULL,
- &LLPipeline::toggleRenderDebugControl,
- (void*)LLPipeline::RENDER_DEBUG_COMPOSITION));
- sub_menu->append(new LLMenuItemCheckGL("Glow",&LLPipeline::toggleRenderDebug, NULL,
- &LLPipeline::toggleRenderDebugControl,
- (void*)LLPipeline::RENDER_DEBUG_GLOW));
- sub_menu->append(new LLMenuItemCheckGL("Raycasting", &LLPipeline::toggleRenderDebug, NULL,
- &LLPipeline::toggleRenderDebugControl,
- (void*)LLPipeline::RENDER_DEBUG_RAYCAST));
- sub_menu->append(new LLMenuItemCheckGL("Sculpt", &LLPipeline::toggleRenderDebug, NULL,
- &LLPipeline::toggleRenderDebugControl,
- (void*)LLPipeline::RENDER_DEBUG_SCULPTED));
+// TEST MALE / TEST FEMALE //
+/////////////////////////////
+
+class LLAdvancedTestMale : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_test_male(NULL);
+ return true;
+ }
+};
+
+
+class LLAdvancedTestFemale : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_test_female(NULL);
+ return true;
+ }
+};
+
+
+
+///////////////
+// TOGGLE PG //
+///////////////
+
+
+class LLAdvancedTogglePG : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_toggle_pg(NULL);
+ return true;
+ }
+};
+
+
+
+////////////////////////////
+// ALLOW TAP-TAP-HOLD RUN //
+////////////////////////////
+
+
+class LLAdvancedToggleAllowTapTapHoldRun : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ gAllowTapTapHoldRun = !(gAllowTapTapHoldRun);
+ return true;
+ }
+};
+
+class LLAdvancedCheckAllowTapTapHoldRun : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = gAllowTapTapHoldRun;
+ return new_value;
+ }
+};
+
+
+
+
+
+class LLAdvancedForceParamsToDefault : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLAgent::clearVisualParams(NULL);
+ return true;
+ }
+};
+
+
+
+//////////////////////////
+// RELOAD VERTEX SHADER //
+//////////////////////////
+
+
+class LLAdvancedReloadVertexShader : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ reload_vertex_shader(NULL);
+ return true;
+ }
+};
+
+
+
+////////////////////
+// ANIMATION INFO //
+////////////////////
+
+
+class LLAdvancedToggleAnimationInfo : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLVOAvatar::sShowAnimationDebug = !(LLVOAvatar::sShowAnimationDebug);
+ return true;
+ }
+};
+
+class LLAdvancedCheckAnimationInfo : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = LLVOAvatar::sShowAnimationDebug;
+ return new_value;
+ }
+};
+
+
+//////////////////
+// SHOW LOOK AT //
+//////////////////
+
+
+class LLAdvancedToggleShowLookAt : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLHUDEffectLookAt::sDebugLookAt = !(LLHUDEffectLookAt::sDebugLookAt);
+ return true;
+ }
+};
+
+class LLAdvancedCheckShowLookAt : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = LLHUDEffectLookAt::sDebugLookAt;
+ return new_value;
+ }
+};
+
+
+
+///////////////////
+// SHOW POINT AT //
+///////////////////
+
+
+class LLAdvancedToggleShowPointAt : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLHUDEffectPointAt::sDebugPointAt = !(LLHUDEffectPointAt::sDebugPointAt);
+ return true;
+ }
+};
+
+class LLAdvancedCheckShowPointAt : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = LLHUDEffectPointAt::sDebugPointAt;
+ return new_value;
+ }
+};
+
+
+
+/////////////////////////
+// DEBUG JOINT UPDATES //
+/////////////////////////
+
+
+class LLAdvancedToggleDebugJointUpdates : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLVOAvatar::sJointDebug = !(LLVOAvatar::sJointDebug);
+ return true;
+ }
+};
+
+class LLAdvancedCheckDebugJointUpdates : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = LLVOAvatar::sJointDebug;
+ return new_value;
+ }
+};
+
+
+
+/////////////////
+// DISABLE LOD //
+/////////////////
+
+
+class LLAdvancedToggleDisableLOD : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLViewerJoint::sDisableLOD = !(LLViewerJoint::sDisableLOD);
+ return true;
+ }
+};
- sub_menu->append(new LLMenuItemCallGL("Vectorize Perf Test", &run_vectorize_perf_test));
+class LLAdvancedCheckDisableLOD : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = LLViewerJoint::sDisableLOD;
+ return new_value;
+ }
+};
- sub_menu = new LLMenuGL("Render Tests");
- sub_menu->append(new LLMenuItemCheckGL("Camera Offset",
- &menu_toggle_control,
- NULL,
- &menu_check_control,
- (void*)"CameraOffset"));
- sub_menu->append(new LLMenuItemToggleGL("Randomize Framerate", &gRandomizeFramerate));
+/////////////////////////
+// DEBUG CHARACTER VIS //
+/////////////////////////
- sub_menu->append(new LLMenuItemToggleGL("Periodic Slow Frame", &gPeriodicSlowFrame));
- sub_menu->append(new LLMenuItemToggleGL("Frame Test", &LLPipeline::sRenderFrameTest));
+class LLAdvancedToggleDebugCharacterVis : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLVOAvatar::sDebugInvisible = !(LLVOAvatar::sDebugInvisible);
+ return true;
+ }
+};
- sub_menu->createJumpKeys();
+class LLAdvancedCheckDebugCharacterVis : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = LLVOAvatar::sDebugInvisible;
+ return new_value;
+ }
+};
- menu->appendMenu( sub_menu );
- menu->appendSeparator();
- menu->append(new LLMenuItemCheckGL("Axes", menu_toggle_control, NULL, menu_check_control, (void*)"ShowAxes"));
-// menu->append(new LLMenuItemCheckGL("Cull Small Objects", toggle_cull_small, NULL, menu_check_control, (void*)"RenderCullBySize"));
+//////////////////////
+// DUMP ATTACHMENTS //
+//////////////////////
- menu->appendSeparator();
- menu->append(new LLMenuItemToggleGL("Hide Selected", &gHideSelectedObjects));
- menu->appendSeparator();
- menu->append(new LLMenuItemCheckGL("Tangent Basis", menu_toggle_control, NULL, menu_check_control, (void*)"ShowTangentBasis"));
- menu->append(new LLMenuItemCallGL("Selected Texture Info", handle_selected_texture_info, NULL, NULL, 'T', MASK_CONTROL|MASK_SHIFT|MASK_ALT));
- //menu->append(new LLMenuItemCallGL("Dump Image List", handle_dump_image_list, NULL, NULL, 'I', MASK_CONTROL|MASK_SHIFT));
- menu->append(new LLMenuItemToggleGL("Wireframe", &gUseWireframe,
- 'R', MASK_CONTROL|MASK_SHIFT));
+class LLAdvancedDumpAttachments : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_dump_attachments(NULL);
+ return true;
+ }
+};
- LLMenuItemCheckGL* item;
- item = new LLMenuItemCheckGL("Object-Object Occlusion", menu_toggle_control, NULL, menu_check_control, (void*)"UseOcclusion", 'O', MASK_CONTROL|MASK_SHIFT);
- item->setEnabled(gGLManager.mHasOcclusionQuery && LLFeatureManager::getInstance()->isFeatureAvailable("UseOcclusion"));
- menu->append(item);
- item = new LLMenuItemCheckGL("Debug GL", menu_toggle_control, NULL, menu_check_control, (void*)"RenderDebugGL");
- menu->append(item);
- item = new LLMenuItemCheckGL("Debug Pipeline", menu_toggle_control, NULL, menu_check_control, (void*)"RenderDebugPipeline");
- menu->append(item);
+/////////////////////
+// REBAKE TEXTURES //
+/////////////////////
- item = new LLMenuItemCheckGL("Fast Alpha", menu_toggle_control, NULL, menu_check_control, (void*)"RenderFastAlpha");
- menu->append(item);
- item = new LLMenuItemCheckGL("Animate Textures", menu_toggle_control, NULL, menu_check_control, (void*)"AnimateTextures");
- menu->append(item);
+class LLAdvancedRebakeTextures : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_rebake_textures(NULL);
+ return true;
+ }
+};
- item = new LLMenuItemCheckGL("Disable Textures", menu_toggle_variable, NULL, menu_check_variable, (void*)&LLViewerImage::sDontLoadVolumeTextures);
- menu->append(item);
#ifndef LL_RELEASE_FOR_DOWNLOAD
- item = new LLMenuItemCheckGL("HTTP Get Textures", menu_toggle_control, NULL, menu_check_control, (void*)"ImagePipelineUseHTTP");
- menu->append(item);
+///////////////////////////
+// DEBUG AVATAR TEXTURES //
+///////////////////////////
+
+
+class LLAdvancedDebugAvatarTextures : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_debug_avatar_textures(NULL);
+ return true;
+ }
+};
+
+////////////////////////////////
+// DUMP AVATAR LOCAL TEXTURES //
+////////////////////////////////
+
+
+class LLAdvancedDumpAvatarLocalTextures : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_dump_avatar_local_textures(NULL);
+ return true;
+ }
+};
+
#endif
- item = new LLMenuItemCheckGL("Run Multiple Threads", menu_toggle_control, NULL, menu_check_control, (void*)"RunMultipleThreads");
- menu->append(item);
+/////////////////
+// MESSAGE LOG //
+/////////////////
+
+
+class LLAdvancedEnableMessageLog : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_viewer_enable_message_log(NULL);
+ return true;
+ }
+};
- item = new LLMenuItemCheckGL("Cheesy Beacon", menu_toggle_control, NULL, menu_check_control, (void*)"CheesyBeacon");
- menu->append(item);
+class LLAdvancedDisableMessageLog : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_viewer_disable_message_log(NULL);
+ return true;
+ }
+};
- item = new LLMenuItemCheckGL("Attached Lights", menu_toggle_attached_lights, NULL, menu_check_control, (void*)"RenderAttachedLights");
- menu->append(item);
+/////////////////
+// DROP PACKET //
+/////////////////
- item = new LLMenuItemCheckGL("Attached Particles", menu_toggle_attached_particles, NULL, menu_check_control, (void*)"RenderAttachedParticles");
- menu->append(item);
-#ifndef LL_RELEASE_FOR_DOWNLOAD
- menu->appendSeparator();
- menu->append(new LLMenuItemCallGL("Memory Leaking Simulation", LLFloaterMemLeak::show, NULL, NULL));
-#else
- if(gSavedSettings.getBOOL("QAMode"))
+class LLAdvancedDropPacket : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
{
- menu->appendSeparator();
- menu->append(new LLMenuItemCallGL("Memory Leaking Simulation", LLFloaterMemLeak::show, NULL, NULL));
+ gMessageSystem->mPacketRing.dropPackets(1);
+ return true;
}
-#endif
+};
+
+
+
+/////////////////
+// AGENT PILOT //
+/////////////////
+
+
+class LLAdvancedAgentPilot : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ std::string command = userdata.asString();
+ if ("start playback" == command)
+ {
+ LLAgentPilot::startPlayback(NULL);
+ }
+ else if ("stop playback" == command)
+ {
+ LLAgentPilot::stopPlayback(NULL);
+ }
+ else if ("start record" == command)
+ {
+ LLAgentPilot::startRecord(NULL);
+ }
+ else if ("stop record" == command)
+ {
+ LLAgentPilot::saveRecord(NULL);
+ }
+
+ return true;
+ }
+};
+
+
+
+//////////////////////
+// AGENT PILOT LOOP //
+//////////////////////
+
+
+class LLAdvancedToggleAgentPilotLoop : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLAgentPilot::sLoop = !(LLAgentPilot::sLoop);
+ return true;
+ }
+};
+
+class LLAdvancedCheckAgentPilotLoop : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = LLAgentPilot::sLoop;
+ return new_value;
+ }
+};
+
+
+/////////////////////////
+// SHOW OBJECT UPDATES //
+/////////////////////////
+
+
+class LLAdvancedToggleShowObjectUpdates : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ gShowObjectUpdates = !(gShowObjectUpdates);
+ return true;
+ }
+};
+
+class LLAdvancedCheckShowObjectUpdates : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = gShowObjectUpdates;
+ return new_value;
+ }
+};
+
+
+
+////////////////////
+// COMPRESS IMAGE //
+////////////////////
+
+
+class LLAdvancedCompressImage : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_compress_image(NULL);
+ return true;
+ }
+};
+
+
+
+/////////////////////////
+// SHOW DEBUG SETTINGS //
+/////////////////////////
+
+
+class LLAdvancedShowDebugSettings : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLFloaterReg::showInstance("settings_debug",userdata);
+ return true;
+ }
+};
+
+
+
+////////////////////////
+// VIEW ADMIN OPTIONS //
+////////////////////////
+
+
+class LLAdvancedToggleViewAdminOptions : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_admin_override_toggle(NULL);
+ return true;
+ }
+};
+
+class LLAdvancedCheckViewAdminOptions : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = check_admin_override(NULL);
+ return new_value;
+ }
+};
+
+/////////////////////////////////////
+// Enable Object Object Occlusion ///
+/////////////////////////////////////
+class LLAdvancedEnableObjectObjectOcclusion: public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
- menu->createJumpKeys();
-}
-
-void init_debug_avatar_menu(LLMenuGL* menu)
-{
- LLMenuGL* sub_menu = new LLMenuGL("Grab Baked Texture");
- init_debug_baked_texture_menu(sub_menu);
- menu->appendMenu(sub_menu);
-
- sub_menu = new LLMenuGL("Character Tests");
- sub_menu->append(new LLMenuItemCheckGL("Go Away/AFK When Idle",
- menu_toggle_control,
- NULL,
- menu_check_control,
- (void*)"AllowIdleAFK"));
-
- sub_menu->append(new LLMenuItemCallGL("Appearance To XML",
- &LLVOAvatar::dumpArchetypeXML));
-
- // HACK for easy testing of avatar geometry
- sub_menu->append(new LLMenuItemCallGL( "Toggle Character Geometry",
- &handle_god_request_avatar_geometry, &enable_god_customer_service, NULL));
-
- sub_menu->append(new LLMenuItemCallGL("Test Male",
- handle_test_male));
-
- sub_menu->append(new LLMenuItemCallGL("Test Female",
- handle_test_female));
-
- sub_menu->append(new LLMenuItemCallGL("Toggle PG", handle_toggle_pg));
-
- sub_menu->append(new LLMenuItemToggleGL("Allow Select Avatar", &gAllowSelectAvatar));
- sub_menu->createJumpKeys();
-
- menu->appendMenu(sub_menu);
-
- menu->append(new LLMenuItemCheckGL("Enable Lip Sync (Beta)", menu_toggle_control, NULL, menu_check_control, (void*)"LipSyncEnabled"));
- menu->append(new LLMenuItemToggleGL("Tap-Tap-Hold To Run", &gAllowTapTapHoldRun));
- menu->append(new LLMenuItemCallGL("Force Params to Default", &LLAgent::clearVisualParams, NULL));
- menu->append(new LLMenuItemCallGL("Reload Vertex Shader", &reload_vertex_shader, NULL));
- menu->append(new LLMenuItemToggleGL("Animation Info", &LLVOAvatar::sShowAnimationDebug));
- menu->append(new LLMenuItemCallGL("Slow Motion Animations", &slow_mo_animations, NULL));
- menu->append(new LLMenuItemToggleGL("Show Look At", &LLHUDEffectLookAt::sDebugLookAt));
- menu->append(new LLMenuItemToggleGL("Show Point At", &LLHUDEffectPointAt::sDebugPointAt));
- menu->append(new LLMenuItemToggleGL("Debug Joint Updates", &LLVOAvatar::sJointDebug));
- menu->append(new LLMenuItemToggleGL("Disable LOD", &LLViewerJoint::sDisableLOD));
- menu->append(new LLMenuItemToggleGL("Debug Character Vis", &LLVOAvatar::sDebugInvisible));
- //menu->append(new LLMenuItemToggleGL("Show Attachment Points", &LLVOAvatar::sShowAttachmentPoints));
- //diabling collision plane due to DEV-14477 -brad
- //menu->append(new LLMenuItemToggleGL("Show Collision Plane", &LLVOAvatar::sShowFootPlane));
- menu->append(new LLMenuItemCheckGL("Show Collision Skeleton",
- &LLPipeline::toggleRenderDebug, NULL,
- &LLPipeline::toggleRenderDebugControl,
- (void*)LLPipeline::RENDER_DEBUG_AVATAR_VOLUME));
- menu->append(new LLMenuItemCheckGL("Display Agent Target",
- &LLPipeline::toggleRenderDebug, NULL,
- &LLPipeline::toggleRenderDebugControl,
- (void*)LLPipeline::RENDER_DEBUG_AGENT_TARGET));
- menu->append(new LLMenuItemToggleGL( "Debug Rotation", &LLVOAvatar::sDebugAvatarRotation));
- menu->append(new LLMenuItemCallGL("Dump Attachments", handle_dump_attachments));
- menu->append(new LLMenuItemCallGL("Rebake Textures", handle_rebake_textures, NULL, NULL, 'R', MASK_ALT | MASK_CONTROL ));
-#ifndef LL_RELEASE_FOR_DOWNLOAD
- menu->append(new LLMenuItemCallGL("Debug Avatar Textures", handle_debug_avatar_textures, NULL, NULL, 'A', MASK_SHIFT|MASK_CONTROL|MASK_ALT));
- menu->append(new LLMenuItemCallGL("Dump Local Textures", handle_dump_avatar_local_textures, NULL, NULL, 'M', MASK_SHIFT|MASK_ALT ));
-#endif
- menu->createJumpKeys();
+ bool new_value = gGLManager.mHasOcclusionQuery && LLFeatureManager::getInstance()->isFeatureAvailable(userdata.asString());
+ return new_value;
}
+};
+
+
+
+//////////////////
+// ADMIN STATUS //
+//////////////////
+
+
+class LLAdvancedRequestAdminStatus : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_god_mode(NULL);
+ return true;
+ }
+};
+
+class LLAdvancedLeaveAdminStatus : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_leave_god_mode(NULL);
+ return true;
+ }
+};
+
+//////////////////////////
+// Advanced > Debugging //
+//////////////////////////
+
+
+class LLAdvancedForceErrorBreakpoint : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ force_error_breakpoint(NULL);
+ return true;
+ }
+};
+
+class LLAdvancedForceErrorLlerror : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ force_error_llerror(NULL);
+ return true;
+ }
+};
+class LLAdvancedForceErrorBadMemoryAccess : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ force_error_bad_memory_access(NULL);
+ return true;
+ }
+};
+
+class LLAdvancedForceErrorInfiniteLoop : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ force_error_infinite_loop(NULL);
+ return true;
+ }
+};
+
+class LLAdvancedForceErrorSoftwareException : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ force_error_software_exception(NULL);
+ return true;
+ }
+};
-void init_debug_baked_texture_menu(LLMenuGL* menu)
+class LLAdvancedForceErrorDriverCrash : public view_listener_t
{
- menu->append(new LLMenuItemCallGL("Iris", handle_grab_texture, enable_grab_texture, (void*) TEX_EYES_BAKED));
- menu->append(new LLMenuItemCallGL("Head", handle_grab_texture, enable_grab_texture, (void*) TEX_HEAD_BAKED));
- menu->append(new LLMenuItemCallGL("Upper Body", handle_grab_texture, enable_grab_texture, (void*) TEX_UPPER_BAKED));
- menu->append(new LLMenuItemCallGL("Lower Body", handle_grab_texture, enable_grab_texture, (void*) TEX_LOWER_BAKED));
- menu->append(new LLMenuItemCallGL("Skirt", handle_grab_texture, enable_grab_texture, (void*) TEX_SKIRT_BAKED));
- menu->append(new LLMenuItemCallGL("Hair", handle_grab_texture, enable_grab_texture, (void*) TEX_HAIR_BAKED));
- menu->createJumpKeys();
+ bool handleEvent(const LLSD& userdata)
+ {
+ force_error_driver_crash(NULL);
+ return true;
+ }
+};
+
+class LLAdvancedForceErrorDisconnectViewer : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_disconnect_viewer(NULL);
+ return true;
}
+};
+
-void init_server_menu(LLMenuGL* menu)
+#ifdef TOGGLE_HACKED_GODLIKE_VIEWER
+
+class LLAdvancedHandleToggleHackedGodmode : public view_listener_t
{
+ bool handleEvent(const LLSD& userdata)
{
- LLMenuGL* sub = new LLMenuGL("Object");
- menu->appendMenu(sub);
+ handle_toggle_hacked_godmode(NULL);
+ return true;
+ }
+};
- sub->append(new LLMenuItemCallGL( "Take Copy",
- &force_take_copy, &enable_god_customer_service, NULL,
- 'O', MASK_SHIFT | MASK_ALT | MASK_CONTROL));
-#ifdef _CORY_TESTING
- sub->append(new LLMenuItemCallGL( "Export Copy",
- &force_export_copy, NULL, NULL));
- sub->append(new LLMenuItemCallGL( "Import Geometry",
- &force_import_geometry, NULL, NULL));
+class LLAdvancedCheckToggleHackedGodmode : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ check_toggle_hacked_godmode(NULL);
+ return true;
+ }
+};
+
+class LLAdvancedEnableToggleHackedGodmode : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = enable_toggle_hacked_godmode(NULL);
+ return new_value;
+ }
+};
#endif
- //sub->append(new LLMenuItemCallGL( "Force Public",
- // &handle_object_owner_none, NULL, NULL));
- //sub->append(new LLMenuItemCallGL( "Force Ownership/Permissive",
- // &handle_object_owner_self_and_permissive, NULL, NULL, 'K', MASK_SHIFT | MASK_ALT | MASK_CONTROL));
- sub->append(new LLMenuItemCallGL( "Force Owner To Me",
- &handle_object_owner_self, &enable_god_customer_service));
- sub->append(new LLMenuItemCallGL( "Force Owner Permissive",
- &handle_object_owner_permissive, &enable_god_customer_service));
- //sub->append(new LLMenuItemCallGL( "Force Totally Permissive",
- // &handle_object_permissive));
- sub->append(new LLMenuItemCallGL( "Delete",
- &handle_force_delete, &enable_god_customer_service, NULL, KEY_DELETE, MASK_SHIFT | MASK_ALT | MASK_CONTROL));
- sub->append(new LLMenuItemCallGL( "Lock",
- &handle_object_lock, &enable_god_customer_service, NULL, 'L', MASK_SHIFT | MASK_ALT | MASK_CONTROL));
- sub->append(new LLMenuItemCallGL( "Get Asset IDs",
- &handle_object_asset_ids, &enable_god_customer_service, NULL, 'I', MASK_SHIFT | MASK_ALT | MASK_CONTROL));
- sub->createJumpKeys();
- }
- {
- LLMenuGL* sub = new LLMenuGL("Parcel");
- menu->appendMenu(sub);
-
- sub->append(new LLMenuItemCallGL("Owner To Me",
- &handle_force_parcel_owner_to_me,
- &enable_god_customer_service, NULL));
- sub->append(new LLMenuItemCallGL("Set to Linden Content",
- &handle_force_parcel_to_content,
- &enable_god_customer_service, NULL,
- 'C', MASK_SHIFT | MASK_ALT | MASK_CONTROL));
- sub->appendSeparator();
- sub->append(new LLMenuItemCallGL("Claim Public Land",
- &handle_claim_public_land, &enable_god_customer_service));
-
- sub->createJumpKeys();
- }
- {
- LLMenuGL* sub = new LLMenuGL("Region");
- menu->appendMenu(sub);
- sub->append(new LLMenuItemCallGL("Dump Temp Asset Data",
- &handle_region_dump_temp_asset_data,
- &enable_god_customer_service, NULL));
- sub->createJumpKeys();
+
+
+//
+////-------------------------------------------------------------------
+//// Advanced menu
+////-------------------------------------------------------------------
+
+//////////////////
+// ADMIN MENU //
+//////////////////
+
+// Admin > Object
+class LLAdminForceTakeCopy : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ force_take_copy(NULL);
+ return true;
+ }
+};
+
+class LLAdminHandleObjectOwnerSelf : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_object_owner_self(NULL);
+ return true;
+ }
+};
+class LLAdminHandleObjectOwnerPermissive : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_object_owner_permissive(NULL);
+ return true;
+ }
+};
+
+class LLAdminHandleForceDelete : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_force_delete(NULL);
+ return true;
+ }
+};
+
+class LLAdminHandleObjectLock : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_object_lock(NULL);
+ return true;
+ }
+};
+
+class LLAdminHandleObjectAssetIDs: public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_object_asset_ids(NULL);
+ return true;
}
- menu->append(new LLMenuItemCallGL( "God Tools...",
- &LLFloaterGodTools::show, &enable_god_basic, NULL));
+};
- menu->appendSeparator();
+//Admin >Parcel
+class LLAdminHandleForceParcelOwnerToMe: public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_force_parcel_owner_to_me(NULL);
+ return true;
+ }
+};
+class LLAdminHandleForceParcelToContent: public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_force_parcel_to_content(NULL);
+ return true;
+ }
+};
+class LLAdminHandleClaimPublicLand: public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_claim_public_land(NULL);
+ return true;
+ }
+};
- menu->append(new LLMenuItemCallGL("Save Region State",
- &LLPanelRegionTools::onSaveState, &enable_god_customer_service, NULL));
+// Admin > Region
+class LLAdminHandleRegionDumpTempAssetData: public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ handle_region_dump_temp_asset_data(NULL);
+ return true;
+ }
+};
+//Admin (Top Level)
-// menu->append(new LLMenuItemCallGL("Force Join Group", handle_force_join_group));
-//
-// menu->appendSeparator();
-//
-// menu->append(new LLMenuItemCallGL( "OverlayTitle",
-// &handle_show_overlay_title, &enable_god_customer_service, NULL));
- menu->createJumpKeys();
+class LLAdminOnSaveState: public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLPanelRegionTools::onSaveState(NULL);
+ return true;
}
+};
-static std::vector<LLPointer<view_listener_t> > sMenus;
//-----------------------------------------------------------------------------
// cleanup_menus()
@@ -1513,8 +2421,6 @@ void cleanup_menus()
delete gMenuHolder;
gMenuHolder = NULL;
-
- sMenus.clear();
}
//-----------------------------------------------------------------------------
@@ -1523,7 +2429,7 @@ void cleanup_menus()
class LLObjectReportAbuse : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLViewerObject* objectp = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
if (objectp)
@@ -1537,17 +2443,16 @@ class LLObjectReportAbuse : public view_listener_t
// Enabled it you clicked an object
class LLObjectEnableReportAbuse : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = LLSelectMgr::getInstance()->getSelection()->getObjectCount() != 0;
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLObjectTouch : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
if (!object) return true;
@@ -1598,45 +2503,42 @@ class LLObjectTouch : public view_listener_t
// One object must have touch sensor
class LLObjectEnableTouch : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLViewerObject* obj = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
bool new_value = obj && obj->flagHandleTouch();
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
// Update label based on the node touch name if available.
- LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstRootNode();
-
std::string touch_text;
+ LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstRootNode();
if (node && node->mValid && !node->mTouchName.empty())
{
- touch_text = node->mTouchName;
+ touch_text = node->mTouchName;
}
else
{
- touch_text = userdata["data"].asString();
+ touch_text = userdata.asString();
}
-
gMenuHolder->childSetText("Object Touch", touch_text);
gMenuHolder->childSetText("Attachment Object Touch", touch_text);
- return true;
+ return new_value;
}
};
-void label_touch(std::string& label, void*)
-{
- LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstRootNode();
- if (node && node->mValid && !node->mTouchName.empty())
- {
- label.assign(node->mTouchName);
- }
- else
- {
- label.assign("Touch");
- }
-}
-
+//void label_touch(std::string& label, void*)
+//{
+// LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstRootNode();
+// if (node && node->mValid && !node->mTouchName.empty())
+// {
+// label.assign(node->mTouchName);
+// }
+// else
+// {
+// label.assign("Touch");
+// }
+//}
+/*
bool handle_object_open()
{
LLViewerObject* obj = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
@@ -1648,15 +2550,15 @@ bool handle_object_open()
class LLObjectOpen : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
return handle_object_open();
}
};
-
+*/
class LLObjectEnableOpen : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
// Look for contents in root object, which is all the LLFloaterOpenObject
// understands.
@@ -1668,96 +2570,14 @@ class LLObjectEnableOpen : public view_listener_t
if (!root) new_value = false;
else new_value = root->allowOpen();
}
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
- }
-};
-
-
-class LLViewCheckBuildMode : public view_listener_t
-{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
- {
- bool new_value = LLToolMgr::getInstance()->inEdit();
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
- }
-};
-
-bool toggle_build_mode()
-{
- if (LLToolMgr::getInstance()->inBuildMode())
- {
- if (gSavedSettings.getBOOL("EditCameraMovement"))
- {
- // just reset the view, will pull us out of edit mode
- handle_reset_view();
- }
- else
- {
- // manually disable edit mode, but do not affect the camera
- gAgent.resetView(false);
- gFloaterTools->close();
- gViewerWindow->showCursor();
- }
- // avoid spurious avatar movements pulling out of edit mode
- LLViewerJoystick::getInstance()->setNeedsReset();
- }
- else
- {
- ECameraMode camMode = gAgent.getCameraMode();
- if (CAMERA_MODE_MOUSELOOK == camMode || CAMERA_MODE_CUSTOMIZE_AVATAR == camMode)
- {
- // pull the user out of mouselook or appearance mode when entering build mode
- handle_reset_view();
- }
-
- if (gSavedSettings.getBOOL("EditCameraMovement"))
- {
- // camera should be set
- if (LLViewerJoystick::getInstance()->getOverrideCamera())
- {
- handle_toggle_flycam();
- }
-
- if (gAgent.getFocusOnAvatar())
- {
- // zoom in if we're looking at the avatar
- gAgent.setFocusOnAvatar(FALSE, ANIMATE);
- gAgent.setFocusGlobal(gAgent.getPositionGlobal() + 2.0 * LLVector3d(gAgent.getAtAxis()));
- gAgent.cameraZoomIn(0.666f);
- gAgent.cameraOrbitOver( 30.f * DEG_TO_RAD );
- }
- }
-
-
- LLToolMgr::getInstance()->setCurrentToolset(gBasicToolset);
- LLToolMgr::getInstance()->getCurrentToolset()->selectTool( LLToolCompCreate::getInstance() );
-
- // Could be first use
- LLFirstUse::useBuild();
-
- gAgent.resetView(false);
-
- // avoid spurious avatar movements
- LLViewerJoystick::getInstance()->setNeedsReset();
-
- }
- return true;
-}
-
-class LLViewBuildMode : public view_listener_t
-{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
- {
- return toggle_build_mode();
+ return new_value;
}
};
class LLViewJoystickFlycam : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
handle_toggle_flycam();
return true;
@@ -1766,31 +2586,13 @@ class LLViewJoystickFlycam : public view_listener_t
class LLViewCheckJoystickFlycam : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
- {
- bool new_val = LLViewerJoystick::getInstance()->getOverrideCamera();
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_val);
- return true;
- }
-};
-
-class LLViewCommunicate : public view_listener_t
-{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
- {
- if (LLFloaterChatterBox::getInstance()->getFloaterCount() == 0)
- {
- LLFloaterMyFriends::toggleInstance();
- }
- else
+ bool handleEvent(const LLSD& userdata)
{
- LLFloaterChatterBox::toggleInstance();
- }
- return true;
+ bool new_value = LLViewerJoystick::getInstance()->getOverrideCamera();
+ return new_value;
}
};
-
void handle_toggle_flycam()
{
LLViewerJoystick::getInstance()->toggleFlycam();
@@ -1798,7 +2600,7 @@ void handle_toggle_flycam()
class LLObjectBuild : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
if (gAgent.getFocusOnAvatar() && !LLToolMgr::getInstance()->inEdit() && gSavedSettings.getBOOL("EditCameraMovement") )
{
@@ -1826,7 +2628,7 @@ class LLObjectBuild : public view_listener_t
class LLObjectEdit : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLViewerParcelMgr::getInstance()->deselectLand();
@@ -1856,7 +2658,7 @@ class LLObjectEdit : public view_listener_t
}
}
- gFloaterTools->open(); /* Flawfinder: ignore */
+ LLFloaterReg::showInstance("build");
LLToolMgr::getInstance()->setCurrentToolset(gBasicToolset);
gFloaterTools->setEditTool( LLToolCompTranslate::getInstance() );
@@ -1870,22 +2672,12 @@ class LLObjectEdit : public view_listener_t
}
};
-class LLObjectInspect : public view_listener_t
-{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
- {
- LLFloaterInspect::show();
- return true;
- }
-};
-
-
//---------------------------------------------------------------------------
// Land pie menu
//---------------------------------------------------------------------------
class LLLandBuild : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLViewerParcelMgr::getInstance()->deselectLand();
@@ -1917,7 +2709,7 @@ class LLLandBuild : public view_listener_t
class LLLandBuyPass : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLPanelLandGeneral::onClickBuyPass((void *)FALSE);
return true;
@@ -1926,11 +2718,10 @@ class LLLandBuyPass : public view_listener_t
class LLLandEnableBuyPass : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = LLPanelLandGeneral::enableBuyPass(NULL);
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
@@ -1966,7 +2757,7 @@ BOOL enable_object_build(void*)
class LLEnableEdit : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
// *HACK: The new "prelude" Help Islands have a build sandbox area,
// so users need the Edit and Create pie menu options when they are
@@ -1979,23 +2770,22 @@ class LLEnableEdit : public view_listener_t
enable = LLViewerParcelMgr::getInstance()->agentCanBuild()
|| LLSelectMgr::getInstance()->getSelection()->isAttachment();
}
- gMenuHolder->findControl(userdata["control"].asString())->setValue(enable);
- return true;
+ return enable;
}
};
class LLSelfRemoveAllAttachments : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
- LLAgent::userRemoveAllAttachments(NULL);
+ LLAgentWearables::userRemoveAllAttachments(NULL);
return true;
}
};
class LLSelfEnableRemoveAllAttachments : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = false;
if (gAgent.getAvatarObject())
@@ -2013,8 +2803,7 @@ class LLSelfEnableRemoveAllAttachments : public view_listener_t
}
}
}
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
@@ -2027,19 +2816,19 @@ BOOL enable_has_attachments(void*)
//---------------------------------------------------------------------------
// Avatar pie menu
//---------------------------------------------------------------------------
-void handle_follow(void *userdata)
-{
- // follow a given avatar by ID
- LLViewerObject* objectp = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
- if (objectp)
- {
- gAgent.startFollowPilot(objectp->getID());
- }
-}
+//void handle_follow(void *userdata)
+//{
+// // follow a given avatar by ID
+// LLViewerObject* objectp = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
+// if (objectp)
+// {
+// gAgent.startFollowPilot(objectp->getID());
+// }
+//}
class LLObjectEnableMute : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
bool new_value = (object != NULL);
@@ -2055,14 +2844,13 @@ class LLObjectEnableMute : public view_listener_t
new_value = !is_linden && !is_self;
}
}
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLObjectMute : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
if (!object) return true;
@@ -2108,7 +2896,7 @@ class LLObjectMute : public view_listener_t
else
{
LLMuteList::getInstance()->add(mute);
- LLFloaterMute::showInstance();
+ LLPanelBlockedList::showPanelAndSelect(mute.mID);
}
return true;
@@ -2148,12 +2936,26 @@ bool handle_go_to()
class LLGoToObject : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
return handle_go_to();
}
};
+class LLAvatarReportAbuse : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() );
+ if(avatar)
+ {
+ LLFloaterReporter::showFromObject(avatar->getID());
+ }
+ return true;
+ }
+};
+
+
//---------------------------------------------------------------------------
// Parcel freeze, eject, etc.
//---------------------------------------------------------------------------
@@ -2192,7 +2994,7 @@ bool callback_freeze(const LLSD& notification, const LLSD& response)
class LLAvatarFreeze : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() );
if( avatar )
@@ -2224,38 +3026,37 @@ class LLAvatarFreeze : public view_listener_t
class LLAvatarVisibleDebug : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
- bool new_value = gAgent.isGodlike();
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return gAgent.isGodlike();
}
};
class LLAvatarEnableDebug : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
- bool new_value = gAgent.isGodlike();
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return gAgent.isGodlike();
}
};
class LLAvatarDebug : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() );
if( avatar )
{
- avatar->dumpLocalTextures();
+ if (avatar->isSelf())
+ {
+ ((LLVOAvatarSelf *)avatar)->dumpLocalTextures();
+ }
llinfos << "Dumping temporary asset data to simulator logs for avatar " << avatar->getID() << llendl;
std::vector<std::string> strings;
strings.push_back(avatar->getID().asString());
LLUUID invoice;
send_generic_message("dumptempassetdata", strings, invoice);
- LLFloaterAvatarTextures::show( avatar->getID() );
+ LLFloaterReg::showInstance( "avatar_tetures", LLSD(avatar->getID()) );
}
return true;
}
@@ -2317,7 +3118,7 @@ bool callback_eject(const LLSD& notification, const LLSD& response)
class LLAvatarEject : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() );
if( avatar )
@@ -2376,7 +3177,7 @@ class LLAvatarEject : public view_listener_t
class LLAvatarEnableFreezeEject : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() );
bool new_value = (avatar != NULL);
@@ -2399,14 +3200,13 @@ class LLAvatarEnableFreezeEject : public view_listener_t
}
}
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLAvatarGiveCard : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
llinfos << "handle_give_card()" << llendl;
LLViewerObject* dest = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
@@ -2461,7 +3261,7 @@ void login_done(S32 which, void *user)
{
llinfos << "Login done " << which << llendl;
- LLPanelLogin::close();
+ LLPanelLogin::closePanel();
}
@@ -2477,22 +3277,12 @@ bool callback_leave_group(const LLSD& notification, const LLSD& response)
msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
msg->nextBlockFast(_PREHASH_GroupData);
- msg->addUUIDFast(_PREHASH_GroupID, gAgent.mGroupID );
+ msg->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupID() );
gAgent.sendReliableMessage();
}
return false;
}
-void handle_leave_group(void *)
-{
- if (gAgent.getGroupID() != LLUUID::null)
- {
- LLSD args;
- args["GROUP"] = gAgent.mGroupName;
- LLNotifications::instance().add("GroupLeaveConfirmMember", args, LLSD(), callback_leave_group);
- }
-}
-
void append_aggregate(std::string& string, const LLAggregatePermissions& ag_perm, PermissionBit bit, const char* txt)
{
LLAggregatePermissions::EValue val = ag_perm.getValue(bit);
@@ -2538,11 +3328,10 @@ BOOL enable_buy(void*)
class LLObjectEnableBuy : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = enable_buy(NULL);
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
@@ -2624,18 +3413,9 @@ void handle_region_dump_settings(void*)
}
}
-void handle_show_notifications_console(void *)
-{
- LLFloaterNotificationConsole::showInstance();
-}
-
void handle_dump_group_info(void *)
{
- llinfos << "group " << gAgent.mGroupName << llendl;
- llinfos << "ID " << gAgent.mGroupID << llendl;
- llinfos << "powers " << gAgent.mGroupPowers << llendl;
- llinfos << "title " << gAgent.mGroupTitle << llendl;
- //llinfos << "insig " << gAgent.mGroupInsigniaID << llendl;
+ gAgent.dumpGroupInfo();
}
void handle_dump_capabilities_info(void *)
@@ -2665,19 +3445,43 @@ void handle_dump_focus(void *)
class LLSelfStandUp : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
- gAgent.setControlFlags(AGENT_CONTROL_STAND_UP);
+ gAgent.standUp();
return true;
}
};
class LLSelfEnableStandUp : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = gAgent.getAvatarObject() && gAgent.getAvatarObject()->isSitting();
+ return new_value;
+ }
+};
+
+class LLSelfFriends : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ // Open "Friends" tab of the "People" panel in side tray.
+ LLSD param;
+ param["people_panel_tab_name"] = "friends_panel";
+
+ LLSideTray::getInstance()->showPanel("panel_people", param);
+ return true;
+ }
+};
+
+class LLSelfGroups : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
{
- bool new_value = gAgent.getAvatarObject() && gAgent.getAvatarObject()->mIsSitting;
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
+ // Open "Groups" tab of the "People" panel in side tray.
+ LLSD param;
+ param["people_panel_tab_name"] = "groups_panel";
+ LLSideTray::getInstance()->showPanel("panel_people", param);
return true;
}
};
@@ -2740,7 +3544,6 @@ void set_god_level(U8 god_level)
LLNotifications::instance().add("LeavingGodMode", args);
}
-
// changing god-level can affect which menus we see
show_debug_menus();
}
@@ -2756,6 +3559,11 @@ BOOL check_toggle_hacked_godmode(void*)
{
return gHackGodmode;
}
+
+bool enable_toggle_hacked_godmode(void*)
+{
+ return !LLViewerLogin::getInstance()->isInProductionGrid();
+}
#endif
void process_grant_godlike_powers(LLMessageSystem* msg, void**)
@@ -2811,48 +3619,23 @@ bool LLHaveCallingcard::operator()(LLInventoryCategory* cat,
}
*/
-BOOL is_agent_friend(const LLUUID& agent_id)
-{
- return (LLAvatarTracker::instance().getBuddyInfo(agent_id) != NULL);
-}
-
BOOL is_agent_mappable(const LLUUID& agent_id)
{
- return (is_agent_friend(agent_id) &&
+ return (LLAvatarActions::isFriend(agent_id) &&
LLAvatarTracker::instance().getBuddyInfo(agent_id)->isOnline() &&
LLAvatarTracker::instance().getBuddyInfo(agent_id)->isRightGrantedFrom(LLRelationship::GRANT_MAP_LOCATION)
);
}
-// Enable a menu item when you have someone's card.
-/*
-BOOL enable_have_card(void *userdata)
-{
- LLUUID* avatar_id = (LLUUID *)userdata;
- if (gAgent.isGodlike())
- {
- return TRUE;
- }
- else if(avatar_id)
- {
- return is_agent_friend(*avatar_id);
- }
- else
- {
- return FALSE;
- }
-}
-*/
// Enable a menu item when you don't have someone's card.
class LLAvatarEnableAddFriend : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLVOAvatar* avatar = find_avatar_from_object(LLSelectMgr::getInstance()->getSelection()->getPrimaryObject());
- bool new_value = avatar && !is_agent_friend(avatar->getID());
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ bool new_value = avatar && !LLAvatarActions::isFriend(avatar->getID());
+ return new_value;
}
};
@@ -2875,7 +3658,7 @@ void request_friendship(const LLUUID& dest_id)
}
if (!fullname.empty())
{
- LLPanelFriends::requestFriendshipDialog(dest_id, fullname);
+ LLAvatarActions::requestFriendshipDialog(dest_id, fullname);
}
else
{
@@ -2887,13 +3670,10 @@ void request_friendship(const LLUUID& dest_id)
class LLEditEnableCustomizeAvatar : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
- bool new_value = (gAgent.getAvatarObject() &&
- gAgent.getAvatarObject()->isFullyLoaded() &&
- gAgent.areWearablesLoaded());
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ bool new_value = gAgentWearables.areWearablesLoaded();
+ return new_value;
}
};
@@ -2909,7 +3689,7 @@ bool handle_sit_or_stand()
if (sitting_on_selection())
{
- gAgent.setControlFlags(AGENT_CONTROL_STAND_UP);
+ gAgent.standUp();
return true;
}
@@ -2917,6 +3697,7 @@ bool handle_sit_or_stand()
if (object && object->getPCode() == LL_PCODE_VOLUME)
{
+
gMessageSystem->newMessageFast(_PREHASH_AgentRequestSit);
gMessageSystem->nextBlockFast(_PREHASH_AgentData);
gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
@@ -2932,7 +3713,7 @@ bool handle_sit_or_stand()
class LLObjectSitOrStand : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
return handle_sit_or_stand();
}
@@ -2952,9 +3733,9 @@ void near_sit_down_point(BOOL success, void *)
class LLLandSit : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
- gAgent.setControlFlags(AGENT_CONTROL_STAND_UP);
+ gAgent.standUp();
LLViewerParcelMgr::getInstance()->deselectLand();
LLVector3d posGlobal = LLToolPie::getInstance()->getPick().mPosGlobal;
@@ -2973,137 +3754,6 @@ class LLLandSit : public view_listener_t
}
};
-void show_permissions_control(void*)
-{
- LLFloaterPermissionsMgr* floaterp = LLFloaterPermissionsMgr::show();
- floaterp->mPermissions->addPermissionsData("foo1", LLUUID::null, 0);
- floaterp->mPermissions->addPermissionsData("foo2", LLUUID::null, 0);
- floaterp->mPermissions->addPermissionsData("foo3", LLUUID::null, 0);
-}
-
-
-class LLCreateLandmarkCallback : public LLInventoryCallback
-{
-public:
- /*virtual*/ void fire(const LLUUID& inv_item)
- {
- llinfos << "Created landmark with inventory id " << inv_item
- << llendl;
- }
-};
-
-void reload_ui(void *)
-{
- LLUICtrlFactory::getInstance()->rebuild();
-}
-
-class LLWorldFly : public view_listener_t
-{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
- {
- gAgent.toggleFlying();
- return true;
- }
-};
-
-class LLWorldEnableFly : public view_listener_t
-{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
- {
- BOOL sitting = FALSE;
- if (gAgent.getAvatarObject())
- {
- sitting = gAgent.getAvatarObject()->mIsSitting;
- }
- gMenuHolder->findControl(userdata["control"].asString())->setValue(!sitting);
- return true;
- }
-};
-
-
-void handle_agent_stop_moving(void*)
-{
- // stop agent
- gAgent.setControlFlags(AGENT_CONTROL_STOP);
-
- // cancel autopilot
- gAgent.stopAutoPilot();
-}
-
-void print_packets_lost(void*)
-{
- LLWorld::getInstance()->printPacketsLost();
-}
-
-
-void drop_packet(void*)
-{
- gMessageSystem->mPacketRing.dropPackets(1);
-}
-
-
-void velocity_interpolate( void* data )
-{
- BOOL toggle = gSavedSettings.getBOOL("VelocityInterpolate");
- LLMessageSystem* msg = gMessageSystem;
- if ( !toggle )
- {
- msg->newMessageFast(_PREHASH_VelocityInterpolateOn);
- msg->nextBlockFast(_PREHASH_AgentData);
- msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
- msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
- gAgent.sendReliableMessage();
- llinfos << "Velocity Interpolation On" << llendl;
- }
- else
- {
- msg->newMessageFast(_PREHASH_VelocityInterpolateOff);
- msg->nextBlockFast(_PREHASH_AgentData);
- msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
- msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
- gAgent.sendReliableMessage();
- llinfos << "Velocity Interpolation Off" << llendl;
- }
- // BUG this is a hack because of the change in menu behavior. The
- // old menu system would automatically change a control's value,
- // but the new LLMenuGL system doesn't know what a control
- // is. However, it's easy to distinguish between the two callers
- // because LLMenuGL passes in the name of the user data (the
- // control name) to the callback function, and the user data goes
- // unused in the old menu code. Thus, if data is not null, then we
- // need to swap the value of the control.
- if( data )
- {
- gSavedSettings.setBOOL( static_cast<char*>(data), !toggle );
- }
-}
-
-
-void toggle_wind_audio(void)
-{
- if (gAudiop)
- {
- gAudiop->enableWind(!(gAudiop->isWindEnabled()));
- }
-}
-
-
-// Callback for enablement
-BOOL is_inventory_visible( void* user_data )
-{
- LLInventoryView* iv = reinterpret_cast<LLInventoryView*>(user_data);
- if( iv )
- {
- return iv->getVisible();
- }
- return FALSE;
-}
-
-void handle_show_newest_map(void*)
-{
- LLFloaterWorldMap::show(NULL, FALSE);
-}
-
//-------------------------------------------------------------------
// Help menu functions
//-------------------------------------------------------------------
@@ -3111,24 +3761,24 @@ void handle_show_newest_map(void*)
//
// Major mode switching
//
-void reset_view_final( BOOL proceed, void* );
+void reset_view_final( BOOL proceed );
void handle_reset_view()
{
if( (CAMERA_MODE_CUSTOMIZE_AVATAR == gAgent.getCameraMode()) && gFloaterCustomize )
{
// Show dialog box if needed.
- gFloaterCustomize->askToSaveIfDirty( reset_view_final, NULL );
+ gFloaterCustomize->askToSaveIfDirty( reset_view_final );
}
else
{
- reset_view_final( TRUE, NULL );
+ reset_view_final( TRUE );
}
}
class LLViewResetView : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
handle_reset_view();
return true;
@@ -3136,7 +3786,7 @@ class LLViewResetView : public view_listener_t
};
// Note: extra parameters allow this function to be called from dialog.
-void reset_view_final( BOOL proceed, void* )
+void reset_view_final( BOOL proceed )
{
if( !proceed )
{
@@ -3148,7 +3798,7 @@ void reset_view_final( BOOL proceed, void* )
class LLViewLookAtLastChatter : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
gAgent.lookAtLastChat();
return true;
@@ -3157,7 +3807,7 @@ class LLViewLookAtLastChatter : public view_listener_t
class LLViewMouselook : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
if (!gAgent.cameraMouselook())
{
@@ -3173,7 +3823,7 @@ class LLViewMouselook : public view_listener_t
class LLViewFullscreen : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
gViewerWindow->toggleFullscreen(TRUE);
return true;
@@ -3182,7 +3832,7 @@ class LLViewFullscreen : public view_listener_t
class LLViewDefaultUISize : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
gSavedSettings.setF32("UIScaleFactor", 1.0f);
gSavedSettings.setBOOL("UIAutoScale", FALSE);
@@ -3193,7 +3843,7 @@ class LLViewDefaultUISize : public view_listener_t
class LLEditDuplicate : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
if(LLEditMenuHandler::gEditMenuHandler)
{
@@ -3205,23 +3855,13 @@ class LLEditDuplicate : public view_listener_t
class LLEditEnableDuplicate : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canDuplicate();
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
-
-void disabled_duplicate(void*)
-{
- if (LLSelectMgr::getInstance()->getSelection()->getPrimaryObject())
- {
- LLNotifications::instance().add("CopyFailed");
- }
-}
-
void handle_duplicate_in_place(void*)
{
llinfos << "handle_duplicate_in_place" << llendl;
@@ -3230,11 +3870,6 @@ void handle_duplicate_in_place(void*)
LLSelectMgr::getInstance()->selectDuplicate(offset, TRUE);
}
-void handle_repeat_duplicate(void*)
-{
- LLSelectMgr::getInstance()->repeatDuplicate();
-}
-
/* dead code 30-apr-2008
void handle_deed_object_to_group(void*)
{
@@ -3386,37 +4021,6 @@ void handle_claim_public_land(void*)
gAgent.sendReliableMessage();
}
-void handle_god_request_havok(void *)
-{
- if (gAgent.isGodlike())
- {
- LLSelectMgr::getInstance()->sendGodlikeRequest("havok", "infoverbose");
- }
-}
-
-//void handle_god_request_foo(void *)
-//{
-// if (gAgent.isGodlike())
-// {
-// LLSelectMgr::getInstance()->sendGodlikeRequest(GOD_WANTS_FOO);
-// }
-//}
-
-//void handle_god_request_terrain_save(void *)
-//{
-// if (gAgent.isGodlike())
-// {
-// LLSelectMgr::getInstance()->sendGodlikeRequest("terrain", "save");
-// }
-//}
-
-//void handle_god_request_terrain_load(void *)
-//{
-// if (gAgent.isGodlike())
-// {
-// LLSelectMgr::getInstance()->sendGodlikeRequest("terrain", "load");
-// }
-//}
// HACK for easily testing new avatar geometry
@@ -3429,12 +4033,6 @@ void handle_god_request_avatar_geometry(void *)
}
-void handle_show_overlay_title(void*)
-{
- gShowOverlayTitle = !gShowOverlayTitle;
- gSavedSettings.setBOOL("ShowOverlayTitle", gShowOverlayTitle);
-}
-
void derez_objects(EDeRezDestination dest, const LLUUID& dest_id)
{
if(gAgent.cameraMouselook())
@@ -3590,7 +4188,7 @@ void derez_objects(EDeRezDestination dest, const LLUUID& dest_id)
class LLToolsTakeCopy : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
if (LLSelectMgr::getInstance()->getSelection()->isEmpty()) return true;
@@ -3605,7 +4203,7 @@ class LLToolsTakeCopy : public view_listener_t
// You can return an object to its owner if it is on your land.
class LLObjectReturn : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
if (LLSelectMgr::getInstance()->getSelection()->isEmpty()) return true;
@@ -3638,7 +4236,7 @@ protected:
// over land you own.
class LLObjectEnableReturn : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
#ifdef HACKED_GODLIKE_VIEWER
bool new_value = true;
@@ -3675,8 +4273,7 @@ class LLObjectEnableReturn : public view_listener_t
}
}
#endif
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
@@ -3752,7 +4349,7 @@ void handle_take()
}
// check library
- if(gInventory.isObjectDescendentOf(category_id, gInventoryLibraryRoot))
+ if(gInventory.isObjectDescendentOf(category_id, gInventory.getLibraryRootFolderID()))
{
category_id.setNull();
}
@@ -3767,8 +4364,8 @@ void handle_take()
payload["folder_id"] = category_id;
LLNotification::Params params("ConfirmObjectTakeLock");
- params.payload(payload)
- .functor(confirm_take);
+ params.payload(payload);
+ params.functor.function(confirm_take);
if(locked_but_takeable_object ||
!you_own_everything)
@@ -3776,7 +4373,6 @@ void handle_take()
if(locked_but_takeable_object && you_own_everything)
{
params.name("ConfirmObjectTakeLock");
-
}
else if(!locked_but_takeable_object && !you_own_everything)
{
@@ -3849,7 +4445,7 @@ BOOL enable_take()
class LLToolsBuyOrTake : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
if (LLSelectMgr::getInstance()->getSelection()->isEmpty())
{
@@ -3880,17 +4476,16 @@ class LLToolsBuyOrTake : public view_listener_t
class LLToolsEnableBuyOrTake : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool is_buy = is_selection_buy_not_take();
bool new_value = is_buy ? enable_buy(NULL) : enable_take();
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
// Update label
std::string label;
std::string buy_text;
std::string take_text;
- std::string param = userdata["data"].asString();
+ std::string param = userdata.asString();
std::string::size_type offset = param.find(",");
if (offset != param.npos)
{
@@ -3908,7 +4503,7 @@ class LLToolsEnableBuyOrTake : public view_listener_t
gMenuHolder->childSetText("Pie Object Take", label);
gMenuHolder->childSetText("Menu Object Take", label);
- return true;
+ return new_value;
}
};
@@ -3963,42 +4558,36 @@ S32 selection_price()
return total_price;
}
-
+/*
bool callback_show_buy_currency(const LLSD& notification, const LLSD& response)
{
S32 option = LLNotification::getSelectedOption(notification, response);
if (0 == option)
{
- llinfos << "Loading page " << BUY_CURRENCY_URL << llendl;
- LLWeb::loadURL(BUY_CURRENCY_URL);
+ llinfos << "Loading page " << LLNotifications::instance().getGlobalString("BUY_CURRENCY_URL") << llendl;
+ LLWeb::loadURL(LLNotifications::instance().getGlobalString("BUY_CURRENCY_URL"));
}
return false;
}
-
+*/
void show_buy_currency(const char* extra)
{
// Don't show currency web page for branded clients.
-
+/*
std::ostringstream mesg;
if (extra != NULL)
{
mesg << extra << "\n \n";
}
- mesg << "Go to " << BUY_CURRENCY_URL << "\nfor information on purchasing currency?";
-
+ mesg << "Go to " << LLNotifications::instance().getGlobalString("BUY_CURRENCY_URL")<< "\nfor information on purchasing currency?";
+*/
LLSD args;
if (extra != NULL)
{
args["EXTRA"] = extra;
}
- args["URL"] = BUY_CURRENCY_URL;
- LLNotifications::instance().add("PromptGoToCurrencyPage", args, LLSD(), callback_show_buy_currency);
-}
-
-void handle_buy_currency(void*)
-{
-// LLFloaterBuyCurrency::buyCurrency();
+ LLNotifications::instance().add("PromptGoToCurrencyPage", args);//, LLSD(), callback_show_buy_currency);
}
void handle_buy(void*)
@@ -4021,7 +4610,7 @@ void handle_buy(void*)
class LLObjectBuy : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
handle_buy(NULL);
return true;
@@ -4054,12 +4643,24 @@ BOOL sitting_on_selection()
return FALSE;
}
- return (avatar->mIsSitting && avatar->getRoot() == root_object);
+ return (avatar->isSitting() && avatar->getRoot() == root_object);
}
+class LLToolsSaveToInventory : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ if(enable_save_into_inventory(NULL))
+ {
+ derez_objects(DRD_SAVE_INTO_AGENT_INVENTORY, LLUUID::null);
+ }
+ return true;
+ }
+};
+
class LLToolsSaveToObjectInventory : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstRootNode();
if(node && (node->mValid) && (!node->mFromTaskID.isNull()))
@@ -4074,7 +4675,7 @@ class LLToolsSaveToObjectInventory : public view_listener_t
// Round the position of all root objects to the grid
class LLToolsSnapObjectXY : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
F64 snap_size = (F64)gSavedSettings.getF32("GridResolution");
@@ -4128,7 +4729,7 @@ class LLToolsSnapObjectXY : public view_listener_t
// reasonable expectation for the link to work, but it will fail.
class LLToolsEnableLink : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = false;
// check if there are at least 2 objects selected, and that the
@@ -4150,14 +4751,13 @@ class LLToolsEnableLink : public view_listener_t
new_value = LLSelectMgr::getInstance()->getSelection()->applyToRootObjects(&func, firstonly);
}
}
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLToolsLink : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
if(!LLSelectMgr::getInstance()->selectGetAllRootsValid())
{
@@ -4203,19 +4803,18 @@ class LLToolsLink : public view_listener_t
class LLToolsEnableUnlink : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = LLSelectMgr::getInstance()->selectGetAllRootsValid() &&
LLSelectMgr::getInstance()->getSelection()->getFirstEditableObject() &&
!LLSelectMgr::getInstance()->getSelection()->getFirstEditableObject()->isAttachment();
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLToolsUnlink : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLSelectMgr::getInstance()->sendDelink();
return true;
@@ -4225,7 +4824,7 @@ class LLToolsUnlink : public view_listener_t
class LLToolsStopAllAnimations : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
gAgent.stopCurrentAnimations();
return true;
@@ -4234,7 +4833,7 @@ class LLToolsStopAllAnimations : public view_listener_t
class LLToolsReleaseKeys : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
gAgent.forceReleaseControls();
@@ -4244,58 +4843,25 @@ class LLToolsReleaseKeys : public view_listener_t
class LLToolsEnableReleaseKeys : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
- gMenuHolder->findControl(userdata["control"].asString())->setValue( gAgent.anyControlGrabbed() );
- return true;
+ return gAgent.anyControlGrabbed();
}
};
-//void handle_hinge(void*)
-//{
-// LLSelectMgr::getInstance()->sendHinge(1);
-//}
-
-//void handle_ptop(void*)
-//{
-// LLSelectMgr::getInstance()->sendHinge(2);
-//}
-
-//void handle_lptop(void*)
-//{
-// LLSelectMgr::getInstance()->sendHinge(3);
-//}
-
-//void handle_wheel(void*)
-//{
-// LLSelectMgr::getInstance()->sendHinge(4);
-//}
-
-//void handle_dehinge(void*)
-//{
-// LLSelectMgr::getInstance()->sendDehinge();
-//}
-
-//BOOL enable_dehinge(void*)
-//{
-// LLViewerObject* obj = LLSelectMgr::getInstance()->getSelection()->getFirstEditableObject();
-// return obj && !obj->isAttachment();
-//}
-
class LLEditEnableCut : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canCut();
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLEditCut : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
if( LLEditMenuHandler::gEditMenuHandler )
{
@@ -4307,17 +4873,16 @@ class LLEditCut : public view_listener_t
class LLEditEnableCopy : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canCopy();
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLEditCopy : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
if( LLEditMenuHandler::gEditMenuHandler )
{
@@ -4329,17 +4894,16 @@ class LLEditCopy : public view_listener_t
class LLEditEnablePaste : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canPaste();
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLEditPaste : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
if( LLEditMenuHandler::gEditMenuHandler )
{
@@ -4351,17 +4915,16 @@ class LLEditPaste : public view_listener_t
class LLEditEnableDelete : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canDoDelete();
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLEditDelete : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
// If a text field can do a deletion, it gets precedence over deleting
// an object in the world.
@@ -4375,14 +4938,14 @@ class LLEditDelete : public view_listener_t
// When deleting an object we may not actually be done
// Keep selection so we know what to delete when confirmation is needed about the delete
- gPieObject->hide(TRUE);
+ gPieObject->hide();
return true;
}
};
class LLObjectEnableDelete : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value =
#ifdef HACKED_GODLIKE_VIEWER
@@ -4394,23 +4957,13 @@ class LLObjectEnableDelete : public view_listener_t
# endif
LLSelectMgr::getInstance()->canDoDelete();
#endif
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
- }
-};
-
-class LLEditSearch : public view_listener_t
-{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
- {
- LLFloaterDirectory::toggleFind(NULL);
- return true;
+ return new_value;
}
};
class LLObjectDelete : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
if (LLSelectMgr::getInstance())
{
@@ -4422,7 +4975,7 @@ class LLObjectDelete : public view_listener_t
// When deleting an object we may not actually be done
// Keep selection so we know what to delete when confirmation is needed about the delete
- gPieObject->hide(TRUE);
+ gPieObject->hide();
return true;
}
};
@@ -4434,38 +4987,35 @@ void handle_force_delete(void*)
class LLViewEnableJoystickFlycam : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = (gSavedSettings.getBOOL("JoystickEnabled") && gSavedSettings.getBOOL("JoystickFlycamEnabled"));
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLViewEnableLastChatter : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
// *TODO: add check that last chatter is in range
bool new_value = (gAgent.cameraThirdPerson() && gAgent.getLastChatter().notNull());
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLEditEnableDeselect : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canDeselect();
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLEditDeselect : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
if( LLEditMenuHandler::gEditMenuHandler )
{
@@ -4477,18 +5027,17 @@ class LLEditDeselect : public view_listener_t
class LLEditEnableSelectAll : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canSelectAll();
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLEditSelectAll : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
if( LLEditMenuHandler::gEditMenuHandler )
{
@@ -4501,17 +5050,16 @@ class LLEditSelectAll : public view_listener_t
class LLEditEnableUndo : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canUndo();
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLEditUndo : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
if( LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canUndo() )
{
@@ -4523,17 +5071,16 @@ class LLEditUndo : public view_listener_t
class LLEditEnableRedo : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canRedo();
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLEditRedo : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
if( LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canRedo() )
{
@@ -4571,35 +5118,42 @@ void print_agent_nvpairs(void*)
void show_debug_menus()
{
- // this can get called at login screen where there is no menu so only toggle it if one exists
+ // this might get called at login screen where there is no menu so only toggle it if one exists
if ( gMenuBarView )
{
BOOL debug = gSavedSettings.getBOOL("UseDebugMenus");
+ BOOL qamode = gSavedSettings.getBOOL("QAMode");
+
+ gMenuBarView->setItemVisible("Advanced", debug);
+// gMenuBarView->setItemEnabled("Advanced", debug); // Don't disable Advanced keyboard shortcuts when hidden
- if(debug)
- {
- LLFirstUse::useDebugMenus();
- }
+ gMenuBarView->setItemVisible("Debug", qamode);
+ gMenuBarView->setItemEnabled("Debug", qamode);
- gMenuBarView->setItemVisible(CLIENT_MENU_NAME, debug);
- gMenuBarView->setItemEnabled(CLIENT_MENU_NAME, debug);
+ gMenuBarView->setItemVisible("Develop", qamode);
+ gMenuBarView->setItemEnabled("Develop", qamode);
// Server ('Admin') menu hidden when not in godmode.
const bool show_server_menu = debug && (gAgent.getGodLevel() > GOD_NOT);
- gMenuBarView->setItemVisible(SERVER_MENU_NAME, show_server_menu);
- gMenuBarView->setItemEnabled(SERVER_MENU_NAME, show_server_menu);
-
- //gMenuBarView->setItemVisible("DebugOptions", visible);
- //gMenuBarView->setItemVisible(std::string(AVI_TOOLS), visible);
-
- gMenuBarView->arrange(); // clean-up positioning
- };
+ gMenuBarView->setItemVisible("Admin", show_server_menu);
+ gMenuBarView->setItemEnabled("Admin", show_server_menu);
+ }
+ if (gLoginMenuBarView)
+ {
+ BOOL debug = gSavedSettings.getBOOL("UseDebugMenus");
+ gLoginMenuBarView->setItemVisible("Debug", debug);
+ gLoginMenuBarView->setItemEnabled("Debug", debug);
+ }
}
void toggle_debug_menus(void*)
{
BOOL visible = ! gSavedSettings.getBOOL("UseDebugMenus");
gSavedSettings.setBOOL("UseDebugMenus", visible);
+ if(visible)
+ {
+ LLFirstUse::useDebugMenus();
+ }
show_debug_menus();
}
@@ -4641,27 +5195,12 @@ void toggle_debug_menus(void*)
// gExportDialog = LLUploadDialog::modalUploadDialog("Exporting selected objects...");
// }
+//
-BOOL menu_check_build_tool( void* user_data )
-{
- S32 index = (intptr_t) user_data;
- return LLToolMgr::getInstance()->getCurrentToolset()->isToolSelected( index );
-}
-
-void handle_reload_settings(void*)
-{
- gSavedSettings.resetToDefaults();
- gSavedSettings.loadFromFile(gSavedSettings.getString("ClientSettingsFile"));
-
- llinfos << "Loading colors from colors.xml" << llendl;
- std::string color_file = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"colors.xml");
- gColors.resetToDefaults();
- gColors.loadFromFileLegacy(color_file, FALSE, TYPE_COL4U);
-}
class LLWorldSetHomeLocation : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
// we just send the message and let the server check for failure cases
// server will echo back a "Home position set." alert if it succeeds
@@ -4673,7 +5212,7 @@ class LLWorldSetHomeLocation : public view_listener_t
class LLWorldTeleportHome : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
gAgent.teleportHome();
return true;
@@ -4682,7 +5221,7 @@ class LLWorldTeleportHome : public view_listener_t
class LLWorldAlwaysRun : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
// as well as altering the default walk-vs-run state,
// we also change the *current* walk-vs-run state.
@@ -4700,23 +5239,25 @@ class LLWorldAlwaysRun : public view_listener_t
// tell the simulator.
gAgent.sendWalkRun(gAgent.getAlwaysRun());
+ // Update Movement Controls according to AlwaysRun mode
+ LLFloaterMove::setAlwaysRunMode(gAgent.getAlwaysRun());
+
return true;
}
};
class LLWorldCheckAlwaysRun : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = gAgent.getAlwaysRun();
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLWorldSetAway : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
if (gAgent.getAFK())
{
@@ -4732,7 +5273,7 @@ class LLWorldSetAway : public view_listener_t
class LLWorldSetBusy : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
if (gAgent.getBusy())
{
@@ -4747,53 +5288,19 @@ class LLWorldSetBusy : public view_listener_t
}
};
-bool can_create_landmark()
-{
- BOOL can = FALSE;
-
- LLParcel* agent_parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
- if (agent_parcel)
- {
-
- if (agent_parcel->getAllowLandmark()
- || LLViewerParcelMgr::isParcelOwnedByAgent(agent_parcel, GP_LAND_ALLOW_LANDMARK))
- {
- can = TRUE;
- }
- }
-
- return can;
-}
-
class LLWorldCreateLandmark : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
- if (!can_create_landmark())
- {
- LLNotifications::instance().add("CannotCreateLandmarkNotOwner");
- return true;
- }
+ LLSideTray::getInstance()->showPanel("panel_places", LLSD().insert("type", "create_landmark"));
- LLUUID folder_id;
- folder_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_LANDMARK);
- std::string pos_string;
- gAgent.buildLocationString(pos_string);
-
- create_inventory_item(gAgent.getID(), gAgent.getSessionID(),
- folder_id, LLTransactionID::tnull,
- pos_string, pos_string, // name, desc
- LLAssetType::AT_LANDMARK,
- LLInventoryType::IT_LANDMARK,
- NOT_WEARABLE, PERM_ALL,
- new LLCreateLandmarkCallback);
return true;
}
};
class LLToolsLookAtSelection : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
const F32 PADDING_FACTOR = 2.f;
BOOL zoom = (userdata.asString() == "zoom");
@@ -4828,10 +5335,10 @@ class LLToolsLookAtSelection : public view_listener_t
}
};
-void callback_invite_to_group(LLUUID group_id, void *user_data)
+void callback_invite_to_group(LLUUID group_id, LLUUID dest_id)
{
std::vector<LLUUID> agent_ids;
- agent_ids.push_back(*(LLUUID *)user_data);
+ agent_ids.push_back(dest_id);
LLFloaterGroupInvite::showForGroup(group_id, &agent_ids);
}
@@ -4841,20 +5348,19 @@ void invite_to_group(const LLUUID& dest_id)
LLViewerObject* dest = gObjectList.findObject(dest_id);
if(dest && dest->isAvatar())
{
- LLFloaterGroupPicker* widget;
- widget = LLFloaterGroupPicker::showInstance(LLSD(gAgent.getID()));
+ LLFloaterGroupPicker* widget = LLFloaterReg::showTypedInstance<LLFloaterGroupPicker>("group_picker", LLSD(gAgent.getID()));
if (widget)
{
widget->center();
widget->setPowersMask(GP_MEMBER_INVITE);
- widget->setSelectCallback(callback_invite_to_group, (void *)&dest_id);
+ widget->setSelectGroupCallback(boost::bind(callback_invite_to_group, _1, dest_id));
}
}
}
class LLAvatarInviteToGroup : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() );
if(avatar)
@@ -4867,10 +5373,10 @@ class LLAvatarInviteToGroup : public view_listener_t
class LLAvatarAddFriend : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() );
- if(avatar && !is_agent_friend(avatar->getID()))
+ if(avatar && !LLAvatarActions::isFriend(avatar->getID()))
{
request_friendship(avatar->getID());
}
@@ -4878,6 +5384,19 @@ class LLAvatarAddFriend : public view_listener_t
}
};
+class LLAvatarAddContact : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() );
+ if(avatar)
+ {
+ create_inventory_callingcard(avatar->getID());
+ }
+ return true;
+ }
+};
+
bool complete_give_money(const LLSD& notification, const LLSD& response, LLObjectSelectionHandle handle)
{
S32 option = LLNotification::getSelectedOption(notification, response);
@@ -4917,7 +5436,7 @@ bool complete_give_money(const LLSD& notification, const LLSD& response, LLObjec
bool handle_give_money_dialog()
{
LLNotification::Params params("BusyModePay");
- params.functor(boost::bind(complete_give_money, _1, _2, LLSelectMgr::getInstance()->getSelection()));
+ params.functor.function(boost::bind(complete_give_money, _1, _2, LLSelectMgr::getInstance()->getSelection()));
if (gAgent.getBusy())
{
@@ -4933,7 +5452,7 @@ bool handle_give_money_dialog()
class LLPayObject : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
return handle_give_money_dialog();
}
@@ -4941,7 +5460,7 @@ class LLPayObject : public view_listener_t
class LLEnablePayObject : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLVOAvatar* avatar = find_avatar_from_object(LLSelectMgr::getInstance()->getSelection()->getPrimaryObject());
bool new_value = (avatar != NULL);
@@ -4957,14 +5476,13 @@ class LLEnablePayObject : public view_listener_t
}
}
}
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLObjectEnableSitOrStand : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = false;
LLViewerObject* dest_object = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
@@ -4976,13 +5494,11 @@ class LLObjectEnableSitOrStand : public view_listener_t
new_value = true;
}
}
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
-
// Update label
std::string label;
std::string sit_text;
std::string stand_text;
- std::string param = userdata["data"].asString();
+ std::string param = userdata.asString();
std::string::size_type offset = param.find(",");
if (offset != param.npos)
{
@@ -5007,7 +5523,7 @@ class LLObjectEnableSitOrStand : public view_listener_t
}
gMenuHolder->childSetText("Object Sit", label);
- return true;
+ return new_value;
}
};
@@ -5026,29 +5542,6 @@ void dump_inventory(void*)
gInventory.dumpInventory();
}
-// forcibly unlock an object
-void handle_force_unlock(void*)
-{
- // First, make it public.
- LLSelectMgr::getInstance()->sendOwner(LLUUID::null, LLUUID::null, TRUE);
-
- // Second, lie to the viewer and mark it editable and unowned
-
- struct f : public LLSelectedObjectFunctor
- {
- virtual bool apply(LLViewerObject* object)
- {
- object->mFlags |= FLAGS_OBJECT_MOVE;
- object->mFlags |= FLAGS_OBJECT_MODIFY;
- object->mFlags |= FLAGS_OBJECT_COPY;
-
- object->mFlags &= ~FLAGS_OBJECT_ANY_OWNER;
- object->mFlags &= ~FLAGS_OBJECT_YOU_OWNER;
- return true;
- }
- } func;
- LLSelectMgr::getInstance()->getSelection()->applyToObjects(&func);
-}
void handle_dump_followcam(void*)
{
@@ -5065,84 +5558,22 @@ void handle_viewer_disable_message_log(void*)
gMessageSystem->stopLogging();
}
-// TomY TODO: Move!
class LLShowFloater : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
std::string floater_name = userdata.asString();
- if (floater_name == "gestures")
- {
- LLFloaterGesture::toggleVisibility();
- }
- else if (floater_name == "appearance")
+ if (floater_name == "appearance")
{
- if (gAgent.areWearablesLoaded())
+ if (gAgentWearables.areWearablesLoaded())
{
gAgent.changeCameraToCustomizeAvatar();
}
}
- else if (floater_name == "friends")
- {
- LLFloaterMyFriends::toggleInstance(0);
- }
- else if (floater_name == "preferences")
- {
- LLFloaterPreference::show(NULL);
- }
else if (floater_name == "toolbar")
{
LLToolBar::toggle(NULL);
}
- else if (floater_name == "chat history")
- {
- LLFloaterChat::toggleInstance(LLSD());
- }
- else if (floater_name == "im")
- {
- LLFloaterChatterBox::toggleInstance(LLSD());
- }
- else if (floater_name == "inventory")
- {
- LLInventoryView::toggleVisibility(NULL);
- }
- else if (floater_name == "mute list")
- {
- LLFloaterMute::toggleInstance();
- }
- else if (floater_name == "camera controls")
- {
- LLFloaterCamera::toggleInstance();
- }
- else if (floater_name == "movement controls")
- {
- LLFloaterMove::toggleInstance();
- }
- else if (floater_name == "world map")
- {
- LLFloaterWorldMap::toggle(NULL);
- }
- else if (floater_name == "mini map")
- {
- LLFloaterMap::toggleInstance();
- }
- else if (floater_name == "stat bar")
- {
- LLFloaterStats::toggleInstance();
- }
- else if (floater_name == "my land")
- {
- LLFloaterLandHoldings::show(NULL);
- }
- else if (floater_name == "about land")
- {
- if (LLViewerParcelMgr::getInstance()->selectionEmpty())
- {
- LLViewerParcelMgr::getInstance()->selectParcelAt(gAgent.getPositionGlobal());
- }
-
- LLFloaterLand::showInstance();
- }
else if (floater_name == "buy land")
{
if (LLViewerParcelMgr::getInstance()->selectionEmpty())
@@ -5152,68 +5583,28 @@ class LLShowFloater : public view_listener_t
LLViewerParcelMgr::getInstance()->startBuyLand();
}
- else if (floater_name == "about region")
- {
- LLFloaterRegionInfo::showInstance();
- }
- else if (floater_name == "grid options")
- {
- LLFloaterBuildOptions::show(NULL);
- }
else if (floater_name == "script errors")
{
LLFloaterScriptDebug::show(LLUUID::null);
}
else if (floater_name == "help f1")
{
+ llinfos << "Spawning HTML help window" << llendl;
gViewerHtmlHelp.show();
}
- else if (floater_name == "help tutorial")
- {
- LLFloaterHUD::showHUD();
- }
else if (floater_name == "complaint reporter")
{
// Prevent menu from appearing in screen shot.
gMenuHolder->hideMenus();
LLFloaterReporter::showFromMenu(COMPLAINT_REPORT);
}
- else if (floater_name == "mean events")
- {
- if (!gNoRender)
- {
- LLFloaterBump::show(NULL);
- }
- }
- else if (floater_name == "lag meter")
- {
- LLFloaterLagMeter::showInstance();
- }
- else if (floater_name == "bug reporter")
- {
- // Prevent menu from appearing in screen shot.
- gMenuHolder->hideMenus();
- LLFloaterReporter::showFromMenu(BUG_REPORT);
- }
else if (floater_name == "buy currency")
{
LLFloaterBuyCurrency::buyCurrency();
}
- else if (floater_name == "about")
- {
- LLFloaterAbout::show(NULL);
- }
- else if (floater_name == "active speakers")
- {
- LLFloaterActiveSpeakers::toggleInstance(LLSD());
- }
- else if (floater_name == "beacons")
- {
- LLFloaterBeacons::toggleInstance(LLSD());
- }
- else if (floater_name == "perm prefs")
+ else
{
- LLFloaterPerms::toggleInstance(LLSD());
+ LLFloaterReg::toggleInstance(floater_name);
}
return true;
}
@@ -5221,62 +5612,19 @@ class LLShowFloater : public view_listener_t
class LLFloaterVisible : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
- std::string control_name = userdata["control"].asString();
- std::string floater_name = userdata["data"].asString();
+ std::string floater_name = userdata.asString();
bool new_value = false;
- if (floater_name == "friends")
- {
- new_value = LLFloaterMyFriends::instanceVisible(0);
- }
- else if (floater_name == "communicate")
- {
- new_value = LLFloaterChatterBox::instanceVisible();
- }
- else if (floater_name == "toolbar")
+ if (floater_name == "toolbar")
{
new_value = LLToolBar::visible(NULL);
}
- else if (floater_name == "chat history")
- {
- new_value = LLFloaterChat::instanceVisible();
- }
- else if (floater_name == "im")
- {
- new_value = LLFloaterMyFriends::instanceVisible(0);
- }
- else if (floater_name == "mute list")
- {
- new_value = LLFloaterMute::instanceVisible();
- }
- else if (floater_name == "camera controls")
- {
- new_value = LLFloaterCamera::instanceVisible();
- }
- else if (floater_name == "movement controls")
- {
- new_value = LLFloaterMove::instanceVisible();
- }
- else if (floater_name == "stat bar")
- {
- new_value = LLFloaterStats::instanceVisible();
- }
- else if (floater_name == "active speakers")
- {
- new_value = LLFloaterActiveSpeakers::instanceVisible(LLSD());
- }
- else if (floater_name == "beacons")
- {
- new_value = LLFloaterBeacons::instanceVisible(LLSD());
- }
- else if (floater_name == "inventory")
+ else
{
- LLInventoryView* iv = LLInventoryView::getActiveInventory();
- new_value = (NULL != iv && TRUE == iv->getVisible());
+ new_value = LLFloaterReg::instanceVisible(floater_name);
}
- gMenuHolder->findControl(control_name)->setValue(new_value);
- return true;
+ return new_value;
}
};
@@ -5292,7 +5640,7 @@ bool callback_show_url(const LLSD& notification, const LLSD& response)
class LLPromptShowURL : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
std::string param = userdata.asString();
std::string::size_type offset = param.find(",");
@@ -5332,7 +5680,7 @@ bool callback_show_file(const LLSD& notification, const LLSD& response)
class LLPromptShowFile : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
std::string param = userdata.asString();
std::string::size_type offset = param.find(",");
@@ -5355,7 +5703,7 @@ class LLPromptShowFile : public view_listener_t
class LLShowAgentProfile : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLUUID agent_id;
if (userdata.asString() == "agent")
@@ -5378,50 +5726,15 @@ class LLShowAgentProfile : public view_listener_t
LLVOAvatar* avatar = find_avatar_from_object(agent_id);
if (avatar)
{
- LLFloaterAvatarInfo::show( avatar->getID() );
+ LLAvatarActions::showProfile(avatar->getID());
}
return true;
}
};
-class LLShowAgentGroups : public view_listener_t
-{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
- {
- LLFloaterMyFriends::toggleInstance(1);
- return true;
- }
-};
-
-void handle_focus(void *)
-{
- if (gDisconnected)
- {
- return;
- }
-
- if (gAgent.getFocusOnAvatar())
- {
- // zoom in if we're looking at the avatar
- gAgent.setFocusOnAvatar(FALSE, ANIMATE);
- gAgent.setFocusGlobal(LLToolPie::getInstance()->getPick());
- gAgent.cameraZoomIn(0.666f);
- }
- else
- {
- gAgent.setFocusGlobal(LLToolPie::getInstance()->getPick());
- }
-
- gViewerWindow->moveCursorToCenter();
-
- // Switch to camera toolset
-// LLToolMgr::getInstance()->setCurrentToolset(gCameraToolset);
- LLToolMgr::getInstance()->getCurrentToolset()->selectTool( LLToolCamera::getInstance() );
-}
-
class LLLandEdit : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
if (gAgent.getFocusOnAvatar() && gSavedSettings.getBOOL("EditCameraMovement") )
{
@@ -5441,7 +5754,7 @@ class LLLandEdit : public view_listener_t
LLViewerParcelMgr::getInstance()->selectParcelAt( LLToolPie::getInstance()->getPick().mPosGlobal );
- gFloaterView->bringToFront( gFloaterTools );
+ LLFloaterReg::showInstance("build");
// Switch to land edit toolset
LLToolMgr::getInstance()->getCurrentToolset()->selectTool( LLToolSelectLand::getInstance() );
@@ -5451,15 +5764,14 @@ class LLLandEdit : public view_listener_t
class LLWorldEnableBuyLand : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = LLViewerParcelMgr::getInstance()->canAgentBuyParcel(
LLViewerParcelMgr::getInstance()->selectionEmpty()
? LLViewerParcelMgr::getInstance()->getAgentParcel()
: LLViewerParcelMgr::getInstance()->getParcelSelection()->getParcel(),
false);
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
@@ -5470,26 +5782,6 @@ BOOL enable_buy_land(void*)
}
-void handle_move(void*)
-{
- if (gAgent.getFocusOnAvatar())
- {
- // zoom in if we're looking at the avatar
- gAgent.setFocusOnAvatar(FALSE, ANIMATE);
- gAgent.setFocusGlobal(LLToolPie::getInstance()->getPick());
-
- gAgent.cameraZoomIn(0.666f);
- }
- else
- {
- gAgent.setFocusGlobal(LLToolPie::getInstance()->getPick());
- }
-
- gViewerWindow->moveCursorToCenter();
-
- LLToolMgr::getInstance()->setCurrentToolset(gBasicToolset);
- LLToolMgr::getInstance()->getCurrentToolset()->selectTool( LLToolGrab::getInstance() );
-}
class LLObjectAttachToAvatar : public view_listener_t
{
@@ -5497,7 +5789,7 @@ public:
static void setObjectSelection(LLObjectSelectionHandle selection) { sObjectSelection = selection; }
private:
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
setObjectSelection(LLSelectMgr::getInstance()->getSelection());
LLViewerObject* selectedObject = sObjectSelection->getFirstRootObject();
@@ -5580,7 +5872,7 @@ void confirm_replace_attachment(S32 option, void* user_data)
class LLAttachmentDrop : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
// Called when the user clicked on an object attached to them
// and selected "Drop".
@@ -5624,11 +5916,13 @@ class LLAttachmentDrop : public view_listener_t
};
// called from avatar pie menu
-void handle_detach_from_avatar(void* user_data)
+class LLAttachmentDetachFromPoint : public view_listener_t
+{
+ bool handleEvent(const LLSD& user_data)
{
- LLViewerJointAttachment *attachment = (LLViewerJointAttachment *)user_data;
+ LLViewerJointAttachment *attachment = get_if_there(gAgent.getAvatarObject()->mAttachmentPoints, user_data.asInteger(), (LLViewerJointAttachment*)NULL);
- LLViewerObject* attached_object = attachment->getObject();
+ LLViewerObject* attached_object = attachment ? attachment->getObject() : NULL;
if (attached_object)
{
@@ -5641,31 +5935,20 @@ void handle_detach_from_avatar(void* user_data)
gMessageSystem->addU32Fast(_PREHASH_ObjectLocalID, attached_object->getLocalID());
gMessageSystem->sendReliable( gAgent.getRegionHost() );
}
+ return true;
}
+};
-void attach_label(std::string& label, void* user_data)
+static bool onEnableAttachmentLabel(LLUICtrl* ctrl, const LLSD& data)
{
- LLViewerJointAttachment* attachmentp = (LLViewerJointAttachment*)user_data;
- if (attachmentp)
+ std::string label;
+ LLMenuItemGL* menu = dynamic_cast<LLMenuItemGL*>(ctrl);
+ if (menu)
{
- label = attachmentp->getName();
- if (attachmentp->getObject())
- {
- LLViewerInventoryItem* itemp = gInventory.getItem(attachmentp->getItemID());
- if (itemp)
- {
- label += std::string(" (") + itemp->getName() + std::string(")");
- }
- }
- }
-}
-
-void detach_label(std::string& label, void* user_data)
-{
- LLViewerJointAttachment* attachmentp = (LLViewerJointAttachment*)user_data;
+ LLViewerJointAttachment *attachmentp = get_if_there(gAgent.getAvatarObject()->mAttachmentPoints, data["index"].asInteger(), (LLViewerJointAttachment*)NULL);
if (attachmentp)
{
- label = attachmentp->getName();
+ label = data["label"].asString();
if (attachmentp->getObject())
{
LLViewerInventoryItem* itemp = gInventory.getItem(attachmentp->getItemID());
@@ -5675,12 +5958,15 @@ void detach_label(std::string& label, void* user_data)
}
}
}
+ menu->setLabel(label);
+}
+ return true;
}
class LLAttachmentDetach : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
// Called when the user clicked on an object attached to them
// and selected "Detach".
@@ -5749,7 +6035,7 @@ protected:
// You can only drop items on parcels where you can build.
class LLAttachmentEnableDrop : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
BOOL can_build = gAgent.isGodlike() || (LLViewerParcelMgr::getInstance()->agentCanBuild());
@@ -5796,14 +6082,13 @@ class LLAttachmentEnableDrop : public view_listener_t
}
//now check to make sure that the item is actually in the inventory before we enable dropping it
- bool new_value = enable_detach(NULL) && can_build && item;
+ bool new_value = enable_detach() && can_build && item;
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
-BOOL enable_detach(void*)
+BOOL enable_detach(const LLSD&)
{
LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
if (!object) return FALSE;
@@ -5827,18 +6112,16 @@ BOOL enable_detach(void*)
class LLAttachmentEnableDetach : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
- bool new_value = enable_detach(NULL);
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ bool new_value = enable_detach();
+ return new_value;
}
};
// Used to tell if the selected object can be attached to your avatar.
-BOOL object_selected_and_point_valid(void *user_data)
+BOOL object_selected_and_point_valid(const LLSD&)
{
- //LLViewerJointAttachment *attachment = (LLViewerJointAttachment *)user_data;
LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection();
for (LLObjectSelection::root_iterator iter = selection->root_begin();
iter != selection->root_end(); iter++)
@@ -5867,7 +6150,7 @@ BOOL object_selected_and_point_valid(void *user_data)
BOOL object_is_wearable()
{
- if (!object_selected_and_point_valid(NULL))
+ if (!object_selected_and_point_valid(LLSD()))
{
return FALSE;
}
@@ -5892,25 +6175,29 @@ BOOL object_is_wearable()
// Also for seeing if object can be attached. See above.
class LLObjectEnableWear : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
- bool is_wearable = object_selected_and_point_valid(NULL);
- gMenuHolder->findControl(userdata["control"].asString())->setValue(is_wearable);
- return TRUE;
+ return object_selected_and_point_valid(LLSD());
}
};
-
-BOOL object_attached(void *user_data)
+class LLAttachmentPointFilled : public view_listener_t
{
- LLViewerJointAttachment *attachment = (LLViewerJointAttachment *)user_data;
-
- return attachment->getObject() != NULL;
+ bool handleEvent(const LLSD& user_data)
+ {
+ bool enable = false;
+ LLVOAvatar::attachment_map_t::iterator found_it = gAgent.getAvatarObject()->mAttachmentPoints.find(user_data.asInteger());
+ if (found_it != gAgent.getAvatarObject()->mAttachmentPoints.end())
+{
+ enable = found_it->second->getObject() != NULL;
+ }
+ return enable;
}
+};
class LLAvatarSendIM : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() );
if(avatar)
@@ -5925,7 +6212,6 @@ class LLAvatarSendIM : public view_listener_t
name.append( last->getString() );
}
- gIMMgr->setFloaterOpen(TRUE);
//EInstantMessage type = have_agent_callingcard(gLastHitObjectID)
// ? IM_SESSION_ADD : IM_SESSION_CARDLESS_START;
gIMMgr->addSession(name,
@@ -5936,16 +6222,6 @@ class LLAvatarSendIM : public view_listener_t
}
};
-
-void handle_activate(void*)
-{
-}
-
-BOOL enable_activate(void*)
-{
- return FALSE;
-}
-
namespace
{
struct QueueObjects : public LLSelectedObjectFunctor
@@ -5972,7 +6248,7 @@ namespace
};
}
-void queue_actions(LLFloaterScriptQueue* q, const std::string& noscriptmsg, const std::string& nomodmsg)
+void queue_actions(LLFloaterScriptQueue* q, const std::string& msg)
{
QueueObjects func(q);
LLSelectMgr *mgr = LLSelectMgr::getInstance();
@@ -5982,10 +6258,12 @@ void queue_actions(LLFloaterScriptQueue* q, const std::string& noscriptmsg, cons
{
if ( !func.scripted )
{
+ std::string noscriptmsg = std::string("Cannot") + msg + "SelectObjectsNoScripts";
LLNotifications::instance().add(noscriptmsg);
}
else if ( !func.modifiable )
{
+ std::string nomodmsg = std::string("Cannot") + msg + "SelectObjectsNoPermission";
LLNotifications::instance().add(nomodmsg);
}
else
@@ -6002,62 +6280,51 @@ void queue_actions(LLFloaterScriptQueue* q, const std::string& noscriptmsg, cons
}
}
-void handle_compile_queue(std::string to_lang)
-{
- LLFloaterCompileQueue* queue;
- if (to_lang == "mono")
- {
- queue = LLFloaterCompileQueue::create(TRUE);
- }
- else
- {
- queue = LLFloaterCompileQueue::create(FALSE);
- }
- queue_actions(queue, "CannotRecompileSelectObjectsNoScripts", "CannotRecompileSelectObjectsNoPermission");
-}
-
-void handle_reset_selection(void)
-{
- LLFloaterResetQueue* queue = LLFloaterResetQueue::create();
- queue_actions(queue, "CannotResetSelectObjectsNoScripts", "CannotResetSelectObjectsNoPermission");
-}
-
-void handle_set_run_selection(void)
-{
- LLFloaterRunQueue* queue = LLFloaterRunQueue::create();
- queue_actions(queue, "CannotSetRunningSelectObjectsNoScripts", "CannotSerRunningSelectObjectsNoPermission");
-}
-
-void handle_set_not_run_selection(void)
-{
- LLFloaterNotRunQueue* queue = LLFloaterNotRunQueue::create();
- queue_actions(queue, "CannotSetRunningNotSelectObjectsNoScripts", "CannotSerRunningNotSelectObjectsNoPermission");
-}
-
class LLToolsSelectedScriptAction : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
std::string action = userdata.asString();
+ bool mono = false;
+ std::string msg, name;
if (action == "compile mono")
{
- handle_compile_queue("mono");
+ name = "compile_queue";
+ mono = true;
+ msg = "Recompile";
}
if (action == "compile lsl")
{
- handle_compile_queue("lsl");
+ name = "compile_queue";
+ msg = "Recompile";
}
else if (action == "reset")
{
- handle_reset_selection();
+ name = "reset_queue";
+ msg = "Reset";
}
else if (action == "start")
{
- handle_set_run_selection();
+ name = "start_queue";
+ msg = "Running";
}
else if (action == "stop")
{
- handle_set_not_run_selection();
+ name = "stop_queue";
+ msg = "RunningNot";
+ }
+ LLUUID id; id.generate();
+
+ LLFloaterScriptQueue* queue =LLFloaterReg::getTypedInstance<LLFloaterScriptQueue>(name, LLSD(id));
+ if (queue)
+ {
+ queue->setMono(mono);
+ queue_actions(queue, msg);
+ }
+ else
+ {
+ llwarns << "Failed to generate LLFloaterScriptQueue with action: " << action << llendl;
+ delete queue;
}
return true;
}
@@ -6084,7 +6351,7 @@ void handle_selected_texture_info(void*)
{
if (!node->isTESelected(i)) continue;
- LLViewerImage* img = node->getObject()->getTEImage(i);
+ LLViewerTexture* img = node->getObject()->getTEImage(i);
LLUUID image_id = img->getID();
faces_per_texture[image_id].push_back(i);
}
@@ -6094,7 +6361,7 @@ void handle_selected_texture_info(void*)
{
LLUUID image_id = it->first;
U8 te = it->second[0];
- LLViewerImage* img = node->getObject()->getTEImage(te);
+ LLViewerTexture* img = node->getObject()->getTEImage(te);
S32 height = img->getHeight();
S32 width = img->getWidth();
S32 components = img->getComponents();
@@ -6112,11 +6379,6 @@ void handle_selected_texture_info(void*)
}
}
-void handle_dump_image_list(void*)
-{
- gImageList.dump();
-}
-
void handle_test_male(void*)
{
wear_outfit_by_name("Male Shape & Outfit");
@@ -6167,107 +6429,76 @@ void handle_dump_attachments(void*)
}
}
-//---------------------------------------------------------------------
-// Callbacks for enabling/disabling items
-//---------------------------------------------------------------------
-
-BOOL menu_ui_enabled(void *user_data)
-{
- BOOL high_res = gSavedSettings.getBOOL( "HighResSnapshot" );
- return !high_res;
-}
-
-// TomY TODO DEPRECATE & REMOVE
-void menu_toggle_control( void* user_data )
-{
- BOOL checked = gSavedSettings.getBOOL( static_cast<char*>(user_data) );
- if (std::string(static_cast<char*>(user_data)) == "HighResSnapshot" && !checked)
- {
- // High Res Snapshot active, must uncheck RenderUIInSnapshot
- gSavedSettings.setBOOL( "RenderUIInSnapshot", FALSE );
- }
- gSavedSettings.setBOOL( static_cast<char*>(user_data), !checked );
-}
-
// these are used in the gl menus to set control values.
class LLToggleControl : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
std::string control_name = userdata.asString();
BOOL checked = gSavedSettings.getBOOL( control_name );
- if (control_name == "HighResSnapshot" && !checked)
- {
- // High Res Snapshot active, must uncheck RenderUIInSnapshot
- gSavedSettings.setBOOL( "RenderUIInSnapshot", FALSE );
- }
gSavedSettings.setBOOL( control_name, !checked );
return true;
}
};
-BOOL menu_check_control( void* user_data)
+class LLCheckControl : public view_listener_t
{
- return gSavedSettings.getBOOL((char*)user_data);
+ bool handleEvent( const LLSD& userdata)
+ {
+ std::string callback_data = userdata.asString();
+ bool new_value = gSavedSettings.getBOOL(callback_data);
+ return new_value;
}
-//
-void menu_toggle_variable( void* user_data )
-{
- BOOL checked = *(BOOL*)user_data;
- *(BOOL*)user_data = !checked;
-}
+};
-BOOL menu_check_variable( void* user_data)
+void menu_toggle_attached_lights(void* user_data)
{
- return *(BOOL*)user_data;
+ LLPipeline::sRenderAttachedLights = gSavedSettings.getBOOL("RenderAttachedLights");
}
-
-BOOL enable_land_selected( void* )
+void menu_toggle_attached_particles(void* user_data)
{
- return !(LLViewerParcelMgr::getInstance()->selectionEmpty());
+ LLPipeline::sRenderAttachedParticles = gSavedSettings.getBOOL("RenderAttachedParticles");
}
-void menu_toggle_attached_lights(void* user_data)
+class LLAdvancedHandleAttchedLightParticles: public view_listener_t
{
- menu_toggle_control(user_data);
- LLPipeline::sRenderAttachedLights = gSavedSettings.getBOOL("RenderAttachedLights");
+ bool handleEvent(const LLSD& userdata)
+ {
+ std::string control_name = userdata.asString();
+ if (control_name == "RenderAttachedLights")
+{
+ menu_toggle_attached_lights(NULL);
}
-
-void menu_toggle_attached_particles(void* user_data)
+ else if (control_name == "RenderAttachedParticles")
{
- menu_toggle_control(user_data);
- LLPipeline::sRenderAttachedParticles = gSavedSettings.getBOOL("RenderAttachedParticles");
+ menu_toggle_attached_particles(NULL);
+}
+ return true;
}
+};
class LLSomethingSelected : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = !(LLSelectMgr::getInstance()->getSelection()->isEmpty());
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLSomethingSelectedNoHUD : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection();
bool new_value = !(selection->isEmpty()) && !(selection->getSelectType() == SELECT_TYPE_HUD);
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
-BOOL enable_more_than_one_selected(void* )
-{
- return (LLSelectMgr::getInstance()->getSelection()->getObjectCount() > 1);
-}
-
static bool is_editable_selected()
{
return (LLSelectMgr::getInstance()->getSelection()->getFirstEditableObject() != NULL);
@@ -6275,106 +6506,62 @@ static bool is_editable_selected()
class LLEditableSelected : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
- gMenuHolder->findControl(userdata["control"].asString())->setValue(is_editable_selected());
- return true;
+ return is_editable_selected();
}
};
class LLEditableSelectedMono : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
+ bool new_value = false;
LLViewerRegion* region = gAgent.getRegion();
- if(region && gMenuHolder && gMenuHolder->findControl(userdata["control"].asString()))
+ if(region && gMenuHolder)
{
bool have_cap = (! region->getCapability("UpdateScriptTask").empty());
- bool selected = is_editable_selected() && have_cap;
- gMenuHolder->findControl(userdata["control"].asString())->setValue(selected);
- return true;
+ new_value = is_editable_selected() && have_cap;
}
- return false;
+ return new_value;
}
};
class LLToolsEnableTakeCopy : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool all_valid = false;
if (LLSelectMgr::getInstance())
{
if (!LLSelectMgr::getInstance()->getSelection()->isEmpty())
{
- all_valid = true;
+ all_valid = true;
#ifndef HACKED_GODLIKE_VIEWER
# ifdef TOGGLE_HACKED_GODLIKE_VIEWER
- if (LLViewerLogin::getInstance()->isInProductionGrid()
- || !gAgent.isGodlike())
+ if (LLViewerLogin::getInstance()->isInProductionGrid()
+ || !gAgent.isGodlike())
# endif
+ {
+ struct f : public LLSelectedObjectFunctor
{
- struct f : public LLSelectedObjectFunctor
+ virtual bool apply(LLViewerObject* obj)
{
- virtual bool apply(LLViewerObject* obj)
- {
- return (!obj->permCopy() || obj->isAttachment());
- }
- } func;
- const bool firstonly = true;
- bool any_invalid = LLSelectMgr::getInstance()->getSelection()->applyToRootObjects(&func, firstonly);
- all_valid = !any_invalid;
- }
-#endif // HACKED_GODLIKE_VIEWER
+ return (!obj->permCopy() || obj->isAttachment());
+ }
+ } func;
+ const bool firstonly = true;
+ bool any_invalid = LLSelectMgr::getInstance()->getSelection()->applyToRootObjects(&func, firstonly);
+ all_valid = !any_invalid;
}
+#endif // HACKED_GODLIKE_VIEWER
+ }
}
- gMenuHolder->findControl(userdata["control"].asString())->setValue(all_valid);
- return true;
+ return all_valid;
}
};
-BOOL enable_selection_you_own_all(void*)
-{
- if (LLSelectMgr::getInstance())
- {
- struct f : public LLSelectedObjectFunctor
- {
- virtual bool apply(LLViewerObject* obj)
- {
- return (!obj->permYouOwner());
- }
- } func;
- const bool firstonly = true;
- bool no_perms = LLSelectMgr::getInstance()->getSelection()->applyToRootObjects(&func, firstonly);
- if (no_perms)
- {
- return FALSE;
- }
- }
- return TRUE;
-}
-
-BOOL enable_selection_you_own_one(void*)
-{
- if (LLSelectMgr::getInstance())
- {
- struct f : public LLSelectedObjectFunctor
- {
- virtual bool apply(LLViewerObject* obj)
- {
- return (obj->permYouOwner());
- }
- } func;
- const bool firstonly = true;
- bool any_perms = LLSelectMgr::getInstance()->getSelection()->applyToRootObjects(&func, firstonly);
- if (!any_perms)
- {
- return FALSE;
- }
- }
- return TRUE;
-}
class LLHasAsset : public LLInventoryCollectFunctor
{
@@ -6436,6 +6623,15 @@ BOOL enable_save_into_inventory(void*)
return FALSE;
}
+class LLToolsEnableSaveToInventory : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = enable_save_into_inventory(NULL);
+ return new_value;
+ }
+};
+
BOOL enable_save_into_task_inventory(void*)
{
LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstRootNode();
@@ -6453,101 +6649,63 @@ BOOL enable_save_into_task_inventory(void*)
class LLToolsEnableSaveToObjectInventory : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = enable_save_into_task_inventory(NULL);
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
-BOOL enable_not_thirdperson(void*)
-{
- return !gAgent.cameraThirdPerson();
-}
-
-
-// BOOL enable_export_selected(void *)
-// {
-// if (LLSelectMgr::getInstance()->getSelection()->isEmpty())
-// {
-// return FALSE;
-// }
-// if (!gExporterRequestID.isNull())
-// {
-// return FALSE;
-// }
-// if (!LLUploadDialog::modalUploadIsFinished())
-// {
-// return FALSE;
-// }
-// return TRUE;
-// }
class LLViewEnableMouselook : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
// You can't go directly from customize avatar to mouselook.
// TODO: write code with appropriate dialogs to handle this transition.
bool new_value = (CAMERA_MODE_CUSTOMIZE_AVATAR != gAgent.getCameraMode() && !gSavedSettings.getBOOL("FreezeTime"));
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLToolsEnableToolNotPie : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = ( LLToolMgr::getInstance()->getBaseTool() != LLToolPie::getInstance() );
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLWorldEnableCreateLandmark : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
- bool new_value = can_create_landmark();
-
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
-
- return true;
+ return !LLLandmarkActions::landmarkAlreadyExists();
}
};
class LLWorldEnableSetHomeLocation : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = gAgent.isGodlike() ||
(gAgent.getRegion() && gAgent.getRegion()->getAllowSetHome());
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLWorldEnableTeleportHome : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLViewerRegion* regionp = gAgent.getRegion();
bool agent_on_prelude = (regionp && regionp->isPrelude());
bool enable_teleport_home = gAgent.isGodlike() || !agent_on_prelude;
- gMenuHolder->findControl(userdata["control"].asString())->setValue(enable_teleport_home);
- return true;
+ return enable_teleport_home;
}
};
-BOOL enable_region_owner(void*)
-{
- if(gAgent.getRegion() && gAgent.getRegion()->getOwner() == gAgent.getID())
- return TRUE;
- return enable_god_customer_service(NULL);
-}
-
BOOL enable_god_full(void*)
{
return gAgent.getGodLevel() >= GOD_FULL;
@@ -6568,18 +6726,6 @@ BOOL enable_god_basic(void*)
return gAgent.getGodLevel() > GOD_NOT;
}
-#if 0 // 1.9.2
-void toggle_vertex_shaders(void *)
-{
- BOOL use_shaders = gPipeline.getUseVertexShaders();
- gPipeline.setUseVertexShaders(use_shaders);
-}
-
-BOOL check_vertex_shaders(void *)
-{
- return gPipeline.getUseVertexShaders();
-}
-#endif
void toggle_show_xui_names(void *)
{
@@ -6594,18 +6740,9 @@ BOOL check_show_xui_names(void *)
return gSavedSettings.getBOOL("ShowXUINames");
}
-
-
-void toggle_cull_small(void *)
-{
-// gPipeline.mCullBySize = !gPipeline.mCullBySize;
-//
-// gSavedSettings.setBOOL("RenderCullBySize", gPipeline.mCullBySize);
-}
-
class LLToolsSelectOnlyMyObjects : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
BOOL cur_val = gSavedSettings.getBOOL("SelectOwnedOnly");
@@ -6617,7 +6754,7 @@ class LLToolsSelectOnlyMyObjects : public view_listener_t
class LLToolsSelectOnlyMovableObjects : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
BOOL cur_val = gSavedSettings.getBOOL("SelectMovableOnly");
@@ -6629,7 +6766,7 @@ class LLToolsSelectOnlyMovableObjects : public view_listener_t
class LLToolsSelectBySurrounding : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLSelectMgr::sRectSelectInclusive = !LLSelectMgr::sRectSelectInclusive;
@@ -6640,7 +6777,7 @@ class LLToolsSelectBySurrounding : public view_listener_t
class LLToolsShowHiddenSelection : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
// TomY TODO Merge these
LLSelectMgr::sRenderHiddenSelections = !LLSelectMgr::sRenderHiddenSelections;
@@ -6652,7 +6789,7 @@ class LLToolsShowHiddenSelection : public view_listener_t
class LLToolsShowSelectionLightRadius : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
// TomY TODO merge these
LLSelectMgr::sRenderLightRadius = !LLSelectMgr::sRenderLightRadius;
@@ -6664,7 +6801,7 @@ class LLToolsShowSelectionLightRadius : public view_listener_t
class LLToolsEditLinkedParts : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
BOOL select_individuals = gSavedSettings.getBOOL("EditLinkedParts");
if (select_individuals)
@@ -6679,40 +6816,14 @@ class LLToolsEditLinkedParts : public view_listener_t
}
};
-void reload_personal_settings_overrides(void *)
-{
- llinfos << "Loading overrides from " << gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT,"overrides.xml") << llendl;
-
- gSavedSettings.loadFromFile(gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT,"overrides.xml"));
-}
-
void reload_vertex_shader(void *)
{
//THIS WOULD BE AN AWESOME PLACE TO RELOAD SHADERS... just a thought - DaveP
}
-void slow_mo_animations(void*)
-{
- static BOOL slow_mo = FALSE;
- if (slow_mo)
- {
- gAgent.getAvatarObject()->setAnimTimeFactor(1.f);
- slow_mo = FALSE;
- }
- else
- {
- gAgent.getAvatarObject()->setAnimTimeFactor(0.2f);
- slow_mo = TRUE;
- }
-}
-
void handle_dump_avatar_local_textures(void*)
{
- LLVOAvatar* avatar = gAgent.getAvatarObject();
- if( avatar )
- {
- avatar->dumpLocalTextures();
- }
+ gAgent.getAvatarObject()->dumpLocalTextures();
}
void handle_debug_avatar_textures(void*)
@@ -6720,14 +6831,14 @@ void handle_debug_avatar_textures(void*)
LLViewerObject* objectp = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
if (objectp)
{
- LLFloaterAvatarTextures::show(objectp->getID());
+ LLFloaterReg::showInstance( "avatar_tetures", LLSD(objectp->getID()) );
}
}
void handle_grab_texture(void* data)
{
ETextureIndex index = (ETextureIndex)((intptr_t)data);
- LLVOAvatar* avatar = gAgent.getAvatarObject();
+ const LLVOAvatarSelf* avatar = gAgent.getAvatarObject();
if ( avatar )
{
const LLUUID& asset_id = avatar->grabLocalTexture(index);
@@ -6737,32 +6848,14 @@ void handle_grab_texture(void* data)
LLUUID folder_id(gInventory.findCategoryUUIDForType(asset_type));
if(folder_id.notNull())
{
- std::string name = "Baked ";
- switch (index)
+ std::string name = "Unknown";
+ const LLVOAvatarDictionary::TextureEntry *texture_dict = LLVOAvatarDictionary::getInstance()->getTexture(index);
+ if (texture_dict->mIsBakedTexture)
{
- case TEX_EYES_BAKED:
- name.append("Iris");
- break;
- case TEX_HEAD_BAKED:
- name.append("Head");
- break;
- case TEX_UPPER_BAKED:
- name.append("Upper Body");
- break;
- case TEX_LOWER_BAKED:
- name.append("Lower Body");
- break;
- case TEX_SKIRT_BAKED:
- name.append("Skirt");
- break;
- case TEX_HAIR_BAKED:
- name.append("Hair");
- break;
- default:
- name.append("Unknown");
- break;
+ EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
+ name = "Baked " + LLVOAvatarDictionary::getInstance()->getBakedTexture(baked_index)->mNameCapitalized;
}
- name.append(" Texture");
+ name += " Texture";
LLUUID item_id;
item_id.generate();
@@ -6795,17 +6888,17 @@ void handle_grab_texture(void* data)
gInventory.updateItem(item);
gInventory.notifyObservers();
- LLInventoryView* view = LLInventoryView::getActiveInventory();
+ LLFloaterInventory* view = LLFloaterInventory::getActiveInventory();
// Show the preview panel for textures to let
// user know that the image is now in inventory.
if(view)
{
- LLUICtrl* focus_ctrl = gFocusMgr.getKeyboardFocus();
+ LLFocusableElement* focus_ctrl = gFocusMgr.getKeyboardFocus();
view->getPanel()->setSelection(item_id, TAKE_FOCUS_NO);
view->getPanel()->openSelected();
- //LLInventoryView::dumpSelectionInformation((void*)view);
+ //LLFloaterInventory::dumpSelectionInformation((void*)view);
// restore keyboard focus
gFocusMgr.setKeyboardFocus(focus_ctrl);
}
@@ -6820,7 +6913,7 @@ void handle_grab_texture(void* data)
BOOL enable_grab_texture(void* data)
{
ETextureIndex index = (ETextureIndex)((intptr_t)data);
- LLVOAvatar* avatar = gAgent.getAvatarObject();
+ const LLVOAvatarSelf* avatar = gAgent.getAvatarObject();
if ( avatar )
{
return avatar->canGrabLocalTexture(index);
@@ -6842,8 +6935,7 @@ LLVOAvatar* find_avatar_from_object( LLViewerObject* object )
}
while( object && !object->isAvatar() );
}
- else
- if( !object->isAvatar() )
+ else if( !object->isAvatar() )
{
object = NULL;
}
@@ -6898,7 +6990,7 @@ void force_error_driver_crash(void *)
class LLToolsUseSelectionForGrid : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLSelectMgr::getInstance()->clearGridObjects();
struct f : public LLSelectedObjectFunctor
@@ -6931,10 +7023,6 @@ void handle_test_load_url(void*)
// LLViewerMenuHolderGL
//
-LLViewerMenuHolderGL::LLViewerMenuHolderGL() : LLMenuHolderGL()
-{
-}
-
BOOL LLViewerMenuHolderGL::hideMenus()
{
BOOL handled = LLMenuHolderGL::hideMenus();
@@ -6998,20 +7086,14 @@ void handle_load_from_xml(void*)
if (picker.getOpenFile(LLFilePicker::FFLOAD_XML))
{
std::string filename = picker.getFirstFile();
- LLFloater* floater = new LLFloater("sample_floater");
- LLUICtrlFactory::getInstance()->buildFloater(floater, filename);
+ LLFloater* floater = new LLFloater(LLSD());
+ LLUICtrlFactory::getInstance()->buildFloater(floater, filename, NULL);
}
}
void handle_web_browser_test(void*)
{
- const bool open_links_externally = false;
- const bool open_app_slurls = true;
- LLFloaterHtml::getInstance()->show(
- "http://secondlife.com/app/search/slurls.html",
- "Web Browser Test",
- open_links_externally,
- open_app_slurls);
+ LLWeb::loadURL("http://secondlife.com/app/search/slurls.html");
}
void handle_buy_currency_test(void*)
@@ -7025,7 +7107,7 @@ void handle_buy_currency_test(void*)
// *TODO: Replace with call to LLUI::getLanguage() after windows-setup
// branch merges in. JC
- std::string language = "en-us";
+ std::string language = "en";
language = gSavedSettings.getString("Language");
if (language.empty() || language == "default")
{
@@ -7037,7 +7119,7 @@ void handle_buy_currency_test(void*)
}
if (language.empty() || language == "default")
{
- language = "en-us";
+ language = "en";
}
replace["[LANGUAGE]"] = language;
@@ -7045,15 +7127,12 @@ void handle_buy_currency_test(void*)
llinfos << "buy currency url " << url << llendl;
- LLFloaterHtmlCurrency* floater = LLFloaterHtmlCurrency::showInstance(url);
- // Needed so we can use secondlife:///app/floater/self/close SLURLs
- floater->setTrusted(true);
- floater->center();
+ LLFloaterReg::showInstance("buy_currency_html", LLSD(url));
}
void handle_rebake_textures(void*)
{
- LLVOAvatar* avatar = gAgent.getAvatarObject();
+ LLVOAvatarSelf* avatar = gAgent.getAvatarObject();
if (!avatar) return;
// Slam pending upload count to "unstick" things
@@ -7076,7 +7155,7 @@ BOOL get_visibility(void* user_data)
// TomY TODO: Get rid of these?
class LLViewShowHoverTips : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLHoverView::sShowHoverTips = !LLHoverView::sShowHoverTips;
return true;
@@ -7085,18 +7164,17 @@ class LLViewShowHoverTips : public view_listener_t
class LLViewCheckShowHoverTips : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = LLHoverView::sShowHoverTips;
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
// TomY TODO: Get rid of these?
class LLViewHighlightTransparent : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLDrawPoolAlpha::sShowDebugAlpha = !LLDrawPoolAlpha::sShowDebugAlpha;
return true;
@@ -7105,17 +7183,157 @@ class LLViewHighlightTransparent : public view_listener_t
class LLViewCheckHighlightTransparent : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = LLDrawPoolAlpha::sShowDebugAlpha;
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
+ return new_value;
+ }
+};
+
+class LLViewBeaconWidth : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ std::string width = userdata.asString();
+ if(width == "1")
+ {
+ gSavedSettings.setS32("DebugBeaconLineWidth", 1);
+ }
+ else if(width == "4")
+ {
+ gSavedSettings.setS32("DebugBeaconLineWidth", 4);
+ }
+ else if(width == "16")
+ {
+ gSavedSettings.setS32("DebugBeaconLineWidth", 16);
+ }
+ else if(width == "32")
+ {
+ gSavedSettings.setS32("DebugBeaconLineWidth", 32);
+ }
+
return true;
}
};
+
+class LLViewToggleBeacon : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ std::string beacon = userdata.asString();
+ if (beacon == "scriptsbeacon")
+ {
+ LLPipeline::toggleRenderScriptedBeacons(NULL);
+ gSavedSettings.setBOOL( "scriptsbeacon", LLPipeline::getRenderScriptedBeacons(NULL) );
+ // toggle the other one off if it's on
+ if (LLPipeline::getRenderScriptedBeacons(NULL) && LLPipeline::getRenderScriptedTouchBeacons(NULL))
+ {
+ LLPipeline::toggleRenderScriptedTouchBeacons(NULL);
+ gSavedSettings.setBOOL( "scripttouchbeacon", LLPipeline::getRenderScriptedTouchBeacons(NULL) );
+ }
+ }
+ else if (beacon == "physicalbeacon")
+ {
+ LLPipeline::toggleRenderPhysicalBeacons(NULL);
+ gSavedSettings.setBOOL( "physicalbeacon", LLPipeline::getRenderPhysicalBeacons(NULL) );
+ }
+ else if (beacon == "soundsbeacon")
+ {
+ LLPipeline::toggleRenderSoundBeacons(NULL);
+ gSavedSettings.setBOOL( "soundsbeacon", LLPipeline::getRenderSoundBeacons(NULL) );
+ }
+ else if (beacon == "particlesbeacon")
+ {
+ LLPipeline::toggleRenderParticleBeacons(NULL);
+ gSavedSettings.setBOOL( "particlesbeacon", LLPipeline::getRenderParticleBeacons(NULL) );
+ }
+ else if (beacon == "scripttouchbeacon")
+ {
+ LLPipeline::toggleRenderScriptedTouchBeacons(NULL);
+ gSavedSettings.setBOOL( "scripttouchbeacon", LLPipeline::getRenderScriptedTouchBeacons(NULL) );
+ // toggle the other one off if it's on
+ if (LLPipeline::getRenderScriptedBeacons(NULL) && LLPipeline::getRenderScriptedTouchBeacons(NULL))
+ {
+ LLPipeline::toggleRenderScriptedBeacons(NULL);
+ gSavedSettings.setBOOL( "scriptsbeacon", LLPipeline::getRenderScriptedBeacons(NULL) );
+ }
+ }
+ else if (beacon == "renderbeacons")
+ {
+ LLPipeline::toggleRenderBeacons(NULL);
+ gSavedSettings.setBOOL( "renderbeacons", LLPipeline::getRenderBeacons(NULL) );
+ // toggle the other one on if it's not
+ if (!LLPipeline::getRenderBeacons(NULL) && !LLPipeline::getRenderHighlights(NULL))
+ {
+ LLPipeline::toggleRenderHighlights(NULL);
+ gSavedSettings.setBOOL( "renderhighlights", LLPipeline::getRenderHighlights(NULL) );
+ }
+ }
+ else if (beacon == "renderhighlights")
+ {
+ LLPipeline::toggleRenderHighlights(NULL);
+ gSavedSettings.setBOOL( "renderhighlights", LLPipeline::getRenderHighlights(NULL) );
+ // toggle the other one on if it's not
+ if (!LLPipeline::getRenderBeacons(NULL) && !LLPipeline::getRenderHighlights(NULL))
+ {
+ LLPipeline::toggleRenderBeacons(NULL);
+ gSavedSettings.setBOOL( "renderbeacons", LLPipeline::getRenderBeacons(NULL) );
+ }
+ }
+
+ return true;
+ }
+};
+
+class LLViewCheckBeaconEnabled : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ std::string beacon = userdata.asString();
+ bool new_value = false;
+ if (beacon == "scriptsbeacon")
+ {
+ new_value = gSavedSettings.getBOOL( "scriptsbeacon");
+ LLPipeline::setRenderScriptedBeacons(new_value);
+ }
+ else if (beacon == "physicalbeacon")
+ {
+ new_value = gSavedSettings.getBOOL( "physicalbeacon");
+ LLPipeline::setRenderPhysicalBeacons(new_value);
+ }
+ else if (beacon == "soundsbeacon")
+ {
+ new_value = gSavedSettings.getBOOL( "soundsbeacon");
+ LLPipeline::setRenderSoundBeacons(new_value);
+ }
+ else if (beacon == "particlesbeacon")
+ {
+ new_value = gSavedSettings.getBOOL( "particlesbeacon");
+ LLPipeline::setRenderParticleBeacons(new_value);
+ }
+ else if (beacon == "scripttouchbeacon")
+ {
+ new_value = gSavedSettings.getBOOL( "scripttouchbeacon");
+ LLPipeline::setRenderScriptedTouchBeacons(new_value);
+ }
+ else if (beacon == "renderbeacons")
+ {
+ new_value = gSavedSettings.getBOOL( "renderbeacons");
+ LLPipeline::setRenderBeacons(new_value);
+ }
+ else if (beacon == "renderhighlights")
+ {
+ new_value = gSavedSettings.getBOOL( "renderhighlights");
+ LLPipeline::setRenderHighlights(new_value);
+ }
+ return new_value;
+ }
+};
+
class LLViewToggleRenderType : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
std::string type = userdata.asString();
if (type == "hideparticles")
@@ -7128,22 +7346,21 @@ class LLViewToggleRenderType : public view_listener_t
class LLViewCheckRenderType : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
- std::string type = userdata["data"].asString();
+ std::string type = userdata.asString();
bool new_value = false;
if (type == "hideparticles")
{
new_value = LLPipeline::toggleRenderTypeControlNegated((void *)LLPipeline::RENDER_TYPE_PARTICLES);
}
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLViewShowHUDAttachments : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
LLPipeline::sShowHUDAttachments = !LLPipeline::sShowHUDAttachments;
return true;
@@ -7152,123 +7369,127 @@ class LLViewShowHUDAttachments : public view_listener_t
class LLViewCheckHUDAttachments : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
bool new_value = LLPipeline::sShowHUDAttachments;
- gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
- return true;
+ return new_value;
}
};
class LLEditEnableTakeOff : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
- std::string control_name = userdata["control"].asString();
- std::string clothing = userdata["data"].asString();
+ std::string clothing = userdata.asString();
bool new_value = false;
if (clothing == "shirt")
{
- new_value = LLAgent::selfHasWearable((void *)WT_SHIRT);
+ new_value = LLAgentWearables::selfHasWearable(WT_SHIRT);
}
if (clothing == "pants")
{
- new_value = LLAgent::selfHasWearable((void *)WT_PANTS);
+ new_value = LLAgentWearables::selfHasWearable(WT_PANTS);
}
if (clothing == "shoes")
{
- new_value = LLAgent::selfHasWearable((void *)WT_SHOES);
+ new_value = LLAgentWearables::selfHasWearable(WT_SHOES);
}
if (clothing == "socks")
{
- new_value = LLAgent::selfHasWearable((void *)WT_SOCKS);
+ new_value = LLAgentWearables::selfHasWearable(WT_SOCKS);
}
if (clothing == "jacket")
{
- new_value = LLAgent::selfHasWearable((void *)WT_JACKET);
+ new_value = LLAgentWearables::selfHasWearable(WT_JACKET);
}
if (clothing == "gloves")
{
- new_value = LLAgent::selfHasWearable((void *)WT_GLOVES);
+ new_value = LLAgentWearables::selfHasWearable(WT_GLOVES);
}
if (clothing == "undershirt")
{
- new_value = LLAgent::selfHasWearable((void *)WT_UNDERSHIRT);
+ new_value = LLAgentWearables::selfHasWearable(WT_UNDERSHIRT);
}
if (clothing == "underpants")
{
- new_value = LLAgent::selfHasWearable((void *)WT_UNDERPANTS);
+ new_value = LLAgentWearables::selfHasWearable(WT_UNDERPANTS);
}
if (clothing == "skirt")
{
- new_value = LLAgent::selfHasWearable((void *)WT_SKIRT);
+ new_value = LLAgentWearables::selfHasWearable(WT_SKIRT);
}
- gMenuHolder->findControl(control_name)->setValue(new_value);
- return true;
+ if (clothing == "alpha")
+ {
+ new_value = LLAgentWearables::selfHasWearable(WT_ALPHA);
+ }
+ if (clothing == "tattoo")
+ {
+ new_value = LLAgentWearables::selfHasWearable(WT_TATTOO);
+ }
+ return new_value;
}
};
class LLEditTakeOff : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
std::string clothing = userdata.asString();
if (clothing == "shirt")
{
- LLAgent::userRemoveWearable((void*)WT_SHIRT);
+ LLAgentWearables::userRemoveWearable((void*)WT_SHIRT);
}
else if (clothing == "pants")
{
- LLAgent::userRemoveWearable((void*)WT_PANTS);
+ LLAgentWearables::userRemoveWearable((void*)WT_PANTS);
}
else if (clothing == "shoes")
{
- LLAgent::userRemoveWearable((void*)WT_SHOES);
+ LLAgentWearables::userRemoveWearable((void*)WT_SHOES);
}
else if (clothing == "socks")
{
- LLAgent::userRemoveWearable((void*)WT_SOCKS);
+ LLAgentWearables::userRemoveWearable((void*)WT_SOCKS);
}
else if (clothing == "jacket")
{
- LLAgent::userRemoveWearable((void*)WT_JACKET);
+ LLAgentWearables::userRemoveWearable((void*)WT_JACKET);
}
else if (clothing == "gloves")
{
- LLAgent::userRemoveWearable((void*)WT_GLOVES);
+ LLAgentWearables::userRemoveWearable((void*)WT_GLOVES);
}
else if (clothing == "undershirt")
{
- LLAgent::userRemoveWearable((void*)WT_UNDERSHIRT);
+ LLAgentWearables::userRemoveWearable((void*)WT_UNDERSHIRT);
}
else if (clothing == "underpants")
{
- LLAgent::userRemoveWearable((void*)WT_UNDERPANTS);
+ LLAgentWearables::userRemoveWearable((void*)WT_UNDERPANTS);
}
else if (clothing == "skirt")
{
- LLAgent::userRemoveWearable((void*)WT_SKIRT);
+ LLAgentWearables::userRemoveWearable((void*)WT_SKIRT);
+ }
+ else if (clothing == "alpha")
+ {
+ LLAgentWearables::userRemoveWearable((void*)WT_ALPHA);
+ }
+ else if (clothing == "tattoo")
+ {
+ LLAgentWearables::userRemoveWearable((void*)WT_TATTOO);
}
else if (clothing == "all")
{
- LLAgent::userRemoveAllClothes(NULL);
+ LLAgentWearables::userRemoveAllClothes(NULL);
}
return true;
}
};
-class LLWorldChat : public view_listener_t
-{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
- {
- handle_chat(NULL);
- return true;
- }
-};
-
class LLToolsSelectTool : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
std::string tool_name = userdata.asString();
if (tool_name == "focus")
@@ -7298,7 +7519,7 @@ class LLToolsSelectTool : public view_listener_t
/// WINDLIGHT callbacks
class LLWorldEnvSettings : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
std::string tod = userdata.asString();
LLVector3 sun_direction;
@@ -7306,16 +7527,7 @@ class LLWorldEnvSettings : public view_listener_t
if (tod == "editor")
{
// if not there or is hidden, show it
- if( !LLFloaterEnvSettings::isOpen() ||
- !LLFloaterEnvSettings::instance()->getVisible()) {
- LLFloaterEnvSettings::show();
-
- // otherwise, close it button acts like a toggle
- }
- else
- {
- LLFloaterEnvSettings::instance()->close();
- }
+ LLFloaterReg::toggleInstance("env_settings");
return true;
}
@@ -7375,19 +7587,9 @@ class LLWorldEnvSettings : public view_listener_t
/// Water Menu callbacks
class LLWorldWaterSettings : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
- // if not there or is hidden, show it
- if( !LLFloaterWater::isOpen() ||
- !LLFloaterWater::instance()->getVisible()) {
- LLFloaterWater::show();
-
- // otherwise, close it button acts like a toggle
- }
- else
- {
- LLFloaterWater::instance()->close();
- }
+ LLFloaterReg::toggleInstance("env_water");
return true;
}
};
@@ -7395,9 +7597,9 @@ class LLWorldWaterSettings : public view_listener_t
/// Post-Process callbacks
class LLWorldPostProcess : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
- LLFloaterPostProcess::show();
+ LLFloaterReg::showInstance("env_post_process");
return true;
}
};
@@ -7405,20 +7607,30 @@ class LLWorldPostProcess : public view_listener_t
/// Day Cycle callbacks
class LLWorldDayCycle : public view_listener_t
{
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
- LLFloaterDayCycle::show();
+ LLFloaterReg::showInstance("env_day_cycle");
return true;
}
};
+/// Show First Time Tips calbacks
+class LLHelpCheckShowFirstTimeTip : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ return LLFirstTimeTipsManager::tipsEnabled();
+ }
+};
-
-static void addMenu(view_listener_t *menu, const std::string& name)
+class LLHelpShowFirstTimeTip : public view_listener_t
{
- sMenus.push_back(menu);
- menu->registerListener(gMenuHolder, name);
-}
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLFirstTimeTipsManager::enabledTip(!userdata.asBoolean());
+ return true;
+ }
+};
void initialize_menus()
{
@@ -7428,7 +7640,7 @@ void initialize_menus()
public:
// The "mult" parameter says whether "val" is a multiplier or used to set the value.
LLZoomer(F32 val, bool mult=true) : mVal(val), mMult(mult) {}
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ bool handleEvent(const LLSD& userdata)
{
F32 new_fov_rad = mMult ? LLViewerCamera::getInstance()->getDefaultFOV() * mVal : mVal;
LLViewerCamera::getInstance()->setDefaultFOV(new_fov_rad);
@@ -7440,217 +7652,381 @@ void initialize_menus()
bool mMult;
};
- class LLAvatarReportAbuse : public view_listener_t
- {
- bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
- {
- LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() );
- if(avatar)
- {
- LLFloaterReporter::showFromObject(avatar->getID());
- }
- return true;
- }
- };
+ LLUICtrl::EnableCallbackRegistry::Registrar& enable = LLUICtrl::EnableCallbackRegistry::currentRegistrar();
+ LLUICtrl::CommitCallbackRegistry::Registrar& commit = LLUICtrl::CommitCallbackRegistry::currentRegistrar();
+
+ // Enable God Mode
+ view_listener_t::addMenu(new LLEnableGodCustomerService(), "EnableGodCustomerService");
+
+ // Agent
+ commit.add("Agent.toggleFlying", boost::bind(&LLAgent::toggleFlying));
+ enable.add("Agent.emableFlying", boost::bind(&LLAgent::enableFlying));
// File menu
init_menu_file();
// Edit menu
- addMenu(new LLEditUndo(), "Edit.Undo");
- addMenu(new LLEditRedo(), "Edit.Redo");
- addMenu(new LLEditCut(), "Edit.Cut");
- addMenu(new LLEditCopy(), "Edit.Copy");
- addMenu(new LLEditPaste(), "Edit.Paste");
- addMenu(new LLEditDelete(), "Edit.Delete");
- addMenu(new LLEditSearch(), "Edit.Search");
- addMenu(new LLEditSelectAll(), "Edit.SelectAll");
- addMenu(new LLEditDeselect(), "Edit.Deselect");
- addMenu(new LLEditDuplicate(), "Edit.Duplicate");
- addMenu(new LLEditTakeOff(), "Edit.TakeOff");
-
- addMenu(new LLEditEnableUndo(), "Edit.EnableUndo");
- addMenu(new LLEditEnableRedo(), "Edit.EnableRedo");
- addMenu(new LLEditEnableCut(), "Edit.EnableCut");
- addMenu(new LLEditEnableCopy(), "Edit.EnableCopy");
- addMenu(new LLEditEnablePaste(), "Edit.EnablePaste");
- addMenu(new LLEditEnableDelete(), "Edit.EnableDelete");
- addMenu(new LLEditEnableSelectAll(), "Edit.EnableSelectAll");
- addMenu(new LLEditEnableDeselect(), "Edit.EnableDeselect");
- addMenu(new LLEditEnableDuplicate(), "Edit.EnableDuplicate");
- addMenu(new LLEditEnableTakeOff(), "Edit.EnableTakeOff");
- addMenu(new LLEditEnableCustomizeAvatar(), "Edit.EnableCustomizeAvatar");
+ view_listener_t::addMenu(new LLEditUndo(), "Edit.Undo");
+ view_listener_t::addMenu(new LLEditRedo(), "Edit.Redo");
+ view_listener_t::addMenu(new LLEditCut(), "Edit.Cut");
+ view_listener_t::addMenu(new LLEditCopy(), "Edit.Copy");
+ view_listener_t::addMenu(new LLEditPaste(), "Edit.Paste");
+ view_listener_t::addMenu(new LLEditDelete(), "Edit.Delete");
+ view_listener_t::addMenu(new LLEditSelectAll(), "Edit.SelectAll");
+ view_listener_t::addMenu(new LLEditDeselect(), "Edit.Deselect");
+ view_listener_t::addMenu(new LLEditDuplicate(), "Edit.Duplicate");
+ view_listener_t::addMenu(new LLEditTakeOff(), "Edit.TakeOff");
+
+ view_listener_t::addMenu(new LLEditEnableUndo(), "Edit.EnableUndo");
+ view_listener_t::addMenu(new LLEditEnableRedo(), "Edit.EnableRedo");
+ view_listener_t::addMenu(new LLEditEnableCut(), "Edit.EnableCut");
+ view_listener_t::addMenu(new LLEditEnableCopy(), "Edit.EnableCopy");
+ view_listener_t::addMenu(new LLEditEnablePaste(), "Edit.EnablePaste");
+ view_listener_t::addMenu(new LLEditEnableDelete(), "Edit.EnableDelete");
+ view_listener_t::addMenu(new LLEditEnableSelectAll(), "Edit.EnableSelectAll");
+ view_listener_t::addMenu(new LLEditEnableDeselect(), "Edit.EnableDeselect");
+ view_listener_t::addMenu(new LLEditEnableDuplicate(), "Edit.EnableDuplicate");
+ view_listener_t::addMenu(new LLEditEnableTakeOff(), "Edit.EnableTakeOff");
+ view_listener_t::addMenu(new LLEditEnableCustomizeAvatar(), "Edit.EnableCustomizeAvatar");
// View menu
- addMenu(new LLViewMouselook(), "View.Mouselook");
- addMenu(new LLViewBuildMode(), "View.BuildMode");
- addMenu(new LLViewJoystickFlycam(), "View.JoystickFlycam");
- addMenu(new LLViewCommunicate(), "View.Communicate");
- addMenu(new LLViewResetView(), "View.ResetView");
- addMenu(new LLViewLookAtLastChatter(), "View.LookAtLastChatter");
- addMenu(new LLViewShowHoverTips(), "View.ShowHoverTips");
- addMenu(new LLViewHighlightTransparent(), "View.HighlightTransparent");
- addMenu(new LLViewToggleRenderType(), "View.ToggleRenderType");
- addMenu(new LLViewShowHUDAttachments(), "View.ShowHUDAttachments");
- addMenu(new LLZoomer(1.2f), "View.ZoomOut");
- addMenu(new LLZoomer(1/1.2f), "View.ZoomIn");
- addMenu(new LLZoomer(DEFAULT_FIELD_OF_VIEW, false), "View.ZoomDefault");
- addMenu(new LLViewFullscreen(), "View.Fullscreen");
- addMenu(new LLViewDefaultUISize(), "View.DefaultUISize");
-
- addMenu(new LLViewEnableMouselook(), "View.EnableMouselook");
- addMenu(new LLViewEnableJoystickFlycam(), "View.EnableJoystickFlycam");
- addMenu(new LLViewEnableLastChatter(), "View.EnableLastChatter");
-
- addMenu(new LLViewCheckBuildMode(), "View.CheckBuildMode");
- addMenu(new LLViewCheckJoystickFlycam(), "View.CheckJoystickFlycam");
- addMenu(new LLViewCheckShowHoverTips(), "View.CheckShowHoverTips");
- addMenu(new LLViewCheckHighlightTransparent(), "View.CheckHighlightTransparent");
- addMenu(new LLViewCheckRenderType(), "View.CheckRenderType");
- addMenu(new LLViewCheckHUDAttachments(), "View.CheckHUDAttachments");
+ view_listener_t::addMenu(new LLViewMouselook(), "View.Mouselook");
+ view_listener_t::addMenu(new LLViewJoystickFlycam(), "View.JoystickFlycam");
+ view_listener_t::addMenu(new LLViewResetView(), "View.ResetView");
+ view_listener_t::addMenu(new LLViewLookAtLastChatter(), "View.LookAtLastChatter");
+ view_listener_t::addMenu(new LLViewShowHoverTips(), "View.ShowHoverTips");
+ view_listener_t::addMenu(new LLViewHighlightTransparent(), "View.HighlightTransparent");
+ view_listener_t::addMenu(new LLViewToggleRenderType(), "View.ToggleRenderType");
+ view_listener_t::addMenu(new LLViewShowHUDAttachments(), "View.ShowHUDAttachments");
+ view_listener_t::addMenu(new LLZoomer(1.2f), "View.ZoomOut");
+ view_listener_t::addMenu(new LLZoomer(1/1.2f), "View.ZoomIn");
+ view_listener_t::addMenu(new LLZoomer(DEFAULT_FIELD_OF_VIEW, false), "View.ZoomDefault");
+ view_listener_t::addMenu(new LLViewFullscreen(), "View.Fullscreen");
+ view_listener_t::addMenu(new LLViewDefaultUISize(), "View.DefaultUISize");
+
+ view_listener_t::addMenu(new LLViewEnableMouselook(), "View.EnableMouselook");
+ view_listener_t::addMenu(new LLViewEnableJoystickFlycam(), "View.EnableJoystickFlycam");
+ view_listener_t::addMenu(new LLViewEnableLastChatter(), "View.EnableLastChatter");
+
+ view_listener_t::addMenu(new LLViewCheckJoystickFlycam(), "View.CheckJoystickFlycam");
+ view_listener_t::addMenu(new LLViewCheckShowHoverTips(), "View.CheckShowHoverTips");
+ view_listener_t::addMenu(new LLViewCheckHighlightTransparent(), "View.CheckHighlightTransparent");
+ view_listener_t::addMenu(new LLViewCheckRenderType(), "View.CheckRenderType");
+ view_listener_t::addMenu(new LLViewCheckHUDAttachments(), "View.CheckHUDAttachments");
// World menu
- addMenu(new LLWorldChat(), "World.Chat");
- addMenu(new LLWorldAlwaysRun(), "World.AlwaysRun");
- addMenu(new LLWorldFly(), "World.Fly");
- addMenu(new LLWorldEnableFly(), "World.EnableFly");
- addMenu(new LLWorldCreateLandmark(), "World.CreateLandmark");
- addMenu(new LLWorldSetHomeLocation(), "World.SetHomeLocation");
- addMenu(new LLWorldTeleportHome(), "World.TeleportHome");
- addMenu(new LLWorldSetAway(), "World.SetAway");
- addMenu(new LLWorldSetBusy(), "World.SetBusy");
-
- addMenu(new LLWorldEnableCreateLandmark(), "World.EnableCreateLandmark");
- addMenu(new LLWorldEnableSetHomeLocation(), "World.EnableSetHomeLocation");
- addMenu(new LLWorldEnableTeleportHome(), "World.EnableTeleportHome");
- addMenu(new LLWorldEnableBuyLand(), "World.EnableBuyLand");
-
- addMenu(new LLWorldCheckAlwaysRun(), "World.CheckAlwaysRun");
+ commit.add("World.Chat", boost::bind(&handle_chat, (void*)NULL));
+ view_listener_t::addMenu(new LLWorldAlwaysRun(), "World.AlwaysRun");
+ view_listener_t::addMenu(new LLWorldCreateLandmark(), "World.CreateLandmark");
+ view_listener_t::addMenu(new LLWorldSetHomeLocation(), "World.SetHomeLocation");
+ view_listener_t::addMenu(new LLWorldTeleportHome(), "World.TeleportHome");
+ view_listener_t::addMenu(new LLWorldSetAway(), "World.SetAway");
+ view_listener_t::addMenu(new LLWorldSetBusy(), "World.SetBusy");
+
+ view_listener_t::addMenu(new LLWorldEnableCreateLandmark(), "World.EnableCreateLandmark");
+ view_listener_t::addMenu(new LLWorldEnableSetHomeLocation(), "World.EnableSetHomeLocation");
+ view_listener_t::addMenu(new LLWorldEnableTeleportHome(), "World.EnableTeleportHome");
+ view_listener_t::addMenu(new LLWorldEnableBuyLand(), "World.EnableBuyLand");
+
+ view_listener_t::addMenu(new LLWorldCheckAlwaysRun(), "World.CheckAlwaysRun");
- (new LLWorldEnvSettings())->registerListener(gMenuHolder, "World.EnvSettings");
- (new LLWorldWaterSettings())->registerListener(gMenuHolder, "World.WaterSettings");
- (new LLWorldPostProcess())->registerListener(gMenuHolder, "World.PostProcess");
- (new LLWorldDayCycle())->registerListener(gMenuHolder, "World.DayCycle");
+ view_listener_t::addMenu(new LLWorldEnvSettings(), "World.EnvSettings");
+ view_listener_t::addMenu(new LLWorldWaterSettings(), "World.WaterSettings");
+ view_listener_t::addMenu(new LLWorldPostProcess(), "World.PostProcess");
+ view_listener_t::addMenu(new LLWorldDayCycle(), "World.DayCycle");
+
+ view_listener_t::addMenu(new LLHelpCheckShowFirstTimeTip(), "Help.CheckShowFirstTimeTip");
+ view_listener_t::addMenu(new LLHelpShowFirstTimeTip(), "Help.ShowQuickTips");
// Tools menu
- addMenu(new LLToolsSelectTool(), "Tools.SelectTool");
- addMenu(new LLToolsSelectOnlyMyObjects(), "Tools.SelectOnlyMyObjects");
- addMenu(new LLToolsSelectOnlyMovableObjects(), "Tools.SelectOnlyMovableObjects");
- addMenu(new LLToolsSelectBySurrounding(), "Tools.SelectBySurrounding");
- addMenu(new LLToolsShowHiddenSelection(), "Tools.ShowHiddenSelection");
- addMenu(new LLToolsShowSelectionLightRadius(), "Tools.ShowSelectionLightRadius");
- addMenu(new LLToolsEditLinkedParts(), "Tools.EditLinkedParts");
- addMenu(new LLToolsSnapObjectXY(), "Tools.SnapObjectXY");
- addMenu(new LLToolsUseSelectionForGrid(), "Tools.UseSelectionForGrid");
- addMenu(new LLToolsLink(), "Tools.Link");
- addMenu(new LLToolsUnlink(), "Tools.Unlink");
- addMenu(new LLToolsStopAllAnimations(), "Tools.StopAllAnimations");
- addMenu(new LLToolsReleaseKeys(), "Tools.ReleaseKeys");
- addMenu(new LLToolsEnableReleaseKeys(), "Tools.EnableReleaseKeys");
- addMenu(new LLToolsLookAtSelection(), "Tools.LookAtSelection");
- addMenu(new LLToolsBuyOrTake(), "Tools.BuyOrTake");
- addMenu(new LLToolsTakeCopy(), "Tools.TakeCopy");
- addMenu(new LLToolsSaveToObjectInventory(), "Tools.SaveToObjectInventory");
- addMenu(new LLToolsSelectedScriptAction(), "Tools.SelectedScriptAction");
-
- addMenu(new LLToolsEnableToolNotPie(), "Tools.EnableToolNotPie");
- addMenu(new LLToolsEnableLink(), "Tools.EnableLink");
- addMenu(new LLToolsEnableUnlink(), "Tools.EnableUnlink");
- addMenu(new LLToolsEnableBuyOrTake(), "Tools.EnableBuyOrTake");
- addMenu(new LLToolsEnableTakeCopy(), "Tools.EnableTakeCopy");
- addMenu(new LLToolsEnableSaveToObjectInventory(), "Tools.EnableSaveToObjectInventory");
-
- /*addMenu(new LLToolsVisibleBuyObject(), "Tools.VisibleBuyObject");
- addMenu(new LLToolsVisibleTakeObject(), "Tools.VisibleTakeObject");*/
+ view_listener_t::addMenu(new LLToolsSelectTool(), "Tools.SelectTool");
+ view_listener_t::addMenu(new LLToolsSelectOnlyMyObjects(), "Tools.SelectOnlyMyObjects");
+ view_listener_t::addMenu(new LLToolsSelectOnlyMovableObjects(), "Tools.SelectOnlyMovableObjects");
+ view_listener_t::addMenu(new LLToolsSelectBySurrounding(), "Tools.SelectBySurrounding");
+ view_listener_t::addMenu(new LLToolsShowHiddenSelection(), "Tools.ShowHiddenSelection");
+ view_listener_t::addMenu(new LLToolsShowSelectionLightRadius(), "Tools.ShowSelectionLightRadius");
+ view_listener_t::addMenu(new LLToolsEditLinkedParts(), "Tools.EditLinkedParts");
+ view_listener_t::addMenu(new LLToolsSnapObjectXY(), "Tools.SnapObjectXY");
+ view_listener_t::addMenu(new LLToolsUseSelectionForGrid(), "Tools.UseSelectionForGrid");
+ view_listener_t::addMenu(new LLToolsLink(), "Tools.Link");
+ view_listener_t::addMenu(new LLToolsUnlink(), "Tools.Unlink");
+ view_listener_t::addMenu(new LLToolsStopAllAnimations(), "Tools.StopAllAnimations");
+ view_listener_t::addMenu(new LLToolsReleaseKeys(), "Tools.ReleaseKeys");
+ view_listener_t::addMenu(new LLToolsEnableReleaseKeys(), "Tools.EnableReleaseKeys");
+ view_listener_t::addMenu(new LLToolsLookAtSelection(), "Tools.LookAtSelection");
+ view_listener_t::addMenu(new LLToolsBuyOrTake(), "Tools.BuyOrTake");
+ view_listener_t::addMenu(new LLToolsTakeCopy(), "Tools.TakeCopy");
+ view_listener_t::addMenu(new LLToolsSaveToInventory(), "Tools.SaveToInventory");
+ view_listener_t::addMenu(new LLToolsSaveToObjectInventory(), "Tools.SaveToObjectInventory");
+ view_listener_t::addMenu(new LLToolsSelectedScriptAction(), "Tools.SelectedScriptAction");
+
+ view_listener_t::addMenu(new LLToolsEnableToolNotPie(), "Tools.EnableToolNotPie");
+ view_listener_t::addMenu(new LLToolsEnableLink(), "Tools.EnableLink");
+ view_listener_t::addMenu(new LLToolsEnableUnlink(), "Tools.EnableUnlink");
+ view_listener_t::addMenu(new LLToolsEnableBuyOrTake(), "Tools.EnableBuyOrTake");
+ view_listener_t::addMenu(new LLToolsEnableTakeCopy(), "Tools.EnableTakeCopy");
+ view_listener_t::addMenu(new LLToolsEnableSaveToInventory(), "Tools.EnableSaveToInventory");
+ view_listener_t::addMenu(new LLToolsEnableSaveToObjectInventory(), "Tools.EnableSaveToObjectInventory");
+
+ /*view_listener_t::addMenu(new LLToolsVisibleBuyObject(), "Tools.VisibleBuyObject");
+ view_listener_t::addMenu(new LLToolsVisibleTakeObject(), "Tools.VisibleTakeObject");*/
// Help menu
// most items use the ShowFloater method
+ // Advance menu
+ view_listener_t::addMenu(new LLAdvancedToggleConsole(), "Advanced.ToggleConsole");
+ view_listener_t::addMenu(new LLAdvancedCheckConsole(), "Advanced.CheckConsole");
+ view_listener_t::addMenu(new LLAdvancedDumpInfoToConsole(), "Advanced.DumpInfoToConsole");
+ // Advanced > HUD Info
+ view_listener_t::addMenu(new LLAdvancedToggleHUDInfo(), "Advanced.ToggleHUDInfo");
+ view_listener_t::addMenu(new LLAdvancedCheckHUDInfo(), "Advanced.CheckHUDInfo");
+
+ // Advanced Other Settings
+ view_listener_t::addMenu(new LLAdvancedClearGroupCache(), "Advanced.ClearGroupCache");
+
+ // Advanced > Render > Types
+ view_listener_t::addMenu(new LLAdvancedToggleRenderType(), "Advanced.ToggleRenderType");
+ view_listener_t::addMenu(new LLAdvancedCheckRenderType(), "Advanced.CheckRenderType");
+
+ //// Advanced > Render > Features
+ view_listener_t::addMenu(new LLAdvancedToggleFeature(), "Advanced.ToggleFeature");
+ view_listener_t::addMenu(new LLAdvancedCheckFeature(), "Advanced.CheckFeature");
+ // Advanced > Render > Info Displays
+ view_listener_t::addMenu(new LLAdvancedToggleInfoDisplay(), "Advanced.ToggleInfoDisplay");
+ view_listener_t::addMenu(new LLAdvancedCheckInfoDisplay(), "Advanced.CheckInfoDisplay");
+ view_listener_t::addMenu(new LLAdvancedSelectedTextureInfo(), "Advanced.SelectedTextureInfo");
+ view_listener_t::addMenu(new LLAdvancedToggleWireframe(), "Advanced.ToggleWireframe");
+ view_listener_t::addMenu(new LLAdvancedCheckWireframe(), "Advanced.CheckWireframe");
+ view_listener_t::addMenu(new LLAdvancedToggleDisableTextures(), "Advanced.ToggleDisableTextures");
+ view_listener_t::addMenu(new LLAdvancedCheckDisableTextures(), "Advanced.CheckDisableTextures");
+ view_listener_t::addMenu(new LLAdvancedEnableObjectObjectOcclusion(), "Advanced.EnableObjectObjectOcclusion");
+ view_listener_t::addMenu(new LLAdvancedToggleRandomizeFramerate(), "Advanced.ToggleRandomizeFramerate");
+ view_listener_t::addMenu(new LLAdvancedCheckRandomizeFramerate(), "Advanced.CheckRandomizeFramerate");
+ view_listener_t::addMenu(new LLAdvancedTogglePeriodicSlowFrame(), "Advanced.TogglePeriodicSlowFrame");
+ view_listener_t::addMenu(new LLAdvancedCheckPeriodicSlowFrame(), "Advanced.CheckPeriodicSlowFrame");
+ view_listener_t::addMenu(new LLAdvancedVectorizePerfTest(), "Advanced.VectorizePerfTest");
+ view_listener_t::addMenu(new LLAdvancedToggleFrameTest(), "Advanced.ToggleFrameTest");
+ view_listener_t::addMenu(new LLAdvancedCheckFrameTest(), "Advanced.CheckFrameTest");
+ view_listener_t::addMenu(new LLAdvancedHandleAttchedLightParticles(), "Advanced.HandleAttchedLightParticles");
+
+
+ #ifdef TOGGLE_HACKED_GODLIKE_VIEWER
+ view_listener_t::addMenu(new LLAdvancedHandleToggleHackedGodmode(), "Advanced.HandleToggleHackedGodmode");
+ view_listener_t::addMenu(new LLAdvancedCheckToggleHackedGodmode(), "Advanced.CheckToggleHackedGodmode");
+ view_listener_t::addMenu(new LLAdvancedEnableToggleHackedGodmode(), "Advanced.EnableToggleHackedGodmode");
+ #endif
+
+ // Advanced > World
+ view_listener_t::addMenu(new LLAdvancedDumpScriptedCamera(), "Advanced.DumpScriptedCamera");
+ view_listener_t::addMenu(new LLAdvancedDumpRegionObjectCache(), "Advanced.DumpRegionObjectCache");
+
+ // Advanced > UI
+ view_listener_t::addMenu(new LLAdvancedWebBrowserTest(), "Advanced.WebBrowserTest");
+ view_listener_t::addMenu(new LLAdvancedBuyCurrencyTest(), "Advanced.BuyCurrencyTest");
+ view_listener_t::addMenu(new LLAdvancedToggleEditableUI(), "Advanced.ToggleEditableUI");
+ view_listener_t::addMenu(new LLAdvancedDumpSelectMgr(), "Advanced.DumpSelectMgr");
+ view_listener_t::addMenu(new LLAdvancedDumpInventory(), "Advanced.DumpInventory");
+ view_listener_t::addMenu(new LLAdvancedDumpFocusHolder(), "Advanced.DumpFocusHolder");
+ view_listener_t::addMenu(new LLAdvancedPrintSelectedObjectInfo(), "Advanced.PrintSelectedObjectInfo");
+ view_listener_t::addMenu(new LLAdvancedPrintAgentInfo(), "Advanced.PrintAgentInfo");
+ view_listener_t::addMenu(new LLAdvancedPrintTextureMemoryStats(), "Advanced.PrintTextureMemoryStats");
+ view_listener_t::addMenu(new LLAdvancedToggleDebugClicks(), "Advanced.ToggleDebugClicks");
+ view_listener_t::addMenu(new LLAdvancedCheckDebugClicks(), "Advanced.CheckDebugClicks");
+ view_listener_t::addMenu(new LLAdvancedCheckDebugViews(), "Advanced.CheckDebugViews");
+ view_listener_t::addMenu(new LLAdvancedToggleDebugViews(), "Advanced.ToggleDebugViews");
+ view_listener_t::addMenu(new LLAdvancedToggleXUINameTooltips(), "Advanced.ToggleXUINameTooltips");
+ view_listener_t::addMenu(new LLAdvancedCheckXUINameTooltips(), "Advanced.CheckXUINameTooltips");
+ view_listener_t::addMenu(new LLAdvancedToggleDebugMouseEvents(), "Advanced.ToggleDebugMouseEvents");
+ view_listener_t::addMenu(new LLAdvancedCheckDebugMouseEvents(), "Advanced.CheckDebugMouseEvents");
+ view_listener_t::addMenu(new LLAdvancedToggleDebugKeys(), "Advanced.ToggleDebugKeys");
+ view_listener_t::addMenu(new LLAdvancedCheckDebugKeys(), "Advanced.CheckDebugKeys");
+ view_listener_t::addMenu(new LLAdvancedToggleDebugWindowProc(), "Advanced.ToggleDebugWindowProc");
+ view_listener_t::addMenu(new LLAdvancedCheckDebugWindowProc(), "Advanced.CheckDebugWindowProc");
+
+
+ // Advanced > XUI
+ commit.add("Advanced.ReloadColorSettings", boost::bind(&LLUIColorTable::loadFromSettings, LLUIColorTable::getInstance()));
+ view_listener_t::addMenu(new LLAdvancedLoadUIFromXML(), "Advanced.LoadUIFromXML");
+ view_listener_t::addMenu(new LLAdvancedSaveUIToXML(), "Advanced.SaveUIToXML");
+ view_listener_t::addMenu(new LLAdvancedToggleXUINames(), "Advanced.ToggleXUINames");
+ view_listener_t::addMenu(new LLAdvancedCheckXUINames(), "Advanced.CheckXUINames");
+ view_listener_t::addMenu(new LLAdvancedSendTestIms(), "Advanced.SendTestIMs");
+ view_listener_t::addMenu(new LLAdvancedAvatarInspector(), "Advanced.AvatarInspector");
+
+ // Advanced > Character > Grab Baked Texture
+ view_listener_t::addMenu(new LLAdvancedGrabBakedTexture(), "Advanced.GrabBakedTexture");
+ view_listener_t::addMenu(new LLAdvancedEnableGrabBakedTexture(), "Advanced.EnableGrabBakedTexture");
+
+ // Advanced > Character > Character Tests
+ view_listener_t::addMenu(new LLAdvancedAppearanceToXML(), "Advanced.AppearanceToXML");
+ view_listener_t::addMenu(new LLAdvancedToggleCharacterGeometry(), "Advanced.ToggleCharacterGeometry");
+
+ view_listener_t::addMenu(new LLAdvancedTestMale(), "Advanced.TestMale");
+ view_listener_t::addMenu(new LLAdvancedTestFemale(), "Advanced.TestFemale");
+ view_listener_t::addMenu(new LLAdvancedTogglePG(), "Advanced.TogglePG");
+
+ // Advanced > Character (toplevel)
+ view_listener_t::addMenu(new LLAdvancedToggleAllowTapTapHoldRun(), "Advanced.ToggleAllowTapTapHoldRun");
+ view_listener_t::addMenu(new LLAdvancedCheckAllowTapTapHoldRun(), "Advanced.CheckAllowTapTapHoldRun");
+ view_listener_t::addMenu(new LLAdvancedForceParamsToDefault(), "Advanced.ForceParamsToDefault");
+ view_listener_t::addMenu(new LLAdvancedReloadVertexShader(), "Advanced.ReloadVertexShader");
+ view_listener_t::addMenu(new LLAdvancedToggleAnimationInfo(), "Advanced.ToggleAnimationInfo");
+ view_listener_t::addMenu(new LLAdvancedCheckAnimationInfo(), "Advanced.CheckAnimationInfo");
+ view_listener_t::addMenu(new LLAdvancedToggleShowLookAt(), "Advanced.ToggleShowLookAt");
+ view_listener_t::addMenu(new LLAdvancedCheckShowLookAt(), "Advanced.CheckShowLookAt");
+ view_listener_t::addMenu(new LLAdvancedToggleShowPointAt(), "Advanced.ToggleShowPointAt");
+ view_listener_t::addMenu(new LLAdvancedCheckShowPointAt(), "Advanced.CheckShowPointAt");
+ view_listener_t::addMenu(new LLAdvancedToggleDebugJointUpdates(), "Advanced.ToggleDebugJointUpdates");
+ view_listener_t::addMenu(new LLAdvancedCheckDebugJointUpdates(), "Advanced.CheckDebugJointUpdates");
+ view_listener_t::addMenu(new LLAdvancedToggleDisableLOD(), "Advanced.ToggleDisableLOD");
+ view_listener_t::addMenu(new LLAdvancedCheckDisableLOD(), "Advanced.CheckDisableLOD");
+ view_listener_t::addMenu(new LLAdvancedToggleDebugCharacterVis(), "Advanced.ToggleDebugCharacterVis");
+ view_listener_t::addMenu(new LLAdvancedCheckDebugCharacterVis(), "Advanced.CheckDebugCharacterVis");
+ view_listener_t::addMenu(new LLAdvancedDumpAttachments(), "Advanced.DumpAttachments");
+ view_listener_t::addMenu(new LLAdvancedRebakeTextures(), "Advanced.RebakeTextures");
+ #ifndef LL_RELEASE_FOR_DOWNLOAD
+ view_listener_t::addMenu(new LLAdvancedDebugAvatarTextures(), "Advanced.DebugAvatarTextures");
+ view_listener_t::addMenu(new LLAdvancedDumpAvatarLocalTextures(), "Advanced.DumpAvatarLocalTextures");
+ #endif
+ // Advanced > Network
+ view_listener_t::addMenu(new LLAdvancedEnableMessageLog(), "Advanced.EnableMessageLog");
+ view_listener_t::addMenu(new LLAdvancedDisableMessageLog(), "Advanced.DisableMessageLog");
+ view_listener_t::addMenu(new LLAdvancedDropPacket(), "Advanced.DropPacket");
+
+ // Advanced > Recorder
+ view_listener_t::addMenu(new LLAdvancedAgentPilot(), "Advanced.AgentPilot");
+ view_listener_t::addMenu(new LLAdvancedToggleAgentPilotLoop(), "Advanced.ToggleAgentPilotLoop");
+ view_listener_t::addMenu(new LLAdvancedCheckAgentPilotLoop(), "Advanced.CheckAgentPilotLoop");
+
+ // Advanced > Debugging
+ view_listener_t::addMenu(new LLAdvancedForceErrorBreakpoint(), "Advanced.ForceErrorBreakpoint");
+ view_listener_t::addMenu(new LLAdvancedForceErrorLlerror(), "Advanced.ForceErrorLlerror");
+ view_listener_t::addMenu(new LLAdvancedForceErrorBadMemoryAccess(), "Advanced.ForceErrorBadMemoryAccess");
+ view_listener_t::addMenu(new LLAdvancedForceErrorInfiniteLoop(), "Advanced.ForceErrorInfiniteLoop");
+ view_listener_t::addMenu(new LLAdvancedForceErrorSoftwareException(), "Advanced.ForceErrorSoftwareException");
+ view_listener_t::addMenu(new LLAdvancedForceErrorDriverCrash(), "Advanced.ForceErrorDriverCrash");
+ view_listener_t::addMenu(new LLAdvancedForceErrorDriverCrash(), "Advanced.ForceErrorDisconnectViewer");
+
+ // Advanced (toplevel)
+ view_listener_t::addMenu(new LLAdvancedToggleShowObjectUpdates(), "Advanced.ToggleShowObjectUpdates");
+ view_listener_t::addMenu(new LLAdvancedCheckShowObjectUpdates(), "Advanced.CheckShowObjectUpdates");
+ view_listener_t::addMenu(new LLAdvancedCompressImage(), "Advanced.CompressImage");
+ view_listener_t::addMenu(new LLAdvancedShowDebugSettings(), "Advanced.ShowDebugSettings");
+ view_listener_t::addMenu(new LLAdvancedToggleViewAdminOptions(), "Advanced.ToggleViewAdminOptions");
+ view_listener_t::addMenu(new LLAdvancedCheckViewAdminOptions(), "Advanced.CheckViewAdminOptions");
+ view_listener_t::addMenu(new LLAdvancedRequestAdminStatus(), "Advanced.RequestAdminStatus");
+ view_listener_t::addMenu(new LLAdvancedLeaveAdminStatus(), "Advanced.LeaveAdminStatus");
+
+
+ // Admin >Object
+ view_listener_t::addMenu(new LLAdminForceTakeCopy(), "Admin.ForceTakeCopy");
+ view_listener_t::addMenu(new LLAdminHandleObjectOwnerSelf(), "Admin.HandleObjectOwnerSelf");
+ view_listener_t::addMenu(new LLAdminHandleObjectOwnerPermissive(), "Admin.HandleObjectOwnerPermissive");
+ view_listener_t::addMenu(new LLAdminHandleForceDelete(), "Admin.HandleForceDelete");
+ view_listener_t::addMenu(new LLAdminHandleObjectLock(), "Admin.HandleObjectLock");
+ view_listener_t::addMenu(new LLAdminHandleObjectAssetIDs(), "Admin.HandleObjectAssetIDs");
+
+ // Admin >Parcel
+ view_listener_t::addMenu(new LLAdminHandleForceParcelOwnerToMe(), "Admin.HandleForceParcelOwnerToMe");
+ view_listener_t::addMenu(new LLAdminHandleForceParcelToContent(), "Admin.HandleForceParcelToContent");
+ view_listener_t::addMenu(new LLAdminHandleClaimPublicLand(), "Admin.HandleClaimPublicLand");
+
+ // Admin >Region
+ view_listener_t::addMenu(new LLAdminHandleRegionDumpTempAssetData(), "Admin.HandleRegionDumpTempAssetData");
+ // Admin top level
+ view_listener_t::addMenu(new LLAdminOnSaveState(), "Admin.OnSaveState");
+
// Self pie menu
- addMenu(new LLSelfStandUp(), "Self.StandUp");
- addMenu(new LLSelfRemoveAllAttachments(), "Self.RemoveAllAttachments");
+ view_listener_t::addMenu(new LLSelfStandUp(), "Self.StandUp");
+ view_listener_t::addMenu(new LLSelfRemoveAllAttachments(), "Self.RemoveAllAttachments");
- addMenu(new LLSelfEnableStandUp(), "Self.EnableStandUp");
- addMenu(new LLSelfEnableRemoveAllAttachments(), "Self.EnableRemoveAllAttachments");
+ view_listener_t::addMenu(new LLSelfEnableStandUp(), "Self.EnableStandUp");
+ view_listener_t::addMenu(new LLSelfEnableRemoveAllAttachments(), "Self.EnableRemoveAllAttachments");
+
+ // we don't use boost::bind directly to delay side tray construction
+ view_listener_t::addMenu(new LLSelfFriends(), "Self.Friends");
+ view_listener_t::addMenu(new LLSelfGroups(), "Self.Groups");
// Avatar pie menu
- addMenu(new LLObjectMute(), "Avatar.Mute");
- addMenu(new LLAvatarAddFriend(), "Avatar.AddFriend");
- addMenu(new LLAvatarFreeze(), "Avatar.Freeze");
- addMenu(new LLAvatarDebug(), "Avatar.Debug");
- addMenu(new LLAvatarVisibleDebug(), "Avatar.VisibleDebug");
- addMenu(new LLAvatarEnableDebug(), "Avatar.EnableDebug");
- addMenu(new LLAvatarInviteToGroup(), "Avatar.InviteToGroup");
- addMenu(new LLAvatarGiveCard(), "Avatar.GiveCard");
- addMenu(new LLAvatarEject(), "Avatar.Eject");
- addMenu(new LLAvatarSendIM(), "Avatar.SendIM");
- addMenu(new LLAvatarReportAbuse(), "Avatar.ReportAbuse");
+ view_listener_t::addMenu(new LLObjectMute(), "Avatar.Mute");
+ view_listener_t::addMenu(new LLAvatarAddFriend(), "Avatar.AddFriend");
+ view_listener_t::addMenu(new LLAvatarAddContact(), "Avatar.AddContact");
+ view_listener_t::addMenu(new LLAvatarFreeze(), "Avatar.Freeze");
+ view_listener_t::addMenu(new LLAvatarDebug(), "Avatar.Debug");
+ view_listener_t::addMenu(new LLAvatarVisibleDebug(), "Avatar.VisibleDebug");
+ view_listener_t::addMenu(new LLAvatarEnableDebug(), "Avatar.EnableDebug");
+ view_listener_t::addMenu(new LLAvatarInviteToGroup(), "Avatar.InviteToGroup");
+ view_listener_t::addMenu(new LLAvatarGiveCard(), "Avatar.GiveCard");
+ view_listener_t::addMenu(new LLAvatarEject(), "Avatar.Eject");
+ view_listener_t::addMenu(new LLAvatarSendIM(), "Avatar.SendIM");
+ view_listener_t::addMenu(new LLAvatarReportAbuse(), "Avatar.ReportAbuse");
- addMenu(new LLObjectEnableMute(), "Avatar.EnableMute");
- addMenu(new LLAvatarEnableAddFriend(), "Avatar.EnableAddFriend");
- addMenu(new LLAvatarEnableFreezeEject(), "Avatar.EnableFreezeEject");
+ view_listener_t::addMenu(new LLObjectEnableMute(), "Avatar.EnableMute");
+ view_listener_t::addMenu(new LLAvatarEnableAddFriend(), "Avatar.EnableAddFriend");
+ view_listener_t::addMenu(new LLAvatarEnableFreezeEject(), "Avatar.EnableFreezeEject");
// Object pie menu
- addMenu(new LLObjectOpen(), "Object.Open");
- addMenu(new LLObjectBuild(), "Object.Build");
- addMenu(new LLObjectTouch(), "Object.Touch");
- addMenu(new LLObjectSitOrStand(), "Object.SitOrStand");
- addMenu(new LLObjectDelete(), "Object.Delete");
- addMenu(new LLObjectAttachToAvatar(), "Object.AttachToAvatar");
- addMenu(new LLObjectReturn(), "Object.Return");
- addMenu(new LLObjectReportAbuse(), "Object.ReportAbuse");
- addMenu(new LLObjectMute(), "Object.Mute");
- addMenu(new LLObjectBuy(), "Object.Buy");
- addMenu(new LLObjectEdit(), "Object.Edit");
- addMenu(new LLObjectInspect(), "Object.Inspect");
-
- addMenu(new LLObjectEnableOpen(), "Object.EnableOpen");
- addMenu(new LLObjectEnableTouch(), "Object.EnableTouch");
- addMenu(new LLObjectEnableSitOrStand(), "Object.EnableSitOrStand");
- addMenu(new LLObjectEnableDelete(), "Object.EnableDelete");
- addMenu(new LLObjectEnableWear(), "Object.EnableWear");
- addMenu(new LLObjectEnableReturn(), "Object.EnableReturn");
- addMenu(new LLObjectEnableReportAbuse(), "Object.EnableReportAbuse");
- addMenu(new LLObjectEnableMute(), "Object.EnableMute");
- addMenu(new LLObjectEnableBuy(), "Object.EnableBuy");
-
- /*addMenu(new LLObjectVisibleTouch(), "Object.VisibleTouch");
- addMenu(new LLObjectVisibleCustomTouch(), "Object.VisibleCustomTouch");
- addMenu(new LLObjectVisibleStandUp(), "Object.VisibleStandUp");
- addMenu(new LLObjectVisibleSitHere(), "Object.VisibleSitHere");
- addMenu(new LLObjectVisibleCustomSit(), "Object.VisibleCustomSit");*/
+ view_listener_t::addMenu(new LLObjectBuild(), "Object.Build");
+ view_listener_t::addMenu(new LLObjectTouch(), "Object.Touch");
+ view_listener_t::addMenu(new LLObjectSitOrStand(), "Object.SitOrStand");
+ view_listener_t::addMenu(new LLObjectDelete(), "Object.Delete");
+ view_listener_t::addMenu(new LLObjectAttachToAvatar(), "Object.AttachToAvatar");
+ view_listener_t::addMenu(new LLObjectReturn(), "Object.Return");
+ view_listener_t::addMenu(new LLObjectReportAbuse(), "Object.ReportAbuse");
+ view_listener_t::addMenu(new LLObjectMute(), "Object.Mute");
+ view_listener_t::addMenu(new LLObjectBuy(), "Object.Buy");
+ view_listener_t::addMenu(new LLObjectEdit(), "Object.Edit");
+
+ view_listener_t::addMenu(new LLObjectEnableOpen(), "Object.EnableOpen");
+ view_listener_t::addMenu(new LLObjectEnableTouch(), "Object.EnableTouch");
+ view_listener_t::addMenu(new LLObjectEnableSitOrStand(), "Object.EnableSitOrStand");
+ view_listener_t::addMenu(new LLObjectEnableDelete(), "Object.EnableDelete");
+ view_listener_t::addMenu(new LLObjectEnableWear(), "Object.EnableWear");
+ view_listener_t::addMenu(new LLObjectEnableReturn(), "Object.EnableReturn");
+ view_listener_t::addMenu(new LLObjectEnableReportAbuse(), "Object.EnableReportAbuse");
+ view_listener_t::addMenu(new LLObjectEnableMute(), "Object.EnableMute");
+ view_listener_t::addMenu(new LLObjectEnableBuy(), "Object.EnableBuy");
+
+ /*view_listener_t::addMenu(new LLObjectVisibleTouch(), "Object.VisibleTouch");
+ view_listener_t::addMenu(new LLObjectVisibleCustomTouch(), "Object.VisibleCustomTouch");
+ view_listener_t::addMenu(new LLObjectVisibleStandUp(), "Object.VisibleStandUp");
+ view_listener_t::addMenu(new LLObjectVisibleSitHere(), "Object.VisibleSitHere");
+ view_listener_t::addMenu(new LLObjectVisibleCustomSit(), "Object.VisibleCustomSit");*/
// Attachment pie menu
- addMenu(new LLAttachmentDrop(), "Attachment.Drop");
- addMenu(new LLAttachmentDetach(), "Attachment.Detach");
-
- addMenu(new LLAttachmentEnableDrop(), "Attachment.EnableDrop");
- addMenu(new LLAttachmentEnableDetach(), "Attachment.EnableDetach");
+ enable.add("Attachment.Label", boost::bind(&onEnableAttachmentLabel, _1, _2));
+ view_listener_t::addMenu(new LLAttachmentDrop(), "Attachment.Drop");
+ view_listener_t::addMenu(new LLAttachmentDetachFromPoint(), "Attachment.DetachFromPoint");
+ view_listener_t::addMenu(new LLAttachmentDetach(), "Attachment.Detach");
+ view_listener_t::addMenu(new LLAttachmentPointFilled(), "Attachment.PointFilled");
+ view_listener_t::addMenu(new LLAttachmentEnableDrop(), "Attachment.EnableDrop");
+ view_listener_t::addMenu(new LLAttachmentEnableDetach(), "Attachment.EnableDetach");
// Land pie menu
- addMenu(new LLLandBuild(), "Land.Build");
- addMenu(new LLLandSit(), "Land.Sit");
- addMenu(new LLLandBuyPass(), "Land.BuyPass");
- addMenu(new LLLandEdit(), "Land.Edit");
+ view_listener_t::addMenu(new LLLandBuild(), "Land.Build");
+ view_listener_t::addMenu(new LLLandSit(), "Land.Sit");
+ view_listener_t::addMenu(new LLLandBuyPass(), "Land.BuyPass");
+ view_listener_t::addMenu(new LLLandEdit(), "Land.Edit");
- addMenu(new LLLandEnableBuyPass(), "Land.EnableBuyPass");
+ view_listener_t::addMenu(new LLLandEnableBuyPass(), "Land.EnableBuyPass");
// Generic actions
- addMenu(new LLShowFloater(), "ShowFloater");
- addMenu(new LLPromptShowURL(), "PromptShowURL");
- addMenu(new LLShowAgentProfile(), "ShowAgentProfile");
- addMenu(new LLShowAgentGroups(), "ShowAgentGroups");
- addMenu(new LLToggleControl(), "ToggleControl");
-
- addMenu(new LLGoToObject(), "GoToObject");
- addMenu(new LLPayObject(), "PayObject");
-
- addMenu(new LLEnablePayObject(), "EnablePayObject");
- addMenu(new LLEnableEdit(), "EnableEdit");
-
- addMenu(new LLFloaterVisible(), "FloaterVisible");
- addMenu(new LLSomethingSelected(), "SomethingSelected");
- addMenu(new LLSomethingSelectedNoHUD(), "SomethingSelectedNoHUD");
- addMenu(new LLEditableSelected(), "EditableSelected");
- addMenu(new LLEditableSelectedMono(), "EditableSelectedMono");
+ view_listener_t::addMenu(new LLShowFloater(), "ShowFloater");
+ view_listener_t::addMenu(new LLPromptShowURL(), "PromptShowURL");
+ view_listener_t::addMenu(new LLShowAgentProfile(), "ShowAgentProfile");
+ view_listener_t::addMenu(new LLToggleControl(), "ToggleControl");
+ view_listener_t::addMenu(new LLCheckControl(), "CheckControl");
+ view_listener_t::addMenu(new LLGoToObject(), "GoToObject");
+ view_listener_t::addMenu(new LLPayObject(), "PayObject");
+
+ view_listener_t::addMenu(new LLEnablePayObject(), "EnablePayObject");
+ view_listener_t::addMenu(new LLEnableEdit(), "EnableEdit");
+
+ view_listener_t::addMenu(new LLFloaterVisible(), "FloaterVisible");
+ view_listener_t::addMenu(new LLSomethingSelected(), "SomethingSelected");
+ view_listener_t::addMenu(new LLSomethingSelectedNoHUD(), "SomethingSelectedNoHUD");
+ view_listener_t::addMenu(new LLEditableSelected(), "EditableSelected");
+ view_listener_t::addMenu(new LLEditableSelectedMono(), "EditableSelectedMono");
+
}