aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview
diff options
context:
space:
mode:
authorJacek Antonelli2008-09-22 14:53:50 -0500
committerJacek Antonelli2008-09-22 14:53:50 -0500
commit5dc552157834cc1284841956d18f640275747feb (patch)
tree976f145ed42ed0b2c4d6fa19c3d313be77be771c /linden/indra/newview
parentMerge branch 'build-tools' into next-merge (diff)
parentVWR-8430: Usability improvements to the land tools floater. (diff)
downloadmeta-impy-5dc552157834cc1284841956d18f640275747feb.zip
meta-impy-5dc552157834cc1284841956d18f640275747feb.tar.gz
meta-impy-5dc552157834cc1284841956d18f640275747feb.tar.bz2
meta-impy-5dc552157834cc1284841956d18f640275747feb.tar.xz
Merge branch 'land-tools' into next-merge
Diffstat (limited to 'linden/indra/newview')
-rw-r--r--linden/indra/newview/app_settings/settings.xml13
-rw-r--r--linden/indra/newview/llfloatertools.cpp61
-rw-r--r--linden/indra/newview/llfloatertools.h5
-rw-r--r--linden/indra/newview/llpanelland.cpp26
-rw-r--r--linden/indra/newview/llpanelland.h3
-rw-r--r--linden/indra/newview/lltoolbrush.cpp16
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/alerts.xml13
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_tools.xml140
8 files changed, 191 insertions, 86 deletions
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml
index e31c149..cdf9fb4 100644
--- a/linden/indra/newview/app_settings/settings.xml
+++ b/linden/indra/newview/app_settings/settings.xml
@@ -4164,6 +4164,17 @@
4164 <key>Value</key> 4164 <key>Value</key>
4165 <integer>0</integer> 4165 <integer>0</integer>
4166 </map> 4166 </map>
4167 <key>LandBrushForce</key>
4168 <map>
4169 <key>Comment</key>
4170 <string>Multiplier for land modification brush force.</string>
4171 <key>Persist</key>
4172 <integer>1</integer>
4173 <key>Type</key>
4174 <string>F32</string>
4175 <key>Value</key>
4176 <real>1.0</real>
4177 </map>
4167 <key>Language</key> 4178 <key>Language</key>
4168 <map> 4179 <map>
4169 <key>Comment</key> 4180 <key>Comment</key>
@@ -5558,7 +5569,7 @@
5558 <key>Value</key> 5569 <key>Value</key>
5559 <integer>0</integer> 5570 <integer>0</integer>
5560 </map> 5571 </map>
5561 <key>RadioLandBrushSize</key> 5572 <key>LandBrushSize</key>
5562 <map> 5573 <map>
5563 <key>Comment</key> 5574 <key>Comment</key>
5564 <string>Size of land modification brush (0 = small, 1 = medium, 2 = large)</string> 5575 <string>Size of land modification brush (0 = small, 1 = medium, 2 = large)</string>
diff --git a/linden/indra/newview/llfloatertools.cpp b/linden/indra/newview/llfloatertools.cpp
index 97150e3..9ce5d35 100644
--- a/linden/indra/newview/llfloatertools.cpp
+++ b/linden/indra/newview/llfloatertools.cpp
@@ -54,6 +54,7 @@
54#include "llpanelvolume.h" 54#include "llpanelvolume.h"
55#include "llpanelpermissions.h" 55#include "llpanelpermissions.h"
56#include "llselectmgr.h" 56#include "llselectmgr.h"
57#include "llslider.h"
57#include "llstatusbar.h" 58#include "llstatusbar.h"
58#include "lltabcontainer.h" 59#include "lltabcontainer.h"
59#include "lltextbox.h" 60#include "lltextbox.h"
@@ -105,8 +106,8 @@ void click_popup_rotate_left(void*);
105void click_popup_rotate_reset(void*); 106void click_popup_rotate_reset(void*);
106void click_popup_rotate_right(void*); 107void click_popup_rotate_right(void*);
107void click_popup_dozer_mode(LLUICtrl *, void *user); 108void click_popup_dozer_mode(LLUICtrl *, void *user);
108void click_popup_dozer_size(LLUICtrl *, void *user); 109void commit_slider_dozer_size(LLUICtrl *, void*);
109void click_dozer_size(LLUICtrl *, void*); 110void commit_slider_dozer_force(LLUICtrl *, void*);
110void click_apply_to_selection(void*); 111void click_apply_to_selection(void*);
111void commit_radio_zoom(LLUICtrl *, void*); 112void commit_radio_zoom(LLUICtrl *, void*);
112void commit_radio_orbit(LLUICtrl *, void*); 113void commit_radio_orbit(LLUICtrl *, void*);
@@ -301,13 +302,18 @@ BOOL LLFloaterTools::postBuild()
301 childSetCommitCallback("radio noise",click_popup_dozer_mode, (void*)4); 302 childSetCommitCallback("radio noise",click_popup_dozer_mode, (void*)4);
302 mRadioDozerRevert = getChild<LLCheckBoxCtrl>("radio revert"); 303 mRadioDozerRevert = getChild<LLCheckBoxCtrl>("radio revert");
303 childSetCommitCallback("radio revert",click_popup_dozer_mode, (void*)5); 304 childSetCommitCallback("radio revert",click_popup_dozer_mode, (void*)5);
304 mComboDozerSize = getChild<LLComboBox>("combobox brush size");
305 childSetCommitCallback("combobox brush size",click_dozer_size, (void*)0);
306 if(mComboDozerSize) mComboDozerSize->setCurrentByIndex(0);
307 mBtnApplyToSelection = getChild<LLButton>("button apply to selection"); 305 mBtnApplyToSelection = getChild<LLButton>("button apply to selection");
308 childSetAction("button apply to selection",click_apply_to_selection, (void*)0); 306 childSetAction("button apply to selection",click_apply_to_selection, (void*)0);
309 mCheckShowOwners = getChild<LLCheckBoxCtrl>("checkbox show owners"); 307
310 childSetValue("checkbox show owners",gSavedSettings.getBOOL("ShowParcelOwners")); 308 mSliderDozerSize = getChild<LLSlider>("slider brush size");
309 childSetCommitCallback("slider brush size", commit_slider_dozer_size, (void*)0);
310 childSetValue( "slider brush size", gSavedSettings.getS32("LandBrushSize"));
311
312 mSliderDozerForce = getChild<LLSlider>("slider force");
313 childSetCommitCallback("slider force",commit_slider_dozer_force, (void*)0);
314 // the setting stores the actual force multiplier, but the slider is logarithmic, so we convert here
315 childSetValue( "slider force", log10(gSavedSettings.getF32("LandBrushForce")));
316
311 childSetAction("button more", click_show_more, this); 317 childSetAction("button more", click_show_more, this);
312 childSetAction("button less", click_show_more, this); 318 childSetAction("button less", click_show_more, this);
313 mTab = getChild<LLTabContainer>("Object Info Tabs"); 319 mTab = getChild<LLTabContainer>("Object Info Tabs");
@@ -383,10 +389,9 @@ LLFloaterTools::LLFloaterTools()
383 mRadioDozerSmooth(NULL), 389 mRadioDozerSmooth(NULL),
384 mRadioDozerNoise(NULL), 390 mRadioDozerNoise(NULL),
385 mRadioDozerRevert(NULL), 391 mRadioDozerRevert(NULL),
386 mComboDozerSize(NULL), 392 mSliderDozerSize(NULL),
393 mSliderDozerForce(NULL),
387 mBtnApplyToSelection(NULL), 394 mBtnApplyToSelection(NULL),
388 mCheckShowOwners(NULL),
389
390 395
391 mTab(NULL), 396 mTab(NULL),
392 mPanelPermissions(NULL), 397 mPanelPermissions(NULL),
@@ -694,7 +699,6 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask)
694 if (mRadioSelectLand) mRadioSelectLand->setVisible( land_visible ); 699 if (mRadioSelectLand) mRadioSelectLand->setVisible( land_visible );
695 700
696 S32 dozer_mode = gSavedSettings.getS32("RadioLandBrushAction"); 701 S32 dozer_mode = gSavedSettings.getS32("RadioLandBrushAction");
697 S32 dozer_size = gSavedSettings.getS32("RadioLandBrushSize");
698 702
699 if (mRadioDozerFlatten) 703 if (mRadioDozerFlatten)
700 { 704 {
@@ -726,20 +730,21 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask)
726 mRadioDozerRevert ->set( tool == LLToolBrushLand::getInstance() && dozer_mode == 5); 730 mRadioDozerRevert ->set( tool == LLToolBrushLand::getInstance() && dozer_mode == 5);
727 mRadioDozerRevert ->setVisible( land_visible ); 731 mRadioDozerRevert ->setVisible( land_visible );
728 } 732 }
729 if (mComboDozerSize)
730 {
731 mComboDozerSize ->setCurrentByIndex(dozer_size);
732 mComboDozerSize ->setVisible( land_visible );
733 mComboDozerSize ->setEnabled( tool == LLToolBrushLand::getInstance() );
734 }
735 if (mBtnApplyToSelection) 733 if (mBtnApplyToSelection)
736 { 734 {
737 mBtnApplyToSelection->setVisible( land_visible ); 735 mBtnApplyToSelection->setVisible( land_visible );
738 mBtnApplyToSelection->setEnabled( land_visible && !LLViewerParcelMgr::getInstance()->selectionEmpty() && tool != LLToolSelectLand::getInstance()); 736 mBtnApplyToSelection->setEnabled( land_visible && !LLViewerParcelMgr::getInstance()->selectionEmpty() && tool != LLToolSelectLand::getInstance());
739 } 737 }
740 if (mCheckShowOwners) 738 if (mSliderDozerSize)
741 { 739 {
742 mCheckShowOwners ->setVisible( land_visible ); 740 mSliderDozerSize ->setVisible( land_visible );
741 childSetVisible("Brush:", land_visible);
742 childSetVisible("Brush Size:", land_visible);
743 }
744 if (mSliderDozerForce)
745 {
746 mSliderDozerForce ->setVisible( land_visible );
747 childSetVisible("Force:", land_visible);
743 } 748 }
744 749
745 // 750 //
@@ -920,25 +925,27 @@ void click_popup_rotate_right(void*)
920 925
921void click_popup_dozer_mode(LLUICtrl *, void *user) 926void click_popup_dozer_mode(LLUICtrl *, void *user)
922{ 927{
923 S32 show_owners = gSavedSettings.getBOOL("ShowParcelOwners");
924 S32 mode = (S32)(intptr_t) user; 928 S32 mode = (S32)(intptr_t) user;
925 gFloaterTools->setEditTool( LLToolBrushLand::getInstance() ); 929 gFloaterTools->setEditTool( LLToolBrushLand::getInstance() );
926 gSavedSettings.setS32("RadioLandBrushAction", mode); 930 gSavedSettings.setS32("RadioLandBrushAction", mode);
927 gSavedSettings.setBOOL("ShowParcelOwners", show_owners);
928} 931}
929 932
930void click_popup_dozer_size(LLUICtrl *, void *user) 933void commit_slider_dozer_size(LLUICtrl *ctrl, void*)
931{ 934{
932 S32 size = (S32)(intptr_t) user; 935 S32 size = (S32)ctrl->getValue().asInteger();
933 gSavedSettings.setS32("RadioLandBrushSize", size); 936 gSavedSettings.setS32("LandBrushSize", size);
934} 937}
935 938
936void click_dozer_size(LLUICtrl *ctrl, void *user) 939void commit_slider_dozer_force(LLUICtrl *ctrl, void*)
937{ 940{
938 S32 size = ((LLComboBox*) ctrl)->getCurrentIndex(); 941 // the slider is logarithmic, so we exponentiate to get the actual force multiplier
939 gSavedSettings.setS32("RadioLandBrushSize", size); 942 F32 dozer_force = pow(10.f, (F32)ctrl->getValue().asReal());
943 gSavedSettings.setF32("LandBrushForce", dozer_force);
940} 944}
941 945
946
947
948
942void click_apply_to_selection(void* user) 949void click_apply_to_selection(void* user)
943{ 950{
944 LLToolBrushLand::getInstance()->modifyLandInSelectionGlobal(); 951 LLToolBrushLand::getInstance()->modifyLandInSelectionGlobal();
diff --git a/linden/indra/newview/llfloatertools.h b/linden/indra/newview/llfloatertools.h
index b0a804b..3d8a144 100644
--- a/linden/indra/newview/llfloatertools.h
+++ b/linden/indra/newview/llfloatertools.h
@@ -48,6 +48,7 @@ class LLPanelContents;
48class LLPanelFace; 48class LLPanelFace;
49class LLPanelLandInfo; 49class LLPanelLandInfo;
50class LLComboBox; 50class LLComboBox;
51class LLSlider;
51class LLParcelSelection; 52class LLParcelSelection;
52class LLObjectSelection; 53class LLObjectSelection;
53 54
@@ -167,10 +168,10 @@ public:
167 LLCheckBoxCtrl *mRadioDozerSmooth; 168 LLCheckBoxCtrl *mRadioDozerSmooth;
168 LLCheckBoxCtrl *mRadioDozerNoise; 169 LLCheckBoxCtrl *mRadioDozerNoise;
169 LLCheckBoxCtrl *mRadioDozerRevert; 170 LLCheckBoxCtrl *mRadioDozerRevert;
171 LLSlider *mSliderDozerSize;
172 LLSlider *mSliderDozerForce;
170 173
171 LLComboBox *mComboDozerSize;
172 LLButton *mBtnApplyToSelection; 174 LLButton *mBtnApplyToSelection;
173 LLCheckBoxCtrl *mCheckShowOwners;
174 175
175 std::vector<LLButton*> mButtons;//[ 15 ]; 176 std::vector<LLButton*> mButtons;//[ 15 ];
176 177
diff --git a/linden/indra/newview/llpanelland.cpp b/linden/indra/newview/llpanelland.cpp
index be05703..1a7892d 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//
74LLPanelLandInfo::LLPanelLandInfo(const std::string& name) 81LLPanelLandInfo::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
267void 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
54protected: 56protected:
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
61protected: 64protected:
62 //LLTextBox* mTextPriceLabel; 65 //LLTextBox* mTextPriceLabel;
diff --git a/linden/indra/newview/lltoolbrush.cpp b/linden/indra/newview/lltoolbrush.cpp
index 89cb0b6..0291eab 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
102void LLToolBrushLand::modifyLandAtPointGlobal(const LLVector3d &pos_global, 102void LLToolBrushLand::modifyLandAtPointGlobal(const LLVector3d &pos_global,
@@ -154,7 +154,7 @@ void LLToolBrushLand::modifyLandAtPointGlobal(const LLVector3d &pos_global,
154 regionp->forceUpdate(); 154 regionp->forceUpdate();
155 155
156 // tell the simulator what we've done 156 // tell the simulator what we've done
157 F32 seconds = 1.0f / gFPSClamped; 157 F32 seconds = (1.0f / gFPSClamped) * gSavedSettings.getF32("LandBrushForce");
158 F32 x_pos = (F32)pos_region.mV[VX]; 158 F32 x_pos = (F32)pos_region.mV[VX];
159 F32 y_pos = (F32)pos_region.mV[VY]; 159 F32 y_pos = (F32)pos_region.mV[VY];
160 U8 brush_size = (U8)mBrushIndex; 160 U8 brush_size = (U8)mBrushIndex;
@@ -242,7 +242,7 @@ void LLToolBrushLand::modifyLandInSelectionGlobal()
242 242
243 min_region.clamp(0.f, regionp->getWidth()); 243 min_region.clamp(0.f, regionp->getWidth());
244 max_region.clamp(0.f, regionp->getWidth()); 244 max_region.clamp(0.f, regionp->getWidth());
245 F32 seconds = 1.0f; 245 F32 seconds = gSavedSettings.getF32("LandBrushForce");
246 246
247 LLSurface &land = regionp->getLand(); 247 LLSurface &land = regionp->getLand();
248 char action = E_LAND_LEVEL; 248 char action = E_LAND_LEVEL;
@@ -251,21 +251,23 @@ void LLToolBrushLand::modifyLandInSelectionGlobal()
251 case 0: 251 case 0:
252 // // average toward mStartingZ 252 // // average toward mStartingZ
253 action = E_LAND_LEVEL; 253 action = E_LAND_LEVEL;
254 seconds = 1.f; 254 seconds *= 0.25f;
255 break; 255 break;
256 case 1: 256 case 1:
257 action = E_LAND_RAISE; 257 action = E_LAND_RAISE;
258 seconds *= 0.25f;
258 break; 259 break;
259 case 2: 260 case 2:
260 action = E_LAND_LOWER; 261 action = E_LAND_LOWER;
262 seconds *= 0.25f;
261 break; 263 break;
262 case 3: 264 case 3:
263 action = E_LAND_SMOOTH; 265 action = E_LAND_SMOOTH;
264 seconds = 10.f; 266 seconds *= 5.0f;
265 break; 267 break;
266 case 4: 268 case 4:
267 action = E_LAND_NOISE; 269 action = E_LAND_NOISE;
268 seconds = 0.5f; 270 seconds *= 0.5f;
269 break; 271 break;
270 case 5: 272 case 5:
271 action = E_LAND_REVERT; 273 action = E_LAND_REVERT;
@@ -445,7 +447,7 @@ void LLToolBrushLand::render()
445 spot.mdV[VX] = floor( spot.mdV[VX] + 0.5 ); 447 spot.mdV[VX] = floor( spot.mdV[VX] + 0.5 );
446 spot.mdV[VY] = floor( spot.mdV[VY] + 0.5 ); 448 spot.mdV[VY] = floor( spot.mdV[VY] + 0.5 );
447 449
448 mBrushIndex = gSavedSettings.getS32("RadioLandBrushSize"); 450 mBrushIndex = gSavedSettings.getS32("LandBrushSize");
449 region_list_t regions; 451 region_list_t regions;
450 determineAffectedRegions(regions, spot); 452 determineAffectedRegions(regions, spot);
451 453
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 c7ec62f..4bf5ff1 100644
--- a/linden/indra/newview/skins/default/xui/en-us/alerts.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/alerts.xml
@@ -1996,6 +1996,19 @@ Join land?
1996 Cancel 1996 Cancel
1997 </option> 1997 </option>
1998 </alert> 1998 </alert>
1999 <alert name="ShowOwnersHelp">
2000 <message name="message">
2001 If this box is checked, land parcels will be
2002overlaid with a color indicating their status.
2003
2004Red: Land owned by others.
2005Green: Your land.
2006Aqua: Land owned by a group that you are a member of.
2007Yellow: For sale.
2008Purple: Land in the auction system.
2009Grey: Rare public land.
2010 </message>
2011 </alert>
1999 <alert modal="true" name="ConfirmNotecardSave"> 2012 <alert modal="true" name="ConfirmNotecardSave">
2000 <message name="message"> 2013 <message name="message">
2001 This notecard needs to be saved before the item can be copied or viewed. Save notecard? 2014 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_tools.xml b/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml
index c98c2ac..b5e36f6 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml
@@ -245,46 +245,65 @@
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
270 max_chars="20" mouse_opaque="true" name="combobox brush size" width="134"> 270
271 <combo_item name="Small" value="Small"> 271 <button bottom="-74" follows="left|top" font="SansSerifSmall" halign="center"
272 Small 272 height="20" label="Apply to selection" label_selected="Apply to selection"
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 <button bottom_delta="-20" follows="left|top" font="SansSerifSmall" halign="center"
282 height="16" label="Apply to selection" label_selected="Apply to selection"
283 left="118" mouse_opaque="true" name="button apply to selection" 273 left="118" mouse_opaque="true" name="button apply to selection"
284 scale_image="TRUE" tool_tip="Modify Selected Land" width="134" /> 274 scale_image="TRUE" tool_tip="Modify Selected Land" width="134" />
285 <check_box bottom_delta="-20" control_name="ShowParcelOwners" follows="left|top" 275
286 font="SansSerifSmall" height="16" initial_value="false" label="Show Owners" 276
287 left="118" mouse_opaque="true" name="checkbox show owners" width="134" /> 277
278 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false"
279 border_visible="false" bottom_delta="-16" drop_shadow_visible="true" enabled="true"
280 follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" height="12" left="118"
281 hidden="false" mouse_opaque="true" name="Brush:" v_pad="0" width="100">
282 Brush:
283 </text>
284
285 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false"
286 border_visible="false" bottom_delta="-18" drop_shadow_visible="true" enabled="true"
287 follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" height="12" left="132"
288 hidden="false" mouse_opaque="true" name="Brush Size:" v_pad="0" width="100">
289 Size
290 </text>
291 <volume_slider bottom_delta="-4" follows="left|top" height="16" hidden="false"
292 increment="1.0" initial_val="0.0" left="178" max_val="2.0" min_val="0.0"
293 mouse_opaque="true" name="slider brush size" width="80" />
294
295
296 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false"
297 border_visible="false" bottom_delta="-18" drop_shadow_visible="true" enabled="true"
298 follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" height="12" left="132"
299 hidden="false" mouse_opaque="true" name="Strength:" v_pad="0" width="100">
300 Strength
301 </text>
302 <volume_slider bottom_delta="-4" follows="left|top" height="16" hidden="false"
303 increment="0.1" initial_val="0.00" left="178" max_val="2.0" min_val="-1.0"
304 mouse_opaque="true" name="slider force" width="80" />
305
306
288 <button bottom="-163" follows="left|top" font="SansSerifSmall" halign="center" 307 <button bottom="-163" follows="left|top" font="SansSerifSmall" halign="center"
289 height="20" label="More &gt;&gt;" left="186" mouse_opaque="true" 308 height="20" label="More &gt;&gt;" left="186" mouse_opaque="true"
290 name="button more" scale_image="TRUE" tool_tip="Advanced Options" 309 name="button more" scale_image="TRUE" tool_tip="Advanced Options"
@@ -1176,34 +1195,59 @@
1176 <panel bottom="-550" follows="left|top" height="384" left="0" mouse_opaque="true" 1195 <panel bottom="-550" follows="left|top" height="384" left="0" mouse_opaque="true"
1177 name="land info panel" width="272"> 1196 name="land info panel" width="272">
1178 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 1197 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
1179 bottom="-18" drop_shadow_visible="true" follows="left|top" 1198 bottom="-40" drop_shadow_visible="true" follows="left|top"
1180 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4" 1199 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="40"
1200 mouse_opaque="true" name="label_parcel_modify" v_pad="0" width="150">
1201 Modify Parcel
1202 </text>
1203 <button bottom_delta="-24" follows="left|top" font="SansSerif" halign="center"
1204 height="20" label="Subdivide..." label_selected="Subdivide..." left="48"
1205 mouse_opaque="true" name="button subdivide land" scale_image="TRUE"
1206 width="112" />
1207 <button bottom_delta="-24" follows="left|top" font="SansSerif" halign="center"
1208 height="20" label="Join..." label_selected="Join..." left="48"
1209 mouse_opaque="true" name="button join land" scale_image="TRUE" width="112" />
1210 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
1211 bottom_delta="-56" drop_shadow_visible="true" follows="left|top"
1212 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="40"
1213 mouse_opaque="true" name="label_parcel_info" v_pad="0" width="150">
1214 Parcel Information
1215 </text>
1216 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
1217 bottom_delta="-24" drop_shadow_visible="true" follows="left|top"
1218 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="48"
1181 mouse_opaque="true" name="label_area_price" v_pad="0" width="150"> 1219 mouse_opaque="true" name="label_area_price" v_pad="0" width="150">
1182 Price: L$[PRICE] for [AREA] sq. m. 1220 Price: L$[PRICE] for [AREA] sq. m.
1183 </text> 1221 </text>
1184 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 1222 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
1185 bottom_delta="0" drop_shadow_visible="true" follows="left|top" 1223 bottom_delta="0" drop_shadow_visible="true" follows="left|top"
1186 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4" 1224 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="48"
1187 mouse_opaque="true" name="label_area" v_pad="0" width="128"> 1225 mouse_opaque="true" name="label_area" v_pad="0" width="150">
1188 Area: [AREA] sq. m. 1226 Area: [AREA] sq. m.
1189 </text> 1227 </text>
1190 <button bottom_delta="-38" follows="left|top" font="SansSerif" halign="center"
1191 height="20" label="Buy Land..." label_selected="Buy Land..." left="76"
1192 mouse_opaque="true" name="button buy land" scale_image="TRUE" width="102" />
1193 <button bottom_delta="-24" follows="left|top" font="SansSerif" halign="center" 1228 <button bottom_delta="-24" follows="left|top" font="SansSerif" halign="center"
1194 height="20" label="Abandon Land..." label_selected="Abandon Land..." 1229 height="20" label="About Land..." label_selected="About Land..." left="48"
1195 left="76" mouse_opaque="true" name="button abandon land" scale_image="TRUE" 1230 mouse_opaque="true" name="button about land" scale_image="TRUE" width="112" />
1196 width="102" /> 1231 <check_box bottom_delta="-24" control_name="ShowParcelOwners" follows="left|top"
1232 tool_tip="Colour parcels according to their status" font="SansSerifSmall"
1233 height="16" initial_value="false" label="Show Status" left="48"
1234 mouse_opaque="true" name="checkbox show owners" width="100" />
1235 <button bottom_delta="0" follows="left|top" font="SansSerif" halign="center"
1236 height="18" label="?" label_selected="?" left_delta="94"
1237 mouse_opaque="true" name="button show owners help" width="18" />
1238 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
1239 bottom_delta="-56" drop_shadow_visible="true" follows="left|top"
1240 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="40"
1241 mouse_opaque="true" name="label_parcel_trans" v_pad="0" width="150">
1242 Land Transactions
1243 </text>
1197 <button bottom_delta="-24" follows="left|top" font="SansSerif" halign="center" 1244 <button bottom_delta="-24" follows="left|top" font="SansSerif" halign="center"
1198 height="20" label="Subdivide..." label_selected="Subdivide..." left="76" 1245 height="20" label="Buy Land..." label_selected="Buy Land..." left="48"
1199 mouse_opaque="true" name="button subdivide land" scale_image="TRUE" 1246 mouse_opaque="true" name="button buy land" scale_image="TRUE" width="112" />
1200 width="102" />
1201 <button bottom_delta="-24" follows="left|top" font="SansSerif" halign="center" 1247 <button bottom_delta="-24" follows="left|top" font="SansSerif" halign="center"
1202 height="20" label="Join..." label_selected="Join..." left="76" 1248 height="20" label="Abandon Land..." label_selected="Abandon Land..."
1203 mouse_opaque="true" name="button join land" scale_image="TRUE" width="102" /> 1249 left="48" mouse_opaque="true" name="button abandon land" scale_image="TRUE"
1204 <button bottom_delta="-40" follows="left|top" font="SansSerif" halign="center" 1250 width="112" />
1205 height="20" label="About Land..." label_selected="About Land..." left="76"
1206 mouse_opaque="true" name="button about land" scale_image="TRUE" width="102" />
1207 </panel> 1251 </panel>
1208 <string name="status_rotate"> 1252 <string name="status_rotate">
1209 Drag colored bands to rotate object 1253 Drag colored bands to rotate object