diff options
27 files changed, 5906 insertions, 1021 deletions
diff --git a/CONTRIBUTE.txt b/CONTRIBUTE.txt new file mode 100644 index 0000000..ece4c73 --- /dev/null +++ b/CONTRIBUTE.txt | |||
@@ -0,0 +1,104 @@ | |||
1 | |||
2 | |||
3 | HOW YOU CAN CONTRIBUTE | ||
4 | |||
5 | |||
6 | Imprudence isn't just a project for programmers. No matter your | ||
7 | skills (or lack thereof) or how much time you can commit, there's | ||
8 | a way for you to be a part of it. | ||
9 | |||
10 | |||
11 | EVERYBODY AND THEIR GRANDMAS | ||
12 | |||
13 | Here are some good ways anybody can help out: | ||
14 | |||
15 | * Let us know what you think needs to be improved about the SL | ||
16 | Viewer. | ||
17 | |||
18 | * Participate in discussions on the forums or mailing list. | ||
19 | (Visit ImprudenceViewer.org for links to both of those.) | ||
20 | |||
21 | * Try out the Imprudence Viewer (when it's released) and give | ||
22 | feedback about it. | ||
23 | |||
24 | * Watch a friend, family member, or co-worker to try SL for the | ||
25 | first time, and take notes about the things they find difficult | ||
26 | or confusing. | ||
27 | |||
28 | * Blog about the latest Imprudence news and developments (either | ||
29 | on the ImprudenceViewer.org blog or your own). | ||
30 | |||
31 | * Help organize and coordinate other volunteers to keep things | ||
32 | running smoothly. | ||
33 | |||
34 | * Tell a friend and get them involved too! | ||
35 | |||
36 | |||
37 | ARTISTS, DESIGNERS, AND UI FREAKS | ||
38 | |||
39 | If you happen to have some graphics skill or an interest in User | ||
40 | Interface design, here are some things you could do: | ||
41 | |||
42 | * Work with users to turn their ideas into something people can | ||
43 | look at. | ||
44 | |||
45 | * Make a sketch or Flash mock-up of how some part of the UI | ||
46 | should behave, look, or be organized. | ||
47 | |||
48 | * Offer suggestions and constructive criticism about other | ||
49 | people's designs. | ||
50 | |||
51 | * Create or improve a color scheme or skin for the Viewer. | ||
52 | |||
53 | * Paint some graphics or icons for a UI-in-progress. | ||
54 | |||
55 | * Hook up with a programmer and turn your design into a real, | ||
56 | working interface! | ||
57 | |||
58 | |||
59 | CODE MONKEYS AND TEKKIE-WIKIS | ||
60 | |||
61 | Of course, there's always plenty for programmers and other | ||
62 | tech-savvy people to do: | ||
63 | |||
64 | * Compile a Viewer branch for other people to download and test. | ||
65 | |||
66 | * Try out a patch to make sure it applies cleanly, and make a Git | ||
67 | branch so others can easily merge the changes. | ||
68 | |||
69 | * Clean up or add comments/documentation for part of the source | ||
70 | code. | ||
71 | |||
72 | * Fix a bug or optimize a slow piece of code. | ||
73 | |||
74 | * Work with a designer to bring a UI concept to life! | ||
75 | |||
76 | |||
77 | OTHER REALLY COOL PEOPLE | ||
78 | |||
79 | We're also looking for people who can help with: | ||
80 | |||
81 | * Accessibility. We'd love to make it easier for people with | ||
82 | disabilities to have a functional and satisfying SL experience, | ||
83 | but we need people with the knowledge and experience to help us | ||
84 | identify the biggest hurdles and find solutions. | ||
85 | |||
86 | * Localization & Translation. Many of the non-English UI | ||
87 | translations are awkward or wrong, but only someone who knows | ||
88 | the language can make them better. If you are fluent in both | ||
89 | English and another tongue, please help us add or improve the | ||
90 | translation for your language. | ||
91 | |||
92 | |||
93 | GOT ANOTHER IDEA? | ||
94 | |||
95 | There are many more ways to get involved than we could list here; | ||
96 | and there are surely some good ones that you can think of, but that | ||
97 | we hadn't! Don't hesitate to contact us if you'd like to help | ||
98 | out, even if it's not listed here! | ||
99 | |||
100 | |||
101 | CONTACT INFO | ||
102 | |||
103 | If you’d like to contribute to Imprudence in any way, send an email | ||
104 | to jacek.antonelli at gmail or an IM to Jacek Antonelli in-world. | ||
diff --git a/ChangeLog.txt b/ChangeLog.txt new file mode 100644 index 0000000..4794bb7 --- /dev/null +++ b/ChangeLog.txt | |||
@@ -0,0 +1,113 @@ | |||
1 | 2008-09-28 Jacek Antonelli <jacek.antonelli@gmail.com> | ||
2 | |||
3 | * Updated to SL source 1.21.2. | ||
4 | |||
5 | 2008-09-22 Jacek Antonelli <jacek.antonelli@gmail.com> | ||
6 | |||
7 | * linden/indra/newview/skins/default/xui/en-us/floater_tools.xml: | ||
8 | Increased maximum settable transparency from 90% to 100%. | ||
9 | |||
10 | * linden/indra/newview/skins/default/xui/en-us/floater_tools.xml: | ||
11 | Changed "Select Texture" to "Select Faces to Texture". | ||
12 | |||
13 | 2008-09-22 Aimee Trescothick <aimee@ama-zing.co.uk> | ||
14 | |||
15 | * linden/indra/newview/lloverlaybar.cpp: | ||
16 | VWR-8341: Bring back a UI indicator of 'Flycam' text. | ||
17 | * linden/indra/newview/lloverlaybar.h: | ||
18 | Ditto. | ||
19 | * linden/indra/newview/skins/default/xui/en-us/panel_overlaybar.xml: | ||
20 | Ditto. | ||
21 | |||
22 | * linden/indra/newview/app_settings/settings.xml: | ||
23 | VWR-8430: Usability improvements to the land tools floater. | ||
24 | * linden/indra/newview/llfloatertools.cpp: | ||
25 | Ditto. | ||
26 | * linden/indra/newview/llfloatertools.h: | ||
27 | Ditto. | ||
28 | * linden/indra/newview/llpanelland.cpp: | ||
29 | Ditto. | ||
30 | * linden/indra/newview/llpanelland.h: | ||
31 | Ditto. | ||
32 | * linden/indra/newview/lltoolbrush.cpp: | ||
33 | Ditto. | ||
34 | * linden/indra/newview/skins/default/xui/en-us/alerts.xml: | ||
35 | Ditto. | ||
36 | * linden/indra/newview/skins/default/xui/en-us/floater_tools.xml: | ||
37 | Ditto. | ||
38 | |||
39 | 2008-09-21 Jacek Antonelli <jacek.antonelli@gmail.com> | ||
40 | |||
41 | * linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml: | ||
42 | Reindented and cleaned up menu XML for code readability. | ||
43 | |||
44 | 2008-09-20 Michelle2 Zenovka <robin.cornelius@gmail.com> | ||
45 | |||
46 | * linden/indra/newview/llfloaterbulkpermission.h: | ||
47 | VWR-5082: 'Set permissions on selected task inventory' feature. | ||
48 | * linden/indra/newview/llfloaterbulkpermission.cpp: | ||
49 | Ditto. | ||
50 | * linden/indra/newview/llviewermenu.cpp: | ||
51 | Ditto. | ||
52 | * linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml: | ||
53 | Ditto. | ||
54 | * linden/indra/newview/skins/default/xui/en-us/floater_bulk_perms.xml: | ||
55 | Ditto. | ||
56 | |||
57 | 2008-09-19 Gigs Taggart <gigstaggart@gmail.com> | ||
58 | |||
59 | * linden/indra/newview/app_settings/settings.xml: | ||
60 | VWR-2331: Terraform tool variable "strength". | ||
61 | Contributing authors: Gigs Taggart, Aimee Trescothick, Which Linden. | ||
62 | * linden/indra/newview/llfloatertools.cpp: | ||
63 | Ditto. | ||
64 | * linden/indra/newview/llfloatertools.h: | ||
65 | Ditto. | ||
66 | * linden/indra/newview/lltoolbrush.cpp: | ||
67 | Ditto. | ||
68 | * linden/indra/newview/skins/default/xui/en-us/floater_tools.xml: | ||
69 | Ditto. | ||
70 | |||
71 | 2008-09-19 McCabe Maxsted <hakushakukun@gmail.com> | ||
72 | |||
73 | * linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml: | ||
74 | VWR-1363: Add "Return Object" to the Tools menu. | ||
75 | |||
76 | * linden/indra/newview/skins/default/xui/en-us/floater_tools.xml: | ||
77 | VWR-7877: Change the default cut increment from 0.05 to 0.025. | ||
78 | |||
79 | * linden/indra/newview/skins/default/xui/en-us/panel_groups.xml: | ||
80 | VWR-8024: simplify group invites: invite to group from groups list. | ||
81 | |||
82 | 2008-09-19 Jacek Antonelli <jacek.antonelli@gmail.com> | ||
83 | |||
84 | * linden/indra/newview/llviewermenu.cpp: | ||
85 | VWR-2947: Create event callbacks for Advanced menu functions. | ||
86 | Part of VWR-2896: Convert "Advanced" menu to XUI. | ||
87 | |||
88 | * linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml: | ||
89 | VWR-2948: Create XUI-based Advanced menu. | ||
90 | Part of VWR-2896: Convert "Advanced" menu to XUI. | ||
91 | |||
92 | * linden/indra/SConstruct: | ||
93 | New optional SConstruct flag to specify an exact path to build | ||
94 | directory: BUILD_DIR. For convenience until we switch to CMake. | ||
95 | |||
96 | * linden/indra/SConstruct: | ||
97 | VWR-2865: New SConstruct flag to (not) make tarball after compiling. | ||
98 | For convenience until we switch to CMake. | ||
99 | * linden/indra/newview/viewer_manifest.py: | ||
100 | Ditto. | ||
101 | |||
102 | 2008-09-07 McCabe Maxsted <hakushakukun@gmail.com> | ||
103 | |||
104 | * linden/indra/newview/llpanelobject.cpp: | ||
105 | VWR-7827: Allow Dimple/Profile Cut for boxes and box-based prims | ||
106 | in the UI. | ||
107 | * linden/indra/newview/skins/default/xui/en-us/floater_tools.xml: | ||
108 | Ditto. | ||
109 | |||
110 | 2008-09-07 Jacek Antonelli <jacek.antonelli@gmail.com> | ||
111 | |||
112 | * linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml: | ||
113 | VWR-8056: Clean up menu_viewer.xml (main menu XUI). | ||
diff --git a/MANIFESTO.txt b/MANIFESTO.txt new file mode 100644 index 0000000..2a6fdb4 --- /dev/null +++ b/MANIFESTO.txt | |||
@@ -0,0 +1,178 @@ | |||
1 | |||
2 | |||
3 | THE IMPRUDENCE MANIFESTO | ||
4 | |||
5 | |||
6 | THE PROBLEM | ||
7 | |||
8 | The Second Life Viewer suffers from a stifling atmosphere of | ||
9 | non-change. This atmosphere emanates from Linden Lab, whose | ||
10 | attitudes and policies discourage all but the smallest and most | ||
11 | superficial improvements. This is the result of the nature of | ||
12 | Linden Lab as a corporation; in particular: | ||
13 | |||
14 | |||
15 | * A lack of resources to invest in making significant | ||
16 | improvements to the Viewer. Linden Lab is stuck treading water; | ||
17 | they don't have the manpower to spend on making major | ||
18 | improvements to the Viewer. | ||
19 | |||
20 | * A burdensome Quality Assurance procedure that punishes any sort | ||
21 | of change. The larger the change, the more it's punished. The | ||
22 | simple fact that all changes have to pass through such an | ||
23 | arduous process discourages anyone from attempting any major | ||
24 | endeavor. | ||
25 | |||
26 | * A vast throng of paying customers who want the Viewer to remain | ||
27 | constant and familiar. If the Viewer changes, they are forced | ||
28 | to spend effort relearning it. The most vocal and abusive users | ||
29 | even meet change with sneers and insults. | ||
30 | |||
31 | |||
32 | Combined, these render Linden Lab ineffectual at dealing with the | ||
33 | fundamental usability problems that plague the Viewer: | ||
34 | |||
35 | |||
36 | * A cluttered interface that frustrates and confuses both new and | ||
37 | long-time users. It is difficult to learn, frustrating to use, | ||
38 | and obscures the thing that users actually care about: the | ||
39 | world. | ||
40 | |||
41 | * Crude tools that force users into awkward and inefficient | ||
42 | workflows. The tools bear little relation to the way today's | ||
43 | users want to use them. Whether because these tools are | ||
44 | outdated relics of the past, or just half-baked non-solutions, | ||
45 | very few rise above even the "somewhat usable" mark. | ||
46 | |||
47 | * Stability and performance problems that make the Viewer | ||
48 | unreliable for any real use. Viewer crashes are an everyday | ||
49 | occurance for many users, disrupting their activities, | ||
50 | destroying their unsaved work, and afflicting their lives with | ||
51 | undue stress and frustration. | ||
52 | |||
53 | |||
54 | We don't deny that Linden Lab has made some progress in these areas | ||
55 | over time. But such progress is slow and often superficial, because | ||
56 | Linden Lab cannot afford to make significant improvement. | ||
57 | Encumbered by their own nature, they are forced onto an untenable | ||
58 | road of caution, hesitation, and prudence. This is a path that can | ||
59 | lead only to stagnation. | ||
60 | |||
61 | These fundamental usability problems will not be solved by Linden | ||
62 | Lab; their atmosphere precludes it. Even the contribution of source | ||
63 | code patches by open sourcers can only address one factor, Linden | ||
64 | Lab's lack of resources. Patch contributors are still affected by | ||
65 | the burdensome QA process and the community's anti-change attitude | ||
66 | just as much as Linden Lab developers are. Any endeavor which | ||
67 | relies on Linden Lab to approve and integrate changes will face the | ||
68 | same bottlenecks. | ||
69 | |||
70 | |||
71 | SOLUTION | ||
72 | |||
73 | As I have described, Linden Lab's approach is characterized by | ||
74 | three factors that put a damper on significant improvement or | ||
75 | innovation: | ||
76 | |||
77 | * Cautious, gradual changes over a long period of time. | ||
78 | |||
79 | * Dependence on an overloaded central QA department. | ||
80 | |||
81 | * Yielding to pressure from large numbers of users to reject | ||
82 | change. | ||
83 | |||
84 | It stands to reason that a project which removed or reduced these | ||
85 | factors would be more free to make radical, fundamental changes to | ||
86 | the Viewer. Such a project would exhibit the opposite | ||
87 | characteristics: | ||
88 | |||
89 | * More significant changes over a shorter period of time. | ||
90 | |||
91 | * A scalable, hierarchical QA process to screen and approve | ||
92 | changes. | ||
93 | |||
94 | * Less need to satisfy users who demand non-change. | ||
95 | |||
96 | This is precisely the sort of project we propose to undertake. | ||
97 | Because our approach is incautious, and perhaps even reckless, we | ||
98 | have dubbed the project Imprudence. Goals | ||
99 | |||
100 | The primary goal of Imprudence is simple: to greatly improve the | ||
101 | usability of the Viewer. In particular, there are 3 aspects of | ||
102 | usability that we intend to address: | ||
103 | |||
104 | * Approachability. Improving comfort and ease of use, especially | ||
105 | for new or non-technical users. | ||
106 | |||
107 | * Efficiency. Improving speed and ease of common tasks and | ||
108 | workflows. | ||
109 | |||
110 | * Satisfaction. Improving the emotional effect of the software on | ||
111 | the user. | ||
112 | |||
113 | This is not to minimize other aspects of usability, such as | ||
114 | reliability, accessibility, or internationalization/localization. | ||
115 | We recognize their importance, but lack the expertise to properly | ||
116 | address them. We welcome people with such expertise to join the | ||
117 | project and help. | ||
118 | |||
119 | |||
120 | METHOD | ||
121 | |||
122 | In order to achieve these goals, we propose to combine the open and | ||
123 | distributed nature of open source development with the dedication | ||
124 | to quality design usually associated with commercial products. The | ||
125 | main highlights of our approach are: | ||
126 | |||
127 | * Open, public project management. Our plans, goals, and roadmaps | ||
128 | are laid out on the table. Our code is published in plain view | ||
129 | as it's written. There won't be any sudden bombshells to | ||
130 | disrupt your plans. | ||
131 | |||
132 | * A pro-change atmosphere. Change is natural and healthy, and it | ||
133 | is the only way to make improvement. We encourage experimental | ||
134 | change, coupled with evaluation to filter out the negative. | ||
135 | Users wanting a static, unchanging viewer should look | ||
136 | elsewhere. | ||
137 | |||
138 | * Designers, programmers, and users working with each other. Good | ||
139 | software requires more than just a team of programmers. It | ||
140 | needs designers listening to users, programmers working with | ||
141 | designers, and users testing and providing feedback. Every role | ||
142 | is necessary and appreciated. | ||
143 | |||
144 | * Commmunity involvement. There are many ways to be involved, | ||
145 | whatever your interests, skill set, or level of commitment. | ||
146 | Contributions are welcomed, not looked upon as burdens. | ||
147 | |||
148 | * A modern, distributed development model. The Git version | ||
149 | control system makes it easy for programmers to work freely | ||
150 | without stepping on each others' toes. Easy and powerful | ||
151 | branching and merging tools mean that releases will never be | ||
152 | littered with untested, half-baked code. | ||
153 | |||
154 | * A scalable, hierarchical QA model. New contributions work their | ||
155 | way up a hierarchy of approval, which will start small and grow | ||
156 | naturally as load increases. By the time a contribution reaches | ||
157 | the top of the hierarchy, it has been tested, polished, and | ||
158 | approved by multiple people, and is ready to be integrated. | ||
159 | |||
160 | |||
161 | A CALL FOR VOLUNTEERS | ||
162 | |||
163 | Imprudence is an open-source, volunteer effort; it depends on | ||
164 | people like you getting involved! There are many ways to | ||
165 | contribute, and most of them don't require any programming skills | ||
166 | or special knowledge -- just some free time and the will to be part | ||
167 | of something great. | ||
168 | |||
169 | If you'd like to contribute in any way, have a look at | ||
170 | CONTRIBUTE.txt. | ||
171 | |||
172 | You have nothing to lose, and a better SL experience to gain! | ||
173 | |||
174 | |||
175 | SIGNATORIES | ||
176 | |||
177 | Jacek Antonelli (August 27, 2008) | ||
178 | McCabe Maxsted (August 27, 2008) | ||
@@ -1,55 +1,41 @@ | |||
1 | 1 | ||
2 | 2 | ||
3 | ABOUT THE SECOND LIFE VIEWER SOURCE ARCHIVE PROJECT | 3 | ABOUT IMPRUDENCE |
4 | 4 | ||
5 | This project is a community-maintained archive of Second Life | 5 | Imprudence is an open source metaverse viewer project based on |
6 | viewer source code releases. For more information about the | 6 | the Second Life Viewer source. |
7 | project, see: | 7 | |
8 | 8 | The goal of Imprudence is to greatly improve the usability of | |
9 | http://github.com/jacek/sl-viewer-source-archive/ | 9 | the Viewer through community involvement, thoughtful design, |
10 | 10 | modern development methods, and a pro-change atmosphere. | |
11 | 11 | ||
12 | PURPOSE | 12 | For more information about the rationale, goals, and methods |
13 | 13 | of the Imprudence project, please see MANIFESTO.txt. | |
14 | The purpose of the archive is to provide a base for viewer | 14 | |
15 | forks or patch development and a convenient method for viewing | 15 | If you would like to get involved with the Imprudence project, |
16 | and merging the diffs between releases via the Git version | 16 | please see CONTRIBUTE.txt. There are many ways you can help, |
17 | control system. | 17 | no matter your skills or the amount of time you can dedicate. |
18 | 18 | ||
19 | 19 | ||
20 | CONTENTS | 20 | Imprudence is online at ImprudenceViewer.org |
21 | 21 | ||
22 | The archive contains the full source code for every official, | 22 | |
23 | versioned release and release candidate of the Second Life | 23 | The latest source code for the Imprudence Viewer is always |
24 | viewer since January 2007, when the viewer code was first | 24 | available at: |
25 | released. | 25 | |
26 | 26 | http://github.com/jacek/imprudence/tree/master | |
27 | The archive does not contain the source for betas, "First | 27 | |
28 | Look" viewers, dated snapshots, or development branches, | 28 | |
29 | because it is infeasible to deduce their ancestral | ||
30 | relationship to other versions. | ||
31 | |||
32 | The archive also does not contain the viewer artwork or | ||
33 | required libraries, for space and licensing reasons. | ||
34 | |||
35 | As of this writing, these other resources (as well as all | ||
36 | code contained in the archive) are available for download | ||
37 | from Linden Research, Inc.: | ||
38 | |||
39 | http://wiki.secondlife.com/wiki/Source_downloads | ||
40 | |||
41 | |||
42 | LICENSE | 29 | LICENSE |
43 | 30 | ||
44 | All code in the archive has been released by Linden Research | 31 | All code is licensed under the terms of the GNU General Public |
45 | Inc. under the terms of the GNU General Public License version | 32 | License version 2.0 (plus a special exception). |
46 | 2.0 (plus a special exception). See linden/LICENSE-source.txt | 33 | |
47 | for details. | 34 | See linden/LICENSE-source.txt for details. |
48 | 35 | ||
49 | 36 | ||
50 | DISCLAIMERS AND NOTICES | 37 | DISCLAIMERS AND NOTICES |
51 | |||
52 | The project and archive are in no way affiliated with | ||
53 | Linden Research, Inc. | ||
54 | 38 | ||
55 | Second Life is a registered trademark of Linden Research, Inc. | 39 | Second Life is a registered trademark of Linden Research, Inc. |
40 | |||
41 | Imprudence is in no way affiliated with Linden Research, Inc. | ||
diff --git a/linden/doc/contributions.txt b/linden/doc/contributions.txt index ea5ba5d..346aba5 100644 --- a/linden/doc/contributions.txt +++ b/linden/doc/contributions.txt | |||
@@ -14,6 +14,8 @@ Adam Marker | |||
14 | Aimee Trescothick | 14 | Aimee Trescothick |
15 | VWR-3903 | 15 | VWR-3903 |
16 | VWR-4083 | 16 | VWR-4083 |
17 | VWR-8341 | ||
18 | VWR-8430 | ||
17 | Alejandro Rosenthal | 19 | Alejandro Rosenthal |
18 | VWR-1184 | 20 | VWR-1184 |
19 | Alissa Sabre | 21 | Alissa Sabre |
diff --git a/linden/indra/newview/CMakeLists.txt b/linden/indra/newview/CMakeLists.txt index e93ea57..ae0feb6 100644 --- a/linden/indra/newview/CMakeLists.txt +++ b/linden/indra/newview/CMakeLists.txt | |||
@@ -124,6 +124,7 @@ set(viewer_SOURCE_FILES | |||
124 | llfloateravatarpicker.cpp | 124 | llfloateravatarpicker.cpp |
125 | llfloateravatartextures.cpp | 125 | llfloateravatartextures.cpp |
126 | llfloaterbuildoptions.cpp | 126 | llfloaterbuildoptions.cpp |
127 | llfloaterbulkpermission.cpp | ||
127 | llfloaterbump.cpp | 128 | llfloaterbump.cpp |
128 | llfloaterbuycontents.cpp | 129 | llfloaterbuycontents.cpp |
129 | llfloaterbuy.cpp | 130 | llfloaterbuy.cpp |
@@ -514,6 +515,7 @@ set(viewer_HEADER_FILES | |||
514 | llfloateravatarpicker.h | 515 | llfloateravatarpicker.h |
515 | llfloateravatartextures.h | 516 | llfloateravatartextures.h |
516 | llfloaterbuildoptions.h | 517 | llfloaterbuildoptions.h |
518 | llfloaterbulkpermission.h | ||
517 | llfloaterbump.h | 519 | llfloaterbump.h |
518 | llfloaterbuy.h | 520 | llfloaterbuy.h |
519 | llfloaterbuycontents.h | 521 | llfloaterbuycontents.h |
@@ -1019,6 +1021,7 @@ set(viewer_XUI_FILES | |||
1019 | skins/default/xui/en-us/floater_avatar_picker.xml | 1021 | skins/default/xui/en-us/floater_avatar_picker.xml |
1020 | skins/default/xui/en-us/floater_avatar_textures.xml | 1022 | skins/default/xui/en-us/floater_avatar_textures.xml |
1021 | skins/default/xui/en-us/floater_build_options.xml | 1023 | skins/default/xui/en-us/floater_build_options.xml |
1024 | skins/default/xui/en-us/floater_bulk_perms.xml | ||
1022 | skins/default/xui/en-us/floater_bumps.xml | 1025 | skins/default/xui/en-us/floater_bumps.xml |
1023 | skins/default/xui/en-us/floater_buy_contents.xml | 1026 | skins/default/xui/en-us/floater_buy_contents.xml |
1024 | skins/default/xui/en-us/floater_buy_currency.xml | 1027 | skins/default/xui/en-us/floater_buy_currency.xml |
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml index 5543847..17698d7 100644 --- a/linden/indra/newview/app_settings/settings.xml +++ b/linden/indra/newview/app_settings/settings.xml | |||
@@ -4191,6 +4191,17 @@ | |||
4191 | <key>Value</key> | 4191 | <key>Value</key> |
4192 | <integer>0</integer> | 4192 | <integer>0</integer> |
4193 | </map> | 4193 | </map> |
4194 | <key>LandBrushForce</key> | ||
4195 | <map> | ||
4196 | <key>Comment</key> | ||
4197 | <string>Multiplier for land modification brush force.</string> | ||
4198 | <key>Persist</key> | ||
4199 | <integer>1</integer> | ||
4200 | <key>Type</key> | ||
4201 | <string>F32</string> | ||
4202 | <key>Value</key> | ||
4203 | <real>1.0</real> | ||
4204 | </map> | ||
4194 | <key>Language</key> | 4205 | <key>Language</key> |
4195 | <map> | 4206 | <map> |
4196 | <key>Comment</key> | 4207 | <key>Comment</key> |
@@ -5607,7 +5618,7 @@ | |||
5607 | <key>Value</key> | 5618 | <key>Value</key> |
5608 | <integer>0</integer> | 5619 | <integer>0</integer> |
5609 | </map> | 5620 | </map> |
5610 | <key>RadioLandBrushSize</key> | 5621 | <key>LandBrushSize</key> |
5611 | <map> | 5622 | <map> |
5612 | <key>Comment</key> | 5623 | <key>Comment</key> |
5613 | <string>Size of land modification brush (0 = small, 1 = medium, 2 = large)</string> | 5624 | <string>Size of land modification brush (0 = small, 1 = medium, 2 = large)</string> |
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/llfloatergroups.cpp b/linden/indra/newview/llfloatergroups.cpp index c0ea9df..39f6b7a 100644 --- a/linden/indra/newview/llfloatergroups.cpp +++ b/linden/indra/newview/llfloatergroups.cpp | |||
@@ -39,6 +39,7 @@ | |||
39 | #include "llviewerprecompiledheaders.h" | 39 | #include "llviewerprecompiledheaders.h" |
40 | 40 | ||
41 | #include "llfloatergroups.h" | 41 | #include "llfloatergroups.h" |
42 | #include "llfloatergroupinvite.h" | ||
42 | 43 | ||
43 | #include "message.h" | 44 | #include "message.h" |
44 | #include "roles_constants.h" | 45 | #include "roles_constants.h" |
@@ -223,6 +224,8 @@ BOOL LLPanelGroups::postBuild() | |||
223 | childSetAction("Create", onBtnCreate, this); | 224 | childSetAction("Create", onBtnCreate, this); |
224 | 225 | ||
225 | childSetAction("Search...", onBtnSearch, this); | 226 | childSetAction("Search...", onBtnSearch, this); |
227 | |||
228 | childSetAction("Invite...", onBtnInvite, this); | ||
226 | 229 | ||
227 | setDefaultBtn("IM"); | 230 | setDefaultBtn("IM"); |
228 | 231 | ||
@@ -271,6 +274,14 @@ void LLPanelGroups::enableButtons() | |||
271 | { | 274 | { |
272 | childDisable("Create"); | 275 | childDisable("Create"); |
273 | } | 276 | } |
277 | if (group_id.notNull() && gAgent.hasPowerInGroup(group_id, GP_MEMBER_INVITE)) | ||
278 | { | ||
279 | LLPanelGroups::childEnable("Invite..."); | ||
280 | } | ||
281 | else | ||
282 | { | ||
283 | LLPanelGroups::childDisable("Invite..."); | ||
284 | } | ||
274 | } | 285 | } |
275 | 286 | ||
276 | 287 | ||
@@ -280,6 +291,12 @@ void LLPanelGroups::onBtnCreate(void* userdata) | |||
280 | if(self) self->create(); | 291 | if(self) self->create(); |
281 | } | 292 | } |
282 | 293 | ||
294 | void LLPanelGroups::onBtnInvite(void* userdata) | ||
295 | { | ||
296 | LLPanelGroups* self = (LLPanelGroups*)userdata; | ||
297 | if(self) self->invite(); | ||
298 | } | ||
299 | |||
283 | void LLPanelGroups::onBtnActivate(void* userdata) | 300 | void LLPanelGroups::onBtnActivate(void* userdata) |
284 | { | 301 | { |
285 | LLPanelGroups* self = (LLPanelGroups*)userdata; | 302 | LLPanelGroups* self = (LLPanelGroups*)userdata; |
@@ -401,6 +418,21 @@ void LLPanelGroups::search() | |||
401 | LLFloaterDirectory::showGroups(); | 418 | LLFloaterDirectory::showGroups(); |
402 | } | 419 | } |
403 | 420 | ||
421 | void LLPanelGroups::invite() | ||
422 | { | ||
423 | LLCtrlListInterface *group_list = childGetListInterface("group list"); | ||
424 | LLUUID group_id; | ||
425 | |||
426 | //if (group_list && (group_id = group_list->getCurrentID()).notNull()) | ||
427 | |||
428 | if (group_list) | ||
429 | { | ||
430 | group_id = group_list->getCurrentID(); | ||
431 | } | ||
432 | |||
433 | LLFloaterGroupInvite::showForGroup(group_id); | ||
434 | } | ||
435 | |||
404 | // static | 436 | // static |
405 | void LLPanelGroups::callbackLeaveGroup(S32 option, void* userdata) | 437 | void LLPanelGroups::callbackLeaveGroup(S32 option, void* userdata) |
406 | { | 438 | { |
diff --git a/linden/indra/newview/llfloatergroups.h b/linden/indra/newview/llfloatergroups.h index 5eda8ba..ad3ecac 100644 --- a/linden/indra/newview/llfloatergroups.h +++ b/linden/indra/newview/llfloatergroups.h | |||
@@ -110,6 +110,7 @@ protected: | |||
110 | static void onBtnLeave(void* userdata); | 110 | static void onBtnLeave(void* userdata); |
111 | static void onBtnSearch(void* userdata); | 111 | static void onBtnSearch(void* userdata); |
112 | static void onBtnVote(void* userdata); | 112 | static void onBtnVote(void* userdata); |
113 | static void onBtnInvite(void* userdata); | ||
113 | static void onDoubleClickGroup(void* userdata); | 114 | static void onDoubleClickGroup(void* userdata); |
114 | 115 | ||
115 | void create(); | 116 | void create(); |
@@ -119,6 +120,7 @@ protected: | |||
119 | void leave(); | 120 | void leave(); |
120 | void search(); | 121 | void search(); |
121 | void callVote(); | 122 | void callVote(); |
123 | void invite(); | ||
122 | 124 | ||
123 | static void callbackLeaveGroup(S32 option, void* userdata); | 125 | static void callbackLeaveGroup(S32 option, void* userdata); |
124 | 126 | ||
diff --git a/linden/indra/newview/llfloatertools.cpp b/linden/indra/newview/llfloatertools.cpp index 9c00ca6..1498d4a 100644 --- a/linden/indra/newview/llfloatertools.cpp +++ b/linden/indra/newview/llfloatertools.cpp | |||
@@ -106,9 +106,8 @@ void click_popup_rotate_left(void*); | |||
106 | void click_popup_rotate_reset(void*); | 106 | void click_popup_rotate_reset(void*); |
107 | void click_popup_rotate_right(void*); | 107 | void click_popup_rotate_right(void*); |
108 | void click_popup_dozer_mode(LLUICtrl *, void *user); | 108 | void click_popup_dozer_mode(LLUICtrl *, void *user); |
109 | void click_popup_dozer_size(LLUICtrl *, void *user); | 109 | void commit_slider_dozer_size(LLUICtrl *, void*); |
110 | void commit_slider_dozer_force(LLUICtrl *, void*); | 110 | void commit_slider_dozer_force(LLUICtrl *, void*); |
111 | void click_dozer_size(LLUICtrl *, void*); | ||
112 | void click_apply_to_selection(void*); | 111 | void click_apply_to_selection(void*); |
113 | void commit_radio_zoom(LLUICtrl *, void*); | 112 | void commit_radio_zoom(LLUICtrl *, void*); |
114 | void commit_radio_orbit(LLUICtrl *, void*); | 113 | void commit_radio_orbit(LLUICtrl *, void*); |
@@ -303,14 +302,16 @@ BOOL LLFloaterTools::postBuild() | |||
303 | childSetCommitCallback("radio noise",click_popup_dozer_mode, (void*)4); | 302 | childSetCommitCallback("radio noise",click_popup_dozer_mode, (void*)4); |
304 | mRadioDozerRevert = getChild<LLCheckBoxCtrl>("radio revert"); | 303 | mRadioDozerRevert = getChild<LLCheckBoxCtrl>("radio revert"); |
305 | childSetCommitCallback("radio revert",click_popup_dozer_mode, (void*)5); | 304 | childSetCommitCallback("radio revert",click_popup_dozer_mode, (void*)5); |
306 | mComboDozerSize = getChild<LLComboBox>("combobox brush size"); | ||
307 | childSetCommitCallback("combobox brush size",click_dozer_size, (void*)0); | ||
308 | if(mComboDozerSize) mComboDozerSize->setCurrentByIndex(0); | ||
309 | mBtnApplyToSelection = getChild<LLButton>("button apply to selection"); | 305 | mBtnApplyToSelection = getChild<LLButton>("button apply to selection"); |
310 | childSetAction("button apply to selection",click_apply_to_selection, (void*)0); | 306 | childSetAction("button apply to selection",click_apply_to_selection, (void*)0); |
311 | mCheckShowOwners = getChild<LLCheckBoxCtrl>("checkbox show owners"); | 307 | mCheckShowOwners = getChild<LLCheckBoxCtrl>("checkbox show owners"); |
312 | childSetValue("checkbox show owners",gSavedSettings.getBOOL("ShowParcelOwners")); | 308 | childSetValue("checkbox show owners",gSavedSettings.getBOOL("ShowParcelOwners")); |
313 | 309 | ||
310 | mSliderDozerSize = getChild<LLSlider>("slider brush size"); | ||
311 | childSetCommitCallback("slider brush size", commit_slider_dozer_size, (void*)0); | ||
312 | childSetValue( "slider brush size", gSavedSettings.getS32("LandBrushSize")); | ||
313 | |||
314 | |||
314 | mSliderDozerForce = getChild<LLSlider>("slider force"); | 315 | mSliderDozerForce = getChild<LLSlider>("slider force"); |
315 | childSetCommitCallback("slider force",commit_slider_dozer_force, (void*)0); | 316 | childSetCommitCallback("slider force",commit_slider_dozer_force, (void*)0); |
316 | // the setting stores the actual force multiplier, but the slider is logarithmic, so we convert here | 317 | // the setting stores the actual force multiplier, but the slider is logarithmic, so we convert here |
@@ -391,7 +392,8 @@ LLFloaterTools::LLFloaterTools() | |||
391 | mRadioDozerSmooth(NULL), | 392 | mRadioDozerSmooth(NULL), |
392 | mRadioDozerNoise(NULL), | 393 | mRadioDozerNoise(NULL), |
393 | mRadioDozerRevert(NULL), | 394 | mRadioDozerRevert(NULL), |
394 | mComboDozerSize(NULL), | 395 | mSliderDozerSize(NULL), |
396 | mSliderDozerForce(NULL), | ||
395 | mBtnApplyToSelection(NULL), | 397 | mBtnApplyToSelection(NULL), |
396 | mCheckShowOwners(NULL), | 398 | mCheckShowOwners(NULL), |
397 | 399 | ||
@@ -702,7 +704,6 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask) | |||
702 | if (mRadioSelectLand) mRadioSelectLand->setVisible( land_visible ); | 704 | if (mRadioSelectLand) mRadioSelectLand->setVisible( land_visible ); |
703 | 705 | ||
704 | S32 dozer_mode = gSavedSettings.getS32("RadioLandBrushAction"); | 706 | S32 dozer_mode = gSavedSettings.getS32("RadioLandBrushAction"); |
705 | S32 dozer_size = gSavedSettings.getS32("RadioLandBrushSize"); | ||
706 | 707 | ||
707 | if (mRadioDozerFlatten) | 708 | if (mRadioDozerFlatten) |
708 | { | 709 | { |
@@ -734,17 +735,17 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask) | |||
734 | mRadioDozerRevert ->set( tool == LLToolBrushLand::getInstance() && dozer_mode == 5); | 735 | mRadioDozerRevert ->set( tool == LLToolBrushLand::getInstance() && dozer_mode == 5); |
735 | mRadioDozerRevert ->setVisible( land_visible ); | 736 | mRadioDozerRevert ->setVisible( land_visible ); |
736 | } | 737 | } |
737 | if (mComboDozerSize) | ||
738 | { | ||
739 | mComboDozerSize ->setCurrentByIndex(dozer_size); | ||
740 | mComboDozerSize ->setVisible( land_visible ); | ||
741 | mComboDozerSize ->setEnabled( tool == LLToolBrushLand::getInstance() ); | ||
742 | } | ||
743 | if (mBtnApplyToSelection) | 738 | if (mBtnApplyToSelection) |
744 | { | 739 | { |
745 | mBtnApplyToSelection->setVisible( land_visible ); | 740 | mBtnApplyToSelection->setVisible( land_visible ); |
746 | mBtnApplyToSelection->setEnabled( land_visible && !LLViewerParcelMgr::getInstance()->selectionEmpty() && tool != LLToolSelectLand::getInstance()); | 741 | mBtnApplyToSelection->setEnabled( land_visible && !LLViewerParcelMgr::getInstance()->selectionEmpty() && tool != LLToolSelectLand::getInstance()); |
747 | } | 742 | } |
743 | if (mSliderDozerSize) | ||
744 | { | ||
745 | mSliderDozerSize ->setVisible( land_visible ); | ||
746 | childSetVisible("Brush:", land_visible); | ||
747 | childSetVisible("Brush Size:", land_visible); | ||
748 | } | ||
748 | if (mCheckShowOwners) | 749 | if (mCheckShowOwners) |
749 | { | 750 | { |
750 | mCheckShowOwners ->setVisible( land_visible ); | 751 | mCheckShowOwners ->setVisible( land_visible ); |
@@ -933,23 +934,15 @@ void click_popup_rotate_right(void*) | |||
933 | 934 | ||
934 | void click_popup_dozer_mode(LLUICtrl *, void *user) | 935 | void click_popup_dozer_mode(LLUICtrl *, void *user) |
935 | { | 936 | { |
936 | S32 show_owners = gSavedSettings.getBOOL("ShowParcelOwners"); | ||
937 | S32 mode = (S32)(intptr_t) user; | 937 | S32 mode = (S32)(intptr_t) user; |
938 | gFloaterTools->setEditTool( LLToolBrushLand::getInstance() ); | 938 | gFloaterTools->setEditTool( LLToolBrushLand::getInstance() ); |
939 | gSavedSettings.setS32("RadioLandBrushAction", mode); | 939 | gSavedSettings.setS32("RadioLandBrushAction", mode); |
940 | gSavedSettings.setBOOL("ShowParcelOwners", show_owners); | ||
941 | } | ||
942 | |||
943 | void click_popup_dozer_size(LLUICtrl *, void *user) | ||
944 | { | ||
945 | S32 size = (S32)(intptr_t) user; | ||
946 | gSavedSettings.setS32("RadioLandBrushSize", size); | ||
947 | } | 940 | } |
948 | 941 | ||
949 | void click_dozer_size(LLUICtrl *ctrl, void *user) | 942 | void commit_slider_dozer_size(LLUICtrl *ctrl, void*) |
950 | { | 943 | { |
951 | S32 size = ((LLComboBox*) ctrl)->getCurrentIndex(); | 944 | S32 size = (S32)ctrl->getValue().asInteger(); |
952 | gSavedSettings.setS32("RadioLandBrushSize", size); | 945 | gSavedSettings.setS32("LandBrushSize", size); |
953 | } | 946 | } |
954 | 947 | ||
955 | void commit_slider_dozer_force(LLUICtrl *ctrl, void*) | 948 | void commit_slider_dozer_force(LLUICtrl *ctrl, void*) |
diff --git a/linden/indra/newview/llfloatertools.h b/linden/indra/newview/llfloatertools.h index a75aa87..c4d6337 100644 --- a/linden/indra/newview/llfloatertools.h +++ b/linden/indra/newview/llfloatertools.h | |||
@@ -168,11 +168,10 @@ public: | |||
168 | LLCheckBoxCtrl *mRadioDozerSmooth; | 168 | LLCheckBoxCtrl *mRadioDozerSmooth; |
169 | LLCheckBoxCtrl *mRadioDozerNoise; | 169 | LLCheckBoxCtrl *mRadioDozerNoise; |
170 | LLCheckBoxCtrl *mRadioDozerRevert; | 170 | LLCheckBoxCtrl *mRadioDozerRevert; |
171 | LLSlider *mSliderDozerSize; | ||
171 | LLSlider *mSliderDozerForce; | 172 | LLSlider *mSliderDozerForce; |
172 | 173 | LLCheckBoxCtrl *mCheckShowOwners; | |
173 | LLComboBox *mComboDozerSize; | ||
174 | LLButton *mBtnApplyToSelection; | 174 | LLButton *mBtnApplyToSelection; |
175 | LLCheckBoxCtrl *mCheckShowOwners; | ||
176 | 175 | ||
177 | std::vector<LLButton*> mButtons;//[ 15 ]; | 176 | std::vector<LLButton*> mButtons;//[ 15 ]; |
178 | 177 | ||
diff --git a/linden/indra/newview/lloverlaybar.cpp b/linden/indra/newview/lloverlaybar.cpp index d0aad25..1087fd8 100644 --- a/linden/indra/newview/lloverlaybar.cpp +++ b/linden/indra/newview/lloverlaybar.cpp | |||
@@ -50,6 +50,7 @@ | |||
50 | #include "llui.h" | 50 | #include "llui.h" |
51 | #include "llviewercontrol.h" | 51 | #include "llviewercontrol.h" |
52 | #include "llviewerimagelist.h" | 52 | #include "llviewerimagelist.h" |
53 | #include "llviewerjoystick.h" | ||
53 | #include "llviewermedia.h" | 54 | #include "llviewermedia.h" |
54 | #include "llviewermenu.h" // handle_reset_view() | 55 | #include "llviewermenu.h" // handle_reset_view() |
55 | #include "llviewermedia.h" | 56 | #include "llviewermedia.h" |
@@ -120,6 +121,7 @@ BOOL LLOverlayBar::postBuild() | |||
120 | { | 121 | { |
121 | childSetAction("IM Received",onClickIMReceived,this); | 122 | childSetAction("IM Received",onClickIMReceived,this); |
122 | childSetAction("Set Not Busy",onClickSetNotBusy,this); | 123 | childSetAction("Set Not Busy",onClickSetNotBusy,this); |
124 | childSetAction("Flycam",onClickFlycam,this); | ||
123 | childSetAction("Mouselook",onClickMouselook,this); | 125 | childSetAction("Mouselook",onClickMouselook,this); |
124 | childSetAction("Stand Up",onClickStandUp,this); | 126 | childSetAction("Stand Up",onClickStandUp,this); |
125 | childSetVisible("chat_bar", gSavedSettings.getBOOL("ChatVisible")); | 127 | childSetVisible("chat_bar", gSavedSettings.getBOOL("ChatVisible")); |
@@ -209,6 +211,16 @@ void LLOverlayBar::refresh() | |||
209 | buttons_changed = TRUE; | 211 | buttons_changed = TRUE; |
210 | } | 212 | } |
211 | 213 | ||
214 | BOOL flycam = LLViewerJoystick::getInstance()->getOverrideCamera(); | ||
215 | button = getChild<LLButton>("Flycam"); | ||
216 | if (button && button->getVisible() != flycam) | ||
217 | { | ||
218 | button->setVisible(flycam); | ||
219 | sendChildToFront(button); | ||
220 | moveChildToBackOfTabGroup(button); | ||
221 | buttons_changed = TRUE; | ||
222 | } | ||
223 | |||
212 | BOOL mouselook_grabbed; | 224 | BOOL mouselook_grabbed; |
213 | mouselook_grabbed = gAgent.isControlGrabbed(CONTROL_ML_LBUTTON_DOWN_INDEX) | 225 | mouselook_grabbed = gAgent.isControlGrabbed(CONTROL_ML_LBUTTON_DOWN_INDEX) |
214 | || gAgent.isControlGrabbed(CONTROL_ML_LBUTTON_UP_INDEX); | 226 | || gAgent.isControlGrabbed(CONTROL_ML_LBUTTON_UP_INDEX); |
@@ -284,6 +296,12 @@ void LLOverlayBar::onClickSetNotBusy(void*) | |||
284 | 296 | ||
285 | 297 | ||
286 | // static | 298 | // static |
299 | void LLOverlayBar::onClickFlycam(void*) | ||
300 | { | ||
301 | LLViewerJoystick::getInstance()->toggleFlycam(); | ||
302 | } | ||
303 | |||
304 | // static | ||
287 | void LLOverlayBar::onClickResetView(void* data) | 305 | void LLOverlayBar::onClickResetView(void* data) |
288 | { | 306 | { |
289 | handle_reset_view(); | 307 | handle_reset_view(); |
diff --git a/linden/indra/newview/lloverlaybar.h b/linden/indra/newview/lloverlaybar.h index 907441e..5880ff0 100644 --- a/linden/indra/newview/lloverlaybar.h +++ b/linden/indra/newview/lloverlaybar.h | |||
@@ -68,6 +68,7 @@ public: | |||
68 | 68 | ||
69 | static void onClickIMReceived(void* data); | 69 | static void onClickIMReceived(void* data); |
70 | static void onClickSetNotBusy(void* data); | 70 | static void onClickSetNotBusy(void* data); |
71 | static void onClickFlycam(void* data); | ||
71 | static void onClickMouselook(void* data); | 72 | static void onClickMouselook(void* data); |
72 | static void onClickStandUp(void* data); | 73 | static void onClickStandUp(void* data); |
73 | static void onClickResetView(void* data); | 74 | static void onClickResetView(void* data); |
diff --git a/linden/indra/newview/llpanelland.cpp b/linden/indra/newview/llpanelland.cpp index c1e9ab3..0b3ba52 100644 --- a/linden/indra/newview/llpanelland.cpp +++ b/linden/indra/newview/llpanelland.cpp | |||
@@ -37,10 +37,13 @@ | |||
37 | 37 | ||
38 | #include "llagent.h" | 38 | #include "llagent.h" |
39 | #include "llbutton.h" | 39 | #include "llbutton.h" |
40 | #include "llcheckboxctrl.h" | ||
40 | #include "llfloaterland.h" | 41 | #include "llfloaterland.h" |
41 | #include "lltextbox.h" | 42 | #include "lltextbox.h" |
43 | #include "llviewercontrol.h" | ||
42 | #include "llviewerparcelmgr.h" | 44 | #include "llviewerparcelmgr.h" |
43 | #include "llviewerregion.h" | 45 | #include "llviewerregion.h" |
46 | #include "llviewerwindow.h" | ||
44 | #include "roles_constants.h" | 47 | #include "roles_constants.h" |
45 | 48 | ||
46 | #include "lluictrlfactory.h" | 49 | #include "lluictrlfactory.h" |
@@ -65,6 +68,10 @@ BOOL LLPanelLandInfo::postBuild() | |||
65 | childSetAction("button subdivide land",onClickDivide,this); | 68 | childSetAction("button subdivide land",onClickDivide,this); |
66 | childSetAction("button join land",onClickJoin,this); | 69 | childSetAction("button join land",onClickJoin,this); |
67 | childSetAction("button about land",onClickAbout,this); | 70 | childSetAction("button about land",onClickAbout,this); |
71 | childSetAction("button show owners help", onShowOwnersHelp, this); | ||
72 | |||
73 | mCheckShowOwners = getChild<LLCheckBoxCtrl>("checkbox show owners"); | ||
74 | childSetValue("checkbox show owners", gSavedSettings.getBOOL("ShowParcelOwners")); | ||
68 | 75 | ||
69 | return TRUE; | 76 | return TRUE; |
70 | } | 77 | } |
@@ -72,7 +79,8 @@ BOOL LLPanelLandInfo::postBuild() | |||
72 | // Methods | 79 | // Methods |
73 | // | 80 | // |
74 | LLPanelLandInfo::LLPanelLandInfo(const std::string& name) | 81 | LLPanelLandInfo::LLPanelLandInfo(const std::string& name) |
75 | : LLPanel(name) | 82 | : LLPanel(name), |
83 | mCheckShowOwners(NULL) | ||
76 | { | 84 | { |
77 | if (!sInstance) | 85 | if (!sInstance) |
78 | { | 86 | { |
@@ -255,3 +263,19 @@ void LLPanelLandInfo::onClickAbout(void*) | |||
255 | 263 | ||
256 | LLFloaterLand::showInstance(); | 264 | LLFloaterLand::showInstance(); |
257 | } | 265 | } |
266 | |||
267 | void LLPanelLandInfo::onShowOwnersHelp(void* user_data) | ||
268 | { | ||
269 | LLPanelLandInfo* self = static_cast<LLPanelLandInfo*>(user_data); | ||
270 | |||
271 | const char* xml_alert = "ShowOwnersHelp"; | ||
272 | LLAlertDialog* dialogp = gViewerWindow->alertXml(xml_alert); | ||
273 | if (dialogp) | ||
274 | { | ||
275 | LLFloater* root_floater = gFloaterView->getParentFloater(self); | ||
276 | if (root_floater) | ||
277 | { | ||
278 | root_floater->addDependentFloater(dialogp); | ||
279 | } | ||
280 | } | ||
281 | } | ||
diff --git a/linden/indra/newview/llpanelland.h b/linden/indra/newview/llpanelland.h index c83bf2c..c44cb9d 100644 --- a/linden/indra/newview/llpanelland.h +++ b/linden/indra/newview/llpanelland.h | |||
@@ -50,6 +50,8 @@ public: | |||
50 | 50 | ||
51 | void refresh(); | 51 | void refresh(); |
52 | static void refreshAll(); | 52 | static void refreshAll(); |
53 | |||
54 | LLCheckBoxCtrl *mCheckShowOwners; | ||
53 | 55 | ||
54 | protected: | 56 | protected: |
55 | static void onClickClaim(void*); | 57 | static void onClickClaim(void*); |
@@ -57,6 +59,7 @@ protected: | |||
57 | static void onClickDivide(void*); | 59 | static void onClickDivide(void*); |
58 | static void onClickJoin(void*); | 60 | static void onClickJoin(void*); |
59 | static void onClickAbout(void*); | 61 | static void onClickAbout(void*); |
62 | static void onShowOwnersHelp(void*); | ||
60 | 63 | ||
61 | protected: | 64 | protected: |
62 | //LLTextBox* mTextPriceLabel; | 65 | //LLTextBox* mTextPriceLabel; |
diff --git a/linden/indra/newview/llpanelobject.cpp b/linden/indra/newview/llpanelobject.cpp index 9022c14..cc9d969 100644 --- a/linden/indra/newview/llpanelobject.cpp +++ b/linden/indra/newview/llpanelobject.cpp | |||
@@ -830,7 +830,7 @@ void LLPanelObject::getState( ) | |||
830 | BOOL top_shear_x_visible = TRUE; | 830 | BOOL top_shear_x_visible = TRUE; |
831 | BOOL top_shear_y_visible = TRUE; | 831 | BOOL top_shear_y_visible = TRUE; |
832 | BOOL twist_visible = TRUE; | 832 | BOOL twist_visible = TRUE; |
833 | BOOL advanced_cut_visible = FALSE; | 833 | BOOL advanced_cut_visible = TRUE; |
834 | BOOL taper_visible = FALSE; | 834 | BOOL taper_visible = FALSE; |
835 | BOOL skew_visible = FALSE; | 835 | BOOL skew_visible = FALSE; |
836 | BOOL radius_offset_visible = FALSE; | 836 | BOOL radius_offset_visible = FALSE; |
@@ -841,6 +841,7 @@ void LLPanelObject::getState( ) | |||
841 | F32 twist_inc = OBJECT_TWIST_LINEAR_INC; | 841 | F32 twist_inc = OBJECT_TWIST_LINEAR_INC; |
842 | 842 | ||
843 | BOOL advanced_is_dimple = FALSE; | 843 | BOOL advanced_is_dimple = FALSE; |
844 | BOOL advanced_is_slice = FALSE; | ||
844 | BOOL size_is_hole = FALSE; | 845 | BOOL size_is_hole = FALSE; |
845 | 846 | ||
846 | // Tune based on overall volume type | 847 | // Tune based on overall volume type |
@@ -854,6 +855,7 @@ void LLPanelObject::getState( ) | |||
854 | //twist_visible = FALSE; | 855 | //twist_visible = FALSE; |
855 | advanced_cut_visible = TRUE; | 856 | advanced_cut_visible = TRUE; |
856 | advanced_is_dimple = TRUE; | 857 | advanced_is_dimple = TRUE; |
858 | advanced_is_slice = FALSE; | ||
857 | twist_min = OBJECT_TWIST_MIN; | 859 | twist_min = OBJECT_TWIST_MIN; |
858 | twist_max = OBJECT_TWIST_MAX; | 860 | twist_max = OBJECT_TWIST_MAX; |
859 | twist_inc = OBJECT_TWIST_INC; | 861 | twist_inc = OBJECT_TWIST_INC; |
@@ -867,6 +869,7 @@ void LLPanelObject::getState( ) | |||
867 | size_is_hole = TRUE; | 869 | size_is_hole = TRUE; |
868 | skew_visible = TRUE; | 870 | skew_visible = TRUE; |
869 | advanced_cut_visible = TRUE; | 871 | advanced_cut_visible = TRUE; |
872 | advanced_is_slice = FALSE; | ||
870 | taper_visible = TRUE; | 873 | taper_visible = TRUE; |
871 | radius_offset_visible = TRUE; | 874 | radius_offset_visible = TRUE; |
872 | revolutions_visible = TRUE; | 875 | revolutions_visible = TRUE; |
@@ -894,8 +897,20 @@ void LLPanelObject::getState( ) | |||
894 | break; | 897 | break; |
895 | 898 | ||
896 | case MI_BOX: | 899 | case MI_BOX: |
900 | advanced_cut_visible = TRUE; | ||
901 | advanced_is_slice = TRUE; | ||
902 | break; | ||
903 | |||
897 | case MI_CYLINDER: | 904 | case MI_CYLINDER: |
905 | advanced_cut_visible = TRUE; | ||
906 | advanced_is_slice = TRUE; | ||
907 | break; | ||
908 | |||
898 | case MI_PRISM: | 909 | case MI_PRISM: |
910 | advanced_cut_visible = TRUE; | ||
911 | advanced_is_slice = TRUE; | ||
912 | break; | ||
913 | |||
899 | default: | 914 | default: |
900 | break; | 915 | break; |
901 | } | 916 | } |
@@ -987,6 +1002,8 @@ void LLPanelObject::getState( ) | |||
987 | 1002 | ||
988 | childSetVisible("advanced_cut", FALSE); | 1003 | childSetVisible("advanced_cut", FALSE); |
989 | childSetVisible("advanced_dimple", FALSE); | 1004 | childSetVisible("advanced_dimple", FALSE); |
1005 | childSetVisible("advanced_slice", FALSE); | ||
1006 | |||
990 | if (advanced_cut_visible) | 1007 | if (advanced_cut_visible) |
991 | { | 1008 | { |
992 | if (advanced_is_dimple) | 1009 | if (advanced_is_dimple) |
@@ -994,6 +1011,12 @@ void LLPanelObject::getState( ) | |||
994 | childSetVisible("advanced_dimple", TRUE); | 1011 | childSetVisible("advanced_dimple", TRUE); |
995 | childSetEnabled("advanced_dimple", enabled); | 1012 | childSetEnabled("advanced_dimple", enabled); |
996 | } | 1013 | } |
1014 | |||
1015 | else if (advanced_is_slice) | ||
1016 | { | ||
1017 | childSetVisible("advanced_slice", TRUE); | ||
1018 | childSetEnabled("advanced_slice", enabled); | ||
1019 | } | ||
997 | else | 1020 | else |
998 | { | 1021 | { |
999 | childSetVisible("advanced_cut", TRUE); | 1022 | childSetVisible("advanced_cut", TRUE); |
@@ -1889,6 +1912,7 @@ void LLPanelObject::clearCtrls() | |||
1889 | childSetEnabled("scale_taper", FALSE); | 1912 | childSetEnabled("scale_taper", FALSE); |
1890 | childSetEnabled( "advanced_cut", FALSE ); | 1913 | childSetEnabled( "advanced_cut", FALSE ); |
1891 | childSetEnabled( "advanced_dimple", FALSE ); | 1914 | childSetEnabled( "advanced_dimple", FALSE ); |
1915 | childSetVisible("advanced_slice", FALSE); | ||
1892 | } | 1916 | } |
1893 | 1917 | ||
1894 | // | 1918 | // |
diff --git a/linden/indra/newview/lltoolbrush.cpp b/linden/indra/newview/lltoolbrush.cpp index 0869cf3..214d773 100644 --- a/linden/indra/newview/lltoolbrush.cpp +++ b/linden/indra/newview/lltoolbrush.cpp | |||
@@ -96,7 +96,7 @@ LLToolBrushLand::LLToolBrushLand() | |||
96 | mGotHover(FALSE), | 96 | mGotHover(FALSE), |
97 | mBrushSelected(FALSE) | 97 | mBrushSelected(FALSE) |
98 | { | 98 | { |
99 | mBrushIndex = gSavedSettings.getS32("RadioLandBrushSize"); | 99 | mBrushIndex = gSavedSettings.getS32("LandBrushSize"); |
100 | } | 100 | } |
101 | 101 | ||
102 | void LLToolBrushLand::modifyLandAtPointGlobal(const LLVector3d &pos_global, | 102 | void LLToolBrushLand::modifyLandAtPointGlobal(const LLVector3d &pos_global, |
@@ -447,7 +447,7 @@ void LLToolBrushLand::render() | |||
447 | spot.mdV[VX] = floor( spot.mdV[VX] + 0.5 ); | 447 | spot.mdV[VX] = floor( spot.mdV[VX] + 0.5 ); |
448 | spot.mdV[VY] = floor( spot.mdV[VY] + 0.5 ); | 448 | spot.mdV[VY] = floor( spot.mdV[VY] + 0.5 ); |
449 | 449 | ||
450 | mBrushIndex = gSavedSettings.getS32("RadioLandBrushSize"); | 450 | mBrushIndex = gSavedSettings.getS32("LandBrushSize"); |
451 | region_list_t regions; | 451 | region_list_t regions; |
452 | determineAffectedRegions(regions, spot); | 452 | determineAffectedRegions(regions, spot); |
453 | 453 | ||
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp index b1cd9b6..9687e11 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" |
@@ -671,10 +672,13 @@ void init_menus() | |||
671 | // TomY TODO convert these two | 672 | // TomY TODO convert these two |
672 | LLMenuGL*menu; | 673 | LLMenuGL*menu; |
673 | 674 | ||
675 | // Advanced (Client) menu is XUI now! \o/ | ||
676 | /* | ||
674 | menu = new LLMenuGL(CLIENT_MENU_NAME); | 677 | menu = new LLMenuGL(CLIENT_MENU_NAME); |
675 | init_client_menu(menu); | 678 | init_client_menu(menu); |
676 | gMenuBarView->appendMenu( menu ); | 679 | gMenuBarView->appendMenu( menu ); |
677 | menu->updateParent(LLMenuGL::sMenuContainer); | 680 | menu->updateParent(LLMenuGL::sMenuContainer); |
681 | */ | ||
678 | 682 | ||
679 | menu = new LLMenuGL(SERVER_MENU_NAME); | 683 | menu = new LLMenuGL(SERVER_MENU_NAME); |
680 | init_server_menu(menu); | 684 | init_server_menu(menu); |
@@ -6059,6 +6063,18 @@ void queue_actions(LLFloaterScriptQueue* q, const std::string& noscriptmsg, cons | |||
6059 | } | 6063 | } |
6060 | } | 6064 | } |
6061 | 6065 | ||
6066 | |||
6067 | class LLToolsSetBulkPerms : public view_listener_t | ||
6068 | { | ||
6069 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
6070 | { | ||
6071 | LLFloaterBulkPermission* queue = NULL; | ||
6072 | queue = LLFloaterBulkPermission::create(); | ||
6073 | return true; | ||
6074 | } | ||
6075 | }; | ||
6076 | |||
6077 | |||
6062 | class LLToolsSelectedScriptAction : public view_listener_t | 6078 | class LLToolsSelectedScriptAction : public view_listener_t |
6063 | { | 6079 | { |
6064 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | 6080 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) |
@@ -7575,7 +7591,2119 @@ class LLWorldDayCycle : public view_listener_t | |||
7575 | 7591 | ||
7576 | 7592 | ||
7577 | 7593 | ||
7578 | static void addMenu(view_listener_t *menu, const std::string& name) | 7594 | //------------------------------------------------------------------- |
7595 | // Advanced menu | ||
7596 | //------------------------------------------------------------------- | ||
7597 | |||
7598 | |||
7599 | /////////////////// | ||
7600 | // SHOW CONSOLES // | ||
7601 | /////////////////// | ||
7602 | |||
7603 | |||
7604 | class LLAdvancedToggleConsole : public view_listener_t | ||
7605 | { | ||
7606 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
7607 | { | ||
7608 | std::string console_type = userdata.asString(); | ||
7609 | if ("frame" == console_type) | ||
7610 | { | ||
7611 | toggle_visibility( (void*)gDebugView->mFrameStatView ); | ||
7612 | } | ||
7613 | else if ("texture" == console_type) | ||
7614 | { | ||
7615 | toggle_visibility( (void*)gTextureView ); | ||
7616 | } | ||
7617 | else if ("debug" == console_type) | ||
7618 | { | ||
7619 | toggle_visibility( (void*)((LLView*)gDebugView->mDebugConsolep) ); | ||
7620 | } | ||
7621 | else if ("fast timers" == console_type) | ||
7622 | { | ||
7623 | toggle_visibility( (void*)gDebugView->mFastTimerView ); | ||
7624 | } | ||
7625 | else if ("memory" == console_type) | ||
7626 | { | ||
7627 | toggle_visibility( (void*)gDebugView->mMemoryView ); | ||
7628 | } | ||
7629 | return true; | ||
7630 | } | ||
7631 | }; | ||
7632 | |||
7633 | |||
7634 | class LLAdvancedCheckConsole : public view_listener_t | ||
7635 | { | ||
7636 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
7637 | { | ||
7638 | std::string console_type = userdata["data"].asString(); | ||
7639 | bool new_value = false; | ||
7640 | if ("frame" == console_type) | ||
7641 | { | ||
7642 | new_value = get_visibility( (void*)gDebugView->mFrameStatView ); | ||
7643 | } | ||
7644 | else if ("texture" == console_type) | ||
7645 | { | ||
7646 | new_value = get_visibility( (void*)gTextureView ); | ||
7647 | } | ||
7648 | else if ("debug" == console_type) | ||
7649 | { | ||
7650 | new_value = get_visibility( (void*)((LLView*)gDebugView->mDebugConsolep) ); | ||
7651 | } | ||
7652 | else if ("fast timers" == console_type) | ||
7653 | { | ||
7654 | new_value = get_visibility( (void*)gDebugView->mFastTimerView ); | ||
7655 | } | ||
7656 | else if ("memory" == console_type) | ||
7657 | { | ||
7658 | new_value = get_visibility( (void*)gDebugView->mMemoryView ); | ||
7659 | } | ||
7660 | |||
7661 | std::string control_name = userdata["control"].asString(); | ||
7662 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
7663 | return true; | ||
7664 | } | ||
7665 | }; | ||
7666 | |||
7667 | |||
7668 | |||
7669 | |||
7670 | ////////////////////////// | ||
7671 | // DUMP INFO TO CONSOLE // | ||
7672 | ////////////////////////// | ||
7673 | |||
7674 | |||
7675 | class LLAdvancedDumpInfoToConsole : public view_listener_t | ||
7676 | { | ||
7677 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
7678 | { | ||
7679 | std::string info_type = userdata.asString(); | ||
7680 | if ("region" == info_type) | ||
7681 | { | ||
7682 | handle_region_dump_settings(NULL); | ||
7683 | } | ||
7684 | else if ("group" == info_type) | ||
7685 | { | ||
7686 | handle_dump_group_info(NULL); | ||
7687 | } | ||
7688 | else if ("capabilities" == info_type) | ||
7689 | { | ||
7690 | handle_dump_capabilities_info(NULL); | ||
7691 | } | ||
7692 | return true; | ||
7693 | } | ||
7694 | }; | ||
7695 | |||
7696 | |||
7697 | |||
7698 | /////////////////////////////// | ||
7699 | // RELOAD SETTINGS OVERRIDES // | ||
7700 | /////////////////////////////// | ||
7701 | |||
7702 | |||
7703 | class LLAdvancedReloadSettingsOverrides : public view_listener_t | ||
7704 | { | ||
7705 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
7706 | { | ||
7707 | reload_personal_settings_overrides(NULL); | ||
7708 | return true; | ||
7709 | } | ||
7710 | }; | ||
7711 | |||
7712 | |||
7713 | |||
7714 | ////////////// | ||
7715 | // HUD INFO // | ||
7716 | ////////////// | ||
7717 | |||
7718 | |||
7719 | class LLAdvancedToggleHUDInfo : public view_listener_t | ||
7720 | { | ||
7721 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
7722 | { | ||
7723 | std::string info_type = userdata.asString(); | ||
7724 | if ("velocity" == info_type) | ||
7725 | { | ||
7726 | toggle_visibility( (void*)gVelocityBar ); | ||
7727 | } | ||
7728 | else if ("camera" == info_type) | ||
7729 | { | ||
7730 | gDisplayCameraPos = !(gDisplayCameraPos); | ||
7731 | } | ||
7732 | else if ("wind" == info_type) | ||
7733 | { | ||
7734 | gDisplayWindInfo = !(gDisplayWindInfo); | ||
7735 | } | ||
7736 | else if ("fov" == info_type) | ||
7737 | { | ||
7738 | gDisplayFOV = !(gDisplayFOV); | ||
7739 | } | ||
7740 | return true; | ||
7741 | } | ||
7742 | }; | ||
7743 | |||
7744 | class LLAdvancedCheckHUDInfo : public view_listener_t | ||
7745 | { | ||
7746 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
7747 | { | ||
7748 | std::string info_type = userdata["data"].asString(); | ||
7749 | bool new_value = false; | ||
7750 | if ("velocity" == info_type) | ||
7751 | { | ||
7752 | new_value = get_visibility( (void*)gVelocityBar ); | ||
7753 | } | ||
7754 | else if ("camera" == info_type) | ||
7755 | { | ||
7756 | new_value = gDisplayCameraPos; | ||
7757 | } | ||
7758 | else if ("wind" == info_type) | ||
7759 | { | ||
7760 | new_value = gDisplayWindInfo; | ||
7761 | } | ||
7762 | else if ("fov" == info_type) | ||
7763 | { | ||
7764 | new_value = gDisplayFOV; | ||
7765 | } | ||
7766 | |||
7767 | std::string control_name = userdata["control"].asString(); | ||
7768 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
7769 | |||
7770 | return true; | ||
7771 | } | ||
7772 | }; | ||
7773 | |||
7774 | |||
7775 | |||
7776 | /////////////////////// | ||
7777 | // CLEAR GROUP CACHE // | ||
7778 | /////////////////////// | ||
7779 | |||
7780 | |||
7781 | class LLAdvancedClearGroupCache : public view_listener_t | ||
7782 | { | ||
7783 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
7784 | { | ||
7785 | LLGroupMgr::debugClearAllGroups(NULL); | ||
7786 | return true; | ||
7787 | } | ||
7788 | }; | ||
7789 | |||
7790 | |||
7791 | |||
7792 | |||
7793 | ///////////////// | ||
7794 | // RENDER TYPE // | ||
7795 | ///////////////// | ||
7796 | |||
7797 | |||
7798 | U32 render_type_from_string(std::string render_type) | ||
7799 | { | ||
7800 | if ("simple" == render_type) | ||
7801 | { | ||
7802 | return LLPipeline::RENDER_TYPE_SIMPLE; | ||
7803 | } | ||
7804 | else if ("alpha" == render_type) | ||
7805 | { | ||
7806 | return LLPipeline::RENDER_TYPE_ALPHA; | ||
7807 | } | ||
7808 | else if ("tree" == render_type) | ||
7809 | { | ||
7810 | return LLPipeline::RENDER_TYPE_TREE; | ||
7811 | } | ||
7812 | else if ("avatar" == render_type) | ||
7813 | { | ||
7814 | return LLPipeline::RENDER_TYPE_AVATAR; | ||
7815 | } | ||
7816 | else if ("terrain" == render_type) | ||
7817 | { | ||
7818 | return LLPipeline::RENDER_TYPE_TERRAIN; | ||
7819 | } | ||
7820 | else if ("sky" == render_type) | ||
7821 | { | ||
7822 | return LLPipeline::RENDER_TYPE_SKY; | ||
7823 | } | ||
7824 | else if ("water" == render_type) | ||
7825 | { | ||
7826 | return LLPipeline::RENDER_TYPE_WATER; | ||
7827 | } | ||
7828 | else if ("ground" == render_type) | ||
7829 | { | ||
7830 | return LLPipeline::RENDER_TYPE_GROUND; | ||
7831 | } | ||
7832 | else if ("volume" == render_type) | ||
7833 | { | ||
7834 | return LLPipeline::RENDER_TYPE_VOLUME; | ||
7835 | } | ||
7836 | else if ("grass" == render_type) | ||
7837 | { | ||
7838 | return LLPipeline::RENDER_TYPE_GRASS; | ||
7839 | } | ||
7840 | else if ("clouds" == render_type) | ||
7841 | { | ||
7842 | return LLPipeline::RENDER_TYPE_CLOUDS; | ||
7843 | } | ||
7844 | else if ("particles" == render_type) | ||
7845 | { | ||
7846 | return LLPipeline::RENDER_TYPE_PARTICLES; | ||
7847 | } | ||
7848 | else if ("bump" == render_type) | ||
7849 | { | ||
7850 | return LLPipeline::RENDER_TYPE_BUMP; | ||
7851 | } | ||
7852 | else | ||
7853 | { | ||
7854 | return 0; | ||
7855 | } | ||
7856 | } | ||
7857 | |||
7858 | |||
7859 | class LLAdvancedToggleRenderType : public view_listener_t | ||
7860 | { | ||
7861 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
7862 | { | ||
7863 | U32 render_type = render_type_from_string( userdata.asString() ); | ||
7864 | if ( render_type != 0 ) | ||
7865 | { | ||
7866 | LLPipeline::toggleRenderTypeControl( (void*)render_type ); | ||
7867 | } | ||
7868 | return true; | ||
7869 | } | ||
7870 | }; | ||
7871 | |||
7872 | |||
7873 | class LLAdvancedCheckRenderType : public view_listener_t | ||
7874 | { | ||
7875 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
7876 | { | ||
7877 | U32 render_type = render_type_from_string( userdata["data"].asString() ); | ||
7878 | bool new_value = false; | ||
7879 | |||
7880 | if ( render_type != 0 ) | ||
7881 | { | ||
7882 | new_value = LLPipeline::hasRenderTypeControl( (void*)render_type ); | ||
7883 | } | ||
7884 | |||
7885 | std::string control_name = userdata["control"].asString(); | ||
7886 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
7887 | return true; | ||
7888 | } | ||
7889 | }; | ||
7890 | |||
7891 | |||
7892 | |||
7893 | ///////////// | ||
7894 | // FEATURE // | ||
7895 | ///////////// | ||
7896 | |||
7897 | |||
7898 | U32 feature_from_string(std::string feature) | ||
7899 | { | ||
7900 | if ("ui" == feature) | ||
7901 | { | ||
7902 | return LLPipeline::RENDER_DEBUG_FEATURE_UI; | ||
7903 | } | ||
7904 | else if ("selected" == feature) | ||
7905 | { | ||
7906 | return LLPipeline::RENDER_DEBUG_FEATURE_SELECTED; | ||
7907 | } | ||
7908 | else if ("highlighted" == feature) | ||
7909 | { | ||
7910 | return LLPipeline::RENDER_DEBUG_FEATURE_HIGHLIGHTED; | ||
7911 | } | ||
7912 | else if ("dynamic textures" == feature) | ||
7913 | { | ||
7914 | return LLPipeline::RENDER_DEBUG_FEATURE_DYNAMIC_TEXTURES; | ||
7915 | } | ||
7916 | else if ("foot shadows" == feature) | ||
7917 | { | ||
7918 | return LLPipeline::RENDER_DEBUG_FEATURE_FOOT_SHADOWS; | ||
7919 | } | ||
7920 | else if ("fog" == feature) | ||
7921 | { | ||
7922 | return LLPipeline::RENDER_DEBUG_FEATURE_FOG; | ||
7923 | } | ||
7924 | else if ("palette" == feature) | ||
7925 | { | ||
7926 | return LLPipeline::RENDER_DEBUG_FEATURE_PALETTE; | ||
7927 | } | ||
7928 | else if ("fr info" == feature) | ||
7929 | { | ||
7930 | return LLPipeline::RENDER_DEBUG_FEATURE_FR_INFO; | ||
7931 | } | ||
7932 | else if ("flexible" == feature) | ||
7933 | { | ||
7934 | return LLPipeline::RENDER_DEBUG_FEATURE_FLEXIBLE; | ||
7935 | } | ||
7936 | else | ||
7937 | { | ||
7938 | return 0; | ||
7939 | } | ||
7940 | }; | ||
7941 | |||
7942 | |||
7943 | class LLAdvancedToggleFeature : public view_listener_t | ||
7944 | { | ||
7945 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
7946 | { | ||
7947 | U32 feature = feature_from_string( userdata.asString() ); | ||
7948 | |||
7949 | if ( feature != 0 ) | ||
7950 | { | ||
7951 | LLPipeline::toggleRenderDebugFeature( (void*)feature ); | ||
7952 | } | ||
7953 | |||
7954 | return true; | ||
7955 | } | ||
7956 | }; | ||
7957 | |||
7958 | |||
7959 | class LLAdvancedCheckFeature : public view_listener_t | ||
7960 | { | ||
7961 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
7962 | { | ||
7963 | U32 feature = feature_from_string( userdata["data"].asString() ); | ||
7964 | bool new_value = false; | ||
7965 | |||
7966 | if ( feature != 0 ) | ||
7967 | { | ||
7968 | new_value = LLPipeline::toggleRenderDebugFeatureControl( (void*)feature ); | ||
7969 | } | ||
7970 | |||
7971 | std::string control_name = userdata["control"].asString(); | ||
7972 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
7973 | return true; | ||
7974 | } | ||
7975 | }; | ||
7976 | |||
7977 | |||
7978 | |||
7979 | ////////////////// | ||
7980 | // INFO DISPLAY // | ||
7981 | ////////////////// | ||
7982 | |||
7983 | |||
7984 | U32 info_display_from_string(std::string info_display) | ||
7985 | { | ||
7986 | if ("verify" == info_display) | ||
7987 | { | ||
7988 | return LLPipeline::RENDER_DEBUG_VERIFY; | ||
7989 | } | ||
7990 | else if ("bboxes" == info_display) | ||
7991 | { | ||
7992 | return LLPipeline::RENDER_DEBUG_BBOXES; | ||
7993 | } | ||
7994 | else if ("points" == info_display) | ||
7995 | { | ||
7996 | return LLPipeline::RENDER_DEBUG_POINTS; | ||
7997 | } | ||
7998 | else if ("octree" == info_display) | ||
7999 | { | ||
8000 | return LLPipeline::RENDER_DEBUG_OCTREE; | ||
8001 | } | ||
8002 | else if ("occlusion" == info_display) | ||
8003 | { | ||
8004 | return LLPipeline::RENDER_DEBUG_OCCLUSION; | ||
8005 | } | ||
8006 | else if ("render batches" == info_display) | ||
8007 | { | ||
8008 | return LLPipeline::RENDER_DEBUG_BATCH_SIZE; | ||
8009 | } | ||
8010 | else if ("texture anim" == info_display) | ||
8011 | { | ||
8012 | return LLPipeline::RENDER_DEBUG_TEXTURE_ANIM; | ||
8013 | } | ||
8014 | else if ("texture priority" == info_display) | ||
8015 | { | ||
8016 | return LLPipeline::RENDER_DEBUG_TEXTURE_PRIORITY; | ||
8017 | } | ||
8018 | else if ("shame" == info_display) | ||
8019 | { | ||
8020 | return LLPipeline::RENDER_DEBUG_SHAME; | ||
8021 | } | ||
8022 | else if ("texture area" == info_display) | ||
8023 | { | ||
8024 | return LLPipeline::RENDER_DEBUG_TEXTURE_AREA; | ||
8025 | } | ||
8026 | else if ("face area" == info_display) | ||
8027 | { | ||
8028 | return LLPipeline::RENDER_DEBUG_FACE_AREA; | ||
8029 | } | ||
8030 | else if ("picking" == info_display) | ||
8031 | { | ||
8032 | return LLPipeline::RENDER_DEBUG_PICKING; | ||
8033 | } | ||
8034 | else if ("lights" == info_display) | ||
8035 | { | ||
8036 | return LLPipeline::RENDER_DEBUG_LIGHTS; | ||
8037 | } | ||
8038 | else if ("particles" == info_display) | ||
8039 | { | ||
8040 | return LLPipeline::RENDER_DEBUG_PARTICLES; | ||
8041 | } | ||
8042 | else if ("composition" == info_display) | ||
8043 | { | ||
8044 | return LLPipeline::RENDER_DEBUG_COMPOSITION; | ||
8045 | } | ||
8046 | else if ("glow" == info_display) | ||
8047 | { | ||
8048 | return LLPipeline::RENDER_DEBUG_GLOW; | ||
8049 | } | ||
8050 | else | ||
8051 | { | ||
8052 | return 0; | ||
8053 | } | ||
8054 | }; | ||
8055 | |||
8056 | |||
8057 | class LLAdvancedToggleInfoDisplay : public view_listener_t | ||
8058 | { | ||
8059 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8060 | { | ||
8061 | U32 info_display = info_display_from_string( userdata.asString() ); | ||
8062 | |||
8063 | if ( info_display != 0 ) | ||
8064 | { | ||
8065 | LLPipeline::toggleRenderDebug( (void*)info_display ); | ||
8066 | } | ||
8067 | |||
8068 | return true; | ||
8069 | } | ||
8070 | }; | ||
8071 | |||
8072 | |||
8073 | class LLAdvancedCheckInfoDisplay : public view_listener_t | ||
8074 | { | ||
8075 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8076 | { | ||
8077 | U32 info_display = info_display_from_string( userdata["data"].asString() ); | ||
8078 | bool new_value = false; | ||
8079 | |||
8080 | if ( info_display != 0 ) | ||
8081 | { | ||
8082 | new_value = LLPipeline::toggleRenderDebugControl( (void*)info_display ); | ||
8083 | } | ||
8084 | |||
8085 | std::string control_name = userdata["control"].asString(); | ||
8086 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8087 | return true; | ||
8088 | } | ||
8089 | }; | ||
8090 | |||
8091 | |||
8092 | |||
8093 | /////////////////// | ||
8094 | // SELECT BUFFER // | ||
8095 | /////////////////// | ||
8096 | |||
8097 | |||
8098 | class LLAdvancedToggleSelectBuffer : public view_listener_t | ||
8099 | { | ||
8100 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8101 | { | ||
8102 | gDebugSelect = !(gDebugSelect); | ||
8103 | return true; | ||
8104 | } | ||
8105 | }; | ||
8106 | |||
8107 | class LLAdvancedCheckSelectBuffer : public view_listener_t | ||
8108 | { | ||
8109 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8110 | { | ||
8111 | bool new_value = gDebugSelect; | ||
8112 | std::string control_name = userdata["control"].asString(); | ||
8113 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8114 | return true; | ||
8115 | } | ||
8116 | }; | ||
8117 | |||
8118 | |||
8119 | |||
8120 | ///////////////////////// | ||
8121 | // RANDOMIZE FRAMERATE // | ||
8122 | ///////////////////////// | ||
8123 | |||
8124 | |||
8125 | class LLAdvancedToggleRandomizeFramerate : public view_listener_t | ||
8126 | { | ||
8127 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8128 | { | ||
8129 | gRandomizeFramerate = !(gRandomizeFramerate); | ||
8130 | return true; | ||
8131 | } | ||
8132 | }; | ||
8133 | |||
8134 | class LLAdvancedCheckRandomizeFramerate : public view_listener_t | ||
8135 | { | ||
8136 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8137 | { | ||
8138 | bool new_value = gRandomizeFramerate; | ||
8139 | std::string control_name = userdata["control"].asString(); | ||
8140 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8141 | return true; | ||
8142 | } | ||
8143 | }; | ||
8144 | |||
8145 | |||
8146 | |||
8147 | ///////////////////////// | ||
8148 | // PERIODIC SLOW FRAME // | ||
8149 | ///////////////////////// | ||
8150 | |||
8151 | |||
8152 | class LLAdvancedTogglePeriodicSlowFrame : public view_listener_t | ||
8153 | { | ||
8154 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8155 | { | ||
8156 | gPeriodicSlowFrame = !(gPeriodicSlowFrame); | ||
8157 | return true; | ||
8158 | } | ||
8159 | }; | ||
8160 | |||
8161 | class LLAdvancedCheckPeriodicSlowFrame : public view_listener_t | ||
8162 | { | ||
8163 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8164 | { | ||
8165 | bool new_value = gPeriodicSlowFrame; | ||
8166 | std::string control_name = userdata["control"].asString(); | ||
8167 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8168 | return true; | ||
8169 | } | ||
8170 | }; | ||
8171 | |||
8172 | |||
8173 | |||
8174 | //////////////// | ||
8175 | // FRAME TEST // | ||
8176 | //////////////// | ||
8177 | |||
8178 | |||
8179 | class LLAdvancedToggleFrameTest : public view_listener_t | ||
8180 | { | ||
8181 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8182 | { | ||
8183 | LLPipeline::sRenderFrameTest = !(LLPipeline::sRenderFrameTest); | ||
8184 | return true; | ||
8185 | } | ||
8186 | }; | ||
8187 | |||
8188 | class LLAdvancedCheckFrameTest : public view_listener_t | ||
8189 | { | ||
8190 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8191 | { | ||
8192 | bool new_value = LLPipeline::sRenderFrameTest; | ||
8193 | std::string control_name = userdata["control"].asString(); | ||
8194 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8195 | return true; | ||
8196 | } | ||
8197 | }; | ||
8198 | |||
8199 | |||
8200 | |||
8201 | /////////////////////////// | ||
8202 | // HIDE SELECTED OBJECTS // | ||
8203 | /////////////////////////// | ||
8204 | |||
8205 | |||
8206 | class LLAdvancedToggleHideSelectedObjects : public view_listener_t | ||
8207 | { | ||
8208 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8209 | { | ||
8210 | gHideSelectedObjects = !(gHideSelectedObjects); | ||
8211 | return true; | ||
8212 | } | ||
8213 | }; | ||
8214 | |||
8215 | class LLAdvancedCheckHideSelectedObjects : public view_listener_t | ||
8216 | { | ||
8217 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8218 | { | ||
8219 | bool new_value = gHideSelectedObjects; | ||
8220 | std::string control_name = userdata["control"].asString(); | ||
8221 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8222 | return true; | ||
8223 | } | ||
8224 | }; | ||
8225 | |||
8226 | |||
8227 | |||
8228 | /////////////////////////// | ||
8229 | // SELECTED TEXTURE INFO // | ||
8230 | /////////////////////////// | ||
8231 | |||
8232 | |||
8233 | class LLAdvancedSelectedTextureInfo : public view_listener_t | ||
8234 | { | ||
8235 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8236 | { | ||
8237 | handle_selected_texture_info(NULL); | ||
8238 | return true; | ||
8239 | } | ||
8240 | }; | ||
8241 | |||
8242 | |||
8243 | |||
8244 | ////////////////////// | ||
8245 | // TOGGLE WIREFRAME // | ||
8246 | ////////////////////// | ||
8247 | |||
8248 | |||
8249 | class LLAdvancedToggleWireframe : public view_listener_t | ||
8250 | { | ||
8251 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8252 | { | ||
8253 | gUseWireframe = !(gUseWireframe); | ||
8254 | return true; | ||
8255 | } | ||
8256 | }; | ||
8257 | |||
8258 | class LLAdvancedCheckWireframe : public view_listener_t | ||
8259 | { | ||
8260 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8261 | { | ||
8262 | bool new_value = gUseWireframe; | ||
8263 | std::string control_name = userdata["control"].asString(); | ||
8264 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8265 | return true; | ||
8266 | } | ||
8267 | }; | ||
8268 | |||
8269 | |||
8270 | |||
8271 | ////////////////////// | ||
8272 | // DISABLE TEXTURES // | ||
8273 | ////////////////////// | ||
8274 | |||
8275 | |||
8276 | class LLAdvancedToggleDisableTextures : public view_listener_t | ||
8277 | { | ||
8278 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8279 | { | ||
8280 | menu_toggle_variable((void*)&LLViewerImage::sDontLoadVolumeTextures); | ||
8281 | return true; | ||
8282 | } | ||
8283 | }; | ||
8284 | |||
8285 | class LLAdvancedCheckDisableTextures : public view_listener_t | ||
8286 | { | ||
8287 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8288 | { | ||
8289 | bool new_value = menu_check_variable((void*)&LLViewerImage::sDontLoadVolumeTextures); | ||
8290 | std::string control_name = userdata["control"].asString(); | ||
8291 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8292 | return true; | ||
8293 | } | ||
8294 | }; | ||
8295 | |||
8296 | |||
8297 | |||
8298 | ////////////////////////// | ||
8299 | // DUMP SCRIPTED CAMERA // | ||
8300 | ////////////////////////// | ||
8301 | |||
8302 | |||
8303 | class LLAdvancedDumpScriptedCamera : public view_listener_t | ||
8304 | { | ||
8305 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8306 | { | ||
8307 | handle_dump_followcam(NULL); | ||
8308 | return true; | ||
8309 | } | ||
8310 | }; | ||
8311 | |||
8312 | |||
8313 | |||
8314 | ////////////////////////////// | ||
8315 | // DUMP REGION OBJECT CACHE // | ||
8316 | ////////////////////////////// | ||
8317 | |||
8318 | |||
8319 | class LLAdvancedDumpRegionObjectCache : public view_listener_t | ||
8320 | { | ||
8321 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8322 | { | ||
8323 | handle_dump_region_object_cache(NULL); | ||
8324 | return true; | ||
8325 | } | ||
8326 | }; | ||
8327 | |||
8328 | |||
8329 | |||
8330 | //////////////// | ||
8331 | // SLURL TEST // | ||
8332 | //////////////// | ||
8333 | |||
8334 | |||
8335 | class LLAdvancedSLURLTest : public view_listener_t | ||
8336 | { | ||
8337 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8338 | { | ||
8339 | handle_slurl_test(NULL); | ||
8340 | return true; | ||
8341 | } | ||
8342 | }; | ||
8343 | |||
8344 | |||
8345 | |||
8346 | //////////////////////// | ||
8347 | // TOGGLE EDITABLE UI // | ||
8348 | //////////////////////// | ||
8349 | |||
8350 | |||
8351 | class LLAdvancedToggleEditableUI : public view_listener_t | ||
8352 | { | ||
8353 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8354 | { | ||
8355 | edit_ui(NULL); | ||
8356 | return true; | ||
8357 | } | ||
8358 | }; | ||
8359 | |||
8360 | // *TODO: Add corresponding "Check" for EditableUI, so it can | ||
8361 | // become a menu_item_check. Need to add check_edit_ui(void*) | ||
8362 | // or functional equivalent to do that. | ||
8363 | |||
8364 | |||
8365 | |||
8366 | ////////////////////// | ||
8367 | // ASYNC KEYSTROKES // | ||
8368 | ////////////////////// | ||
8369 | |||
8370 | |||
8371 | class LLAdvancedToggleAsyncKeystrokes : public view_listener_t | ||
8372 | { | ||
8373 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8374 | { | ||
8375 | gHandleKeysAsync = !(gHandleKeysAsync); | ||
8376 | return true; | ||
8377 | } | ||
8378 | }; | ||
8379 | |||
8380 | class LLAdvancedCheckAsyncKeystrokes : public view_listener_t | ||
8381 | { | ||
8382 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8383 | { | ||
8384 | bool new_value = gHandleKeysAsync; | ||
8385 | std::string control_name = userdata["control"].asString(); | ||
8386 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8387 | return true; | ||
8388 | } | ||
8389 | }; | ||
8390 | |||
8391 | |||
8392 | |||
8393 | ///////////////////// | ||
8394 | // DUMP SELECT MGR // | ||
8395 | ///////////////////// | ||
8396 | |||
8397 | |||
8398 | class LLAdvancedDumpSelectMgr : public view_listener_t | ||
8399 | { | ||
8400 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8401 | { | ||
8402 | dump_select_mgr(NULL); | ||
8403 | return true; | ||
8404 | } | ||
8405 | }; | ||
8406 | |||
8407 | |||
8408 | |||
8409 | //////////////////// | ||
8410 | // DUMP INVENTORY // | ||
8411 | //////////////////// | ||
8412 | |||
8413 | |||
8414 | class LLAdvancedDumpInventory : public view_listener_t | ||
8415 | { | ||
8416 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8417 | { | ||
8418 | dump_inventory(NULL); | ||
8419 | return true; | ||
8420 | } | ||
8421 | }; | ||
8422 | |||
8423 | |||
8424 | |||
8425 | /////////////////////// | ||
8426 | // DUMP FOCUS HOLDER // | ||
8427 | /////////////////////// | ||
8428 | |||
8429 | |||
8430 | class LLAdvancedDumpFocusHolder : public view_listener_t | ||
8431 | { | ||
8432 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8433 | { | ||
8434 | handle_dump_focus(NULL); | ||
8435 | return true; | ||
8436 | } | ||
8437 | }; | ||
8438 | |||
8439 | |||
8440 | |||
8441 | //////////////////////////////// | ||
8442 | // PRINT SELECTED OBJECT INFO // | ||
8443 | //////////////////////////////// | ||
8444 | |||
8445 | |||
8446 | class LLAdvancedPrintSelectedObjectInfo : public view_listener_t | ||
8447 | { | ||
8448 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8449 | { | ||
8450 | print_object_info(NULL); | ||
8451 | return true; | ||
8452 | } | ||
8453 | }; | ||
8454 | |||
8455 | |||
8456 | |||
8457 | ////////////////////// | ||
8458 | // PRINT AGENT INFO // | ||
8459 | ////////////////////// | ||
8460 | |||
8461 | |||
8462 | class LLAdvancedPrintAgentInfo : public view_listener_t | ||
8463 | { | ||
8464 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8465 | { | ||
8466 | print_agent_nvpairs(NULL); | ||
8467 | return true; | ||
8468 | } | ||
8469 | }; | ||
8470 | |||
8471 | |||
8472 | |||
8473 | //////////////////////////////// | ||
8474 | // PRINT TEXTURE MEMORY STATS // | ||
8475 | //////////////////////////////// | ||
8476 | |||
8477 | |||
8478 | class LLAdvancedPrintTextureMemoryStats : public view_listener_t | ||
8479 | { | ||
8480 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8481 | { | ||
8482 | output_statistics(NULL); | ||
8483 | return true; | ||
8484 | } | ||
8485 | }; | ||
8486 | |||
8487 | |||
8488 | |||
8489 | ////////////////////// | ||
8490 | // DEBUG SELECT MGR // | ||
8491 | ////////////////////// | ||
8492 | |||
8493 | |||
8494 | class LLAdvancedToggleDebugSelectMgr : public view_listener_t | ||
8495 | { | ||
8496 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8497 | { | ||
8498 | gDebugSelectMgr = !(gDebugSelectMgr); | ||
8499 | return true; | ||
8500 | } | ||
8501 | }; | ||
8502 | |||
8503 | class LLAdvancedCheckDebugSelectMgr : public view_listener_t | ||
8504 | { | ||
8505 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8506 | { | ||
8507 | bool new_value = gDebugSelectMgr; | ||
8508 | std::string control_name = userdata["control"].asString(); | ||
8509 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8510 | return true; | ||
8511 | } | ||
8512 | }; | ||
8513 | |||
8514 | |||
8515 | |||
8516 | ////////////////// | ||
8517 | // DEBUG CLICKS // | ||
8518 | ////////////////// | ||
8519 | |||
8520 | |||
8521 | class LLAdvancedToggleDebugClicks : public view_listener_t | ||
8522 | { | ||
8523 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8524 | { | ||
8525 | gDebugClicks = !(gDebugClicks); | ||
8526 | return true; | ||
8527 | } | ||
8528 | }; | ||
8529 | |||
8530 | class LLAdvancedCheckDebugClicks : public view_listener_t | ||
8531 | { | ||
8532 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8533 | { | ||
8534 | bool new_value = gDebugClicks; | ||
8535 | std::string control_name = userdata["control"].asString(); | ||
8536 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8537 | return true; | ||
8538 | } | ||
8539 | }; | ||
8540 | |||
8541 | |||
8542 | |||
8543 | ///////////////// | ||
8544 | // DEBUG VIEWS // | ||
8545 | ///////////////// | ||
8546 | |||
8547 | |||
8548 | class LLAdvancedToggleDebugViews : public view_listener_t | ||
8549 | { | ||
8550 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8551 | { | ||
8552 | LLView::sDebugRects = !(LLView::sDebugRects); | ||
8553 | return true; | ||
8554 | } | ||
8555 | }; | ||
8556 | |||
8557 | class LLAdvancedCheckDebugViews : public view_listener_t | ||
8558 | { | ||
8559 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8560 | { | ||
8561 | bool new_value = LLView::sDebugRects; | ||
8562 | std::string control_name = userdata["control"].asString(); | ||
8563 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8564 | return true; | ||
8565 | } | ||
8566 | }; | ||
8567 | |||
8568 | |||
8569 | |||
8570 | /////////////////////// | ||
8571 | // XUI NAME TOOLTIPS // | ||
8572 | /////////////////////// | ||
8573 | |||
8574 | |||
8575 | class LLAdvancedToggleXUINameTooltips : public view_listener_t | ||
8576 | { | ||
8577 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8578 | { | ||
8579 | toggle_show_xui_names(NULL); | ||
8580 | return true; | ||
8581 | } | ||
8582 | }; | ||
8583 | |||
8584 | class LLAdvancedCheckXUINameTooltips : public view_listener_t | ||
8585 | { | ||
8586 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8587 | { | ||
8588 | bool new_value = check_show_xui_names(NULL); | ||
8589 | std::string control_name = userdata["control"].asString(); | ||
8590 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8591 | return true; | ||
8592 | } | ||
8593 | }; | ||
8594 | |||
8595 | |||
8596 | |||
8597 | //////////////////////// | ||
8598 | // DEBUG MOUSE EVENTS // | ||
8599 | //////////////////////// | ||
8600 | |||
8601 | |||
8602 | class LLAdvancedToggleDebugMouseEvents : public view_listener_t | ||
8603 | { | ||
8604 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8605 | { | ||
8606 | LLView::sDebugMouseHandling = !(LLView::sDebugMouseHandling); | ||
8607 | return true; | ||
8608 | } | ||
8609 | }; | ||
8610 | |||
8611 | class LLAdvancedCheckDebugMouseEvents : public view_listener_t | ||
8612 | { | ||
8613 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8614 | { | ||
8615 | bool new_value = LLView::sDebugMouseHandling; | ||
8616 | std::string control_name = userdata["control"].asString(); | ||
8617 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8618 | return true; | ||
8619 | } | ||
8620 | }; | ||
8621 | |||
8622 | |||
8623 | |||
8624 | //////////////// | ||
8625 | // DEBUG KEYS // | ||
8626 | //////////////// | ||
8627 | |||
8628 | |||
8629 | class LLAdvancedToggleDebugKeys : public view_listener_t | ||
8630 | { | ||
8631 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8632 | { | ||
8633 | LLView::sDebugKeys = !(LLView::sDebugKeys); | ||
8634 | return true; | ||
8635 | } | ||
8636 | }; | ||
8637 | |||
8638 | class LLAdvancedCheckDebugKeys : public view_listener_t | ||
8639 | { | ||
8640 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8641 | { | ||
8642 | bool new_value = LLView::sDebugKeys; | ||
8643 | std::string control_name = userdata["control"].asString(); | ||
8644 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8645 | return true; | ||
8646 | } | ||
8647 | }; | ||
8648 | |||
8649 | |||
8650 | |||
8651 | /////////////////////// | ||
8652 | // DEBUG WINDOW PROC // | ||
8653 | /////////////////////// | ||
8654 | |||
8655 | |||
8656 | class LLAdvancedToggleDebugWindowProc : public view_listener_t | ||
8657 | { | ||
8658 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8659 | { | ||
8660 | gDebugWindowProc = !(gDebugWindowProc); | ||
8661 | return true; | ||
8662 | } | ||
8663 | }; | ||
8664 | |||
8665 | class LLAdvancedCheckDebugWindowProc : public view_listener_t | ||
8666 | { | ||
8667 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8668 | { | ||
8669 | bool new_value = gDebugWindowProc; | ||
8670 | std::string control_name = userdata["control"].asString(); | ||
8671 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8672 | return true; | ||
8673 | } | ||
8674 | }; | ||
8675 | |||
8676 | |||
8677 | |||
8678 | //////////////////////////// | ||
8679 | // DEBUG TEXT EDITOR TIPS // | ||
8680 | //////////////////////////// | ||
8681 | |||
8682 | |||
8683 | class LLAdvancedToggleDebugTextEditorTips : public view_listener_t | ||
8684 | { | ||
8685 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8686 | { | ||
8687 | gDebugTextEditorTips = !(gDebugTextEditorTips); | ||
8688 | return true; | ||
8689 | } | ||
8690 | }; | ||
8691 | |||
8692 | class LLAdvancedCheckDebugTextEditorTips : public view_listener_t | ||
8693 | { | ||
8694 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8695 | { | ||
8696 | bool new_value = gDebugTextEditorTips; | ||
8697 | std::string control_name = userdata["control"].asString(); | ||
8698 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8699 | return true; | ||
8700 | } | ||
8701 | }; | ||
8702 | |||
8703 | |||
8704 | |||
8705 | /////////////////////// | ||
8706 | // SHOW FLOATER TEST // | ||
8707 | /////////////////////// | ||
8708 | |||
8709 | |||
8710 | class LLAdvancedShowFloaterTest : public view_listener_t | ||
8711 | { | ||
8712 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8713 | { | ||
8714 | LLFloaterTest::show(NULL); | ||
8715 | return true; | ||
8716 | } | ||
8717 | }; | ||
8718 | |||
8719 | |||
8720 | |||
8721 | ///////////////////////// | ||
8722 | // EXPORT MENUS TO XML // | ||
8723 | ///////////////////////// | ||
8724 | |||
8725 | |||
8726 | class LLAdvancedExportMenusToXML : public view_listener_t | ||
8727 | { | ||
8728 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8729 | { | ||
8730 | handle_export_menus_to_xml(NULL); | ||
8731 | return true; | ||
8732 | } | ||
8733 | }; | ||
8734 | |||
8735 | |||
8736 | |||
8737 | ///////////// | ||
8738 | // EDIT UI // | ||
8739 | ///////////// | ||
8740 | |||
8741 | |||
8742 | class LLAdvancedEditUI : public view_listener_t | ||
8743 | { | ||
8744 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8745 | { | ||
8746 | LLFloaterEditUI::show(NULL); | ||
8747 | return true; | ||
8748 | } | ||
8749 | }; | ||
8750 | |||
8751 | |||
8752 | |||
8753 | ////////////////////// | ||
8754 | // LOAD UI FROM XML // | ||
8755 | ////////////////////// | ||
8756 | |||
8757 | |||
8758 | class LLAdvancedLoadUIFromXML : public view_listener_t | ||
8759 | { | ||
8760 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8761 | { | ||
8762 | handle_load_from_xml(NULL); | ||
8763 | return true; | ||
8764 | } | ||
8765 | }; | ||
8766 | |||
8767 | |||
8768 | |||
8769 | //////////////////// | ||
8770 | // SAVE UI TO XML // | ||
8771 | //////////////////// | ||
8772 | |||
8773 | |||
8774 | class LLAdvancedSaveUIToXML : public view_listener_t | ||
8775 | { | ||
8776 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8777 | { | ||
8778 | handle_save_to_xml(NULL); | ||
8779 | return true; | ||
8780 | } | ||
8781 | }; | ||
8782 | |||
8783 | |||
8784 | |||
8785 | /////////////// | ||
8786 | // XUI NAMES // | ||
8787 | /////////////// | ||
8788 | |||
8789 | |||
8790 | class LLAdvancedToggleXUINames : public view_listener_t | ||
8791 | { | ||
8792 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8793 | { | ||
8794 | toggle_show_xui_names(NULL); | ||
8795 | return true; | ||
8796 | } | ||
8797 | }; | ||
8798 | |||
8799 | class LLAdvancedCheckXUINames : public view_listener_t | ||
8800 | { | ||
8801 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8802 | { | ||
8803 | bool new_value = check_show_xui_names(NULL); | ||
8804 | std::string control_name = userdata["control"].asString(); | ||
8805 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8806 | return true; | ||
8807 | } | ||
8808 | }; | ||
8809 | |||
8810 | |||
8811 | |||
8812 | //////////////////////// | ||
8813 | // GRAB BAKED TEXTURE // | ||
8814 | //////////////////////// | ||
8815 | |||
8816 | |||
8817 | class LLAdvancedGrabBakedTexture : public view_listener_t | ||
8818 | { | ||
8819 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8820 | { | ||
8821 | std::string texture_type = userdata.asString(); | ||
8822 | if ("eyes" == texture_type) | ||
8823 | { | ||
8824 | handle_grab_texture( (void*)LLVOAvatar::TEX_EYES_BAKED ); | ||
8825 | } | ||
8826 | else if ("head" == texture_type) | ||
8827 | { | ||
8828 | handle_grab_texture( (void*)LLVOAvatar::TEX_HEAD_BAKED ); | ||
8829 | } | ||
8830 | else if ("upper" == texture_type) | ||
8831 | { | ||
8832 | handle_grab_texture( (void*)LLVOAvatar::TEX_UPPER_BAKED ); | ||
8833 | } | ||
8834 | else if ("lower" == texture_type) | ||
8835 | { | ||
8836 | handle_grab_texture( (void*)LLVOAvatar::TEX_SKIRT_BAKED ); | ||
8837 | } | ||
8838 | else if ("skirt" == texture_type) | ||
8839 | { | ||
8840 | handle_grab_texture( (void*)LLVOAvatar::TEX_SKIRT_BAKED ); | ||
8841 | } | ||
8842 | |||
8843 | return true; | ||
8844 | } | ||
8845 | }; | ||
8846 | |||
8847 | class LLAdvancedEnableGrabBakedTexture : public view_listener_t | ||
8848 | { | ||
8849 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8850 | { | ||
8851 | std::string texture_type = userdata["data"].asString(); | ||
8852 | bool new_value = false; | ||
8853 | |||
8854 | if ("iris" == texture_type) | ||
8855 | { | ||
8856 | new_value = enable_grab_texture( (void*)LLVOAvatar::TEX_EYES_BAKED ); | ||
8857 | } | ||
8858 | else if ("head" == texture_type) | ||
8859 | { | ||
8860 | new_value = enable_grab_texture( (void*)LLVOAvatar::TEX_HEAD_BAKED ); | ||
8861 | } | ||
8862 | else if ("upper" == texture_type) | ||
8863 | { | ||
8864 | new_value = enable_grab_texture( (void*)LLVOAvatar::TEX_UPPER_BAKED ); | ||
8865 | } | ||
8866 | else if ("lower" == texture_type) | ||
8867 | { | ||
8868 | new_value = enable_grab_texture( (void*)LLVOAvatar::TEX_LOWER_BAKED ); | ||
8869 | } | ||
8870 | else if ("skirt" == texture_type) | ||
8871 | { | ||
8872 | new_value = enable_grab_texture( (void*)LLVOAvatar::TEX_SKIRT_BAKED ); | ||
8873 | } | ||
8874 | |||
8875 | std::string control_name = userdata["control"].asString(); | ||
8876 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8877 | return true; | ||
8878 | } | ||
8879 | }; | ||
8880 | |||
8881 | |||
8882 | |||
8883 | ////////////////////// | ||
8884 | // ALLOW IDLE / AFK // | ||
8885 | ////////////////////// | ||
8886 | |||
8887 | |||
8888 | class LLAdvancedToggleAllowIdleAFK : public view_listener_t | ||
8889 | { | ||
8890 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8891 | { | ||
8892 | gAllowIdleAFK = !(gAllowIdleAFK); | ||
8893 | return true; | ||
8894 | } | ||
8895 | }; | ||
8896 | |||
8897 | class LLAdvancedCheckAllowIdleAFK : public view_listener_t | ||
8898 | { | ||
8899 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8900 | { | ||
8901 | bool new_value = gAllowIdleAFK; | ||
8902 | std::string control_name = userdata["control"].asString(); | ||
8903 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
8904 | return true; | ||
8905 | } | ||
8906 | }; | ||
8907 | |||
8908 | |||
8909 | |||
8910 | /////////////////////// | ||
8911 | // APPEARANCE TO XML // | ||
8912 | /////////////////////// | ||
8913 | |||
8914 | |||
8915 | class LLAdvancedAppearanceToXML : public view_listener_t | ||
8916 | { | ||
8917 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8918 | { | ||
8919 | LLVOAvatar::dumpArchetypeXML(NULL); | ||
8920 | return true; | ||
8921 | } | ||
8922 | }; | ||
8923 | |||
8924 | |||
8925 | |||
8926 | /////////////////////////////// | ||
8927 | // TOGGLE CHARACTER GEOMETRY // | ||
8928 | /////////////////////////////// | ||
8929 | |||
8930 | |||
8931 | class LLAdvancedToggleCharacterGeometry : public view_listener_t | ||
8932 | { | ||
8933 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8934 | { | ||
8935 | handle_god_request_avatar_geometry(NULL); | ||
8936 | return true; | ||
8937 | } | ||
8938 | }; | ||
8939 | |||
8940 | class LLAdvancedEnableCharacterGeometry : public view_listener_t | ||
8941 | { | ||
8942 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8943 | { | ||
8944 | enable_god_customer_service(NULL); | ||
8945 | return true; | ||
8946 | } | ||
8947 | }; | ||
8948 | |||
8949 | |||
8950 | |||
8951 | ///////////////////////////// | ||
8952 | // TEST MALE / TEST FEMALE // | ||
8953 | ///////////////////////////// | ||
8954 | |||
8955 | |||
8956 | class LLAdvancedTestMale : public view_listener_t | ||
8957 | { | ||
8958 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8959 | { | ||
8960 | handle_test_male(NULL); | ||
8961 | return true; | ||
8962 | } | ||
8963 | }; | ||
8964 | |||
8965 | |||
8966 | class LLAdvancedTestFemale : public view_listener_t | ||
8967 | { | ||
8968 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8969 | { | ||
8970 | handle_test_female(NULL); | ||
8971 | return true; | ||
8972 | } | ||
8973 | }; | ||
8974 | |||
8975 | |||
8976 | |||
8977 | /////////////// | ||
8978 | // TOGGLE PG // | ||
8979 | /////////////// | ||
8980 | |||
8981 | |||
8982 | class LLAdvancedTogglePG : public view_listener_t | ||
8983 | { | ||
8984 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8985 | { | ||
8986 | handle_toggle_pg(NULL); | ||
8987 | return true; | ||
8988 | } | ||
8989 | }; | ||
8990 | |||
8991 | |||
8992 | |||
8993 | ///////////////////////// | ||
8994 | // ALLOW SELECT AVATAR // | ||
8995 | ///////////////////////// | ||
8996 | |||
8997 | |||
8998 | class LLAdvancedToggleAllowSelectAvatar : public view_listener_t | ||
8999 | { | ||
9000 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9001 | { | ||
9002 | gAllowSelectAvatar = !(gAllowSelectAvatar); | ||
9003 | return true; | ||
9004 | } | ||
9005 | }; | ||
9006 | |||
9007 | class LLAdvancedCheckAllowSelectAvatar : public view_listener_t | ||
9008 | { | ||
9009 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9010 | { | ||
9011 | bool new_value = gAllowSelectAvatar; | ||
9012 | std::string control_name = userdata["control"].asString(); | ||
9013 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9014 | return true; | ||
9015 | } | ||
9016 | }; | ||
9017 | |||
9018 | |||
9019 | |||
9020 | //////////////////////////// | ||
9021 | // ALLOW TAP-TAP-HOLD RUN // | ||
9022 | //////////////////////////// | ||
9023 | |||
9024 | |||
9025 | class LLAdvancedToggleAllowTapTapHoldRun : public view_listener_t | ||
9026 | { | ||
9027 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9028 | { | ||
9029 | gAllowTapTapHoldRun = !(gAllowTapTapHoldRun); | ||
9030 | return true; | ||
9031 | } | ||
9032 | }; | ||
9033 | |||
9034 | class LLAdvancedCheckAllowTapTapHoldRun : public view_listener_t | ||
9035 | { | ||
9036 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9037 | { | ||
9038 | bool new_value = gAllowTapTapHoldRun; | ||
9039 | std::string control_name = userdata["control"].asString(); | ||
9040 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9041 | return true; | ||
9042 | } | ||
9043 | }; | ||
9044 | |||
9045 | |||
9046 | |||
9047 | ///////////////////////////// | ||
9048 | // FORCE PARAMS TO DEFAULT // | ||
9049 | ///////////////////////////// | ||
9050 | |||
9051 | |||
9052 | class LLAdvancedForceParamsToDefault : public view_listener_t | ||
9053 | { | ||
9054 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9055 | { | ||
9056 | LLAgent::clearVisualParams(NULL); | ||
9057 | return true; | ||
9058 | } | ||
9059 | }; | ||
9060 | |||
9061 | |||
9062 | |||
9063 | ////////////////////////// | ||
9064 | // RELOAD VERTEX SHADER // | ||
9065 | ////////////////////////// | ||
9066 | |||
9067 | |||
9068 | class LLAdvancedReloadVertexShader : public view_listener_t | ||
9069 | { | ||
9070 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9071 | { | ||
9072 | reload_vertex_shader(NULL); | ||
9073 | return true; | ||
9074 | } | ||
9075 | }; | ||
9076 | |||
9077 | |||
9078 | |||
9079 | //////////////////// | ||
9080 | // ANIMATION INFO // | ||
9081 | //////////////////// | ||
9082 | |||
9083 | |||
9084 | class LLAdvancedToggleAnimationInfo : public view_listener_t | ||
9085 | { | ||
9086 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9087 | { | ||
9088 | LLVOAvatar::sShowAnimationDebug = !(LLVOAvatar::sShowAnimationDebug); | ||
9089 | return true; | ||
9090 | } | ||
9091 | }; | ||
9092 | |||
9093 | class LLAdvancedCheckAnimationInfo : public view_listener_t | ||
9094 | { | ||
9095 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9096 | { | ||
9097 | bool new_value = LLVOAvatar::sShowAnimationDebug; | ||
9098 | std::string control_name = userdata["control"].asString(); | ||
9099 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9100 | return true; | ||
9101 | } | ||
9102 | }; | ||
9103 | |||
9104 | |||
9105 | |||
9106 | //////////////////////////// | ||
9107 | // SLOW MOTION ANIMATIONS // | ||
9108 | //////////////////////////// | ||
9109 | |||
9110 | |||
9111 | class LLAdvancedToggleSlowMotionAnimations : public view_listener_t | ||
9112 | { | ||
9113 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9114 | { | ||
9115 | slow_mo_animations(NULL); | ||
9116 | return true; | ||
9117 | } | ||
9118 | }; | ||
9119 | |||
9120 | // *TODO: Add a corresponding "Check" event for SlowMotionAnimations, | ||
9121 | // so that it can become a menu_item_check with the "X" indicator. | ||
9122 | // See indra/newview/skins/xui/en_us/menu_viewer.xml | ||
9123 | |||
9124 | |||
9125 | |||
9126 | ////////////////// | ||
9127 | // SHOW LOOK AT // | ||
9128 | ////////////////// | ||
9129 | |||
9130 | |||
9131 | class LLAdvancedToggleShowLookAt : public view_listener_t | ||
9132 | { | ||
9133 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9134 | { | ||
9135 | LLHUDEffectLookAt::sDebugLookAt = !(LLHUDEffectLookAt::sDebugLookAt); | ||
9136 | return true; | ||
9137 | } | ||
9138 | }; | ||
9139 | |||
9140 | class LLAdvancedCheckShowLookAt : public view_listener_t | ||
9141 | { | ||
9142 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9143 | { | ||
9144 | bool new_value = LLHUDEffectLookAt::sDebugLookAt; | ||
9145 | std::string control_name = userdata["control"].asString(); | ||
9146 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9147 | return true; | ||
9148 | } | ||
9149 | }; | ||
9150 | |||
9151 | |||
9152 | |||
9153 | /////////////////// | ||
9154 | // SHOW POINT AT // | ||
9155 | /////////////////// | ||
9156 | |||
9157 | |||
9158 | class LLAdvancedToggleShowPointAt : public view_listener_t | ||
9159 | { | ||
9160 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9161 | { | ||
9162 | LLHUDEffectPointAt::sDebugPointAt = !(LLHUDEffectPointAt::sDebugPointAt); | ||
9163 | return true; | ||
9164 | } | ||
9165 | }; | ||
9166 | |||
9167 | class LLAdvancedCheckShowPointAt : public view_listener_t | ||
9168 | { | ||
9169 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9170 | { | ||
9171 | bool new_value = LLHUDEffectPointAt::sDebugPointAt; | ||
9172 | std::string control_name = userdata["control"].asString(); | ||
9173 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9174 | return true; | ||
9175 | } | ||
9176 | }; | ||
9177 | |||
9178 | |||
9179 | |||
9180 | ///////////////////////// | ||
9181 | // DEBUG JOINT UPDATES // | ||
9182 | ///////////////////////// | ||
9183 | |||
9184 | |||
9185 | class LLAdvancedToggleDebugJointUpdates : public view_listener_t | ||
9186 | { | ||
9187 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9188 | { | ||
9189 | LLVOAvatar::sJointDebug = !(LLVOAvatar::sJointDebug); | ||
9190 | return true; | ||
9191 | } | ||
9192 | }; | ||
9193 | |||
9194 | class LLAdvancedCheckDebugJointUpdates : public view_listener_t | ||
9195 | { | ||
9196 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9197 | { | ||
9198 | bool new_value = LLVOAvatar::sJointDebug; | ||
9199 | std::string control_name = userdata["control"].asString(); | ||
9200 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9201 | return true; | ||
9202 | } | ||
9203 | }; | ||
9204 | |||
9205 | |||
9206 | |||
9207 | ///////////////// | ||
9208 | // DISABLE LOD // | ||
9209 | ///////////////// | ||
9210 | |||
9211 | |||
9212 | class LLAdvancedToggleDisableLOD : public view_listener_t | ||
9213 | { | ||
9214 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9215 | { | ||
9216 | LLViewerJoint::sDisableLOD = !(LLViewerJoint::sDisableLOD); | ||
9217 | return true; | ||
9218 | } | ||
9219 | }; | ||
9220 | |||
9221 | class LLAdvancedCheckDisableLOD : public view_listener_t | ||
9222 | { | ||
9223 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9224 | { | ||
9225 | bool new_value = LLViewerJoint::sDisableLOD; | ||
9226 | std::string control_name = userdata["control"].asString(); | ||
9227 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9228 | return true; | ||
9229 | } | ||
9230 | }; | ||
9231 | |||
9232 | |||
9233 | |||
9234 | ///////////////////////// | ||
9235 | // DEBUG CHARACTER VIS // | ||
9236 | ///////////////////////// | ||
9237 | |||
9238 | |||
9239 | class LLAdvancedToggleDebugCharacterVis : public view_listener_t | ||
9240 | { | ||
9241 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9242 | { | ||
9243 | LLVOAvatar::sDebugInvisible = !(LLVOAvatar::sDebugInvisible); | ||
9244 | return true; | ||
9245 | } | ||
9246 | }; | ||
9247 | |||
9248 | class LLAdvancedCheckDebugCharacterVis : public view_listener_t | ||
9249 | { | ||
9250 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9251 | { | ||
9252 | bool new_value = LLVOAvatar::sDebugInvisible; | ||
9253 | std::string control_name = userdata["control"].asString(); | ||
9254 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9255 | return true; | ||
9256 | } | ||
9257 | }; | ||
9258 | |||
9259 | |||
9260 | |||
9261 | ////////////////////////// | ||
9262 | // SHOW COLLISION PLANE // | ||
9263 | ////////////////////////// | ||
9264 | |||
9265 | /*************************** | ||
9266 | * | ||
9267 | * Disabled. See DEV-14477 | ||
9268 | * | ||
9269 | *************************** | ||
9270 | |||
9271 | class LLAdvancedToggleShowCollisionPlane : public view_listener_t | ||
9272 | { | ||
9273 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9274 | { | ||
9275 | LLVOAvatar::sShowFootPlane = !(LLVOAvatar::sShowFootPlane); | ||
9276 | return true; | ||
9277 | } | ||
9278 | }; | ||
9279 | |||
9280 | class LLAdvancedCheckShowCollisionPlane : public view_listener_t | ||
9281 | { | ||
9282 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9283 | { | ||
9284 | bool new_value = LLVOAvatar::sShowFootPlane; | ||
9285 | std::string control_name = userdata["control"].asString(); | ||
9286 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9287 | return true; | ||
9288 | } | ||
9289 | }; | ||
9290 | |||
9291 | ***************************/ | ||
9292 | |||
9293 | |||
9294 | ///////////////////////////// | ||
9295 | // SHOW COLLISION SKELETON // | ||
9296 | ///////////////////////////// | ||
9297 | |||
9298 | |||
9299 | class LLAdvancedToggleShowCollisionSkeleton : public view_listener_t | ||
9300 | { | ||
9301 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9302 | { | ||
9303 | LLVOAvatar::sShowCollisionVolumes = !(LLVOAvatar::sShowCollisionVolumes); | ||
9304 | return true; | ||
9305 | } | ||
9306 | }; | ||
9307 | |||
9308 | class LLAdvancedCheckShowCollisionSkeleton : public view_listener_t | ||
9309 | { | ||
9310 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9311 | { | ||
9312 | bool new_value = LLVOAvatar::sShowCollisionVolumes; | ||
9313 | std::string control_name = userdata["control"].asString(); | ||
9314 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9315 | return true; | ||
9316 | } | ||
9317 | }; | ||
9318 | |||
9319 | |||
9320 | |||
9321 | ////////////////////////// | ||
9322 | // DISPLAY AGENT TARGET // | ||
9323 | ////////////////////////// | ||
9324 | |||
9325 | |||
9326 | class LLAdvancedToggleDisplayAgentTarget : public view_listener_t | ||
9327 | { | ||
9328 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9329 | { | ||
9330 | LLAgent::sDebugDisplayTarget = !(LLAgent::sDebugDisplayTarget); | ||
9331 | return true; | ||
9332 | } | ||
9333 | }; | ||
9334 | |||
9335 | class LLAdvancedCheckDisplayAgentTarget : public view_listener_t | ||
9336 | { | ||
9337 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9338 | { | ||
9339 | bool new_value = LLAgent::sDebugDisplayTarget; | ||
9340 | std::string control_name = userdata["control"].asString(); | ||
9341 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9342 | return true; | ||
9343 | } | ||
9344 | }; | ||
9345 | |||
9346 | |||
9347 | |||
9348 | /////////////////////////// | ||
9349 | // DEBUG AVATAR ROTATION // | ||
9350 | /////////////////////////// | ||
9351 | |||
9352 | |||
9353 | class LLAdvancedToggleDebugAvatarRotation : public view_listener_t | ||
9354 | { | ||
9355 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9356 | { | ||
9357 | gDebugAvatarRotation = !(gDebugAvatarRotation); | ||
9358 | return true; | ||
9359 | } | ||
9360 | }; | ||
9361 | |||
9362 | class LLAdvancedCheckDebugAvatarRotation : public view_listener_t | ||
9363 | { | ||
9364 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9365 | { | ||
9366 | bool new_value = gDebugAvatarRotation; | ||
9367 | std::string control_name = userdata["control"].asString(); | ||
9368 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9369 | return true; | ||
9370 | } | ||
9371 | }; | ||
9372 | |||
9373 | |||
9374 | |||
9375 | ////////////////////// | ||
9376 | // DUMP ATTACHMENTS // | ||
9377 | ////////////////////// | ||
9378 | |||
9379 | |||
9380 | class LLAdvancedDumpAttachments : public view_listener_t | ||
9381 | { | ||
9382 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9383 | { | ||
9384 | handle_dump_attachments(NULL); | ||
9385 | return true; | ||
9386 | } | ||
9387 | }; | ||
9388 | |||
9389 | |||
9390 | |||
9391 | ///////////////////// | ||
9392 | // REBAKE TEXTURES // | ||
9393 | ///////////////////// | ||
9394 | |||
9395 | |||
9396 | class LLAdvancedRebakeTextures : public view_listener_t | ||
9397 | { | ||
9398 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9399 | { | ||
9400 | handle_rebake_textures(NULL); | ||
9401 | return true; | ||
9402 | } | ||
9403 | }; | ||
9404 | |||
9405 | |||
9406 | |||
9407 | /////////////////////////// | ||
9408 | // DEBUG AVATAR TEXTURES // | ||
9409 | /////////////////////////// | ||
9410 | |||
9411 | |||
9412 | class LLAdvancedDebugAvatarTextures : public view_listener_t | ||
9413 | { | ||
9414 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9415 | { | ||
9416 | handle_debug_avatar_textures(NULL); | ||
9417 | return true; | ||
9418 | } | ||
9419 | }; | ||
9420 | |||
9421 | |||
9422 | |||
9423 | //////////////////////////////// | ||
9424 | // DUMP AVATAR LOCAL TEXTURES // | ||
9425 | //////////////////////////////// | ||
9426 | |||
9427 | |||
9428 | class LLAdvancedDumpAvatarLocalTextures : public view_listener_t | ||
9429 | { | ||
9430 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9431 | { | ||
9432 | handle_dump_avatar_local_textures(NULL); | ||
9433 | return true; | ||
9434 | } | ||
9435 | }; | ||
9436 | |||
9437 | |||
9438 | |||
9439 | ///////////////// | ||
9440 | // MESSAGE LOG // | ||
9441 | ///////////////// | ||
9442 | |||
9443 | |||
9444 | class LLAdvancedEnableMessageLog : public view_listener_t | ||
9445 | { | ||
9446 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9447 | { | ||
9448 | handle_viewer_enable_message_log(NULL); | ||
9449 | return true; | ||
9450 | } | ||
9451 | }; | ||
9452 | |||
9453 | class LLAdvancedDisableMessageLog : public view_listener_t | ||
9454 | { | ||
9455 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9456 | { | ||
9457 | handle_viewer_disable_message_log(NULL); | ||
9458 | return true; | ||
9459 | } | ||
9460 | }; | ||
9461 | |||
9462 | |||
9463 | |||
9464 | ///////////////// | ||
9465 | // DROP PACKET // | ||
9466 | ///////////////// | ||
9467 | |||
9468 | |||
9469 | class LLAdvancedDropPacket : public view_listener_t | ||
9470 | { | ||
9471 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9472 | { | ||
9473 | drop_packet(NULL); | ||
9474 | return true; | ||
9475 | } | ||
9476 | }; | ||
9477 | |||
9478 | |||
9479 | |||
9480 | ///////////////////////// | ||
9481 | // FRAME STATS LOGGING // | ||
9482 | ///////////////////////// | ||
9483 | |||
9484 | |||
9485 | class LLAdvancedFrameStatsLogging : public view_listener_t | ||
9486 | { | ||
9487 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9488 | { | ||
9489 | std::string command = userdata.asString(); | ||
9490 | if ("start logging" == command) | ||
9491 | { | ||
9492 | LLFrameStats::startLogging(NULL); | ||
9493 | } | ||
9494 | else if ("stop logging" == command) | ||
9495 | { | ||
9496 | LLFrameStats::stopLogging(NULL); | ||
9497 | } | ||
9498 | else if ("timed logging 10" == command) | ||
9499 | { | ||
9500 | LLFrameStats::timedLogging10(NULL); | ||
9501 | } | ||
9502 | else if ("timed logging 30" == command) | ||
9503 | { | ||
9504 | LLFrameStats::timedLogging30(NULL); | ||
9505 | } | ||
9506 | else if ("timed logging 60" == command) | ||
9507 | { | ||
9508 | LLFrameStats::timedLogging60(NULL); | ||
9509 | } | ||
9510 | |||
9511 | return true; | ||
9512 | } | ||
9513 | }; | ||
9514 | |||
9515 | |||
9516 | |||
9517 | ///////////////// | ||
9518 | // AGENT PILOT // | ||
9519 | ///////////////// | ||
9520 | |||
9521 | |||
9522 | class LLAdvancedAgentPilot : public view_listener_t | ||
9523 | { | ||
9524 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9525 | { | ||
9526 | std::string command = userdata.asString(); | ||
9527 | if ("start playback" == command) | ||
9528 | { | ||
9529 | LLAgentPilot::startPlayback(NULL); | ||
9530 | } | ||
9531 | else if ("stop playback" == command) | ||
9532 | { | ||
9533 | LLAgentPilot::stopPlayback(NULL); | ||
9534 | } | ||
9535 | else if ("start record" == command) | ||
9536 | { | ||
9537 | LLAgentPilot::startRecord(NULL); | ||
9538 | } | ||
9539 | else if ("stop record" == command) | ||
9540 | { | ||
9541 | LLAgentPilot::saveRecord(NULL); | ||
9542 | } | ||
9543 | |||
9544 | return true; | ||
9545 | } | ||
9546 | }; | ||
9547 | |||
9548 | |||
9549 | |||
9550 | ////////////////////// | ||
9551 | // AGENT PILOT LOOP // | ||
9552 | ////////////////////// | ||
9553 | |||
9554 | |||
9555 | class LLAdvancedToggleAgentPilotLoop : public view_listener_t | ||
9556 | { | ||
9557 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9558 | { | ||
9559 | LLAgentPilot::sLoop = !(LLAgentPilot::sLoop); | ||
9560 | return true; | ||
9561 | } | ||
9562 | }; | ||
9563 | |||
9564 | class LLAdvancedCheckAgentPilotLoop : public view_listener_t | ||
9565 | { | ||
9566 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9567 | { | ||
9568 | bool new_value = LLAgentPilot::sLoop; | ||
9569 | std::string control_name = userdata["control"].asString(); | ||
9570 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9571 | return true; | ||
9572 | } | ||
9573 | }; | ||
9574 | |||
9575 | |||
9576 | |||
9577 | ///////////////////////// | ||
9578 | // SHOW OBJECT UPDATES // | ||
9579 | ///////////////////////// | ||
9580 | |||
9581 | |||
9582 | class LLAdvancedToggleShowObjectUpdates : public view_listener_t | ||
9583 | { | ||
9584 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9585 | { | ||
9586 | gShowObjectUpdates = !(gShowObjectUpdates); | ||
9587 | return true; | ||
9588 | } | ||
9589 | }; | ||
9590 | |||
9591 | class LLAdvancedCheckShowObjectUpdates : public view_listener_t | ||
9592 | { | ||
9593 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9594 | { | ||
9595 | bool new_value = gShowObjectUpdates; | ||
9596 | std::string control_name = userdata["control"].asString(); | ||
9597 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9598 | return true; | ||
9599 | } | ||
9600 | }; | ||
9601 | |||
9602 | |||
9603 | |||
9604 | //////////////////// | ||
9605 | // COMPRESS IMAGE // | ||
9606 | //////////////////// | ||
9607 | |||
9608 | |||
9609 | class LLAdvancedCompressImage : public view_listener_t | ||
9610 | { | ||
9611 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9612 | { | ||
9613 | handle_compress_image(NULL); | ||
9614 | return true; | ||
9615 | } | ||
9616 | }; | ||
9617 | |||
9618 | |||
9619 | |||
9620 | ////////////////////// | ||
9621 | // CLOTHING FLOATER // | ||
9622 | ////////////////////// | ||
9623 | |||
9624 | |||
9625 | class LLAdvancedToggleClothingFloater : public view_listener_t | ||
9626 | { | ||
9627 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9628 | { | ||
9629 | handle_clothing(NULL); | ||
9630 | return true; | ||
9631 | } | ||
9632 | }; | ||
9633 | |||
9634 | // There is no LLAdvancedCheckClothingFloater. | ||
9635 | |||
9636 | |||
9637 | |||
9638 | ///////////////////////// | ||
9639 | // SHOW DEBUG SETTINGS // | ||
9640 | ///////////////////////// | ||
9641 | |||
9642 | |||
9643 | class LLAdvancedShowDebugSettings : public view_listener_t | ||
9644 | { | ||
9645 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9646 | { | ||
9647 | LLFloaterSettingsDebug::show(NULL); | ||
9648 | return true; | ||
9649 | } | ||
9650 | }; | ||
9651 | |||
9652 | |||
9653 | |||
9654 | //////////////////////// | ||
9655 | // VIEW ADMIN OPTIONS // | ||
9656 | //////////////////////// | ||
9657 | |||
9658 | |||
9659 | class LLAdvancedToggleViewAdminOptions : public view_listener_t | ||
9660 | { | ||
9661 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9662 | { | ||
9663 | handle_admin_override_toggle(NULL); | ||
9664 | return true; | ||
9665 | } | ||
9666 | }; | ||
9667 | |||
9668 | class LLAdvancedCheckViewAdminOptions : public view_listener_t | ||
9669 | { | ||
9670 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9671 | { | ||
9672 | bool new_value = check_admin_override(NULL); | ||
9673 | std::string control_name = userdata["control"].asString(); | ||
9674 | gMenuHolder->findControl(control_name)->setValue(new_value); | ||
9675 | return true; | ||
9676 | } | ||
9677 | }; | ||
9678 | |||
9679 | |||
9680 | |||
9681 | ////////////////// | ||
9682 | // ADMIN STATUS // | ||
9683 | ////////////////// | ||
9684 | |||
9685 | |||
9686 | class LLAdvancedRequestAdminStatus : public view_listener_t | ||
9687 | { | ||
9688 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9689 | { | ||
9690 | handle_god_mode(NULL); | ||
9691 | return true; | ||
9692 | } | ||
9693 | }; | ||
9694 | |||
9695 | class LLAdvancedLeaveAdminStatus : public view_listener_t | ||
9696 | { | ||
9697 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9698 | { | ||
9699 | handle_leave_god_mode(NULL); | ||
9700 | return true; | ||
9701 | } | ||
9702 | }; | ||
9703 | |||
9704 | |||
9705 | |||
9706 | static void addMenu(view_listener_t *menu, const char *name) | ||
7579 | { | 9707 | { |
7580 | sMenus.push_back(menu); | 9708 | sMenus.push_back(menu); |
7581 | menu->registerListener(gMenuHolder, name); | 9709 | menu->registerListener(gMenuHolder, name); |
@@ -7684,6 +9812,7 @@ void initialize_menus() | |||
7684 | addMenu(new LLToolsSaveToInventory(), "Tools.SaveToInventory"); | 9812 | addMenu(new LLToolsSaveToInventory(), "Tools.SaveToInventory"); |
7685 | addMenu(new LLToolsSaveToObjectInventory(), "Tools.SaveToObjectInventory"); | 9813 | addMenu(new LLToolsSaveToObjectInventory(), "Tools.SaveToObjectInventory"); |
7686 | addMenu(new LLToolsSelectedScriptAction(), "Tools.SelectedScriptAction"); | 9814 | addMenu(new LLToolsSelectedScriptAction(), "Tools.SelectedScriptAction"); |
9815 | addMenu(new LLToolsSetBulkPerms(), "Tools.SetBulkPerms"); | ||
7687 | 9816 | ||
7688 | addMenu(new LLToolsEnableToolNotPie(), "Tools.EnableToolNotPie"); | 9817 | addMenu(new LLToolsEnableToolNotPie(), "Tools.EnableToolNotPie"); |
7689 | addMenu(new LLToolsEnableLink(), "Tools.EnableLink"); | 9818 | addMenu(new LLToolsEnableLink(), "Tools.EnableLink"); |
@@ -7786,4 +9915,155 @@ void initialize_menus() | |||
7786 | addMenu(new LLSomethingSelectedNoHUD(), "SomethingSelectedNoHUD"); | 9915 | addMenu(new LLSomethingSelectedNoHUD(), "SomethingSelectedNoHUD"); |
7787 | addMenu(new LLEditableSelected(), "EditableSelected"); | 9916 | addMenu(new LLEditableSelected(), "EditableSelected"); |
7788 | addMenu(new LLEditableSelectedMono(), "EditableSelectedMono"); | 9917 | addMenu(new LLEditableSelectedMono(), "EditableSelectedMono"); |
9918 | |||
9919 | |||
9920 | // Advanced (top level menu) | ||
9921 | addMenu(new LLAdvancedToggleConsole(), "Advanced.ToggleConsole"); | ||
9922 | addMenu(new LLAdvancedCheckConsole(), "Advanced.CheckConsole"); | ||
9923 | addMenu(new LLAdvancedDumpInfoToConsole(), "Advanced.DumpInfoToConsole"); | ||
9924 | addMenu(new LLAdvancedReloadSettingsOverrides(), "Advanced.ReloadSettingsOverrides"); | ||
9925 | |||
9926 | // Advanced > HUD Info | ||
9927 | addMenu(new LLAdvancedToggleHUDInfo(), "Advanced.ToggleHUDInfo"); | ||
9928 | addMenu(new LLAdvancedCheckHUDInfo(), "Advanced.CheckHUDInfo"); | ||
9929 | |||
9930 | addMenu(new LLAdvancedClearGroupCache(), "Advanced.ClearGroupCache"); | ||
9931 | |||
9932 | // Advanced > Render > Types | ||
9933 | addMenu(new LLAdvancedToggleRenderType(), "Advanced.ToggleRenderType"); | ||
9934 | addMenu(new LLAdvancedCheckRenderType(), "Advanced.CheckRenderType"); | ||
9935 | |||
9936 | // Advanced > Render > Features | ||
9937 | addMenu(new LLAdvancedToggleFeature(), "Advanced.ToggleFeature"); | ||
9938 | addMenu(new LLAdvancedCheckFeature(), "Advanced.CheckFeature"); | ||
9939 | |||
9940 | // Advanced > Render > Info Displays | ||
9941 | addMenu(new LLAdvancedToggleInfoDisplay(), "Advanced.ToggleInfoDisplay"); | ||
9942 | addMenu(new LLAdvancedCheckInfoDisplay(), "Advanced.CheckInfoDisplay"); | ||
9943 | addMenu(new LLAdvancedToggleSelectBuffer(), "Advanced.ToggleSelectBuffer"); | ||
9944 | addMenu(new LLAdvancedCheckSelectBuffer(), "Advanced.CheckSelectBuffer"); | ||
9945 | addMenu(new LLAdvancedToggleRandomizeFramerate(), "Advanced.ToggleRandomizeFramerate"); | ||
9946 | addMenu(new LLAdvancedCheckRandomizeFramerate(), "Advanced.CheckRandomizeFramerate"); | ||
9947 | addMenu(new LLAdvancedTogglePeriodicSlowFrame(), "Advanced.TogglePeriodicSlowFrame"); | ||
9948 | addMenu(new LLAdvancedCheckPeriodicSlowFrame(), "Advanced.CheckPeriodicSlowFrame"); | ||
9949 | addMenu(new LLAdvancedToggleFrameTest(), "Advanced.ToggleFrameTest"); | ||
9950 | addMenu(new LLAdvancedCheckFrameTest(), "Advanced.CheckFrameTest"); | ||
9951 | addMenu(new LLAdvancedToggleHideSelectedObjects(), "Advanced.ToggleHideSelectedObjects"); | ||
9952 | addMenu(new LLAdvancedCheckHideSelectedObjects(), "Advanced.CheckHideSelectedObjects"); | ||
9953 | addMenu(new LLAdvancedSelectedTextureInfo(), "Advanced.SelectedTextureInfo"); | ||
9954 | addMenu(new LLAdvancedToggleWireframe(), "Advanced.ToggleWireframe"); | ||
9955 | addMenu(new LLAdvancedCheckWireframe(), "Advanced.CheckWireframe"); | ||
9956 | addMenu(new LLAdvancedToggleDisableTextures(), "Advanced.ToggleDisableTextures"); | ||
9957 | addMenu(new LLAdvancedCheckDisableTextures(), "Advanced.CheckDisableTextures"); | ||
9958 | |||
9959 | // Advanced > World | ||
9960 | addMenu(new LLAdvancedDumpScriptedCamera(), "Advanced.DumpScriptedCamera"); | ||
9961 | addMenu(new LLAdvancedDumpRegionObjectCache(), "Advanced.DumpRegionObjectCache"); | ||
9962 | |||
9963 | // Advanced > UI | ||
9964 | addMenu(new LLAdvancedSLURLTest(), "Advanced.SLURLTest"); | ||
9965 | addMenu(new LLAdvancedToggleEditableUI(), "Advanced.ToggleEditableUI"); | ||
9966 | //addMenu(new LLAdvancedCheckEditableUI(), "Advanced.CheckEditableUI"); | ||
9967 | addMenu(new LLAdvancedToggleAsyncKeystrokes(), "Advanced.ToggleAsyncKeystrokes"); | ||
9968 | addMenu(new LLAdvancedCheckAsyncKeystrokes(), "Advanced.CheckAsyncKeystrokes"); | ||
9969 | addMenu(new LLAdvancedDumpSelectMgr(), "Advanced.DumpSelectMgr"); | ||
9970 | addMenu(new LLAdvancedDumpInventory(), "Advanced.DumpInventory"); | ||
9971 | addMenu(new LLAdvancedDumpFocusHolder(), "Advanced.DumpFocusHolder"); | ||
9972 | addMenu(new LLAdvancedPrintSelectedObjectInfo(), "Advanced.PrintSelectedObjectInfo"); | ||
9973 | addMenu(new LLAdvancedPrintAgentInfo(), "Advanced.PrintAgentInfo"); | ||
9974 | addMenu(new LLAdvancedPrintTextureMemoryStats(), "Advanced.PrintTextureMemoryStats"); | ||
9975 | addMenu(new LLAdvancedToggleDebugSelectMgr(), "Advanced.ToggleDebugSelectMgr"); | ||
9976 | addMenu(new LLAdvancedCheckDebugSelectMgr(), "Advanced.CheckDebugSelectMgr"); | ||
9977 | addMenu(new LLAdvancedToggleDebugClicks(), "Advanced.ToggleDebugClicks"); | ||
9978 | addMenu(new LLAdvancedCheckDebugClicks(), "Advanced.CheckDebugClicks"); | ||
9979 | addMenu(new LLAdvancedCheckDebugViews(), "Advanced.CheckDebugViews"); | ||
9980 | addMenu(new LLAdvancedToggleDebugViews(), "Advanced.ToggleDebugViews"); | ||
9981 | addMenu(new LLAdvancedToggleXUINameTooltips(), "Advanced.ToggleXUINameTooltips"); | ||
9982 | addMenu(new LLAdvancedCheckXUINameTooltips(), "Advanced.CheckXUINameTooltips"); | ||
9983 | addMenu(new LLAdvancedToggleDebugMouseEvents(), "Advanced.ToggleDebugMouseEvents"); | ||
9984 | addMenu(new LLAdvancedCheckDebugMouseEvents(), "Advanced.CheckDebugMouseEvents"); | ||
9985 | addMenu(new LLAdvancedToggleDebugKeys(), "Advanced.ToggleDebugKeys"); | ||
9986 | addMenu(new LLAdvancedCheckDebugKeys(), "Advanced.CheckDebugKeys"); | ||
9987 | addMenu(new LLAdvancedToggleDebugWindowProc(), "Advanced.ToggleDebugWindowProc"); | ||
9988 | addMenu(new LLAdvancedCheckDebugWindowProc(), "Advanced.CheckDebugWindowProc"); | ||
9989 | addMenu(new LLAdvancedToggleDebugTextEditorTips(), "Advanced.ToggleDebugTextEditorTips"); | ||
9990 | addMenu(new LLAdvancedCheckDebugTextEditorTips(), "Advanced.CheckDebugTextEditorTips"); | ||
9991 | |||
9992 | // Advanced > XUI | ||
9993 | addMenu(new LLAdvancedShowFloaterTest(), "Advanced.ShowFloaterTest"); | ||
9994 | addMenu(new LLAdvancedExportMenusToXML(), "Advanced.ExportMenusToXML"); | ||
9995 | addMenu(new LLAdvancedEditUI(), "Advanced.EditUI"); | ||
9996 | addMenu(new LLAdvancedLoadUIFromXML(), "Advanced.LoadUIFromXML"); | ||
9997 | addMenu(new LLAdvancedSaveUIToXML(), "Advanced.SaveUIToXML"); | ||
9998 | addMenu(new LLAdvancedToggleXUINames(), "Advanced.ToggleXUINames"); | ||
9999 | addMenu(new LLAdvancedCheckXUINames(), "Advanced.CheckXUINames"); | ||
10000 | |||
10001 | // Advanced > Character > Grab Baked Texture | ||
10002 | addMenu(new LLAdvancedGrabBakedTexture(), "Advanced.GrabBakedTexture"); | ||
10003 | addMenu(new LLAdvancedEnableGrabBakedTexture(), "Advanced.EnableGrabBakedTexture"); | ||
10004 | |||
10005 | // Advanced > Character > Character Tests | ||
10006 | addMenu(new LLAdvancedToggleAllowIdleAFK(), "Advanced.ToggleAllowIdleAFK"); | ||
10007 | addMenu(new LLAdvancedCheckAllowIdleAFK(), "Advanced.CheckAllowIdleAFK"); | ||
10008 | addMenu(new LLAdvancedAppearanceToXML(), "Advanced.AppearanceToXML"); | ||
10009 | addMenu(new LLAdvancedToggleCharacterGeometry(), "Advanced.ToggleCharacterGeometry"); | ||
10010 | addMenu(new LLAdvancedTestMale(), "Advanced.TestMale"); | ||
10011 | addMenu(new LLAdvancedTestFemale(), "Advanced.TestFemale"); | ||
10012 | addMenu(new LLAdvancedTogglePG(), "Advanced.TogglePG"); | ||
10013 | addMenu(new LLAdvancedToggleAllowSelectAvatar(), "Advanced.ToggleAllowSelectAvatar"); | ||
10014 | addMenu(new LLAdvancedCheckAllowSelectAvatar(), "Advanced.CheckAllowSelectAvatar"); | ||
10015 | |||
10016 | // Advanced > Character (toplevel) | ||
10017 | addMenu(new LLAdvancedToggleAllowTapTapHoldRun(), "Advanced.ToggleAllowTapTapHoldRun"); | ||
10018 | addMenu(new LLAdvancedCheckAllowTapTapHoldRun(), "Advanced.CheckAllowTapTapHoldRun"); | ||
10019 | addMenu(new LLAdvancedForceParamsToDefault(), "Advanced.ForceParamsToDefault"); | ||
10020 | addMenu(new LLAdvancedReloadVertexShader(), "Advanced.ReloadVertexShader"); | ||
10021 | addMenu(new LLAdvancedToggleAnimationInfo(), "Advanced.ToggleAnimationInfo"); | ||
10022 | addMenu(new LLAdvancedCheckAnimationInfo(), "Advanced.CheckAnimationInfo"); | ||
10023 | addMenu(new LLAdvancedToggleSlowMotionAnimations(), "Advanced.ToggleSlowMotionAnimations"); | ||
10024 | //addMenu(new LLAdvancedCheckSlowMotionAnimations(), "Advanced.CheckSlowMotionAnimations"); | ||
10025 | addMenu(new LLAdvancedToggleShowLookAt(), "Advanced.ToggleShowLookAt"); | ||
10026 | addMenu(new LLAdvancedCheckShowLookAt(), "Advanced.CheckShowLookAt"); | ||
10027 | addMenu(new LLAdvancedToggleShowPointAt(), "Advanced.ToggleShowPointAt"); | ||
10028 | addMenu(new LLAdvancedCheckShowPointAt(), "Advanced.CheckShowPointAt"); | ||
10029 | addMenu(new LLAdvancedToggleDebugJointUpdates(), "Advanced.ToggleDebugJointUpdates"); | ||
10030 | addMenu(new LLAdvancedCheckDebugJointUpdates(), "Advanced.CheckDebugJointUpdates"); | ||
10031 | addMenu(new LLAdvancedToggleDisableLOD(), "Advanced.ToggleDisableLOD"); | ||
10032 | addMenu(new LLAdvancedCheckDisableLOD(), "Advanced.CheckDisableLOD"); | ||
10033 | addMenu(new LLAdvancedToggleDebugCharacterVis(), "Advanced.ToggleDebugCharacterVis"); | ||
10034 | addMenu(new LLAdvancedCheckDebugCharacterVis(), "Advanced.CheckDebugCharacterVis"); | ||
10035 | // addMenu(new LLAdvancedToggleShowCollisionPlane(), "Advanced.ToggleShowCollisionPlane"); | ||
10036 | // addMenu(new LLAdvancedCheckShowCollisionPlane(), "Advanced.CheckShowCollisionPlane"); | ||
10037 | addMenu(new LLAdvancedToggleShowCollisionSkeleton(), "Advanced.ToggleShowCollisionSkeleton"); | ||
10038 | addMenu(new LLAdvancedCheckShowCollisionSkeleton(), "Advanced.CheckShowCollisionSkeleton"); | ||
10039 | addMenu(new LLAdvancedToggleDisplayAgentTarget(), "Advanced.ToggleDisplayAgentTarget"); | ||
10040 | addMenu(new LLAdvancedCheckDisplayAgentTarget(), "Advanced.CheckDisplayAgentTarget"); | ||
10041 | addMenu(new LLAdvancedToggleDebugAvatarRotation(), "Advanced.ToggleDebugAvatarRotation"); | ||
10042 | addMenu(new LLAdvancedCheckDebugAvatarRotation(), "Advanced.CheckDebugAvatarRotation"); | ||
10043 | addMenu(new LLAdvancedDumpAttachments(), "Advanced.DumpAttachments"); | ||
10044 | addMenu(new LLAdvancedRebakeTextures(), "Advanced.RebakeTextures"); | ||
10045 | addMenu(new LLAdvancedDebugAvatarTextures(), "Advanced.DebugAvatarTextures"); | ||
10046 | addMenu(new LLAdvancedDumpAvatarLocalTextures(), "Advanced.DumpAvatarLocalTextures"); | ||
10047 | |||
10048 | // Advanced > Network | ||
10049 | addMenu(new LLAdvancedEnableMessageLog(), "Advanced.EnableMessageLog"); | ||
10050 | addMenu(new LLAdvancedDisableMessageLog(), "Advanced.DisableMessageLog"); | ||
10051 | addMenu(new LLAdvancedDropPacket(), "Advanced.DropPacket"); | ||
10052 | |||
10053 | // Advanced > Recorder | ||
10054 | addMenu(new LLAdvancedFrameStatsLogging(), "Advanced.FrameStatsLogging"); | ||
10055 | addMenu(new LLAdvancedAgentPilot(), "Advanced.AgentPilot"); | ||
10056 | addMenu(new LLAdvancedToggleAgentPilotLoop(), "Advanced.ToggleAgentPilotLoop"); | ||
10057 | addMenu(new LLAdvancedCheckAgentPilotLoop(), "Advanced.CheckAgentPilotLoop"); | ||
10058 | |||
10059 | // Advanced (toplevel) | ||
10060 | addMenu(new LLAdvancedToggleShowObjectUpdates(), "Advanced.ToggleShowObjectUpdates"); | ||
10061 | addMenu(new LLAdvancedCheckShowObjectUpdates(), "Advanced.CheckShowObjectUpdates"); | ||
10062 | addMenu(new LLAdvancedCompressImage(), "Advanced.CompressImage"); | ||
10063 | addMenu(new LLAdvancedToggleClothingFloater(), "Advanced.ToggleClothingFloater"); | ||
10064 | addMenu(new LLAdvancedShowDebugSettings(), "Advanced.ShowDebugSettings"); | ||
10065 | addMenu(new LLAdvancedToggleViewAdminOptions(), "Advanced.ToggleViewAdminOptions"); | ||
10066 | addMenu(new LLAdvancedCheckViewAdminOptions(), "Advanced.CheckViewAdminOptions"); | ||
10067 | addMenu(new LLAdvancedRequestAdminStatus(), "Advanced.RequestAdminStatus"); | ||
10068 | addMenu(new LLAdvancedLeaveAdminStatus(), "Advanced.LeaveAdminStatus"); | ||
7789 | } | 10069 | } |
diff --git a/linden/indra/newview/skins/default/xui/en-us/alerts.xml b/linden/indra/newview/skins/default/xui/en-us/alerts.xml index 1dcdc7d..75ab238 100644 --- a/linden/indra/newview/skins/default/xui/en-us/alerts.xml +++ b/linden/indra/newview/skins/default/xui/en-us/alerts.xml | |||
@@ -1999,6 +1999,19 @@ Join land? | |||
1999 | Cancel | 1999 | Cancel |
2000 | </option> | 2000 | </option> |
2001 | </alert> | 2001 | </alert> |
2002 | <alert name="ShowOwnersHelp"> | ||
2003 | <message name="message"> | ||
2004 | If this box is checked, land parcels will be | ||
2005 | overlaid with a color indicating their status. | ||
2006 | |||
2007 | Red: Land owned by others. | ||
2008 | Green: Your land. | ||
2009 | Aqua: Land owned by a group that you are a member of. | ||
2010 | Yellow: For sale. | ||
2011 | Purple: Land in the auction system. | ||
2012 | Grey: Rare public land. | ||
2013 | </message> | ||
2014 | </alert> | ||
2002 | <alert modal="true" name="ConfirmNotecardSave"> | 2015 | <alert modal="true" name="ConfirmNotecardSave"> |
2003 | <message name="message"> | 2016 | <message name="message"> |
2004 | This notecard needs to be saved before the item can be copied or viewed. Save notecard? | 2017 | This notecard needs to be saved before the item can be copied or viewed. Save notecard? |
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 7f2ce76..742da45 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" |
@@ -245,55 +245,63 @@ | |||
245 | 245 | ||
246 | <!-- Land panel --> | 246 | <!-- Land panel --> |
247 | 247 | ||
248 | <check_box bottom="-70" follows="left|top" font="SansSerifSmall" height="16" | 248 | <check_box bottom="-69" follows="left|top" font="SansSerifSmall" height="16" |
249 | initial_value="false" label="Select Land" left="4" mouse_opaque="true" | 249 | initial_value="false" label="Select Land" left="4" mouse_opaque="true" |
250 | name="radio select land" radio_style="true" width="114" /> | 250 | name="radio select land" radio_style="true" width="114" /> |
251 | <check_box bottom_delta="-14" follows="left|top" font="SansSerifSmall" height="16" | 251 | <check_box bottom_delta="-15" follows="left|top" font="SansSerifSmall" height="16" |
252 | initial_value="false" label="Flatten Land" left="4" mouse_opaque="true" | 252 | initial_value="false" label="Flatten" left="4" mouse_opaque="true" |
253 | name="radio flatten" radio_style="true" width="114" /> | 253 | name="radio flatten" radio_style="true" width="114" /> |
254 | <check_box bottom_delta="-14" follows="left|top" font="SansSerifSmall" height="16" | 254 | <check_box bottom_delta="-15" follows="left|top" font="SansSerifSmall" height="16" |
255 | initial_value="false" label="Raise Land" left="4" mouse_opaque="true" | 255 | initial_value="false" label="Raise" left="4" mouse_opaque="true" |
256 | name="radio raise" radio_style="true" width="114" /> | 256 | name="radio raise" radio_style="true" width="114" /> |
257 | <check_box bottom_delta="-14" follows="left|top" font="SansSerifSmall" height="16" | 257 | <check_box bottom_delta="-15" follows="left|top" font="SansSerifSmall" height="16" |
258 | initial_value="false" label="Lower Land" left="4" mouse_opaque="true" | 258 | initial_value="false" label="Lower" left="4" mouse_opaque="true" |
259 | name="radio lower" radio_style="true" width="114" /> | 259 | name="radio lower" radio_style="true" width="114" /> |
260 | <check_box bottom_delta="-14" follows="left|top" font="SansSerifSmall" height="16" | 260 | <check_box bottom_delta="-15" follows="left|top" font="SansSerifSmall" height="16" |
261 | initial_value="false" label="Smooth Land" left="4" mouse_opaque="true" | 261 | initial_value="false" label="Smooth" left="4" mouse_opaque="true" |
262 | name="radio smooth" radio_style="true" width="114" /> | 262 | name="radio smooth" radio_style="true" width="114" /> |
263 | <check_box bottom_delta="-14" follows="left|top" font="SansSerifSmall" height="16" | 263 | <check_box bottom_delta="-15" follows="left|top" font="SansSerifSmall" height="16" |
264 | initial_value="false" label="Roughen Land" left="4" mouse_opaque="true" | 264 | initial_value="false" label="Roughen" left="4" mouse_opaque="true" |
265 | name="radio noise" radio_style="true" width="114" /> | 265 | name="radio noise" radio_style="true" width="114" /> |
266 | <check_box bottom_delta="-14" follows="left|top" font="SansSerifSmall" height="16" | 266 | <check_box bottom_delta="-15" follows="left|top" font="SansSerifSmall" height="16" |
267 | initial_value="false" label="Revert Land" left="4" mouse_opaque="true" | 267 | initial_value="false" label="Revert" left="4" mouse_opaque="true" |
268 | name="radio revert" radio_style="true" width="114" /> | 268 | name="radio revert" radio_style="true" width="114" /> |
269 | <combo_box allow_text_entry="false" bottom="-85" follows="left|top" height="18" left="118" | 269 | <button bottom="-74" follows="left|top" font="SansSerifSmall" halign="center" |
270 | max_chars="20" mouse_opaque="true" name="combobox brush size" width="134"> | 270 | height="20" label="Apply to selection" label_selected="Apply to selection" |
271 | <combo_item name="Small" value="Small"> | ||
272 | Small | ||
273 | </combo_item> | ||
274 | <combo_item name="Medium" value="Medium"> | ||
275 | Medium | ||
276 | </combo_item> | ||
277 | <combo_item name="Large" value="Large"> | ||
278 | Large | ||
279 | </combo_item> | ||
280 | </combo_box> | ||
281 | <volume_slider bottom_delta="-19" follows="left|top" height="16" hidden="false" increment="0.1" | ||
282 | initial_val="0.00" left="176" max_val="2.0" min_val="-1.0" | ||
283 | mouse_opaque="true" name="slider force" width="70" /> | ||
284 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
285 | bottom_delta="4" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
286 | font="SansSerifSmall" h_pad="0" halign="left" height="12" hidden="false" | ||
287 | left="126" mouse_opaque="true" name="Strength:" v_pad="0" width="128"> | ||
288 | Strength: | ||
289 | </text> | ||
290 | <button bottom_delta="-22" follows="left|top" font="SansSerifSmall" halign="center" | ||
291 | height="16" label="Apply to selection" label_selected="Apply to selection" | ||
292 | left="118" mouse_opaque="true" name="button apply to selection" | 271 | left="118" mouse_opaque="true" name="button apply to selection" |
293 | scale_image="TRUE" tool_tip="Modify Selected Land" width="134" /> | 272 | scale_image="TRUE" tool_tip="Modify Selected Land" width="134" /> |
294 | <check_box bottom_delta="-20" control_name="ShowParcelOwners" follows="left|top" | 273 | |
295 | font="SansSerifSmall" height="16" initial_value="false" label="Show Owners" | 274 | |
296 | left="118" mouse_opaque="true" name="checkbox show owners" width="134" /> | 275 | |
276 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" | ||
277 | border_visible="false" bottom_delta="-16" drop_shadow_visible="true" enabled="true" | ||
278 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" height="12" left="118" | ||
279 | hidden="false" mouse_opaque="true" name="Brush:" v_pad="0" width="100"> | ||
280 | Brush: | ||
281 | </text> | ||
282 | |||
283 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" | ||
284 | border_visible="false" bottom_delta="-18" drop_shadow_visible="true" enabled="true" | ||
285 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" height="12" left="132" | ||
286 | hidden="false" mouse_opaque="true" name="Brush Size:" v_pad="0" width="100"> | ||
287 | Size | ||
288 | </text> | ||
289 | <volume_slider bottom_delta="-4" follows="left|top" height="16" hidden="false" | ||
290 | increment="1.0" initial_val="0.0" left="178" max_val="2.0" min_val="0.0" | ||
291 | mouse_opaque="true" name="slider brush size" width="80" /> | ||
292 | |||
293 | |||
294 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" | ||
295 | border_visible="false" bottom_delta="-18" drop_shadow_visible="true" enabled="true" | ||
296 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" height="12" left="132" | ||
297 | hidden="false" mouse_opaque="true" name="Strength:" v_pad="0" width="100"> | ||
298 | Strength | ||
299 | </text> | ||
300 | <volume_slider bottom_delta="-4" follows="left|top" height="16" hidden="false" | ||
301 | increment="0.1" initial_val="0.00" left="178" max_val="2.0" min_val="-1.0" | ||
302 | mouse_opaque="true" name="slider force" width="80" /> | ||
303 | |||
304 | |||
297 | <button bottom="-163" follows="left|top" font="SansSerifSmall" halign="center" | 305 | <button bottom="-163" follows="left|top" font="SansSerifSmall" halign="center" |
298 | height="20" label="More >>" left="186" mouse_opaque="true" | 306 | height="20" label="More >>" left="186" mouse_opaque="true" |
299 | name="button more" scale_image="TRUE" tool_tip="Advanced Options" | 307 | name="button more" scale_image="TRUE" tool_tip="Advanced Options" |
@@ -722,10 +730,10 @@ | |||
722 | Path Cut Begin and End | 730 | Path Cut Begin and End |
723 | </text> | 731 | </text> |
724 | <spinner bottom_delta="-22" decimal_digits="3" follows="left|top" height="16" | 732 | <spinner bottom_delta="-22" decimal_digits="3" follows="left|top" height="16" |
725 | increment="0.05" initial_val="0" label="B" label_width="10" left="121" | 733 | increment="0.025" initial_val="0" label="B" label_width="10" left="121" |
726 | max_val="0.98" min_val="0" mouse_opaque="true" name="cut begin" width="68" /> | 734 | max_val="0.98" min_val="0" mouse_opaque="true" name="cut begin" width="68" /> |
727 | <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16" | 735 | <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16" |
728 | increment="0.05" initial_val="1" label="E" label_width="10" left_delta="73" | 736 | increment="0.025" initial_val="1" label="E" label_width="10" left_delta="73" |
729 | max_val="1" min_val="0.02" mouse_opaque="true" name="cut end" width="68" /> | 737 | max_val="1" min_val="0.02" mouse_opaque="true" name="cut end" width="68" /> |
730 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 738 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
731 | bottom_delta="-14" drop_shadow_visible="true" follows="left|top" | 739 | bottom_delta="-14" drop_shadow_visible="true" follows="left|top" |
@@ -824,12 +832,18 @@ | |||
824 | mouse_opaque="true" name="advanced_dimple" v_pad="0" width="141"> | 832 | mouse_opaque="true" name="advanced_dimple" v_pad="0" width="141"> |
825 | Dimple Begin and End | 833 | Dimple Begin and End |
826 | </text> | 834 | </text> |
835 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
836 | bottom_delta="0" drop_shadow_visible="true" follows="left|top" | ||
837 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="0" | ||
838 | mouse_opaque="true" name="advanced_slice" v_pad="0" width="141"> | ||
839 | Slice Begin and End | ||
840 | </text> | ||
827 | <spinner bottom_delta="-19" decimal_digits="3" follows="left|top" height="16" | 841 | <spinner bottom_delta="-19" decimal_digits="3" follows="left|top" height="16" |
828 | increment="0.05" initial_val="0" label="B" label_width="10" left="121" | 842 | increment="0.025" initial_val="0" label="B" label_width="10" left="121" |
829 | max_val="0.95" min_val="0" mouse_opaque="true" name="Path Limit Begin" | 843 | max_val="0.95" min_val="0" mouse_opaque="true" name="Path Limit Begin" |
830 | width="68" /> | 844 | width="68" /> |
831 | <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16" | 845 | <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16" |
832 | increment="0.05" initial_val="1" label="E" label_width="10" left_delta="73" | 846 | increment="0.025" initial_val="1" label="E" label_width="10" left_delta="73" |
833 | max_val="1" min_val="0.05" mouse_opaque="true" name="Path Limit End" | 847 | max_val="1" min_val="0.05" mouse_opaque="true" name="Path Limit End" |
834 | width="68" /> | 848 | width="68" /> |
835 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 849 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
@@ -1003,7 +1017,7 @@ | |||
1003 | Transparency % | 1017 | Transparency % |
1004 | </text> | 1018 | </text> |
1005 | <spinner bottom_delta="-20" decimal_digits="0" follows="left|top" height="16" | 1019 | <spinner bottom_delta="-20" decimal_digits="0" follows="left|top" height="16" |
1006 | increment="2" initial_val="0" left="180" max_val="90" min_val="0" | 1020 | increment="2" initial_val="0" left="180" max_val="100" min_val="0" |
1007 | mouse_opaque="true" name="ColorTrans" width="80" /> | 1021 | mouse_opaque="true" name="ColorTrans" width="80" /> |
1008 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 1022 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
1009 | bottom_delta="-12" drop_shadow_visible="true" follows="left|top" | 1023 | bottom_delta="-12" drop_shadow_visible="true" follows="left|top" |
@@ -1204,34 +1218,59 @@ | |||
1204 | <panel bottom="-550" follows="left|top" height="384" left="0" mouse_opaque="true" | 1218 | <panel bottom="-550" follows="left|top" height="384" left="0" mouse_opaque="true" |
1205 | name="land info panel" width="272"> | 1219 | name="land info panel" width="272"> |
1206 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 1220 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
1207 | bottom="-18" drop_shadow_visible="true" follows="left|top" | 1221 | bottom="-40" drop_shadow_visible="true" follows="left|top" |
1208 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4" | 1222 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="40" |
1223 | mouse_opaque="true" name="label_parcel_modify" v_pad="0" width="150"> | ||
1224 | Modify Parcel | ||
1225 | </text> | ||
1226 | <button bottom_delta="-24" follows="left|top" font="SansSerif" halign="center" | ||
1227 | height="20" label="Subdivide..." label_selected="Subdivide..." left="48" | ||
1228 | mouse_opaque="true" name="button subdivide land" scale_image="TRUE" | ||
1229 | width="112" /> | ||
1230 | <button bottom_delta="-24" follows="left|top" font="SansSerif" halign="center" | ||
1231 | height="20" label="Join..." label_selected="Join..." left="48" | ||
1232 | mouse_opaque="true" name="button join land" scale_image="TRUE" width="112" /> | ||
1233 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
1234 | bottom_delta="-56" drop_shadow_visible="true" follows="left|top" | ||
1235 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="40" | ||
1236 | mouse_opaque="true" name="label_parcel_info" v_pad="0" width="150"> | ||
1237 | Parcel Information | ||
1238 | </text> | ||
1239 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
1240 | bottom_delta="-24" drop_shadow_visible="true" follows="left|top" | ||
1241 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="48" | ||
1209 | mouse_opaque="true" name="label_area_price" v_pad="0" width="150"> | 1242 | mouse_opaque="true" name="label_area_price" v_pad="0" width="150"> |
1210 | Price: L$[PRICE] for [AREA] sq. m. | 1243 | Price: L$[PRICE] for [AREA] sq. m. |
1211 | </text> | 1244 | </text> |
1212 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 1245 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
1213 | bottom_delta="0" drop_shadow_visible="true" follows="left|top" | 1246 | bottom_delta="0" drop_shadow_visible="true" follows="left|top" |
1214 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4" | 1247 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="48" |
1215 | mouse_opaque="true" name="label_area" v_pad="0" width="128"> | 1248 | mouse_opaque="true" name="label_area" v_pad="0" width="150"> |
1216 | Area: [AREA] sq. m. | 1249 | Area: [AREA] sq. m. |
1217 | </text> | 1250 | </text> |
1218 | <button bottom_delta="-38" follows="left|top" font="SansSerif" halign="center" | ||
1219 | height="20" label="Buy Land..." label_selected="Buy Land..." left="76" | ||
1220 | mouse_opaque="true" name="button buy land" scale_image="TRUE" width="102" /> | ||
1221 | <button bottom_delta="-24" follows="left|top" font="SansSerif" halign="center" | 1251 | <button bottom_delta="-24" follows="left|top" font="SansSerif" halign="center" |
1222 | height="20" label="Abandon Land..." label_selected="Abandon Land..." | 1252 | height="20" label="About Land..." label_selected="About Land..." left="48" |
1223 | left="76" mouse_opaque="true" name="button abandon land" scale_image="TRUE" | 1253 | mouse_opaque="true" name="button about land" scale_image="TRUE" width="112" /> |
1224 | width="102" /> | 1254 | <check_box bottom_delta="-24" control_name="ShowParcelOwners" follows="left|top" |
1255 | tool_tip="Colour parcels according to their status" font="SansSerifSmall" | ||
1256 | height="16" initial_value="false" label="Show Status" left="48" | ||
1257 | mouse_opaque="true" name="checkbox show owners" width="100" /> | ||
1258 | <button bottom_delta="0" follows="left|top" font="SansSerif" halign="center" | ||
1259 | height="18" label="?" label_selected="?" left_delta="94" | ||
1260 | mouse_opaque="true" name="button show owners help" width="18" /> | ||
1261 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
1262 | bottom_delta="-56" drop_shadow_visible="true" follows="left|top" | ||
1263 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="40" | ||
1264 | mouse_opaque="true" name="label_parcel_trans" v_pad="0" width="150"> | ||
1265 | Land Transactions | ||
1266 | </text> | ||
1225 | <button bottom_delta="-24" follows="left|top" font="SansSerif" halign="center" | 1267 | <button bottom_delta="-24" follows="left|top" font="SansSerif" halign="center" |
1226 | height="20" label="Subdivide..." label_selected="Subdivide..." left="76" | 1268 | height="20" label="Buy Land..." label_selected="Buy Land..." left="48" |
1227 | mouse_opaque="true" name="button subdivide land" scale_image="TRUE" | 1269 | mouse_opaque="true" name="button buy land" scale_image="TRUE" width="112" /> |
1228 | width="102" /> | ||
1229 | <button bottom_delta="-24" follows="left|top" font="SansSerif" halign="center" | 1270 | <button bottom_delta="-24" follows="left|top" font="SansSerif" halign="center" |
1230 | height="20" label="Join..." label_selected="Join..." left="76" | 1271 | height="20" label="Abandon Land..." label_selected="Abandon Land..." |
1231 | mouse_opaque="true" name="button join land" scale_image="TRUE" width="102" /> | 1272 | left="48" mouse_opaque="true" name="button abandon land" scale_image="TRUE" |
1232 | <button bottom_delta="-40" follows="left|top" font="SansSerif" halign="center" | 1273 | width="112" /> |
1233 | height="20" label="About Land..." label_selected="About Land..." left="76" | ||
1234 | mouse_opaque="true" name="button about land" scale_image="TRUE" width="102" /> | ||
1235 | </panel> | 1274 | </panel> |
1236 | <string name="status_rotate"> | 1275 | <string name="status_rotate"> |
1237 | Drag colored bands to rotate object | 1276 | Drag colored bands to rotate object |
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 bbe9fbd..40de54f 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,863 +1,2046 @@ | |||
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_item_call name="Menu Underpants" enabled="false" | ||
191 | label="Underpants"> | ||
192 | <on_click function="Edit.TakeOff" | ||
193 | userdata="underpants" /> | ||
194 | <on_enable function="Edit.EnableTakeOff" | ||
195 | userdata="underpants" /> | ||
196 | </menu_item_call> | ||
197 | <menu_item_call name="Skirt" enabled="false" label="Skirt"> | ||
198 | <on_click function="Edit.TakeOff" | ||
199 | userdata="skirt" /> | ||
200 | <on_enable function="Edit.EnableTakeOff" | ||
201 | userdata="skirt" /> | ||
202 | </menu_item_call> | ||
203 | <menu_item_call name="All Clothes" label="All Clothes"> | ||
204 | <on_click function="Edit.TakeOff" | ||
205 | userdata="all" /> | ||
206 | </menu_item_call> | ||
207 | </menu> | ||
208 | <menu_item_separator /> | ||
209 | <menu_item_call name="Gestures..." label="Gestures..." | ||
210 | shortcut="control|G"> | ||
211 | <on_click function="ShowFloater" | ||
212 | userdata="gestures" /> | ||
213 | </menu_item_call> | ||
214 | <menu_item_call name="Profile..." label="Profile..."> | ||
215 | <on_click function="ShowAgentProfile" | ||
216 | userdata="agent" /> | ||
217 | </menu_item_call> | ||
218 | <menu_item_call name="Appearance..." label="Appearance..."> | ||
219 | <on_click function="ShowFloater" | ||
220 | userdata="appearance" /> | ||
221 | <on_enable function="Edit.EnableCustomizeAvatar" /> | ||
222 | </menu_item_call> | ||
223 | <menu_item_separator /> | ||
224 | <menu_item_check name="Friends..." label="Friends..." | ||
225 | shortcut="control|shift|F"> | ||
226 | <on_click function="ShowFloater" | ||
227 | userdata="friends" /> | ||
228 | <on_check function="FloaterVisible" | ||
229 | userdata="friends" /> | ||
230 | </menu_item_check> | ||
231 | <menu_item_call name="Groups..." label="Groups..."> | ||
232 | <on_click function="ShowAgentGroups" | ||
233 | userdata="agent" /> | ||
234 | </menu_item_call> | ||
235 | <menu_item_separator /> | ||
236 | <menu_item_call name="Preferences..." label="Preferences..." | ||
237 | shortcut="control|P"> | ||
238 | <on_click function="ShowFloater" | ||
239 | userdata="preferences" /> | ||
240 | </menu_item_call> | ||
241 | </menu> | ||
242 | |||
243 | |||
244 | |||
245 | <!-- VIEW --> | ||
246 | |||
247 | <menu name="View" create_jump_keys="true" label="View" | ||
248 | opaque="true" tear_off="true"> | ||
249 | <menu_item_call name="Mouselook" label="Mouselook" | ||
250 | shortcut="M"> | ||
251 | <on_click function="View.Mouselook" userdata="" /> | ||
252 | <on_enable function="View.EnableMouselook" /> | ||
253 | </menu_item_call> | ||
254 | <menu_item_check name="Build" label="Build" | ||
255 | shortcut="B"> | ||
256 | <on_click function="View.BuildMode" userdata="" /> | ||
257 | <on_check function="View.CheckBuildMode" /> | ||
258 | </menu_item_check> | ||
259 | <menu_item_check name="Joystick Flycam" label="Joystick Flycam" | ||
260 | shortcut="alt|shift|F"> | ||
261 | <on_click function="View.JoystickFlycam" userdata="" /> | ||
262 | <on_check function="View.CheckJoystickFlycam" /> | ||
263 | </menu_item_check> | ||
264 | <menu_item_call name="Reset View" label="Reset View" | ||
265 | shortcut="Esc"> | ||
266 | <on_click function="View.ResetView" userdata="" /> | ||
267 | </menu_item_call> | ||
268 | <menu_item_call name="Look at Last Chatter" enabled="false" | ||
269 | label="Look at Last Chatter" shortcut="control|\"> | ||
270 | <on_click function="View.LookAtLastChatter" userdata="" /> | ||
271 | <on_enable function="View.EnableLastChatter" /> | ||
272 | </menu_item_call> | ||
273 | <menu_item_separator /> | ||
274 | <menu_item_check name="Toolbar" label="Toolbar"> | ||
275 | <on_click function="ShowFloater" userdata="toolbar" /> | ||
276 | <on_check function="FloaterVisible" userdata="toolbar" /> | ||
277 | </menu_item_check> | ||
278 | <menu_item_check name="Chat History" label="Local Chat" | ||
279 | shortcut="control|H"> | ||
280 | <on_click function="ShowFloater" userdata="chat history" /> | ||
281 | <on_check function="FloaterVisible" userdata="chat history" /> | ||
282 | </menu_item_check> | ||
283 | <menu_item_check name="Instant Message" label="Communicate" | ||
284 | shortcut="control|T"> | ||
285 | <on_click function="ShowFloater" userdata="im" /> | ||
286 | <on_check function="FloaterVisible" userdata="im" /> | ||
287 | </menu_item_check> | ||
288 | <menu_item_call name="Inventory" label="Inventory" | ||
289 | shortcut="control|I"> | ||
290 | <on_click function="ShowFloater" userdata="inventory" /> | ||
291 | </menu_item_call> | ||
292 | <menu_item_check name="Active Speakers" label="Active Speakers"> | ||
293 | <on_click function="ShowFloater" userdata="active speakers" /> | ||
294 | <on_check function="FloaterVisible" userdata="active speakers" /> | ||
295 | </menu_item_check> | ||
296 | <menu_item_check name="Mute List" label="Mute List"> | ||
297 | <on_click function="ShowFloater" userdata="mute list" /> | ||
298 | <on_check function="FloaterVisible" userdata="mute list" /> | ||
299 | </menu_item_check> | ||
300 | <menu_item_separator /> | ||
301 | <menu_item_check name="Camera Controls" label="Camera Controls"> | ||
302 | <on_click function="ShowFloater" userdata="camera controls" /> | ||
303 | <on_check function="FloaterVisible" userdata="camera controls" /> | ||
304 | </menu_item_check> | ||
305 | <menu_item_check name="Movement Controls" label="Movement Controls"> | ||
306 | <on_click function="ShowFloater" userdata="movement controls" /> | ||
307 | <on_check function="FloaterVisible" userdata="movement controls" /> | ||
308 | </menu_item_check> | ||
309 | <menu_item_check name="World Map" label="World Map" | ||
310 | shortcut="control|M"> | ||
311 | <on_click function="ShowFloater" userdata="world map" /> | ||
312 | <on_check control="ShowWorldMap" /> | ||
313 | </menu_item_check> | ||
314 | <menu_item_check name="Mini-Map" label="Mini-Map" | ||
315 | shortcut="control|shift|M"> | ||
316 | <on_click function="ShowFloater" userdata="mini map" /> | ||
317 | <on_check control="ShowMiniMap" /> | ||
318 | </menu_item_check> | ||
319 | <menu_item_separator /> | ||
320 | <menu_item_check name="Statistics Bar" label="Statistics Bar" | ||
321 | shortcut="control|shift|1"> | ||
322 | <on_click function="ShowFloater" userdata="stat bar" /> | ||
323 | <on_check function="FloaterVisible" userdata="stat bar" /> | ||
324 | </menu_item_check> | ||
325 | <menu_item_check name="Property Lines" label="Property Lines" | ||
326 | shortcut="control|alt|shift|P"> | ||
327 | <on_click function="ToggleControl" userdata="ShowPropertyLines" /> | ||
328 | <on_check control="ShowPropertyLines" /> | ||
329 | </menu_item_check> | ||
330 | <menu_item_check name="Land Owners" label="Land Owners"> | ||
331 | <on_click function="ToggleControl" userdata="ShowParcelOwners" /> | ||
332 | <on_check control="ShowParcelOwners" /> | ||
333 | </menu_item_check> | ||
334 | <menu_item_separator /> | ||
335 | <menu name="Hover Tips" create_jump_keys="true" label="Hover Tips" | ||
336 | opaque="true" tear_off="true"> | ||
337 | <menu_item_check name="Show Tips" label="Show Tips" | ||
338 | shortcut="control|shift|T"> | ||
339 | <on_click function="View.ShowHoverTips" userdata="" /> | ||
340 | <on_check function="View.CheckShowHoverTips" /> | ||
341 | </menu_item_check> | ||
342 | <menu_item_separator /> | ||
343 | <menu_item_check name="Land Tips" label="Land Tips"> | ||
344 | <on_click function="ToggleControl" | ||
345 | userdata="ShowLandHoverTip" /> | ||
346 | <on_enable function="View.CheckShowHoverTips" /> | ||
347 | <on_check control="ShowLandHoverTip" /> | ||
348 | </menu_item_check> | ||
349 | <menu_item_check name="Tips On All Objects" | ||
350 | label="Tips On All Objects"> | ||
351 | <on_click function="ToggleControl" | ||
352 | userdata="ShowAllObjectHoverTip" /> | ||
353 | <on_enable function="View.CheckShowHoverTips" /> | ||
354 | <on_check control="ShowAllObjectHoverTip" /> | ||
355 | </menu_item_check> | ||
356 | </menu> | ||
357 | <menu_item_check name="Highlight Transparent" | ||
358 | label="Highlight Transparent" | ||
359 | shortcut="control|alt|T"> | ||
360 | <on_click function="View.HighlightTransparent" userdata="" /> | ||
361 | <on_check function="View.CheckHighlightTransparent" /> | ||
362 | </menu_item_check> | ||
363 | <menu_item_check name="Beacons Always On" label="Beacons Always On"> | ||
364 | <on_click function="ToggleControl" userdata="BeaconAlwaysOn" /> | ||
365 | <on_check control="BeaconAlwaysOn" /> | ||
366 | </menu_item_check> | ||
367 | <menu name="Beacons" create_jump_keys="true" label="Beacons" | ||
368 | opaque="true" tear_off="true"> | ||
369 | <menu_item_check name="Scripted Objects With Touch Only" | ||
370 | label="Scripted Objects with Touch Only"> | ||
371 | <on_click function="View.ToggleBeacon" | ||
372 | userdata="scripttouchbeacon" /> | ||
373 | <on_check function="View.CheckBeaconEnabled" | ||
374 | userdata="scripttouchbeacon" /> | ||
375 | </menu_item_check> | ||
376 | <menu_item_check name="Scripted Objects" label="Scripted Objects"> | ||
377 | <on_click function="View.ToggleBeacon" | ||
378 | userdata="scriptsbeacon" /> | ||
379 | <on_check function="View.CheckBeaconEnabled" | ||
380 | userdata="scriptsbeacon" /> | ||
381 | </menu_item_check> | ||
382 | <menu_item_check name="Physical Objects" label="Physical Objects"> | ||
383 | <on_click function="View.ToggleBeacon" | ||
384 | userdata="physicalbeacon" /> | ||
385 | <on_check function="View.CheckBeaconEnabled" | ||
386 | userdata="physicalbeacon" /> | ||
387 | </menu_item_check> | ||
388 | <menu_item_check name="Sound Sources" label="Sound Sources"> | ||
389 | <on_click function="View.ToggleBeacon" | ||
390 | userdata="soundsbeacon" /> | ||
391 | <on_check function="View.CheckBeaconEnabled" | ||
392 | userdata="soundsbeacon" /> | ||
393 | </menu_item_check> | ||
394 | <menu_item_check name="Particle Sources" label="Particle Sources"> | ||
395 | <on_click function="View.ToggleBeacon" | ||
396 | userdata="particlesbeacon" /> | ||
397 | <on_check function="View.CheckBeaconEnabled" | ||
398 | userdata="particlesbeacon" /> | ||
399 | </menu_item_check> | ||
400 | <menu_item_separator /> | ||
401 | <menu_item_check name="Render Highlights" label="Render Highlights"> | ||
402 | <on_click function="View.ToggleBeacon" | ||
403 | userdata="renderhighlights" /> | ||
404 | <on_check function="View.CheckBeaconEnabled" | ||
405 | userdata="renderhighlights" /> | ||
406 | </menu_item_check> | ||
407 | <menu_item_check name="Render Beacons" label="Render Beacons"> | ||
408 | <on_click function="View.ToggleBeacon" | ||
409 | userdata="renderbeacons" /> | ||
410 | <on_check function="View.CheckBeaconEnabled" | ||
411 | userdata="renderbeacons" /> | ||
412 | </menu_item_check> | ||
413 | <menu_item_separator /> | ||
414 | <menu_item_check name="Hide Particles" label="Hide Particles"> | ||
415 | <on_click function="View.ToggleRenderType" | ||
416 | userdata="hideparticles" /> | ||
417 | <on_check function="View.CheckRenderType" | ||
418 | userdata="hideparticles" /> | ||
419 | </menu_item_check> | ||
420 | <menu_item_separator /> | ||
421 | <menu name="Beacon Width" color="0 0 0 1" create_jump_keys="true" | ||
422 | label="Beacon Width" opaque="true" tear_off="true"> | ||
423 | <menu_item_call name="Beacon Width 1" label="1"> | ||
424 | <on_click function="View.BeaconWidth" userdata="1" /> | ||
425 | </menu_item_call> | ||
426 | <menu_item_call name="Beacon Width 4" label="4"> | ||
427 | <on_click function="View.BeaconWidth" userdata="4" /> | ||
428 | </menu_item_call> | ||
429 | <menu_item_call name="Beacon Width 16" label="16"> | ||
430 | <on_click function="View.BeaconWidth" userdata="16" /> | ||
431 | </menu_item_call> | ||
432 | <menu_item_call name="Beacon Width 32" label="32"> | ||
433 | <on_click function="View.BeaconWidth" userdata="32" /> | ||
434 | </menu_item_call> | ||
435 | </menu> | ||
436 | </menu> | ||
437 | <menu_item_check name="Show HUD Attachments" | ||
438 | label="Show HUD Attachments" | ||
439 | shortcut="alt|shift|H"> | ||
440 | <on_click function="View.ShowHUDAttachments" userdata="" /> | ||
441 | <on_check function="View.CheckHUDAttachments" /> | ||
442 | </menu_item_check> | ||
443 | <menu_item_separator /> | ||
444 | <menu_item_call name="Zoom In" label="Zoom In" | ||
445 | shortcut="control|0"> | ||
446 | <on_click function="View.ZoomIn" userdata="" /> | ||
447 | </menu_item_call> | ||
448 | <menu_item_call name="Zoom Default" label="Zoom Default" | ||
449 | shortcut="control|9"> | ||
450 | <on_click function="View.ZoomDefault" userdata="" /> | ||
451 | </menu_item_call> | ||
452 | <menu_item_call name="Zoom Out" label="Zoom Out" | ||
453 | shortcut="control|8"> | ||
454 | <on_click function="View.ZoomOut" userdata="" /> | ||
455 | </menu_item_call> | ||
456 | <menu_item_separator /> | ||
457 | <menu_item_call name="Toggle Fullscreen" label="Toggle Fullscreen" | ||
458 | shortcut="alt|Enter"> | ||
459 | <on_click function="View.Fullscreen" userdata="" /> | ||
460 | </menu_item_call> | ||
461 | <menu_item_call name="Set UI Size to Default" | ||
462 | label="Set UI Size to Default"> | ||
463 | <on_click function="View.DefaultUISize" userdata="" /> | ||
464 | </menu_item_call> | ||
465 | </menu> | ||
466 | |||
467 | |||
468 | |||
469 | <!-- WORLD --> | ||
470 | |||
471 | <menu name="World" create_jump_keys="true" label="World" | ||
472 | opaque="true" tear_off="true"> | ||
473 | <menu_item_call name="Chat" label="Chat" shortcut=""> | ||
474 | <on_click function="World.Chat" userdata="" /> | ||
475 | </menu_item_call> | ||
476 | <menu_item_check name="Always Run" label="Always Run" | ||
477 | shortcut="control|R"> | ||
478 | <on_click function="World.AlwaysRun" userdata="" /> | ||
479 | <on_check function="World.CheckAlwaysRun" userdata="" /> | ||
480 | </menu_item_check> | ||
481 | <menu_item_check name="Fly" label="Fly" shortcut="Home"> | ||
482 | <on_click function="World.Fly" userdata="" /> | ||
483 | <on_enable function="World.EnableFly" /> | ||
484 | <on_check control="FlyBtnState" /> | ||
485 | </menu_item_check> | ||
486 | <menu_item_separator /> | ||
487 | <menu_item_call name="Create Landmark Here" | ||
488 | label="Create Landmark Here"> | ||
489 | <on_click function="World.CreateLandmark" userdata="" /> | ||
490 | <on_enable function="World.EnableCreateLandmark" userdata="" /> | ||
491 | </menu_item_call> | ||
492 | <menu_item_call name="Set Home to Here" label="Set Home to Here"> | ||
493 | <on_click function="World.SetHomeLocation" userdata="" /> | ||
494 | <on_enable function="World.EnableSetHomeLocation" userdata="" /> | ||
495 | </menu_item_call> | ||
496 | <menu_item_separator /> | ||
497 | <menu_item_call name="Teleport Home" label="Teleport Home" | ||
498 | shortcut="control|shift|H"> | ||
499 | <on_click function="World.TeleportHome" userdata="" /> | ||
500 | <on_enable function="World.EnableTeleportHome" userdata="" /> | ||
501 | </menu_item_call> | ||
502 | <menu_item_separator /> | ||
503 | <menu_item_call name="Set Away" label="Set Away"> | ||
504 | <on_click function="World.SetAway" userdata="" /> | ||
505 | </menu_item_call> | ||
506 | <menu_item_call name="Set Busy" label="Set Busy"> | ||
507 | <on_click function="World.SetBusy" userdata="" /> | ||
508 | </menu_item_call> | ||
509 | <menu_item_call name="Stop All Animations" enabled="false" | ||
510 | label="Stop All Animations"> | ||
511 | <on_click function="Tools.StopAllAnimations" userdata="" /> | ||
512 | </menu_item_call> | ||
513 | <menu_item_call name="Release Keys" enabled="false" label="Release Keys"> | ||
514 | <on_click function="Tools.ReleaseKeys" userdata="" /> | ||
515 | <on_enable function="Tools.EnableReleaseKeys" userdata="" /> | ||
516 | </menu_item_call> | ||
517 | <menu_item_separator /> | ||
518 | <menu_item_call name="Account History..." | ||
519 | label="Account History..."> | ||
520 | <on_click function="PromptShowURL" | ||
521 | userdata="WebLaunchAccountHistory,http://secondlife.com/account/transactions.php" /> | ||
522 | </menu_item_call> | ||
523 | <menu_item_call name="Manage My Account..." | ||
524 | label="Manage My Account..."> | ||
525 | <on_click function="PromptShowURL" | ||
526 | userdata="WebLaunchJoinNow,http://secondlife.com/account/" /> | ||
527 | </menu_item_call> | ||
528 | <menu_item_call name="Buy and Sell L$..." label="Buy L$..."> | ||
529 | <on_click function="ShowFloater" userdata="buy currency" /> | ||
530 | </menu_item_call> | ||
531 | <menu_item_separator /> | ||
532 | <menu_item_call name="My Land..." label="My Land..."> | ||
533 | <on_click function="ShowFloater" userdata="my land" /> | ||
534 | </menu_item_call> | ||
535 | <menu_item_call name="About Land..." label="About Land..."> | ||
536 | <on_click function="ShowFloater" userdata="about land" /> | ||
537 | </menu_item_call> | ||
538 | <menu_item_call name="Buy Land..." label="Buy Land..."> | ||
539 | <on_click function="ShowFloater" userdata="buy land" /> | ||
540 | <on_enable function="World.EnableBuyLand" /> | ||
541 | </menu_item_call> | ||
542 | <menu_item_call name="Region/Estate..." label="Region/Estate..."> | ||
543 | <on_click function="ShowFloater" userdata="about region" /> | ||
544 | </menu_item_call> | ||
545 | <menu_item_separator /> | ||
546 | <menu name="Environment Settings" create_jump_keys="true" | ||
547 | label="Environment Settings" opaque="true" tear_off="true"> | ||
548 | <menu_item_call name="Sunrise" label="Sunrise"> | ||
549 | <on_click function="World.EnvSettings" userdata="sunrise" /> | ||
550 | </menu_item_call> | ||
551 | <menu_item_call name="Noon" label="Midday" | ||
552 | shortcut="control|shift|Y"> | ||
553 | <on_click function="World.EnvSettings" userdata="noon" /> | ||
554 | </menu_item_call> | ||
555 | <menu_item_call name="Sunset" label="Sunset" | ||
556 | shortcut="control|shift|N"> | ||
557 | <on_click function="World.EnvSettings" userdata="sunset" /> | ||
558 | </menu_item_call> | ||
559 | <menu_item_call name="Midnight" label="Midnight"> | ||
560 | <on_click function="World.EnvSettings" userdata="midnight" /> | ||
561 | </menu_item_call> | ||
562 | <menu_item_call name="Revert to Region Default" enabled="false" | ||
563 | label="Revert to Region Default"> | ||
564 | <on_click function="World.EnvSettings" userdata="default" /> | ||
565 | </menu_item_call> | ||
566 | <menu_item_separator /> | ||
567 | <menu_item_call name="Environment Editor" enabled="false" | ||
568 | label="Environment Editor"> | ||
569 | <on_click function="World.EnvSettings" userdata="editor" /> | ||
570 | </menu_item_call> | ||
571 | </menu> | ||
572 | </menu> | ||
573 | |||
574 | |||
575 | |||
576 | <!-- TOOLS --> | ||
577 | |||
578 | <menu name="Tools" create_jump_keys="true" label="Tools" | ||
579 | opaque="true" tear_off="true" visible="false"> | ||
580 | <menu name="Select Tool" create_jump_keys="true" label="Select Tool" | ||
581 | opaque="true" tear_off="true"> | ||
582 | <menu_item_call name="Focus" label="Focus" shortcut="control|1"> | ||
583 | <on_click function="Tools.SelectTool" userdata="focus" /> | ||
584 | </menu_item_call> | ||
585 | <menu_item_call name="Move" label="Move" shortcut="control|2"> | ||
586 | <on_click function="Tools.SelectTool" userdata="move" /> | ||
587 | </menu_item_call> | ||
588 | <menu_item_call name="Edit" label="Edit" shortcut="control|3"> | ||
589 | <on_click function="Tools.SelectTool" userdata="edit" /> | ||
590 | </menu_item_call> | ||
591 | <menu_item_call name="Create" label="Create" shortcut="control|4"> | ||
592 | <on_click function="Tools.SelectTool" userdata="create" /> | ||
593 | </menu_item_call> | ||
594 | <menu_item_call name="Land" label="Land" shortcut="control|5"> | ||
595 | <on_click function="Tools.SelectTool" userdata="land" /> | ||
596 | </menu_item_call> | ||
597 | </menu> | ||
598 | <menu_item_separator /> | ||
599 | <menu_item_check name="Select Only My Objects" | ||
600 | label="Select Only My Objects"> | ||
601 | <on_click function="Tools.SelectOnlyMyObjects" | ||
602 | userdata="agents" /> | ||
603 | <on_check control="SelectOwnedOnly" /> | ||
604 | </menu_item_check> | ||
605 | <menu_item_check name="Select Only Movable Objects" | ||
606 | label="Select Only Movable Objects"> | ||
607 | <on_click function="Tools.SelectOnlyMovableObjects" | ||
608 | userdata="movable" /> | ||
609 | <on_check control="SelectMovableOnly" /> | ||
610 | </menu_item_check> | ||
611 | <menu_item_check name="Select By Surrounding" | ||
612 | label="Select By Surrounding"> | ||
613 | <on_click function="Tools.SelectBySurrounding" | ||
614 | userdata="" /> | ||
615 | <on_check control="RectangleSelectInclusive" /> | ||
616 | </menu_item_check> | ||
617 | <menu_item_check name="Show Hidden Selection" | ||
618 | label="Show Hidden Selection"> | ||
619 | <on_click function="Tools.ShowHiddenSelection" | ||
620 | userdata="" /> | ||
621 | <on_check control="RenderHiddenSelections" /> | ||
622 | </menu_item_check> | ||
623 | <menu_item_check name="Show Light Radius for Selection" | ||
624 | label="Show Light Radius for Selection"> | ||
625 | <on_click function="Tools.ShowSelectionLightRadius" | ||
626 | userdata="" /> | ||
627 | <on_check control="RenderLightRadius" /> | ||
628 | </menu_item_check> | ||
629 | <menu_item_check name="Show Selection Beam" | ||
630 | label="Show Selection Beam"> | ||
631 | <on_click function="ToggleControl" | ||
632 | userdata="ShowSelectionBeam" /> | ||
633 | <on_check control="ShowSelectionBeam" /> | ||
634 | </menu_item_check> | ||
635 | <menu_item_separator /> | ||
636 | <menu_item_check name="Snap to Grid" enabled="false" | ||
637 | label="Snap to Grid" shortcut="G"> | ||
638 | <on_click function="ToggleControl" | ||
639 | userdata="SnapEnabled" /> | ||
640 | <on_check control="SnapEnabled" /> | ||
641 | <on_enable function="Tools.EnableToolNotPie" /> | ||
642 | </menu_item_check> | ||
643 | <menu_item_call name="Snap Object XY to Grid" enabled="false" | ||
644 | label="Snap Object XY to Grid" shortcut="shift|X"> | ||
645 | <on_click function="Tools.SnapObjectXY" userdata="" /> | ||
646 | <on_enable function="Tools.EnableToolNotPie" /> | ||
647 | </menu_item_call> | ||
648 | <menu_item_call name="Use Selection for Grid" enabled="false" | ||
649 | label="Use Selection for Grid" shortcut="shift|G"> | ||
650 | <on_click function="Tools.UseSelectionForGrid" userdata="" /> | ||
651 | <on_enable function="SomethingSelected" /> | ||
652 | </menu_item_call> | ||
653 | <menu_item_call name="Grid Options..." enabled="false" | ||
654 | label="Grid Options..." shortcut="control|shift|B"> | ||
655 | <on_click function="ShowFloater" userdata="grid options" /> | ||
656 | <on_enable function="Tools.EnableToolNotPie" /> | ||
657 | </menu_item_call> | ||
658 | <menu_item_separator /> | ||
659 | <menu_item_check name="Edit Linked Parts" enabled="false" | ||
660 | label="Edit Linked Parts" shortcut=""> | ||
661 | <on_click function="ToggleControl" userdata="EditLinkedParts" /> | ||
662 | <on_click function="Tools.EditLinkedParts" userdata="" /> | ||
663 | <on_check control="EditLinkedParts" /> | ||
664 | <on_enable function="Tools.EnableToolNotPie" /> | ||
665 | </menu_item_check> | ||
666 | <menu_item_call name="Link" enabled="false" label="Link" | ||
667 | shortcut="control|L"> | ||
668 | <on_click function="Tools.Link" userdata="" /> | ||
669 | <on_enable function="Tools.EnableLink" /> | ||
670 | </menu_item_call> | ||
671 | <menu_item_call name="Unlink" enabled="false" label="Unlink" | ||
672 | shortcut="control|shift|L"> | ||
673 | <on_click function="Tools.Unlink" userdata="" /> | ||
674 | <on_enable function="Tools.EnableUnlink" /> | ||
675 | </menu_item_call> | ||
676 | <menu_item_separator /> | ||
677 | <menu_item_call name="Focus on Selection" enabled="false" | ||
678 | label="Focus on Selection" shortcut="H"> | ||
679 | <on_click function="Tools.LookAtSelection" userdata="focus" /> | ||
680 | <on_enable function="Tools.SomethingSelectedNoHUD" /> | ||
681 | </menu_item_call> | ||
682 | <menu_item_call name="Zoom to Selection" enabled="false" | ||
683 | label="Zoom to Selection" shortcut="shift|H"> | ||
684 | <on_click function="Tools.LookAtSelection" userdata="zoom" /> | ||
685 | <on_enable function="Tools.SomethingSelectedNoHUD" /> | ||
686 | </menu_item_call> | ||
687 | <menu_item_call name="Menu Object Take" enabled="false" | ||
688 | label="Buy Object" visible="false"> | ||
689 | <on_click function="Tools.BuyOrTake" userdata="" /> | ||
690 | <on_enable function="Tools.EnableBuyOrTake" userdata="Buy,Take" /> | ||
691 | </menu_item_call> | ||
692 | <menu_item_call name="Take Copy" enabled="false" | ||
693 | label="Take Copy"> | ||
694 | <on_click function="Tools.TakeCopy" userdata="" /> | ||
695 | <on_enable function="Tools.EnableTakeCopy" /> | ||
696 | </menu_item_call> | ||
697 | <menu_item_call name="Return..." enabled="false" | ||
698 | label="Return Object"> | ||
699 | <on_click function="Object.Return" /> | ||
700 | <on_enable function="Object.EnableReturn" /> | ||
701 | </menu_item_call> | ||
702 | <menu_item_call name="Save Object Back to My Inventory" | ||
703 | enabled="false" | ||
704 | label="Save Object Back to My Inventory"> | ||
705 | <on_click function="Tools.SaveToInventory" userdata="" /> | ||
706 | <on_enable function="Tools.EnableSaveToInventory" /> | ||
707 | </menu_item_call> | ||
708 | <menu_item_call name="Save Object Back to Object Contents" | ||
709 | enabled="false" | ||
710 | label="Save Object Back to Object Contents"> | ||
711 | <on_click function="Tools.SaveToObjectInventory" userdata="" /> | ||
712 | <on_enable function="Tools.EnableSaveToObjectInventory" /> | ||
713 | </menu_item_call> | ||
714 | <menu_item_separator /> | ||
715 | <menu_item_call name="Show Script Warning/Error Window" | ||
716 | label="Show Script Warning/Error Window"> | ||
717 | <on_click function="ShowFloater" userdata="script errors" /> | ||
718 | </menu_item_call> | ||
719 | <menu name="Recompile Scripts in Selection" create_jump_keys="true" | ||
720 | label="Recompile Scripts in Selection" opaque="true" | ||
721 | tear_off="true"> | ||
722 | <menu_item_call name="Mono" label="Mono"> | ||
723 | <on_click function="Tools.SelectedScriptAction" | ||
724 | userdata="compile mono" /> | ||
725 | <on_enable function="EditableSelectedMono" /> | ||
726 | </menu_item_call> | ||
727 | <menu_item_call name="LSL" label="LSL"> | ||
728 | <on_click function="Tools.SelectedScriptAction" | ||
729 | userdata="compile lsl" /> | ||
730 | <on_enable function="EditableSelected" /> | ||
731 | </menu_item_call> | ||
190 | </menu> | 732 | </menu> |
191 | <menu_item_separator bottom="-305" enabled="true" height="8" label="-----------" left="0" | 733 | <menu_item_call name="Reset Scripts in Selection" enabled="false" |
192 | mouse_opaque="true" name="separator6" width="153" /> | 734 | label="Reset Scripts in Selection"> |
193 | <menu_item_call bottom="-324" enabled="true" height="19" label="Gestures..." left="0" | 735 | <on_click function="Tools.SelectedScriptAction" |
194 | mouse_opaque="true" name="Gestures..." shortcut="control|G" width="153"> | 736 | userdata="reset" /> |
195 | <on_click function="ShowFloater" userdata="gestures" /> | 737 | <on_enable function="EditableSelected" /> |
196 | </menu_item_call> | 738 | </menu_item_call> |
197 | <menu_item_call bottom="-343" enabled="true" height="19" label="Profile..." left="0" | 739 | <menu_item_call name="Set Scripts to Running in Selection" |
198 | mouse_opaque="true" name="Profile..." width="153"> | 740 | enabled="false" |
199 | <on_click function="ShowAgentProfile" userdata="agent" /> | 741 | label="Set Scripts to Running in Selection"> |
200 | </menu_item_call> | 742 | <on_click function="Tools.SelectedScriptAction" |
201 | <menu_item_call bottom="-362" enabled="true" height="19" label="Appearance..." left="0" | 743 | userdata="start" /> |
202 | mouse_opaque="true" name="Appearance..." width="153"> | 744 | <on_enable function="EditableSelected" /> |
203 | <on_click function="ShowFloater" userdata="appearance" /> | 745 | </menu_item_call> |
204 | <on_enable function="Edit.EnableCustomizeAvatar" /> | 746 | <menu_item_call name="Set Scripts to Not Running in Selection" |
205 | </menu_item_call> | 747 | enabled="false" |
206 | <menu_item_separator bottom="-370" enabled="true" height="8" label="-----------" left="0" | 748 | label="Set Scripts to Not Running in Selection"> |
207 | mouse_opaque="true" name="separator7" width="153" /> | 749 | <on_click function="Tools.SelectedScriptAction" |
208 | <menu_item_check bottom="-389" enabled="true" height="19" label="Friends..." left="0" | 750 | userdata="stop" /> |
209 | mouse_opaque="true" name="Friends..." shortcut="control|shift|F" | 751 | <on_enable function="EditableSelected" /> |
210 | width="153"> | 752 | </menu_item_call> |
211 | <on_click function="ShowFloater" userdata="friends" /> | 753 | <menu_item_call name="Set permissions on selected task inventory" |
212 | <on_check function="FloaterVisible" userdata="friends" /> | 754 | enabled="false" |
213 | </menu_item_check> | 755 | label="Set permissions on selected task inventory"> |
214 | <menu_item_call bottom="-408" enabled="true" height="19" label="Groups..." left="0" | 756 | <on_click function="Tools.SetBulkPerms" userdata="" /> |
215 | mouse_opaque="true" name="Groups..." width="153"> | 757 | <on_enable function="EditableSelected" /> |
216 | <on_click function="ShowAgentGroups" userdata="agent" /> | 758 | </menu_item_call> |
217 | </menu_item_call> | 759 | </menu> |
218 | <menu_item_separator bottom="-416" enabled="true" height="8" label="-----------" left="0" | 760 | |
219 | mouse_opaque="true" name="separator8" width="153" /> | 761 | |
220 | <menu_item_call bottom="-435" enabled="true" height="19" label="Preferences..." left="0" | 762 | |
221 | mouse_opaque="true" name="Preferences..." shortcut="control|P" width="153"> | 763 | <!-- HELP --> |
222 | <on_click function="ShowFloater" userdata="preferences" /> | 764 | |
223 | </menu_item_call> | 765 | <menu name="Help" create_jump_keys="true" label="Help" |
224 | </menu> | 766 | opaque="true" tear_off="true"> |
225 | <menu bottom="-1" create_jump_keys="true" drop_shadow="true" enabled="true" | 767 | <menu_item_call name="Second Life Help" label="Second Life Help" |
226 | height="537" label="View" left="80" mouse_opaque="false" name="View" | 768 | shortcut="F1"> |
227 | opaque="true" tear_off="true" width="211"> | 769 | <on_click function="ShowFloater" userdata="help f1" /> |
228 | <tearoff_menu bottom="-10" enabled="true" height="10" label="~~~~~~~~~~~" left="0" | 770 | </menu_item_call> |
229 | mouse_opaque="true" name="~~~~~~~~~~~" width="211" /> | 771 | <menu_item_call name="Tutorial" label="Tutorial"> |
230 | <menu_item_call bottom="-29" enabled="true" height="19" label="Mouselook" left="0" | 772 | <on_click function="ShowFloater" userdata="help tutorial" /> |
231 | mouse_opaque="true" name="Mouselook" shortcut="M" width="211"> | 773 | </menu_item_call> |
232 | <on_click function="View.Mouselook" userdata="" /> | 774 | <menu_item_separator /> |
233 | <on_enable function="View.EnableMouselook" /> | 775 | <menu_item_call name="Official Linden Blog..." |
234 | </menu_item_call> | 776 | label="Official Linden Blog..."> |
235 | <menu_item_check bottom="-48" enabled="true" height="19" label="Build" left="0" | 777 | <on_click function="PromptShowURL" |
236 | mouse_opaque="true" name="Build" shortcut="B" width="211"> | 778 | userdata="WebLaunchSupportWiki,http://blog.secondlife.com/" /> |
237 | <on_click function="View.BuildMode" userdata="" /> | 779 | </menu_item_call> |
238 | <on_check function="View.CheckBuildMode" /> | 780 | <menu_item_separator /> |
239 | </menu_item_check> | 781 | <menu_item_call name="Scripting Guide..." |
240 | <menu_item_check bottom="-48" enabled="true" height="19" label="Joystick Flycam" left="0" | 782 | label="Scripting Guide..."> |
241 | mouse_opaque="true" name="Joystick Flycam" shortcut="alt|shift|F" | 783 | <on_click function="PromptShowFile" |
242 | width="211"> | 784 | userdata="WebLaunchLSLGuide,lsl_guide.html" /> |
243 | <on_click function="View.JoystickFlycam" userdata="" /> | 785 | </menu_item_call> |
244 | <on_check function="View.CheckJoystickFlycam" /> | 786 | <menu_item_call name="Scripting Portal..." |
245 | </menu_item_check> | 787 | label="Scripting Portal..."> |
246 | <menu_item_call bottom="-67" enabled="true" height="19" label="Reset View" left="0" | 788 | <on_click function="PromptShowURL" |
247 | mouse_opaque="true" name="Reset View" shortcut="Esc" width="211"> | 789 | userdata="WebLaunchLSLWiki,http://wiki.secondlife.com/wiki/LSL_Portal" /> |
248 | <on_click function="View.ResetView" userdata="" /> | 790 | </menu_item_call> |
249 | </menu_item_call> | 791 | <menu_item_separator /> |
250 | <menu_item_call bottom="-86" enabled="false" height="19" label="Look at Last Chatter" left="0" | 792 | <menu_item_call name="Report Abuse..." label="Report Abuse..."> |
251 | mouse_opaque="true" name="Look at Last Chatter" shortcut="control|\" | 793 | <on_click function="ShowFloater" |
252 | width="211"> | 794 | userdata="complaint reporter" /> |
253 | <on_click function="View.LookAtLastChatter" userdata="" /> | 795 | </menu_item_call> |
254 | <on_enable function="View.EnableLastChatter" /> | 796 | <menu_item_call name="Bumps, Pushes &amp; Hits..." |
255 | </menu_item_call> | 797 | label="Bumps, Pushes & Hits..."> |
256 | <menu_item_separator bottom="-94" enabled="true" height="8" label="-----------" left="0" | 798 | <on_click function="ShowFloater" userdata="mean events" /> |
257 | mouse_opaque="true" name="separator" width="211" /> | 799 | </menu_item_call> |
258 | <menu_item_check bottom="-113" enabled="true" height="19" label="Toolbar" left="0" | 800 | <menu_item_call name="Lag Meter" label="Lag Meter"> |
259 | mouse_opaque="true" name="Toolbar" width="211"> | 801 | <on_click function="ShowFloater" userdata="lag meter" /> |
260 | <on_click function="ShowFloater" userdata="toolbar" /> | 802 | </menu_item_call> |
261 | <on_check function="FloaterVisible" userdata="toolbar" /> | 803 | <menu_item_separator /> |
262 | </menu_item_check> | 804 | <menu name="Bug Reporting" create_jump_keys="true" |
263 | <menu_item_check bottom="-132" enabled="true" height="19" label="Local Chat" left="0" | 805 | label="Bug Reporting" opaque="true" tear_off="true"> |
264 | mouse_opaque="true" name="Chat History" shortcut="control|H" width="211"> | 806 | <menu_item_call name="Public Issue Tracker..." |
265 | <on_click function="ShowFloater" userdata="chat history" /> | 807 | label="Public Issue Tracker..."> |
266 | <on_check function="FloaterVisible" userdata="chat history" /> | 808 | <on_click function="PromptShowURL" |
267 | </menu_item_check> | 809 | userdata="WebLaunchPublicIssue,http://jira.secondlife.com" /> |
268 | <menu_item_check bottom="-151" enabled="true" height="19" label="Communicate" left="0" | 810 | </menu_item_call> |
269 | mouse_opaque="true" name="Instant Message" shortcut="control|T" width="211"> | 811 | <menu_item_call name="Publc Issue Tracker Help..." |
270 | <on_click function="ShowFloater" userdata="im" /> | 812 | label="Public Issue Tracker Help..."> |
271 | <on_check function="FloaterVisible" userdata="im" /> | 813 | <on_click function="PromptShowURL" |
272 | </menu_item_check> | 814 | userdata="WebLaunchPublicIssueHelp,http://wiki.secondlife.com/wiki/Issue_tracker" /> |
273 | <menu_item_call bottom="-170" enabled="true" height="19" label="Inventory" left="0" | 815 | </menu_item_call> |
274 | mouse_opaque="true" name="Inventory" shortcut="control|I" width="211"> | 816 | <menu_item_separator /> |
275 | <on_click function="ShowFloater" userdata="inventory" /> | 817 | <menu_item_call name="Bug Reporing 101..." |
276 | </menu_item_call> | 818 | label="Bug Reporting 101..."> |
277 | <menu_item_check bottom="-189" enabled="true" height="19" label="Active Speakers" left="0" | 819 | <on_click function="PromptShowURL" |
278 | mouse_opaque="true" name="Active Speakers" width="211"> | 820 | userdata="WebLaunchBugReport101,http://wiki.secondlife.com/wiki/Bug_Reporting_101" /> |
279 | <on_click function="ShowFloater" userdata="active speakers" /> | 821 | </menu_item_call> |
280 | <on_check function="FloaterVisible" userdata="active speakers" /> | 822 | <menu_item_call name="Security Issues..." |
281 | </menu_item_check> | 823 | label="Security Issues..."> |
282 | <menu_item_check bottom="-189" enabled="true" height="19" label="Mute List" left="0" | 824 | <on_click function="PromptShowURL" |
283 | mouse_opaque="true" name="Mute List" width="211"> | 825 | userdata="WebLaunchSecurityIssues,http://wiki.secondlife.com/wiki/Security_issues" /> |
284 | <on_click function="ShowFloater" userdata="mute list" /> | 826 | </menu_item_call> |
285 | <on_check function="FloaterVisible" userdata="mute list" /> | 827 | <menu_item_call name="QA Wiki..." label="QA Wiki..."> |
286 | </menu_item_check> | 828 | <on_click function="PromptShowURL" |
287 | <menu_item_separator bottom="-197" enabled="true" height="8" label="-----------" left="0" | 829 | userdata="WebLaunchQAWiki,http://wiki.secondlife.com/wiki/QA_Portal" /> |
288 | mouse_opaque="true" name="separator2" width="211" /> | 830 | </menu_item_call> |
289 | <menu_item_check bottom="-216" enabled="true" height="19" label="Camera Controls" left="0" | 831 | <menu_item_separator /> |
290 | mouse_opaque="true" name="Camera Controls" width="211"> | 832 | <menu_item_call name="Report Bug..." label="Report Bug..."> |
291 | <on_click function="ShowFloater" userdata="camera controls" /> | 833 | <on_click function="PromptShowURL" |
292 | <on_check function="FloaterVisible" userdata="camera controls" /> | 834 | userdata="WebLaunchPublicIssue,http://jira.secondlife.com" /> |
293 | </menu_item_check> | 835 | </menu_item_call> |
294 | <menu_item_check bottom="-235" enabled="true" height="19" label="Movement Controls" left="0" | 836 | </menu> |
295 | mouse_opaque="true" name="Movement Controls" width="211"> | 837 | <menu_item_separator /> |
296 | <on_click function="ShowFloater" userdata="movement controls" /> | 838 | <menu_item_call name="About Second Life..." |
297 | <on_check function="FloaterVisible" userdata="movement controls" /> | 839 | label="About Second Life..."> |
298 | </menu_item_check> | 840 | <on_click function="ShowFloater" userdata="about" /> |
299 | <menu_item_check bottom="-254" enabled="true" height="19" label="World Map" left="0" | 841 | </menu_item_call> |
300 | mouse_opaque="true" name="World Map" shortcut="control|M" width="211"> | 842 | </menu> |
301 | <on_click function="ShowFloater" userdata="world map" /> | 843 | |
302 | <on_check control="ShowWorldMap" /> | 844 | |
303 | </menu_item_check> | 845 | |
304 | <menu_item_check bottom="-273" enabled="true" height="19" label="Mini-Map" left="0" | 846 | <!-- ADVANCED --> |
305 | mouse_opaque="true" name="Mini-Map" shortcut="control|shift|M" width="211"> | 847 | |
306 | <on_click function="ShowFloater" userdata="mini map" /> | 848 | <menu name="Advanced" drop_shadow="true" |
307 | <on_check control="ShowMiniMap" /> | 849 | opaque="true" tear_off="true"> |
308 | </menu_item_check> | 850 | |
309 | <menu_item_separator bottom="-281" enabled="true" height="8" label="-----------" left="0" | 851 | |
310 | mouse_opaque="true" name="separator3" width="211" /> | 852 | <!-- CONSOLES --> |
311 | <menu_item_check bottom="-300" enabled="true" height="19" label="Statistics Bar" left="0" | 853 | |
312 | mouse_opaque="true" name="Statistics Bar" shortcut="control|shift|1" | 854 | <menu name="Consoles" drop_shadow="true" |
313 | width="211"> | 855 | opaque="true" tear_off="true"> |
314 | <on_click function="ShowFloater" userdata="stat bar" /> | 856 | <menu_item_check name="Frame Console" label="Frame Console" |
315 | <on_check function="FloaterVisible" userdata="stat bar" /> | 857 | shortcut="control|shift|2"> |
316 | </menu_item_check> | 858 | <on_click function="Advanced.ToggleConsole" |
317 | <menu_item_check bottom="-319" enabled="true" height="19" label="Property Lines" left="0" | 859 | userdata="frame" /> |
318 | mouse_opaque="true" name="Property Lines" shortcut="control|alt|shift|P" | 860 | <on_check function="Advanced.CheckConsole" |
319 | width="211"> | 861 | userdata="frame" /> |
320 | <on_click function="ToggleControl" userdata="ShowPropertyLines" /> | 862 | </menu_item_check> |
321 | <on_check control="ShowPropertyLines" /> | 863 | <menu_item_check name="Texture Console" label="Texture Console" |
322 | </menu_item_check> | 864 | shortcut="control|shift|3"> |
323 | <menu_item_check bottom="-338" enabled="true" height="19" label="Land Owners" left="0" | 865 | <on_click function="Advanced.ToggleConsole" |
324 | mouse_opaque="true" name="Land Owners" width="211"> | 866 | userdata="texture" /> |
325 | <on_click function="ToggleControl" userdata="ShowParcelOwners" /> | 867 | <on_check function="Advanced.CheckConsole" |
326 | <on_check control="ShowParcelOwners" /> | 868 | userdata="texture" /> |
327 | </menu_item_check> | 869 | </menu_item_check> |
328 | <menu_item_separator bottom="-346" enabled="true" height="8" label="-----------" left="0" | 870 | <menu_item_check name="Debug Console" label="Debug Console" |
329 | mouse_opaque="true" name="separator4" width="211" /> | 871 | shortcut="control|shift|4"> |
330 | <menu bottom="-554" create_jump_keys="true" drop_shadow="true" enabled="true" | 872 | <on_click function="Advanced.ToggleConsole" |
331 | height="79" label="Hover Tips" left="0" mouse_opaque="false" | 873 | userdata="debug" /> |
332 | name="Hover Tips" opaque="true" tear_off="true" width="158"> | 874 | <on_check function="Advanced.CheckConsole" |
333 | <menu_item_check bottom="-29" enabled="true" height="19" label="Show Tips" left="0" | 875 | userdata="debug" /> |
334 | mouse_opaque="true" name="Show Tips" shortcut="control|shift|T" width="158"> | 876 | </menu_item_check> |
335 | <on_click function="View.ShowHoverTips" userdata="" /> | 877 | <menu_item_check name="Fast Timers" label="Fast Timers" |
336 | <on_check function="View.CheckShowHoverTips" /> | 878 | shortcut="control|shift|9"> |
337 | </menu_item_check> | 879 | <on_click function="Advanced.ToggleConsole" |
338 | <menu_item_separator bottom="-37" enabled="true" height="8" label="-----------" left="0" | 880 | userdata="fast timers" /> |
339 | mouse_opaque="true" name="separator" width="158" /> | 881 | <on_check function="Advanced.CheckConsole" |
340 | <menu_item_check bottom="-56" enabled="true" height="19" label="Land Tips" left="0" | 882 | userdata="fast timers" /> |
341 | mouse_opaque="true" name="Land Tips" width="158"> | 883 | </menu_item_check> |
342 | <on_click function="ToggleControl" userdata="ShowLandHoverTip" /> | 884 | <!-- Requires compiled-in support, I think? |
343 | <on_enable function="View.CheckShowHoverTips" /> | 885 | <menu_item_check name="Memory" label="Memory" |
344 | <on_check control="ShowLandHoverTip" /> | 886 | shortcut="control|shift|0"> |
345 | </menu_item_check> | 887 | <on_click function="Advanced.ToggleConsole" |
346 | <menu_item_check bottom="-75" enabled="true" height="19" label="Tips On All Objects" left="0" | 888 | userdata="memory" /> |
347 | mouse_opaque="true" name="Tips On All Objects" width="158"> | 889 | <on_check function="Advanced.CheckConsole" |
348 | <on_click function="ToggleControl" userdata="ShowAllObjectHoverTip" /> | 890 | userdata="memory" /> |
349 | <on_enable function="View.CheckShowHoverTips" /> | 891 | </menu_item_check> |
350 | <on_check control="ShowAllObjectHoverTip" /> | 892 | --> |
351 | </menu_item_check> | 893 | <menu_item_separator /> |
352 | </menu> | 894 | <menu_item_call name="Region Info to Debug Console" |
353 | <menu_item_check bottom="-403" enabled="true" height="19" label="Highlight Transparent" left="0" | 895 | label="Region Info to Debug Console"> |
354 | mouse_opaque="true" name="Highlight Transparent" shortcut="control|alt|T" | 896 | <on_click function="Advanced.DumpInfoToConsole" |
355 | width="211"> | 897 | userdata="region" /> |
356 | <on_click function="View.HighlightTransparent" userdata="" /> | 898 | </menu_item_call> |
357 | <on_check function="View.CheckHighlightTransparent" /> | 899 | <menu_item_call name="Group Info to Debug Console" |
358 | </menu_item_check> | 900 | label="Group Info to Debug Console"> |
359 | <menu_item_check bottom="-384" enabled="true" height="19" label="Beacons Always On" left="0" | 901 | <on_click function="Advanced.DumpInfoToConsole" |
360 | mouse_opaque="true" name="Beacons Always On" | 902 | userdata="group" /> |
361 | width="211"> | 903 | </menu_item_call> |
362 | <on_click function="ToggleControl" userdata="BeaconAlwaysOn" /> | 904 | <menu_item_call name="Capabilities Info to Debug Console" |
363 | <on_check control="BeaconAlwaysOn" /> | 905 | label="Capabilities Info to Debug Console"> |
364 | </menu_item_check> | 906 | <on_click function="Advanced.DumpInfoToConsole" |
365 | <menu bottom="-554" create_jump_keys="true" drop_shadow="true" enabled="true" | 907 | userdata="capabilities" /> |
366 | height="117" label="Beacons" left="0" mouse_opaque="false" name="Beacons" | 908 | </menu_item_call> |
367 | opaque="true" tear_off="true" width="129"> | 909 | </menu> |
368 | <menu_item_check bottom="-29" enabled="true" height="19" | 910 | |
369 | label="Scripted Objects with Touch Only" left="0" mouse_opaque="true" | 911 | |
370 | name="Scripted Objects With Touch Only" width="129"> | 912 | <menu_item_call name="Reload personal setting overrides" |
371 | <on_click function="View.ToggleBeacon" userdata="scripttouchbeacon" /> | 913 | label="Reload personal settings overrides" |
372 | <on_check function="View.CheckBeaconEnabled" userdata="scripttouchbeacon" /> | 914 | shortcut="control|shift|F2"> |
373 | </menu_item_check> | 915 | <on_click function="Advanced.ReloadSettingsOverrides" userdata="" /> |
374 | <menu_item_check bottom="-48" enabled="true" height="19" label="Scripted Objects" left="0" | 916 | </menu_item_call> |
375 | mouse_opaque="true" name="Scripted Objects" width="129"> | 917 | |
376 | <on_click function="View.ToggleBeacon" userdata="scriptsbeacon" /> | 918 | |
377 | <on_check function="View.CheckBeaconEnabled" userdata="scriptsbeacon" /> | 919 | |
378 | </menu_item_check> | 920 | <!-- HUD INFO --> |
379 | <menu_item_check bottom="-67" enabled="true" height="19" label="Physical Objects" left="0" | 921 | |
380 | mouse_opaque="true" name="Physical Objects" width="129"> | 922 | <menu name="HUD Info" drop_shadow="true" |
381 | <on_click function="View.ToggleBeacon" userdata="physicalbeacon" /> | 923 | opaque="true" tear_off="true"> |
382 | <on_check function="View.CheckBeaconEnabled" userdata="physicalbeacon" /> | 924 | <menu_item_check name="Velocity" label="Velocity"> |
383 | </menu_item_check> | 925 | <on_click function="Advanced.ToggleHUDInfo" |
384 | <menu_item_check bottom="-86" enabled="true" height="19" label="Sound Sources" left="0" | 926 | userdata="velocity" /> |
385 | mouse_opaque="true" name="Sound Sources" width="129"> | 927 | <on_check function="Advanced.CheckHUDInfo" |
386 | <on_click function="View.ToggleBeacon" userdata="soundsbeacon" /> | 928 | userdata="velocity" /> |
387 | <on_check function="View.CheckBeaconEnabled" userdata="soundsbeacon" /> | 929 | </menu_item_check> |
388 | </menu_item_check> | 930 | <menu_item_check name="Camera" label="Camera"> |
389 | <menu_item_check bottom="-105" enabled="true" height="19" label="Particle Sources" left="0" | 931 | <on_click function="Advanced.ToggleHUDInfo" |
390 | mouse_opaque="true" name="Particle Sources" width="129"> | 932 | userdata="camera" /> |
391 | <on_click function="View.ToggleBeacon" userdata="particlesbeacon" /> | 933 | <on_check function="Advanced.CheckHUDInfo" |
392 | <on_check function="View.CheckBeaconEnabled" userdata="particlesbeacon" /> | 934 | userdata="camera" /> |
393 | </menu_item_check> | 935 | </menu_item_check> |
394 | <menu_item_separator bottom="-113" enabled="true" height="8" label="-----------" left="0" | 936 | <menu_item_check name="Wind" label="Wind"> |
395 | mouse_opaque="true" name="separator" width="129" /> | 937 | <on_click function="Advanced.ToggleHUDInfo" |
396 | <menu_item_check bottom="-121" enabled="true" height="19" label="Render Highlights" left="0" | 938 | userdata="wind" /> |
397 | mouse_opaque="true" name="Render Highlights" width="129"> | 939 | <on_check function="Advanced.CheckHUDInfo" |
398 | <on_click function="View.ToggleBeacon" userdata="renderhighlights" /> | 940 | userdata="wind" /> |
399 | <on_check function="View.CheckBeaconEnabled" userdata="renderhighlights" /> | 941 | </menu_item_check> |
400 | </menu_item_check> | 942 | <menu_item_check name="FOV" label="FOV"> |
401 | <menu_item_check bottom="-140" enabled="true" height="19" label="Render Beacons" left="0" | 943 | <on_click function="Advanced.ToggleHUDInfo" |
402 | mouse_opaque="true" name="Render Beacons" width="129"> | 944 | userdata="fov" /> |
403 | <on_click function="View.ToggleBeacon" userdata="renderbeacons" /> | 945 | <on_check function="Advanced.CheckHUDInfo" |
404 | <on_check function="View.CheckBeaconEnabled" userdata="renderbeacons" /> | 946 | userdata="fov" /> |
405 | </menu_item_check> | 947 | </menu_item_check> |
406 | <menu_item_separator bottom="-159" enabled="true" height="8" label="-----------" left="0" | 948 | </menu> |
407 | mouse_opaque="true" name="separator2" width="129" /> | 949 | |
408 | <menu_item_check bottom="-167" enabled="true" height="19" label="Hide Particles" left="0" | 950 | |
409 | mouse_opaque="true" name="Hide Particles" width="129"> | 951 | <menu_item_separator /> |
410 | <on_click function="View.ToggleRenderType" userdata="hideparticles" /> | 952 | |
411 | <on_check function="View.CheckRenderType" userdata="hideparticles" /> | 953 | <menu_item_check name="High-res Snapshot" |
412 | </menu_item_check> | 954 | label="High-res Snapshot"> |
413 | <menu_item_separator bottom="-186" enabled="true" height="8" label="-----------" left="0" | 955 | <on_click function="ToggleControl" |
414 | mouse_opaque="true" name="separator3" width="129" /> | 956 | userdata="HighResSnapshot" /> |
415 | <menu bottom="-205" color="0 0 0 1" create_jump_keys="true" drop_shadow="true" | 957 | <on_check control="HighResSnapshot" /> |
416 | enabled="true" height="117" label="Beacon Width" left="0" | 958 | </menu_item_check> |
417 | mouse_opaque="false" name="Beacon Width" opaque="true" tear_off="true" | 959 | <menu_item_check name="Quiet Snapshots to Disk" |
418 | width="129"> | 960 | label="Quiet Snapshots to Disk"> |
419 | <menu_item_call bottom="-19" enabled="true" height="19" label="1" left="0" mouse_opaque="true" | 961 | <on_click function="ToggleControl" |
420 | name="Beacon Width 1" width="188"> | 962 | userdata="QuietSnapshotsToDisk" /> |
421 | <on_click function="View.BeaconWidth" userdata="1" /> | 963 | <on_check control="QuietSnapshotsToDisk" /> |
422 | </menu_item_call> | 964 | </menu_item_check> |
423 | <menu_item_call bottom="-19" enabled="true" height="19" label="4" left="0" mouse_opaque="true" | 965 | <menu_item_check name="Compress Snapshots to Disk" |
424 | name="Beacon Width 4" width="188"> | 966 | label="Compress Snapshots to Disk"> |
425 | <on_click function="View.BeaconWidth" userdata="4" /> | 967 | <on_click function="ToggleControl" |
426 | </menu_item_call> | 968 | userdata="CompressSnapshotsToDisk" /> |
427 | <menu_item_call bottom="-19" enabled="true" height="19" label="16" left="0" mouse_opaque="true" | 969 | <on_check control="CompressSnapshotsToDisk" /> |
428 | name="Beacon Width 16" width="188"> | 970 | </menu_item_check> |
429 | <on_click function="View.BeaconWidth" userdata="16" /> | 971 | <menu_item_check name="Show Mouselook Crosshairs" |
430 | </menu_item_call> | 972 | label="Show Mouselook Crosshairs"> |
431 | <menu_item_call bottom="-19" enabled="true" height="19" label="32" left="0" mouse_opaque="true" | 973 | <on_click function="ToggleControl" |
432 | name="Beacon Width 32" width="188"> | 974 | userdata="ShowCrosshairs" /> |
433 | <on_click function="View.BeaconWidth" userdata="32" /> | 975 | <on_check control="ShowCrosshairs" /> |
434 | </menu_item_call> | 976 | </menu_item_check> |
435 | </menu> | 977 | <menu_item_check name="Debug Permissions" |
436 | </menu> | 978 | label="Debug Permissions"> |
437 | <menu_item_check bottom="-441" enabled="true" height="19" label="Show HUD Attachments" left="0" | 979 | <on_click function="ToggleControl" |
438 | mouse_opaque="true" name="Show HUD Attachments" shortcut="alt|shift|H" | 980 | userdata="DebugPermissions" /> |
439 | width="211"> | 981 | <on_check control="DebugPermissions" /> |
440 | <on_click function="View.ShowHUDAttachments" userdata="" /> | 982 | </menu_item_check> |
441 | <on_check function="View.CheckHUDAttachments" /> | 983 | <menu_item_call name="Clear Group Cache" |
442 | </menu_item_check> | 984 | label="Clear Group Cache"> |
443 | <menu_item_separator bottom="-449" enabled="true" height="8" label="-----------" left="0" | 985 | <on_click function="Advanced.ClearGroupCache" |
444 | mouse_opaque="true" name="separator5" width="211" /> | 986 | userdata="" /> |
445 | <menu_item_call bottom="-468" enabled="true" height="19" label="Zoom In" left="0" | 987 | </menu_item_call> |
446 | mouse_opaque="true" name="Zoom In" shortcut="control|0" width="211"> | 988 | <menu_item_separator /> |
447 | <on_click function="View.ZoomIn" userdata="" /> | 989 | |
448 | </menu_item_call> | 990 | |
449 | <menu_item_call bottom="-487" enabled="true" height="19" label="Zoom Default" left="0" | 991 | |
450 | mouse_opaque="true" name="Zoom Default" shortcut="control|9" width="211"> | 992 | <!-- RENDERING --> |
451 | <on_click function="View.ZoomDefault" userdata="" /> | 993 | |
452 | </menu_item_call> | 994 | <menu name="Rendering" drop_shadow="true" |
453 | <menu_item_call bottom="-506" enabled="true" height="19" label="Zoom Out" left="0" | 995 | opaque="true" tear_off="true"> |
454 | mouse_opaque="true" name="Zoom Out" shortcut="control|8" width="211"> | 996 | |
455 | <on_click function="View.ZoomOut" userdata="" /> | 997 | <!-- TYPES --> |
456 | </menu_item_call> | 998 | <menu name="Types" drop_shadow="true" |
457 | <menu_item_separator bottom="-514" enabled="true" height="8" label="-----------" left="0" | 999 | opaque="true" tear_off="true"> |
458 | mouse_opaque="true" name="separator6" width="211" /> | 1000 | <menu_item_check name="Simple" label="Simple" |
459 | <menu_item_call bottom="-19" enabled="true" height="19" label="Toggle Fullscreen" left="0" | 1001 | shortcut="control|alt|shift|1"> |
460 | mouse_opaque="true" name="Toggle Fullscreen" shortcut="alt|Enter" | 1002 | <on_click function="Advanced.ToggleRenderType" |
461 | width="188"> | 1003 | userdata="simple" /> |
462 | <on_click function="View.Fullscreen" userdata="" /> | 1004 | <on_check function="Advanced.CheckRenderType" |
463 | </menu_item_call> | 1005 | userdata="simple" /> |
464 | <menu_item_call bottom="-38" enabled="true" height="19" label="Set UI Size to Default" left="0" | 1006 | </menu_item_check> |
465 | mouse_opaque="true" name="Set UI Size to Default" width="188"> | 1007 | <menu_item_check name="Alpha" label="Alpha" |
466 | <on_click function="View.DefaultUISize" userdata="" /> | 1008 | shortcut="control|alt|shift|2"> |
467 | </menu_item_call> | 1009 | <on_click function="Advanced.ToggleRenderType" |
468 | </menu> | 1010 | userdata="alpha" /> |
469 | <menu bottom="-18" create_jump_keys="true" drop_shadow="true" enabled="true" | 1011 | <on_check function="Advanced.CheckRenderType" |
470 | height="339" label="World" left="0" mouse_opaque="false" name="World" | 1012 | userdata="alpha" /> |
471 | opaque="true" tear_off="true" width="185"> | 1013 | </menu_item_check> |
472 | <menu_item_call bottom="-29" enabled="true" height="19" label="Chat" left="0" | 1014 | <menu_item_check name="Tree" label="Tree" |
473 | mouse_opaque="true" name="Chat" shortcut="" width="185"> | 1015 | shortcut="control|alt|shift|3"> |
474 | <on_click function="World.Chat" userdata="" /> | 1016 | <on_click function="Advanced.ToggleRenderType" |
475 | </menu_item_call> | 1017 | userdata="tree" /> |
476 | <menu_item_check bottom="-67" enabled="true" height="19" label="Always Run" left="0" | 1018 | <on_check function="Advanced.CheckRenderType" |
477 | mouse_opaque="true" name="Always Run" shortcut="control|R" width="185"> | 1019 | userdata="tree" /> |
478 | <on_click function="World.AlwaysRun" userdata="" /> | 1020 | </menu_item_check> |
479 | <on_check function="World.CheckAlwaysRun" userdata="" /> | 1021 | <menu_item_check name="Character" label="Character" |
480 | </menu_item_check> | 1022 | shortcut="control|alt|shift|4"> |
481 | <menu_item_check bottom="-86" enabled="true" height="19" label="Fly" left="0" | 1023 | <on_click function="Advanced.ToggleRenderType" |
482 | mouse_opaque="true" name="Fly" shortcut="Home" width="185"> | 1024 | userdata="avatar" /> |
483 | <on_click function="World.Fly" userdata="" /> | 1025 | <on_check function="Advanced.CheckRenderType" |
484 | <on_enable function="World.EnableFly" /> | 1026 | userdata="avatar" /> |
485 | <on_check control="FlyBtnState" /> | 1027 | </menu_item_check> |
486 | </menu_item_check> | 1028 | <menu_item_check name="SurfacePatch" label="SurfacePatch" |
487 | <menu_item_separator bottom="-94" enabled="true" height="8" label="-----------" left="0" | 1029 | shortcut="control|alt|shift|5"> |
488 | mouse_opaque="true" name="separator" width="185" /> | 1030 | <on_click function="Advanced.ToggleRenderType" |
489 | <menu_item_call bottom="-113" enabled="true" height="19" label="Create Landmark Here" left="0" | 1031 | userdata="terrain" /> |
490 | mouse_opaque="true" name="Create Landmark Here" width="185"> | 1032 | <on_check function="Advanced.CheckRenderType" |
491 | <on_click function="World.CreateLandmark" userdata="" /> | 1033 | userdata="terrain" /> |
492 | <on_enable function="World.EnableCreateLandmark" userdata="" /> | 1034 | </menu_item_check> |
493 | </menu_item_call> | 1035 | <menu_item_check name="Sky" label="Sky" |
494 | <menu_item_call bottom="-132" enabled="true" height="19" label="Set Home to Here" left="0" | 1036 | shortcut="control|alt|shift|6"> |
495 | mouse_opaque="true" name="Set Home to Here" width="185"> | 1037 | <on_click function="Advanced.ToggleRenderType" |
496 | <on_click function="World.SetHomeLocation" userdata="" /> | 1038 | userdata="sky" /> |
497 | <on_enable function="World.EnableSetHomeLocation" userdata="" /> | 1039 | <on_check function="Advanced.CheckRenderType" |
498 | </menu_item_call> | 1040 | userdata="sky" /> |
499 | <menu_item_separator bottom="-140" enabled="true" height="8" label="-----------" left="0" | 1041 | </menu_item_check> |
500 | mouse_opaque="true" name="separator2" width="185" /> | 1042 | <menu_item_check name="Water" label="Water" |
501 | <menu_item_call bottom="-159" enabled="true" height="19" label="Teleport Home" left="0" | 1043 | shortcut="control|alt|shift|7"> |
502 | mouse_opaque="true" name="Teleport Home" shortcut="control|shift|H" | 1044 | <on_click function="Advanced.ToggleRenderType" |
503 | width="185"> | 1045 | userdata="water" /> |
504 | <on_click function="World.TeleportHome" userdata="" /> | 1046 | <on_check function="Advanced.CheckRenderType" |
505 | <on_enable function="World.EnableTeleportHome" userdata="" /> | 1047 | userdata="water" /> |
506 | </menu_item_call> | 1048 | </menu_item_check> |
507 | <menu_item_separator bottom="-167" enabled="true" height="8" label="-----------" left="0" | 1049 | <menu_item_check name="Ground" label="Ground" |
508 | mouse_opaque="true" name="separator3" width="185" /> | 1050 | shortcut="control|alt|shift|8"> |
509 | <menu_item_call bottom="-186" enabled="true" height="19" label="Set Away" left="0" | 1051 | <on_click function="Advanced.ToggleRenderType" |
510 | mouse_opaque="true" name="Set Away" width="185"> | 1052 | userdata="ground" /> |
511 | <on_click function="World.SetAway" userdata="" /> | 1053 | <on_check function="Advanced.CheckRenderType" |
512 | </menu_item_call> | 1054 | userdata="ground" /> |
513 | <menu_item_call bottom="-205" enabled="true" height="19" label="Set Busy" left="0" | 1055 | </menu_item_check> |
514 | mouse_opaque="true" name="Set Busy" width="185"> | 1056 | <menu_item_check name="Volume" label="Volume" |
515 | <on_click function="World.SetBusy" userdata="" /> | 1057 | shortcut="control|alt|shift|9"> |
516 | </menu_item_call> | 1058 | <on_click function="Advanced.ToggleRenderType" |
517 | <menu_item_call bottom="-281" enabled="false" height="19" label="Stop All Animations" left="0" | 1059 | userdata="volume" /> |
518 | mouse_opaque="true" name="Stop All Animations" width="250"> | 1060 | <on_check function="Advanced.CheckRenderType" |
519 | <on_click function="Tools.StopAllAnimations" userdata="" /> | 1061 | userdata="volume" /> |
520 | </menu_item_call> | 1062 | </menu_item_check> |
521 | <menu_item_call bottom="-213" enabled="false" height="19" label="Release Keys" left="0" | 1063 | <menu_item_check name="Grass" label="Grass" |
522 | mouse_opaque="true" name="Release Keys" width="250"> | 1064 | shortcut="control|alt|shift|0"> |
523 | <on_click function="Tools.ReleaseKeys" userdata="" /> | 1065 | <on_click function="Advanced.ToggleRenderType" |
524 | <on_enable function="Tools.EnableReleaseKeys" userdata="" /> | 1066 | userdata="grass" /> |
525 | </menu_item_call> | 1067 | <on_check function="Advanced.CheckRenderType" |
526 | <menu_item_separator bottom="-232" enabled="true" height="8" label="-----------" left="0" | 1068 | userdata="grass" /> |
527 | mouse_opaque="true" name="separator4" width="185" /> | 1069 | </menu_item_check> |
528 | <menu_item_call bottom="-232" enabled="true" height="19" label="Account History..." left="0" | 1070 | <menu_item_check name="Clouds" label="Clouds" |
529 | mouse_opaque="true" name="Account History..." width="185"> | 1071 | shortcut="control|alt|shift|-"> |
530 | <on_click function="PromptShowURL" | 1072 | <on_click function="Advanced.ToggleRenderType" |
531 | userdata="WebLaunchAccountHistory,http://secondlife.com/account/transactions.php" /> | 1073 | userdata="clouds" /> |
532 | </menu_item_call> | 1074 | <on_check function="Advanced.CheckRenderType" |
533 | <menu_item_call bottom="-267" enabled="true" height="19" label="Manage My Account..." left="0" | 1075 | userdata="clouds" /> |
534 | mouse_opaque="true" name="Manage My Account..." width="166"> | 1076 | </menu_item_check> |
535 | <on_click function="PromptShowURL" | 1077 | <menu_item_check name="Particles" label="Particles" |
536 | userdata="WebLaunchJoinNow,http://secondlife.com/account/" /> | 1078 | shortcut="control|alt|shift|="> |
537 | </menu_item_call> | 1079 | <on_click function="Advanced.ToggleRenderType" |
538 | <menu_item_call bottom="-286" enabled="true" height="19" label="Buy L$..." left="0" | 1080 | userdata="particles" /> |
539 | mouse_opaque="true" name="Buy and Sell L$..." width="166"> | 1081 | <on_check function="Advanced.CheckRenderType" |
540 | <on_click function="ShowFloater" userdata="buy currency" /> | 1082 | userdata="particles" /> |
541 | </menu_item_call> | 1083 | </menu_item_check> |
542 | <menu_item_separator bottom="-213" enabled="true" height="8" label="-----------" left="0" | 1084 | <menu_item_check name="Bump" label="Bump" |
543 | mouse_opaque="true" name="separator5" width="185" /> | 1085 | shortcut="control|alt|shift|\"> |
544 | <menu_item_call bottom="-251" enabled="true" height="19" label="My Land..." left="0" | 1086 | <on_click function="Advanced.ToggleRenderType" |
545 | mouse_opaque="true" name="My Land..." width="185"> | 1087 | userdata="bump" /> |
546 | <on_click function="ShowFloater" userdata="my land" /> | 1088 | <on_check function="Advanced.CheckRenderType" |
547 | </menu_item_call> | 1089 | userdata="bump" /> |
548 | <menu_item_call bottom="-270" enabled="true" height="19" label="About Land..." left="0" | 1090 | </menu_item_check> |
549 | mouse_opaque="true" name="About Land..." width="185"> | 1091 | </menu> |
550 | <on_click function="ShowFloater" userdata="about land" /> | 1092 | |
551 | </menu_item_call> | 1093 | |
552 | <menu_item_call bottom="-289" enabled="true" height="19" label="Buy Land..." left="0" | 1094 | <!-- FEATURES --> |
553 | mouse_opaque="true" name="Buy Land..." width="185"> | 1095 | <menu name="Features" drop_shadow="true" |
554 | <on_click function="ShowFloater" userdata="buy land" /> | 1096 | opaque="true" tear_off="true"> |
555 | <on_enable function="World.EnableBuyLand" /> | 1097 | <menu_item_check name="UI" label="UI" |
556 | </menu_item_call> | 1098 | shortcut="control|alt|F1"> |
557 | <menu_item_call bottom="-308" enabled="true" height="19" label="Region/Estate..." left="0" | 1099 | <on_click function="Advanced.ToggleFeature" |
558 | mouse_opaque="true" name="Region/Estate..." width="185"> | 1100 | userdata="ui" /> |
559 | <on_click function="ShowFloater" userdata="about region" /> | 1101 | <on_check function="Advanced.CheckFeature" |
560 | </menu_item_call> | 1102 | userdata="ui" /> |
561 | <menu_item_separator bottom="-316" enabled="true" height="8" label="-----------" left="0" | 1103 | </menu_item_check> |
562 | mouse_opaque="true" name="separator6" width="185" /> | 1104 | <menu_item_check name="Selected" label="Selected" |
563 | <menu bottom="-554" create_jump_keys="true" drop_shadow="true" enabled="true" | 1105 | shortcut="control|alt|F2"> |
564 | height="117" label="Environment Settings" left="0" mouse_opaque="false" | 1106 | <on_click function="Advanced.ToggleFeature" |
565 | name="Environment Settings" opaque="true" tear_off="true" width="169"> | 1107 | userdata="selected" /> |
566 | <menu_item_call bottom="-29" enabled="true" height="19" label="Sunrise" left="0" | 1108 | <on_check function="Advanced.CheckFeature" |
567 | mouse_opaque="true" name="Sunrise" width="169"> | 1109 | userdata="selected" /> |
568 | <on_click function="World.EnvSettings" userdata="sunrise" /> | 1110 | </menu_item_check> |
569 | </menu_item_call> | 1111 | <menu_item_check name="Highlighted" label="Highlighted" |
570 | <menu_item_call bottom="-48" enabled="true" height="19" label="Midday" left="0" | 1112 | shortcut="control|alt|F3"> |
571 | mouse_opaque="true" name="Noon" shortcut="control|shift|Y" width="169"> | 1113 | <on_click function="Advanced.ToggleFeature" |
572 | <on_click function="World.EnvSettings" userdata="noon" /> | 1114 | userdata="highlighted" /> |
573 | </menu_item_call> | 1115 | <on_check function="Advanced.CheckFeature" |
574 | <menu_item_call bottom="-67" enabled="true" height="19" label="Sunset" left="0" | 1116 | userdata="highlighted" /> |
575 | mouse_opaque="true" name="Sunset" shortcut="control|shift|N" width="169"> | 1117 | </menu_item_check> |
576 | <on_click function="World.EnvSettings" userdata="sunset" /> | 1118 | <menu_item_check name="Dynamic Textures" label="Dynamic Textures" |
577 | </menu_item_call> | 1119 | shortcut="control|alt|F4"> |
578 | <menu_item_call bottom="-86" enabled="true" height="19" label="Midnight" left="0" | 1120 | <on_click function="Advanced.ToggleFeature" |
579 | mouse_opaque="true" name="Midnight" width="169"> | 1121 | userdata="dynamic textures" /> |
580 | <on_click function="World.EnvSettings" userdata="midnight" /> | 1122 | <on_check function="Advanced.CheckFeature" |
581 | </menu_item_call> | 1123 | userdata="dynamic textures" /> |
582 | <menu_item_call bottom="-105" enabled="false" height="19" label="Revert to Region Default" | 1124 | </menu_item_check> |
583 | left="0" mouse_opaque="true" name="Revert to Region Default" width="169"> | 1125 | <menu_item_check name="Foot Shadows" label="Foot Shadows" |
584 | <on_click function="World.EnvSettings" userdata="default" /> | 1126 | shortcut="control|alt|F5"> |
585 | </menu_item_call> | 1127 | <on_click function="Advanced.ToggleFeature" |
586 | <menu_item_separator bottom="-113" enabled="true" height="8" label="-----------" left="0" | 1128 | userdata="foot shadows" /> |
587 | mouse_opaque="true" name="separator" width="169" /> | 1129 | <on_check function="Advanced.CheckFeature" |
588 | <menu_item_call bottom="-132" enabled="false" height="19" label="Environment Editor" left="0" | 1130 | userdata="foot shadows" /> |
589 | mouse_opaque="true" name="Environment Editor" width="169"> | 1131 | </menu_item_check> |
590 | <on_click function="World.EnvSettings" userdata="editor" /> | 1132 | <menu_item_check name="Fog" label="Fog" |
591 | </menu_item_call> | 1133 | shortcut="control|alt|F6"> |
592 | </menu> | 1134 | <on_click function="Advanced.ToggleFeature" |
593 | </menu> | 1135 | userdata="fog" /> |
594 | <menu bottom="-18" create_jump_keys="true" drop_shadow="true" enabled="true" | 1136 | <on_check function="Advanced.CheckFeature" |
595 | height="510" label="Tools" left="0" mouse_opaque="false" name="Tools" | 1137 | userdata="fog" /> |
596 | opaque="true" tear_off="true" visible="false" width="250"> | 1138 | </menu_item_check> |
597 | <menu bottom="-554" create_jump_keys="true" drop_shadow="true" enabled="true" | 1139 | <menu_item_check name="Palletized Textures" |
598 | height="109" label="Select Tool" left="0" mouse_opaque="false" | 1140 | label="Palletized Textures" |
599 | name="Select Tool" opaque="true" tear_off="true" width="118"> | 1141 | shortcut="control|alt|F7"> |
600 | <menu_item_call bottom="-29" enabled="true" height="19" label="Focus" left="0" | 1142 | <on_click function="Advanced.ToggleFeature" |
601 | mouse_opaque="true" name="Focus" shortcut="control|1" width="118"> | 1143 | userdata="palette" /> |
602 | <on_click function="Tools.SelectTool" userdata="focus" /> | 1144 | <on_check function="Advanced.CheckFeature" |
603 | </menu_item_call> | 1145 | userdata="palette" /> |
604 | <menu_item_call bottom="-48" enabled="true" height="19" label="Move" left="0" | 1146 | </menu_item_check> |
605 | mouse_opaque="true" name="Move" shortcut="control|2" width="118"> | 1147 | <menu_item_check name="Test FRInfo" label="Test FRInfo" |
606 | <on_click function="Tools.SelectTool" userdata="move" /> | 1148 | shortcut="control|alt|F8"> |
607 | </menu_item_call> | 1149 | <on_click function="Advanced.ToggleFeature" |
608 | <menu_item_call bottom="-67" enabled="true" height="19" label="Edit" left="0" | 1150 | userdata="fr info" /> |
609 | mouse_opaque="true" name="Edit" shortcut="control|3" width="118"> | 1151 | <on_check function="Advanced.CheckFeature" |
610 | <on_click function="Tools.SelectTool" userdata="edit" /> | 1152 | userdata="fr info" /> |
611 | </menu_item_call> | 1153 | </menu_item_check> |
612 | <menu_item_call bottom="-86" enabled="true" height="19" label="Create" left="0" | 1154 | <menu_item_check name="Flexible Objects" |
613 | mouse_opaque="true" name="Create" shortcut="control|4" width="118"> | 1155 | label="Flexible Objects" |
614 | <on_click function="Tools.SelectTool" userdata="create" /> | 1156 | shortcut="control|alt|F9"> |
615 | </menu_item_call> | 1157 | <on_click function="Advanced.ToggleFeature" |
616 | <menu_item_call bottom="-105" enabled="true" height="19" label="Land" left="0" | 1158 | userdata="flexible" /> |
617 | mouse_opaque="true" name="Land" shortcut="control|5" width="118"> | 1159 | <on_check function="Advanced.CheckFeature" |
618 | <on_click function="Tools.SelectTool" userdata="land" /> | 1160 | userdata="flexible" /> |
619 | </menu_item_call> | 1161 | </menu_item_check> |
620 | </menu> | 1162 | </menu> |
621 | <menu_item_separator bottom="-37" enabled="true" height="8" label="-----------" left="0" | 1163 | |
622 | mouse_opaque="true" name="separator" width="250" /> | 1164 | |
623 | <menu_item_check bottom="-56" enabled="true" height="19" label="Select Only My Objects" left="0" | 1165 | <!-- INFO DISPLAYS --> |
624 | mouse_opaque="true" name="Select Only My Objects" width="250"> | 1166 | <menu name="Info Displays" drop_shadow="true" |
625 | <on_click function="Tools.SelectOnlyMyObjects" userdata="agents" /> | 1167 | opaque="true" tear_off="true"> |
626 | <on_check control="SelectOwnedOnly" /> | 1168 | <menu_item_check name="Verify" label="Verify"> |
627 | </menu_item_check> | 1169 | <on_click function="Advanced.ToggleInfoDisplay" |
628 | <menu_item_check bottom="-75" enabled="true" height="19" label="Select Only Movable Objects" | 1170 | userdata="verify" /> |
629 | left="0" mouse_opaque="true" name="Select Only Movable Objects" width="250"> | 1171 | <on_check function="Advanced.CheckInfoDisplay" |
630 | <on_click function="Tools.SelectOnlyMovableObjects" userdata="movable" /> | 1172 | userdata="verify" /> |
631 | <on_check control="SelectMovableOnly" /> | 1173 | </menu_item_check> |
632 | </menu_item_check> | 1174 | <menu_item_check name="BBoxes" label="BBoxes"> |
633 | <menu_item_check bottom="-94" enabled="true" height="19" label="Select By Surrounding" left="0" | 1175 | <on_click function="Advanced.ToggleInfoDisplay" |
634 | mouse_opaque="true" name="Select By Surrounding" width="250"> | 1176 | userdata="bboxes" /> |
635 | <on_click function="Tools.SelectBySurrounding" userdata="" /> | 1177 | <on_check function="Advanced.CheckInfoDisplay" |
636 | <on_check control="RectangleSelectInclusive" /> | 1178 | userdata="bboxes" /> |
637 | </menu_item_check> | 1179 | </menu_item_check> |
638 | <menu_item_check bottom="-113" enabled="true" height="19" label="Show Hidden Selection" left="0" | 1180 | <menu_item_check name="Points" label="Points"> |
639 | mouse_opaque="true" name="Show Hidden Selection" width="250"> | 1181 | <on_click function="Advanced.ToggleInfoDisplay" |
640 | <on_click function="Tools.ShowHiddenSelection" userdata="" /> | 1182 | userdata="points" /> |
641 | <on_check control="RenderHiddenSelections" /> | 1183 | <on_check function="Advanced.CheckInfoDisplay" |
642 | </menu_item_check> | 1184 | userdata="points" /> |
643 | <menu_item_check bottom="-132" enabled="true" height="19" | 1185 | </menu_item_check> |
644 | label="Show Light Radius for Selection" left="0" mouse_opaque="true" | 1186 | <menu_item_check name="Octree" label="Octree"> |
645 | name="Show Light Radius for Selection" width="250"> | 1187 | <on_click function="Advanced.ToggleInfoDisplay" |
646 | <on_click function="Tools.ShowSelectionLightRadius" userdata="" /> | 1188 | userdata="octree" /> |
647 | <on_check control="RenderLightRadius" /> | 1189 | <on_check function="Advanced.CheckInfoDisplay" |
648 | </menu_item_check> | 1190 | userdata="octree" /> |
649 | <menu_item_check bottom="-151" enabled="true" height="19" label="Show Selection Beam" left="0" | 1191 | </menu_item_check> |
650 | mouse_opaque="true" name="Show Selection Beam" width="250"> | 1192 | <menu_item_check name="Occlusion" label="Occlusion"> |
651 | <on_click function="ToggleControl" userdata="ShowSelectionBeam" /> | 1193 | <on_click function="Advanced.ToggleInfoDisplay" |
652 | <on_check control="ShowSelectionBeam" /> | 1194 | userdata="occlusion" /> |
653 | </menu_item_check> | 1195 | <on_check function="Advanced.CheckInfoDisplay" |
654 | <menu_item_separator bottom="-159" enabled="true" height="8" label="-----------" left="0" | 1196 | userdata="occlusion" /> |
655 | mouse_opaque="true" name="separator2" width="250" /> | 1197 | </menu_item_check> |
656 | <menu_item_check bottom="-178" enabled="false" height="19" label="Snap to Grid" left="0" | 1198 | <menu_item_check name="Render Batches" |
657 | mouse_opaque="true" name="Snap to Grid" shortcut="G" width="250"> | 1199 | label="Render Batches"> |
658 | <on_click function="ToggleControl" userdata="SnapEnabled" /> | 1200 | <on_click function="Advanced.ToggleInfoDisplay" |
659 | <on_check control="SnapEnabled" /> | 1201 | userdata="render batches" /> |
660 | <on_enable function="Tools.EnableToolNotPie" /> | 1202 | <on_check function="Advanced.CheckInfoDisplay" |
661 | </menu_item_check> | 1203 | userdata="render batches" /> |
662 | <menu_item_call bottom="-197" enabled="false" height="19" label="Snap Object XY to Grid" | 1204 | </menu_item_check> |
663 | left="0" mouse_opaque="true" name="Snap Object XY to Grid" | 1205 | <menu_item_check name="Animated Textures" |
664 | shortcut="shift|X" width="250"> | 1206 | label="Animated Textures"> |
665 | <on_click function="Tools.SnapObjectXY" userdata="" /> | 1207 | <on_click function="Advanced.ToggleInfoDisplay" |
666 | <on_enable function="Tools.EnableToolNotPie" /> | 1208 | userdata="texture anim" /> |
667 | </menu_item_call> | 1209 | <on_check function="Advanced.CheckInfoDisplay" |
668 | <menu_item_call bottom="-216" enabled="false" height="19" label="Use Selection for Grid" | 1210 | userdata="texture anim" /> |
669 | left="0" mouse_opaque="true" name="Use Selection for Grid" | 1211 | </menu_item_check> |
670 | shortcut="shift|G" width="250"> | 1212 | <menu_item_check name="Texture Priority" |
671 | <on_click function="Tools.UseSelectionForGrid" userdata="" /> | 1213 | label="Texture Priority"> |
672 | <on_enable function="SomethingSelected" /> | 1214 | <on_click function="Advanced.ToggleInfoDisplay" |
673 | </menu_item_call> | 1215 | userdata="texture priority" /> |
674 | <menu_item_call bottom="-235" enabled="false" height="19" label="Grid Options..." left="0" | 1216 | <on_check function="Advanced.CheckInfoDisplay" |
675 | mouse_opaque="true" name="Grid Options..." shortcut="control|shift|B" | 1217 | userdata="texture priority" /> |
676 | width="250"> | 1218 | </menu_item_check> |
677 | <on_click function="ShowFloater" userdata="grid options" /> | 1219 | <menu_item_check name="Avatar Rendering Cost" |
678 | <on_enable function="Tools.EnableToolNotPie" /> | 1220 | label="Avatar Rendering Cost"> |
679 | </menu_item_call> | 1221 | <on_click function="Advanced.ToggleInfoDisplay" |
680 | <menu_item_separator bottom="-243" enabled="true" height="8" label="-----------" left="0" | 1222 | userdata="shame" /> |
681 | mouse_opaque="true" name="separator3" width="250" /> | 1223 | <on_check function="Advanced.CheckInfoDisplay" |
682 | <menu_item_check bottom="" enabled="false" height="" label="Edit Linked Parts" left="" | 1224 | userdata="shame" /> |
683 | mouse_opaque="true" name="Edit Linked Parts" shortcut="" width=""> | 1225 | </menu_item_check> |
684 | <on_click function="ToggleControl" userdata="EditLinkedParts" /> | 1226 | <menu_item_check name="Texture Area (sqrt(A))" |
685 | <on_click function="Tools.EditLinkedParts" userdata="" /> | 1227 | label="Texture Area (sqrt(A))"> |
686 | <on_check control="EditLinkedParts" /> | 1228 | <on_click function="Advanced.ToggleInfoDisplay" |
687 | <on_enable function="Tools.EnableToolNotPie" /> | 1229 | userdata="texture area" /> |
688 | </menu_item_check> | 1230 | <on_check function="Advanced.CheckInfoDisplay" |
689 | <menu_item_call bottom="-262" enabled="false" height="19" label="Link" left="0" | 1231 | userdata="texture area" /> |
690 | mouse_opaque="true" name="Link" shortcut="control|L" width="250"> | 1232 | </menu_item_check> |
691 | <on_click function="Tools.Link" userdata="" /> | 1233 | <menu_item_check name="Face Area (sqrt(A))" |
692 | <on_enable function="Tools.EnableLink" /> | 1234 | label="Face Area (sqrt(A))"> |
693 | </menu_item_call> | 1235 | <on_click function="Advanced.ToggleInfoDisplay" |
694 | <menu_item_call bottom="-281" enabled="false" height="19" label="Unlink" left="0" | 1236 | userdata="face area" /> |
695 | mouse_opaque="true" name="Unlink" shortcut="control|shift|L" width="250"> | 1237 | <on_check function="Advanced.CheckInfoDisplay" |
696 | <on_click function="Tools.Unlink" userdata="" /> | 1238 | userdata="face area" /> |
697 | <on_enable function="Tools.EnableUnlink" /> | 1239 | </menu_item_check> |
698 | </menu_item_call> | 1240 | <menu_item_check name="Pick Render" label="Pick Render"> |
699 | <menu_item_separator bottom="-289" enabled="true" height="8" label="-----------" left="0" | 1241 | <on_click function="Advanced.ToggleInfoDisplay" |
700 | mouse_opaque="true" name="separator4" width="250" /> | 1242 | userdata="picking" /> |
701 | <menu_item_call bottom="-308" enabled="false" height="19" label="Focus on Selection" left="0" | 1243 | <on_check function="Advanced.CheckInfoDisplay" |
702 | mouse_opaque="true" name="Focus on Selection" shortcut="H" width="250"> | 1244 | userdata="picking" /> |
703 | <on_click function="Tools.LookAtSelection" userdata="focus" /> | 1245 | </menu_item_check> |
704 | <on_enable function="Tools.SomethingSelectedNoHUD" /> | 1246 | <menu_item_check name="Lights" label="Lights"> |
705 | </menu_item_call> | 1247 | <on_click function="Advanced.ToggleInfoDisplay" |
706 | <menu_item_call bottom="-327" enabled="false" height="19" label="Zoom to Selection" left="0" | 1248 | userdata="lights" /> |
707 | mouse_opaque="true" name="Zoom to Selection" shortcut="shift|H" width="250"> | 1249 | <on_check function="Advanced.CheckInfoDisplay" |
708 | <on_click function="Tools.LookAtSelection" userdata="zoom" /> | 1250 | userdata="lights" /> |
709 | <on_enable function="Tools.SomethingSelectedNoHUD" /> | 1251 | </menu_item_check> |
710 | </menu_item_call> | 1252 | <menu_item_check name="Particles" label="Particles"> |
711 | <menu_item_call bottom="-346" enabled="false" height="19" label="Buy Object" left="0" | 1253 | <on_click function="Advanced.ToggleInfoDisplay" |
712 | mouse_opaque="true" name="Menu Object Take" visible="false" width="250"> | 1254 | userdata="particles" /> |
713 | <on_click function="Tools.BuyOrTake" userdata="" /> | 1255 | <on_check function="Advanced.CheckInfoDisplay" |
714 | <on_enable function="Tools.EnableBuyOrTake" userdata="Buy,Take" /> | 1256 | userdata="particles" /> |
715 | </menu_item_call> | 1257 | </menu_item_check> |
716 | <menu_item_call bottom="-365" enabled="false" height="19" label="Take Copy" left="0" | 1258 | <menu_item_check name="Composition" |
717 | mouse_opaque="true" name="Take Copy" width="250"> | 1259 | label="Composition"> |
718 | <on_click function="Tools.TakeCopy" userdata="" /> | 1260 | <on_click function="Advanced.ToggleInfoDisplay" |
719 | <on_enable function="Tools.EnableTakeCopy" /> | 1261 | userdata="composition" /> |
720 | </menu_item_call> | 1262 | <on_check function="Advanced.CheckInfoDisplay" |
721 | <menu_item_call bottom="-384" enabled="false" height="19" | 1263 | userdata="composition" /> |
722 | label="Save Object Back to My Inventory" left="0" mouse_opaque="true" | 1264 | </menu_item_check> |
723 | name="Save Object Back to My Inventory" width="250"> | 1265 | <menu_item_check name="Glow" label="Glow"> |
724 | <on_click function="Tools.SaveToInventory" userdata="" /> | 1266 | <on_click function="Advanced.ToggleInfoDisplay" |
725 | <on_enable function="Tools.EnableSaveToInventory" /> | 1267 | userdata="glow" /> |
726 | </menu_item_call> | 1268 | <on_check function="Advanced.CheckInfoDisplay" |
727 | <menu_item_call bottom="-403" enabled="false" height="19" | 1269 | userdata="glow" /> |
728 | label="Save Object Back to Object Contents" left="0" mouse_opaque="true" | 1270 | </menu_item_check> |
729 | name="Save Object Back to Object Contents" width="250"> | 1271 | <menu_item_check name="Show Depth Buffer" |
730 | <on_click function="Tools.SaveToObjectInventory" userdata="" /> | 1272 | label="Show Depth Buffer"> |
731 | <on_enable function="Tools.EnableSaveToObjectInventory" /> | 1273 | <on_click function="ToggleControl" |
732 | </menu_item_call> | 1274 | userdata="ShowDepthBuffer" /> |
733 | <menu_item_separator bottom="-411" enabled="true" height="8" label="-----------" left="0" | 1275 | <on_check control="ShowDepthBuffer" /> |
734 | mouse_opaque="true" name="separator6" width="250" /> | 1276 | </menu_item_check> |
735 | <menu_item_call bottom="-430" enabled="true" height="19" | 1277 | <menu_item_check name="Show Select Buffer" |
736 | label="Show Script Warning/Error Window" left="0" mouse_opaque="true" | 1278 | label="Show Select Buffer"> |
737 | name="Show Script Warning/Error Window" width="250"> | 1279 | <on_click function="Advanced.ToggleSelectBuffer" |
738 | <on_click function="ShowFloater" userdata="script errors" /> | 1280 | userdata="" /> |
739 | </menu_item_call> | 1281 | <on_check function="Advanced.CheckSelectBuffer" |
740 | <menu bottom="-449" color="0 0 0 1" drop_shadow="true" enabled="true" height="52" | 1282 | userdata="" /> |
741 | hidden="false" label="Recompile Scripts in Selection" left="0" mouse_opaque="false" | 1283 | </menu_item_check> |
742 | name="Recompile Scripts in Selection" opaque="true" tear_off="true" create_jump_keys="true" width="169"> | 1284 | <menu_item_check name="Vectorize Perf Test" |
743 | <menu_item_call bottom="-29" enabled="true" height="19" | 1285 | label="Vectorize Perf Test"> |
744 | hidden="false" label="Mono" left="0" | 1286 | <on_click function="ToggleControl" |
745 | mouse_opaque="true" name="Mono" width="169"> | 1287 | userdata="VectorizePerfTest" /> |
746 | <on_click function="Tools.SelectedScriptAction" userdata="compile mono" /> | 1288 | <on_check control="VectorizePerfTest" /> |
747 | <on_enable function="EditableSelectedMono" /> | 1289 | </menu_item_check> |
748 | </menu_item_call> | 1290 | </menu> |
749 | <menu_item_call bottom="-48" enabled="true" height="19" | 1291 | |
750 | hidden="false" label="LSL" left="0" | 1292 | |
751 | mouse_opaque="true" name="LSL" width="169"> | 1293 | <!-- RENDER TESTS --> |
752 | <on_click function="Tools.SelectedScriptAction" userdata="compile lsl" /> | 1294 | <menu name="Render Tests" drop_shadow="true" |
753 | <on_enable function="EditableSelected" /> | 1295 | opaque="true" tear_off="true"> |
754 | </menu_item_call> | 1296 | <menu_item_check name="Camera Offset" label="Camera Offset"> |
755 | </menu> | 1297 | <on_click function="ToggleControl" |
756 | <menu_item_call bottom="-468" enabled="false" height="19" label="Reset Scripts in Selection" | 1298 | userdata="CameraOffset" /> |
757 | left="0" mouse_opaque="true" name="Reset Scripts in Selection" width="250"> | 1299 | <on_check control="CameraOffset" /> |
758 | <on_click function="Tools.SelectedScriptAction" userdata="reset" /> | 1300 | </menu_item_check> |
759 | <on_enable function="EditableSelected" /> | 1301 | <menu_item_check name="Randomize Framerate" |
760 | </menu_item_call> | 1302 | label="Randomize Framerate"> |
761 | <menu_item_call bottom="-487" enabled="false" height="19" | 1303 | <on_click function="Advanced.ToggleRandomizeFramerate" |
762 | label="Set Scripts to Running in Selection" left="0" mouse_opaque="true" | 1304 | userdata="" /> |
763 | name="Set Scripts to Running in Selection" width="250"> | 1305 | <on_check function="Advanced.CheckRandomizeFramerate" |
764 | <on_click function="Tools.SelectedScriptAction" userdata="start" /> | 1306 | userdata="" /> |
765 | <on_enable function="EditableSelected" /> | 1307 | </menu_item_check> |
766 | </menu_item_call> | 1308 | <menu_item_check name="Periodic Slow Frame" |
767 | <menu_item_call bottom="-506" enabled="false" height="19" | 1309 | label="Periodic Slow Frame"> |
768 | label="Set Scripts to Not Running in Selection" left="0" | 1310 | <on_click function="Advanced.TogglePeriodicSlowFrame" |
769 | mouse_opaque="true" name="Set Scripts to Not Running in Selection" | 1311 | userdata="" /> |
770 | width="250"> | 1312 | <on_check function="Advanced.CheckPeriodicSlowFrame" |
771 | <on_click function="Tools.SelectedScriptAction" userdata="stop" /> | 1313 | userdata="" /> |
772 | <on_enable function="EditableSelected" /> | 1314 | </menu_item_check> |
773 | </menu_item_call> | 1315 | <menu_item_check name="Frame Test" label="Frame Test"> |
774 | </menu> | 1316 | <on_click function="Advanced.ToggleFrameTest" |
775 | <menu bottom="219" create_jump_keys="true" drop_shadow="true" enabled="true" | 1317 | userdata="" /> |
776 | height="317" label="Help" left="227" mouse_opaque="false" name="Help" | 1318 | <on_check function="Advanced.CheckFrameTest" |
777 | opaque="true" tear_off="true" width="166"> | 1319 | userdata="" /> |
778 | <menu_item_call bottom="-29" enabled="true" height="19" label="Second Life Help" left="0" | 1320 | </menu_item_check> |
779 | mouse_opaque="true" name="Second Life Help" shortcut="F1" width="166"> | 1321 | </menu> |
780 | <on_click function="ShowFloater" userdata="help f1" /> | 1322 | |
781 | </menu_item_call> | 1323 | |
782 | <menu_item_call bottom="-48" enabled="true" height="19" label="Tutorial" left="0" | 1324 | <menu_item_separator /> |
783 | mouse_opaque="true" name="Tutorial" width="166"> | 1325 | |
784 | <on_click function="ShowFloater" userdata="help tutorial" /> | 1326 | <menu_item_check name="Axes" label="Axes"> |
785 | </menu_item_call> | 1327 | <on_click function="ToggleControl" userdata="ShowAxes" /> |
786 | <menu_item_separator bottom="-75" enabled="true" height="8" label="-----------" left="0" | 1328 | <on_check control="ShowAxes" /> |
787 | mouse_opaque="true" name="separator" width="166" /> | 1329 | </menu_item_check> |
788 | <menu_item_call bottom="-94" enabled="true" height="19" label="Official Linden Blog..." | 1330 | |
789 | left="0" mouse_opaque="true" name="Official Linden Blog..." width="166"> | 1331 | <menu_item_separator /> |
790 | <on_click function="PromptShowURL" | 1332 | |
791 | userdata="WebLaunchSupportWiki,http://blog.secondlife.com/" /> | 1333 | <menu_item_check name="Hide Selected" label="Hide Selected"> |
792 | </menu_item_call> | 1334 | <on_click function="Advanced.ToggleHideSelectedObjects" |
793 | <menu_item_separator bottom="-102" enabled="true" height="8" label="-----------" left="0" | 1335 | userdata="" /> |
794 | mouse_opaque="true" name="separator2" width="166" /> | 1336 | <on_check function="Advanced.CheckHideSelectedObjects" |
795 | <menu_item_call bottom="-121" enabled="true" height="19" label="Scripting Guide..." left="0" | 1337 | userdata="" /> |
796 | mouse_opaque="true" name="Scripting Guide..." width="166"> | 1338 | </menu_item_check> |
797 | <on_click function="PromptShowFile" userdata="WebLaunchLSLGuide,lsl_guide.html" /> | 1339 | |
798 | </menu_item_call> | 1340 | <menu_item_separator /> |
799 | <menu_item_call bottom="-140" enabled="true" height="19" label="Scripting Portal..." left="0" | 1341 | |
800 | mouse_opaque="true" name="Scripting Portal..." width="166"> | 1342 | <menu_item_check name="Tangent Basis" label="Tangent Basis"> |
801 | <on_click function="PromptShowURL" | 1343 | <on_click function="ToggleControl" |
802 | userdata="WebLaunchLSLWiki,http://wiki.secondlife.com/wiki/LSL_Portal" /> | 1344 | userdata="ShowTangentBasis" /> |
803 | </menu_item_call> | 1345 | <on_check control="ShowTangentBasis" /> |
804 | <menu_item_separator bottom="-148" enabled="true" height="8" label="-----------" left="0" | 1346 | </menu_item_check> |
805 | mouse_opaque="true" name="separator3" width="166" /> | 1347 | <menu_item_call name="Selected Texture Info" |
806 | <menu_item_call bottom="-194" enabled="true" height="19" label="Report Abuse..." left="0" | 1348 | label="Selected Texture Info" |
807 | mouse_opaque="true" name="Report Abuse..." width="166"> | 1349 | shortcut="control|alt|shift|T"> |
808 | <on_click function="ShowFloater" userdata="complaint reporter" /> | 1350 | <on_click function="Advanced.SelectedTextureInfo" |
809 | </menu_item_call> | 1351 | userdata="" /> |
810 | <menu_item_call bottom="-213" enabled="true" height="19" label="Bumps, Pushes & Hits..." | 1352 | </menu_item_call> |
811 | left="0" mouse_opaque="true" name="Bumps, Pushes &amp; Hits..." | 1353 | <menu_item_check name="Wireframe" label="Wireframe" |
812 | width="166"> | 1354 | shortcut="control|shift|R"> |
813 | <on_click function="ShowFloater" userdata="mean events" /> | 1355 | <on_click function="Advanced.ToggleWireframe" userdata="" /> |
814 | </menu_item_call> | 1356 | <on_check function="Advanced.CheckWireframe" userdata="" /> |
815 | <menu_item_call label="Lag Meter" name="Lag Meter"> | 1357 | </menu_item_check> |
816 | <on_click function="ShowFloater" userdata="lag meter" /> | 1358 | <menu_item_check name="Object-Object Occlusion" |
817 | </menu_item_call> | 1359 | label="Object-Object Occlusion" |
818 | <menu_item_separator bottom="-411" enabled="true" height="8" label="-----------" left="0" | 1360 | shortcut="control|shift|O"> |
819 | mouse_opaque="true" name="separator7" width="250" /> | 1361 | <on_click function="ToggleControl" |
820 | <menu bottom="-554" create_jump_keys="true" drop_shadow="true" enabled="true" | 1362 | userdata="UseOcclusion" /> |
821 | height="109" label="Bug Reporting" left="0" mouse_opaque="false" | 1363 | <on_check control="UseOcclusion" /> |
822 | name="Bug Reporting" opaque="true" tear_off="true" width="118"> | 1364 | </menu_item_check> |
823 | <menu_item_call bottom="-94" enabled="true" height="19" label="Public Issue Tracker..." | 1365 | <menu_item_check name="Debug GL" label="Debug GL"> |
824 | left="0" mouse_opaque="true" name="Public Issue Tracker..." width="166"> | 1366 | <on_click function="ToggleControl" |
825 | <on_click function="PromptShowURL" | 1367 | userdata="RenderDebugGL" /> |
826 | userdata="WebLaunchPublicIssue,http://jira.secondlife.com" /> | 1368 | <on_check control="RenderDebugGL" /> |
827 | </menu_item_call> | 1369 | </menu_item_check> |
828 | <menu_item_call bottom="-94" enabled="true" height="19" label="Public Issue Tracker Help..." | 1370 | <menu_item_check name="Debug Pipeline" label="Debug Pipeline"> |
829 | left="0" mouse_opaque="true" name="Publc Issue Tracker Help..." width="166"> | 1371 | <on_click function="ToggleControl" |
830 | <on_click function="PromptShowURL" | 1372 | userdata="RenderDebugPipeline" /> |
831 | userdata="WebLaunchPublicIssueHelp,http://wiki.secondlife.com/wiki/Issue_tracker" /> | 1373 | <on_check control="RenderDebugPipeline" /> |
832 | </menu_item_call> | 1374 | </menu_item_check> |
833 | <menu_item_separator bottom="-411" enabled="true" height="8" label="-----------" left="0" | 1375 | <menu_item_check name="Fast Alpha" label="Fast Alpha"> |
834 | mouse_opaque="true" name="separator7" width="250" /> | 1376 | <on_click function="ToggleControl" |
835 | <menu_item_call bottom="-94" enabled="true" height="19" label="Bug Reporting 101..." left="0" | 1377 | userdata="RenderFastAlpha" /> |
836 | mouse_opaque="true" name="Bug Reporing 101..." width="166"> | 1378 | <on_check control="RenderFastAlpha" /> |
837 | <on_click function="PromptShowURL" | 1379 | </menu_item_check> |
838 | userdata="WebLaunchBugReport101,http://wiki.secondlife.com/wiki/Bug_Reporting_101" /> | 1380 | <menu_item_check name="Animate Textures" |
839 | </menu_item_call> | 1381 | label="Animate Textures"> |
840 | <menu_item_call bottom="-94" enabled="true" height="19" label="Security Issues..." left="0" | 1382 | <on_click function="ToggleControl" |
841 | mouse_opaque="true" name="Security Issues..." width="166"> | 1383 | userdata="AnimateTextures" /> |
842 | <on_click function="PromptShowURL" | 1384 | <on_check control="AnimateTextures" /> |
843 | userdata="WebLaunchSecurityIssues,http://wiki.secondlife.com/wiki/Security_issues" /> | 1385 | </menu_item_check> |
844 | </menu_item_call> | 1386 | <menu_item_check name="Disable Textures" |
845 | <menu_item_call bottom="-94" enabled="true" height="19" label="QA Wiki..." left="0" | 1387 | label="Disable Textures"> |
846 | mouse_opaque="true" name="QA Wiki..." width="166"> | 1388 | <on_click function="Advanced.ToggleDisableTextures" |
847 | <on_click function="PromptShowURL" | 1389 | userdata="" /> |
848 | userdata="WebLaunchQAWiki,http://wiki.secondlife.com/wiki/QA_Portal" /> | 1390 | <on_check function="Advanced.CheckDisableTextures" |
849 | </menu_item_call> | 1391 | userdata="" /> |
850 | <menu_item_separator bottom="-411" enabled="true" height="8" label="-----------" left="0" | 1392 | </menu_item_check> |
851 | mouse_opaque="true" name="separator9" width="250" /> | 1393 | <!-- Disabled because it doesn't seem to be used anymore. |
852 | <menu_item_call bottom="-240" enabled="true" height="19" label="Report Bug..." left="0" | 1394 | <menu_item_check name="HTTP Get Textures" |
853 | mouse_opaque="true" name="Report Bug..." width="166"> | 1395 | label="HTTP Get Textures"> |
854 | <on_click function="PromptShowURL" | 1396 | <on_click function="ToggleControl" |
855 | userdata="WebLaunchPublicIssue,http://jira.secondlife.com" /> | 1397 | userdata="ImagePipelineUseHTTP" /> |
856 | </menu_item_call> | 1398 | <on_check control="ImagePipelineUseHTTP" /> |
857 | </menu> | 1399 | </menu_item_check> |
858 | <menu_item_call bottom="-313" enabled="true" height="19" label="About Second Life..." left="0" | 1400 | --> |
859 | mouse_opaque="true" name="About Second Life..." width="166"> | 1401 | <menu_item_check name="Run Multiple Threads" |
860 | <on_click function="ShowFloater" userdata="about" /> | 1402 | label="Run Multiple Threads"> |
861 | </menu_item_call> | 1403 | <on_click function="ToggleControl" |
862 | </menu> | 1404 | userdata="RunMultipleThreads" /> |
1405 | <on_check control="RunMultipleThreads" /> | ||
1406 | </menu_item_check> | ||
1407 | <!-- Disabled because it doesn't work very well? | ||
1408 | <menu_item_check name="Dynamic Reflections" | ||
1409 | label="Dynamic Reflections"> | ||
1410 | <on_click function="ToggleControl" | ||
1411 | userdata="RenderDynamicReflections" /> | ||
1412 | <on_check control="RenderDynamicReflections" /> | ||
1413 | </menu_item_check> | ||
1414 | --> | ||
1415 | <menu_item_check name="Cheesy Beacon" label="Cheesy Beacon"> | ||
1416 | <on_click function="ToggleControl" | ||
1417 | userdata="CheesyBeacon" /> | ||
1418 | <on_check control="CheesyBeacon" /> | ||
1419 | </menu_item_check> | ||
1420 | <menu_item_check name="Attached Lights" label="Attached Lights"> | ||
1421 | <on_click function="ToggleControl" | ||
1422 | userdata="RenderAttachedLights" /> | ||
1423 | <on_check control="RenderAttachedLights" /> | ||
1424 | </menu_item_check> | ||
1425 | <menu_item_check name="Attached Particles" label="Attached Particles"> | ||
1426 | <on_click function="ToggleControl" | ||
1427 | userdata="RenderAttachedParticles" /> | ||
1428 | <on_check control="RenderAttachedParticles" /> | ||
1429 | </menu_item_check> | ||
1430 | </menu> | ||
1431 | |||
1432 | |||
1433 | |||
1434 | <!-- WORLD --> | ||
1435 | |||
1436 | <menu name="World" drop_shadow="true" | ||
1437 | opaque="true" tear_off="true"> | ||
1438 | <!-- Disabled because you can't do this in Windlight. | ||
1439 | <menu_item_check name="Mouse Moves Sun" | ||
1440 | label="Mouse Moves Sun" | ||
1441 | shortcut="control|alt|M"> | ||
1442 | <on_click function="ToggleControl" userdata="MouseSun" /> | ||
1443 | <on_check control="MouseSun" /> | ||
1444 | </menu_item_check> | ||
1445 | --> | ||
1446 | <menu_item_check name="Sim Sun Override" | ||
1447 | label="Sim Sun Override"> | ||
1448 | <on_click function="ToggleControl" | ||
1449 | userdata="SkyOverrideSimSunPosition" /> | ||
1450 | <on_check control="SkyOverrideSimSunPosition" /> | ||
1451 | </menu_item_check> | ||
1452 | <menu_item_call name="Dump Scripted Camera" | ||
1453 | label="Dump Scripted Camera"> | ||
1454 | <on_click function="Advanced.DumpScriptedCamera" | ||
1455 | userdata="" /> | ||
1456 | </menu_item_call> | ||
1457 | <menu_item_check name="Fixed Weather" label="Fixed Weather"> | ||
1458 | <on_click function="ToggleControl" | ||
1459 | userdata="FixedWeather" /> | ||
1460 | <on_check control="FixedWeather" /> | ||
1461 | </menu_item_check> | ||
1462 | <menu_item_call name="Dump Region Object Cache" | ||
1463 | label="Dump Region Object Cache"> | ||
1464 | <on_click function="Advanced.DumpRegionObjectCache" | ||
1465 | userdata="" /> | ||
1466 | </menu_item_call> | ||
1467 | </menu> | ||
1468 | |||
1469 | |||
1470 | |||
1471 | <!-- UI --> | ||
1472 | |||
1473 | <menu name="UI" drop_shadow="true" | ||
1474 | opaque="true" tear_off="true"> | ||
1475 | |||
1476 | <menu_item_call name="SLURL Test" label="SLURL Test"> | ||
1477 | <on_click function="Advanced.SLURLTest" userdata="" /> | ||
1478 | </menu_item_call> | ||
1479 | |||
1480 | <!-- | ||
1481 | *TODO: Make this a proper toggle item with the "X" indicator. | ||
1482 | 1. Add a "Advanced.CheckEditableUI" function in llviewermenu.cpp. | ||
1483 | 2. Change this surrounding menu_item_call to a menu_item_check. | ||
1484 | 3. Uncomment the "on_check" line below. | ||
1485 | --> | ||
1486 | <menu_item_call name="Editable UI" label="Editable UI"> | ||
1487 | <on_click function="Advanced.ToggleEditableUI" userdata="" /> | ||
1488 | <!-- | ||
1489 | <on_check function="Advanced.CheckEditableUI" userdata="" /> | ||
1490 | --> | ||
1491 | </menu_item_call> | ||
1492 | |||
1493 | <menu_item_check name="Async Keystrokes" | ||
1494 | label="Async Keystrokes"> | ||
1495 | <on_click function="Advanced.ToggleAsyncKeystrokes" | ||
1496 | userdata="" /> | ||
1497 | <on_check function="Advanced.CheckAsyncKeystrokes" | ||
1498 | userdata="" /> | ||
1499 | </menu_item_check> | ||
1500 | <menu_item_call name="Dump SelectMgr" label="Dump SelectMgr"> | ||
1501 | <on_click function="Advanced.DumpSelectMgr" userdata="" /> | ||
1502 | </menu_item_call> | ||
1503 | <menu_item_call name="Dump Inventory" label="Dump Inventory"> | ||
1504 | <on_click function="Advanced.DumpInventory" userdata="" /> | ||
1505 | </menu_item_call> | ||
1506 | <menu_item_call name="Dump Focus Holder" | ||
1507 | label="Dump Focus Holder" | ||
1508 | shortcut="control|alt|F"> | ||
1509 | <on_click function="Advanced.DumpFocusHolder" userdata="" /> | ||
1510 | </menu_item_call> | ||
1511 | <menu_item_call name="Print Selected Object Info" | ||
1512 | label="Print Selected Object Info" | ||
1513 | shortcut="control|shift|P"> | ||
1514 | <on_click function="Advanced.PrintSelectedObjectInfo" | ||
1515 | userdata="" /> | ||
1516 | </menu_item_call> | ||
1517 | <menu_item_call name="Print Agent Info" | ||
1518 | label="Print Agent Info" shortcut="shift|P"> | ||
1519 | <on_click function="Advanced.PrintAgentInfo" userdata="" /> | ||
1520 | </menu_item_call> | ||
1521 | <menu_item_call name="Memory Stats" label="Memory Stats" | ||
1522 | shortcut="control|alt|shift|M"> | ||
1523 | <on_click function="Advanced.PrintTextureMemoryStats" | ||
1524 | userdata="" /> | ||
1525 | </menu_item_call> | ||
1526 | <menu_item_check name="Double-Click Auto-Pilot" | ||
1527 | label="Double-Click Auto-Pilot"> | ||
1528 | <on_click function="ToggleControl" | ||
1529 | userdata="DoubleClickAutoPilot" /> | ||
1530 | <on_check control="DoubleClickAutoPilot" /> | ||
1531 | </menu_item_check> | ||
1532 | <menu_item_separator /> | ||
1533 | <menu_item_check name="Debug SelectMgr" | ||
1534 | label="Debug SelectMgr"> | ||
1535 | <on_click function="Advanced.ToggleDebugSelectMgr" | ||
1536 | userdata="" /> | ||
1537 | <on_check function="Advanced.CheckDebugSelectMgr" | ||
1538 | userdata="" /> | ||
1539 | </menu_item_check> | ||
1540 | <menu_item_check name="Debug Clicks" | ||
1541 | label="Debug Click"> | ||
1542 | <on_click function="Advanced.ToggleDebugClicks" | ||
1543 | userdata="" /> | ||
1544 | <on_check function="Advanced.CheckDebugClicks" | ||
1545 | userdata="" /> | ||
1546 | </menu_item_check> | ||
1547 | <menu_item_check name="Debug Views" | ||
1548 | label="Debug Views"> | ||
1549 | <on_click function="Advanced.ToggleDebugViews" | ||
1550 | userdata="" /> | ||
1551 | <on_check function="Advanced.CheckDebugViews" | ||
1552 | userdata="" /> | ||
1553 | </menu_item_check> | ||
1554 | <menu_item_check name="Show Name Tooltips" | ||
1555 | label="Show Name Tooltips"> | ||
1556 | <on_click function="Advanced.ToggleXUINameTooltips" | ||
1557 | userdata="" /> | ||
1558 | <on_check function="Advanced.CheckXUINameTooltips" | ||
1559 | userdata="" /> | ||
1560 | </menu_item_check> | ||
1561 | <menu_item_check name="Debug Mouse Events" | ||
1562 | label="Debug Mouse Events"> | ||
1563 | <on_click function="Advanced.ToggleDebugMouseEvents" | ||
1564 | userdata="" /> | ||
1565 | <on_check function="Advanced.CheckDebugMouseEvents" | ||
1566 | userdata="" /> | ||
1567 | </menu_item_check> | ||
1568 | <menu_item_check name="Debug Keys" | ||
1569 | label="Debug Keys"> | ||
1570 | <on_click function="Advanced.ToggleDebugKeys" | ||
1571 | userdata="" /> | ||
1572 | <on_check function="Advanced.CheckDebugKeys" | ||
1573 | userdata="" /> | ||
1574 | </menu_item_check> | ||
1575 | <menu_item_check name="Debug WindowProc" | ||
1576 | label="Debug WindowProc"> | ||
1577 | <on_click function="Advanced.ToggleDebugWindowProc" | ||
1578 | userdata="" /> | ||
1579 | <on_check function="Advanced.CheckDebugWindowProc" | ||
1580 | userdata="" /> | ||
1581 | </menu_item_check> | ||
1582 | <menu_item_check name="Debug Text Editor Tips" | ||
1583 | label="Debug Text Editor Tips"> | ||
1584 | <on_click function="Advanced.ToggleDebugTextEditorTips" | ||
1585 | userdata="" /> | ||
1586 | <on_check function="Advanced.CheckDebugTextEditorTips" | ||
1587 | userdata="" /> | ||
1588 | </menu_item_check> | ||
1589 | <menu_item_separator /> | ||
1590 | <menu_item_check name="Show Time" | ||
1591 | label="Show Time"> | ||
1592 | <on_click function="ToggleControl" | ||
1593 | userdata="DebugShowTime" /> | ||
1594 | <on_check control="DebugShowTime" /> | ||
1595 | </menu_item_check> | ||
1596 | <menu_item_check name="Show Render Info" | ||
1597 | label="Show Render Info"> | ||
1598 | <on_click function="ToggleControl" | ||
1599 | userdata="DebugShowRenderInfo" /> | ||
1600 | <on_check control="DebugShowRenderInfo" /> | ||
1601 | </menu_item_check> | ||
1602 | <menu_item_check name="Show Color Under Cursor" | ||
1603 | label="Show Color Under Cursor"> | ||
1604 | <on_click function="ToggleControl" | ||
1605 | userdata="DebugShowColor" /> | ||
1606 | <on_check control="DebugShowColor" /> | ||
1607 | </menu_item_check> | ||
1608 | </menu> | ||
1609 | |||
1610 | |||
1611 | |||
1612 | <!-- XUI --> | ||
1613 | |||
1614 | <menu name="XUI" drop_shadow="true" | ||
1615 | opaque="true" tear_off="true"> | ||
1616 | <menu_item_call name="Floater Test..." | ||
1617 | label="Floater Test..."> | ||
1618 | <on_click function="Advanced.ShowFloaterTest" | ||
1619 | userdata="" /> | ||
1620 | </menu_item_call> | ||
1621 | <menu_item_call name="Export Menus to XML..." | ||
1622 | label="Export Menus to XML..."> | ||
1623 | <on_click function="Advanced.ExportMenusToXML" | ||
1624 | userdata="" /> | ||
1625 | </menu_item_call> | ||
1626 | <menu_item_call name="Edit UI..." | ||
1627 | label="Edit UI..."> | ||
1628 | <on_click function="Advanced.EditUI" | ||
1629 | userdata="" /> | ||
1630 | </menu_item_call> | ||
1631 | <menu_item_call name="Load from XML..." | ||
1632 | label="Load from XML..."> | ||
1633 | <on_click function="Advanced.LoadUIFromXML" | ||
1634 | userdata="" /> | ||
1635 | </menu_item_call> | ||
1636 | <menu_item_call name="Save to XML..." | ||
1637 | label="Save to XML..."> | ||
1638 | <on_click function="Advanced.SaveUIToXML" | ||
1639 | userdata="" /> | ||
1640 | </menu_item_call> | ||
1641 | <menu_item_check name="Show XUI Names" | ||
1642 | label="Show XUI Names"> | ||
1643 | <on_click function="Advanced.ToggleXUINames" | ||
1644 | userdata="" /> | ||
1645 | <on_check function="Advanced.CheckXUINames" | ||
1646 | userdata="" /> | ||
1647 | </menu_item_check> | ||
1648 | </menu> | ||
1649 | |||
1650 | |||
1651 | |||
1652 | <!-- CHARACTER --> | ||
1653 | |||
1654 | <menu name="Character" drop_shadow="true" | ||
1655 | opaque="true" tear_off="true"> | ||
1656 | |||
1657 | <menu name="Grab Baked Texture" drop_shadow="true" | ||
1658 | opaque="true" tear_off="true"> | ||
1659 | |||
1660 | <menu_item_call name="Iris" enabled="false" | ||
1661 | label="Iris"> | ||
1662 | <on_click function="Advanced.GrabBakedTexture" | ||
1663 | userdata="eyes" /> | ||
1664 | <on_enable function="Advanced.EnableGrabBakedTexture" | ||
1665 | userdata="eyes" /> | ||
1666 | </menu_item_call> | ||
1667 | <menu_item_call name="Head" enabled="false" | ||
1668 | label="Head"> | ||
1669 | <on_click function="Advanced.GrabBakedTexture" | ||
1670 | userdata="head" /> | ||
1671 | <on_enable function="Advanced.EnableGrabBakedTexture" | ||
1672 | userdata="head" /> | ||
1673 | </menu_item_call> | ||
1674 | <menu_item_call name="Upper Body" enabled="false" | ||
1675 | label="Upper Body"> | ||
1676 | <on_click function="Advanced.GrabBakedTexture" | ||
1677 | userdata="upper" /> | ||
1678 | <on_enable function="Advanced.EnableGrabBakedTexture" | ||
1679 | userdata="upper" /> | ||
1680 | </menu_item_call> | ||
1681 | <menu_item_call name="Lower Body" enabled="false" | ||
1682 | label="Lower Body"> | ||
1683 | <on_click function="Advanced.GrabBakedTexture" | ||
1684 | userdata="lower" /> | ||
1685 | <on_enable function="Advanced.EnableGrabBakedTexture" | ||
1686 | userdata="lower" /> | ||
1687 | </menu_item_call> | ||
1688 | <menu_item_call name="Skirt" enabled="false" | ||
1689 | label="Skirt"> | ||
1690 | <on_click function="Advanced.GrabBakedTexture" | ||
1691 | userdata="skirt" /> | ||
1692 | <on_enable function="Advanced.EnableGrabBakedTexture" | ||
1693 | userdata="skirt" /> | ||
1694 | </menu_item_call> | ||
1695 | </menu> | ||
1696 | |||
1697 | <!-- CHARACTER TESTS --> | ||
1698 | <menu name="Character Tests" drop_shadow="true" | ||
1699 | opaque="true" tear_off="true"> | ||
1700 | <menu_item_check name="Go Away/AFK When Idle" | ||
1701 | label="Go Away/AFK When Idle"> | ||
1702 | <on_click function="Advanced.ToggleAllowIdleAFK" | ||
1703 | userdata="" /> | ||
1704 | <on_check function="Advanced.CheckAllowIdleAFK" | ||
1705 | userdata="" /> | ||
1706 | </menu_item_check> | ||
1707 | <menu_item_call name="Appearance To XML" | ||
1708 | label="Appearance To XML"> | ||
1709 | <on_click function="Advanced.ToggleAppearanceToXML" | ||
1710 | userdata="" /> | ||
1711 | </menu_item_call> | ||
1712 | <menu_item_call name="Toggle Character Geometry" | ||
1713 | enabled="false" | ||
1714 | label="Toggle Character Geometry"> | ||
1715 | <on_click function="Advanced.ToggleCharacterGeometry" | ||
1716 | userdata="" /> | ||
1717 | <on_enable function="EnableGodCustomerService" | ||
1718 | userdata="" /> | ||
1719 | </menu_item_call> | ||
1720 | <menu_item_call name="Test Male" label="Test Male"> | ||
1721 | <on_click function="Advanced.TestMale" userdata="" /> | ||
1722 | </menu_item_call> | ||
1723 | <menu_item_call name="Test Female" label="Test Female"> | ||
1724 | <on_click function="Advanced.TestFemale" userdata="" /> | ||
1725 | </menu_item_call> | ||
1726 | <menu_item_call name="Toggle PG" label="Toggle PG"> | ||
1727 | <on_click function="Advanced.TogglePG" userdata="" /> | ||
1728 | </menu_item_call> | ||
1729 | <menu_item_check name="Allow Select Avatar" | ||
1730 | label="Allow Select Avatar"> | ||
1731 | <on_click function="Advanced.ToggleAllowSelectAvatar" | ||
1732 | userdata="" /> | ||
1733 | <on_check function="Advanced.CheckAllowSelectAvatar" | ||
1734 | userdata="" /> | ||
1735 | </menu_item_check> | ||
1736 | </menu> | ||
1737 | |||
1738 | <menu_item_check name="Enable Lip Sync (Beta)" | ||
1739 | label="Enable Lip Sync (Beta)"> | ||
1740 | <on_click function="ToggleControl" | ||
1741 | userdata="LipSyncEnabled" /> | ||
1742 | <on_check control="LipSyncEnabled" /> | ||
1743 | </menu_item_check> | ||
1744 | <menu_item_check name="Tap-Tap-Hold To Run" | ||
1745 | label="Tap-Tap-Hold To Run"> | ||
1746 | <on_click function="Advanced.ToggleAllowTapTapHoldRun" | ||
1747 | userdata="" /> | ||
1748 | <on_check function="Advanced.CheckAllowTapTapHoldRun" | ||
1749 | userdata="" /> | ||
1750 | </menu_item_check> | ||
1751 | <menu_item_call name="Force Params to Default" | ||
1752 | label="Force Params to Default"> | ||
1753 | <on_click function="Advanced.ForceParamsToDefault" | ||
1754 | userdata="" /> | ||
1755 | </menu_item_call> | ||
1756 | <menu_item_call name="Reload Vertex Shader" | ||
1757 | label="Reload Vertex Shader"> | ||
1758 | <on_click function="Advanced.ReloadVertexShader" | ||
1759 | userdata="" /> | ||
1760 | </menu_item_call> | ||
1761 | <menu_item_check label="Animation Info" | ||
1762 | name="Animation Info"> | ||
1763 | <on_click function="Advanced.ToggleAnimationInfo" | ||
1764 | userdata="" /> | ||
1765 | <on_check function="Advanced.CheckAnimationInfo" | ||
1766 | userdata="" /> | ||
1767 | </menu_item_check> | ||
1768 | |||
1769 | <!-- | ||
1770 | *TODO: Make this a proper toggle item with the "X" indicator. | ||
1771 | 1. Add a "Advanced.CheckSlowmotionAnimation" function in | ||
1772 | llviewermenu.cpp. | ||
1773 | 2. Change this surrounding menu_item_call to a menu_item_check. | ||
1774 | 3. Uncomment the "on_check" line below. | ||
1775 | --> | ||
1776 | <menu_item_call name="Slow Motion Animations" | ||
1777 | label="Slow Motion Animations"> | ||
1778 | <on_click function="Advanced.ToggleSlowMotionAnimations" | ||
1779 | userdata="" /> | ||
1780 | <!-- | ||
1781 | <on_check function="Advanced.CheckSlowMotionAnimations" | ||
1782 | userdata="" /> | ||
1783 | --> | ||
1784 | </menu_item_call> | ||
1785 | |||
1786 | <menu_item_check name="Show Look At" | ||
1787 | label="Show Look At"> | ||
1788 | <on_click function="Advanced.ToggleShowLookAt" | ||
1789 | userdata="" /> | ||
1790 | <on_check function="Advanced.CheckShowLookAt" | ||
1791 | userdata="" /> | ||
1792 | </menu_item_check> | ||
1793 | <menu_item_check name="Show Point At" | ||
1794 | label="Show Point At"> | ||
1795 | <on_click function="Advanced.ToggleShowPointAt" | ||
1796 | userdata="" /> | ||
1797 | <on_check function="Advanced.CheckShowPointAt" | ||
1798 | userdata="" /> | ||
1799 | </menu_item_check> | ||
1800 | <menu_item_check name="Debug Joint Updates" | ||
1801 | label="Debug Joint Updates"> | ||
1802 | <on_click function="Advanced.ToggleDebugJointUpdates" | ||
1803 | userdata="" /> | ||
1804 | <on_check function="Advanced.CheckDebugJointUpdates" | ||
1805 | userdata="" /> | ||
1806 | </menu_item_check> | ||
1807 | <menu_item_check name="Disable LOD" | ||
1808 | label="Disable LOD"> | ||
1809 | <on_click function="Advanced.ToggleDisableLOD" | ||
1810 | userdata="" /> | ||
1811 | <on_check function="Advanced.CheckDisableLOD" | ||
1812 | userdata="" /> | ||
1813 | </menu_item_check> | ||
1814 | <menu_item_check name="Debug Character Vis" | ||
1815 | label="Debug Character Vis"> | ||
1816 | <on_click function="Advanced.ToggleDebugCharacterVis" | ||
1817 | userdata="" /> | ||
1818 | <on_check function="Advanced.CheckDebugCharacterVis" | ||
1819 | userdata="" /> | ||
1820 | </menu_item_check> | ||
1821 | |||
1822 | <!-- Disabled. See DEV-14477 | ||
1823 | <menu_item_check name="Show Collision Plane" | ||
1824 | label="Show Collision Plane"> | ||
1825 | <on_click function="Advanced.ToggleShowCollisionPlane" | ||
1826 | userdata="" /> | ||
1827 | <on_check function="Advanced.CheckShowCollisionPlane" | ||
1828 | userdata="" /> | ||
1829 | </menu_item_check> | ||
1830 | --> | ||
1831 | |||
1832 | <menu_item_check name="Show Collision Skeleton" | ||
1833 | label="Show Collision Skeleton"> | ||
1834 | <on_click function="Advanced.ToggleShowCollisionSkeleton" | ||
1835 | userdata="" /> | ||
1836 | <on_check function="Advanced.CheckShowCollisionSkeleton" | ||
1837 | userdata="" /> | ||
1838 | </menu_item_check> | ||
1839 | <menu_item_check name="Display Agent Target" | ||
1840 | label="Display Agent Target"> | ||
1841 | <on_click function="Advanced.ToggleDisplayAgentTarget" | ||
1842 | userdata="" /> | ||
1843 | <on_check function="Advanced.CheckDisplayAgentTarget" | ||
1844 | userdata="" /> | ||
1845 | </menu_item_check> | ||
1846 | <menu_item_check name="Debug Rotation" | ||
1847 | label="Debug Rotation"> | ||
1848 | <on_click function="Advanced.ToggleDebugAvatarRotation" | ||
1849 | userdata="" /> | ||
1850 | <on_check function="Advanced.CheckDebugAvatarRotation" | ||
1851 | userdata="" /> | ||
1852 | </menu_item_check> | ||
1853 | <menu_item_call name="Dump Attachments" | ||
1854 | label="Dump Attachments"> | ||
1855 | <on_click function="Advanced.DumpAttachments" | ||
1856 | userdata="" /> | ||
1857 | </menu_item_call> | ||
1858 | <menu_item_call name="Rebake Textures" | ||
1859 | label="Rebake Textures" | ||
1860 | shortcut="control|alt|R"> | ||
1861 | <on_click function="Advanced.RebakeTextures" | ||
1862 | userdata="" /> | ||
1863 | </menu_item_call> | ||
1864 | </menu> | ||
1865 | |||
1866 | |||
1867 | |||
1868 | <!-- NETWORK --> | ||
1869 | |||
1870 | <menu name="Network" drop_shadow="true" | ||
1871 | opaque="true" tear_off="true"> | ||
1872 | <menu_item_call name="Enable Message Log" | ||
1873 | label="Enable Message Log"> | ||
1874 | <on_click function="Advanced.EnableMessageLog" | ||
1875 | userdata="" /> | ||
1876 | </menu_item_call> | ||
1877 | <menu_item_call name="Disable Message Log" | ||
1878 | label="Disable Message Log"> | ||
1879 | <on_click function="Advanced.DisableMessageLog" | ||
1880 | userdata="" /> | ||
1881 | </menu_item_call> | ||
1882 | <menu_item_separator /> | ||
1883 | <menu_item_check name="Velocity Interpolate Objects" | ||
1884 | label="Velocity Interpolate Objects"> | ||
1885 | <on_click function="ToggleControl" | ||
1886 | userdata="VelocityInterpolate" /> | ||
1887 | <on_check control="VelocityInterpolate" /> | ||
1888 | </menu_item_check> | ||
1889 | <menu_item_check name="Ping Interpolate Object Positions" | ||
1890 | label="Ping Interpolate Object Positions"> | ||
1891 | <on_click function="ToggleControl" | ||
1892 | userdata="PingInterpolate" /> | ||
1893 | <on_check control="PingInterpolate" /> | ||
1894 | </menu_item_check> | ||
1895 | <menu_item_separator /> | ||
1896 | <menu_item_call name="Drop a Packet" label="Drop a Packet" | ||
1897 | shortcut="control|alt|L"> | ||
1898 | <on_click function="Advanced.DropPacket" | ||
1899 | userdata="" /> | ||
1900 | </menu_item_call> | ||
1901 | </menu> | ||
1902 | |||
1903 | |||
1904 | |||
1905 | <!-- RECORDER --> | ||
1906 | |||
1907 | <menu name="Recorder" drop_shadow="true" | ||
1908 | opaque="true" tear_off="true"> | ||
1909 | <menu_item_check name="Full Session Logging" | ||
1910 | label="Full Session Logging"> | ||
1911 | <on_click function="ToggleControl" | ||
1912 | userdata="StatsSessionTrackFrameStats" /> | ||
1913 | <on_check control="StatsSessionTrackFrameStats" /> | ||
1914 | </menu_item_check> | ||
1915 | <menu_item_call name="Start Logging" label="Start Logging"> | ||
1916 | <on_click function="Advanced.FrameStatsLogging" | ||
1917 | userdata="start logging" /> | ||
1918 | </menu_item_call> | ||
1919 | <menu_item_call name="Stop Logging" label="Stop Logging"> | ||
1920 | <on_click function="Advanced.FrameStatsLogging" | ||
1921 | userdata="stop logging" /> | ||
1922 | </menu_item_call> | ||
1923 | <menu_item_call name="Log 10 Seconds" label="Log 10 Seconds"> | ||
1924 | <on_click function="Advanced.FrameStatsLogging" | ||
1925 | userdata="timed logging 10" /> | ||
1926 | </menu_item_call> | ||
1927 | <menu_item_call name="Log 30 Seconds" label="Log 30 Seconds"> | ||
1928 | <on_click function="Advanced.FrameStatsLogging" | ||
1929 | userdata="timed logging 30" /> | ||
1930 | </menu_item_call> | ||
1931 | <menu_item_call name="Log 60 Seconds" label="Log 60 Seconds"> | ||
1932 | <on_click function="Advanced.FrameStatsLogging" | ||
1933 | userdata="timed logging 60" /> | ||
1934 | </menu_item_call> | ||
1935 | |||
1936 | <menu_item_separator /> | ||
1937 | |||
1938 | <menu_item_call name="Start Playback" label="Start Playback"> | ||
1939 | <on_click function="Advanced.AgentPilot" | ||
1940 | userdata="start playback" /> | ||
1941 | </menu_item_call> | ||
1942 | <menu_item_call name="Stop Playback" label="Stop Playback"> | ||
1943 | <on_click function="Advanced.AgentPilot" | ||
1944 | userdata="stop playback" /> | ||
1945 | </menu_item_call> | ||
1946 | <menu_item_check name="Loop Playback" label="Loop Playback"> | ||
1947 | <on_click function="Advanced.ToggleAgentPilotLoop" | ||
1948 | userdata="" /> | ||
1949 | <on_check function="Advanced.CheckAgentPilotLoop" | ||
1950 | userdata="" /> | ||
1951 | </menu_item_check> | ||
1952 | <menu_item_call name="Start Record" label="Start Record"> | ||
1953 | <on_click function="Advanced.AgentPilot" | ||
1954 | userdata="start record" /> | ||
1955 | </menu_item_call> | ||
1956 | <menu_item_call name="Stop Record" label="Stop Record"> | ||
1957 | <on_click function="Advanced.AgentPilot" | ||
1958 | userdata="stop record" /> | ||
1959 | </menu_item_call> | ||
1960 | </menu> | ||
1961 | |||
1962 | |||
1963 | <menu_item_separator /> | ||
1964 | |||
1965 | |||
1966 | <menu_item_check name="Show Updates" label="Show Updates"> | ||
1967 | <on_click function="Advanced.ToggleShowObjectUpdates" | ||
1968 | userdata="" /> | ||
1969 | <on_check function="Advanced.CheckShowObjectUpdates" | ||
1970 | userdata="" /> | ||
1971 | </menu_item_check> | ||
1972 | |||
1973 | <menu_item_separator /> | ||
1974 | |||
1975 | <menu_item_call name="Compress Image..." | ||
1976 | label="Compress Image..."> | ||
1977 | <on_click function="Advanced.CompressImage" | ||
1978 | userdata="" /> | ||
1979 | </menu_item_call> | ||
1980 | <menu_item_check name="Limit Select Distance" | ||
1981 | label="Limit Select Distance"> | ||
1982 | <on_click function="ToggleControl" | ||
1983 | userdata="LimitSelectDistance" /> | ||
1984 | <on_check control="LimitSelectDistance" /> | ||
1985 | </menu_item_check> | ||
1986 | <menu_item_check name="Disable Camera Constraints" | ||
1987 | label="Disable Camera Constraints"> | ||
1988 | <on_click function="ToggleControl" | ||
1989 | userdata="DisableCameraConstraints" /> | ||
1990 | <on_check control="DisableCameraConstraints" /> | ||
1991 | </menu_item_check> | ||
1992 | <menu_item_check name="Mouse Smoothing" | ||
1993 | label="Mouse Smoothing"> | ||
1994 | <on_click function="ToggleControl" | ||
1995 | userdata="MouseSmooth" /> | ||
1996 | <on_check control="MouseSmooth" /> | ||
1997 | </menu_item_check> | ||
1998 | |||
1999 | <menu_item_separator /> | ||
2000 | |||
2001 | <menu_item_check name="Console Window" | ||
2002 | label="Console Window"> | ||
2003 | <on_click function="ToggleControl" | ||
2004 | userdata="ShowConsoleWindow" /> | ||
2005 | <on_check control="ShowConsoleWindow" /> | ||
2006 | </menu_item_check> | ||
2007 | <menu_item_check name="Output Debug Minidump" | ||
2008 | label="Output Debug Minidump"> | ||
2009 | <on_click function="ToggleControl" | ||
2010 | userdata="SaveMiniDump" /> | ||
2011 | <on_check control="SaveMiniDump" /> | ||
2012 | </menu_item_check> | ||
2013 | <menu_item_check name="Clothing..." | ||
2014 | label="Clothing..."> | ||
2015 | <on_click function="Advanced.ToggleClothingFloater" | ||
2016 | userdata="" /> | ||
2017 | </menu_item_check> | ||
2018 | <menu_item_call name="Debug Settings" | ||
2019 | label="Debug Settings"> | ||
2020 | <on_click function="Advanced.ShowDebugSettings" | ||
2021 | userdata="" /> | ||
2022 | </menu_item_call> | ||
2023 | <menu_item_check name="View Admin Options" | ||
2024 | label="View Admin Options" | ||
2025 | shortcut="control|alt|V"> | ||
2026 | <on_click function="Advanced.ToggleViewAdminOptions" | ||
2027 | userdata="" /> | ||
2028 | <on_check function="Advanced.CheckViewAdminOptions" | ||
2029 | userdata="" /> | ||
2030 | </menu_item_check> | ||
2031 | <menu_item_call name="Request Admin Status" | ||
2032 | label="Request Admin Status" | ||
2033 | shortcut="control|alt|G"> | ||
2034 | <on_click function="Advanced.RequestAdminStatus" | ||
2035 | userdata="" /> | ||
2036 | </menu_item_call> | ||
2037 | <menu_item_call name="Leave Admin Status" | ||
2038 | label="Leave Admin Status" | ||
2039 | shortcut="control|alt|shift|G"> | ||
2040 | <on_click function="Advanced.LeaveAdminStatus" | ||
2041 | userdata="" /> | ||
2042 | </menu_item_call> | ||
2043 | |||
2044 | </menu> | ||
2045 | |||
863 | </menu_bar> | 2046 | </menu_bar> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_groups.xml b/linden/indra/newview/skins/default/xui/en-us/panel_groups.xml index 416f58b..02d5504 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_groups.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_groups.xml | |||
@@ -34,4 +34,6 @@ | |||
34 | label="Create..." name="Create" width="80" /> | 34 | label="Create..." name="Create" width="80" /> |
35 | <button bottom_delta="-25" follows="top|right" font="SansSerif" height="22" | 35 | <button bottom_delta="-25" follows="top|right" font="SansSerif" height="22" |
36 | label="Search..." name="Search..." width="80" /> | 36 | label="Search..." name="Search..." width="80" /> |
37 | <button bottom_delta="-25" follows="top|right" font="SansSerif" height="22" | ||
38 | label="Invite..." name="Invite..." width="80" /> | ||
37 | </panel> | 39 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_overlaybar.xml b/linden/indra/newview/skins/default/xui/en-us/panel_overlaybar.xml index 926e3d8..405a3f3 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_overlaybar.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_overlaybar.xml | |||
@@ -27,6 +27,11 @@ | |||
27 | tool_tip="Chat and IM is hidden for you. Click here to set yourself not busy." | 27 | tool_tip="Chat and IM is hidden for you. Click here to set yourself not busy." |
28 | width="102" /> | 28 | width="102" /> |
29 | <button bottom="1" follows="left|bottom" font="SansSerif" halign="center" height="20" | 29 | <button bottom="1" follows="left|bottom" font="SansSerif" halign="center" height="20" |
30 | <button bottom="1" follows="left|bottom" font="SansSerif" halign="center" height="20" | ||
31 | label="Flycam" label_selected="Flycam" left="229" name="Flycam" scale_image="true" | ||
32 | tool_tip="Your camera is under joystick control, click here to release it." | ||
33 | width="102" /> | ||
34 | <button bottom="1" follows="left|bottom" font="SansSerif" halign="center" height="20" | ||
30 | label="Mouselook" label_selected="Mouselook" left="343" name="Mouselook" | 35 | label="Mouselook" label_selected="Mouselook" left="343" name="Mouselook" |
31 | scale_image="true" | 36 | scale_image="true" |
32 | tool_tip="Use mouse to steer your view. If you have a gun, clicking will shoot." | 37 | tool_tip="Use mouse to steer your view. If you have a gun, clicking will shoot." |
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py index 718d6e6..fe894a7 100755 --- a/linden/indra/newview/viewer_manifest.py +++ b/linden/indra/newview/viewer_manifest.py | |||
@@ -570,25 +570,30 @@ class LinuxManifest(ViewerManifest): | |||
570 | find %(dst)s -type f -perm 0600 | xargs --no-run-if-empty chmod 0644; | 570 | find %(dst)s -type f -perm 0600 | xargs --no-run-if-empty chmod 0644; |
571 | find %(dst)s -type f -perm 0400 | xargs --no-run-if-empty chmod 0444; | 571 | find %(dst)s -type f -perm 0400 | xargs --no-run-if-empty chmod 0444; |
572 | true""" % {'dst':self.get_dst_prefix() }) | 572 | true""" % {'dst':self.get_dst_prefix() }) |
573 | |||
573 | self.package_file = installer_name + '.tar.bz2' | 574 | self.package_file = installer_name + '.tar.bz2' |
574 | 575 | ||
575 | # temporarily move directory tree so that it has the right | 576 | if("package" in self.args['actions'] or |
576 | # name in the tarfile | 577 | "unpacked" in self.args['actions']): |
577 | self.run_command("mv %(dst)s %(inst)s" % { | 578 | |
578 | 'dst': self.get_dst_prefix(), | 579 | # temporarily move directory tree so that it has the right |
579 | 'inst': self.build_path_of(installer_name)}) | 580 | # name in the tarfile |
580 | try: | 581 | self.run_command("mv %(dst)s %(inst)s" % { |
581 | # --numeric-owner hides the username of the builder for | ||
582 | # security etc. | ||
583 | self.run_command('tar -C %(dir)s --numeric-owner -cjf ' | ||
584 | '%(inst_path)s.tar.bz2 %(inst_name)s' % { | ||
585 | 'dir': self.get_build_prefix(), | ||
586 | 'inst_name': installer_name, | ||
587 | 'inst_path':self.build_path_of(installer_name)}) | ||
588 | finally: | ||
589 | self.run_command("mv %(inst)s %(dst)s" % { | ||
590 | 'dst': self.get_dst_prefix(), | 582 | 'dst': self.get_dst_prefix(), |
591 | 'inst': self.build_path_of(installer_name)}) | 583 | 'inst': self.build_path_of(installer_name)}) |
584 | try: | ||
585 | # --numeric-owner hides the username of the builder for | ||
586 | # security etc. | ||
587 | self.run_command('tar -C %(dir)s --numeric-owner -cjf ' | ||
588 | '%(inst_path)s.tar.bz2 %(inst_name)s' % { | ||
589 | 'dir': self.get_build_prefix(), | ||
590 | 'inst_name': installer_name, | ||
591 | 'inst_path':self.build_path_of(installer_name)}) | ||
592 | finally: | ||
593 | self.run_command("mv %(inst)s %(dst)s" % { | ||
594 | 'dst': self.get_dst_prefix(), | ||
595 | 'inst': self.build_path_of(installer_name)}) | ||
596 | |||
592 | 597 | ||
593 | class Linux_i686Manifest(LinuxManifest): | 598 | class Linux_i686Manifest(LinuxManifest): |
594 | def construct(self): | 599 | def construct(self): |