diff options
Diffstat (limited to 'linden/indra/newview')
-rw-r--r-- | linden/indra/newview/files.lst | 1 | ||||
-rw-r--r-- | linden/indra/newview/llfloaterbulkpermission.cpp | 595 | ||||
-rw-r--r-- | linden/indra/newview/llfloaterbulkpermission.h | 143 | ||||
-rw-r--r-- | linden/indra/newview/llpanelobject.cpp | 26 | ||||
-rw-r--r-- | linden/indra/newview/llviewermenu.cpp | 2280 | ||||
-rw-r--r-- | linden/indra/newview/skins/default/xui/en-us/floater_bulk_perms.xml | 127 | ||||
-rw-r--r-- | linden/indra/newview/skins/default/xui/en-us/floater_tools.xml | 18 | ||||
-rw-r--r-- | linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml | 2885 |
8 files changed, 5214 insertions, 861 deletions
diff --git a/linden/indra/newview/files.lst b/linden/indra/newview/files.lst index 3233ade..d9d4d5e 100644 --- a/linden/indra/newview/files.lst +++ b/linden/indra/newview/files.lst | |||
@@ -63,6 +63,7 @@ newview/llfloateravatarinfo.cpp | |||
63 | newview/llfloateravatarpicker.cpp | 63 | newview/llfloateravatarpicker.cpp |
64 | newview/llfloateravatartextures.cpp | 64 | newview/llfloateravatartextures.cpp |
65 | newview/llfloaterbuildoptions.cpp | 65 | newview/llfloaterbuildoptions.cpp |
66 | newview/llfloaterbulkpermission.cpp | ||
66 | newview/llfloaterbump.cpp | 67 | newview/llfloaterbump.cpp |
67 | newview/llfloaterbuy.cpp | 68 | newview/llfloaterbuy.cpp |
68 | newview/llfloaterbuycontents.cpp | 69 | newview/llfloaterbuycontents.cpp |
diff --git a/linden/indra/newview/llfloaterbulkpermission.cpp b/linden/indra/newview/llfloaterbulkpermission.cpp new file mode 100644 index 0000000..29d94bc --- /dev/null +++ b/linden/indra/newview/llfloaterbulkpermission.cpp | |||
@@ -0,0 +1,595 @@ | |||
1 | /** | ||
2 | * @file llfloaterbulkpermissions.cpp | ||
3 | * @brief A floater which allows task inventory item's properties to be changed on mass. | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2008&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2008, Linden Research, Inc. | ||
8 | * | ||
9 | * Second Life Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
11 | * to you under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
13 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
14 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
15 | * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
16 | * | ||
17 | * There are special exceptions to the terms and conditions of the GPL as | ||
18 | * it is applied to this Source Code. View the full text of the exception | ||
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
20 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
21 | * | ||
22 | * By copying, modifying or distributing this software, you acknowledge | ||
23 | * that you have read and understood your obligations described above, | ||
24 | * and agree to abide by those obligations. | ||
25 | * | ||
26 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
27 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
28 | * COMPLETENESS OR PERFORMANCE. | ||
29 | * $/LicenseInfo$ | ||
30 | */ | ||
31 | |||
32 | /* Allow multiple task inventory properties to be set in one go, by Michelle2 Zenovka */ | ||
33 | |||
34 | /* TODO | ||
35 | |||
36 | * Add in the option to select objects or task inventory | ||
37 | s | ||
38 | |||
39 | It would be nice to set the permissions on groups of prims as well as task inventory | ||
40 | |||
41 | */ | ||
42 | |||
43 | |||
44 | #include "llviewerprecompiledheaders.h" | ||
45 | #include "llfloaterbulkpermission.h" | ||
46 | #include "llagent.h" | ||
47 | #include "llchat.h" | ||
48 | #include "llviewerwindow.h" | ||
49 | #include "llviewerobject.h" | ||
50 | #include "llviewerobjectlist.h" | ||
51 | #include "llviewerregion.h" | ||
52 | #include "lscript_rt_interface.h" | ||
53 | #include "llviewercontrol.h" | ||
54 | #include "llviewerobject.h" | ||
55 | #include "llviewerregion.h" | ||
56 | #include "llresmgr.h" | ||
57 | #include "llbutton.h" | ||
58 | #include "lldir.h" | ||
59 | #include "llfloaterchat.h" | ||
60 | #include "llviewerstats.h" | ||
61 | #include "lluictrlfactory.h" | ||
62 | #include "llselectmgr.h" | ||
63 | #include "llinventory.h" | ||
64 | |||
65 | |||
66 | #include <algorithm> | ||
67 | #include <functional> | ||
68 | #include "llcachename.h" | ||
69 | #include "lldbstrings.h" | ||
70 | #include "llinventory.h" | ||
71 | |||
72 | #include "llagent.h" | ||
73 | #include "llbutton.h" | ||
74 | #include "llcheckboxctrl.h" | ||
75 | #include "llfloateravatarinfo.h" | ||
76 | #include "llfloatergroupinfo.h" | ||
77 | #include "llinventorymodel.h" | ||
78 | #include "lllineeditor.h" | ||
79 | #include "llradiogroup.h" | ||
80 | #include "llresmgr.h" | ||
81 | #include "roles_constants.h" | ||
82 | #include "llselectmgr.h" | ||
83 | #include "lltextbox.h" | ||
84 | #include "lluiconstants.h" | ||
85 | #include "llviewerinventory.h" | ||
86 | #include "llviewerobjectlist.h" | ||
87 | #include "llviewerregion.h" | ||
88 | #include "llviewercontrol.h" | ||
89 | |||
90 | #include "lluictrlfactory.h" | ||
91 | |||
92 | |||
93 | const char* BULKPERM_QUEUE_TITLE = "Update Progress"; | ||
94 | const char* BULKPERM_START_STRING = "update"; | ||
95 | |||
96 | namespace | ||
97 | { | ||
98 | struct BulkQueueObjects : public LLSelectedObjectFunctor | ||
99 | { | ||
100 | BOOL scripted; | ||
101 | BOOL modifiable; | ||
102 | LLFloaterBulkPermission* mQueue; | ||
103 | BulkQueueObjects(LLFloaterBulkPermission* q) : mQueue(q), scripted(FALSE), modifiable(FALSE) {} | ||
104 | virtual bool apply(LLViewerObject* obj) | ||
105 | { | ||
106 | scripted = obj->flagScripted(); | ||
107 | modifiable = obj->permModify(); | ||
108 | |||
109 | mQueue->addObject(obj->getID()); | ||
110 | return false; | ||
111 | |||
112 | } | ||
113 | }; | ||
114 | } | ||
115 | |||
116 | ///---------------------------------------------------------------------------- | ||
117 | /// Class LLFloaterBulkPermission | ||
118 | ///---------------------------------------------------------------------------- | ||
119 | |||
120 | // static | ||
121 | LLMap<LLUUID, LLFloaterBulkPermission*> LLFloaterBulkPermission::sInstances; | ||
122 | |||
123 | |||
124 | // Default constructor | ||
125 | LLFloaterBulkPermission::LLFloaterBulkPermission(const std::string& name, | ||
126 | const LLRect& rect, | ||
127 | const char* title, | ||
128 | const char* start_string) : | ||
129 | LLFloater(name, rect, title, | ||
130 | RESIZE_YES, DEFAULT_MIN_WIDTH, DEFAULT_MIN_HEIGHT, | ||
131 | DRAG_ON_TOP, MINIMIZE_YES, CLOSE_YES) | ||
132 | { | ||
133 | |||
134 | req_perm_mask=0; // This should match the default state the checkboxes are set to | ||
135 | recurse=false; | ||
136 | |||
137 | LLUICtrlFactory::getInstance()->buildFloater(this,"floater_bulk_perms.xml"); | ||
138 | |||
139 | childSetAction("Apply...",onApplyBtn,this); | ||
140 | childSetEnabled("Apply...",TRUE); | ||
141 | |||
142 | childSetCommitCallback("Modify",&onCommitPermissions, this); | ||
143 | childSetCommitCallback("Trans",&onCommitPermissions, this); | ||
144 | childSetCommitCallback("Copy",&onCommitPermissions, this); | ||
145 | |||
146 | //childSetCommitCallback("Recurse",&onRecurse, this); | ||
147 | |||
148 | childSetCommitCallback("Parent",&onParent, this); | ||
149 | |||
150 | childSetCommitCallback("objects",&InvSelection, this); | ||
151 | childSetCommitCallback("scripts",&InvSelection, this); | ||
152 | childSetCommitCallback("textures",&InvSelection, this); | ||
153 | childSetCommitCallback("sounds",&InvSelection, this); | ||
154 | childSetCommitCallback("animations",&InvSelection, this); | ||
155 | childSetCommitCallback("notecards",&InvSelection, this); | ||
156 | childSetCommitCallback("landmarks",&InvSelection, this); | ||
157 | childSetCommitCallback("bodyparts",&InvSelection, this); | ||
158 | childSetCommitCallback("clothing",&InvSelection, this); | ||
159 | childSetCommitCallback("gestures",&InvSelection, this); | ||
160 | |||
161 | //Set variable state to XUI default state consistancy | ||
162 | processObject=getChild<LLCheckBoxCtrl>("objects")->get(); | ||
163 | processScript=getChild<LLCheckBoxCtrl>("scripts")->get(); | ||
164 | processTexture=getChild<LLCheckBoxCtrl>("textures")->get(); | ||
165 | processSound=getChild<LLCheckBoxCtrl>("sounds")->get(); | ||
166 | processAnimation=getChild<LLCheckBoxCtrl>("animations")->get(); | ||
167 | processNotecard=getChild<LLCheckBoxCtrl>("notecards")->get(); | ||
168 | processGesture=getChild<LLCheckBoxCtrl>("gestures")->get(); | ||
169 | processClothing=getChild<LLCheckBoxCtrl>("clothing")->get(); | ||
170 | processBodypart=getChild<LLCheckBoxCtrl>("bodyparts")->get(); | ||
171 | processLandmark=getChild<LLCheckBoxCtrl>("landmarks")->get(); | ||
172 | parent=getChild<LLCheckBoxCtrl>("Parent")->get(); | ||
173 | |||
174 | |||
175 | setTitle(title); | ||
176 | |||
177 | if (!getHost()) | ||
178 | { | ||
179 | LLRect curRect = getRect(); | ||
180 | translate(rect.mLeft - curRect.mLeft, rect.mTop - curRect.mTop); | ||
181 | } | ||
182 | |||
183 | mStartString = start_string; | ||
184 | mDone = FALSE; | ||
185 | sInstances.addData(mID, this); | ||
186 | |||
187 | } | ||
188 | |||
189 | void LLFloaterBulkPermission::doApply() | ||
190 | { | ||
191 | // Its alive now do the nasty work that the ScriptQueue and friends try to do in the menu code | ||
192 | // but first grab the user options | ||
193 | |||
194 | LLScrollListCtrl* list = getChild<LLScrollListCtrl>("queue output"); | ||
195 | list->deleteAllItems(); | ||
196 | |||
197 | //Apply to selected objects if requested first | ||
198 | |||
199 | if(parent) | ||
200 | { | ||
201 | llinfos<< "Setting permission on parent items" << llendl; | ||
202 | LLSelectMgr::getInstance()->selectionSetObjectPermissions(PERM_NEXT_OWNER,true, req_perm_mask); | ||
203 | LLSelectMgr::getInstance()->selectionSetObjectPermissions(PERM_NEXT_OWNER,false, ~req_perm_mask); //How annoying need to set and unset | ||
204 | } | ||
205 | |||
206 | |||
207 | LLFloaterBulkPermission* q; | ||
208 | q=(LLFloaterBulkPermission*)this; | ||
209 | |||
210 | BulkQueueObjects func(q); | ||
211 | const bool firstonly = false; | ||
212 | bool fail = LLSelectMgr::getInstance()->getSelection()->applyToObjects(&func, firstonly); | ||
213 | if(fail) | ||
214 | { | ||
215 | if ( !func.modifiable ) | ||
216 | { | ||
217 | gViewerWindow->alertXml("NO MODIFY"); | ||
218 | } | ||
219 | else | ||
220 | { | ||
221 | llwarns << "Bad logic. Are there actualy any items in that prim?" << llendl; | ||
222 | } | ||
223 | } | ||
224 | else | ||
225 | { | ||
226 | if (!q->start()) | ||
227 | { | ||
228 | llwarns << "Unexpected failure attepmting to set permissions." << llendl; | ||
229 | } | ||
230 | } | ||
231 | } | ||
232 | |||
233 | // Destroys the object | ||
234 | LLFloaterBulkPermission::~LLFloaterBulkPermission() | ||
235 | { | ||
236 | sInstances.removeData(mID); | ||
237 | } | ||
238 | |||
239 | // find an instance by ID. Return NULL if it does not exist. | ||
240 | // static | ||
241 | LLFloaterBulkPermission* LLFloaterBulkPermission::findInstance(const LLUUID& id) | ||
242 | { | ||
243 | if(sInstances.checkData(id)) | ||
244 | { | ||
245 | return sInstances.getData(id); | ||
246 | } | ||
247 | return NULL; | ||
248 | } | ||
249 | |||
250 | |||
251 | // This is the callback method for the viewer object currently being | ||
252 | // worked on. | ||
253 | // NOT static, virtual! | ||
254 | void LLFloaterBulkPermission::inventoryChanged(LLViewerObject* viewer_object, | ||
255 | InventoryObjectList* inv, | ||
256 | S32, | ||
257 | void* q_id) | ||
258 | { | ||
259 | llinfos << "LLFloaterBulkPermission::inventoryChanged() for object " | ||
260 | << viewer_object->getID() << llendl; | ||
261 | |||
262 | //Remove this listener from the object since its | ||
263 | //listener callback is now being executed. | ||
264 | |||
265 | //We remove the listener here because the function | ||
266 | //removeVOInventoryListener removes the listener from a ViewerObject | ||
267 | //which it internally stores. | ||
268 | |||
269 | //If we call this further down in the function, calls to handleInventory | ||
270 | //and nextObject may update the interally stored viewer object causing | ||
271 | //the removal of the incorrect listener from an incorrect object. | ||
272 | |||
273 | //Fixes SL-6119:Recompile scripts fails to complete | ||
274 | removeVOInventoryListener(); | ||
275 | |||
276 | if (viewer_object && inv && (viewer_object->getID() == mCurrentObjectID) ) | ||
277 | { | ||
278 | handleInventory(viewer_object, inv); | ||
279 | } | ||
280 | else | ||
281 | { | ||
282 | // something went wrong... | ||
283 | // note that we're not working on this one, and move onto the | ||
284 | // next object in the list. | ||
285 | llwarns << "No inventory for " << mCurrentObjectID | ||
286 | << llendl; | ||
287 | nextObject(); | ||
288 | } | ||
289 | } | ||
290 | |||
291 | void LLFloaterBulkPermission::onApplyBtn(void* user_data) | ||
292 | { | ||
293 | LLFloaterBulkPermission* self = (LLFloaterBulkPermission*)user_data; | ||
294 | self->doApply(); | ||
295 | } | ||
296 | |||
297 | |||
298 | // static | ||
299 | void LLFloaterBulkPermission::InvSelection(LLUICtrl* ctrl, void* data) | ||
300 | { | ||
301 | LLFloaterBulkPermission* self = (LLFloaterBulkPermission*)data; | ||
302 | |||
303 | self->processObject=self->getChild<LLCheckBoxCtrl>("objects")->get(); | ||
304 | self->processScript=self->getChild<LLCheckBoxCtrl>("scripts")->get(); | ||
305 | self->processTexture=self->getChild<LLCheckBoxCtrl>("textures")->get(); | ||
306 | self->processSound=self->getChild<LLCheckBoxCtrl>("sounds")->get(); | ||
307 | self->processAnimation=self->getChild<LLCheckBoxCtrl>("animations")->get(); | ||
308 | self->processNotecard=self->getChild<LLCheckBoxCtrl>("notecards")->get(); | ||
309 | self->processGesture=self->getChild<LLCheckBoxCtrl>("gestures")->get(); | ||
310 | self->processClothing=self->getChild<LLCheckBoxCtrl>("clothing")->get(); | ||
311 | self->processBodypart=self->getChild<LLCheckBoxCtrl>("bodyparts")->get(); | ||
312 | self->processLandmark=self->getChild<LLCheckBoxCtrl>("landmarks")->get(); | ||
313 | |||
314 | |||
315 | } | ||
316 | |||
317 | // static | ||
318 | void LLFloaterBulkPermission::onParent(LLUICtrl* ctrl, void* data) | ||
319 | { | ||
320 | LLFloaterBulkPermission* self = (LLFloaterBulkPermission*)data; | ||
321 | self->parent=self->getChild<LLCheckBoxCtrl>("Parent")->get(); | ||
322 | } | ||
323 | |||
324 | // static | ||
325 | void LLFloaterBulkPermission::onRecurse(LLUICtrl* ctrl, void* data) | ||
326 | { | ||
327 | LLFloaterBulkPermission* self = (LLFloaterBulkPermission*)data; | ||
328 | self->recurse=self->getChild<LLCheckBoxCtrl>("Recurse")->get(); | ||
329 | } | ||
330 | |||
331 | // static | ||
332 | void LLFloaterBulkPermission::onCommitPermissions(LLUICtrl* ctrl, void* data) | ||
333 | { | ||
334 | LLFloaterBulkPermission* self = (LLFloaterBulkPermission*)data; | ||
335 | LLCheckBoxCtrl* CheckModify = self->getChild<LLCheckBoxCtrl>("Modify"); | ||
336 | LLCheckBoxCtrl* CheckCopy = self->getChild<LLCheckBoxCtrl>("Copy"); | ||
337 | LLCheckBoxCtrl* CheckTrans = self->getChild<LLCheckBoxCtrl>("Trans"); | ||
338 | |||
339 | self->req_perm_mask=0; | ||
340 | |||
341 | if(CheckModify->get()) | ||
342 | { | ||
343 | self->req_perm_mask|=PERM_MODIFY; | ||
344 | } | ||
345 | else | ||
346 | { | ||
347 | self->req_perm_mask&=~PERM_MODIFY; | ||
348 | } | ||
349 | |||
350 | if(CheckCopy->get()) | ||
351 | { | ||
352 | self->req_perm_mask|=PERM_COPY; | ||
353 | } | ||
354 | else | ||
355 | { | ||
356 | self->req_perm_mask&=~PERM_COPY; | ||
357 | } | ||
358 | |||
359 | if(CheckTrans->get()) | ||
360 | { | ||
361 | self->req_perm_mask|=PERM_TRANSFER; | ||
362 | } | ||
363 | else | ||
364 | { | ||
365 | self->req_perm_mask&=~PERM_TRANSFER; | ||
366 | } | ||
367 | |||
368 | |||
369 | } | ||
370 | |||
371 | void LLFloaterBulkPermission::addObject(const LLUUID& id) | ||
372 | { | ||
373 | mObjectIDs.put(id); | ||
374 | } | ||
375 | |||
376 | BOOL LLFloaterBulkPermission::start() | ||
377 | { | ||
378 | llinfos << "LLFloaterBulkPermission::start()" << llendl; | ||
379 | char buffer[MAX_STRING]; /*Flawfinder: ignore*/ | ||
380 | snprintf(buffer, sizeof(buffer), "Starting %s of %d items.", mStartString, mObjectIDs.count()); /* Flawfinder: ignore */ | ||
381 | |||
382 | LLScrollListCtrl* list = getChild<LLScrollListCtrl>("queue output"); | ||
383 | list->addCommentText(buffer); | ||
384 | |||
385 | return nextObject(); | ||
386 | } | ||
387 | |||
388 | BOOL LLFloaterBulkPermission::isDone() const | ||
389 | { | ||
390 | return (mCurrentObjectID.isNull() || (mObjectIDs.count() == 0)); | ||
391 | } | ||
392 | |||
393 | // go to the next object. If no objects left, it falls out silently | ||
394 | // and waits to be killed by the window being closed. | ||
395 | BOOL LLFloaterBulkPermission::nextObject() | ||
396 | { | ||
397 | S32 count; | ||
398 | BOOL successful_start = FALSE; | ||
399 | do | ||
400 | { | ||
401 | count = mObjectIDs.count(); | ||
402 | llinfos << "LLFloaterBulkPermission::nextObject() - " << count | ||
403 | << " objects left to process." << llendl; | ||
404 | mCurrentObjectID.setNull(); | ||
405 | if(count > 0) | ||
406 | { | ||
407 | successful_start = popNext(); | ||
408 | } | ||
409 | llinfos << "LLFloaterBulkPermission::nextObject() " | ||
410 | << (successful_start ? "successful" : "unsuccessful") | ||
411 | << llendl; | ||
412 | } while((mObjectIDs.count() > 0) && !successful_start); | ||
413 | |||
414 | if(isDone() && !mDone) | ||
415 | { | ||
416 | |||
417 | LLScrollListCtrl* list = getChild<LLScrollListCtrl>("queue output"); | ||
418 | mDone = TRUE; | ||
419 | char buffer[MAX_STRING]; /*Flawfinder: ignore*/ | ||
420 | snprintf(buffer, sizeof(buffer), "Done."); /* Flawfinder: ignore */ | ||
421 | list->addCommentText(buffer); | ||
422 | |||
423 | } | ||
424 | return successful_start; | ||
425 | } | ||
426 | |||
427 | // returns true if the queue has started, otherwise false. This | ||
428 | // method pops the top object off of the queue. | ||
429 | BOOL LLFloaterBulkPermission::popNext() | ||
430 | { | ||
431 | // get the first element off of the container, and attempt to get | ||
432 | // the inventory. | ||
433 | BOOL rv = FALSE; | ||
434 | S32 count = mObjectIDs.count(); | ||
435 | if(mCurrentObjectID.isNull() && (count > 0)) | ||
436 | { | ||
437 | mCurrentObjectID = mObjectIDs.get(0); | ||
438 | llinfos << "LLFloaterBulkPermission::popNext() - mCurrentID: " | ||
439 | << mCurrentObjectID << llendl; | ||
440 | mObjectIDs.remove(0); | ||
441 | LLViewerObject* obj = gObjectList.findObject(mCurrentObjectID); | ||
442 | if(obj) | ||
443 | { | ||
444 | llinfos << "LLFloaterBulkPermission::popNext() requesting inv for " | ||
445 | << mCurrentObjectID << llendl; | ||
446 | LLUUID* id = new LLUUID(mID); | ||
447 | |||
448 | registerVOInventoryListener(obj,id); | ||
449 | requestVOInventory(); | ||
450 | rv = TRUE; | ||
451 | } | ||
452 | else | ||
453 | { | ||
454 | llinfos<<"LLFloaterBulkPermission::popNext() returned a NULL LLViewerObject" <<llendl; | ||
455 | //Arrrg what do we do here? | ||
456 | } | ||
457 | } | ||
458 | |||
459 | return rv; | ||
460 | } | ||
461 | |||
462 | |||
463 | // static | ||
464 | LLFloaterBulkPermission* LLFloaterBulkPermission::create() | ||
465 | { | ||
466 | S32 left, top; | ||
467 | gFloaterView->getNewFloaterPosition(&left, &top); | ||
468 | LLRect rect = gSavedSettings.getRect("CompileOutputRect"); | ||
469 | rect.translate(left - rect.mLeft, top - rect.mTop); | ||
470 | LLFloaterBulkPermission* new_queue = new LLFloaterBulkPermission("queue",rect,"Setting Bulk permissions","Results"); | ||
471 | new_queue->open(); /*Flawfinder: ignore*/ | ||
472 | return new_queue; | ||
473 | } | ||
474 | |||
475 | |||
476 | void LLFloaterBulkPermission::handleInventory(LLViewerObject* viewer_obj, InventoryObjectList* inv) | ||
477 | { | ||
478 | // find all of the lsl, leaving off duplicates. We'll remove | ||
479 | // all matching asset uuids on compilation success. | ||
480 | |||
481 | llinfos<<"handleInventory"<<llendl; | ||
482 | |||
483 | char buffer[MAX_STRING]; /*Flawfinder: ignore*/ | ||
484 | LLScrollListCtrl* list = getChild<LLScrollListCtrl>("queue output"); | ||
485 | |||
486 | InventoryObjectList::const_iterator it = inv->begin(); | ||
487 | InventoryObjectList::const_iterator end = inv->end(); | ||
488 | for ( ; it != end; ++it) | ||
489 | { | ||
490 | llinfos<<"Doing iterator of inventory"<<llendl; | ||
491 | |||
492 | if( ( (*it)->getType() == LLAssetType::AT_LSL_TEXT && processScript) || | ||
493 | ( (*it)->getType() == LLAssetType::AT_TEXTURE && processTexture) || | ||
494 | ( (*it)->getType() == LLAssetType::AT_SOUND && processSound) || | ||
495 | ( (*it)->getType() == LLAssetType::AT_LANDMARK && processLandmark) || | ||
496 | ( (*it)->getType() == LLAssetType::AT_CLOTHING && processClothing) || | ||
497 | ( (*it)->getType() == LLAssetType::AT_OBJECT && processObject) || | ||
498 | ( (*it)->getType() == LLAssetType::AT_NOTECARD && processNotecard) || | ||
499 | ( (*it)->getType() == LLAssetType::AT_BODYPART && processBodypart) || | ||
500 | ( (*it)->getType() == LLAssetType::AT_ANIMATION && processAnimation) || | ||
501 | ( (*it)->getType() == LLAssetType::AT_GESTURE && processGesture)) | ||
502 | { | ||
503 | |||
504 | LLViewerObject* object = gObjectList.findObject(viewer_obj->getID()); | ||
505 | |||
506 | if (object) | ||
507 | { | ||
508 | LLInventoryItem* item = (LLInventoryItem*)((LLInventoryObject*)(*it)); | ||
509 | LLViewerInventoryItem* new_item = (LLViewerInventoryItem*)item; | ||
510 | LLPermissions perm(new_item->getPermissions()); | ||
511 | |||
512 | // chomp the inventory name so it fits in the scroll window nicely | ||
513 | // and the user can see the [OK] | ||
514 | std::string invname; | ||
515 | invname=item->getName().substr(0,item->getName().size() < 30 ? item->getName().size() : 30 ); | ||
516 | |||
517 | // My attempt at checking valid permissions, CHECK ME | ||
518 | // note its not actually bad to try to set permissions that are not allowed as the | ||
519 | // server will protect against this, but it will piss the user off if its wrong | ||
520 | if( | ||
521 | (perm.getCreator()==gAgentID) || | ||
522 | (perm.getMaskOwner() & PERM_TRANSFER) && (perm.getMaskOwner() & PERM_MODIFY) || | ||
523 | (gAgent.getGroupID()==perm.getGroup() && (perm.getMaskGroup() & PERM_TRANSFER) && (perm.getMaskGroup() & PERM_MODIFY)) | ||
524 | ){ | ||
525 | llinfos<<"Setting perms"<<llendl; | ||
526 | perm.setMaskNext(req_perm_mask); | ||
527 | new_item->setPermissions(perm); | ||
528 | updateInventory(object,new_item,TASK_INVENTORY_ITEM_KEY,FALSE); | ||
529 | snprintf(buffer, sizeof(buffer), "Setting perms on '%s' [OK]", invname.c_str()); /* Flawfinder: ignore */ | ||
530 | } | ||
531 | else | ||
532 | { | ||
533 | llinfos<<"NOT setting perms"<<llendl; | ||
534 | snprintf(buffer, sizeof(buffer), "Setting perms on '%s' [FAILED]", invname.c_str()); /* Flawfinder: ignore */ | ||
535 | |||
536 | } | ||
537 | |||
538 | list->addCommentText(buffer); | ||
539 | |||
540 | if(recurse && ( (*it)->getType() == LLAssetType::AT_OBJECT && processObject)) | ||
541 | { | ||
542 | //Add this object back to the queue to be processed as it has inventory | ||
543 | snprintf(buffer, sizeof(buffer), "Queueing object '%s' for open", invname.c_str()); | ||
544 | llwarns << "Queueing object "<< invname.c_str() << " ID "<< (*it)->getUUID()<<llendl; | ||
545 | mObjectIDs.put((*it)->getUUID()); | ||
546 | // This will not YET work. as this is not a viewer object the unpack will fail | ||
547 | } | ||
548 | |||
549 | } | ||
550 | } | ||
551 | } | ||
552 | |||
553 | nextObject(); | ||
554 | } | ||
555 | |||
556 | |||
557 | // Avoid inventory callbacks etc by just fire and forgetting the message with the permissions update | ||
558 | // we could do this via LLViewerObject::updateInventory but that uses inventory call backs and buggers | ||
559 | // us up and we would have a dodgy item iterator | ||
560 | |||
561 | void LLFloaterBulkPermission::updateInventory( | ||
562 | LLViewerObject* object, | ||
563 | LLViewerInventoryItem* item, | ||
564 | U8 key, | ||
565 | bool is_new) | ||
566 | { | ||
567 | LLMemType mt(LLMemType::MTYPE_OBJECT); | ||
568 | |||
569 | |||
570 | // This slices the object into what we're concerned about on the | ||
571 | // viewer. The simulator will take the permissions and transfer | ||
572 | // ownership. | ||
573 | LLPointer<LLViewerInventoryItem> task_item = | ||
574 | new LLViewerInventoryItem(item->getUUID(), mID, item->getPermissions(), | ||
575 | item->getAssetUUID(), item->getType(), | ||
576 | item->getInventoryType(), | ||
577 | item->getName(), item->getDescription(), | ||
578 | item->getSaleInfo(), | ||
579 | item->getFlags(), | ||
580 | item->getCreationDate()); | ||
581 | task_item->setTransactionID(item->getTransactionID()); | ||
582 | LLMessageSystem* msg = gMessageSystem; | ||
583 | msg->newMessageFast(_PREHASH_UpdateTaskInventory); | ||
584 | msg->nextBlockFast(_PREHASH_AgentData); | ||
585 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | ||
586 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | ||
587 | msg->nextBlockFast(_PREHASH_UpdateData); | ||
588 | msg->addU32Fast(_PREHASH_LocalID, object->mLocalID); | ||
589 | msg->addU8Fast(_PREHASH_Key, key); | ||
590 | msg->nextBlockFast(_PREHASH_InventoryData); | ||
591 | task_item->packMessage(msg); | ||
592 | msg->sendReliable(object->getRegion()->getHost()); | ||
593 | |||
594 | } | ||
595 | |||
diff --git a/linden/indra/newview/llfloaterbulkpermission.h b/linden/indra/newview/llfloaterbulkpermission.h new file mode 100644 index 0000000..3de871b --- /dev/null +++ b/linden/indra/newview/llfloaterbulkpermission.h | |||
@@ -0,0 +1,143 @@ | |||
1 | /** | ||
2 | * @file llfloaterbulkpermissions.h | ||
3 | * @brief A floater which allows task inventory item's properties to be changed on mass. | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2008&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2008, Linden Research, Inc. | ||
8 | * | ||
9 | * Second Life Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
11 | * to you under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
13 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
14 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
15 | * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
16 | * | ||
17 | * There are special exceptions to the terms and conditions of the GPL as | ||
18 | * it is applied to this Source Code. View the full text of the exception | ||
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
20 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
21 | * | ||
22 | * By copying, modifying or distributing this software, you acknowledge | ||
23 | * that you have read and understood your obligations described above, | ||
24 | * and agree to abide by those obligations. | ||
25 | * | ||
26 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
27 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
28 | * COMPLETENESS OR PERFORMANCE. | ||
29 | * $/LicenseInfo$ | ||
30 | */ | ||
31 | |||
32 | /* Allow multiple task inventory properties to be set in one go, by Michelle2 Zenovka */ | ||
33 | |||
34 | #ifndef LL_LLBULKPERMISSION_H | ||
35 | #define LL_LLBULKPERMISSION_H | ||
36 | |||
37 | #include "lldarray.h" | ||
38 | #include "llinventory.h" | ||
39 | #include "llviewerobject.h" | ||
40 | #include "llvoinventorylistener.h" | ||
41 | #include "llmap.h" | ||
42 | #include "lluuid.h" | ||
43 | |||
44 | #include "llfloater.h" | ||
45 | #include "llscrolllistctrl.h" | ||
46 | |||
47 | #include "llviewerinventory.h" | ||
48 | |||
49 | class LLFloaterBulkPermission : public LLFloater, public LLVOInventoryListener | ||
50 | { | ||
51 | public: | ||
52 | // addObject() accepts an object id. | ||
53 | void addObject(const LLUUID& id); | ||
54 | |||
55 | // start() returns TRUE if the queue has started, otherwise FALSE. | ||
56 | BOOL start(); | ||
57 | |||
58 | // Use this method to create a reset queue. Once created, it | ||
59 | // will be responsible for it's own destruction. | ||
60 | static LLFloaterBulkPermission * create(); | ||
61 | |||
62 | protected: | ||
63 | LLFloaterBulkPermission(const std::string& name, const LLRect& rect, | ||
64 | const char* title, const char* start_string); | ||
65 | virtual ~LLFloaterBulkPermission(); | ||
66 | |||
67 | // This is the callback method for the viewer object currently | ||
68 | // being worked on. | ||
69 | /*virtual*/ void inventoryChanged(LLViewerObject* obj, | ||
70 | InventoryObjectList* inv, | ||
71 | S32 serial_num, | ||
72 | void* queue); | ||
73 | |||
74 | // This is called by inventoryChanged | ||
75 | void handleInventory(LLViewerObject* viewer_obj, | ||
76 | InventoryObjectList* inv); | ||
77 | |||
78 | |||
79 | void updateInventory(LLViewerObject* object, | ||
80 | LLViewerInventoryItem* item, | ||
81 | U8 key, | ||
82 | bool is_new); | ||
83 | |||
84 | |||
85 | static void onCloseBtn(void* user_data); | ||
86 | static void onApplyBtn(void* user_data); | ||
87 | static void onCommitPermissions(LLUICtrl* ctrl, void* data); | ||
88 | static void InvSelection(LLUICtrl* ctrl, void* data); | ||
89 | static void onRecurse(LLUICtrl* ctrl, void* data); | ||
90 | static void onParent(LLUICtrl* ctrl, void* data); | ||
91 | |||
92 | // returns true if this is done | ||
93 | BOOL isDone() const; | ||
94 | |||
95 | //Read the settings and Apply the permissions | ||
96 | void doApply(); | ||
97 | |||
98 | // go to the next object. If no objects left, it falls out | ||
99 | // silently and waits to be killed by the deleteIfDone() callback. | ||
100 | BOOL nextObject(); | ||
101 | BOOL popNext(); | ||
102 | |||
103 | // Get this instances ID. | ||
104 | const LLUUID& getID() const { return mID; } | ||
105 | |||
106 | // find an instance by ID. Return NULL if it does not exist. | ||
107 | static LLFloaterBulkPermission* findInstance(const LLUUID& id); | ||
108 | |||
109 | U32 req_perm_mask; | ||
110 | |||
111 | BOOL processObject; | ||
112 | BOOL processScript; | ||
113 | BOOL processTexture; | ||
114 | BOOL processSound; | ||
115 | BOOL processAnimation; | ||
116 | BOOL processCallingcard; | ||
117 | BOOL processNotecard; | ||
118 | BOOL processGesture; | ||
119 | BOOL processClothing; | ||
120 | BOOL processBodypart; | ||
121 | BOOL processLandmark; | ||
122 | |||
123 | BOOL recurse; | ||
124 | BOOL parent; | ||
125 | |||
126 | protected: | ||
127 | // UI | ||
128 | LLScrollListCtrl* mMessages; | ||
129 | LLButton* mCloseBtn; | ||
130 | |||
131 | // Object Queue | ||
132 | LLDynamicArray<LLUUID> mObjectIDs; | ||
133 | LLUUID mCurrentObjectID; | ||
134 | BOOL mDone; | ||
135 | |||
136 | LLUUID mID; | ||
137 | static LLMap<LLUUID, LLFloaterBulkPermission*> sInstances; | ||
138 | |||
139 | const char* mStartString; | ||
140 | |||
141 | }; | ||
142 | |||
143 | #endif | ||
diff --git a/linden/indra/newview/llpanelobject.cpp b/linden/indra/newview/llpanelobject.cpp index 7024691..9732dac 100644 --- a/linden/indra/newview/llpanelobject.cpp +++ b/linden/indra/newview/llpanelobject.cpp | |||
@@ -827,7 +827,7 @@ void LLPanelObject::getState( ) | |||
827 | BOOL top_shear_x_visible = TRUE; | 827 | BOOL top_shear_x_visible = TRUE; |
828 | BOOL top_shear_y_visible = TRUE; | 828 | BOOL top_shear_y_visible = TRUE; |
829 | BOOL twist_visible = TRUE; | 829 | BOOL twist_visible = TRUE; |
830 | BOOL advanced_cut_visible = FALSE; | 830 | BOOL advanced_cut_visible = TRUE; |
831 | BOOL taper_visible = FALSE; | 831 | BOOL taper_visible = FALSE; |
832 | BOOL skew_visible = FALSE; | 832 | BOOL skew_visible = FALSE; |
833 | BOOL radius_offset_visible = FALSE; | 833 | BOOL radius_offset_visible = FALSE; |
@@ -838,6 +838,7 @@ void LLPanelObject::getState( ) | |||
838 | F32 twist_inc = OBJECT_TWIST_LINEAR_INC; | 838 | F32 twist_inc = OBJECT_TWIST_LINEAR_INC; |
839 | 839 | ||
840 | BOOL advanced_is_dimple = FALSE; | 840 | BOOL advanced_is_dimple = FALSE; |
841 | BOOL advanced_is_slice = FALSE; | ||
841 | BOOL size_is_hole = FALSE; | 842 | BOOL size_is_hole = FALSE; |
842 | 843 | ||
843 | // Tune based on overall volume type | 844 | // Tune based on overall volume type |
@@ -851,6 +852,7 @@ void LLPanelObject::getState( ) | |||
851 | //twist_visible = FALSE; | 852 | //twist_visible = FALSE; |
852 | advanced_cut_visible = TRUE; | 853 | advanced_cut_visible = TRUE; |
853 | advanced_is_dimple = TRUE; | 854 | advanced_is_dimple = TRUE; |
855 | advanced_is_slice = FALSE; | ||
854 | twist_min = OBJECT_TWIST_MIN; | 856 | twist_min = OBJECT_TWIST_MIN; |
855 | twist_max = OBJECT_TWIST_MAX; | 857 | twist_max = OBJECT_TWIST_MAX; |
856 | twist_inc = OBJECT_TWIST_INC; | 858 | twist_inc = OBJECT_TWIST_INC; |
@@ -864,6 +866,7 @@ void LLPanelObject::getState( ) | |||
864 | size_is_hole = TRUE; | 866 | size_is_hole = TRUE; |
865 | skew_visible = TRUE; | 867 | skew_visible = TRUE; |
866 | advanced_cut_visible = TRUE; | 868 | advanced_cut_visible = TRUE; |
869 | advanced_is_slice = FALSE; | ||
867 | taper_visible = TRUE; | 870 | taper_visible = TRUE; |
868 | radius_offset_visible = TRUE; | 871 | radius_offset_visible = TRUE; |
869 | revolutions_visible = TRUE; | 872 | revolutions_visible = TRUE; |
@@ -891,8 +894,20 @@ void LLPanelObject::getState( ) | |||
891 | break; | 894 | break; |
892 | 895 | ||
893 | case MI_BOX: | 896 | case MI_BOX: |
897 | advanced_cut_visible = TRUE; | ||
898 | advanced_is_slice = TRUE; | ||
899 | break; | ||
900 | |||
894 | case MI_CYLINDER: | 901 | case MI_CYLINDER: |
902 | advanced_cut_visible = TRUE; | ||
903 | advanced_is_slice = TRUE; | ||
904 | break; | ||
905 | |||
895 | case MI_PRISM: | 906 | case MI_PRISM: |
907 | advanced_cut_visible = TRUE; | ||
908 | advanced_is_slice = TRUE; | ||
909 | break; | ||
910 | |||
896 | default: | 911 | default: |
897 | break; | 912 | break; |
898 | } | 913 | } |
@@ -984,6 +999,8 @@ void LLPanelObject::getState( ) | |||
984 | 999 | ||
985 | childSetVisible("advanced_cut", FALSE); | 1000 | childSetVisible("advanced_cut", FALSE); |
986 | childSetVisible("advanced_dimple", FALSE); | 1001 | childSetVisible("advanced_dimple", FALSE); |
1002 | childSetVisible("advanced_slice", FALSE); | ||
1003 | |||
987 | if (advanced_cut_visible) | 1004 | if (advanced_cut_visible) |
988 | { | 1005 | { |
989 | if (advanced_is_dimple) | 1006 | if (advanced_is_dimple) |
@@ -991,6 +1008,12 @@ void LLPanelObject::getState( ) | |||
991 | childSetVisible("advanced_dimple", TRUE); | 1008 | childSetVisible("advanced_dimple", TRUE); |
992 | childSetEnabled("advanced_dimple", enabled); | 1009 | childSetEnabled("advanced_dimple", enabled); |
993 | } | 1010 | } |
1011 | |||
1012 | else if (advanced_is_slice) | ||
1013 | { | ||
1014 | childSetVisible("advanced_slice", TRUE); | ||
1015 | childSetEnabled("advanced_slice", enabled); | ||
1016 | } | ||
994 | else | 1017 | else |
995 | { | 1018 | { |
996 | childSetVisible("advanced_cut", TRUE); | 1019 | childSetVisible("advanced_cut", TRUE); |
@@ -1823,6 +1846,7 @@ void LLPanelObject::clearCtrls() | |||
1823 | childSetEnabled("scale_taper", FALSE); | 1846 | childSetEnabled("scale_taper", FALSE); |
1824 | childSetEnabled( "advanced_cut", FALSE ); | 1847 | childSetEnabled( "advanced_cut", FALSE ); |
1825 | childSetEnabled( "advanced_dimple", FALSE ); | 1848 | childSetEnabled( "advanced_dimple", FALSE ); |
1849 | childSetVisible("advanced_slice", FALSE); | ||
1826 | } | 1850 | } |
1827 | 1851 | ||
1828 | // | 1852 | // |
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp index 3e99384..a97ec18 100644 --- a/linden/indra/newview/llviewermenu.cpp +++ b/linden/indra/newview/llviewermenu.cpp | |||
@@ -86,6 +86,7 @@ | |||
86 | #include "llfloateravatarinfo.h" | 86 | #include "llfloateravatarinfo.h" |
87 | #include "llfloateravatartextures.h" | 87 | #include "llfloateravatartextures.h" |
88 | #include "llfloaterbuildoptions.h" | 88 | #include "llfloaterbuildoptions.h" |
89 | #include "llfloaterbulkpermission.h" | ||
89 | #include "llfloaterbump.h" | 90 | #include "llfloaterbump.h" |
90 | #include "llfloaterbuy.h" | 91 | #include "llfloaterbuy.h" |
91 | #include "llfloaterbuycontents.h" | 92 | #include "llfloaterbuycontents.h" |
@@ -750,10 +751,13 @@ void init_menus() | |||
750 | gLandmarkMenu = menu; | 751 | gLandmarkMenu = menu; |
751 | */ | 752 | */ |
752 | 753 | ||
754 | // Advanced (Client) menu is XUI now! \o/ | ||
755 | /* | ||
753 | menu = new LLMenuGL(CLIENT_MENU_NAME); | 756 | menu = new LLMenuGL(CLIENT_MENU_NAME); |
754 | init_client_menu(menu); | 757 | init_client_menu(menu); |
755 | gMenuBarView->appendMenu( menu ); | 758 | gMenuBarView->appendMenu( menu ); |
756 | menu->updateParent(LLMenuGL::sMenuContainer); | 759 | menu->updateParent(LLMenuGL::sMenuContainer); |
760 | */ | ||
757 | 761 | ||
758 | menu = new LLMenuGL(SERVER_MENU_NAME); | 762 | menu = new LLMenuGL(SERVER_MENU_NAME); |
759 | init_server_menu(menu); | 763 | init_server_menu(menu); |
@@ -6239,6 +6243,18 @@ void queue_actions(LLFloaterScriptQueue* q, const std::string& noscriptmsg, cons | |||
6239 | } | 6243 | } |
6240 | } | 6244 | } |
6241 | 6245 | ||
6246 | |||
6247 | class LLToolsSetBulkPerms : public view_listener_t | ||
6248 | { | ||
6249 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
6250 | { | ||
6251 | LLFloaterBulkPermission* queue = NULL; | ||
6252 | queue = LLFloaterBulkPermission::create(); | ||
6253 | return true; | ||
6254 | } | ||
6255 | }; | ||
6256 | |||
6257 | |||
6242 | class LLToolsSelectedScriptAction : public view_listener_t | 6258 | class LLToolsSelectedScriptAction : public view_listener_t |
6243 | { | 6259 | { |
6244 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | 6260 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) |
@@ -7720,6 +7736,2118 @@ class LLWorldDayCycle : public view_listener_t | |||
7720 | 7736 | ||
7721 | 7737 | ||
7722 | 7738 | ||
7739 | |||
7740 | //------------------------------------------------------------------- | ||
7741 | // Advanced menu | ||
7742 | //------------------------------------------------------------------- | ||
7743 | |||
7744 | |||
7745 | /////////////////// | ||
7746 | // SHOW CONSOLES // | ||
7747 | /////////////////// | ||
7748 | |||
7749 | |||
7750 | class LLAdvancedToggleConsole : public view_listener_t | ||
7751 | { | ||
7752 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
7753 | { | ||
7754 | LLString console_type = userdata.asString(); | ||
7755 | if ("frame" == console_type) | ||
7756 | { | ||
7757 | toggle_visibility( (void*)gDebugView->mFrameStatView ); | ||
7758 | } | ||
7759 | else if ("texture" == console_type) | ||
7760 | { | ||
7761 | toggle_visibility( (void*)gTextureView ); | ||
7762 | } | ||
7763 | else if ("debug" == console_type) | ||
7764 | { | ||
7765 | toggle_visibility( (void*)((LLView*)gDebugView->mDebugConsolep) ); | ||
7766 | } | ||
7767 | else if ("fast timers" == console_type) | ||
7768 | { | ||
7769 | toggle_visibility( (void*)gDebugView->mFastTimerView ); | ||
7770 | } | ||
7771 | else if ("memory" == console_type) | ||
7772 | { | ||
7773 | toggle_visibility( (void*)gDebugView->mMemoryView ); | ||
7774 | } | ||
7775 | return true; | ||
7776 | } | ||
7777 | }; | ||
7778 | |||
7779 | |||
7780 | class LLAdvancedCheckConsole : public view_listener_t | ||
7781 | { | ||
7782 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
7783 | { | ||
7784 | LLString console_type = userdata["data"].asString(); | ||
7785 | bool new_value = false; | ||
7786 | if ("frame" == console_type) | ||
7787 | { | ||
7788 | new_value = get_visibility( (void*)gDebugView->mFrameStatView ); | ||
7789 | } | ||
7790 | else if ("texture" == console_type) | ||
7791 | { | ||
7792 | new_value = get_visibility( (void*)gTextureView ); | ||
7793 | } | ||
7794 | else if ("debug" == console_type) | ||
7795 | { | ||
7796 | new_value = get_visibility( (void*)((LLView*)gDebugView->mDebugConsolep) ); | ||
7797 | } | ||
7798 | else if ("fast timers" == console_type) | ||
7799 | { | ||
7800 | new_value = get_visibility( (void*)gDebugView->mFastTimerView ); | ||
7801 | } | ||
7802 | else if ("memory" == console_type) | ||
7803 | { | ||
7804 | new_value = get_visibility( (void*)gDebugView->mMemoryView ); | ||
7805 | } | ||
7806 | |||
7807 | LLString control_name = userdata["control"].asString(); | ||
7808 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
7809 | return true; | ||
7810 | } | ||
7811 | }; | ||
7812 | |||
7813 | |||
7814 | |||
7815 | ////////////////////////// | ||
7816 | // DUMP INFO TO CONSOLE // | ||
7817 | ////////////////////////// | ||
7818 | |||
7819 | |||
7820 | class LLAdvancedDumpInfoToConsole : public view_listener_t | ||
7821 | { | ||
7822 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
7823 | { | ||
7824 | LLString info_type = userdata.asString(); | ||
7825 | if ("region" == info_type) | ||
7826 | { | ||
7827 | handle_region_dump_settings(NULL); | ||
7828 | } | ||
7829 | else if ("group" == info_type) | ||
7830 | { | ||
7831 | handle_dump_group_info(NULL); | ||
7832 | } | ||
7833 | else if ("capabilities" == info_type) | ||
7834 | { | ||
7835 | handle_dump_capabilities_info(NULL); | ||
7836 | } | ||
7837 | return true; | ||
7838 | } | ||
7839 | }; | ||
7840 | |||
7841 | |||
7842 | |||
7843 | /////////////////////////////// | ||
7844 | // RELOAD SETTINGS OVERRIDES // | ||
7845 | /////////////////////////////// | ||
7846 | |||
7847 | |||
7848 | class LLAdvancedReloadSettingsOverrides : public view_listener_t | ||
7849 | { | ||
7850 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
7851 | { | ||
7852 | reload_personal_settings_overrides(NULL); | ||
7853 | return true; | ||
7854 | } | ||
7855 | }; | ||
7856 | |||
7857 | |||
7858 | |||
7859 | ////////////// | ||
7860 | // HUD INFO // | ||
7861 | ////////////// | ||
7862 | |||
7863 | |||
7864 | class LLAdvancedToggleHUDInfo : public view_listener_t | ||
7865 | { | ||
7866 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
7867 | { | ||
7868 | LLString info_type = userdata.asString(); | ||
7869 | if ("velocity" == info_type) | ||
7870 | { | ||
7871 | toggle_visibility( (void*)gVelocityBar ); | ||
7872 | } | ||
7873 | else if ("camera" == info_type) | ||
7874 | { | ||
7875 | gDisplayCameraPos = !(gDisplayCameraPos); | ||
7876 | } | ||
7877 | else if ("wind" == info_type) | ||
7878 | { | ||
7879 | gDisplayWindInfo = !(gDisplayWindInfo); | ||
7880 | } | ||
7881 | else if ("fov" == info_type) | ||
7882 | { | ||
7883 | gDisplayFOV = !(gDisplayFOV); | ||
7884 | } | ||
7885 | return true; | ||
7886 | } | ||
7887 | }; | ||
7888 | |||
7889 | class LLAdvancedCheckHUDInfo : public view_listener_t | ||
7890 | { | ||
7891 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
7892 | { | ||
7893 | LLString info_type = userdata["data"].asString(); | ||
7894 | bool new_value = false; | ||
7895 | if ("velocity" == info_type) | ||
7896 | { | ||
7897 | new_value = get_visibility( (void*)gVelocityBar ); | ||
7898 | } | ||
7899 | else if ("camera" == info_type) | ||
7900 | { | ||
7901 | new_value = gDisplayCameraPos; | ||
7902 | } | ||
7903 | else if ("wind" == info_type) | ||
7904 | { | ||
7905 | new_value = gDisplayWindInfo; | ||
7906 | } | ||
7907 | else if ("fov" == info_type) | ||
7908 | { | ||
7909 | new_value = gDisplayFOV; | ||
7910 | } | ||
7911 | |||
7912 | LLString control_name = userdata["control"].asString(); | ||
7913 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
7914 | |||
7915 | return true; | ||
7916 | } | ||
7917 | }; | ||
7918 | |||
7919 | |||
7920 | |||
7921 | /////////////////////// | ||
7922 | // CLEAR GROUP CACHE // | ||
7923 | /////////////////////// | ||
7924 | |||
7925 | |||
7926 | class LLAdvancedClearGroupCache : public view_listener_t | ||
7927 | { | ||
7928 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
7929 | { | ||
7930 | LLGroupMgr::debugClearAllGroups(NULL); | ||
7931 | return true; | ||
7932 | } | ||
7933 | }; | ||
7934 | |||
7935 | |||
7936 | |||
7937 | |||
7938 | ///////////////// | ||
7939 | // RENDER TYPE // | ||
7940 | ///////////////// | ||
7941 | |||
7942 | |||
7943 | U32 render_type_from_string(LLString render_type) | ||
7944 | { | ||
7945 | if ("simple" == render_type) | ||
7946 | { | ||
7947 | return LLPipeline::RENDER_TYPE_SIMPLE; | ||
7948 | } | ||
7949 | else if ("alpha" == render_type) | ||
7950 | { | ||
7951 | return LLPipeline::RENDER_TYPE_ALPHA; | ||
7952 | } | ||
7953 | else if ("tree" == render_type) | ||
7954 | { | ||
7955 | return LLPipeline::RENDER_TYPE_TREE; | ||
7956 | } | ||
7957 | else if ("avatar" == render_type) | ||
7958 | { | ||
7959 | return LLPipeline::RENDER_TYPE_AVATAR; | ||
7960 | } | ||
7961 | else if ("terrain" == render_type) | ||
7962 | { | ||
7963 | return LLPipeline::RENDER_TYPE_TERRAIN; | ||
7964 | } | ||
7965 | else if ("sky" == render_type) | ||
7966 | { | ||
7967 | return LLPipeline::RENDER_TYPE_SKY; | ||
7968 | } | ||
7969 | else if ("water" == render_type) | ||
7970 | { | ||
7971 | return LLPipeline::RENDER_TYPE_WATER; | ||
7972 | } | ||
7973 | else if ("ground" == render_type) | ||
7974 | { | ||
7975 | return LLPipeline::RENDER_TYPE_GROUND; | ||
7976 | } | ||
7977 | else if ("volume" == render_type) | ||
7978 | { | ||
7979 | return LLPipeline::RENDER_TYPE_VOLUME; | ||
7980 | } | ||
7981 | else if ("grass" == render_type) | ||
7982 | { | ||
7983 | return LLPipeline::RENDER_TYPE_GRASS; | ||
7984 | } | ||
7985 | else if ("clouds" == render_type) | ||
7986 | { | ||
7987 | return LLPipeline::RENDER_TYPE_CLOUDS; | ||
7988 | } | ||
7989 | else if ("particles" == render_type) | ||
7990 | { | ||
7991 | return LLPipeline::RENDER_TYPE_PARTICLES; | ||
7992 | } | ||
7993 | else if ("bump" == render_type) | ||
7994 | { | ||
7995 | return LLPipeline::RENDER_TYPE_BUMP; | ||
7996 | } | ||
7997 | else | ||
7998 | { | ||
7999 | return 0; | ||
8000 | } | ||
8001 | } | ||
8002 | |||
8003 | |||
8004 | class LLAdvancedToggleRenderType : public view_listener_t | ||
8005 | { | ||
8006 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8007 | { | ||
8008 | U32 render_type = render_type_from_string( userdata.asString() ); | ||
8009 | if ( render_type != 0 ) | ||
8010 | { | ||
8011 | LLPipeline::toggleRenderTypeControl( (void*)render_type ); | ||
8012 | } | ||
8013 | return true; | ||
8014 | } | ||
8015 | }; | ||
8016 | |||
8017 | |||
8018 | class LLAdvancedCheckRenderType : public view_listener_t | ||
8019 | { | ||
8020 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8021 | { | ||
8022 | U32 render_type = render_type_from_string( userdata["data"].asString() ); | ||
8023 | bool new_value = false; | ||
8024 | |||
8025 | if ( render_type != 0 ) | ||
8026 | { | ||
8027 | new_value = LLPipeline::hasRenderTypeControl( (void*)render_type ); | ||
8028 | } | ||
8029 | |||
8030 | LLString control_name = userdata["control"].asString(); | ||
8031 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8032 | return true; | ||
8033 | } | ||
8034 | }; | ||
8035 | |||
8036 | |||
8037 | |||
8038 | ///////////// | ||
8039 | // FEATURE // | ||
8040 | ///////////// | ||
8041 | |||
8042 | |||
8043 | U32 feature_from_string(LLString feature) | ||
8044 | { | ||
8045 | if ("ui" == feature) | ||
8046 | { | ||
8047 | return LLPipeline::RENDER_DEBUG_FEATURE_UI; | ||
8048 | } | ||
8049 | else if ("selected" == feature) | ||
8050 | { | ||
8051 | return LLPipeline::RENDER_DEBUG_FEATURE_SELECTED; | ||
8052 | } | ||
8053 | else if ("highlighted" == feature) | ||
8054 | { | ||
8055 | return LLPipeline::RENDER_DEBUG_FEATURE_HIGHLIGHTED; | ||
8056 | } | ||
8057 | else if ("dynamic textures" == feature) | ||
8058 | { | ||
8059 | return LLPipeline::RENDER_DEBUG_FEATURE_DYNAMIC_TEXTURES; | ||
8060 | } | ||
8061 | else if ("foot shadows" == feature) | ||
8062 | { | ||
8063 | return LLPipeline::RENDER_DEBUG_FEATURE_FOOT_SHADOWS; | ||
8064 | } | ||
8065 | else if ("fog" == feature) | ||
8066 | { | ||
8067 | return LLPipeline::RENDER_DEBUG_FEATURE_FOG; | ||
8068 | } | ||
8069 | else if ("palette" == feature) | ||
8070 | { | ||
8071 | return LLPipeline::RENDER_DEBUG_FEATURE_PALETTE; | ||
8072 | } | ||
8073 | else if ("fr info" == feature) | ||
8074 | { | ||
8075 | return LLPipeline::RENDER_DEBUG_FEATURE_FR_INFO; | ||
8076 | } | ||
8077 | else if ("flexible" == feature) | ||
8078 | { | ||
8079 | return LLPipeline::RENDER_DEBUG_FEATURE_FLEXIBLE; | ||
8080 | } | ||
8081 | else | ||
8082 | { | ||
8083 | return 0; | ||
8084 | } | ||
8085 | }; | ||
8086 | |||
8087 | |||
8088 | class LLAdvancedToggleFeature : public view_listener_t | ||
8089 | { | ||
8090 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8091 | { | ||
8092 | U32 feature = feature_from_string( userdata.asString() ); | ||
8093 | |||
8094 | if ( feature != 0 ) | ||
8095 | { | ||
8096 | LLPipeline::toggleRenderDebugFeature( (void*)feature ); | ||
8097 | } | ||
8098 | |||
8099 | return true; | ||
8100 | } | ||
8101 | }; | ||
8102 | |||
8103 | |||
8104 | class LLAdvancedCheckFeature : public view_listener_t | ||
8105 | { | ||
8106 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8107 | { | ||
8108 | U32 feature = feature_from_string( userdata["data"].asString() ); | ||
8109 | bool new_value = false; | ||
8110 | |||
8111 | if ( feature != 0 ) | ||
8112 | { | ||
8113 | new_value = LLPipeline::toggleRenderDebugFeatureControl( (void*)feature ); | ||
8114 | } | ||
8115 | |||
8116 | LLString control_name = userdata["control"].asString(); | ||
8117 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8118 | return true; | ||
8119 | } | ||
8120 | }; | ||
8121 | |||
8122 | |||
8123 | |||
8124 | ////////////////// | ||
8125 | // INFO DISPLAY // | ||
8126 | ////////////////// | ||
8127 | |||
8128 | |||
8129 | U32 info_display_from_string(LLString info_display) | ||
8130 | { | ||
8131 | if ("verify" == info_display) | ||
8132 | { | ||
8133 | return LLPipeline::RENDER_DEBUG_VERIFY; | ||
8134 | } | ||
8135 | else if ("bboxes" == info_display) | ||
8136 | { | ||
8137 | return LLPipeline::RENDER_DEBUG_BBOXES; | ||
8138 | } | ||
8139 | else if ("points" == info_display) | ||
8140 | { | ||
8141 | return LLPipeline::RENDER_DEBUG_POINTS; | ||
8142 | } | ||
8143 | else if ("octree" == info_display) | ||
8144 | { | ||
8145 | return LLPipeline::RENDER_DEBUG_OCTREE; | ||
8146 | } | ||
8147 | else if ("occlusion" == info_display) | ||
8148 | { | ||
8149 | return LLPipeline::RENDER_DEBUG_OCCLUSION; | ||
8150 | } | ||
8151 | else if ("render batches" == info_display) | ||
8152 | { | ||
8153 | return LLPipeline::RENDER_DEBUG_BATCH_SIZE; | ||
8154 | } | ||
8155 | else if ("texture anim" == info_display) | ||
8156 | { | ||
8157 | return LLPipeline::RENDER_DEBUG_TEXTURE_ANIM; | ||
8158 | } | ||
8159 | else if ("texture priority" == info_display) | ||
8160 | { | ||
8161 | return LLPipeline::RENDER_DEBUG_TEXTURE_PRIORITY; | ||
8162 | } | ||
8163 | else if ("shame" == info_display) | ||
8164 | { | ||
8165 | return LLPipeline::RENDER_DEBUG_SHAME; | ||
8166 | } | ||
8167 | else if ("texture area" == info_display) | ||
8168 | { | ||
8169 | return LLPipeline::RENDER_DEBUG_TEXTURE_AREA; | ||
8170 | } | ||
8171 | else if ("face area" == info_display) | ||
8172 | { | ||
8173 | return LLPipeline::RENDER_DEBUG_FACE_AREA; | ||
8174 | } | ||
8175 | else if ("picking" == info_display) | ||
8176 | { | ||
8177 | return LLPipeline::RENDER_DEBUG_PICKING; | ||
8178 | } | ||
8179 | else if ("lights" == info_display) | ||
8180 | { | ||
8181 | return LLPipeline::RENDER_DEBUG_LIGHTS; | ||
8182 | } | ||
8183 | else if ("particles" == info_display) | ||
8184 | { | ||
8185 | return LLPipeline::RENDER_DEBUG_PARTICLES; | ||
8186 | } | ||
8187 | else if ("composition" == info_display) | ||
8188 | { | ||
8189 | return LLPipeline::RENDER_DEBUG_COMPOSITION; | ||
8190 | } | ||
8191 | else if ("glow" == info_display) | ||
8192 | { | ||
8193 | return LLPipeline::RENDER_DEBUG_GLOW; | ||
8194 | } | ||
8195 | else | ||
8196 | { | ||
8197 | return 0; | ||
8198 | } | ||
8199 | }; | ||
8200 | |||
8201 | |||
8202 | class LLAdvancedToggleInfoDisplay : public view_listener_t | ||
8203 | { | ||
8204 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8205 | { | ||
8206 | U32 info_display = info_display_from_string( userdata.asString() ); | ||
8207 | |||
8208 | if ( info_display != 0 ) | ||
8209 | { | ||
8210 | LLPipeline::toggleRenderDebug( (void*)info_display ); | ||
8211 | } | ||
8212 | |||
8213 | return true; | ||
8214 | } | ||
8215 | }; | ||
8216 | |||
8217 | |||
8218 | class LLAdvancedCheckInfoDisplay : public view_listener_t | ||
8219 | { | ||
8220 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8221 | { | ||
8222 | U32 info_display = info_display_from_string( userdata["data"].asString() ); | ||
8223 | bool new_value = false; | ||
8224 | |||
8225 | if ( info_display != 0 ) | ||
8226 | { | ||
8227 | new_value = LLPipeline::toggleRenderDebugControl( (void*)info_display ); | ||
8228 | } | ||
8229 | |||
8230 | LLString control_name = userdata["control"].asString(); | ||
8231 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8232 | return true; | ||
8233 | } | ||
8234 | }; | ||
8235 | |||
8236 | |||
8237 | |||
8238 | /////////////////// | ||
8239 | // SELECT BUFFER // | ||
8240 | /////////////////// | ||
8241 | |||
8242 | |||
8243 | class LLAdvancedToggleSelectBuffer : public view_listener_t | ||
8244 | { | ||
8245 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8246 | { | ||
8247 | gDebugSelect = !(gDebugSelect); | ||
8248 | return true; | ||
8249 | } | ||
8250 | }; | ||
8251 | |||
8252 | class LLAdvancedCheckSelectBuffer : public view_listener_t | ||
8253 | { | ||
8254 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8255 | { | ||
8256 | bool new_value = gDebugSelect; | ||
8257 | LLString control_name = userdata["control"].asString(); | ||
8258 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8259 | return true; | ||
8260 | } | ||
8261 | }; | ||
8262 | |||
8263 | |||
8264 | |||
8265 | ///////////////////////// | ||
8266 | // RANDOMIZE FRAMERATE // | ||
8267 | ///////////////////////// | ||
8268 | |||
8269 | |||
8270 | class LLAdvancedToggleRandomizeFramerate : public view_listener_t | ||
8271 | { | ||
8272 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8273 | { | ||
8274 | gRandomizeFramerate = !(gRandomizeFramerate); | ||
8275 | return true; | ||
8276 | } | ||
8277 | }; | ||
8278 | |||
8279 | class LLAdvancedCheckRandomizeFramerate : public view_listener_t | ||
8280 | { | ||
8281 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8282 | { | ||
8283 | bool new_value = gRandomizeFramerate; | ||
8284 | LLString control_name = userdata["control"].asString(); | ||
8285 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8286 | return true; | ||
8287 | } | ||
8288 | }; | ||
8289 | |||
8290 | |||
8291 | |||
8292 | ///////////////////////// | ||
8293 | // PERIODIC SLOW FRAME // | ||
8294 | ///////////////////////// | ||
8295 | |||
8296 | |||
8297 | class LLAdvancedTogglePeriodicSlowFrame : public view_listener_t | ||
8298 | { | ||
8299 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8300 | { | ||
8301 | gPeriodicSlowFrame = !(gPeriodicSlowFrame); | ||
8302 | return true; | ||
8303 | } | ||
8304 | }; | ||
8305 | |||
8306 | class LLAdvancedCheckPeriodicSlowFrame : public view_listener_t | ||
8307 | { | ||
8308 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8309 | { | ||
8310 | bool new_value = gPeriodicSlowFrame; | ||
8311 | LLString control_name = userdata["control"].asString(); | ||
8312 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8313 | return true; | ||
8314 | } | ||
8315 | }; | ||
8316 | |||
8317 | |||
8318 | |||
8319 | //////////////// | ||
8320 | // FRAME TEST // | ||
8321 | //////////////// | ||
8322 | |||
8323 | |||
8324 | class LLAdvancedToggleFrameTest : public view_listener_t | ||
8325 | { | ||
8326 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8327 | { | ||
8328 | LLPipeline::sRenderFrameTest = !(LLPipeline::sRenderFrameTest); | ||
8329 | return true; | ||
8330 | } | ||
8331 | }; | ||
8332 | |||
8333 | class LLAdvancedCheckFrameTest : public view_listener_t | ||
8334 | { | ||
8335 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8336 | { | ||
8337 | bool new_value = LLPipeline::sRenderFrameTest; | ||
8338 | LLString control_name = userdata["control"].asString(); | ||
8339 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8340 | return true; | ||
8341 | } | ||
8342 | }; | ||
8343 | |||
8344 | |||
8345 | |||
8346 | /////////////////////////// | ||
8347 | // HIDE SELECTED OBJECTS // | ||
8348 | /////////////////////////// | ||
8349 | |||
8350 | |||
8351 | class LLAdvancedToggleHideSelectedObjects : public view_listener_t | ||
8352 | { | ||
8353 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8354 | { | ||
8355 | gHideSelectedObjects = !(gHideSelectedObjects); | ||
8356 | return true; | ||
8357 | } | ||
8358 | }; | ||
8359 | |||
8360 | class LLAdvancedCheckHideSelectedObjects : public view_listener_t | ||
8361 | { | ||
8362 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8363 | { | ||
8364 | bool new_value = gHideSelectedObjects; | ||
8365 | LLString control_name = userdata["control"].asString(); | ||
8366 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8367 | return true; | ||
8368 | } | ||
8369 | }; | ||
8370 | |||
8371 | |||
8372 | |||
8373 | /////////////////////////// | ||
8374 | // SELECTED TEXTURE INFO // | ||
8375 | /////////////////////////// | ||
8376 | |||
8377 | |||
8378 | class LLAdvancedSelectedTextureInfo : public view_listener_t | ||
8379 | { | ||
8380 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8381 | { | ||
8382 | handle_selected_texture_info(NULL); | ||
8383 | return true; | ||
8384 | } | ||
8385 | }; | ||
8386 | |||
8387 | |||
8388 | |||
8389 | ////////////////////// | ||
8390 | // TOGGLE WIREFRAME // | ||
8391 | ////////////////////// | ||
8392 | |||
8393 | |||
8394 | class LLAdvancedToggleWireframe : public view_listener_t | ||
8395 | { | ||
8396 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8397 | { | ||
8398 | gUseWireframe = !(gUseWireframe); | ||
8399 | return true; | ||
8400 | } | ||
8401 | }; | ||
8402 | |||
8403 | class LLAdvancedCheckWireframe : public view_listener_t | ||
8404 | { | ||
8405 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8406 | { | ||
8407 | bool new_value = gUseWireframe; | ||
8408 | LLString control_name = userdata["control"].asString(); | ||
8409 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8410 | return true; | ||
8411 | } | ||
8412 | }; | ||
8413 | |||
8414 | |||
8415 | |||
8416 | ////////////////////// | ||
8417 | // DISABLE TEXTURES // | ||
8418 | ////////////////////// | ||
8419 | |||
8420 | |||
8421 | class LLAdvancedToggleDisableTextures : public view_listener_t | ||
8422 | { | ||
8423 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8424 | { | ||
8425 | menu_toggle_variable((void*)&LLViewerImage::sDontLoadVolumeTextures); | ||
8426 | return true; | ||
8427 | } | ||
8428 | }; | ||
8429 | |||
8430 | class LLAdvancedCheckDisableTextures : public view_listener_t | ||
8431 | { | ||
8432 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8433 | { | ||
8434 | bool new_value = menu_check_variable((void*)&LLViewerImage::sDontLoadVolumeTextures); | ||
8435 | LLString control_name = userdata["control"].asString(); | ||
8436 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8437 | return true; | ||
8438 | } | ||
8439 | }; | ||
8440 | |||
8441 | |||
8442 | |||
8443 | ////////////////////////// | ||
8444 | // DUMP SCRIPTED CAMERA // | ||
8445 | ////////////////////////// | ||
8446 | |||
8447 | |||
8448 | class LLAdvancedDumpScriptedCamera : public view_listener_t | ||
8449 | { | ||
8450 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8451 | { | ||
8452 | handle_dump_followcam(NULL); | ||
8453 | return true; | ||
8454 | } | ||
8455 | }; | ||
8456 | |||
8457 | |||
8458 | |||
8459 | ////////////////////////////// | ||
8460 | // DUMP REGION OBJECT CACHE // | ||
8461 | ////////////////////////////// | ||
8462 | |||
8463 | |||
8464 | class LLAdvancedDumpRegionObjectCache : public view_listener_t | ||
8465 | { | ||
8466 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8467 | { | ||
8468 | handle_dump_region_object_cache(NULL); | ||
8469 | return true; | ||
8470 | } | ||
8471 | }; | ||
8472 | |||
8473 | |||
8474 | |||
8475 | //////////////// | ||
8476 | // SLURL TEST // | ||
8477 | //////////////// | ||
8478 | |||
8479 | |||
8480 | class LLAdvancedSLURLTest : public view_listener_t | ||
8481 | { | ||
8482 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8483 | { | ||
8484 | handle_slurl_test(NULL); | ||
8485 | return true; | ||
8486 | } | ||
8487 | }; | ||
8488 | |||
8489 | |||
8490 | |||
8491 | //////////////////////// | ||
8492 | // TOGGLE EDITABLE UI // | ||
8493 | //////////////////////// | ||
8494 | |||
8495 | |||
8496 | class LLAdvancedToggleEditableUI : public view_listener_t | ||
8497 | { | ||
8498 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8499 | { | ||
8500 | edit_ui(NULL); | ||
8501 | return true; | ||
8502 | } | ||
8503 | }; | ||
8504 | |||
8505 | // *TODO: Add corresponding "Check" for EditableUI, so it can | ||
8506 | // become a menu_item_check. Need to add check_edit_ui(void*) | ||
8507 | // or functional equivalent to do that. | ||
8508 | |||
8509 | |||
8510 | |||
8511 | ////////////////////// | ||
8512 | // ASYNC KEYSTROKES // | ||
8513 | ////////////////////// | ||
8514 | |||
8515 | |||
8516 | class LLAdvancedToggleAsyncKeystrokes : public view_listener_t | ||
8517 | { | ||
8518 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8519 | { | ||
8520 | gHandleKeysAsync = !(gHandleKeysAsync); | ||
8521 | return true; | ||
8522 | } | ||
8523 | }; | ||
8524 | |||
8525 | class LLAdvancedCheckAsyncKeystrokes : public view_listener_t | ||
8526 | { | ||
8527 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8528 | { | ||
8529 | bool new_value = gHandleKeysAsync; | ||
8530 | LLString control_name = userdata["control"].asString(); | ||
8531 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8532 | return true; | ||
8533 | } | ||
8534 | }; | ||
8535 | |||
8536 | |||
8537 | |||
8538 | ///////////////////// | ||
8539 | // DUMP SELECT MGR // | ||
8540 | ///////////////////// | ||
8541 | |||
8542 | |||
8543 | class LLAdvancedDumpSelectMgr : public view_listener_t | ||
8544 | { | ||
8545 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8546 | { | ||
8547 | dump_select_mgr(NULL); | ||
8548 | return true; | ||
8549 | } | ||
8550 | }; | ||
8551 | |||
8552 | |||
8553 | |||
8554 | //////////////////// | ||
8555 | // DUMP INVENTORY // | ||
8556 | //////////////////// | ||
8557 | |||
8558 | |||
8559 | class LLAdvancedDumpInventory : public view_listener_t | ||
8560 | { | ||
8561 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8562 | { | ||
8563 | dump_inventory(NULL); | ||
8564 | return true; | ||
8565 | } | ||
8566 | }; | ||
8567 | |||
8568 | |||
8569 | |||
8570 | /////////////////////// | ||
8571 | // DUMP FOCUS HOLDER // | ||
8572 | /////////////////////// | ||
8573 | |||
8574 | |||
8575 | class LLAdvancedDumpFocusHolder : public view_listener_t | ||
8576 | { | ||
8577 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8578 | { | ||
8579 | handle_dump_focus(NULL); | ||
8580 | return true; | ||
8581 | } | ||
8582 | }; | ||
8583 | |||
8584 | |||
8585 | |||
8586 | //////////////////////////////// | ||
8587 | // PRINT SELECTED OBJECT INFO // | ||
8588 | //////////////////////////////// | ||
8589 | |||
8590 | |||
8591 | class LLAdvancedPrintSelectedObjectInfo : public view_listener_t | ||
8592 | { | ||
8593 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8594 | { | ||
8595 | print_object_info(NULL); | ||
8596 | return true; | ||
8597 | } | ||
8598 | }; | ||
8599 | |||
8600 | |||
8601 | |||
8602 | ////////////////////// | ||
8603 | // PRINT AGENT INFO // | ||
8604 | ////////////////////// | ||
8605 | |||
8606 | |||
8607 | class LLAdvancedPrintAgentInfo : public view_listener_t | ||
8608 | { | ||
8609 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8610 | { | ||
8611 | print_agent_nvpairs(NULL); | ||
8612 | return true; | ||
8613 | } | ||
8614 | }; | ||
8615 | |||
8616 | |||
8617 | |||
8618 | //////////////////////////////// | ||
8619 | // PRINT TEXTURE MEMORY STATS // | ||
8620 | //////////////////////////////// | ||
8621 | |||
8622 | |||
8623 | class LLAdvancedPrintTextureMemoryStats : public view_listener_t | ||
8624 | { | ||
8625 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8626 | { | ||
8627 | output_statistics(NULL); | ||
8628 | return true; | ||
8629 | } | ||
8630 | }; | ||
8631 | |||
8632 | |||
8633 | |||
8634 | ////////////////////// | ||
8635 | // DEBUG SELECT MGR // | ||
8636 | ////////////////////// | ||
8637 | |||
8638 | |||
8639 | class LLAdvancedToggleDebugSelectMgr : public view_listener_t | ||
8640 | { | ||
8641 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8642 | { | ||
8643 | gDebugSelectMgr = !(gDebugSelectMgr); | ||
8644 | return true; | ||
8645 | } | ||
8646 | }; | ||
8647 | |||
8648 | class LLAdvancedCheckDebugSelectMgr : public view_listener_t | ||
8649 | { | ||
8650 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8651 | { | ||
8652 | bool new_value = gDebugSelectMgr; | ||
8653 | LLString control_name = userdata["control"].asString(); | ||
8654 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8655 | return true; | ||
8656 | } | ||
8657 | }; | ||
8658 | |||
8659 | |||
8660 | |||
8661 | ////////////////// | ||
8662 | // DEBUG CLICKS // | ||
8663 | ////////////////// | ||
8664 | |||
8665 | |||
8666 | class LLAdvancedToggleDebugClicks : public view_listener_t | ||
8667 | { | ||
8668 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8669 | { | ||
8670 | gDebugClicks = !(gDebugClicks); | ||
8671 | return true; | ||
8672 | } | ||
8673 | }; | ||
8674 | |||
8675 | class LLAdvancedCheckDebugClicks : public view_listener_t | ||
8676 | { | ||
8677 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8678 | { | ||
8679 | bool new_value = gDebugClicks; | ||
8680 | LLString control_name = userdata["control"].asString(); | ||
8681 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8682 | return true; | ||
8683 | } | ||
8684 | }; | ||
8685 | |||
8686 | |||
8687 | |||
8688 | ///////////////// | ||
8689 | // DEBUG VIEWS // | ||
8690 | ///////////////// | ||
8691 | |||
8692 | |||
8693 | class LLAdvancedToggleDebugViews : public view_listener_t | ||
8694 | { | ||
8695 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8696 | { | ||
8697 | LLView::sDebugRects = !(LLView::sDebugRects); | ||
8698 | return true; | ||
8699 | } | ||
8700 | }; | ||
8701 | |||
8702 | class LLAdvancedCheckDebugViews : public view_listener_t | ||
8703 | { | ||
8704 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8705 | { | ||
8706 | bool new_value = LLView::sDebugRects; | ||
8707 | LLString control_name = userdata["control"].asString(); | ||
8708 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8709 | return true; | ||
8710 | } | ||
8711 | }; | ||
8712 | |||
8713 | |||
8714 | |||
8715 | /////////////////////// | ||
8716 | // XUI NAME TOOLTIPS // | ||
8717 | /////////////////////// | ||
8718 | |||
8719 | |||
8720 | class LLAdvancedToggleXUINameTooltips : public view_listener_t | ||
8721 | { | ||
8722 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8723 | { | ||
8724 | toggle_show_xui_names(NULL); | ||
8725 | return true; | ||
8726 | } | ||
8727 | }; | ||
8728 | |||
8729 | class LLAdvancedCheckXUINameTooltips : public view_listener_t | ||
8730 | { | ||
8731 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8732 | { | ||
8733 | bool new_value = check_show_xui_names(NULL); | ||
8734 | LLString control_name = userdata["control"].asString(); | ||
8735 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8736 | return true; | ||
8737 | } | ||
8738 | }; | ||
8739 | |||
8740 | |||
8741 | |||
8742 | //////////////////////// | ||
8743 | // DEBUG MOUSE EVENTS // | ||
8744 | //////////////////////// | ||
8745 | |||
8746 | |||
8747 | class LLAdvancedToggleDebugMouseEvents : public view_listener_t | ||
8748 | { | ||
8749 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8750 | { | ||
8751 | LLView::sDebugMouseHandling = !(LLView::sDebugMouseHandling); | ||
8752 | return true; | ||
8753 | } | ||
8754 | }; | ||
8755 | |||
8756 | class LLAdvancedCheckDebugMouseEvents : public view_listener_t | ||
8757 | { | ||
8758 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8759 | { | ||
8760 | bool new_value = LLView::sDebugMouseHandling; | ||
8761 | LLString control_name = userdata["control"].asString(); | ||
8762 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8763 | return true; | ||
8764 | } | ||
8765 | }; | ||
8766 | |||
8767 | |||
8768 | |||
8769 | //////////////// | ||
8770 | // DEBUG KEYS // | ||
8771 | //////////////// | ||
8772 | |||
8773 | |||
8774 | class LLAdvancedToggleDebugKeys : public view_listener_t | ||
8775 | { | ||
8776 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8777 | { | ||
8778 | LLView::sDebugKeys = !(LLView::sDebugKeys); | ||
8779 | return true; | ||
8780 | } | ||
8781 | }; | ||
8782 | |||
8783 | class LLAdvancedCheckDebugKeys : public view_listener_t | ||
8784 | { | ||
8785 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8786 | { | ||
8787 | bool new_value = LLView::sDebugKeys; | ||
8788 | LLString control_name = userdata["control"].asString(); | ||
8789 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8790 | return true; | ||
8791 | } | ||
8792 | }; | ||
8793 | |||
8794 | |||
8795 | |||
8796 | /////////////////////// | ||
8797 | // DEBUG WINDOW PROC // | ||
8798 | /////////////////////// | ||
8799 | |||
8800 | |||
8801 | class LLAdvancedToggleDebugWindowProc : public view_listener_t | ||
8802 | { | ||
8803 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8804 | { | ||
8805 | gDebugWindowProc = !(gDebugWindowProc); | ||
8806 | return true; | ||
8807 | } | ||
8808 | }; | ||
8809 | |||
8810 | class LLAdvancedCheckDebugWindowProc : public view_listener_t | ||
8811 | { | ||
8812 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8813 | { | ||
8814 | bool new_value = gDebugWindowProc; | ||
8815 | LLString control_name = userdata["control"].asString(); | ||
8816 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8817 | return true; | ||
8818 | } | ||
8819 | }; | ||
8820 | |||
8821 | |||
8822 | |||
8823 | //////////////////////////// | ||
8824 | // DEBUG TEXT EDITOR TIPS // | ||
8825 | //////////////////////////// | ||
8826 | |||
8827 | |||
8828 | class LLAdvancedToggleDebugTextEditorTips : public view_listener_t | ||
8829 | { | ||
8830 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8831 | { | ||
8832 | gDebugTextEditorTips = !(gDebugTextEditorTips); | ||
8833 | return true; | ||
8834 | } | ||
8835 | }; | ||
8836 | |||
8837 | class LLAdvancedCheckDebugTextEditorTips : public view_listener_t | ||
8838 | { | ||
8839 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8840 | { | ||
8841 | bool new_value = gDebugTextEditorTips; | ||
8842 | LLString control_name = userdata["control"].asString(); | ||
8843 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8844 | return true; | ||
8845 | } | ||
8846 | }; | ||
8847 | |||
8848 | |||
8849 | |||
8850 | /////////////////////// | ||
8851 | // SHOW FLOATER TEST // | ||
8852 | /////////////////////// | ||
8853 | |||
8854 | |||
8855 | class LLAdvancedShowFloaterTest : public view_listener_t | ||
8856 | { | ||
8857 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8858 | { | ||
8859 | LLFloaterTest::show(NULL); | ||
8860 | return true; | ||
8861 | } | ||
8862 | }; | ||
8863 | |||
8864 | |||
8865 | |||
8866 | ///////////////////////// | ||
8867 | // EXPORT MENUS TO XML // | ||
8868 | ///////////////////////// | ||
8869 | |||
8870 | |||
8871 | class LLAdvancedExportMenusToXML : public view_listener_t | ||
8872 | { | ||
8873 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8874 | { | ||
8875 | handle_export_menus_to_xml(NULL); | ||
8876 | return true; | ||
8877 | } | ||
8878 | }; | ||
8879 | |||
8880 | |||
8881 | |||
8882 | ///////////// | ||
8883 | // EDIT UI // | ||
8884 | ///////////// | ||
8885 | |||
8886 | |||
8887 | class LLAdvancedEditUI : public view_listener_t | ||
8888 | { | ||
8889 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8890 | { | ||
8891 | LLFloaterEditUI::show(NULL); | ||
8892 | return true; | ||
8893 | } | ||
8894 | }; | ||
8895 | |||
8896 | |||
8897 | |||
8898 | ////////////////////// | ||
8899 | // LOAD UI FROM XML // | ||
8900 | ////////////////////// | ||
8901 | |||
8902 | |||
8903 | class LLAdvancedLoadUIFromXML : public view_listener_t | ||
8904 | { | ||
8905 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8906 | { | ||
8907 | handle_load_from_xml(NULL); | ||
8908 | return true; | ||
8909 | } | ||
8910 | }; | ||
8911 | |||
8912 | |||
8913 | |||
8914 | //////////////////// | ||
8915 | // SAVE UI TO XML // | ||
8916 | //////////////////// | ||
8917 | |||
8918 | |||
8919 | class LLAdvancedSaveUIToXML : public view_listener_t | ||
8920 | { | ||
8921 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8922 | { | ||
8923 | handle_save_to_xml(NULL); | ||
8924 | return true; | ||
8925 | } | ||
8926 | }; | ||
8927 | |||
8928 | |||
8929 | |||
8930 | /////////////// | ||
8931 | // XUI NAMES // | ||
8932 | /////////////// | ||
8933 | |||
8934 | |||
8935 | class LLAdvancedToggleXUINames : public view_listener_t | ||
8936 | { | ||
8937 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8938 | { | ||
8939 | toggle_show_xui_names(NULL); | ||
8940 | return true; | ||
8941 | } | ||
8942 | }; | ||
8943 | |||
8944 | class LLAdvancedCheckXUINames : public view_listener_t | ||
8945 | { | ||
8946 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8947 | { | ||
8948 | bool new_value = check_show_xui_names(NULL); | ||
8949 | LLString control_name = userdata["control"].asString(); | ||
8950 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8951 | return true; | ||
8952 | } | ||
8953 | }; | ||
8954 | |||
8955 | |||
8956 | |||
8957 | //////////////////////// | ||
8958 | // GRAB BAKED TEXTURE // | ||
8959 | //////////////////////// | ||
8960 | |||
8961 | |||
8962 | class LLAdvancedGrabBakedTexture : public view_listener_t | ||
8963 | { | ||
8964 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8965 | { | ||
8966 | LLString texture_type = userdata.asString(); | ||
8967 | if ("eyes" == texture_type) | ||
8968 | { | ||
8969 | handle_grab_texture( (void*)LLVOAvatar::TEX_EYES_BAKED ); | ||
8970 | } | ||
8971 | else if ("head" == texture_type) | ||
8972 | { | ||
8973 | handle_grab_texture( (void*)LLVOAvatar::TEX_HEAD_BAKED ); | ||
8974 | } | ||
8975 | else if ("upper" == texture_type) | ||
8976 | { | ||
8977 | handle_grab_texture( (void*)LLVOAvatar::TEX_UPPER_BAKED ); | ||
8978 | } | ||
8979 | else if ("lower" == texture_type) | ||
8980 | { | ||
8981 | handle_grab_texture( (void*)LLVOAvatar::TEX_SKIRT_BAKED ); | ||
8982 | } | ||
8983 | else if ("skirt" == texture_type) | ||
8984 | { | ||
8985 | handle_grab_texture( (void*)LLVOAvatar::TEX_SKIRT_BAKED ); | ||
8986 | } | ||
8987 | |||
8988 | return true; | ||
8989 | } | ||
8990 | }; | ||
8991 | |||
8992 | class LLAdvancedEnableGrabBakedTexture : public view_listener_t | ||
8993 | { | ||
8994 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8995 | { | ||
8996 | LLString texture_type = userdata["data"].asString(); | ||
8997 | bool new_value = false; | ||
8998 | |||
8999 | if ("iris" == texture_type) | ||
9000 | { | ||
9001 | new_value = enable_grab_texture( (void*)LLVOAvatar::TEX_EYES_BAKED ); | ||
9002 | } | ||
9003 | else if ("head" == texture_type) | ||
9004 | { | ||
9005 | new_value = enable_grab_texture( (void*)LLVOAvatar::TEX_HEAD_BAKED ); | ||
9006 | } | ||
9007 | else if ("upper" == texture_type) | ||
9008 | { | ||
9009 | new_value = enable_grab_texture( (void*)LLVOAvatar::TEX_UPPER_BAKED ); | ||
9010 | } | ||
9011 | else if ("lower" == texture_type) | ||
9012 | { | ||
9013 | new_value = enable_grab_texture( (void*)LLVOAvatar::TEX_LOWER_BAKED ); | ||
9014 | } | ||
9015 | else if ("skirt" == texture_type) | ||
9016 | { | ||
9017 | new_value = enable_grab_texture( (void*)LLVOAvatar::TEX_SKIRT_BAKED ); | ||
9018 | } | ||
9019 | |||
9020 | LLString control_name = userdata["control"].asString(); | ||
9021 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9022 | return true; | ||
9023 | } | ||
9024 | }; | ||
9025 | |||
9026 | |||
9027 | |||
9028 | ////////////////////// | ||
9029 | // ALLOW IDLE / AFK // | ||
9030 | ////////////////////// | ||
9031 | |||
9032 | |||
9033 | class LLAdvancedToggleAllowIdleAFK : public view_listener_t | ||
9034 | { | ||
9035 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9036 | { | ||
9037 | gAllowIdleAFK = !(gAllowIdleAFK); | ||
9038 | return true; | ||
9039 | } | ||
9040 | }; | ||
9041 | |||
9042 | class LLAdvancedCheckAllowIdleAFK : public view_listener_t | ||
9043 | { | ||
9044 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9045 | { | ||
9046 | bool new_value = gAllowIdleAFK; | ||
9047 | LLString control_name = userdata["control"].asString(); | ||
9048 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9049 | return true; | ||
9050 | } | ||
9051 | }; | ||
9052 | |||
9053 | |||
9054 | |||
9055 | /////////////////////// | ||
9056 | // APPEARANCE TO XML // | ||
9057 | /////////////////////// | ||
9058 | |||
9059 | |||
9060 | class LLAdvancedAppearanceToXML : public view_listener_t | ||
9061 | { | ||
9062 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9063 | { | ||
9064 | LLVOAvatar::dumpArchetypeXML(NULL); | ||
9065 | return true; | ||
9066 | } | ||
9067 | }; | ||
9068 | |||
9069 | |||
9070 | |||
9071 | /////////////////////////////// | ||
9072 | // TOGGLE CHARACTER GEOMETRY // | ||
9073 | /////////////////////////////// | ||
9074 | |||
9075 | |||
9076 | class LLAdvancedToggleCharacterGeometry : public view_listener_t | ||
9077 | { | ||
9078 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9079 | { | ||
9080 | handle_god_request_avatar_geometry(NULL); | ||
9081 | return true; | ||
9082 | } | ||
9083 | }; | ||
9084 | |||
9085 | class LLAdvancedEnableCharacterGeometry : public view_listener_t | ||
9086 | { | ||
9087 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9088 | { | ||
9089 | enable_god_customer_service(NULL); | ||
9090 | return true; | ||
9091 | } | ||
9092 | }; | ||
9093 | |||
9094 | |||
9095 | |||
9096 | ///////////////////////////// | ||
9097 | // TEST MALE / TEST FEMALE // | ||
9098 | ///////////////////////////// | ||
9099 | |||
9100 | |||
9101 | class LLAdvancedTestMale : public view_listener_t | ||
9102 | { | ||
9103 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9104 | { | ||
9105 | handle_test_male(NULL); | ||
9106 | return true; | ||
9107 | } | ||
9108 | }; | ||
9109 | |||
9110 | |||
9111 | class LLAdvancedTestFemale : public view_listener_t | ||
9112 | { | ||
9113 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9114 | { | ||
9115 | handle_test_female(NULL); | ||
9116 | return true; | ||
9117 | } | ||
9118 | }; | ||
9119 | |||
9120 | |||
9121 | |||
9122 | /////////////// | ||
9123 | // TOGGLE PG // | ||
9124 | /////////////// | ||
9125 | |||
9126 | |||
9127 | class LLAdvancedTogglePG : public view_listener_t | ||
9128 | { | ||
9129 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9130 | { | ||
9131 | handle_toggle_pg(NULL); | ||
9132 | return true; | ||
9133 | } | ||
9134 | }; | ||
9135 | |||
9136 | |||
9137 | |||
9138 | ///////////////////////// | ||
9139 | // ALLOW SELECT AVATAR // | ||
9140 | ///////////////////////// | ||
9141 | |||
9142 | |||
9143 | class LLAdvancedToggleAllowSelectAvatar : public view_listener_t | ||
9144 | { | ||
9145 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9146 | { | ||
9147 | gAllowSelectAvatar = !(gAllowSelectAvatar); | ||
9148 | return true; | ||
9149 | } | ||
9150 | }; | ||
9151 | |||
9152 | class LLAdvancedCheckAllowSelectAvatar : public view_listener_t | ||
9153 | { | ||
9154 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9155 | { | ||
9156 | bool new_value = gAllowSelectAvatar; | ||
9157 | LLString control_name = userdata["control"].asString(); | ||
9158 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9159 | return true; | ||
9160 | } | ||
9161 | }; | ||
9162 | |||
9163 | |||
9164 | |||
9165 | //////////////////////////// | ||
9166 | // ALLOW TAP-TAP-HOLD RUN // | ||
9167 | //////////////////////////// | ||
9168 | |||
9169 | |||
9170 | class LLAdvancedToggleAllowTapTapHoldRun : public view_listener_t | ||
9171 | { | ||
9172 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9173 | { | ||
9174 | gAllowTapTapHoldRun = !(gAllowTapTapHoldRun); | ||
9175 | return true; | ||
9176 | } | ||
9177 | }; | ||
9178 | |||
9179 | class LLAdvancedCheckAllowTapTapHoldRun : public view_listener_t | ||
9180 | { | ||
9181 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9182 | { | ||
9183 | bool new_value = gAllowTapTapHoldRun; | ||
9184 | LLString control_name = userdata["control"].asString(); | ||
9185 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9186 | return true; | ||
9187 | } | ||
9188 | }; | ||
9189 | |||
9190 | |||
9191 | |||
9192 | ///////////////////////////// | ||
9193 | // FORCE PARAMS TO DEFAULT // | ||
9194 | ///////////////////////////// | ||
9195 | |||
9196 | |||
9197 | class LLAdvancedForceParamsToDefault : public view_listener_t | ||
9198 | { | ||
9199 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9200 | { | ||
9201 | LLAgent::clearVisualParams(NULL); | ||
9202 | return true; | ||
9203 | } | ||
9204 | }; | ||
9205 | |||
9206 | |||
9207 | |||
9208 | ////////////////////////// | ||
9209 | // RELOAD VERTEX SHADER // | ||
9210 | ////////////////////////// | ||
9211 | |||
9212 | |||
9213 | class LLAdvancedReloadVertexShader : public view_listener_t | ||
9214 | { | ||
9215 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9216 | { | ||
9217 | reload_vertex_shader(NULL); | ||
9218 | return true; | ||
9219 | } | ||
9220 | }; | ||
9221 | |||
9222 | |||
9223 | |||
9224 | //////////////////// | ||
9225 | // ANIMATION INFO // | ||
9226 | //////////////////// | ||
9227 | |||
9228 | |||
9229 | class LLAdvancedToggleAnimationInfo : public view_listener_t | ||
9230 | { | ||
9231 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9232 | { | ||
9233 | LLVOAvatar::sShowAnimationDebug = !(LLVOAvatar::sShowAnimationDebug); | ||
9234 | return true; | ||
9235 | } | ||
9236 | }; | ||
9237 | |||
9238 | class LLAdvancedCheckAnimationInfo : public view_listener_t | ||
9239 | { | ||
9240 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9241 | { | ||
9242 | bool new_value = LLVOAvatar::sShowAnimationDebug; | ||
9243 | LLString control_name = userdata["control"].asString(); | ||
9244 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9245 | return true; | ||
9246 | } | ||
9247 | }; | ||
9248 | |||
9249 | |||
9250 | |||
9251 | //////////////////////////// | ||
9252 | // SLOW MOTION ANIMATIONS // | ||
9253 | //////////////////////////// | ||
9254 | |||
9255 | |||
9256 | class LLAdvancedToggleSlowMotionAnimations : public view_listener_t | ||
9257 | { | ||
9258 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9259 | { | ||
9260 | slow_mo_animations(NULL); | ||
9261 | return true; | ||
9262 | } | ||
9263 | }; | ||
9264 | |||
9265 | // *TODO: Add a corresponding "Check" event for SlowMotionAnimations, | ||
9266 | // so that it can become a menu_item_check with the "X" indicator. | ||
9267 | // See indra/newview/skins/xui/en_us/menu_viewer.xml | ||
9268 | |||
9269 | |||
9270 | |||
9271 | ////////////////// | ||
9272 | // SHOW LOOK AT // | ||
9273 | ////////////////// | ||
9274 | |||
9275 | |||
9276 | class LLAdvancedToggleShowLookAt : public view_listener_t | ||
9277 | { | ||
9278 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9279 | { | ||
9280 | LLHUDEffectLookAt::sDebugLookAt = !(LLHUDEffectLookAt::sDebugLookAt); | ||
9281 | return true; | ||
9282 | } | ||
9283 | }; | ||
9284 | |||
9285 | class LLAdvancedCheckShowLookAt : public view_listener_t | ||
9286 | { | ||
9287 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9288 | { | ||
9289 | bool new_value = LLHUDEffectLookAt::sDebugLookAt; | ||
9290 | LLString control_name = userdata["control"].asString(); | ||
9291 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9292 | return true; | ||
9293 | } | ||
9294 | }; | ||
9295 | |||
9296 | |||
9297 | |||
9298 | /////////////////// | ||
9299 | // SHOW POINT AT // | ||
9300 | /////////////////// | ||
9301 | |||
9302 | |||
9303 | class LLAdvancedToggleShowPointAt : public view_listener_t | ||
9304 | { | ||
9305 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9306 | { | ||
9307 | LLHUDEffectPointAt::sDebugPointAt = !(LLHUDEffectPointAt::sDebugPointAt); | ||
9308 | return true; | ||
9309 | } | ||
9310 | }; | ||
9311 | |||
9312 | class LLAdvancedCheckShowPointAt : public view_listener_t | ||
9313 | { | ||
9314 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9315 | { | ||
9316 | bool new_value = LLHUDEffectPointAt::sDebugPointAt; | ||
9317 | LLString control_name = userdata["control"].asString(); | ||
9318 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9319 | return true; | ||
9320 | } | ||
9321 | }; | ||
9322 | |||
9323 | |||
9324 | |||
9325 | ///////////////////////// | ||
9326 | // DEBUG JOINT UPDATES // | ||
9327 | ///////////////////////// | ||
9328 | |||
9329 | |||
9330 | class LLAdvancedToggleDebugJointUpdates : public view_listener_t | ||
9331 | { | ||
9332 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9333 | { | ||
9334 | LLVOAvatar::sJointDebug = !(LLVOAvatar::sJointDebug); | ||
9335 | return true; | ||
9336 | } | ||
9337 | }; | ||
9338 | |||
9339 | class LLAdvancedCheckDebugJointUpdates : public view_listener_t | ||
9340 | { | ||
9341 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9342 | { | ||
9343 | bool new_value = LLVOAvatar::sJointDebug; | ||
9344 | LLString control_name = userdata["control"].asString(); | ||
9345 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9346 | return true; | ||
9347 | } | ||
9348 | }; | ||
9349 | |||
9350 | |||
9351 | |||
9352 | ///////////////// | ||
9353 | // DISABLE LOD // | ||
9354 | ///////////////// | ||
9355 | |||
9356 | |||
9357 | class LLAdvancedToggleDisableLOD : public view_listener_t | ||
9358 | { | ||
9359 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9360 | { | ||
9361 | LLViewerJoint::sDisableLOD = !(LLViewerJoint::sDisableLOD); | ||
9362 | return true; | ||
9363 | } | ||
9364 | }; | ||
9365 | |||
9366 | class LLAdvancedCheckDisableLOD : public view_listener_t | ||
9367 | { | ||
9368 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9369 | { | ||
9370 | bool new_value = LLViewerJoint::sDisableLOD; | ||
9371 | LLString control_name = userdata["control"].asString(); | ||
9372 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9373 | return true; | ||
9374 | } | ||
9375 | }; | ||
9376 | |||
9377 | |||
9378 | |||
9379 | ///////////////////////// | ||
9380 | // DEBUG CHARACTER VIS // | ||
9381 | ///////////////////////// | ||
9382 | |||
9383 | |||
9384 | class LLAdvancedToggleDebugCharacterVis : public view_listener_t | ||
9385 | { | ||
9386 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9387 | { | ||
9388 | LLVOAvatar::sDebugInvisible = !(LLVOAvatar::sDebugInvisible); | ||
9389 | return true; | ||
9390 | } | ||
9391 | }; | ||
9392 | |||
9393 | class LLAdvancedCheckDebugCharacterVis : public view_listener_t | ||
9394 | { | ||
9395 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9396 | { | ||
9397 | bool new_value = LLVOAvatar::sDebugInvisible; | ||
9398 | LLString control_name = userdata["control"].asString(); | ||
9399 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9400 | return true; | ||
9401 | } | ||
9402 | }; | ||
9403 | |||
9404 | |||
9405 | |||
9406 | ////////////////////////// | ||
9407 | // SHOW COLLISION PLANE // | ||
9408 | ////////////////////////// | ||
9409 | |||
9410 | /*************************** | ||
9411 | * | ||
9412 | * Disabled. See DEV-14477 | ||
9413 | * | ||
9414 | *************************** | ||
9415 | |||
9416 | class LLAdvancedToggleShowCollisionPlane : public view_listener_t | ||
9417 | { | ||
9418 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9419 | { | ||
9420 | LLVOAvatar::sShowFootPlane = !(LLVOAvatar::sShowFootPlane); | ||
9421 | return true; | ||
9422 | } | ||
9423 | }; | ||
9424 | |||
9425 | class LLAdvancedCheckShowCollisionPlane : public view_listener_t | ||
9426 | { | ||
9427 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9428 | { | ||
9429 | bool new_value = LLVOAvatar::sShowFootPlane; | ||
9430 | LLString control_name = userdata["control"].asString(); | ||
9431 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9432 | return true; | ||
9433 | } | ||
9434 | }; | ||
9435 | |||
9436 | ***************************/ | ||
9437 | |||
9438 | |||
9439 | ///////////////////////////// | ||
9440 | // SHOW COLLISION SKELETON // | ||
9441 | ///////////////////////////// | ||
9442 | |||
9443 | |||
9444 | class LLAdvancedToggleShowCollisionSkeleton : public view_listener_t | ||
9445 | { | ||
9446 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9447 | { | ||
9448 | LLVOAvatar::sShowCollisionVolumes = !(LLVOAvatar::sShowCollisionVolumes); | ||
9449 | return true; | ||
9450 | } | ||
9451 | }; | ||
9452 | |||
9453 | class LLAdvancedCheckShowCollisionSkeleton : public view_listener_t | ||
9454 | { | ||
9455 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9456 | { | ||
9457 | bool new_value = LLVOAvatar::sShowCollisionVolumes; | ||
9458 | LLString control_name = userdata["control"].asString(); | ||
9459 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9460 | return true; | ||
9461 | } | ||
9462 | }; | ||
9463 | |||
9464 | |||
9465 | |||
9466 | ////////////////////////// | ||
9467 | // DISPLAY AGENT TARGET // | ||
9468 | ////////////////////////// | ||
9469 | |||
9470 | |||
9471 | class LLAdvancedToggleDisplayAgentTarget : public view_listener_t | ||
9472 | { | ||
9473 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9474 | { | ||
9475 | LLAgent::sDebugDisplayTarget = !(LLAgent::sDebugDisplayTarget); | ||
9476 | return true; | ||
9477 | } | ||
9478 | }; | ||
9479 | |||
9480 | class LLAdvancedCheckDisplayAgentTarget : public view_listener_t | ||
9481 | { | ||
9482 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9483 | { | ||
9484 | bool new_value = LLAgent::sDebugDisplayTarget; | ||
9485 | LLString control_name = userdata["control"].asString(); | ||
9486 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9487 | return true; | ||
9488 | } | ||
9489 | }; | ||
9490 | |||
9491 | |||
9492 | |||
9493 | /////////////////////////// | ||
9494 | // DEBUG AVATAR ROTATION // | ||
9495 | /////////////////////////// | ||
9496 | |||
9497 | |||
9498 | class LLAdvancedToggleDebugAvatarRotation : public view_listener_t | ||
9499 | { | ||
9500 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9501 | { | ||
9502 | gDebugAvatarRotation = !(gDebugAvatarRotation); | ||
9503 | return true; | ||
9504 | } | ||
9505 | }; | ||
9506 | |||
9507 | class LLAdvancedCheckDebugAvatarRotation : public view_listener_t | ||
9508 | { | ||
9509 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9510 | { | ||
9511 | bool new_value = gDebugAvatarRotation; | ||
9512 | LLString control_name = userdata["control"].asString(); | ||
9513 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9514 | return true; | ||
9515 | } | ||
9516 | }; | ||
9517 | |||
9518 | |||
9519 | |||
9520 | ////////////////////// | ||
9521 | // DUMP ATTACHMENTS // | ||
9522 | ////////////////////// | ||
9523 | |||
9524 | |||
9525 | class LLAdvancedDumpAttachments : public view_listener_t | ||
9526 | { | ||
9527 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9528 | { | ||
9529 | handle_dump_attachments(NULL); | ||
9530 | return true; | ||
9531 | } | ||
9532 | }; | ||
9533 | |||
9534 | |||
9535 | |||
9536 | ///////////////////// | ||
9537 | // REBAKE TEXTURES // | ||
9538 | ///////////////////// | ||
9539 | |||
9540 | |||
9541 | class LLAdvancedRebakeTextures : public view_listener_t | ||
9542 | { | ||
9543 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9544 | { | ||
9545 | handle_rebake_textures(NULL); | ||
9546 | return true; | ||
9547 | } | ||
9548 | }; | ||
9549 | |||
9550 | |||
9551 | |||
9552 | /////////////////////////// | ||
9553 | // DEBUG AVATAR TEXTURES // | ||
9554 | /////////////////////////// | ||
9555 | |||
9556 | |||
9557 | class LLAdvancedDebugAvatarTextures : public view_listener_t | ||
9558 | { | ||
9559 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9560 | { | ||
9561 | handle_debug_avatar_textures(NULL); | ||
9562 | return true; | ||
9563 | } | ||
9564 | }; | ||
9565 | |||
9566 | |||
9567 | |||
9568 | //////////////////////////////// | ||
9569 | // DUMP AVATAR LOCAL TEXTURES // | ||
9570 | //////////////////////////////// | ||
9571 | |||
9572 | |||
9573 | class LLAdvancedDumpAvatarLocalTextures : public view_listener_t | ||
9574 | { | ||
9575 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9576 | { | ||
9577 | handle_dump_avatar_local_textures(NULL); | ||
9578 | return true; | ||
9579 | } | ||
9580 | }; | ||
9581 | |||
9582 | |||
9583 | |||
9584 | ///////////////// | ||
9585 | // MESSAGE LOG // | ||
9586 | ///////////////// | ||
9587 | |||
9588 | |||
9589 | class LLAdvancedEnableMessageLog : public view_listener_t | ||
9590 | { | ||
9591 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9592 | { | ||
9593 | handle_viewer_enable_message_log(NULL); | ||
9594 | return true; | ||
9595 | } | ||
9596 | }; | ||
9597 | |||
9598 | class LLAdvancedDisableMessageLog : public view_listener_t | ||
9599 | { | ||
9600 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9601 | { | ||
9602 | handle_viewer_disable_message_log(NULL); | ||
9603 | return true; | ||
9604 | } | ||
9605 | }; | ||
9606 | |||
9607 | |||
9608 | |||
9609 | ///////////////// | ||
9610 | // DROP PACKET // | ||
9611 | ///////////////// | ||
9612 | |||
9613 | |||
9614 | class LLAdvancedDropPacket : public view_listener_t | ||
9615 | { | ||
9616 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9617 | { | ||
9618 | drop_packet(NULL); | ||
9619 | return true; | ||
9620 | } | ||
9621 | }; | ||
9622 | |||
9623 | |||
9624 | |||
9625 | ///////////////////////// | ||
9626 | // FRAME STATS LOGGING // | ||
9627 | ///////////////////////// | ||
9628 | |||
9629 | |||
9630 | class LLAdvancedFrameStatsLogging : public view_listener_t | ||
9631 | { | ||
9632 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9633 | { | ||
9634 | LLString command = userdata.asString(); | ||
9635 | if ("start logging" == command) | ||
9636 | { | ||
9637 | LLFrameStats::startLogging(NULL); | ||
9638 | } | ||
9639 | else if ("stop logging" == command) | ||
9640 | { | ||
9641 | LLFrameStats::stopLogging(NULL); | ||
9642 | } | ||
9643 | else if ("timed logging 10" == command) | ||
9644 | { | ||
9645 | LLFrameStats::timedLogging10(NULL); | ||
9646 | } | ||
9647 | else if ("timed logging 30" == command) | ||
9648 | { | ||
9649 | LLFrameStats::timedLogging30(NULL); | ||
9650 | } | ||
9651 | else if ("timed logging 60" == command) | ||
9652 | { | ||
9653 | LLFrameStats::timedLogging60(NULL); | ||
9654 | } | ||
9655 | |||
9656 | return true; | ||
9657 | } | ||
9658 | }; | ||
9659 | |||
9660 | |||
9661 | |||
9662 | ///////////////// | ||
9663 | // AGENT PILOT // | ||
9664 | ///////////////// | ||
9665 | |||
9666 | |||
9667 | class LLAdvancedAgentPilot : public view_listener_t | ||
9668 | { | ||
9669 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9670 | { | ||
9671 | LLString command = userdata.asString(); | ||
9672 | if ("start playback" == command) | ||
9673 | { | ||
9674 | LLAgentPilot::startPlayback(NULL); | ||
9675 | } | ||
9676 | else if ("stop playback" == command) | ||
9677 | { | ||
9678 | LLAgentPilot::stopPlayback(NULL); | ||
9679 | } | ||
9680 | else if ("start record" == command) | ||
9681 | { | ||
9682 | LLAgentPilot::startRecord(NULL); | ||
9683 | } | ||
9684 | else if ("stop record" == command) | ||
9685 | { | ||
9686 | LLAgentPilot::saveRecord(NULL); | ||
9687 | } | ||
9688 | |||
9689 | return true; | ||
9690 | } | ||
9691 | }; | ||
9692 | |||
9693 | |||
9694 | |||
9695 | ////////////////////// | ||
9696 | // AGENT PILOT LOOP // | ||
9697 | ////////////////////// | ||
9698 | |||
9699 | |||
9700 | class LLAdvancedToggleAgentPilotLoop : public view_listener_t | ||
9701 | { | ||
9702 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9703 | { | ||
9704 | LLAgentPilot::sLoop = !(LLAgentPilot::sLoop); | ||
9705 | return true; | ||
9706 | } | ||
9707 | }; | ||
9708 | |||
9709 | class LLAdvancedCheckAgentPilotLoop : public view_listener_t | ||
9710 | { | ||
9711 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9712 | { | ||
9713 | bool new_value = LLAgentPilot::sLoop; | ||
9714 | LLString control_name = userdata["control"].asString(); | ||
9715 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9716 | return true; | ||
9717 | } | ||
9718 | }; | ||
9719 | |||
9720 | |||
9721 | |||
9722 | ///////////////////////// | ||
9723 | // SHOW OBJECT UPDATES // | ||
9724 | ///////////////////////// | ||
9725 | |||
9726 | |||
9727 | class LLAdvancedToggleShowObjectUpdates : public view_listener_t | ||
9728 | { | ||
9729 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9730 | { | ||
9731 | gShowObjectUpdates = !(gShowObjectUpdates); | ||
9732 | return true; | ||
9733 | } | ||
9734 | }; | ||
9735 | |||
9736 | class LLAdvancedCheckShowObjectUpdates : public view_listener_t | ||
9737 | { | ||
9738 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9739 | { | ||
9740 | bool new_value = gShowObjectUpdates; | ||
9741 | LLString control_name = userdata["control"].asString(); | ||
9742 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9743 | return true; | ||
9744 | } | ||
9745 | }; | ||
9746 | |||
9747 | |||
9748 | |||
9749 | //////////////////// | ||
9750 | // COMPRESS IMAGE // | ||
9751 | //////////////////// | ||
9752 | |||
9753 | |||
9754 | class LLAdvancedCompressImage : public view_listener_t | ||
9755 | { | ||
9756 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9757 | { | ||
9758 | handle_compress_image(NULL); | ||
9759 | return true; | ||
9760 | } | ||
9761 | }; | ||
9762 | |||
9763 | |||
9764 | |||
9765 | ////////////////////// | ||
9766 | // CLOTHING FLOATER // | ||
9767 | ////////////////////// | ||
9768 | |||
9769 | |||
9770 | class LLAdvancedToggleClothingFloater : public view_listener_t | ||
9771 | { | ||
9772 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9773 | { | ||
9774 | handle_clothing(NULL); | ||
9775 | return true; | ||
9776 | } | ||
9777 | }; | ||
9778 | |||
9779 | // There is no LLAdvancedCheckClothingFloater. | ||
9780 | |||
9781 | |||
9782 | |||
9783 | ///////////////////////// | ||
9784 | // SHOW DEBUG SETTINGS // | ||
9785 | ///////////////////////// | ||
9786 | |||
9787 | |||
9788 | class LLAdvancedShowDebugSettings : public view_listener_t | ||
9789 | { | ||
9790 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9791 | { | ||
9792 | LLFloaterSettingsDebug::show(NULL); | ||
9793 | return true; | ||
9794 | } | ||
9795 | }; | ||
9796 | |||
9797 | |||
9798 | |||
9799 | //////////////////////// | ||
9800 | // VIEW ADMIN OPTIONS // | ||
9801 | //////////////////////// | ||
9802 | |||
9803 | |||
9804 | class LLAdvancedToggleViewAdminOptions : public view_listener_t | ||
9805 | { | ||
9806 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9807 | { | ||
9808 | handle_admin_override_toggle(NULL); | ||
9809 | return true; | ||
9810 | } | ||
9811 | }; | ||
9812 | |||
9813 | class LLAdvancedCheckViewAdminOptions : public view_listener_t | ||
9814 | { | ||
9815 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9816 | { | ||
9817 | bool new_value = check_admin_override(NULL); | ||
9818 | LLString control_name = userdata["control"].asString(); | ||
9819 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9820 | return true; | ||
9821 | } | ||
9822 | }; | ||
9823 | |||
9824 | |||
9825 | |||
9826 | ////////////////// | ||
9827 | // ADMIN STATUS // | ||
9828 | ////////////////// | ||
9829 | |||
9830 | |||
9831 | class LLAdvancedRequestAdminStatus : public view_listener_t | ||
9832 | { | ||
9833 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9834 | { | ||
9835 | handle_god_mode(NULL); | ||
9836 | return true; | ||
9837 | } | ||
9838 | }; | ||
9839 | |||
9840 | class LLAdvancedLeaveAdminStatus : public view_listener_t | ||
9841 | { | ||
9842 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9843 | { | ||
9844 | handle_leave_god_mode(NULL); | ||
9845 | return true; | ||
9846 | } | ||
9847 | }; | ||
9848 | |||
9849 | |||
9850 | |||
7723 | static void addMenu(view_listener_t *menu, const char *name) | 9851 | static void addMenu(view_listener_t *menu, const char *name) |
7724 | { | 9852 | { |
7725 | sMenus.push_back(menu); | 9853 | sMenus.push_back(menu); |
@@ -7827,6 +9955,7 @@ void initialize_menus() | |||
7827 | addMenu(new LLToolsSaveToInventory(), "Tools.SaveToInventory"); | 9955 | addMenu(new LLToolsSaveToInventory(), "Tools.SaveToInventory"); |
7828 | addMenu(new LLToolsSaveToObjectInventory(), "Tools.SaveToObjectInventory"); | 9956 | addMenu(new LLToolsSaveToObjectInventory(), "Tools.SaveToObjectInventory"); |
7829 | addMenu(new LLToolsSelectedScriptAction(), "Tools.SelectedScriptAction"); | 9957 | addMenu(new LLToolsSelectedScriptAction(), "Tools.SelectedScriptAction"); |
9958 | addMenu(new LLToolsSetBulkPerms(), "Tools.SetBulkPerms"); | ||
7830 | 9959 | ||
7831 | addMenu(new LLToolsEnableToolNotPie(), "Tools.EnableToolNotPie"); | 9960 | addMenu(new LLToolsEnableToolNotPie(), "Tools.EnableToolNotPie"); |
7832 | addMenu(new LLToolsEnableLink(), "Tools.EnableLink"); | 9961 | addMenu(new LLToolsEnableLink(), "Tools.EnableLink"); |
@@ -7928,4 +10057,155 @@ void initialize_menus() | |||
7928 | addMenu(new LLSomethingSelected(), "SomethingSelected"); | 10057 | addMenu(new LLSomethingSelected(), "SomethingSelected"); |
7929 | addMenu(new LLSomethingSelectedNoHUD(), "SomethingSelectedNoHUD"); | 10058 | addMenu(new LLSomethingSelectedNoHUD(), "SomethingSelectedNoHUD"); |
7930 | addMenu(new LLEditableSelected(), "EditableSelected"); | 10059 | addMenu(new LLEditableSelected(), "EditableSelected"); |
10060 | |||
10061 | |||
10062 | // Advanced (top level menu) | ||
10063 | addMenu(new LLAdvancedToggleConsole(), "Advanced.ToggleConsole"); | ||
10064 | addMenu(new LLAdvancedCheckConsole(), "Advanced.CheckConsole"); | ||
10065 | addMenu(new LLAdvancedDumpInfoToConsole(), "Advanced.DumpInfoToConsole"); | ||
10066 | addMenu(new LLAdvancedReloadSettingsOverrides(), "Advanced.ReloadSettingsOverrides"); | ||
10067 | |||
10068 | // Advanced > HUD Info | ||
10069 | addMenu(new LLAdvancedToggleHUDInfo(), "Advanced.ToggleHUDInfo"); | ||
10070 | addMenu(new LLAdvancedCheckHUDInfo(), "Advanced.CheckHUDInfo"); | ||
10071 | |||
10072 | addMenu(new LLAdvancedClearGroupCache(), "Advanced.ClearGroupCache"); | ||
10073 | |||
10074 | // Advanced > Render > Types | ||
10075 | addMenu(new LLAdvancedToggleRenderType(), "Advanced.ToggleRenderType"); | ||
10076 | addMenu(new LLAdvancedCheckRenderType(), "Advanced.CheckRenderType"); | ||
10077 | |||
10078 | // Advanced > Render > Features | ||
10079 | addMenu(new LLAdvancedToggleFeature(), "Advanced.ToggleFeature"); | ||
10080 | addMenu(new LLAdvancedCheckFeature(), "Advanced.CheckFeature"); | ||
10081 | |||
10082 | // Advanced > Render > Info Displays | ||
10083 | addMenu(new LLAdvancedToggleInfoDisplay(), "Advanced.ToggleInfoDisplay"); | ||
10084 | addMenu(new LLAdvancedCheckInfoDisplay(), "Advanced.CheckInfoDisplay"); | ||
10085 | addMenu(new LLAdvancedToggleSelectBuffer(), "Advanced.ToggleSelectBuffer"); | ||
10086 | addMenu(new LLAdvancedCheckSelectBuffer(), "Advanced.CheckSelectBuffer"); | ||
10087 | addMenu(new LLAdvancedToggleRandomizeFramerate(), "Advanced.ToggleRandomizeFramerate"); | ||
10088 | addMenu(new LLAdvancedCheckRandomizeFramerate(), "Advanced.CheckRandomizeFramerate"); | ||
10089 | addMenu(new LLAdvancedTogglePeriodicSlowFrame(), "Advanced.TogglePeriodicSlowFrame"); | ||
10090 | addMenu(new LLAdvancedCheckPeriodicSlowFrame(), "Advanced.CheckPeriodicSlowFrame"); | ||
10091 | addMenu(new LLAdvancedToggleFrameTest(), "Advanced.ToggleFrameTest"); | ||
10092 | addMenu(new LLAdvancedCheckFrameTest(), "Advanced.CheckFrameTest"); | ||
10093 | addMenu(new LLAdvancedToggleHideSelectedObjects(), "Advanced.ToggleHideSelectedObjects"); | ||
10094 | addMenu(new LLAdvancedCheckHideSelectedObjects(), "Advanced.CheckHideSelectedObjects"); | ||
10095 | addMenu(new LLAdvancedSelectedTextureInfo(), "Advanced.SelectedTextureInfo"); | ||
10096 | addMenu(new LLAdvancedToggleWireframe(), "Advanced.ToggleWireframe"); | ||
10097 | addMenu(new LLAdvancedCheckWireframe(), "Advanced.CheckWireframe"); | ||
10098 | addMenu(new LLAdvancedToggleDisableTextures(), "Advanced.ToggleDisableTextures"); | ||
10099 | addMenu(new LLAdvancedCheckDisableTextures(), "Advanced.CheckDisableTextures"); | ||
10100 | |||
10101 | // Advanced > World | ||
10102 | addMenu(new LLAdvancedDumpScriptedCamera(), "Advanced.DumpScriptedCamera"); | ||
10103 | addMenu(new LLAdvancedDumpRegionObjectCache(), "Advanced.DumpRegionObjectCache"); | ||
10104 | |||
10105 | // Advanced > UI | ||
10106 | addMenu(new LLAdvancedSLURLTest(), "Advanced.SLURLTest"); | ||
10107 | addMenu(new LLAdvancedToggleEditableUI(), "Advanced.ToggleEditableUI"); | ||
10108 | //addMenu(new LLAdvancedCheckEditableUI(), "Advanced.CheckEditableUI"); | ||
10109 | addMenu(new LLAdvancedToggleAsyncKeystrokes(), "Advanced.ToggleAsyncKeystrokes"); | ||
10110 | addMenu(new LLAdvancedCheckAsyncKeystrokes(), "Advanced.CheckAsyncKeystrokes"); | ||
10111 | addMenu(new LLAdvancedDumpSelectMgr(), "Advanced.DumpSelectMgr"); | ||
10112 | addMenu(new LLAdvancedDumpInventory(), "Advanced.DumpInventory"); | ||
10113 | addMenu(new LLAdvancedDumpFocusHolder(), "Advanced.DumpFocusHolder"); | ||
10114 | addMenu(new LLAdvancedPrintSelectedObjectInfo(), "Advanced.PrintSelectedObjectInfo"); | ||
10115 | addMenu(new LLAdvancedPrintAgentInfo(), "Advanced.PrintAgentInfo"); | ||
10116 | addMenu(new LLAdvancedPrintTextureMemoryStats(), "Advanced.PrintTextureMemoryStats"); | ||
10117 | addMenu(new LLAdvancedToggleDebugSelectMgr(), "Advanced.ToggleDebugSelectMgr"); | ||
10118 | addMenu(new LLAdvancedCheckDebugSelectMgr(), "Advanced.CheckDebugSelectMgr"); | ||
10119 | addMenu(new LLAdvancedToggleDebugClicks(), "Advanced.ToggleDebugClicks"); | ||
10120 | addMenu(new LLAdvancedCheckDebugClicks(), "Advanced.CheckDebugClicks"); | ||
10121 | addMenu(new LLAdvancedCheckDebugViews(), "Advanced.CheckDebugViews"); | ||
10122 | addMenu(new LLAdvancedToggleDebugViews(), "Advanced.ToggleDebugViews"); | ||
10123 | addMenu(new LLAdvancedToggleXUINameTooltips(), "Advanced.ToggleXUINameTooltips"); | ||
10124 | addMenu(new LLAdvancedCheckXUINameTooltips(), "Advanced.CheckXUINameTooltips"); | ||
10125 | addMenu(new LLAdvancedToggleDebugMouseEvents(), "Advanced.ToggleDebugMouseEvents"); | ||
10126 | addMenu(new LLAdvancedCheckDebugMouseEvents(), "Advanced.CheckDebugMouseEvents"); | ||
10127 | addMenu(new LLAdvancedToggleDebugKeys(), "Advanced.ToggleDebugKeys"); | ||
10128 | addMenu(new LLAdvancedCheckDebugKeys(), "Advanced.CheckDebugKeys"); | ||
10129 | addMenu(new LLAdvancedToggleDebugWindowProc(), "Advanced.ToggleDebugWindowProc"); | ||
10130 | addMenu(new LLAdvancedCheckDebugWindowProc(), "Advanced.CheckDebugWindowProc"); | ||
10131 | addMenu(new LLAdvancedToggleDebugTextEditorTips(), "Advanced.ToggleDebugTextEditorTips"); | ||
10132 | addMenu(new LLAdvancedCheckDebugTextEditorTips(), "Advanced.CheckDebugTextEditorTips"); | ||
10133 | |||
10134 | // Advanced > XUI | ||
10135 | addMenu(new LLAdvancedShowFloaterTest(), "Advanced.ShowFloaterTest"); | ||
10136 | addMenu(new LLAdvancedExportMenusToXML(), "Advanced.ExportMenusToXML"); | ||
10137 | addMenu(new LLAdvancedEditUI(), "Advanced.EditUI"); | ||
10138 | addMenu(new LLAdvancedLoadUIFromXML(), "Advanced.LoadUIFromXML"); | ||
10139 | addMenu(new LLAdvancedSaveUIToXML(), "Advanced.SaveUIToXML"); | ||
10140 | addMenu(new LLAdvancedToggleXUINames(), "Advanced.ToggleXUINames"); | ||
10141 | addMenu(new LLAdvancedCheckXUINames(), "Advanced.CheckXUINames"); | ||
10142 | |||
10143 | // Advanced > Character > Grab Baked Texture | ||
10144 | addMenu(new LLAdvancedGrabBakedTexture(), "Advanced.GrabBakedTexture"); | ||
10145 | addMenu(new LLAdvancedEnableGrabBakedTexture(), "Advanced.EnableGrabBakedTexture"); | ||
10146 | |||
10147 | // Advanced > Character > Character Tests | ||
10148 | addMenu(new LLAdvancedToggleAllowIdleAFK(), "Advanced.ToggleAllowIdleAFK"); | ||
10149 | addMenu(new LLAdvancedCheckAllowIdleAFK(), "Advanced.CheckAllowIdleAFK"); | ||
10150 | addMenu(new LLAdvancedAppearanceToXML(), "Advanced.AppearanceToXML"); | ||
10151 | addMenu(new LLAdvancedToggleCharacterGeometry(), "Advanced.ToggleCharacterGeometry"); | ||
10152 | addMenu(new LLAdvancedTestMale(), "Advanced.TestMale"); | ||
10153 | addMenu(new LLAdvancedTestFemale(), "Advanced.TestFemale"); | ||
10154 | addMenu(new LLAdvancedTogglePG(), "Advanced.TogglePG"); | ||
10155 | addMenu(new LLAdvancedToggleAllowSelectAvatar(), "Advanced.ToggleAllowSelectAvatar"); | ||
10156 | addMenu(new LLAdvancedCheckAllowSelectAvatar(), "Advanced.CheckAllowSelectAvatar"); | ||
10157 | |||
10158 | // Advanced > Character (toplevel) | ||
10159 | addMenu(new LLAdvancedToggleAllowTapTapHoldRun(), "Advanced.ToggleAllowTapTapHoldRun"); | ||
10160 | addMenu(new LLAdvancedCheckAllowTapTapHoldRun(), "Advanced.CheckAllowTapTapHoldRun"); | ||
10161 | addMenu(new LLAdvancedForceParamsToDefault(), "Advanced.ForceParamsToDefault"); | ||
10162 | addMenu(new LLAdvancedReloadVertexShader(), "Advanced.ReloadVertexShader"); | ||
10163 | addMenu(new LLAdvancedToggleAnimationInfo(), "Advanced.ToggleAnimationInfo"); | ||
10164 | addMenu(new LLAdvancedCheckAnimationInfo(), "Advanced.CheckAnimationInfo"); | ||
10165 | addMenu(new LLAdvancedToggleSlowMotionAnimations(), "Advanced.ToggleSlowMotionAnimations"); | ||
10166 | //addMenu(new LLAdvancedCheckSlowMotionAnimations(), "Advanced.CheckSlowMotionAnimations"); | ||
10167 | addMenu(new LLAdvancedToggleShowLookAt(), "Advanced.ToggleShowLookAt"); | ||
10168 | addMenu(new LLAdvancedCheckShowLookAt(), "Advanced.CheckShowLookAt"); | ||
10169 | addMenu(new LLAdvancedToggleShowPointAt(), "Advanced.ToggleShowPointAt"); | ||
10170 | addMenu(new LLAdvancedCheckShowPointAt(), "Advanced.CheckShowPointAt"); | ||
10171 | addMenu(new LLAdvancedToggleDebugJointUpdates(), "Advanced.ToggleDebugJointUpdates"); | ||
10172 | addMenu(new LLAdvancedCheckDebugJointUpdates(), "Advanced.CheckDebugJointUpdates"); | ||
10173 | addMenu(new LLAdvancedToggleDisableLOD(), "Advanced.ToggleDisableLOD"); | ||
10174 | addMenu(new LLAdvancedCheckDisableLOD(), "Advanced.CheckDisableLOD"); | ||
10175 | addMenu(new LLAdvancedToggleDebugCharacterVis(), "Advanced.ToggleDebugCharacterVis"); | ||
10176 | addMenu(new LLAdvancedCheckDebugCharacterVis(), "Advanced.CheckDebugCharacterVis"); | ||
10177 | // addMenu(new LLAdvancedToggleShowCollisionPlane(), "Advanced.ToggleShowCollisionPlane"); | ||
10178 | // addMenu(new LLAdvancedCheckShowCollisionPlane(), "Advanced.CheckShowCollisionPlane"); | ||
10179 | addMenu(new LLAdvancedToggleShowCollisionSkeleton(), "Advanced.ToggleShowCollisionSkeleton"); | ||
10180 | addMenu(new LLAdvancedCheckShowCollisionSkeleton(), "Advanced.CheckShowCollisionSkeleton"); | ||
10181 | addMenu(new LLAdvancedToggleDisplayAgentTarget(), "Advanced.ToggleDisplayAgentTarget"); | ||
10182 | addMenu(new LLAdvancedCheckDisplayAgentTarget(), "Advanced.CheckDisplayAgentTarget"); | ||
10183 | addMenu(new LLAdvancedToggleDebugAvatarRotation(), "Advanced.ToggleDebugAvatarRotation"); | ||
10184 | addMenu(new LLAdvancedCheckDebugAvatarRotation(), "Advanced.CheckDebugAvatarRotation"); | ||
10185 | addMenu(new LLAdvancedDumpAttachments(), "Advanced.DumpAttachments"); | ||
10186 | addMenu(new LLAdvancedRebakeTextures(), "Advanced.RebakeTextures"); | ||
10187 | addMenu(new LLAdvancedDebugAvatarTextures(), "Advanced.DebugAvatarTextures"); | ||
10188 | addMenu(new LLAdvancedDumpAvatarLocalTextures(), "Advanced.DumpAvatarLocalTextures"); | ||
10189 | |||
10190 | // Advanced > Network | ||
10191 | addMenu(new LLAdvancedEnableMessageLog(), "Advanced.EnableMessageLog"); | ||
10192 | addMenu(new LLAdvancedDisableMessageLog(), "Advanced.DisableMessageLog"); | ||
10193 | addMenu(new LLAdvancedDropPacket(), "Advanced.DropPacket"); | ||
10194 | |||
10195 | // Advanced > Recorder | ||
10196 | addMenu(new LLAdvancedFrameStatsLogging(), "Advanced.FrameStatsLogging"); | ||
10197 | addMenu(new LLAdvancedAgentPilot(), "Advanced.AgentPilot"); | ||
10198 | addMenu(new LLAdvancedToggleAgentPilotLoop(), "Advanced.ToggleAgentPilotLoop"); | ||
10199 | addMenu(new LLAdvancedCheckAgentPilotLoop(), "Advanced.CheckAgentPilotLoop"); | ||
10200 | |||
10201 | // Advanced (toplevel) | ||
10202 | addMenu(new LLAdvancedToggleShowObjectUpdates(), "Advanced.ToggleShowObjectUpdates"); | ||
10203 | addMenu(new LLAdvancedCheckShowObjectUpdates(), "Advanced.CheckShowObjectUpdates"); | ||
10204 | addMenu(new LLAdvancedCompressImage(), "Advanced.CompressImage"); | ||
10205 | addMenu(new LLAdvancedToggleClothingFloater(), "Advanced.ToggleClothingFloater"); | ||
10206 | addMenu(new LLAdvancedShowDebugSettings(), "Advanced.ShowDebugSettings"); | ||
10207 | addMenu(new LLAdvancedToggleViewAdminOptions(), "Advanced.ToggleViewAdminOptions"); | ||
10208 | addMenu(new LLAdvancedCheckViewAdminOptions(), "Advanced.CheckViewAdminOptions"); | ||
10209 | addMenu(new LLAdvancedRequestAdminStatus(), "Advanced.RequestAdminStatus"); | ||
10210 | addMenu(new LLAdvancedLeaveAdminStatus(), "Advanced.LeaveAdminStatus"); | ||
7931 | } | 10211 | } |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_bulk_perms.xml b/linden/indra/newview/skins/default/xui/en-us/floater_bulk_perms.xml new file mode 100644 index 0000000..3dd838a --- /dev/null +++ b/linden/indra/newview/skins/default/xui/en-us/floater_bulk_perms.xml | |||
@@ -0,0 +1,127 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater bottom="-554" can_close="true" can_drag_on_left="false" can_minimize="true" | ||
3 | can_resize="false" can_tear_off="false" enabled="true" height="420" | ||
4 | left="367" min_height="1000" min_width="460" mouse_opaque="true" | ||
5 | name="floaterrecursiveperms" title="Bulk permission settings" | ||
6 | width="460"> | ||
7 | |||
8 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
9 | bottom="-40" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
10 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" | ||
11 | mouse_opaque="true" name="applyto" v_pad="0" width="206">Apply to</text> | ||
12 | |||
13 | <check_box bottom="-70" enabled="true" follows="left|top" font="SansSerifSmall" | ||
14 | height="16" initial_value="false" | ||
15 | label="Scripts" left="10" mouse_opaque="true" | ||
16 | name="scripts" radio_style="false" | ||
17 | tool_tip="Apply bulk permissions to scripts" | ||
18 | width="219"/> | ||
19 | |||
20 | <check_box bottom="-90" enabled="true" follows="left|top" font="SansSerifSmall" | ||
21 | height="16" initial_value="false" | ||
22 | label="Textures" left="10" mouse_opaque="true" | ||
23 | name="textures" radio_style="false" | ||
24 | tool_tip="Apply bulk permissions to textures" | ||
25 | width="219"/> | ||
26 | |||
27 | <check_box bottom="-110" enabled="true" follows="left|top" font="SansSerifSmall" | ||
28 | height="16" initial_value="false" | ||
29 | label="Animations" left="10" mouse_opaque="true" | ||
30 | name="animations" radio_style="false" | ||
31 | tool_tip="Apply bulk permissions to animations" | ||
32 | width="219"/> | ||
33 | |||
34 | <check_box bottom="-130" enabled="true" follows="left|top" font="SansSerifSmall" | ||
35 | height="16" initial_value="false" | ||
36 | label="Sounds" left="10" mouse_opaque="true" | ||
37 | name="sounds" radio_style="false" | ||
38 | tool_tip="Apply bulk permissions to sounds" | ||
39 | width="219"/> | ||
40 | |||
41 | <check_box bottom="-150" enabled="true" follows="left|top" font="SansSerifSmall" | ||
42 | height="16" initial_value="false" | ||
43 | label="Contained objects" left="10" mouse_opaque="true" | ||
44 | name="objects" radio_style="false" | ||
45 | tool_tip="Apply bulk permissions to objects inside inventory" | ||
46 | width="219"/> | ||
47 | |||
48 | <check_box bottom="-170" enabled="true" follows="left|top" font="SansSerifSmall" | ||
49 | height="16" initial_value="false" | ||
50 | label="Landmarks" left="10" mouse_opaque="true" | ||
51 | name="landmarks" radio_style="false" | ||
52 | tool_tip="Apply bulk permissions to landmarks" | ||
53 | width="219"/> | ||
54 | |||
55 | <check_box bottom="-190" enabled="true" follows="left|top" font="SansSerifSmall" | ||
56 | height="16" initial_value="false" | ||
57 | label="Notecards" left="10" mouse_opaque="true" | ||
58 | name="notecards" radio_style="false" | ||
59 | tool_tip="Apply bulk permissions to notecards" | ||
60 | width="219"/> | ||
61 | |||
62 | <check_box bottom="-210" enabled="true" follows="left|top" font="SansSerifSmall" | ||
63 | height="16" initial_value="false" | ||
64 | label="Gesture" left="10" mouse_opaque="true" | ||
65 | name="gestures" radio_style="false" | ||
66 | tool_tip="Apply bulk permissions to gestures" | ||
67 | width="219"/> | ||
68 | |||
69 | <check_box bottom="-230" enabled="true" follows="left|top" font="SansSerifSmall" | ||
70 | height="16" initial_value="false" | ||
71 | label="Clothing" left="10" mouse_opaque="true" | ||
72 | name="clothing" radio_style="false" | ||
73 | tool_tip="Apply bulk permissions to clothing" | ||
74 | width="219"/> | ||
75 | |||
76 | <check_box bottom="-250" enabled="true" follows="left|top" font="SansSerifSmall" | ||
77 | height="16" initial_value="false" | ||
78 | label="Bodypart" left="10" mouse_opaque="true" | ||
79 | name="bodyparts" radio_style="false" | ||
80 | tool_tip="Apply bulk permissions to bodyparts" | ||
81 | width="219"/> | ||
82 | |||
83 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
84 | bottom="-40" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
85 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="200" | ||
86 | mouse_opaque="true" name="applyto" v_pad="0" width="206">Permissions</text> | ||
87 | |||
88 | |||
89 | <check_box bottom="-110" enabled="true" follows="left|top" font="SansSerifSmall" | ||
90 | height="16" initial_value="false" | ||
91 | label="Copy" left="200" mouse_opaque="true" | ||
92 | name="Copy" radio_style="false" | ||
93 | tool_tip="Next owner can copy" | ||
94 | width="219"/> | ||
95 | |||
96 | <check_box bottom="-130" enabled="true" follows="left|top" font="SansSerifSmall" | ||
97 | height="16" initial_value="false" | ||
98 | label="Modify" left="200" mouse_opaque="true" | ||
99 | name="Modify" radio_style="false" | ||
100 | tool_tip="Next owner can modify" | ||
101 | width="219"/> | ||
102 | |||
103 | <check_box bottom="-150" enabled="true" follows="left|top" font="SansSerifSmall" | ||
104 | height="16" initial_value="false" | ||
105 | label="Trans" left="200" mouse_opaque="true" | ||
106 | name="Trans" radio_style="false" | ||
107 | tool_tip="Next owner can transfer" | ||
108 | width="219"/> | ||
109 | |||
110 | <check_box bottom="-230" enabled="true" follows="left|top" font="SansSerifSmall" | ||
111 | height="16" initial_value="false" | ||
112 | label="Modify Parent Prims" left="200" mouse_opaque="true" | ||
113 | name="Parent" radio_style="false" | ||
114 | tool_tip="Modify parent prims not just inventory" | ||
115 | width="219" default="true"/> | ||
116 | |||
117 | <scroll_list background_visible="true" bottom="-410" column_padding="5" draw_border="true" | ||
118 | draw_heading="false" draw_stripes="true" enabled="true" | ||
119 | follows="left|top|right|bottom" height="140" left="10" mouse_opaque="true" | ||
120 | multi_select="false" name="queue output" width="440" /> | ||
121 | |||
122 | <button bottom="-70" enabled="true" follows="left|top" font="SansSerif" | ||
123 | halign="center" height="20" label="Apply..." | ||
124 | label_selected="Apply..." left="295" mouse_opaque="true" | ||
125 | name="Apply..." scale_image="true" width="145" /> | ||
126 | |||
127 | </floater> | ||
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml b/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml index 1817d8c..b5e36f6 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml | |||
@@ -77,7 +77,7 @@ | |||
77 | initial_value="false" label="Stretch (Ctrl-Shift)" left="4" | 77 | initial_value="false" label="Stretch (Ctrl-Shift)" left="4" |
78 | mouse_opaque="true" name="radio stretch" radio_style="true" width="123" /> | 78 | mouse_opaque="true" name="radio stretch" radio_style="true" width="123" /> |
79 | <check_box bottom_delta="-15" follows="left|top" font="SansSerifSmall" height="16" | 79 | <check_box bottom_delta="-15" follows="left|top" font="SansSerifSmall" height="16" |
80 | initial_value="false" label="Select Texture" left="4" mouse_opaque="true" | 80 | initial_value="false" label="Select Faces to Texture" left="4" mouse_opaque="true" |
81 | name="radio select face" radio_style="true" width="114" /> | 81 | name="radio select face" radio_style="true" width="114" /> |
82 | <check_box bottom_delta="-19" control_name="EditLinkedParts" follows="left|top" | 82 | <check_box bottom_delta="-19" control_name="EditLinkedParts" follows="left|top" |
83 | font="SansSerifSmall" height="16" initial_value="false" | 83 | font="SansSerifSmall" height="16" initial_value="false" |
@@ -717,10 +717,10 @@ | |||
717 | Path Cut Begin and End | 717 | Path Cut Begin and End |
718 | </text> | 718 | </text> |
719 | <spinner bottom_delta="-22" decimal_digits="3" follows="left|top" height="16" | 719 | <spinner bottom_delta="-22" decimal_digits="3" follows="left|top" height="16" |
720 | increment="0.05" initial_val="0" label="B" label_width="10" left="121" | 720 | increment="0.025" initial_val="0" label="B" label_width="10" left="121" |
721 | max_val="0.98" min_val="0" mouse_opaque="true" name="cut begin" width="68" /> | 721 | max_val="0.98" min_val="0" mouse_opaque="true" name="cut begin" width="68" /> |
722 | <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16" | 722 | <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16" |
723 | increment="0.05" initial_val="1" label="E" label_width="10" left_delta="73" | 723 | increment="0.025" initial_val="1" label="E" label_width="10" left_delta="73" |
724 | max_val="1" min_val="0.02" mouse_opaque="true" name="cut end" width="68" /> | 724 | max_val="1" min_val="0.02" mouse_opaque="true" name="cut end" width="68" /> |
725 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 725 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
726 | bottom_delta="-14" drop_shadow_visible="true" follows="left|top" | 726 | bottom_delta="-14" drop_shadow_visible="true" follows="left|top" |
@@ -819,12 +819,18 @@ | |||
819 | mouse_opaque="true" name="advanced_dimple" v_pad="0" width="141"> | 819 | mouse_opaque="true" name="advanced_dimple" v_pad="0" width="141"> |
820 | Dimple Begin and End | 820 | Dimple Begin and End |
821 | </text> | 821 | </text> |
822 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
823 | bottom_delta="0" drop_shadow_visible="true" follows="left|top" | ||
824 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="0" | ||
825 | mouse_opaque="true" name="advanced_slice" v_pad="0" width="141"> | ||
826 | Slice Begin and End | ||
827 | </text> | ||
822 | <spinner bottom_delta="-19" decimal_digits="3" follows="left|top" height="16" | 828 | <spinner bottom_delta="-19" decimal_digits="3" follows="left|top" height="16" |
823 | increment="0.05" initial_val="0" label="B" label_width="10" left="121" | 829 | increment="0.025" initial_val="0" label="B" label_width="10" left="121" |
824 | max_val="0.95" min_val="0" mouse_opaque="true" name="Path Limit Begin" | 830 | max_val="0.95" min_val="0" mouse_opaque="true" name="Path Limit Begin" |
825 | width="68" /> | 831 | width="68" /> |
826 | <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16" | 832 | <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16" |
827 | increment="0.05" initial_val="1" label="E" label_width="10" left_delta="73" | 833 | increment="0.025" initial_val="1" label="E" label_width="10" left_delta="73" |
828 | max_val="1" min_val="0.05" mouse_opaque="true" name="Path Limit End" | 834 | max_val="1" min_val="0.05" mouse_opaque="true" name="Path Limit End" |
829 | width="68" /> | 835 | width="68" /> |
830 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 836 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
@@ -988,7 +994,7 @@ | |||
988 | Transparency % | 994 | Transparency % |
989 | </text> | 995 | </text> |
990 | <spinner bottom_delta="-20" decimal_digits="0" follows="left|top" height="16" | 996 | <spinner bottom_delta="-20" decimal_digits="0" follows="left|top" height="16" |
991 | increment="2" initial_val="0" left="180" max_val="90" min_val="0" | 997 | increment="2" initial_val="0" left="180" max_val="100" min_val="0" |
992 | mouse_opaque="true" name="ColorTrans" width="80" /> | 998 | mouse_opaque="true" name="ColorTrans" width="80" /> |
993 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 999 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
994 | bottom_delta="-12" drop_shadow_visible="true" follows="left|top" | 1000 | bottom_delta="-12" drop_shadow_visible="true" follows="left|top" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml index 054f867..69604b0 100644 --- a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml +++ b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml | |||
@@ -1,856 +1,2033 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <menu_bar bottom="-18" drop_shadow="false" enabled="true" follows="left|top|right" | 2 | |
3 | height="18" left="0" mouse_opaque="true" name="Main Menu" opaque="false" | 3 | <menu_bar name="Main Menu" drop_shadow="false" follows="left|top|right" |
4 | tear_off="false" width="802"> | 4 | opaque="false" tear_off="false"> |
5 | <menu bottom="273" create_jump_keys="true" drop_shadow="true" enabled="true" | 5 | |
6 | height="263" label="File" left="0" mouse_opaque="false" name="File" | 6 | |
7 | opaque="true" tear_off="true" width="243"> | 7 | <!-- FILE --> |
8 | <tearoff_menu bottom="-10" enabled="true" height="10" label="~~~~~~~~~~~" left="0" | 8 | |
9 | mouse_opaque="true" name="~~~~~~~~~~~" width="243" /> | 9 | <menu name="File" create_jump_keys="true" label="File" |
10 | <menu_item_call bottom="-29" enabled="true" height="19" label="Upload Image (L$[COST])..." | 10 | opaque="true" tear_off="true"> |
11 | left="0" mouse_opaque="true" name="Upload Image" shortcut="control|U" | 11 | <menu_item_call name="Upload Image" |
12 | width="243"> | 12 | label="Upload Image (L$[COST])..." |
13 | <on_click function="File.UploadImage" userdata="" /> | 13 | shortcut="control|U"> |
14 | <on_enable function="File.EnableUpload" /> | 14 | <on_click function="File.UploadImage" userdata="" /> |
15 | </menu_item_call> | 15 | <on_enable function="File.EnableUpload" /> |
16 | <menu_item_call bottom="-48" enabled="true" height="19" label="Upload Sound (L$[COST])..." | 16 | </menu_item_call> |
17 | left="0" mouse_opaque="true" name="Upload Sound" width="243"> | 17 | <menu_item_call name="Upload Sound" |
18 | <on_click function="File.UploadSound" userdata="" /> | 18 | label="Upload Sound (L$[COST])..."> |
19 | <on_enable function="File.EnableUpload" /> | 19 | <on_click function="File.UploadSound" userdata="" /> |
20 | </menu_item_call> | 20 | <on_enable function="File.EnableUpload" /> |
21 | <menu_item_call bottom="-67" enabled="true" height="19" label="Upload Animation (L$[COST])..." | 21 | </menu_item_call> |
22 | left="0" mouse_opaque="true" name="Upload Animation" width="243"> | 22 | <menu_item_call name="Upload Animation" |
23 | <on_click function="File.UploadAnim" userdata="" /> | 23 | label="Upload Animation (L$[COST])..."> |
24 | <on_enable function="File.EnableUpload" /> | 24 | <on_click function="File.UploadAnim" userdata="" /> |
25 | </menu_item_call> | 25 | <on_enable function="File.EnableUpload" /> |
26 | <menu_item_call bottom="-86" enabled="true" height="19" | 26 | </menu_item_call> |
27 | label="Bulk Upload (L$[COST] per file)..." left="0" mouse_opaque="true" | 27 | <menu_item_call name="Bulk Upload" |
28 | name="Bulk Upload" width="243"> | 28 | label="Bulk Upload (L$[COST] per file)..."> |
29 | <on_click function="File.UploadBulk" userdata="" /> | 29 | <on_click function="File.UploadBulk" userdata="" /> |
30 | </menu_item_call> | 30 | </menu_item_call> |
31 | <menu_item_separator bottom="-94" enabled="true" height="8" label="-----------" left="0" | 31 | <menu_item_separator /> |
32 | mouse_opaque="true" name="separator" width="243" /> | 32 | <menu_item_call name="Close Window" |
33 | <menu_item_call bottom="-113" enabled="true" height="19" label="Close Window" left="0" | 33 | label="Close Window" |
34 | mouse_opaque="true" name="Close Window" shortcut="control|W" width="243"> | 34 | shortcut="control|W"> |
35 | <on_click function="File.CloseWindow" userdata="" /> | 35 | <on_click function="File.CloseWindow" |
36 | <on_enable function="File.EnableCloseWindow" userdata="" /> | 36 | userdata="" /> |
37 | </menu_item_call> | 37 | <on_enable function="File.EnableCloseWindow" |
38 | <menu_item_call bottom="-113" enabled="true" height="19" label="Close All Windows" left="0" | 38 | userdata="" /> |
39 | mouse_opaque="true" name="Close All Windows" shortcut="control|shift|W" | 39 | </menu_item_call> |
40 | width="243"> | 40 | <menu_item_call name="Close All Windows" |
41 | <on_click function="File.CloseAllWindows" userdata="" /> | 41 | label="Close All Windows" |
42 | <on_enable function="File.EnableCloseAllWindows" userdata="" /> | 42 | shortcut="control|shift|W"> |
43 | </menu_item_call> | 43 | <on_click function="File.CloseAllWindows" |
44 | <menu_item_separator bottom="-121" enabled="true" height="8" label="-----------" left="0" | 44 | userdata="" /> |
45 | mouse_opaque="true" name="separator2" width="243" /> | 45 | <on_enable function="File.EnableCloseAllWindows" |
46 | <menu_item_call bottom="-140" enabled="true" height="19" label="Save Texture As..." left="0" | 46 | userdata="" /> |
47 | mouse_opaque="true" name="Save Texture As..." width="243"> | 47 | </menu_item_call> |
48 | <on_click function="File.SaveTexture" userdata="" /> | 48 | <menu_item_separator /> |
49 | <on_enable function="File.EnableSaveAs" /> | 49 | <menu_item_call name="Save Texture As..." |
50 | </menu_item_call> | 50 | label="Save Texture As..."> |
51 | <menu_item_separator bottom="-148" enabled="true" height="8" label="-----------" left="0" | 51 | <on_click function="File.SaveTexture" userdata="" /> |
52 | mouse_opaque="true" name="separator3" width="243" /> | 52 | <on_enable function="File.EnableSaveAs" /> |
53 | <menu_item_call bottom="-167" enabled="true" height="19" label="Take Snapshot" left="0" | 53 | </menu_item_call> |
54 | mouse_opaque="true" name="Take Snapshot" shortcut="control|shift|S" | 54 | <menu_item_separator /> |
55 | width="243"> | 55 | <menu_item_call name="Take Snapshot" |
56 | <on_click function="File.TakeSnapshot" userdata="" /> | 56 | label="Take Snapshot" |
57 | </menu_item_call> | 57 | shortcut="control|shift|S"> |
58 | <menu_item_call bottom="-186" enabled="true" height="19" label="Snapshot to Disk" left="0" | 58 | <on_click function="File.TakeSnapshot" userdata="" /> |
59 | mouse_opaque="true" name="Snapshot to Disk" shortcut="control|`" | 59 | </menu_item_call> |
60 | useMacCtrl="true" width="243"> | 60 | <menu_item_call name="Snapshot to Disk" |
61 | <on_click function="File.TakeSnapshotToDisk" userdata="" /> | 61 | label="Snapshot to Disk" |
62 | </menu_item_call> | 62 | shortcut="control|`" useMacCtrl="true"> |
63 | <menu_item_separator bottom="-194" enabled="true" height="8" label="-----------" left="0" | 63 | <on_click function="File.TakeSnapshotToDisk" |
64 | mouse_opaque="true" name="separator4" width="243" /> | 64 | userdata="" /> |
65 | <menu_item_call bottom="-259" enabled="true" height="19" label="Quit" left="0" | 65 | </menu_item_call> |
66 | mouse_opaque="true" name="Quit" shortcut="control|Q" width="243"> | 66 | <menu_item_separator /> |
67 | <on_click function="File.Quit" userdata="" /> | 67 | <menu_item_call name="Quit" label="Quit" |
68 | </menu_item_call> | 68 | shortcut="control|Q"> |
69 | </menu> | 69 | <on_click function="File.Quit" userdata="" /> |
70 | <menu bottom="97" create_jump_keys="true" drop_shadow="true" enabled="true" | 70 | </menu_item_call> |
71 | height="439" label="Edit" left="38" mouse_opaque="false" name="Edit" | 71 | </menu> |
72 | opaque="true" tear_off="true" width="153"> | 72 | |
73 | <menu_item_call bottom="-29" enabled="false" height="19" label="Undo" left="0" | 73 | |
74 | mouse_opaque="true" name="Undo" shortcut="control|Z" width="153"> | 74 | |
75 | <on_click function="Edit.Undo" userdata="" /> | 75 | <!-- EDIT --> |
76 | <on_enable function="Edit.EnableUndo" /> | 76 | |
77 | </menu_item_call> | 77 | <menu name="Edit" create_jump_keys="true" label="Edit" |
78 | <menu_item_call bottom="-48" enabled="false" height="19" label="Redo" left="0" | 78 | opaque="true" tear_off="true"> |
79 | mouse_opaque="true" name="Redo" shortcut="control|Y" width="153"> | 79 | <menu_item_call name="Undo" enabled="false" label="Undo" |
80 | <on_click function="Edit.Redo" userdata="" /> | 80 | shortcut="control|Z"> |
81 | <on_enable function="Edit.EnableRedo" /> | 81 | <on_click function="Edit.Undo" userdata="" /> |
82 | </menu_item_call> | 82 | <on_enable function="Edit.EnableUndo" /> |
83 | <menu_item_separator bottom="-56" enabled="true" height="8" label="-----------" left="0" | 83 | </menu_item_call> |
84 | mouse_opaque="true" name="separator" width="153" /> | 84 | <menu_item_call name="Redo" enabled="false" label="Redo" |
85 | <menu_item_call bottom="-75" enabled="false" height="19" label="Cut" left="0" | 85 | shortcut="control|Y"> |
86 | mouse_opaque="true" name="Cut" shortcut="control|X" width="153"> | 86 | <on_click function="Edit.Redo" userdata="" /> |
87 | <on_click function="Edit.Cut" userdata="" /> | 87 | <on_enable function="Edit.EnableRedo" /> |
88 | <on_enable function="Edit.EnableCut" /> | 88 | </menu_item_call> |
89 | </menu_item_call> | 89 | <menu_item_separator /> |
90 | <menu_item_call bottom="-94" enabled="false" height="19" label="Copy" left="0" | 90 | <menu_item_call name="Cut" enabled="false" label="Cut" |
91 | mouse_opaque="true" name="Copy" shortcut="control|C" width="153"> | 91 | shortcut="control|X"> |
92 | <on_click function="Edit.Copy" userdata="" /> | 92 | <on_click function="Edit.Cut" userdata="" /> |
93 | <on_enable function="Edit.EnableCopy" /> | 93 | <on_enable function="Edit.EnableCut" /> |
94 | </menu_item_call> | 94 | </menu_item_call> |
95 | <menu_item_call bottom="-113" enabled="false" height="19" label="Paste" left="0" | 95 | <menu_item_call name="Copy" enabled="false" label="Copy" |
96 | mouse_opaque="true" name="Paste" shortcut="control|V" width="153"> | 96 | shortcut="control|C"> |
97 | <on_click function="Edit.Paste" userdata="" /> | 97 | <on_click function="Edit.Copy" userdata="" /> |
98 | <on_enable function="Edit.EnablePaste" /> | 98 | <on_enable function="Edit.EnableCopy" /> |
99 | </menu_item_call> | 99 | </menu_item_call> |
100 | <menu_item_call bottom="-132" enabled="false" height="19" label="Delete" left="0" | 100 | <menu_item_call name="Paste" enabled="false" label="Paste" |
101 | mouse_opaque="true" name="Delete" shortcut="Del" width="153"> | 101 | shortcut="control|V"> |
102 | <on_click function="Edit.Delete" userdata="" /> | 102 | <on_click function="Edit.Paste" userdata="" /> |
103 | <on_enable function="Edit.EnableDelete" /> | 103 | <on_enable function="Edit.EnablePaste" /> |
104 | </menu_item_call> | 104 | </menu_item_call> |
105 | <menu_item_separator bottom="-140" enabled="true" height="8" label="-----------" left="0" | 105 | <menu_item_call name="Delete" enabled="false" label="Delete" |
106 | mouse_opaque="true" name="separator2" width="153" /> | 106 | shortcut="Del"> |
107 | <menu_item_call bottom="-159" enabled="true" height="19" label="Search..." left="0" | 107 | <on_click function="Edit.Delete" userdata="" /> |
108 | mouse_opaque="true" name="Search..." shortcut="control|F" width="153"> | 108 | <on_enable function="Edit.EnableDelete" /> |
109 | <on_click function="Edit.Search" userdata="" /> | 109 | </menu_item_call> |
110 | </menu_item_call> | 110 | <menu_item_separator /> |
111 | <menu_item_separator bottom="-167" enabled="true" height="8" label="-----------" left="0" | 111 | <menu_item_call name="Search..." label="Search..." |
112 | mouse_opaque="true" name="separator3" width="153" /> | 112 | shortcut="control|F"> |
113 | <menu_item_call bottom="-186" enabled="false" height="19" label="Select All" left="0" | 113 | <on_click function="Edit.Search" userdata="" /> |
114 | mouse_opaque="true" name="Select All" shortcut="control|A" width="153"> | 114 | </menu_item_call> |
115 | <on_click function="Edit.SelectAll" userdata="" /> | 115 | <menu_item_separator /> |
116 | <on_enable function="Edit.EnableSelectAll" /> | 116 | <menu_item_call name="Select All" enabled="false" |
117 | </menu_item_call> | 117 | label="Select All" |
118 | <menu_item_call bottom="-205" enabled="false" height="19" label="Deselect" left="0" | 118 | shortcut="control|A"> |
119 | mouse_opaque="true" name="Deselect" shortcut="control|E" width="153"> | 119 | <on_click function="Edit.SelectAll" userdata="" /> |
120 | <on_click function="Edit.Deselect" userdata="" /> | 120 | <on_enable function="Edit.EnableSelectAll" /> |
121 | <on_enable function="Edit.EnableDeselect" /> | 121 | </menu_item_call> |
122 | </menu_item_call> | 122 | <menu_item_call name="Deselect" enabled="false" |
123 | <menu_item_separator bottom="-213" enabled="true" height="8" label="-----------" left="0" | 123 | label="Deselect" |
124 | mouse_opaque="true" name="separator4" width="153" /> | 124 | shortcut="control|E"> |
125 | <menu_item_call bottom="-232" enabled="false" height="19" label="Duplicate" left="0" | 125 | <on_click function="Edit.Deselect" userdata="" /> |
126 | mouse_opaque="true" name="Duplicate" shortcut="control|D" width="153"> | 126 | <on_enable function="Edit.EnableDeselect" /> |
127 | <on_click function="Edit.Duplicate" userdata="" /> | 127 | </menu_item_call> |
128 | <on_enable function="Edit.EnableDuplicate" /> | 128 | <menu_item_separator /> |
129 | </menu_item_call> | 129 | <menu_item_call name="Duplicate" enabled="false" |
130 | <menu_item_separator bottom="-240" enabled="true" height="8" label="-----------" left="0" | 130 | label="Duplicate" |
131 | mouse_opaque="true" name="separator5" width="153" /> | 131 | shortcut="control|D"> |
132 | <menu bottom="-554" create_jump_keys="true" drop_shadow="true" enabled="true" | 132 | <on_click function="Edit.Duplicate" userdata="" /> |
133 | height="554" label="Attach Object" left="0" mouse_opaque="false" | 133 | <on_enable function="Edit.EnableDuplicate" /> |
134 | name="Attach Object" opaque="true" tear_off="true" width="117" /> | 134 | </menu_item_call> |
135 | <menu bottom="-554" create_jump_keys="true" drop_shadow="true" enabled="true" | 135 | <menu_item_separator /> |
136 | height="554" label="Detach Object" left="191" mouse_opaque="false" | 136 | |
137 | name="Detach Object" opaque="true" tear_off="true" width="118" /> | 137 | <menu name="Attach Object" create_jump_keys="true" |
138 | <menu bottom="-554" create_jump_keys="true" drop_shadow="true" enabled="true" | 138 | label="Attach Object" opaque="true" tear_off="true" /> |
139 | height="204" label="Take Off Clothing" left="0" mouse_opaque="false" | 139 | |
140 | name="Take Off Clothing" opaque="true" tear_off="true" width="118"> | 140 | <menu name="Detach Object" create_jump_keys="true" |
141 | <menu_item_call bottom="-29" enabled="false" height="19" label="Shirt" left="0" | 141 | label="Detach Object" opaque="true" tear_off="true" /> |
142 | mouse_opaque="true" name="Shirt" width="118"> | 142 | |
143 | <on_click function="Edit.TakeOff" userdata="shirt" /> | 143 | |
144 | <on_enable function="Edit.EnableTakeOff" userdata="shirt" /> | 144 | <menu name="Take Off Clothing" create_jump_keys="true" |
145 | </menu_item_call> | 145 | label="Take Off Clothing" opaque="true" tear_off="true"> |
146 | <menu_item_call bottom="-48" enabled="false" height="19" label="Pants" left="0" | 146 | |
147 | mouse_opaque="true" name="Pants" width="118"> | 147 | <menu_item_call name="Shirt" enabled="false" label="Shirt"> |
148 | <on_click function="Edit.TakeOff" userdata="pants" /> | 148 | <on_click function="Edit.TakeOff" |
149 | <on_enable function="Edit.EnableTakeOff" userdata="pants" /> | 149 | userdata="shirt" /> |
150 | </menu_item_call> | 150 | <on_enable function="Edit.EnableTakeOff" |
151 | <menu_item_call bottom="-67" enabled="false" height="19" label="Shoes" left="0" | 151 | userdata="shirt" /> |
152 | mouse_opaque="true" name="Shoes" width="118"> | 152 | </menu_item_call> |
153 | <on_click function="Edit.TakeOff" userdata="shoes" /> | 153 | <menu_item_call name="Pants" enabled="false" label="Pants"> |
154 | <on_enable function="Edit.EnableTakeOff" userdata="shoes" /> | 154 | <on_click function="Edit.TakeOff" |
155 | </menu_item_call> | 155 | userdata="pants" /> |
156 | <menu_item_call bottom="-86" enabled="false" height="19" label="Socks" left="0" | 156 | <on_enable function="Edit.EnableTakeOff" |
157 | mouse_opaque="true" name="Socks" width="118"> | 157 | userdata="pants" /> |
158 | <on_click function="Edit.TakeOff" userdata="socks" /> | 158 | </menu_item_call> |
159 | <on_enable function="Edit.EnableTakeOff" userdata="socks" /> | 159 | <menu_item_call name="Shoes" enabled="false" label="Shoes"> |
160 | </menu_item_call> | 160 | <on_click function="Edit.TakeOff" |
161 | <menu_item_call bottom="-105" enabled="false" height="19" label="Jacket" left="0" | 161 | userdata="shoes" /> |
162 | mouse_opaque="true" name="Jacket" width="118"> | 162 | <on_enable function="Edit.EnableTakeOff" |
163 | <on_click function="Edit.TakeOff" userdata="jacket" /> | 163 | userdata="shoes" /> |
164 | <on_enable function="Edit.EnableTakeOff" userdata="jacket" /> | 164 | </menu_item_call> |
165 | </menu_item_call> | 165 | <menu_item_call name="Socks" enabled="false" label="Socks"> |
166 | <menu_item_call bottom="-124" enabled="false" height="19" label="Gloves" left="0" | 166 | <on_click function="Edit.TakeOff" |
167 | mouse_opaque="true" name="Gloves" width="118"> | 167 | userdata="socks" /> |
168 | <on_click function="Edit.TakeOff" userdata="gloves" /> | 168 | <on_enable function="Edit.EnableTakeOff" |
169 | <on_enable function="Edit.EnableTakeOff" userdata="gloves" /> | 169 | userdata="socks" /> |
170 | </menu_item_call> | 170 | </menu_item_call> |
171 | <menu_item_call bottom="-143" enabled="false" height="19" label="Undershirt" left="0" | 171 | <menu_item_call name="Jacket" enabled="false" label="Jacket"> |
172 | mouse_opaque="true" name="Menu Undershirt" width="118"> | 172 | <on_click function="Edit.TakeOff" |
173 | <on_click function="Edit.TakeOff" userdata="undershirt" /> | 173 | userdata="jacket" /> |
174 | <on_enable function="Edit.EnableTakeOff" userdata="undershirt" /> | 174 | <on_enable function="Edit.EnableTakeOff" |
175 | </menu_item_call> | 175 | userdata="jacket" /> |
176 | <menu_item_call bottom="-162" enabled="false" height="19" label="Underpants" left="0" | 176 | </menu_item_call> |
177 | mouse_opaque="true" name="Menu Underpants" width="118"> | 177 | <menu_item_call name="Gloves" enabled="false" label="Gloves"> |
178 | <on_click function="Edit.TakeOff" userdata="underpants" /> | 178 | <on_click function="Edit.TakeOff" |
179 | <on_enable function="Edit.EnableTakeOff" userdata="underpants" /> | 179 | userdata="gloves" /> |
180 | </menu_item_call> | 180 | <on_enable function="Edit.EnableTakeOff" |
181 | <menu_item_call bottom="-181" enabled="false" height="19" label="Skirt" left="0" | 181 | userdata="gloves" /> |
182 | mouse_opaque="true" name="Skirt" width="118"> | 182 | </menu_item_call> |
183 | <on_click function="Edit.TakeOff" userdata="skirt" /> | 183 | <menu_item_call name="Menu Undershirt" enabled="false" |
184 | <on_enable function="Edit.EnableTakeOff" userdata="skirt" /> | 184 | label="Undershirt"> |
185 | </menu_item_call> | 185 | <on_click function="Edit.TakeOff" |
186 | <menu_item_call bottom="-200" enabled="true" height="19" label="All Clothes" left="0" | 186 | userdata="undershirt" /> |
187 | mouse_opaque="true" name="All Clothes" width="118"> | 187 | <on_enable function="Edit.EnableTakeOff" |
188 | <on_click function="Edit.TakeOff" userdata="all" /> | 188 | userdata="undershirt" /> |
189 | </menu_item_call> | 189 | </menu_item_call> |
190 | </menu> | 190 | <menu_item_call name="Menu Underpants" enabled="false" |
191 | <menu_item_separator bottom="-305" enabled="true" height="8" label="-----------" left="0" | 191 | label="Underpants"> |
192 | mouse_opaque="true" name="separator6" width="153" /> | 192 | <on_click function="Edit.TakeOff" |
193 | <menu_item_call bottom="-324" enabled="true" height="19" label="Gestures..." left="0" | 193 | userdata="underpants" /> |
194 | mouse_opaque="true" name="Gestures..." shortcut="control|G" width="153"> | 194 | <on_enable function="Edit.EnableTakeOff" |
195 | <on_click function="ShowFloater" userdata="gestures" /> | 195 | userdata="underpants" /> |
196 | </menu_item_call> | 196 | </menu_item_call> |
197 | <menu_item_call bottom="-343" enabled="true" height="19" label="Profile..." left="0" | 197 | <menu_item_call name="Skirt" enabled="false" label="Skirt"> |
198 | mouse_opaque="true" name="Profile..." width="153"> | 198 | <on_click function="Edit.TakeOff" |
199 | <on_click function="ShowAgentProfile" userdata="agent" /> | 199 | userdata="skirt" /> |
200 | </menu_item_call> | 200 | <on_enable function="Edit.EnableTakeOff" |
201 | <menu_item_call bottom="-362" enabled="true" height="19" label="Appearance..." left="0" | 201 | userdata="skirt" /> |
202 | mouse_opaque="true" name="Appearance..." width="153"> | 202 | </menu_item_call> |
203 | <on_click function="ShowFloater" userdata="appearance" /> | 203 | <menu_item_call name="All Clothes" label="All Clothes"> |
204 | <on_enable function="Edit.EnableCustomizeAvatar" /> | 204 | <on_click function="Edit.TakeOff" |
205 | </menu_item_call> | 205 | userdata="all" /> |
206 | <menu_item_separator bottom="-370" enabled="true" height="8" label="-----------" left="0" | 206 | </menu_item_call> |
207 | mouse_opaque="true" name="separator7" width="153" /> | 207 | </menu> |
208 | <menu_item_check bottom="-389" enabled="true" height="19" label="Friends..." left="0" | 208 | <menu_item_separator /> |
209 | mouse_opaque="true" name="Friends..." shortcut="control|shift|F" | 209 | <menu_item_call name="Gestures..." label="Gestures..." |
210 | width="153"> | 210 | shortcut="control|G"> |
211 | <on_click function="ShowFloater" userdata="friends" /> | 211 | <on_click function="ShowFloater" |
212 | <on_check function="FloaterVisible" userdata="friends" /> | 212 | userdata="gestures" /> |
213 | </menu_item_check> | 213 | </menu_item_call> |
214 | <menu_item_call bottom="-408" enabled="true" height="19" label="Groups..." left="0" | 214 | <menu_item_call name="Profile..." label="Profile..."> |
215 | mouse_opaque="true" name="Groups..." width="153"> | 215 | <on_click function="ShowAgentProfile" |
216 | <on_click function="ShowAgentGroups" userdata="agent" /> | 216 | userdata="agent" /> |
217 | </menu_item_call> | 217 | </menu_item_call> |
218 | <menu_item_separator bottom="-416" enabled="true" height="8" label="-----------" left="0" | 218 | <menu_item_call name="Appearance..." label="Appearance..."> |
219 | mouse_opaque="true" name="separator8" width="153" /> | 219 | <on_click function="ShowFloater" |
220 | <menu_item_call bottom="-435" enabled="true" height="19" label="Preferences..." left="0" | 220 | userdata="appearance" /> |
221 | mouse_opaque="true" name="Preferences..." shortcut="control|P" width="153"> | 221 | <on_enable function="Edit.EnableCustomizeAvatar" /> |
222 | <on_click function="ShowFloater" userdata="preferences" /> | 222 | </menu_item_call> |
223 | </menu_item_call> | 223 | <menu_item_separator /> |
224 | </menu> | 224 | <menu_item_check name="Friends..." label="Friends..." |
225 | <menu bottom="-1" create_jump_keys="true" drop_shadow="true" enabled="true" | 225 | shortcut="control|shift|F"> |
226 | height="537" label="View" left="80" mouse_opaque="false" name="View" | 226 | <on_click function="ShowFloater" |
227 | opaque="true" tear_off="true" width="211"> | 227 | userdata="friends" /> |
228 | <tearoff_menu bottom="-10" enabled="true" height="10" label="~~~~~~~~~~~" left="0" | 228 | <on_check function="FloaterVisible" |
229 | mouse_opaque="true" name="~~~~~~~~~~~" width="211" /> | 229 | userdata="friends" /> |
230 | <menu_item_call bottom="-29" enabled="true" height="19" label="Mouselook" left="0" | 230 | </menu_item_check> |
231 | mouse_opaque="true" name="Mouselook" shortcut="M" width="211"> | 231 | <menu_item_call name="Groups..." label="Groups..."> |
232 | <on_click function="View.Mouselook" userdata="" /> | 232 | <on_click function="ShowAgentGroups" |
233 | <on_enable function="View.EnableMouselook" /> | 233 | userdata="agent" /> |
234 | </menu_item_call> | 234 | </menu_item_call> |
235 | <menu_item_check bottom="-48" enabled="true" height="19" label="Build" left="0" | 235 | <menu_item_separator /> |
236 | mouse_opaque="true" name="Build" shortcut="B" width="211"> | 236 | <menu_item_call name="Preferences..." label="Preferences..." |
237 | <on_click function="View.BuildMode" userdata="" /> | 237 | shortcut="control|P"> |
238 | <on_check function="View.CheckBuildMode" /> | 238 | <on_click function="ShowFloater" |
239 | </menu_item_check> | 239 | userdata="preferences" /> |
240 | <menu_item_check bottom="-48" enabled="true" height="19" label="Joystick Flycam" left="0" | 240 | </menu_item_call> |
241 | mouse_opaque="true" name="Joystick Flycam" shortcut="alt|shift|F" | 241 | </menu> |
242 | width="211"> | 242 | |
243 | <on_click function="View.JoystickFlycam" userdata="" /> | 243 | |
244 | <on_check function="View.CheckJoystickFlycam" /> | 244 | |
245 | </menu_item_check> | 245 | <!-- VIEW --> |
246 | <menu_item_call bottom="-67" enabled="true" height="19" label="Reset View" left="0" | 246 | |
247 | mouse_opaque="true" name="Reset View" shortcut="Esc" width="211"> | 247 | <menu name="View" create_jump_keys="true" label="View" |
248 | <on_click function="View.ResetView" userdata="" /> | 248 | opaque="true" tear_off="true"> |
249 | </menu_item_call> | 249 | <menu_item_call name="Mouselook" label="Mouselook" |
250 | <menu_item_call bottom="-86" enabled="false" height="19" label="Look at Last Chatter" left="0" | 250 | shortcut="M"> |
251 | mouse_opaque="true" name="Look at Last Chatter" shortcut="control|\" | 251 | <on_click function="View.Mouselook" userdata="" /> |
252 | width="211"> | 252 | <on_enable function="View.EnableMouselook" /> |
253 | <on_click function="View.LookAtLastChatter" userdata="" /> | 253 | </menu_item_call> |
254 | <on_enable function="View.EnableLastChatter" /> | 254 | <menu_item_check name="Build" label="Build" |
255 | </menu_item_call> | 255 | shortcut="B"> |
256 | <menu_item_separator bottom="-94" enabled="true" height="8" label="-----------" left="0" | 256 | <on_click function="View.BuildMode" userdata="" /> |
257 | mouse_opaque="true" name="separator" width="211" /> | 257 | <on_check function="View.CheckBuildMode" /> |
258 | <menu_item_check bottom="-113" enabled="true" height="19" label="Toolbar" left="0" | 258 | </menu_item_check> |
259 | mouse_opaque="true" name="Toolbar" width="211"> | 259 | <menu_item_check name="Joystick Flycam" label="Joystick Flycam" |
260 | <on_click function="ShowFloater" userdata="toolbar" /> | 260 | shortcut="alt|shift|F"> |
261 | <on_check function="FloaterVisible" userdata="toolbar" /> | 261 | <on_click function="View.JoystickFlycam" userdata="" /> |
262 | </menu_item_check> | 262 | <on_check function="View.CheckJoystickFlycam" /> |
263 | <menu_item_check bottom="-132" enabled="true" height="19" label="Local Chat" left="0" | 263 | </menu_item_check> |
264 | mouse_opaque="true" name="Chat History" shortcut="control|H" width="211"> | 264 | <menu_item_call name="Reset View" label="Reset View" |
265 | <on_click function="ShowFloater" userdata="chat history" /> | 265 | shortcut="Esc"> |
266 | <on_check function="FloaterVisible" userdata="chat history" /> | 266 | <on_click function="View.ResetView" userdata="" /> |
267 | </menu_item_check> | 267 | </menu_item_call> |
268 | <menu_item_check bottom="-151" enabled="true" height="19" label="Communicate" left="0" | 268 | <menu_item_call name="Look at Last Chatter" enabled="false" |
269 | mouse_opaque="true" name="Instant Message" shortcut="control|T" width="211"> | 269 | label="Look at Last Chatter" shortcut="control|\"> |
270 | <on_click function="ShowFloater" userdata="im" /> | 270 | <on_click function="View.LookAtLastChatter" userdata="" /> |
271 | <on_check function="FloaterVisible" userdata="im" /> | 271 | <on_enable function="View.EnableLastChatter" /> |
272 | </menu_item_check> | 272 | </menu_item_call> |
273 | <menu_item_call bottom="-170" enabled="true" height="19" label="Inventory" left="0" | 273 | <menu_item_separator /> |
274 | mouse_opaque="true" name="Inventory" shortcut="control|I" width="211"> | 274 | <menu_item_check name="Toolbar" label="Toolbar"> |
275 | <on_click function="ShowFloater" userdata="inventory" /> | 275 | <on_click function="ShowFloater" userdata="toolbar" /> |
276 | </menu_item_call> | 276 | <on_check function="FloaterVisible" userdata="toolbar" /> |
277 | <menu_item_check bottom="-189" enabled="true" height="19" label="Active Speakers" left="0" | 277 | </menu_item_check> |
278 | mouse_opaque="true" name="Active Speakers" width="211"> | 278 | <menu_item_check name="Chat History" label="Local Chat" |
279 | <on_click function="ShowFloater" userdata="active speakers" /> | 279 | shortcut="control|H"> |
280 | <on_check function="FloaterVisible" userdata="active speakers" /> | 280 | <on_click function="ShowFloater" userdata="chat history" /> |
281 | </menu_item_check> | 281 | <on_check function="FloaterVisible" userdata="chat history" /> |
282 | <menu_item_check bottom="-189" enabled="true" height="19" label="Mute List" left="0" | 282 | </menu_item_check> |
283 | mouse_opaque="true" name="Mute List" width="211"> | 283 | <menu_item_check name="Instant Message" label="Communicate" |
284 | <on_click function="ShowFloater" userdata="mute list" /> | 284 | shortcut="control|T"> |
285 | <on_check function="FloaterVisible" userdata="mute list" /> | 285 | <on_click function="ShowFloater" userdata="im" /> |
286 | </menu_item_check> | 286 | <on_check function="FloaterVisible" userdata="im" /> |
287 | <menu_item_separator bottom="-197" enabled="true" height="8" label="-----------" left="0" | 287 | </menu_item_check> |
288 | mouse_opaque="true" name="separator2" width="211" /> | 288 | <menu_item_call name="Inventory" label="Inventory" |
289 | <menu_item_check bottom="-216" enabled="true" height="19" label="Camera Controls" left="0" | 289 | shortcut="control|I"> |
290 | mouse_opaque="true" name="Camera Controls" width="211"> | 290 | <on_click function="ShowFloater" userdata="inventory" /> |
291 | <on_click function="ShowFloater" userdata="camera controls" /> | 291 | </menu_item_call> |
292 | <on_check function="FloaterVisible" userdata="camera controls" /> | 292 | <menu_item_check name="Active Speakers" label="Active Speakers"> |
293 | </menu_item_check> | 293 | <on_click function="ShowFloater" userdata="active speakers" /> |
294 | <menu_item_check bottom="-235" enabled="true" height="19" label="Movement Controls" left="0" | 294 | <on_check function="FloaterVisible" userdata="active speakers" /> |
295 | mouse_opaque="true" name="Movement Controls" width="211"> | 295 | </menu_item_check> |
296 | <on_click function="ShowFloater" userdata="movement controls" /> | 296 | <menu_item_check name="Mute List" label="Mute List"> |
297 | <on_check function="FloaterVisible" userdata="movement controls" /> | 297 | <on_click function="ShowFloater" userdata="mute list" /> |
298 | </menu_item_check> | 298 | <on_check function="FloaterVisible" userdata="mute list" /> |
299 | <menu_item_check bottom="-254" enabled="true" height="19" label="World Map" left="0" | 299 | </menu_item_check> |
300 | mouse_opaque="true" name="World Map" shortcut="control|M" width="211"> | 300 | <menu_item_separator /> |
301 | <on_click function="ShowFloater" userdata="world map" /> | 301 | <menu_item_check name="Camera Controls" label="Camera Controls"> |
302 | <on_check control="ShowWorldMap" /> | 302 | <on_click function="ShowFloater" userdata="camera controls" /> |
303 | </menu_item_check> | 303 | <on_check function="FloaterVisible" userdata="camera controls" /> |
304 | <menu_item_check bottom="-273" enabled="true" height="19" label="Mini-Map" left="0" | 304 | </menu_item_check> |
305 | mouse_opaque="true" name="Mini-Map" shortcut="control|shift|M" width="211"> | 305 | <menu_item_check name="Movement Controls" label="Movement Controls"> |
306 | <on_click function="ShowFloater" userdata="mini map" /> | 306 | <on_click function="ShowFloater" userdata="movement controls" /> |
307 | <on_check control="ShowMiniMap" /> | 307 | <on_check function="FloaterVisible" userdata="movement controls" /> |
308 | </menu_item_check> | 308 | </menu_item_check> |
309 | <menu_item_separator bottom="-281" enabled="true" height="8" label="-----------" left="0" | 309 | <menu_item_check name="World Map" label="World Map" |
310 | mouse_opaque="true" name="separator3" width="211" /> | 310 | shortcut="control|M"> |
311 | <menu_item_check bottom="-300" enabled="true" height="19" label="Statistics Bar" left="0" | 311 | <on_click function="ShowFloater" userdata="world map" /> |
312 | mouse_opaque="true" name="Statistics Bar" shortcut="control|shift|1" | 312 | <on_check control="ShowWorldMap" /> |
313 | width="211"> | 313 | </menu_item_check> |
314 | <on_click function="ShowFloater" userdata="stat bar" /> | 314 | <menu_item_check name="Mini-Map" label="Mini-Map" |
315 | <on_check function="FloaterVisible" userdata="stat bar" /> | 315 | shortcut="control|shift|M"> |
316 | </menu_item_check> | 316 | <on_click function="ShowFloater" userdata="mini map" /> |
317 | <menu_item_check bottom="-319" enabled="true" height="19" label="Property Lines" left="0" | 317 | <on_check control="ShowMiniMap" /> |
318 | mouse_opaque="true" name="Property Lines" shortcut="control|alt|shift|P" | 318 | </menu_item_check> |
319 | width="211"> | 319 | <menu_item_separator /> |
320 | <on_click function="ToggleControl" userdata="ShowPropertyLines" /> | 320 | <menu_item_check name="Statistics Bar" label="Statistics Bar" |
321 | <on_check control="ShowPropertyLines" /> | 321 | shortcut="control|shift|1"> |
322 | </menu_item_check> | 322 | <on_click function="ShowFloater" userdata="stat bar" /> |
323 | <menu_item_check bottom="-338" enabled="true" height="19" label="Land Owners" left="0" | 323 | <on_check function="FloaterVisible" userdata="stat bar" /> |
324 | mouse_opaque="true" name="Land Owners" width="211"> | 324 | </menu_item_check> |
325 | <on_click function="ToggleControl" userdata="ShowParcelOwners" /> | 325 | <menu_item_check name="Property Lines" label="Property Lines" |
326 | <on_check control="ShowParcelOwners" /> | 326 | shortcut="control|alt|shift|P"> |
327 | </menu_item_check> | 327 | <on_click function="ToggleControl" userdata="ShowPropertyLines" /> |
328 | <menu_item_separator bottom="-346" enabled="true" height="8" label="-----------" left="0" | 328 | <on_check control="ShowPropertyLines" /> |
329 | mouse_opaque="true" name="separator4" width="211" /> | 329 | </menu_item_check> |
330 | <menu bottom="-554" create_jump_keys="true" drop_shadow="true" enabled="true" | 330 | <menu_item_check name="Land Owners" label="Land Owners"> |
331 | height="79" label="Hover Tips" left="0" mouse_opaque="false" | 331 | <on_click function="ToggleControl" userdata="ShowParcelOwners" /> |
332 | name="Hover Tips" opaque="true" tear_off="true" width="158"> | 332 | <on_check control="ShowParcelOwners" /> |
333 | <menu_item_check bottom="-29" enabled="true" height="19" label="Show Tips" left="0" | 333 | </menu_item_check> |
334 | mouse_opaque="true" name="Show Tips" shortcut="control|shift|T" width="158"> | 334 | <menu_item_separator /> |
335 | <on_click function="View.ShowHoverTips" userdata="" /> | 335 | <menu name="Hover Tips" create_jump_keys="true" label="Hover Tips" |
336 | <on_check function="View.CheckShowHoverTips" /> | 336 | opaque="true" tear_off="true"> |
337 | </menu_item_check> | 337 | <menu_item_check name="Show Tips" label="Show Tips" |
338 | <menu_item_separator bottom="-37" enabled="true" height="8" label="-----------" left="0" | 338 | shortcut="control|shift|T"> |
339 | mouse_opaque="true" name="separator" width="158" /> | 339 | <on_click function="View.ShowHoverTips" userdata="" /> |
340 | <menu_item_check bottom="-56" enabled="true" height="19" label="Land Tips" left="0" | 340 | <on_check function="View.CheckShowHoverTips" /> |
341 | mouse_opaque="true" name="Land Tips" width="158"> | 341 | </menu_item_check> |
342 | <on_click function="ToggleControl" userdata="ShowLandHoverTip" /> | 342 | <menu_item_separator /> |
343 | <on_enable function="View.CheckShowHoverTips" /> | 343 | <menu_item_check name="Land Tips" label="Land Tips"> |
344 | <on_check control="ShowLandHoverTip" /> | 344 | <on_click function="ToggleControl" |
345 | </menu_item_check> | 345 | userdata="ShowLandHoverTip" /> |
346 | <menu_item_check bottom="-75" enabled="true" height="19" label="Tips On All Objects" left="0" | 346 | <on_enable function="View.CheckShowHoverTips" /> |
347 | mouse_opaque="true" name="Tips On All Objects" width="158"> | 347 | <on_check control="ShowLandHoverTip" /> |
348 | <on_click function="ToggleControl" userdata="ShowAllObjectHoverTip" /> | 348 | </menu_item_check> |
349 | <on_enable function="View.CheckShowHoverTips" /> | 349 | <menu_item_check name="Tips On All Objects" |
350 | <on_check control="ShowAllObjectHoverTip" /> | 350 | label="Tips On All Objects"> |
351 | </menu_item_check> | 351 | <on_click function="ToggleControl" |
352 | </menu> | 352 | userdata="ShowAllObjectHoverTip" /> |
353 | <menu_item_check bottom="-403" enabled="true" height="19" label="Highlight Transparent" left="0" | 353 | <on_enable function="View.CheckShowHoverTips" /> |
354 | mouse_opaque="true" name="Highlight Transparent" shortcut="control|alt|T" | 354 | <on_check control="ShowAllObjectHoverTip" /> |
355 | width="211"> | 355 | </menu_item_check> |
356 | <on_click function="View.HighlightTransparent" userdata="" /> | 356 | </menu> |
357 | <on_check function="View.CheckHighlightTransparent" /> | 357 | <menu_item_check name="Highlight Transparent" |
358 | </menu_item_check> | 358 | label="Highlight Transparent" |
359 | <menu_item_check bottom="-384" enabled="true" height="19" label="Beacons Always On" left="0" | 359 | shortcut="control|alt|T"> |
360 | mouse_opaque="true" name="Beacons Always On" shortcut="control|N" | 360 | <on_click function="View.HighlightTransparent" userdata="" /> |
361 | width="211"> | 361 | <on_check function="View.CheckHighlightTransparent" /> |
362 | <on_click function="ToggleControl" userdata="BeaconAlwaysOn" /> | 362 | </menu_item_check> |
363 | <on_check control="BeaconAlwaysOn" /> | 363 | <menu_item_check name="Beacons Always On" label="Beacons Always On" |
364 | </menu_item_check> | 364 | shortcut="control|N"> |
365 | <menu bottom="-554" create_jump_keys="true" drop_shadow="true" enabled="true" | 365 | <on_click function="ToggleControl" userdata="BeaconAlwaysOn" /> |
366 | height="117" label="Beacons" left="0" mouse_opaque="false" name="Beacons" | 366 | <on_check control="BeaconAlwaysOn" /> |
367 | opaque="true" tear_off="true" width="129"> | 367 | </menu_item_check> |
368 | <menu_item_check bottom="-29" enabled="true" height="19" | 368 | <menu name="Beacons" create_jump_keys="true" label="Beacons" |
369 | label="Scripted Objects with Touch Only" left="0" mouse_opaque="true" | 369 | opaque="true" tear_off="true"> |
370 | name="Scripted Objects With Touch Only" width="129"> | 370 | <menu_item_check name="Scripted Objects With Touch Only" |
371 | <on_click function="View.ToggleBeacon" userdata="scripttouchbeacon" /> | 371 | label="Scripted Objects with Touch Only"> |
372 | <on_check function="View.CheckBeaconEnabled" userdata="scripttouchbeacon" /> | 372 | <on_click function="View.ToggleBeacon" |
373 | </menu_item_check> | 373 | userdata="scripttouchbeacon" /> |
374 | <menu_item_check bottom="-48" enabled="true" height="19" label="Scripted Objects" left="0" | 374 | <on_check function="View.CheckBeaconEnabled" |
375 | mouse_opaque="true" name="Scripted Objects" width="129"> | 375 | userdata="scripttouchbeacon" /> |
376 | <on_click function="View.ToggleBeacon" userdata="scriptsbeacon" /> | 376 | </menu_item_check> |
377 | <on_check function="View.CheckBeaconEnabled" userdata="scriptsbeacon" /> | 377 | <menu_item_check name="Scripted Objects" label="Scripted Objects"> |
378 | </menu_item_check> | 378 | <on_click function="View.ToggleBeacon" |
379 | <menu_item_check bottom="-67" enabled="true" height="19" label="Physical Objects" left="0" | 379 | userdata="scriptsbeacon" /> |
380 | mouse_opaque="true" name="Physical Objects" width="129"> | 380 | <on_check function="View.CheckBeaconEnabled" |
381 | <on_click function="View.ToggleBeacon" userdata="physicalbeacon" /> | 381 | userdata="scriptsbeacon" /> |
382 | <on_check function="View.CheckBeaconEnabled" userdata="physicalbeacon" /> | 382 | </menu_item_check> |
383 | </menu_item_check> | 383 | <menu_item_check name="Physical Objects" label="Physical Objects"> |
384 | <menu_item_check bottom="-86" enabled="true" height="19" label="Sound Sources" left="0" | 384 | <on_click function="View.ToggleBeacon" |
385 | mouse_opaque="true" name="Sound Sources" width="129"> | 385 | userdata="physicalbeacon" /> |
386 | <on_click function="View.ToggleBeacon" userdata="soundsbeacon" /> | 386 | <on_check function="View.CheckBeaconEnabled" |
387 | <on_check function="View.CheckBeaconEnabled" userdata="soundsbeacon" /> | 387 | userdata="physicalbeacon" /> |
388 | </menu_item_check> | 388 | </menu_item_check> |
389 | <menu_item_check bottom="-105" enabled="true" height="19" label="Particle Sources" left="0" | 389 | <menu_item_check name="Sound Sources" label="Sound Sources"> |
390 | mouse_opaque="true" name="Particle Sources" width="129"> | 390 | <on_click function="View.ToggleBeacon" |
391 | <on_click function="View.ToggleBeacon" userdata="particlesbeacon" /> | 391 | userdata="soundsbeacon" /> |
392 | <on_check function="View.CheckBeaconEnabled" userdata="particlesbeacon" /> | 392 | <on_check function="View.CheckBeaconEnabled" |
393 | </menu_item_check> | 393 | userdata="soundsbeacon" /> |
394 | <menu_item_separator bottom="-113" enabled="true" height="8" label="-----------" left="0" | 394 | </menu_item_check> |
395 | mouse_opaque="true" name="separator" width="129" /> | 395 | <menu_item_check name="Particle Sources" label="Particle Sources"> |
396 | <menu_item_check bottom="-121" enabled="true" height="19" label="Render Highlights" left="0" | 396 | <on_click function="View.ToggleBeacon" |
397 | mouse_opaque="true" name="Render Highlights" width="129"> | 397 | userdata="particlesbeacon" /> |
398 | <on_click function="View.ToggleBeacon" userdata="renderhighlights" /> | 398 | <on_check function="View.CheckBeaconEnabled" |
399 | <on_check function="View.CheckBeaconEnabled" userdata="renderhighlights" /> | 399 | userdata="particlesbeacon" /> |
400 | </menu_item_check> | 400 | </menu_item_check> |
401 | <menu_item_check bottom="-140" enabled="true" height="19" label="Render Beacons" left="0" | 401 | <menu_item_separator /> |
402 | mouse_opaque="true" name="Render Beacons" width="129"> | 402 | <menu_item_check name="Render Highlights" label="Render Highlights"> |
403 | <on_click function="View.ToggleBeacon" userdata="renderbeacons" /> | 403 | <on_click function="View.ToggleBeacon" |
404 | <on_check function="View.CheckBeaconEnabled" userdata="renderbeacons" /> | 404 | userdata="renderhighlights" /> |
405 | </menu_item_check> | 405 | <on_check function="View.CheckBeaconEnabled" |
406 | <menu_item_separator bottom="-159" enabled="true" height="8" label="-----------" left="0" | 406 | userdata="renderhighlights" /> |
407 | mouse_opaque="true" name="separator2" width="129" /> | 407 | </menu_item_check> |
408 | <menu_item_check bottom="-167" enabled="true" height="19" label="Hide Particles" left="0" | 408 | <menu_item_check name="Render Beacons" label="Render Beacons"> |
409 | mouse_opaque="true" name="Hide Particles" width="129"> | 409 | <on_click function="View.ToggleBeacon" |
410 | <on_click function="View.ToggleRenderType" userdata="hideparticles" /> | 410 | userdata="renderbeacons" /> |
411 | <on_check function="View.CheckRenderType" userdata="hideparticles" /> | 411 | <on_check function="View.CheckBeaconEnabled" |
412 | </menu_item_check> | 412 | userdata="renderbeacons" /> |
413 | <menu_item_separator bottom="-186" enabled="true" height="8" label="-----------" left="0" | 413 | </menu_item_check> |
414 | mouse_opaque="true" name="separator3" width="129" /> | 414 | <menu_item_separator /> |
415 | <menu bottom="-205" color="0 0 0 1" create_jump_keys="true" drop_shadow="true" | 415 | <menu_item_check name="Hide Particles" label="Hide Particles"> |
416 | enabled="true" height="117" label="Beacon Width" left="0" | 416 | <on_click function="View.ToggleRenderType" |
417 | mouse_opaque="false" name="Beacon Width" opaque="true" tear_off="true" | 417 | userdata="hideparticles" /> |
418 | width="129"> | 418 | <on_check function="View.CheckRenderType" |
419 | <menu_item_call bottom="-19" enabled="true" height="19" label="1" left="0" mouse_opaque="true" | 419 | userdata="hideparticles" /> |
420 | name="Beacon Width 1" width="188"> | 420 | </menu_item_check> |
421 | <on_click function="View.BeaconWidth" userdata="1" /> | 421 | <menu_item_separator /> |
422 | </menu_item_call> | 422 | <menu name="Beacon Width" color="0 0 0 1" create_jump_keys="true" |
423 | <menu_item_call bottom="-19" enabled="true" height="19" label="4" left="0" mouse_opaque="true" | 423 | label="Beacon Width" opaque="true" tear_off="true"> |
424 | name="Beacon Width 4" width="188"> | 424 | <menu_item_call name="Beacon Width 1" label="1"> |
425 | <on_click function="View.BeaconWidth" userdata="4" /> | 425 | <on_click function="View.BeaconWidth" userdata="1" /> |
426 | </menu_item_call> | 426 | </menu_item_call> |
427 | <menu_item_call bottom="-19" enabled="true" height="19" label="16" left="0" mouse_opaque="true" | 427 | <menu_item_call name="Beacon Width 4" label="4"> |
428 | name="Beacon Width 16" width="188"> | 428 | <on_click function="View.BeaconWidth" userdata="4" /> |
429 | <on_click function="View.BeaconWidth" userdata="16" /> | 429 | </menu_item_call> |
430 | </menu_item_call> | 430 | <menu_item_call name="Beacon Width 16" label="16"> |
431 | <menu_item_call bottom="-19" enabled="true" height="19" label="32" left="0" mouse_opaque="true" | 431 | <on_click function="View.BeaconWidth" userdata="16" /> |
432 | name="Beacon Width 32" width="188"> | 432 | </menu_item_call> |
433 | <on_click function="View.BeaconWidth" userdata="32" /> | 433 | <menu_item_call name="Beacon Width 32" label="32"> |
434 | </menu_item_call> | 434 | <on_click function="View.BeaconWidth" userdata="32" /> |
435 | </menu> | 435 | </menu_item_call> |
436 | </menu> | 436 | </menu> |
437 | <menu_item_check bottom="-441" enabled="true" height="19" label="Show HUD Attachments" left="0" | 437 | </menu> |
438 | mouse_opaque="true" name="Show HUD Attachments" shortcut="alt|shift|H" | 438 | <menu_item_check name="Show HUD Attachments" |
439 | width="211"> | 439 | label="Show HUD Attachments" |
440 | <on_click function="View.ShowHUDAttachments" userdata="" /> | 440 | shortcut="alt|shift|H"> |
441 | <on_check function="View.CheckHUDAttachments" /> | 441 | <on_click function="View.ShowHUDAttachments" userdata="" /> |
442 | </menu_item_check> | 442 | <on_check function="View.CheckHUDAttachments" /> |
443 | <menu_item_separator bottom="-449" enabled="true" height="8" label="-----------" left="0" | 443 | </menu_item_check> |
444 | mouse_opaque="true" name="separator5" width="211" /> | 444 | <menu_item_separator /> |
445 | <menu_item_call bottom="-468" enabled="true" height="19" label="Zoom In" left="0" | 445 | <menu_item_call name="Zoom In" label="Zoom In" |
446 | mouse_opaque="true" name="Zoom In" shortcut="control|0" width="211"> | 446 | shortcut="control|0"> |
447 | <on_click function="View.ZoomIn" userdata="" /> | 447 | <on_click function="View.ZoomIn" userdata="" /> |
448 | </menu_item_call> | 448 | </menu_item_call> |
449 | <menu_item_call bottom="-487" enabled="true" height="19" label="Zoom Default" left="0" | 449 | <menu_item_call name="Zoom Default" label="Zoom Default" |
450 | mouse_opaque="true" name="Zoom Default" shortcut="control|9" width="211"> | 450 | shortcut="control|9"> |
451 | <on_click function="View.ZoomDefault" userdata="" /> | 451 | <on_click function="View.ZoomDefault" userdata="" /> |
452 | </menu_item_call> | 452 | </menu_item_call> |
453 | <menu_item_call bottom="-506" enabled="true" height="19" label="Zoom Out" left="0" | 453 | <menu_item_call name="Zoom Out" label="Zoom Out" |
454 | mouse_opaque="true" name="Zoom Out" shortcut="control|8" width="211"> | 454 | shortcut="control|8"> |
455 | <on_click function="View.ZoomOut" userdata="" /> | 455 | <on_click function="View.ZoomOut" userdata="" /> |
456 | </menu_item_call> | 456 | </menu_item_call> |
457 | <menu_item_separator bottom="-514" enabled="true" height="8" label="-----------" left="0" | 457 | <menu_item_separator /> |
458 | mouse_opaque="true" name="separator6" width="211" /> | 458 | <menu_item_call name="Toggle Fullscreen" label="Toggle Fullscreen" |
459 | <menu_item_call bottom="-19" enabled="true" height="19" label="Toggle Fullscreen" left="0" | 459 | shortcut="alt|Enter"> |
460 | mouse_opaque="true" name="Toggle Fullscreen" shortcut="alt|Enter" | 460 | <on_click function="View.Fullscreen" userdata="" /> |
461 | width="188"> | 461 | </menu_item_call> |
462 | <on_click function="View.Fullscreen" userdata="" /> | 462 | <menu_item_call name="Set UI Size to Default" |
463 | </menu_item_call> | 463 | label="Set UI Size to Default"> |
464 | <menu_item_call bottom="-38" enabled="true" height="19" label="Set UI Size to Default" left="0" | 464 | <on_click function="View.DefaultUISize" userdata="" /> |
465 | mouse_opaque="true" name="Set UI Size to Default" width="188"> | 465 | </menu_item_call> |
466 | <on_click function="View.DefaultUISize" userdata="" /> | 466 | </menu> |
467 | </menu_item_call> | 467 | |
468 | </menu> | 468 | |
469 | <menu bottom="-18" create_jump_keys="true" drop_shadow="true" enabled="true" | 469 | |
470 | height="339" label="World" left="0" mouse_opaque="false" name="World" | 470 | <!-- WORLD --> |
471 | opaque="true" tear_off="true" width="185"> | 471 | |
472 | <menu_item_call bottom="-29" enabled="true" height="19" label="Chat" left="0" | 472 | <menu name="World" create_jump_keys="true" label="World" |
473 | mouse_opaque="true" name="Chat" shortcut="" width="185"> | 473 | opaque="true" tear_off="true"> |
474 | <on_click function="World.Chat" userdata="" /> | 474 | <menu_item_call name="Chat" label="Chat" shortcut=""> |
475 | </menu_item_call> | 475 | <on_click function="World.Chat" userdata="" /> |
476 | <menu_item_check bottom="-67" enabled="true" height="19" label="Always Run" left="0" | 476 | </menu_item_call> |
477 | mouse_opaque="true" name="Always Run" shortcut="control|R" width="185"> | 477 | <menu_item_check name="Always Run" label="Always Run" |
478 | <on_click function="World.AlwaysRun" userdata="" /> | 478 | shortcut="control|R"> |
479 | <on_check function="World.CheckAlwaysRun" userdata="" /> | 479 | <on_click function="World.AlwaysRun" userdata="" /> |
480 | </menu_item_check> | 480 | <on_check function="World.CheckAlwaysRun" userdata="" /> |
481 | <menu_item_check bottom="-86" enabled="true" height="19" label="Fly" left="0" | 481 | </menu_item_check> |
482 | mouse_opaque="true" name="Fly" shortcut="Home" width="185"> | 482 | <menu_item_check name="Fly" label="Fly" shortcut="Home"> |
483 | <on_click function="World.Fly" userdata="" /> | 483 | <on_click function="World.Fly" userdata="" /> |
484 | <on_enable function="World.EnableFly" /> | 484 | <on_enable function="World.EnableFly" /> |
485 | <on_check control="FlyBtnState" /> | 485 | <on_check control="FlyBtnState" /> |
486 | </menu_item_check> | 486 | </menu_item_check> |
487 | <menu_item_separator bottom="-94" enabled="true" height="8" label="-----------" left="0" | 487 | <menu_item_separator /> |
488 | mouse_opaque="true" name="separator" width="185" /> | 488 | <menu_item_call name="Create Landmark Here" |
489 | <menu_item_call bottom="-113" enabled="true" height="19" label="Create Landmark Here" left="0" | 489 | label="Create Landmark Here"> |
490 | mouse_opaque="true" name="Create Landmark Here" width="185"> | 490 | <on_click function="World.CreateLandmark" userdata="" /> |
491 | <on_click function="World.CreateLandmark" userdata="" /> | 491 | <on_enable function="World.EnableCreateLandmark" userdata="" /> |
492 | <on_enable function="World.EnableCreateLandmark" userdata="" /> | 492 | </menu_item_call> |
493 | </menu_item_call> | 493 | <menu_item_call name="Set Home to Here" label="Set Home to Here"> |
494 | <menu_item_call bottom="-132" enabled="true" height="19" label="Set Home to Here" left="0" | 494 | <on_click function="World.SetHomeLocation" userdata="" /> |
495 | mouse_opaque="true" name="Set Home to Here" width="185"> | 495 | <on_enable function="World.EnableSetHomeLocation" userdata="" /> |
496 | <on_click function="World.SetHomeLocation" userdata="" /> | 496 | </menu_item_call> |
497 | <on_enable function="World.EnableSetHomeLocation" userdata="" /> | 497 | <menu_item_separator /> |
498 | </menu_item_call> | 498 | <menu_item_call name="Teleport Home" label="Teleport Home" |
499 | <menu_item_separator bottom="-140" enabled="true" height="8" label="-----------" left="0" | 499 | shortcut="control|shift|H"> |
500 | mouse_opaque="true" name="separator2" width="185" /> | 500 | <on_click function="World.TeleportHome" userdata="" /> |
501 | <menu_item_call bottom="-159" enabled="true" height="19" label="Teleport Home" left="0" | 501 | <on_enable function="World.EnableTeleportHome" userdata="" /> |
502 | mouse_opaque="true" name="Teleport Home" shortcut="control|shift|H" | 502 | </menu_item_call> |
503 | width="185"> | 503 | <menu_item_separator /> |
504 | <on_click function="World.TeleportHome" userdata="" /> | 504 | <menu_item_call name="Set Away" label="Set Away"> |
505 | <on_enable function="World.EnableTeleportHome" userdata="" /> | 505 | <on_click function="World.SetAway" userdata="" /> |
506 | </menu_item_call> | 506 | </menu_item_call> |
507 | <menu_item_separator bottom="-167" enabled="true" height="8" label="-----------" left="0" | 507 | <menu_item_call name="Set Busy" label="Set Busy"> |
508 | mouse_opaque="true" name="separator3" width="185" /> | 508 | <on_click function="World.SetBusy" userdata="" /> |
509 | <menu_item_call bottom="-186" enabled="true" height="19" label="Set Away" left="0" | 509 | </menu_item_call> |
510 | mouse_opaque="true" name="Set Away" width="185"> | 510 | <menu_item_call name="Stop All Animations" enabled="false" |
511 | <on_click function="World.SetAway" userdata="" /> | 511 | label="Stop All Animations"> |
512 | </menu_item_call> | 512 | <on_click function="Tools.StopAllAnimations" userdata="" /> |
513 | <menu_item_call bottom="-205" enabled="true" height="19" label="Set Busy" left="0" | 513 | </menu_item_call> |
514 | mouse_opaque="true" name="Set Busy" width="185"> | 514 | <menu_item_separator /> |
515 | <on_click function="World.SetBusy" userdata="" /> | 515 | <menu_item_call name="Account History..." |
516 | </menu_item_call> | 516 | label="Account History..."> |
517 | <menu_item_call bottom="-281" enabled="false" height="19" label="Stop All Animations" left="0" | 517 | <on_click function="PromptShowURL" |
518 | mouse_opaque="true" name="Stop All Animations" width="250"> | 518 | userdata="WebLaunchAccountHistory,http://secondlife.com/account/transactions.php" /> |
519 | <on_click function="Tools.StopAllAnimations" userdata="" /> | 519 | </menu_item_call> |
520 | </menu_item_call> | 520 | <menu_item_call name="Manage My Account..." |
521 | <menu_item_separator bottom="-213" enabled="true" height="8" label="-----------" left="0" | 521 | label="Manage My Account..."> |
522 | mouse_opaque="true" name="separator4" width="185" /> | 522 | <on_click function="PromptShowURL" |
523 | <menu_item_call bottom="-232" enabled="true" height="19" label="Account History..." left="0" | 523 | userdata="WebLaunchJoinNow,http://secondlife.com/account/" /> |
524 | mouse_opaque="true" name="Account History..." width="185"> | 524 | </menu_item_call> |
525 | <on_click function="PromptShowURL" | 525 | <menu_item_call name="Buy and Sell L$..." label="Buy L$..."> |
526 | userdata="WebLaunchAccountHistory,http://secondlife.com/account/transactions.php" /> | 526 | <on_click function="ShowFloater" userdata="buy currency" /> |
527 | </menu_item_call> | 527 | </menu_item_call> |
528 | <menu_item_call bottom="-267" enabled="true" height="19" label="Manage My Account..." left="0" | 528 | <menu_item_separator /> |
529 | mouse_opaque="true" name="Manage My Account..." width="166"> | 529 | <menu_item_call name="My Land..." label="My Land..."> |
530 | <on_click function="PromptShowURL" | 530 | <on_click function="ShowFloater" userdata="my land" /> |
531 | userdata="WebLaunchJoinNow,http://secondlife.com/account/" /> | 531 | </menu_item_call> |
532 | </menu_item_call> | 532 | <menu_item_call name="About Land..." label="About Land..."> |
533 | <menu_item_call bottom="-286" enabled="true" height="19" label="Buy L$..." left="0" | 533 | <on_click function="ShowFloater" userdata="about land" /> |
534 | mouse_opaque="true" name="Buy and Sell L$..." width="166"> | 534 | </menu_item_call> |
535 | <on_click function="ShowFloater" userdata="buy currency" /> | 535 | <menu_item_call name="Buy Land..." label="Buy Land..."> |
536 | </menu_item_call> | 536 | <on_click function="ShowFloater" userdata="buy land" /> |
537 | <menu_item_separator bottom="-213" enabled="true" height="8" label="-----------" left="0" | 537 | <on_enable function="World.EnableBuyLand" /> |
538 | mouse_opaque="true" name="separator5" width="185" /> | 538 | </menu_item_call> |
539 | <menu_item_call bottom="-251" enabled="true" height="19" label="My Land..." left="0" | 539 | <menu_item_call name="Region/Estate..." label="Region/Estate..."> |
540 | mouse_opaque="true" name="My Land..." width="185"> | 540 | <on_click function="ShowFloater" userdata="about region" /> |
541 | <on_click function="ShowFloater" userdata="my land" /> | 541 | </menu_item_call> |
542 | </menu_item_call> | 542 | <menu_item_separator /> |
543 | <menu_item_call bottom="-270" enabled="true" height="19" label="About Land..." left="0" | 543 | <menu name="Environment Settings" create_jump_keys="true" |
544 | mouse_opaque="true" name="About Land..." width="185"> | 544 | label="Environment Settings" opaque="true" tear_off="true"> |
545 | <on_click function="ShowFloater" userdata="about land" /> | 545 | <menu_item_call name="Sunrise" label="Sunrise"> |
546 | </menu_item_call> | 546 | <on_click function="World.EnvSettings" userdata="sunrise" /> |
547 | <menu_item_call bottom="-289" enabled="true" height="19" label="Buy Land..." left="0" | 547 | </menu_item_call> |
548 | mouse_opaque="true" name="Buy Land..." width="185"> | 548 | <menu_item_call name="Noon" label="Midday" |
549 | <on_click function="ShowFloater" userdata="buy land" /> | 549 | shortcut="control|shift|Y"> |
550 | <on_enable function="World.EnableBuyLand" /> | 550 | <on_click function="World.EnvSettings" userdata="noon" /> |
551 | </menu_item_call> | 551 | </menu_item_call> |
552 | <menu_item_call bottom="-308" enabled="true" height="19" label="Region/Estate..." left="0" | 552 | <menu_item_call name="Sunset" label="Sunset" |
553 | mouse_opaque="true" name="Region/Estate..." width="185"> | 553 | shortcut="control|shift|N"> |
554 | <on_click function="ShowFloater" userdata="about region" /> | 554 | <on_click function="World.EnvSettings" userdata="sunset" /> |
555 | </menu_item_call> | 555 | </menu_item_call> |
556 | <menu_item_separator bottom="-316" enabled="true" height="8" label="-----------" left="0" | 556 | <menu_item_call name="Midnight" label="Midnight"> |
557 | mouse_opaque="true" name="separator6" width="185" /> | 557 | <on_click function="World.EnvSettings" userdata="midnight" /> |
558 | <menu bottom="-554" create_jump_keys="true" drop_shadow="true" enabled="true" | 558 | </menu_item_call> |
559 | height="117" label="Environment Settings" left="0" mouse_opaque="false" | 559 | <menu_item_call name="Revert to Region Default" enabled="false" |
560 | name="Environment Settings" opaque="true" tear_off="true" width="169"> | 560 | label="Revert to Region Default"> |
561 | <menu_item_call bottom="-29" enabled="true" height="19" label="Sunrise" left="0" | 561 | <on_click function="World.EnvSettings" userdata="default" /> |
562 | mouse_opaque="true" name="Sunrise" width="169"> | 562 | </menu_item_call> |
563 | <on_click function="World.EnvSettings" userdata="sunrise" /> | 563 | <menu_item_separator /> |
564 | </menu_item_call> | 564 | <menu_item_call name="Environment Editor" enabled="false" |
565 | <menu_item_call bottom="-48" enabled="true" height="19" label="Midday" left="0" | 565 | label="Environment Editor"> |
566 | mouse_opaque="true" name="Noon" shortcut="control|shift|Y" width="169"> | 566 | <on_click function="World.EnvSettings" userdata="editor" /> |
567 | <on_click function="World.EnvSettings" userdata="noon" /> | 567 | </menu_item_call> |
568 | </menu_item_call> | 568 | </menu> |
569 | <menu_item_call bottom="-67" enabled="true" height="19" label="Sunset" left="0" | 569 | </menu> |
570 | mouse_opaque="true" name="Sunset" shortcut="control|shift|N" width="169"> | 570 | |
571 | <on_click function="World.EnvSettings" userdata="sunset" /> | 571 | |
572 | </menu_item_call> | 572 | |
573 | <menu_item_call bottom="-86" enabled="true" height="19" label="Midnight" left="0" | 573 | <!-- TOOLS --> |
574 | mouse_opaque="true" name="Midnight" width="169"> | 574 | |
575 | <on_click function="World.EnvSettings" userdata="midnight" /> | 575 | <menu name="Tools" create_jump_keys="true" label="Tools" |
576 | </menu_item_call> | 576 | opaque="true" tear_off="true" visible="false"> |
577 | <menu_item_call bottom="-105" enabled="false" height="19" label="Revert to Region Default" | 577 | <menu name="Select Tool" create_jump_keys="true" label="Select Tool" |
578 | left="0" mouse_opaque="true" name="Revert to Region Default" width="169"> | 578 | opaque="true" tear_off="true"> |
579 | <on_click function="World.EnvSettings" userdata="default" /> | 579 | <menu_item_call name="Focus" label="Focus" shortcut="control|1"> |
580 | </menu_item_call> | 580 | <on_click function="Tools.SelectTool" userdata="focus" /> |
581 | <menu_item_separator bottom="-113" enabled="true" height="8" label="-----------" left="0" | 581 | </menu_item_call> |
582 | mouse_opaque="true" name="separator" width="169" /> | 582 | <menu_item_call name="Move" label="Move" shortcut="control|2"> |
583 | <menu_item_call bottom="-132" enabled="false" height="19" label="Environment Editor" left="0" | 583 | <on_click function="Tools.SelectTool" userdata="move" /> |
584 | mouse_opaque="true" name="Environment Editor" width="169"> | 584 | </menu_item_call> |
585 | <on_click function="World.EnvSettings" userdata="editor" /> | 585 | <menu_item_call name="Edit" label="Edit" shortcut="control|3"> |
586 | </menu_item_call> | 586 | <on_click function="Tools.SelectTool" userdata="edit" /> |
587 | </menu> | 587 | </menu_item_call> |
588 | </menu> | 588 | <menu_item_call name="Create" label="Create" shortcut="control|4"> |
589 | <menu bottom="-18" create_jump_keys="true" drop_shadow="true" enabled="true" | 589 | <on_click function="Tools.SelectTool" userdata="create" /> |
590 | height="510" label="Tools" left="0" mouse_opaque="false" name="Tools" | 590 | </menu_item_call> |
591 | opaque="true" tear_off="true" visible="false" width="250"> | 591 | <menu_item_call name="Land" label="Land" shortcut="control|5"> |
592 | <menu bottom="-554" create_jump_keys="true" drop_shadow="true" enabled="true" | 592 | <on_click function="Tools.SelectTool" userdata="land" /> |
593 | height="109" label="Select Tool" left="0" mouse_opaque="false" | 593 | </menu_item_call> |
594 | name="Select Tool" opaque="true" tear_off="true" width="118"> | 594 | </menu> |
595 | <menu_item_call bottom="-29" enabled="true" height="19" label="Focus" left="0" | 595 | <menu_item_separator /> |
596 | mouse_opaque="true" name="Focus" shortcut="control|1" width="118"> | 596 | <menu_item_check name="Select Only My Objects" |
597 | <on_click function="Tools.SelectTool" userdata="focus" /> | 597 | label="Select Only My Objects"> |
598 | </menu_item_call> | 598 | <on_click function="Tools.SelectOnlyMyObjects" |
599 | <menu_item_call bottom="-48" enabled="true" height="19" label="Move" left="0" | 599 | userdata="agents" /> |
600 | mouse_opaque="true" name="Move" shortcut="control|2" width="118"> | 600 | <on_check control="SelectOwnedOnly" /> |
601 | <on_click function="Tools.SelectTool" userdata="move" /> | 601 | </menu_item_check> |
602 | </menu_item_call> | 602 | <menu_item_check name="Select Only Movable Objects" |
603 | <menu_item_call bottom="-67" enabled="true" height="19" label="Edit" left="0" | 603 | label="Select Only Movable Objects"> |
604 | mouse_opaque="true" name="Edit" shortcut="control|3" width="118"> | 604 | <on_click function="Tools.SelectOnlyMovableObjects" |
605 | <on_click function="Tools.SelectTool" userdata="edit" /> | 605 | userdata="movable" /> |
606 | </menu_item_call> | 606 | <on_check control="SelectMovableOnly" /> |
607 | <menu_item_call bottom="-86" enabled="true" height="19" label="Create" left="0" | 607 | </menu_item_check> |
608 | mouse_opaque="true" name="Create" shortcut="control|4" width="118"> | 608 | <menu_item_check name="Select By Surrounding" |
609 | <on_click function="Tools.SelectTool" userdata="create" /> | 609 | label="Select By Surrounding"> |
610 | </menu_item_call> | 610 | <on_click function="Tools.SelectBySurrounding" |
611 | <menu_item_call bottom="-105" enabled="true" height="19" label="Land" left="0" | 611 | userdata="" /> |
612 | mouse_opaque="true" name="Land" shortcut="control|5" width="118"> | 612 | <on_check control="RectangleSelectInclusive" /> |
613 | <on_click function="Tools.SelectTool" userdata="land" /> | 613 | </menu_item_check> |
614 | </menu_item_call> | 614 | <menu_item_check name="Show Hidden Selection" |
615 | </menu> | 615 | label="Show Hidden Selection"> |
616 | <menu_item_separator bottom="-37" enabled="true" height="8" label="-----------" left="0" | 616 | <on_click function="Tools.ShowHiddenSelection" |
617 | mouse_opaque="true" name="separator" width="250" /> | 617 | userdata="" /> |
618 | <menu_item_check bottom="-56" enabled="true" height="19" label="Select Only My Objects" left="0" | 618 | <on_check control="RenderHiddenSelections" /> |
619 | mouse_opaque="true" name="Select Only My Objects" width="250"> | 619 | </menu_item_check> |
620 | <on_click function="Tools.SelectOnlyMyObjects" userdata="agents" /> | 620 | <menu_item_check name="Show Light Radius for Selection" |
621 | <on_check control="SelectOwnedOnly" /> | 621 | label="Show Light Radius for Selection"> |
622 | </menu_item_check> | 622 | <on_click function="Tools.ShowSelectionLightRadius" |
623 | <menu_item_check bottom="-75" enabled="true" height="19" label="Select Only Movable Objects" | 623 | userdata="" /> |
624 | left="0" mouse_opaque="true" name="Select Only Movable Objects" width="250"> | 624 | <on_check control="RenderLightRadius" /> |
625 | <on_click function="Tools.SelectOnlyMovableObjects" userdata="movable" /> | 625 | </menu_item_check> |
626 | <on_check control="SelectMovableOnly" /> | 626 | <menu_item_check name="Show Selection Beam" |
627 | </menu_item_check> | 627 | label="Show Selection Beam"> |
628 | <menu_item_check bottom="-94" enabled="true" height="19" label="Select By Surrounding" left="0" | 628 | <on_click function="ToggleControl" |
629 | mouse_opaque="true" name="Select By Surrounding" width="250"> | 629 | userdata="ShowSelectionBeam" /> |
630 | <on_click function="Tools.SelectBySurrounding" userdata="" /> | 630 | <on_check control="ShowSelectionBeam" /> |
631 | <on_check control="RectangleSelectInclusive" /> | 631 | </menu_item_check> |
632 | </menu_item_check> | 632 | <menu_item_separator /> |
633 | <menu_item_check bottom="-113" enabled="true" height="19" label="Show Hidden Selection" left="0" | 633 | <menu_item_check name="Snap to Grid" enabled="false" |
634 | mouse_opaque="true" name="Show Hidden Selection" width="250"> | 634 | label="Snap to Grid" shortcut="G"> |
635 | <on_click function="Tools.ShowHiddenSelection" userdata="" /> | 635 | <on_click function="ToggleControl" |
636 | <on_check control="RenderHiddenSelections" /> | 636 | userdata="SnapEnabled" /> |
637 | </menu_item_check> | 637 | <on_check control="SnapEnabled" /> |
638 | <menu_item_check bottom="-132" enabled="true" height="19" | 638 | <on_enable function="Tools.EnableToolNotPie" /> |
639 | label="Show Light Radius for Selection" left="0" mouse_opaque="true" | 639 | </menu_item_check> |
640 | name="Show Light Radius for Selection" width="250"> | 640 | <menu_item_call name="Snap Object XY to Grid" enabled="false" |
641 | <on_click function="Tools.ShowSelectionLightRadius" userdata="" /> | 641 | label="Snap Object XY to Grid" shortcut="shift|X"> |
642 | <on_check control="RenderLightRadius" /> | 642 | <on_click function="Tools.SnapObjectXY" userdata="" /> |
643 | </menu_item_check> | 643 | <on_enable function="Tools.EnableToolNotPie" /> |
644 | <menu_item_check bottom="-151" enabled="true" height="19" label="Show Selection Beam" left="0" | 644 | </menu_item_call> |
645 | mouse_opaque="true" name="Show Selection Beam" width="250"> | 645 | <menu_item_call name="Use Selection for Grid" enabled="false" |
646 | <on_click function="ToggleControl" userdata="ShowSelectionBeam" /> | 646 | label="Use Selection for Grid" shortcut="shift|G"> |
647 | <on_check control="ShowSelectionBeam" /> | 647 | <on_click function="Tools.UseSelectionForGrid" userdata="" /> |
648 | </menu_item_check> | 648 | <on_enable function="SomethingSelected" /> |
649 | <menu_item_separator bottom="-159" enabled="true" height="8" label="-----------" left="0" | 649 | </menu_item_call> |
650 | mouse_opaque="true" name="separator2" width="250" /> | 650 | <menu_item_call name="Grid Options..." enabled="false" |
651 | <menu_item_check bottom="-178" enabled="false" height="19" label="Snap to Grid" left="0" | 651 | label="Grid Options..." shortcut="control|shift|B"> |
652 | mouse_opaque="true" name="Snap to Grid" shortcut="G" width="250"> | 652 | <on_click function="ShowFloater" userdata="grid options" /> |
653 | <on_click function="ToggleControl" userdata="SnapEnabled" /> | 653 | <on_enable function="Tools.EnableToolNotPie" /> |
654 | <on_check control="SnapEnabled" /> | 654 | </menu_item_call> |
655 | <on_enable function="Tools.EnableToolNotPie" /> | 655 | <menu_item_separator /> |
656 | </menu_item_check> | 656 | <menu_item_check name="Edit Linked Parts" enabled="false" |
657 | <menu_item_call bottom="-197" enabled="false" height="19" label="Snap Object XY to Grid" | 657 | label="Edit Linked Parts" shortcut=""> |
658 | left="0" mouse_opaque="true" name="Snap Object XY to Grid" | 658 | <on_click function="ToggleControl" userdata="EditLinkedParts" /> |
659 | shortcut="shift|X" width="250"> | 659 | <on_click function="Tools.EditLinkedParts" userdata="" /> |
660 | <on_click function="Tools.SnapObjectXY" userdata="" /> | 660 | <on_check control="EditLinkedParts" /> |
661 | <on_enable function="Tools.EnableToolNotPie" /> | 661 | <on_enable function="Tools.EnableToolNotPie" /> |
662 | </menu_item_call> | 662 | </menu_item_check> |
663 | <menu_item_call bottom="-216" enabled="false" height="19" label="Use Selection for Grid" | 663 | <menu_item_call name="Link" enabled="false" label="Link" |
664 | left="0" mouse_opaque="true" name="Use Selection for Grid" | 664 | shortcut="control|L"> |
665 | shortcut="shift|G" width="250"> | 665 | <on_click function="Tools.Link" userdata="" /> |
666 | <on_click function="Tools.UseSelectionForGrid" userdata="" /> | 666 | <on_enable function="Tools.EnableLink" /> |
667 | <on_enable function="SomethingSelected" /> | 667 | </menu_item_call> |
668 | </menu_item_call> | 668 | <menu_item_call name="Unlink" enabled="false" label="Unlink" |
669 | <menu_item_call bottom="-235" enabled="false" height="19" label="Grid Options..." left="0" | 669 | shortcut="control|shift|L"> |
670 | mouse_opaque="true" name="Grid Options..." shortcut="control|shift|B" | 670 | <on_click function="Tools.Unlink" userdata="" /> |
671 | width="250"> | 671 | <on_enable function="Tools.EnableUnlink" /> |
672 | <on_click function="ShowFloater" userdata="grid options" /> | 672 | </menu_item_call> |
673 | <on_enable function="Tools.EnableToolNotPie" /> | 673 | <menu_item_separator /> |
674 | </menu_item_call> | 674 | <menu_item_call name="Focus on Selection" enabled="false" |
675 | <menu_item_separator bottom="-243" enabled="true" height="8" label="-----------" left="0" | 675 | label="Focus on Selection" shortcut="H"> |
676 | mouse_opaque="true" name="separator3" width="250" /> | 676 | <on_click function="Tools.LookAtSelection" userdata="focus" /> |
677 | <menu_item_check bottom="" enabled="false" height="" label="Edit Linked Parts" left="" | 677 | <on_enable function="Tools.SomethingSelectedNoHUD" /> |
678 | mouse_opaque="true" name="Edit Linked Parts" shortcut="" width=""> | 678 | </menu_item_call> |
679 | <on_click function="ToggleControl" userdata="EditLinkedParts" /> | 679 | <menu_item_call name="Zoom to Selection" enabled="false" |
680 | <on_click function="Tools.EditLinkedParts" userdata="" /> | 680 | label="Zoom to Selection" shortcut="shift|H"> |
681 | <on_check control="EditLinkedParts" /> | 681 | <on_click function="Tools.LookAtSelection" userdata="zoom" /> |
682 | <on_enable function="Tools.EnableToolNotPie" /> | 682 | <on_enable function="Tools.SomethingSelectedNoHUD" /> |
683 | </menu_item_check> | 683 | </menu_item_call> |
684 | <menu_item_call bottom="-262" enabled="false" height="19" label="Link" left="0" | 684 | <menu_item_call name="Menu Object Take" enabled="false" |
685 | mouse_opaque="true" name="Link" shortcut="control|L" width="250"> | 685 | label="Buy Object" visible="false"> |
686 | <on_click function="Tools.Link" userdata="" /> | 686 | <on_click function="Tools.BuyOrTake" userdata="" /> |
687 | <on_enable function="Tools.EnableLink" /> | 687 | <on_enable function="Tools.EnableBuyOrTake" userdata="Buy,Take" /> |
688 | </menu_item_call> | 688 | </menu_item_call> |
689 | <menu_item_call bottom="-281" enabled="false" height="19" label="Unlink" left="0" | 689 | <menu_item_call name="Take Copy" enabled="false" |
690 | mouse_opaque="true" name="Unlink" shortcut="control|shift|L" width="250"> | 690 | label="Take Copy"> |
691 | <on_click function="Tools.Unlink" userdata="" /> | 691 | <on_click function="Tools.TakeCopy" userdata="" /> |
692 | <on_enable function="Tools.EnableUnlink" /> | 692 | <on_enable function="Tools.EnableTakeCopy" /> |
693 | </menu_item_call> | 693 | </menu_item_call> |
694 | <menu_item_separator bottom="-289" enabled="true" height="8" label="-----------" left="0" | 694 | <menu_item_call name="Return..." enabled="false" |
695 | mouse_opaque="true" name="separator4" width="250" /> | 695 | label="Return Object"> |
696 | <menu_item_call bottom="-308" enabled="false" height="19" label="Focus on Selection" left="0" | 696 | <on_click function="Object.Return" /> |
697 | mouse_opaque="true" name="Focus on Selection" shortcut="H" width="250"> | 697 | <on_enable function="Object.EnableReturn" /> |
698 | <on_click function="Tools.LookAtSelection" userdata="focus" /> | 698 | </menu_item_call> |
699 | <on_enable function="Tools.SomethingSelectedNoHUD" /> | 699 | <menu_item_call name="Save Object Back to My Inventory" |
700 | </menu_item_call> | 700 | enabled="false" |
701 | <menu_item_call bottom="-327" enabled="false" height="19" label="Zoom to Selection" left="0" | 701 | label="Save Object Back to My Inventory"> |
702 | mouse_opaque="true" name="Zoom to Selection" shortcut="shift|H" width="250"> | 702 | <on_click function="Tools.SaveToInventory" userdata="" /> |
703 | <on_click function="Tools.LookAtSelection" userdata="zoom" /> | 703 | <on_enable function="Tools.EnableSaveToInventory" /> |
704 | <on_enable function="Tools.SomethingSelectedNoHUD" /> | 704 | </menu_item_call> |
705 | </menu_item_call> | 705 | <menu_item_call name="Save Object Back to Object Contents" |
706 | <menu_item_call bottom="-346" enabled="false" height="19" label="Buy Object" left="0" | 706 | enabled="false" |
707 | mouse_opaque="true" name="Menu Object Take" visible="false" width="250"> | 707 | label="Save Object Back to Object Contents"> |
708 | <on_click function="Tools.BuyOrTake" userdata="" /> | 708 | <on_click function="Tools.SaveToObjectInventory" userdata="" /> |
709 | <on_enable function="Tools.EnableBuyOrTake" userdata="Buy,Take" /> | 709 | <on_enable function="Tools.EnableSaveToObjectInventory" /> |
710 | </menu_item_call> | 710 | </menu_item_call> |
711 | <menu_item_call bottom="-365" enabled="false" height="19" label="Take Copy" left="0" | 711 | <menu_item_separator /> |
712 | mouse_opaque="true" name="Take Copy" width="250"> | 712 | <menu_item_call name="Show Script Warning/Error Window" |
713 | <on_click function="Tools.TakeCopy" userdata="" /> | 713 | label="Show Script Warning/Error Window"> |
714 | <on_enable function="Tools.EnableTakeCopy" /> | 714 | <on_click function="ShowFloater" userdata="script errors" /> |
715 | </menu_item_call> | 715 | </menu_item_call> |
716 | <menu_item_call bottom="-384" enabled="false" height="19" | 716 | <menu_item_call name="Recompile Scripts in Selection" |
717 | label="Save Object Back to My Inventory" left="0" mouse_opaque="true" | 717 | enabled="false" |
718 | name="Save Object Back to My Inventory" width="250"> | 718 | label="Recompile Scripts in Selection"> |
719 | <on_click function="Tools.SaveToInventory" userdata="" /> | 719 | <on_click function="Tools.SelectedScriptAction" |
720 | <on_enable function="Tools.EnableSaveToInventory" /> | 720 | userdata="compile" /> |
721 | </menu_item_call> | 721 | <on_enable function="EditableSelected" /> |
722 | <menu_item_call bottom="-403" enabled="false" height="19" | 722 | </menu_item_call> |
723 | label="Save Object Back to Object Contents" left="0" mouse_opaque="true" | 723 | <menu_item_call name="Reset Scripts in Selection" enabled="false" |
724 | name="Save Object Back to Object Contents" width="250"> | 724 | label="Reset Scripts in Selection"> |
725 | <on_click function="Tools.SaveToObjectInventory" userdata="" /> | 725 | <on_click function="Tools.SelectedScriptAction" |
726 | <on_enable function="Tools.EnableSaveToObjectInventory" /> | 726 | userdata="reset" /> |
727 | </menu_item_call> | 727 | <on_enable function="EditableSelected" /> |
728 | <menu_item_separator bottom="-411" enabled="true" height="8" label="-----------" left="0" | 728 | </menu_item_call> |
729 | mouse_opaque="true" name="separator6" width="250" /> | 729 | <menu_item_call name="Set Scripts to Running in Selection" |
730 | <menu_item_call bottom="-430" enabled="true" height="19" | 730 | enabled="false" |
731 | label="Show Script Warning/Error Window" left="0" mouse_opaque="true" | 731 | label="Set Scripts to Running in Selection"> |
732 | name="Show Script Warning/Error Window" width="250"> | 732 | <on_click function="Tools.SelectedScriptAction" |
733 | <on_click function="ShowFloater" userdata="script errors" /> | 733 | userdata="start" /> |
734 | </menu_item_call> | 734 | <on_enable function="EditableSelected" /> |
735 | <menu_item_call bottom="-449" enabled="false" height="19" | 735 | </menu_item_call> |
736 | label="Recompile Scripts in Selection" left="0" mouse_opaque="true" | 736 | <menu_item_call name="Set Scripts to Not Running in Selection" |
737 | name="Recompile Scripts in Selection" width="250"> | 737 | enabled="false" |
738 | <on_click function="Tools.SelectedScriptAction" userdata="compile" /> | 738 | label="Set Scripts to Not Running in Selection"> |
739 | <on_enable function="EditableSelected" /> | 739 | <on_click function="Tools.SelectedScriptAction" |
740 | </menu_item_call> | 740 | userdata="stop" /> |
741 | <menu_item_call bottom="-468" enabled="false" height="19" label="Reset Scripts in Selection" | 741 | <on_enable function="EditableSelected" /> |
742 | left="0" mouse_opaque="true" name="Reset Scripts in Selection" width="250"> | 742 | </menu_item_call> |
743 | <on_click function="Tools.SelectedScriptAction" userdata="reset" /> | 743 | <menu_item_call name="Set permissions on selected task inventory" |
744 | <on_enable function="EditableSelected" /> | 744 | enabled="false" |
745 | </menu_item_call> | 745 | label="Set permissions on selected task inventory"> |
746 | <menu_item_call bottom="-487" enabled="false" height="19" | 746 | <on_click function="Tools.SetBulkPerms" userdata="" /> |
747 | label="Set Scripts to Running in Selection" left="0" mouse_opaque="true" | 747 | <on_enable function="EditableSelected" /> |
748 | name="Set Scripts to Running in Selection" width="250"> | 748 | </menu_item_call> |
749 | <on_click function="Tools.SelectedScriptAction" userdata="start" /> | 749 | </menu> |
750 | <on_enable function="EditableSelected" /> | 750 | |
751 | </menu_item_call> | 751 | |
752 | <menu_item_call bottom="-506" enabled="false" height="19" | 752 | |
753 | label="Set Scripts to Not Running in Selection" left="0" | 753 | <!-- HELP --> |
754 | mouse_opaque="true" name="Set Scripts to Not Running in Selection" | 754 | |
755 | width="250"> | 755 | <menu name="Help" create_jump_keys="true" label="Help" |
756 | <on_click function="Tools.SelectedScriptAction" userdata="stop" /> | 756 | opaque="true" tear_off="true"> |
757 | <on_enable function="EditableSelected" /> | 757 | <menu_item_call name="Second Life Help" label="Second Life Help" |
758 | </menu_item_call> | 758 | shortcut="F1"> |
759 | </menu> | 759 | <on_click function="ShowFloater" userdata="help f1" /> |
760 | <menu bottom="219" create_jump_keys="true" drop_shadow="true" enabled="true" | 760 | </menu_item_call> |
761 | height="317" label="Help" left="227" mouse_opaque="false" name="Help" | 761 | <menu_item_call name="Tutorial" label="Tutorial"> |
762 | opaque="true" tear_off="true" width="166"> | 762 | <on_click function="ShowFloater" userdata="help tutorial" /> |
763 | <menu_item_call bottom="-29" enabled="true" height="19" label="Second Life Help" left="0" | 763 | </menu_item_call> |
764 | mouse_opaque="true" name="Second Life Help" shortcut="F1" width="166"> | 764 | <menu_item_separator /> |
765 | <on_click function="ShowFloater" userdata="help f1" /> | 765 | <menu_item_call name="Official Linden Blog..." |
766 | </menu_item_call> | 766 | label="Official Linden Blog..."> |
767 | <menu_item_call bottom="-48" enabled="true" height="19" label="Tutorial" left="0" | 767 | <on_click function="PromptShowURL" |
768 | mouse_opaque="true" name="Tutorial" width="166"> | 768 | userdata="WebLaunchSupportWiki,http://blog.secondlife.com/" /> |
769 | <on_click function="ShowFloater" userdata="help tutorial" /> | 769 | </menu_item_call> |
770 | </menu_item_call> | 770 | <menu_item_separator /> |
771 | <menu_item_separator bottom="-75" enabled="true" height="8" label="-----------" left="0" | 771 | <menu_item_call name="Scripting Guide..." |
772 | mouse_opaque="true" name="separator" width="166" /> | 772 | label="Scripting Guide..."> |
773 | <menu_item_call bottom="-94" enabled="true" height="19" label="Official Linden Blog..." | 773 | <on_click function="PromptShowFile" |
774 | left="0" mouse_opaque="true" name="Official Linden Blog..." width="166"> | 774 | userdata="WebLaunchLSLGuide,lsl_guide.html" /> |
775 | <on_click function="PromptShowURL" | 775 | </menu_item_call> |
776 | userdata="WebLaunchSupportWiki,http://blog.secondlife.com/" /> | 776 | <menu_item_call name="Scripting Portal..." |
777 | </menu_item_call> | 777 | label="Scripting Portal..."> |
778 | <menu_item_separator bottom="-102" enabled="true" height="8" label="-----------" left="0" | 778 | <on_click function="PromptShowURL" |
779 | mouse_opaque="true" name="separator2" width="166" /> | 779 | userdata="WebLaunchLSLWiki,http://wiki.secondlife.com/wiki/LSL_Portal" /> |
780 | <menu_item_call bottom="-121" enabled="true" height="19" label="Scripting Guide..." left="0" | 780 | </menu_item_call> |
781 | mouse_opaque="true" name="Scripting Guide..." width="166"> | 781 | <menu_item_separator /> |
782 | <on_click function="PromptShowFile" userdata="WebLaunchLSLGuide,lsl_guide.html" /> | 782 | <menu_item_call name="Report Abuse..." label="Report Abuse..."> |
783 | </menu_item_call> | 783 | <on_click function="ShowFloater" |
784 | <menu_item_call bottom="-140" enabled="true" height="19" label="Scripting Portal..." left="0" | 784 | userdata="complaint reporter" /> |
785 | mouse_opaque="true" name="Scripting Portal..." width="166"> | 785 | </menu_item_call> |
786 | <on_click function="PromptShowURL" | 786 | <menu_item_call name="Bumps, Pushes &amp; Hits..." |
787 | userdata="WebLaunchLSLWiki,http://wiki.secondlife.com/wiki/LSL_Portal" /> | 787 | label="Bumps, Pushes & Hits..."> |
788 | </menu_item_call> | 788 | <on_click function="ShowFloater" userdata="mean events" /> |
789 | <menu_item_separator bottom="-148" enabled="true" height="8" label="-----------" left="0" | 789 | </menu_item_call> |
790 | mouse_opaque="true" name="separator3" width="166" /> | 790 | <menu_item_call name="Lag Meter" label="Lag Meter"> |
791 | <menu_item_call bottom="-194" enabled="true" height="19" label="Report Abuse..." left="0" | 791 | <on_click function="ShowFloater" userdata="lag meter" /> |
792 | mouse_opaque="true" name="Report Abuse..." width="166"> | 792 | </menu_item_call> |
793 | <on_click function="ShowFloater" userdata="complaint reporter" /> | 793 | <menu_item_separator /> |
794 | </menu_item_call> | 794 | <menu name="Bug Reporting" create_jump_keys="true" |
795 | <menu_item_call bottom="-213" enabled="true" height="19" label="Bumps, Pushes & Hits..." | 795 | label="Bug Reporting" opaque="true" tear_off="true"> |
796 | left="0" mouse_opaque="true" name="Bumps, Pushes &amp; Hits..." | 796 | <menu_item_call name="Public Issue Tracker..." |
797 | width="166"> | 797 | label="Public Issue Tracker..."> |
798 | <on_click function="ShowFloater" userdata="mean events" /> | 798 | <on_click function="PromptShowURL" |
799 | </menu_item_call> | 799 | userdata="WebLaunchPublicIssue,http://jira.secondlife.com" /> |
800 | <menu_item_call label="Lag Meter" name="Lag Meter"> | 800 | </menu_item_call> |
801 | <on_click function="ShowFloater" userdata="lag meter" /> | 801 | <menu_item_call name="Publc Issue Tracker Help..." |
802 | </menu_item_call> | 802 | label="Public Issue Tracker Help..."> |
803 | <menu_item_separator bottom="-411" enabled="true" height="8" label="-----------" left="0" | 803 | <on_click function="PromptShowURL" |
804 | mouse_opaque="true" name="separator7" width="250" /> | 804 | userdata="WebLaunchPublicIssueHelp,http://wiki.secondlife.com/wiki/Issue_tracker" /> |
805 | <menu bottom="-554" create_jump_keys="true" drop_shadow="true" enabled="true" | 805 | </menu_item_call> |
806 | height="109" label="Bug Reporting" left="0" mouse_opaque="false" | 806 | <menu_item_separator /> |
807 | name="Bug Reporting" opaque="true" tear_off="true" width="118"> | 807 | <menu_item_call name="Bug Reporing 101..." |
808 | <menu_item_call bottom="-94" enabled="true" height="19" label="Public Issue Tracker..." | 808 | label="Bug Reporting 101..."> |
809 | left="0" mouse_opaque="true" name="Public Issue Tracker..." width="166"> | 809 | <on_click function="PromptShowURL" |
810 | <on_click function="PromptShowURL" | 810 | userdata="WebLaunchBugReport101,http://wiki.secondlife.com/wiki/Bug_Reporting_101" /> |
811 | userdata="WebLaunchPublicIssue,http://jira.secondlife.com" /> | 811 | </menu_item_call> |
812 | </menu_item_call> | 812 | <menu_item_call name="Security Issues..." |
813 | <menu_item_call bottom="-94" enabled="true" height="19" label="Public Issue Tracker Help..." | 813 | label="Security Issues..."> |
814 | left="0" mouse_opaque="true" name="Publc Issue Tracker Help..." width="166"> | 814 | <on_click function="PromptShowURL" |
815 | <on_click function="PromptShowURL" | 815 | userdata="WebLaunchSecurityIssues,http://wiki.secondlife.com/wiki/Security_issues" /> |
816 | userdata="WebLaunchPublicIssueHelp,http://wiki.secondlife.com/wiki/Issue_tracker" /> | 816 | </menu_item_call> |
817 | </menu_item_call> | 817 | <menu_item_call name="QA Wiki..." label="QA Wiki..."> |
818 | <menu_item_separator bottom="-411" enabled="true" height="8" label="-----------" left="0" | 818 | <on_click function="PromptShowURL" |
819 | mouse_opaque="true" name="separator7" width="250" /> | 819 | userdata="WebLaunchQAWiki,http://wiki.secondlife.com/wiki/QA_Portal" /> |
820 | <menu_item_call bottom="-94" enabled="true" height="19" label="Bug Reporting 101..." left="0" | 820 | </menu_item_call> |
821 | mouse_opaque="true" name="Bug Reporing 101..." width="166"> | 821 | <menu_item_separator /> |
822 | <on_click function="PromptShowURL" | 822 | <menu_item_call name="Report Bug..." label="Report Bug..."> |
823 | userdata="WebLaunchBugReport101,http://wiki.secondlife.com/wiki/Bug_Reporting_101" /> | 823 | <on_click function="PromptShowURL" |
824 | </menu_item_call> | 824 | userdata="WebLaunchPublicIssue,http://jira.secondlife.com" /> |
825 | <menu_item_call bottom="-94" enabled="true" height="19" label="Security Issues..." left="0" | 825 | </menu_item_call> |
826 | mouse_opaque="true" name="Security Issues..." width="166"> | 826 | </menu> |
827 | <on_click function="PromptShowURL" | 827 | <menu_item_separator /> |
828 | userdata="WebLaunchSecurityIssues,http://wiki.secondlife.com/wiki/Security_issues" /> | 828 | <menu_item_call name="Release Notes..." |
829 | </menu_item_call> | 829 | label="Release Notes..."> |
830 | <menu_item_call bottom="-94" enabled="true" height="19" label="QA Wiki..." left="0" | 830 | <on_click function="PromptShowFile" |
831 | mouse_opaque="true" name="QA Wiki..." width="166"> | 831 | userdata="WebLaunchReleaseNotes,releasenotes.txt" /> |
832 | <on_click function="PromptShowURL" | 832 | </menu_item_call> |
833 | userdata="WebLaunchQAWiki,http://wiki.secondlife.com/wiki/QA_Portal" /> | 833 | <menu_item_separator /> |
834 | </menu_item_call> | 834 | <menu_item_call name="About Second Life..." |
835 | <menu_item_separator bottom="-411" enabled="true" height="8" label="-----------" left="0" | 835 | label="About Second Life..."> |
836 | mouse_opaque="true" name="separator9" width="250" /> | 836 | <on_click function="ShowFloater" userdata="about" /> |
837 | <menu_item_call bottom="-240" enabled="true" height="19" label="Report Bug..." left="0" | 837 | </menu_item_call> |
838 | mouse_opaque="true" name="Report Bug..." width="166"> | 838 | </menu> |
839 | <on_click function="PromptShowURL" | 839 | |
840 | userdata="WebLaunchPublicIssue,http://jira.secondlife.com" /> | 840 | |
841 | </menu_item_call> | 841 | |
842 | </menu> | 842 | <!-- ADVANCED --> |
843 | <menu_item_separator bottom="-221" enabled="true" height="8" label="-----------" left="0" | 843 | |
844 | mouse_opaque="true" name="separator5" width="166" /> | 844 | <menu name="Advanced" drop_shadow="true" |
845 | <menu_item_call bottom="-121" enabled="true" height="19" label="Release Notes..." left="0" | 845 | opaque="true" tear_off="true"> |
846 | mouse_opaque="true" name="Release Notes..." width="166"> | 846 | |
847 | <on_click function="PromptShowFile" userdata="WebLaunchReleaseNotes,releasenotes.txt" /> | 847 | |
848 | </menu_item_call> | 848 | <!-- CONSOLES --> |
849 | <menu_item_separator bottom="-294" enabled="true" height="8" label="-----------" left="0" | 849 | |
850 | mouse_opaque="true" name="separator6" width="166" /> | 850 | <menu name="Consoles" drop_shadow="true" |
851 | <menu_item_call bottom="-313" enabled="true" height="19" label="About Second Life..." left="0" | 851 | opaque="true" tear_off="true"> |
852 | mouse_opaque="true" name="About Second Life..." width="166"> | 852 | <menu_item_check name="Frame Console" label="Frame Console" |
853 | <on_click function="ShowFloater" userdata="about" /> | 853 | shortcut="control|shift|2"> |
854 | </menu_item_call> | 854 | <on_click function="Advanced.ToggleConsole" |
855 | </menu> | 855 | userdata="frame" /> |
856 | <on_check function="Advanced.CheckConsole" | ||
857 | userdata="frame" /> | ||
858 | </menu_item_check> | ||
859 | <menu_item_check name="Texture Console" label="Texture Console" | ||
860 | shortcut="control|shift|3"> | ||
861 | <on_click function="Advanced.ToggleConsole" | ||
862 | userdata="texture" /> | ||
863 | <on_check function="Advanced.CheckConsole" | ||
864 | userdata="texture" /> | ||
865 | </menu_item_check> | ||
866 | <menu_item_check name="Debug Console" label="Debug Console" | ||
867 | shortcut="control|shift|4"> | ||
868 | <on_click function="Advanced.ToggleConsole" | ||
869 | userdata="debug" /> | ||
870 | <on_check function="Advanced.CheckConsole" | ||
871 | userdata="debug" /> | ||
872 | </menu_item_check> | ||
873 | <menu_item_check name="Fast Timers" label="Fast Timers" | ||
874 | shortcut="control|shift|9"> | ||
875 | <on_click function="Advanced.ToggleConsole" | ||
876 | userdata="fast timers" /> | ||
877 | <on_check function="Advanced.CheckConsole" | ||
878 | userdata="fast timers" /> | ||
879 | </menu_item_check> | ||
880 | <!-- Requires compiled-in support, I think? | ||
881 | <menu_item_check name="Memory" label="Memory" | ||
882 | shortcut="control|shift|0"> | ||
883 | <on_click function="Advanced.ToggleConsole" | ||
884 | userdata="memory" /> | ||
885 | <on_check function="Advanced.CheckConsole" | ||
886 | userdata="memory" /> | ||
887 | </menu_item_check> | ||
888 | --> | ||
889 | <menu_item_separator /> | ||
890 | <menu_item_call name="Region Info to Debug Console" | ||
891 | label="Region Info to Debug Console"> | ||
892 | <on_click function="Advanced.DumpInfoToConsole" | ||
893 | userdata="region" /> | ||
894 | </menu_item_call> | ||
895 | <menu_item_call name="Group Info to Debug Console" | ||
896 | label="Group Info to Debug Console"> | ||
897 | <on_click function="Advanced.DumpInfoToConsole" | ||
898 | userdata="group" /> | ||
899 | </menu_item_call> | ||
900 | <menu_item_call name="Capabilities Info to Debug Console" | ||
901 | label="Capabilities Info to Debug Console"> | ||
902 | <on_click function="Advanced.DumpInfoToConsole" | ||
903 | userdata="capabilities" /> | ||
904 | </menu_item_call> | ||
905 | </menu> | ||
906 | |||
907 | |||
908 | <menu_item_call name="Reload personal setting overrides" | ||
909 | label="Reload personal settings overrides" | ||
910 | shortcut="control|shift|F2"> | ||
911 | <on_click function="Advanced.ReloadSettingsOverrides" userdata="" /> | ||
912 | </menu_item_call> | ||
913 | |||
914 | |||
915 | |||
916 | <!-- HUD INFO --> | ||
917 | |||
918 | <menu name="HUD Info" drop_shadow="true" | ||
919 | opaque="true" tear_off="true"> | ||
920 | <menu_item_check name="Velocity" label="Velocity"> | ||
921 | <on_click function="Advanced.ToggleHUDInfo" | ||
922 | userdata="velocity" /> | ||
923 | <on_check function="Advanced.CheckHUDInfo" | ||
924 | userdata="velocity" /> | ||
925 | </menu_item_check> | ||
926 | <menu_item_check name="Camera" label="Camera"> | ||
927 | <on_click function="Advanced.ToggleHUDInfo" | ||
928 | userdata="camera" /> | ||
929 | <on_check function="Advanced.CheckHUDInfo" | ||
930 | userdata="camera" /> | ||
931 | </menu_item_check> | ||
932 | <menu_item_check name="Wind" label="Wind"> | ||
933 | <on_click function="Advanced.ToggleHUDInfo" | ||
934 | userdata="wind" /> | ||
935 | <on_check function="Advanced.CheckHUDInfo" | ||
936 | userdata="wind" /> | ||
937 | </menu_item_check> | ||
938 | <menu_item_check name="FOV" label="FOV"> | ||
939 | <on_click function="Advanced.ToggleHUDInfo" | ||
940 | userdata="fov" /> | ||
941 | <on_check function="Advanced.CheckHUDInfo" | ||
942 | userdata="fov" /> | ||
943 | </menu_item_check> | ||
944 | </menu> | ||
945 | |||
946 | |||
947 | <menu_item_separator /> | ||
948 | |||
949 | <menu_item_check name="High-res Snapshot" | ||
950 | label="High-res Snapshot"> | ||
951 | <on_click function="ToggleControl" | ||
952 | userdata="HighResSnapshot" /> | ||
953 | <on_check control="HighResSnapshot" /> | ||
954 | </menu_item_check> | ||
955 | <menu_item_check name="Quiet Snapshots to Disk" | ||
956 | label="Quiet Snapshots to Disk"> | ||
957 | <on_click function="ToggleControl" | ||
958 | userdata="QuietSnapshotsToDisk" /> | ||
959 | <on_check control="QuietSnapshotsToDisk" /> | ||
960 | </menu_item_check> | ||
961 | <menu_item_check name="Compress Snapshots to Disk" | ||
962 | label="Compress Snapshots to Disk"> | ||
963 | <on_click function="ToggleControl" | ||
964 | userdata="CompressSnapshotsToDisk" /> | ||
965 | <on_check control="CompressSnapshotsToDisk" /> | ||
966 | </menu_item_check> | ||
967 | <menu_item_check name="Show Mouselook Crosshairs" | ||
968 | label="Show Mouselook Crosshairs"> | ||
969 | <on_click function="ToggleControl" | ||
970 | userdata="ShowCrosshairs" /> | ||
971 | <on_check control="ShowCrosshairs" /> | ||
972 | </menu_item_check> | ||
973 | <menu_item_check name="Debug Permissions" | ||
974 | label="Debug Permissions"> | ||
975 | <on_click function="ToggleControl" | ||
976 | userdata="DebugPermissions" /> | ||
977 | <on_check control="DebugPermissions" /> | ||
978 | </menu_item_check> | ||
979 | <menu_item_call name="Clear Group Cache" | ||
980 | label="Clear Group Cache"> | ||
981 | <on_click function="Advanced.ClearGroupCache" | ||
982 | userdata="" /> | ||
983 | </menu_item_call> | ||
984 | <menu_item_separator /> | ||
985 | |||
986 | |||
987 | |||
988 | <!-- RENDERING --> | ||
989 | |||
990 | <menu name="Rendering" drop_shadow="true" | ||
991 | opaque="true" tear_off="true"> | ||
992 | |||
993 | <!-- TYPES --> | ||
994 | <menu name="Types" drop_shadow="true" | ||
995 | opaque="true" tear_off="true"> | ||
996 | <menu_item_check name="Simple" label="Simple" | ||
997 | shortcut="control|alt|shift|1"> | ||
998 | <on_click function="Advanced.ToggleRenderType" | ||
999 | userdata="simple" /> | ||
1000 | <on_check function="Advanced.CheckRenderType" | ||
1001 | userdata="simple" /> | ||
1002 | </menu_item_check> | ||
1003 | <menu_item_check name="Alpha" label="Alpha" | ||
1004 | shortcut="control|alt|shift|2"> | ||
1005 | <on_click function="Advanced.ToggleRenderType" | ||
1006 | userdata="alpha" /> | ||
1007 | <on_check function="Advanced.CheckRenderType" | ||
1008 | userdata="alpha" /> | ||
1009 | </menu_item_check> | ||
1010 | <menu_item_check name="Tree" label="Tree" | ||
1011 | shortcut="control|alt|shift|3"> | ||
1012 | <on_click function="Advanced.ToggleRenderType" | ||
1013 | userdata="tree" /> | ||
1014 | <on_check function="Advanced.CheckRenderType" | ||
1015 | userdata="tree" /> | ||
1016 | </menu_item_check> | ||
1017 | <menu_item_check name="Character" label="Character" | ||
1018 | shortcut="control|alt|shift|4"> | ||
1019 | <on_click function="Advanced.ToggleRenderType" | ||
1020 | userdata="avatar" /> | ||
1021 | <on_check function="Advanced.CheckRenderType" | ||
1022 | userdata="avatar" /> | ||
1023 | </menu_item_check> | ||
1024 | <menu_item_check name="SurfacePatch" label="SurfacePatch" | ||
1025 | shortcut="control|alt|shift|5"> | ||
1026 | <on_click function="Advanced.ToggleRenderType" | ||
1027 | userdata="terrain" /> | ||
1028 | <on_check function="Advanced.CheckRenderType" | ||
1029 | userdata="terrain" /> | ||
1030 | </menu_item_check> | ||
1031 | <menu_item_check name="Sky" label="Sky" | ||
1032 | shortcut="control|alt|shift|6"> | ||
1033 | <on_click function="Advanced.ToggleRenderType" | ||
1034 | userdata="sky" /> | ||
1035 | <on_check function="Advanced.CheckRenderType" | ||
1036 | userdata="sky" /> | ||
1037 | </menu_item_check> | ||
1038 | <menu_item_check name="Water" label="Water" | ||
1039 | shortcut="control|alt|shift|7"> | ||
1040 | <on_click function="Advanced.ToggleRenderType" | ||
1041 | userdata="water" /> | ||
1042 | <on_check function="Advanced.CheckRenderType" | ||
1043 | userdata="water" /> | ||
1044 | </menu_item_check> | ||
1045 | <menu_item_check name="Ground" label="Ground" | ||
1046 | shortcut="control|alt|shift|8"> | ||
1047 | <on_click function="Advanced.ToggleRenderType" | ||
1048 | userdata="ground" /> | ||
1049 | <on_check function="Advanced.CheckRenderType" | ||
1050 | userdata="ground" /> | ||
1051 | </menu_item_check> | ||
1052 | <menu_item_check name="Volume" label="Volume" | ||
1053 | shortcut="control|alt|shift|9"> | ||
1054 | <on_click function="Advanced.ToggleRenderType" | ||
1055 | userdata="volume" /> | ||
1056 | <on_check function="Advanced.CheckRenderType" | ||
1057 | userdata="volume" /> | ||
1058 | </menu_item_check> | ||
1059 | <menu_item_check name="Grass" label="Grass" | ||
1060 | shortcut="control|alt|shift|0"> | ||
1061 | <on_click function="Advanced.ToggleRenderType" | ||
1062 | userdata="grass" /> | ||
1063 | <on_check function="Advanced.CheckRenderType" | ||
1064 | userdata="grass" /> | ||
1065 | </menu_item_check> | ||
1066 | <menu_item_check name="Clouds" label="Clouds" | ||
1067 | shortcut="control|alt|shift|-"> | ||
1068 | <on_click function="Advanced.ToggleRenderType" | ||
1069 | userdata="clouds" /> | ||
1070 | <on_check function="Advanced.CheckRenderType" | ||
1071 | userdata="clouds" /> | ||
1072 | </menu_item_check> | ||
1073 | <menu_item_check name="Particles" label="Particles" | ||
1074 | shortcut="control|alt|shift|="> | ||
1075 | <on_click function="Advanced.ToggleRenderType" | ||
1076 | userdata="particles" /> | ||
1077 | <on_check function="Advanced.CheckRenderType" | ||
1078 | userdata="particles" /> | ||
1079 | </menu_item_check> | ||
1080 | <menu_item_check name="Bump" label="Bump" | ||
1081 | shortcut="control|alt|shift|\"> | ||
1082 | <on_click function="Advanced.ToggleRenderType" | ||
1083 | userdata="bump" /> | ||
1084 | <on_check function="Advanced.CheckRenderType" | ||
1085 | userdata="bump" /> | ||
1086 | </menu_item_check> | ||
1087 | </menu> | ||
1088 | |||
1089 | |||
1090 | <!-- FEATURES --> | ||
1091 | <menu name="Features" drop_shadow="true" | ||
1092 | opaque="true" tear_off="true"> | ||
1093 | <menu_item_check name="UI" label="UI" | ||
1094 | shortcut="control|alt|F1"> | ||
1095 | <on_click function="Advanced.ToggleFeature" | ||
1096 | userdata="ui" /> | ||
1097 | <on_check function="Advanced.CheckFeature" | ||
1098 | userdata="ui" /> | ||
1099 | </menu_item_check> | ||
1100 | <menu_item_check name="Selected" label="Selected" | ||
1101 | shortcut="control|alt|F2"> | ||
1102 | <on_click function="Advanced.ToggleFeature" | ||
1103 | userdata="selected" /> | ||
1104 | <on_check function="Advanced.CheckFeature" | ||
1105 | userdata="selected" /> | ||
1106 | </menu_item_check> | ||
1107 | <menu_item_check name="Highlighted" label="Highlighted" | ||
1108 | shortcut="control|alt|F3"> | ||
1109 | <on_click function="Advanced.ToggleFeature" | ||
1110 | userdata="highlighted" /> | ||
1111 | <on_check function="Advanced.CheckFeature" | ||
1112 | userdata="highlighted" /> | ||
1113 | </menu_item_check> | ||
1114 | <menu_item_check name="Dynamic Textures" label="Dynamic Textures" | ||
1115 | shortcut="control|alt|F4"> | ||
1116 | <on_click function="Advanced.ToggleFeature" | ||
1117 | userdata="dynamic textures" /> | ||
1118 | <on_check function="Advanced.CheckFeature" | ||
1119 | userdata="dynamic textures" /> | ||
1120 | </menu_item_check> | ||
1121 | <menu_item_check name="Foot Shadows" label="Foot Shadows" | ||
1122 | shortcut="control|alt|F5"> | ||
1123 | <on_click function="Advanced.ToggleFeature" | ||
1124 | userdata="foot shadows" /> | ||
1125 | <on_check function="Advanced.CheckFeature" | ||
1126 | userdata="foot shadows" /> | ||
1127 | </menu_item_check> | ||
1128 | <menu_item_check name="Fog" label="Fog" | ||
1129 | shortcut="control|alt|F6"> | ||
1130 | <on_click function="Advanced.ToggleFeature" | ||
1131 | userdata="fog" /> | ||
1132 | <on_check function="Advanced.CheckFeature" | ||
1133 | userdata="fog" /> | ||
1134 | </menu_item_check> | ||
1135 | <menu_item_check name="Palletized Textures" | ||
1136 | label="Palletized Textures" | ||
1137 | shortcut="control|alt|F7"> | ||
1138 | <on_click function="Advanced.ToggleFeature" | ||
1139 | userdata="palette" /> | ||
1140 | <on_check function="Advanced.CheckFeature" | ||
1141 | userdata="palette" /> | ||
1142 | </menu_item_check> | ||
1143 | <menu_item_check name="Test FRInfo" label="Test FRInfo" | ||
1144 | shortcut="control|alt|F8"> | ||
1145 | <on_click function="Advanced.ToggleFeature" | ||
1146 | userdata="fr info" /> | ||
1147 | <on_check function="Advanced.CheckFeature" | ||
1148 | userdata="fr info" /> | ||
1149 | </menu_item_check> | ||
1150 | <menu_item_check name="Flexible Objects" | ||
1151 | label="Flexible Objects" | ||
1152 | shortcut="control|alt|F9"> | ||
1153 | <on_click function="Advanced.ToggleFeature" | ||
1154 | userdata="flexible" /> | ||
1155 | <on_check function="Advanced.CheckFeature" | ||
1156 | userdata="flexible" /> | ||
1157 | </menu_item_check> | ||
1158 | </menu> | ||
1159 | |||
1160 | |||
1161 | <!-- INFO DISPLAYS --> | ||
1162 | <menu name="Info Displays" drop_shadow="true" | ||
1163 | opaque="true" tear_off="true"> | ||
1164 | <menu_item_check name="Verify" label="Verify"> | ||
1165 | <on_click function="Advanced.ToggleInfoDisplay" | ||
1166 | userdata="verify" /> | ||
1167 | <on_check function="Advanced.CheckInfoDisplay" | ||
1168 | userdata="verify" /> | ||
1169 | </menu_item_check> | ||
1170 | <menu_item_check name="BBoxes" label="BBoxes"> | ||
1171 | <on_click function="Advanced.ToggleInfoDisplay" | ||
1172 | userdata="bboxes" /> | ||
1173 | <on_check function="Advanced.CheckInfoDisplay" | ||
1174 | userdata="bboxes" /> | ||
1175 | </menu_item_check> | ||
1176 | <menu_item_check name="Points" label="Points"> | ||
1177 | <on_click function="Advanced.ToggleInfoDisplay" | ||
1178 | userdata="points" /> | ||
1179 | <on_check function="Advanced.CheckInfoDisplay" | ||
1180 | userdata="points" /> | ||
1181 | </menu_item_check> | ||
1182 | <menu_item_check name="Octree" label="Octree"> | ||
1183 | <on_click function="Advanced.ToggleInfoDisplay" | ||
1184 | userdata="octree" /> | ||
1185 | <on_check function="Advanced.CheckInfoDisplay" | ||
1186 | userdata="octree" /> | ||
1187 | </menu_item_check> | ||
1188 | <menu_item_check name="Occlusion" label="Occlusion"> | ||
1189 | <on_click function="Advanced.ToggleInfoDisplay" | ||
1190 | userdata="occlusion" /> | ||
1191 | <on_check function="Advanced.CheckInfoDisplay" | ||
1192 | userdata="occlusion" /> | ||
1193 | </menu_item_check> | ||
1194 | <menu_item_check name="Render Batches" | ||
1195 | label="Render Batches"> | ||
1196 | <on_click function="Advanced.ToggleInfoDisplay" | ||
1197 | userdata="render batches" /> | ||
1198 | <on_check function="Advanced.CheckInfoDisplay" | ||
1199 | userdata="render batches" /> | ||
1200 | </menu_item_check> | ||
1201 | <menu_item_check name="Animated Textures" | ||
1202 | label="Animated Textures"> | ||
1203 | <on_click function="Advanced.ToggleInfoDisplay" | ||
1204 | userdata="texture anim" /> | ||
1205 | <on_check function="Advanced.CheckInfoDisplay" | ||
1206 | userdata="texture anim" /> | ||
1207 | </menu_item_check> | ||
1208 | <menu_item_check name="Texture Priority" | ||
1209 | label="Texture Priority"> | ||
1210 | <on_click function="Advanced.ToggleInfoDisplay" | ||
1211 | userdata="texture priority" /> | ||
1212 | <on_check function="Advanced.CheckInfoDisplay" | ||
1213 | userdata="texture priority" /> | ||
1214 | </menu_item_check> | ||
1215 | <menu_item_check name="Avatar Rendering Cost" | ||
1216 | label="Avatar Rendering Cost"> | ||
1217 | <on_click function="Advanced.ToggleInfoDisplay" | ||
1218 | userdata="shame" /> | ||
1219 | <on_check function="Advanced.CheckInfoDisplay" | ||
1220 | userdata="shame" /> | ||
1221 | </menu_item_check> | ||
1222 | <menu_item_check name="Texture Area (sqrt(A))" | ||
1223 | label="Texture Area (sqrt(A))"> | ||
1224 | <on_click function="Advanced.ToggleInfoDisplay" | ||
1225 | userdata="texture area" /> | ||
1226 | <on_check function="Advanced.CheckInfoDisplay" | ||
1227 | userdata="texture area" /> | ||
1228 | </menu_item_check> | ||
1229 | <menu_item_check name="Face Area (sqrt(A))" | ||
1230 | label="Face Area (sqrt(A))"> | ||
1231 | <on_click function="Advanced.ToggleInfoDisplay" | ||
1232 | userdata="face area" /> | ||
1233 | <on_check function="Advanced.CheckInfoDisplay" | ||
1234 | userdata="face area" /> | ||
1235 | </menu_item_check> | ||
1236 | <menu_item_check name="Pick Render" label="Pick Render"> | ||
1237 | <on_click function="Advanced.ToggleInfoDisplay" | ||
1238 | userdata="picking" /> | ||
1239 | <on_check function="Advanced.CheckInfoDisplay" | ||
1240 | userdata="picking" /> | ||
1241 | </menu_item_check> | ||
1242 | <menu_item_check name="Lights" label="Lights"> | ||
1243 | <on_click function="Advanced.ToggleInfoDisplay" | ||
1244 | userdata="lights" /> | ||
1245 | <on_check function="Advanced.CheckInfoDisplay" | ||
1246 | userdata="lights" /> | ||
1247 | </menu_item_check> | ||
1248 | <menu_item_check name="Particles" label="Particles"> | ||
1249 | <on_click function="Advanced.ToggleInfoDisplay" | ||
1250 | userdata="particles" /> | ||
1251 | <on_check function="Advanced.CheckInfoDisplay" | ||
1252 | userdata="particles" /> | ||
1253 | </menu_item_check> | ||
1254 | <menu_item_check name="Composition" | ||
1255 | label="Composition"> | ||
1256 | <on_click function="Advanced.ToggleInfoDisplay" | ||
1257 | userdata="composition" /> | ||
1258 | <on_check function="Advanced.CheckInfoDisplay" | ||
1259 | userdata="composition" /> | ||
1260 | </menu_item_check> | ||
1261 | <menu_item_check name="Glow" label="Glow"> | ||
1262 | <on_click function="Advanced.ToggleInfoDisplay" | ||
1263 | userdata="glow" /> | ||
1264 | <on_check function="Advanced.CheckInfoDisplay" | ||
1265 | userdata="glow" /> | ||
1266 | </menu_item_check> | ||
1267 | <menu_item_check name="Show Depth Buffer" | ||
1268 | label="Show Depth Buffer"> | ||
1269 | <on_click function="ToggleControl" | ||
1270 | userdata="ShowDepthBuffer" /> | ||
1271 | <on_check control="ShowDepthBuffer" /> | ||
1272 | </menu_item_check> | ||
1273 | <menu_item_check name="Show Select Buffer" | ||
1274 | label="Show Select Buffer"> | ||
1275 | <on_click function="Advanced.ToggleSelectBuffer" | ||
1276 | userdata="" /> | ||
1277 | <on_check function="Advanced.CheckSelectBuffer" | ||
1278 | userdata="" /> | ||
1279 | </menu_item_check> | ||
1280 | <menu_item_check name="Vectorize Perf Test" | ||
1281 | label="Vectorize Perf Test"> | ||
1282 | <on_click function="ToggleControl" | ||
1283 | userdata="VectorizePerfTest" /> | ||
1284 | <on_check control="VectorizePerfTest" /> | ||
1285 | </menu_item_check> | ||
1286 | </menu> | ||
1287 | |||
1288 | |||
1289 | <!-- RENDER TESTS --> | ||
1290 | <menu name="Render Tests" drop_shadow="true" | ||
1291 | opaque="true" tear_off="true"> | ||
1292 | <menu_item_check name="Camera Offset" label="Camera Offset"> | ||
1293 | <on_click function="ToggleControl" | ||
1294 | userdata="CameraOffset" /> | ||
1295 | <on_check control="CameraOffset" /> | ||
1296 | </menu_item_check> | ||
1297 | <menu_item_check name="Randomize Framerate" | ||
1298 | label="Randomize Framerate"> | ||
1299 | <on_click function="Advanced.ToggleRandomizeFramerate" | ||
1300 | userdata="" /> | ||
1301 | <on_check function="Advanced.CheckRandomizeFramerate" | ||
1302 | userdata="" /> | ||
1303 | </menu_item_check> | ||
1304 | <menu_item_check name="Periodic Slow Frame" | ||
1305 | label="Periodic Slow Frame"> | ||
1306 | <on_click function="Advanced.TogglePeriodicSlowFrame" | ||
1307 | userdata="" /> | ||
1308 | <on_check function="Advanced.CheckPeriodicSlowFrame" | ||
1309 | userdata="" /> | ||
1310 | </menu_item_check> | ||
1311 | <menu_item_check name="Frame Test" label="Frame Test"> | ||
1312 | <on_click function="Advanced.ToggleFrameTest" | ||
1313 | userdata="" /> | ||
1314 | <on_check function="Advanced.CheckFrameTest" | ||
1315 | userdata="" /> | ||
1316 | </menu_item_check> | ||
1317 | </menu> | ||
1318 | |||
1319 | |||
1320 | <menu_item_separator /> | ||
1321 | |||
1322 | <menu_item_check name="Axes" label="Axes"> | ||
1323 | <on_click function="ToggleControl" userdata="ShowAxes" /> | ||
1324 | <on_check control="ShowAxes" /> | ||
1325 | </menu_item_check> | ||
1326 | |||
1327 | <menu_item_separator /> | ||
1328 | |||
1329 | <menu_item_check name="Hide Selected" label="Hide Selected"> | ||
1330 | <on_click function="Advanced.ToggleHideSelectedObjects" | ||
1331 | userdata="" /> | ||
1332 | <on_check function="Advanced.CheckHideSelectedObjects" | ||
1333 | userdata="" /> | ||
1334 | </menu_item_check> | ||
1335 | |||
1336 | <menu_item_separator /> | ||
1337 | |||
1338 | <menu_item_check name="Tangent Basis" label="Tangent Basis"> | ||
1339 | <on_click function="ToggleControl" | ||
1340 | userdata="ShowTangentBasis" /> | ||
1341 | <on_check control="ShowTangentBasis" /> | ||
1342 | </menu_item_check> | ||
1343 | <menu_item_call name="Selected Texture Info" | ||
1344 | label="Selected Texture Info" | ||
1345 | shortcut="control|alt|shift|T"> | ||
1346 | <on_click function="Advanced.SelectedTextureInfo" | ||
1347 | userdata="" /> | ||
1348 | </menu_item_call> | ||
1349 | <menu_item_check name="Wireframe" label="Wireframe" | ||
1350 | shortcut="control|shift|R"> | ||
1351 | <on_click function="Advanced.ToggleWireframe" userdata="" /> | ||
1352 | <on_check function="Advanced.CheckWireframe" userdata="" /> | ||
1353 | </menu_item_check> | ||
1354 | <menu_item_check name="Object-Object Occlusion" | ||
1355 | label="Object-Object Occlusion" | ||
1356 | shortcut="control|shift|O"> | ||
1357 | <on_click function="ToggleControl" | ||
1358 | userdata="UseOcclusion" /> | ||
1359 | <on_check control="UseOcclusion" /> | ||
1360 | </menu_item_check> | ||
1361 | <menu_item_check name="Debug GL" label="Debug GL"> | ||
1362 | <on_click function="ToggleControl" | ||
1363 | userdata="RenderDebugGL" /> | ||
1364 | <on_check control="RenderDebugGL" /> | ||
1365 | </menu_item_check> | ||
1366 | <menu_item_check name="Debug Pipeline" label="Debug Pipeline"> | ||
1367 | <on_click function="ToggleControl" | ||
1368 | userdata="RenderDebugPipeline" /> | ||
1369 | <on_check control="RenderDebugPipeline" /> | ||
1370 | </menu_item_check> | ||
1371 | <menu_item_check name="Fast Alpha" label="Fast Alpha"> | ||
1372 | <on_click function="ToggleControl" | ||
1373 | userdata="RenderFastAlpha" /> | ||
1374 | <on_check control="RenderFastAlpha" /> | ||
1375 | </menu_item_check> | ||
1376 | <menu_item_check name="Animate Textures" | ||
1377 | label="Animate Textures"> | ||
1378 | <on_click function="ToggleControl" | ||
1379 | userdata="AnimateTextures" /> | ||
1380 | <on_check control="AnimateTextures" /> | ||
1381 | </menu_item_check> | ||
1382 | <menu_item_check name="Disable Textures" | ||
1383 | label="Disable Textures"> | ||
1384 | <on_click function="Advanced.ToggleDisableTextures" | ||
1385 | userdata="" /> | ||
1386 | <on_check function="Advanced.CheckDisableTextures" | ||
1387 | userdata="" /> | ||
1388 | </menu_item_check> | ||
1389 | <!-- Disabled because it doesn't seem to be used anymore. | ||
1390 | <menu_item_check name="HTTP Get Textures" | ||
1391 | label="HTTP Get Textures"> | ||
1392 | <on_click function="ToggleControl" | ||
1393 | userdata="ImagePipelineUseHTTP" /> | ||
1394 | <on_check control="ImagePipelineUseHTTP" /> | ||
1395 | </menu_item_check> | ||
1396 | --> | ||
1397 | <menu_item_check name="Run Multiple Threads" | ||
1398 | label="Run Multiple Threads"> | ||
1399 | <on_click function="ToggleControl" | ||
1400 | userdata="RunMultipleThreads" /> | ||
1401 | <on_check control="RunMultipleThreads" /> | ||
1402 | </menu_item_check> | ||
1403 | <!-- Disabled because it doesn't work very well? | ||
1404 | <menu_item_check name="Dynamic Reflections" | ||
1405 | label="Dynamic Reflections"> | ||
1406 | <on_click function="ToggleControl" | ||
1407 | userdata="RenderDynamicReflections" /> | ||
1408 | <on_check control="RenderDynamicReflections" /> | ||
1409 | </menu_item_check> | ||
1410 | --> | ||
1411 | <menu_item_check name="Cheesy Beacon" label="Cheesy Beacon"> | ||
1412 | <on_click function="ToggleControl" | ||
1413 | userdata="CheesyBeacon" /> | ||
1414 | <on_check control="CheesyBeacon" /> | ||
1415 | </menu_item_check> | ||
1416 | </menu> | ||
1417 | |||
1418 | |||
1419 | |||
1420 | <!-- WORLD --> | ||
1421 | |||
1422 | <menu name="World" drop_shadow="true" | ||
1423 | opaque="true" tear_off="true"> | ||
1424 | <!-- Disabled because you can't do this in Windlight. | ||
1425 | <menu_item_check name="Mouse Moves Sun" | ||
1426 | label="Mouse Moves Sun" | ||
1427 | shortcut="control|alt|M"> | ||
1428 | <on_click function="ToggleControl" userdata="MouseSun" /> | ||
1429 | <on_check control="MouseSun" /> | ||
1430 | </menu_item_check> | ||
1431 | --> | ||
1432 | <menu_item_check name="Sim Sun Override" | ||
1433 | label="Sim Sun Override"> | ||
1434 | <on_click function="ToggleControl" | ||
1435 | userdata="SkyOverrideSimSunPosition" /> | ||
1436 | <on_check control="SkyOverrideSimSunPosition" /> | ||
1437 | </menu_item_check> | ||
1438 | <menu_item_call name="Dump Scripted Camera" | ||
1439 | label="Dump Scripted Camera"> | ||
1440 | <on_click function="Advanced.DumpScriptedCamera" | ||
1441 | userdata="" /> | ||
1442 | </menu_item_call> | ||
1443 | <menu_item_check name="Fixed Weather" label="Fixed Weather"> | ||
1444 | <on_click function="ToggleControl" | ||
1445 | userdata="FixedWeather" /> | ||
1446 | <on_check control="FixedWeather" /> | ||
1447 | </menu_item_check> | ||
1448 | <menu_item_call name="Dump Region Object Cache" | ||
1449 | label="Dump Region Object Cache"> | ||
1450 | <on_click function="Advanced.DumpRegionObjectCache" | ||
1451 | userdata="" /> | ||
1452 | </menu_item_call> | ||
1453 | </menu> | ||
1454 | |||
1455 | |||
1456 | |||
1457 | <!-- UI --> | ||
1458 | |||
1459 | <menu name="UI" drop_shadow="true" | ||
1460 | opaque="true" tear_off="true"> | ||
1461 | |||
1462 | <menu_item_call name="SLURL Test" label="SLURL Test"> | ||
1463 | <on_click function="Advanced.SLURLTest" userdata="" /> | ||
1464 | </menu_item_call> | ||
1465 | |||
1466 | <!-- | ||
1467 | *TODO: Make this a proper toggle item with the "X" indicator. | ||
1468 | 1. Add a "Advanced.CheckEditableUI" function in llviewermenu.cpp. | ||
1469 | 2. Change this surrounding menu_item_call to a menu_item_check. | ||
1470 | 3. Uncomment the "on_check" line below. | ||
1471 | --> | ||
1472 | <menu_item_call name="Editable UI" label="Editable UI"> | ||
1473 | <on_click function="Advanced.ToggleEditableUI" userdata="" /> | ||
1474 | <!-- | ||
1475 | <on_check function="Advanced.CheckEditableUI" userdata="" /> | ||
1476 | --> | ||
1477 | </menu_item_call> | ||
1478 | |||
1479 | <menu_item_check name="Async Keystrokes" | ||
1480 | label="Async Keystrokes"> | ||
1481 | <on_click function="Advanced.ToggleAsyncKeystrokes" | ||
1482 | userdata="" /> | ||
1483 | <on_check function="Advanced.CheckAsyncKeystrokes" | ||
1484 | userdata="" /> | ||
1485 | </menu_item_check> | ||
1486 | <menu_item_call name="Dump SelectMgr" label="Dump SelectMgr"> | ||
1487 | <on_click function="Advanced.DumpSelectMgr" userdata="" /> | ||
1488 | </menu_item_call> | ||
1489 | <menu_item_call name="Dump Inventory" label="Dump Inventory"> | ||
1490 | <on_click function="Advanced.DumpInventory" userdata="" /> | ||
1491 | </menu_item_call> | ||
1492 | <menu_item_call name="Dump Focus Holder" | ||
1493 | label="Dump Focus Holder" | ||
1494 | shortcut="control|alt|F"> | ||
1495 | <on_click function="Advanced.DumpFocusHolder" userdata="" /> | ||
1496 | </menu_item_call> | ||
1497 | <menu_item_call name="Print Selected Object Info" | ||
1498 | label="Print Selected Object Info" | ||
1499 | shortcut="control|shift|P"> | ||
1500 | <on_click function="Advanced.PrintSelectedObjectInfo" | ||
1501 | userdata="" /> | ||
1502 | </menu_item_call> | ||
1503 | <menu_item_call name="Print Agent Info" | ||
1504 | label="Print Agent Info" shortcut="shift|P"> | ||
1505 | <on_click function="Advanced.PrintAgentInfo" userdata="" /> | ||
1506 | </menu_item_call> | ||
1507 | <menu_item_call name="Memory Stats" label="Memory Stats" | ||
1508 | shortcut="control|alt|shift|M"> | ||
1509 | <on_click function="Advanced.PrintTextureMemoryStats" | ||
1510 | userdata="" /> | ||
1511 | </menu_item_call> | ||
1512 | <menu_item_check name="Double-Click Auto-Pilot" | ||
1513 | label="Double-Click Auto-Pilot"> | ||
1514 | <on_click function="ToggleControl" | ||
1515 | userdata="DoubleClickAutoPilot" /> | ||
1516 | <on_check control="DoubleClickAutoPilot" /> | ||
1517 | </menu_item_check> | ||
1518 | <menu_item_separator /> | ||
1519 | <menu_item_check name="Debug SelectMgr" | ||
1520 | label="Debug SelectMgr"> | ||
1521 | <on_click function="Advanced.ToggleDebugSelectMgr" | ||
1522 | userdata="" /> | ||
1523 | <on_check function="Advanced.CheckDebugSelectMgr" | ||
1524 | userdata="" /> | ||
1525 | </menu_item_check> | ||
1526 | <menu_item_check name="Debug Clicks" | ||
1527 | label="Debug Click"> | ||
1528 | <on_click function="Advanced.ToggleDebugClicks" | ||
1529 | userdata="" /> | ||
1530 | <on_check function="Advanced.CheckDebugClicks" | ||
1531 | userdata="" /> | ||
1532 | </menu_item_check> | ||
1533 | <menu_item_check name="Debug Views" | ||
1534 | label="Debug Views"> | ||
1535 | <on_click function="Advanced.ToggleDebugViews" | ||
1536 | userdata="" /> | ||
1537 | <on_check function="Advanced.CheckDebugViews" | ||
1538 | userdata="" /> | ||
1539 | </menu_item_check> | ||
1540 | <menu_item_check name="Show Name Tooltips" | ||
1541 | label="Show Name Tooltips"> | ||
1542 | <on_click function="Advanced.ToggleXUINameTooltips" | ||
1543 | userdata="" /> | ||
1544 | <on_check function="Advanced.CheckXUINameTooltips" | ||
1545 | userdata="" /> | ||
1546 | </menu_item_check> | ||
1547 | <menu_item_check name="Debug Mouse Events" | ||
1548 | label="Debug Mouse Events"> | ||
1549 | <on_click function="Advanced.ToggleDebugMouseEvents" | ||
1550 | userdata="" /> | ||
1551 | <on_check function="Advanced.CheckDebugMouseEvents" | ||
1552 | userdata="" /> | ||
1553 | </menu_item_check> | ||
1554 | <menu_item_check name="Debug Keys" | ||
1555 | label="Debug Keys"> | ||
1556 | <on_click function="Advanced.ToggleDebugKeys" | ||
1557 | userdata="" /> | ||
1558 | <on_check function="Advanced.CheckDebugKeys" | ||
1559 | userdata="" /> | ||
1560 | </menu_item_check> | ||
1561 | <menu_item_check name="Debug WindowProc" | ||
1562 | label="Debug WindowProc"> | ||
1563 | <on_click function="Advanced.ToggleDebugWindowProc" | ||
1564 | userdata="" /> | ||
1565 | <on_check function="Advanced.CheckDebugWindowProc" | ||
1566 | userdata="" /> | ||
1567 | </menu_item_check> | ||
1568 | <menu_item_check name="Debug Text Editor Tips" | ||
1569 | label="Debug Text Editor Tips"> | ||
1570 | <on_click function="Advanced.ToggleDebugTextEditorTips" | ||
1571 | userdata="" /> | ||
1572 | <on_check function="Advanced.CheckDebugTextEditorTips" | ||
1573 | userdata="" /> | ||
1574 | </menu_item_check> | ||
1575 | <menu_item_separator /> | ||
1576 | <menu_item_check name="Show Time" | ||
1577 | label="Show Time"> | ||
1578 | <on_click function="ToggleControl" | ||
1579 | userdata="DebugShowTime" /> | ||
1580 | <on_check control="DebugShowTime" /> | ||
1581 | </menu_item_check> | ||
1582 | <menu_item_check name="Show Render Info" | ||
1583 | label="Show Render Info"> | ||
1584 | <on_click function="ToggleControl" | ||
1585 | userdata="DebugShowRenderInfo" /> | ||
1586 | <on_check control="DebugShowRenderInfo" /> | ||
1587 | </menu_item_check> | ||
1588 | <menu_item_check name="Show Color Under Cursor" | ||
1589 | label="Show Color Under Cursor"> | ||
1590 | <on_click function="ToggleControl" | ||
1591 | userdata="DebugShowColor" /> | ||
1592 | <on_check control="DebugShowColor" /> | ||
1593 | </menu_item_check> | ||
1594 | </menu> | ||
1595 | |||
1596 | |||
1597 | |||
1598 | <!-- XUI --> | ||
1599 | |||
1600 | <menu name="XUI" drop_shadow="true" | ||
1601 | opaque="true" tear_off="true"> | ||
1602 | <menu_item_call name="Floater Test..." | ||
1603 | label="Floater Test..."> | ||
1604 | <on_click function="Advanced.ShowFloaterTest" | ||
1605 | userdata="" /> | ||
1606 | </menu_item_call> | ||
1607 | <menu_item_call name="Export Menus to XML..." | ||
1608 | label="Export Menus to XML..."> | ||
1609 | <on_click function="Advanced.ExportMenusToXML" | ||
1610 | userdata="" /> | ||
1611 | </menu_item_call> | ||
1612 | <menu_item_call name="Edit UI..." | ||
1613 | label="Edit UI..."> | ||
1614 | <on_click function="Advanced.EditUI" | ||
1615 | userdata="" /> | ||
1616 | </menu_item_call> | ||
1617 | <menu_item_call name="Load from XML..." | ||
1618 | label="Load from XML..."> | ||
1619 | <on_click function="Advanced.LoadUIFromXML" | ||
1620 | userdata="" /> | ||
1621 | </menu_item_call> | ||
1622 | <menu_item_call name="Save to XML..." | ||
1623 | label="Save to XML..."> | ||
1624 | <on_click function="Advanced.SaveUIToXML" | ||
1625 | userdata="" /> | ||
1626 | </menu_item_call> | ||
1627 | <menu_item_check name="Show XUI Names" | ||
1628 | label="Show XUI Names"> | ||
1629 | <on_click function="Advanced.ToggleXUINames" | ||
1630 | userdata="" /> | ||
1631 | <on_check function="Advanced.CheckXUINames" | ||
1632 | userdata="" /> | ||
1633 | </menu_item_check> | ||
1634 | </menu> | ||
1635 | |||
1636 | |||
1637 | |||
1638 | <!-- CHARACTER --> | ||
1639 | |||
1640 | <menu name="Character" drop_shadow="true" | ||
1641 | opaque="true" tear_off="true"> | ||
1642 | |||
1643 | <menu name="Grab Baked Texture" drop_shadow="true" | ||
1644 | opaque="true" tear_off="true"> | ||
1645 | |||
1646 | <menu_item_call name="Iris" enabled="false" | ||
1647 | label="Iris"> | ||
1648 | <on_click function="Advanced.GrabBakedTexture" | ||
1649 | userdata="eyes" /> | ||
1650 | <on_enable function="Advanced.EnableGrabBakedTexture" | ||
1651 | userdata="eyes" /> | ||
1652 | </menu_item_call> | ||
1653 | <menu_item_call name="Head" enabled="false" | ||
1654 | label="Head"> | ||
1655 | <on_click function="Advanced.GrabBakedTexture" | ||
1656 | userdata="head" /> | ||
1657 | <on_enable function="Advanced.EnableGrabBakedTexture" | ||
1658 | userdata="head" /> | ||
1659 | </menu_item_call> | ||
1660 | <menu_item_call name="Upper Body" enabled="false" | ||
1661 | label="Upper Body"> | ||
1662 | <on_click function="Advanced.GrabBakedTexture" | ||
1663 | userdata="upper" /> | ||
1664 | <on_enable function="Advanced.EnableGrabBakedTexture" | ||
1665 | userdata="upper" /> | ||
1666 | </menu_item_call> | ||
1667 | <menu_item_call name="Lower Body" enabled="false" | ||
1668 | label="Lower Body"> | ||
1669 | <on_click function="Advanced.GrabBakedTexture" | ||
1670 | userdata="lower" /> | ||
1671 | <on_enable function="Advanced.EnableGrabBakedTexture" | ||
1672 | userdata="lower" /> | ||
1673 | </menu_item_call> | ||
1674 | <menu_item_call name="Skirt" enabled="false" | ||
1675 | label="Skirt"> | ||
1676 | <on_click function="Advanced.GrabBakedTexture" | ||
1677 | userdata="skirt" /> | ||
1678 | <on_enable function="Advanced.EnableGrabBakedTexture" | ||
1679 | userdata="skirt" /> | ||
1680 | </menu_item_call> | ||
1681 | </menu> | ||
1682 | |||
1683 | <!-- CHARACTER TESTS --> | ||
1684 | <menu name="Character Tests" drop_shadow="true" | ||
1685 | opaque="true" tear_off="true"> | ||
1686 | <menu_item_check name="Go Away/AFK When Idle" | ||
1687 | label="Go Away/AFK When Idle"> | ||
1688 | <on_click function="Advanced.ToggleAllowIdleAFK" | ||
1689 | userdata="" /> | ||
1690 | <on_check function="Advanced.CheckAllowIdleAFK" | ||
1691 | userdata="" /> | ||
1692 | </menu_item_check> | ||
1693 | <menu_item_call name="Appearance To XML" | ||
1694 | label="Appearance To XML"> | ||
1695 | <on_click function="Advanced.ToggleAppearanceToXML" | ||
1696 | userdata="" /> | ||
1697 | </menu_item_call> | ||
1698 | <menu_item_call name="Toggle Character Geometry" | ||
1699 | enabled="false" | ||
1700 | label="Toggle Character Geometry"> | ||
1701 | <on_click function="Advanced.ToggleCharacterGeometry" | ||
1702 | userdata="" /> | ||
1703 | <on_enable function="EnableGodCustomerService" | ||
1704 | userdata="" /> | ||
1705 | </menu_item_call> | ||
1706 | <menu_item_call name="Test Male" label="Test Male"> | ||
1707 | <on_click function="Advanced.TestMale" userdata="" /> | ||
1708 | </menu_item_call> | ||
1709 | <menu_item_call name="Test Female" label="Test Female"> | ||
1710 | <on_click function="Advanced.TestFemale" userdata="" /> | ||
1711 | </menu_item_call> | ||
1712 | <menu_item_call name="Toggle PG" label="Toggle PG"> | ||
1713 | <on_click function="Advanced.TogglePG" userdata="" /> | ||
1714 | </menu_item_call> | ||
1715 | <menu_item_check name="Allow Select Avatar" | ||
1716 | label="Allow Select Avatar"> | ||
1717 | <on_click function="Advanced.ToggleAllowSelectAvatar" | ||
1718 | userdata="" /> | ||
1719 | <on_check function="Advanced.CheckAllowSelectAvatar" | ||
1720 | userdata="" /> | ||
1721 | </menu_item_check> | ||
1722 | </menu> | ||
1723 | |||
1724 | <menu_item_check name="Enable Lip Sync (Beta)" | ||
1725 | label="Enable Lip Sync (Beta)"> | ||
1726 | <on_click function="ToggleControl" | ||
1727 | userdata="LipSyncEnabled" /> | ||
1728 | <on_check control="LipSyncEnabled" /> | ||
1729 | </menu_item_check> | ||
1730 | <menu_item_check name="Tap-Tap-Hold To Run" | ||
1731 | label="Tap-Tap-Hold To Run"> | ||
1732 | <on_click function="Advanced.ToggleAllowTapTapHoldRun" | ||
1733 | userdata="" /> | ||
1734 | <on_check function="Advanced.CheckAllowTapTapHoldRun" | ||
1735 | userdata="" /> | ||
1736 | </menu_item_check> | ||
1737 | <menu_item_call name="Force Params to Default" | ||
1738 | label="Force Params to Default"> | ||
1739 | <on_click function="Advanced.ForceParamsToDefault" | ||
1740 | userdata="" /> | ||
1741 | </menu_item_call> | ||
1742 | <menu_item_call name="Reload Vertex Shader" | ||
1743 | label="Reload Vertex Shader"> | ||
1744 | <on_click function="Advanced.ReloadVertexShader" | ||
1745 | userdata="" /> | ||
1746 | </menu_item_call> | ||
1747 | <menu_item_check label="Animation Info" | ||
1748 | name="Animation Info"> | ||
1749 | <on_click function="Advanced.ToggleAnimationInfo" | ||
1750 | userdata="" /> | ||
1751 | <on_check function="Advanced.CheckAnimationInfo" | ||
1752 | userdata="" /> | ||
1753 | </menu_item_check> | ||
1754 | |||
1755 | <!-- | ||
1756 | *TODO: Make this a proper toggle item with the "X" indicator. | ||
1757 | 1. Add a "Advanced.CheckSlowmotionAnimation" function in | ||
1758 | llviewermenu.cpp. | ||
1759 | 2. Change this surrounding menu_item_call to a menu_item_check. | ||
1760 | 3. Uncomment the "on_check" line below. | ||
1761 | --> | ||
1762 | <menu_item_call name="Slow Motion Animations" | ||
1763 | label="Slow Motion Animations"> | ||
1764 | <on_click function="Advanced.ToggleSlowMotionAnimations" | ||
1765 | userdata="" /> | ||
1766 | <!-- | ||
1767 | <on_check function="Advanced.CheckSlowMotionAnimations" | ||
1768 | userdata="" /> | ||
1769 | --> | ||
1770 | </menu_item_call> | ||
1771 | |||
1772 | <menu_item_check name="Show Look At" | ||
1773 | label="Show Look At"> | ||
1774 | <on_click function="Advanced.ToggleShowLookAt" | ||
1775 | userdata="" /> | ||
1776 | <on_check function="Advanced.CheckShowLookAt" | ||
1777 | userdata="" /> | ||
1778 | </menu_item_check> | ||
1779 | <menu_item_check name="Show Point At" | ||
1780 | label="Show Point At"> | ||
1781 | <on_click function="Advanced.ToggleShowPointAt" | ||
1782 | userdata="" /> | ||
1783 | <on_check function="Advanced.CheckShowPointAt" | ||
1784 | userdata="" /> | ||
1785 | </menu_item_check> | ||
1786 | <menu_item_check name="Debug Joint Updates" | ||
1787 | label="Debug Joint Updates"> | ||
1788 | <on_click function="Advanced.ToggleDebugJointUpdates" | ||
1789 | userdata="" /> | ||
1790 | <on_check function="Advanced.CheckDebugJointUpdates" | ||
1791 | userdata="" /> | ||
1792 | </menu_item_check> | ||
1793 | <menu_item_check name="Disable LOD" | ||
1794 | label="Disable LOD"> | ||
1795 | <on_click function="Advanced.ToggleDisableLOD" | ||
1796 | userdata="" /> | ||
1797 | <on_check function="Advanced.CheckDisableLOD" | ||
1798 | userdata="" /> | ||
1799 | </menu_item_check> | ||
1800 | <menu_item_check name="Debug Character Vis" | ||
1801 | label="Debug Character Vis"> | ||
1802 | <on_click function="Advanced.ToggleDebugCharacterVis" | ||
1803 | userdata="" /> | ||
1804 | <on_check function="Advanced.CheckDebugCharacterVis" | ||
1805 | userdata="" /> | ||
1806 | </menu_item_check> | ||
1807 | |||
1808 | <!-- Disabled. See DEV-14477 | ||
1809 | <menu_item_check name="Show Collision Plane" | ||
1810 | label="Show Collision Plane"> | ||
1811 | <on_click function="Advanced.ToggleShowCollisionPlane" | ||
1812 | userdata="" /> | ||
1813 | <on_check function="Advanced.CheckShowCollisionPlane" | ||
1814 | userdata="" /> | ||
1815 | </menu_item_check> | ||
1816 | --> | ||
1817 | |||
1818 | <menu_item_check name="Show Collision Skeleton" | ||
1819 | label="Show Collision Skeleton"> | ||
1820 | <on_click function="Advanced.ToggleShowCollisionSkeleton" | ||
1821 | userdata="" /> | ||
1822 | <on_check function="Advanced.CheckShowCollisionSkeleton" | ||
1823 | userdata="" /> | ||
1824 | </menu_item_check> | ||
1825 | <menu_item_check name="Display Agent Target" | ||
1826 | label="Display Agent Target"> | ||
1827 | <on_click function="Advanced.ToggleDisplayAgentTarget" | ||
1828 | userdata="" /> | ||
1829 | <on_check function="Advanced.CheckDisplayAgentTarget" | ||
1830 | userdata="" /> | ||
1831 | </menu_item_check> | ||
1832 | <menu_item_check name="Debug Rotation" | ||
1833 | label="Debug Rotation"> | ||
1834 | <on_click function="Advanced.ToggleDebugAvatarRotation" | ||
1835 | userdata="" /> | ||
1836 | <on_check function="Advanced.CheckDebugAvatarRotation" | ||
1837 | userdata="" /> | ||
1838 | </menu_item_check> | ||
1839 | <menu_item_call name="Dump Attachments" | ||
1840 | label="Dump Attachments"> | ||
1841 | <on_click function="Advanced.DumpAttachments" | ||
1842 | userdata="" /> | ||
1843 | </menu_item_call> | ||
1844 | <menu_item_call name="Rebake Textures" | ||
1845 | label="Rebake Textures" | ||
1846 | shortcut="control|alt|R"> | ||
1847 | <on_click function="Advanced.RebakeTextures" | ||
1848 | userdata="" /> | ||
1849 | </menu_item_call> | ||
1850 | </menu> | ||
1851 | |||
1852 | |||
1853 | |||
1854 | <!-- NETWORK --> | ||
1855 | |||
1856 | <menu name="Network" drop_shadow="true" | ||
1857 | opaque="true" tear_off="true"> | ||
1858 | <menu_item_call name="Enable Message Log" | ||
1859 | label="Enable Message Log"> | ||
1860 | <on_click function="Advanced.EnableMessageLog" | ||
1861 | userdata="" /> | ||
1862 | </menu_item_call> | ||
1863 | <menu_item_call name="Disable Message Log" | ||
1864 | label="Disable Message Log"> | ||
1865 | <on_click function="Advanced.DisableMessageLog" | ||
1866 | userdata="" /> | ||
1867 | </menu_item_call> | ||
1868 | <menu_item_separator /> | ||
1869 | <menu_item_check name="Velocity Interpolate Objects" | ||
1870 | label="Velocity Interpolate Objects"> | ||
1871 | <on_click function="ToggleControl" | ||
1872 | userdata="VelocityInterpolate" /> | ||
1873 | <on_check control="VelocityInterpolate" /> | ||
1874 | </menu_item_check> | ||
1875 | <menu_item_check name="Ping Interpolate Object Positions" | ||
1876 | label="Ping Interpolate Object Positions"> | ||
1877 | <on_click function="ToggleControl" | ||
1878 | userdata="PingInterpolate" /> | ||
1879 | <on_check control="PingInterpolate" /> | ||
1880 | </menu_item_check> | ||
1881 | <menu_item_separator /> | ||
1882 | <menu_item_call name="Drop a Packet" label="Drop a Packet" | ||
1883 | shortcut="control|alt|L"> | ||
1884 | <on_click function="Advanced.DropPacket" | ||
1885 | userdata="" /> | ||
1886 | </menu_item_call> | ||
1887 | </menu> | ||
1888 | |||
1889 | |||
1890 | |||
1891 | <!-- RECORDER --> | ||
1892 | |||
1893 | <menu name="Recorder" drop_shadow="true" | ||
1894 | opaque="true" tear_off="true"> | ||
1895 | <menu_item_check name="Full Session Logging" | ||
1896 | label="Full Session Logging"> | ||
1897 | <on_click function="ToggleControl" | ||
1898 | userdata="StatsSessionTrackFrameStats" /> | ||
1899 | <on_check control="StatsSessionTrackFrameStats" /> | ||
1900 | </menu_item_check> | ||
1901 | <menu_item_call name="Start Logging" label="Start Logging"> | ||
1902 | <on_click function="Advanced.FrameStatsLogging" | ||
1903 | userdata="start logging" /> | ||
1904 | </menu_item_call> | ||
1905 | <menu_item_call name="Stop Logging" label="Stop Logging"> | ||
1906 | <on_click function="Advanced.FrameStatsLogging" | ||
1907 | userdata="stop logging" /> | ||
1908 | </menu_item_call> | ||
1909 | <menu_item_call name="Log 10 Seconds" label="Log 10 Seconds"> | ||
1910 | <on_click function="Advanced.FrameStatsLogging" | ||
1911 | userdata="timed logging 10" /> | ||
1912 | </menu_item_call> | ||
1913 | <menu_item_call name="Log 30 Seconds" label="Log 30 Seconds"> | ||
1914 | <on_click function="Advanced.FrameStatsLogging" | ||
1915 | userdata="timed logging 30" /> | ||
1916 | </menu_item_call> | ||
1917 | <menu_item_call name="Log 60 Seconds" label="Log 60 Seconds"> | ||
1918 | <on_click function="Advanced.FrameStatsLogging" | ||
1919 | userdata="timed logging 60" /> | ||
1920 | </menu_item_call> | ||
1921 | |||
1922 | <menu_item_separator /> | ||
1923 | |||
1924 | <menu_item_call name="Start Playback" label="Start Playback"> | ||
1925 | <on_click function="Advanced.AgentPilot" | ||
1926 | userdata="start playback" /> | ||
1927 | </menu_item_call> | ||
1928 | <menu_item_call name="Stop Playback" label="Stop Playback"> | ||
1929 | <on_click function="Advanced.AgentPilot" | ||
1930 | userdata="stop playback" /> | ||
1931 | </menu_item_call> | ||
1932 | <menu_item_check name="Loop Playback" label="Loop Playback"> | ||
1933 | <on_click function="Advanced.ToggleAgentPilotLoop" | ||
1934 | userdata="" /> | ||
1935 | <on_check function="Advanced.CheckAgentPilotLoop" | ||
1936 | userdata="" /> | ||
1937 | </menu_item_check> | ||
1938 | <menu_item_call name="Start Record" label="Start Record"> | ||
1939 | <on_click function="Advanced.AgentPilot" | ||
1940 | userdata="start record" /> | ||
1941 | </menu_item_call> | ||
1942 | <menu_item_call name="Stop Record" label="Stop Record"> | ||
1943 | <on_click function="Advanced.AgentPilot" | ||
1944 | userdata="stop record" /> | ||
1945 | </menu_item_call> | ||
1946 | </menu> | ||
1947 | |||
1948 | |||
1949 | <menu_item_separator /> | ||
1950 | |||
1951 | |||
1952 | <menu_item_check name="Show Updates" label="Show Updates" | ||
1953 | shortcut="control|alt|shift|U"> | ||
1954 | <on_click function="Advanced.ToggleShowObjectUpdates" | ||
1955 | userdata="" /> | ||
1956 | <on_check function="Advanced.CheckShowObjectUpdates" | ||
1957 | userdata="" /> | ||
1958 | </menu_item_check> | ||
1959 | |||
1960 | <menu_item_separator /> | ||
1961 | |||
1962 | <menu_item_call name="Compress Image..." | ||
1963 | label="Compress Image..."> | ||
1964 | <on_click function="Advanced.CompressImage" | ||
1965 | userdata="" /> | ||
1966 | </menu_item_call> | ||
1967 | <menu_item_check name="Limit Select Distance" | ||
1968 | label="Limit Select Distance"> | ||
1969 | <on_click function="ToggleControl" | ||
1970 | userdata="LimitSelectDistance" /> | ||
1971 | <on_check control="LimitSelectDistance" /> | ||
1972 | </menu_item_check> | ||
1973 | <menu_item_check name="Disable Camera Constraints" | ||
1974 | label="Disable Camera Constraints"> | ||
1975 | <on_click function="ToggleControl" | ||
1976 | userdata="DisableCameraConstraints" /> | ||
1977 | <on_check control="DisableCameraConstraints" /> | ||
1978 | </menu_item_check> | ||
1979 | <menu_item_check name="Mouse Smoothing" | ||
1980 | label="Mouse Smoothing"> | ||
1981 | <on_click function="ToggleControl" | ||
1982 | userdata="MouseSmooth" /> | ||
1983 | <on_check control="MouseSmooth" /> | ||
1984 | </menu_item_check> | ||
1985 | |||
1986 | <menu_item_separator /> | ||
1987 | |||
1988 | <menu_item_check name="Console Window" | ||
1989 | label="Console Window"> | ||
1990 | <on_click function="ToggleControl" | ||
1991 | userdata="ShowConsoleWindow" /> | ||
1992 | <on_check control="ShowConsoleWindow" /> | ||
1993 | </menu_item_check> | ||
1994 | <menu_item_check name="Output Debug Minidump" | ||
1995 | label="Output Debug Minidump"> | ||
1996 | <on_click function="ToggleControl" | ||
1997 | userdata="SaveMiniDump" /> | ||
1998 | <on_check control="SaveMiniDump" /> | ||
1999 | </menu_item_check> | ||
2000 | <menu_item_check name="Clothing..." | ||
2001 | label="Clothing..."> | ||
2002 | <on_click function="Advanced.ToggleClothingFloater" | ||
2003 | userdata="" /> | ||
2004 | </menu_item_check> | ||
2005 | <menu_item_call name="Debug Settings" | ||
2006 | label="Debug Settings"> | ||
2007 | <on_click function="Advanced.ShowDebugSettings" | ||
2008 | userdata="" /> | ||
2009 | </menu_item_call> | ||
2010 | <menu_item_check name="View Admin Options" | ||
2011 | label="View Admin Options" | ||
2012 | shortcut="control|alt|V"> | ||
2013 | <on_click function="Advanced.ToggleViewAdminOptions" | ||
2014 | userdata="" /> | ||
2015 | <on_check function="Advanced.CheckViewAdminOptions" | ||
2016 | userdata="" /> | ||
2017 | </menu_item_check> | ||
2018 | <menu_item_call name="Request Admin Status" | ||
2019 | label="Request Admin Status" | ||
2020 | shortcut="control|alt|G"> | ||
2021 | <on_click function="Advanced.RequestAdminStatus" | ||
2022 | userdata="" /> | ||
2023 | </menu_item_call> | ||
2024 | <menu_item_call name="Leave Admin Status" | ||
2025 | label="Leave Admin Status" | ||
2026 | shortcut="control|alt|shift|G"> | ||
2027 | <on_click function="Advanced.LeaveAdminStatus" | ||
2028 | userdata="" /> | ||
2029 | </menu_item_call> | ||
2030 | |||
2031 | </menu> | ||
2032 | |||
856 | </menu_bar> | 2033 | </menu_bar> |