Move "Advanced Camera View" into Preferences -> Move & View -> View and make things work properly
parent
efa8baca1d
commit
0f20304d76
|
|
@ -1010,6 +1010,9 @@ void LLFloaterPreference::apply()
|
|||
|
||||
// <FS:Ansariel> Fix resetting graphics preset on cancel; Save preset here because cancel() gets called in either way!
|
||||
saveGraphicsPreset(gSavedSettings.getString("PresetGraphicActive"));
|
||||
|
||||
// <FS:Ansariel> Fix resetting camera preset on cancel
|
||||
saveCameraPreset(gSavedSettings.getString("PresetCameraActive"));
|
||||
}
|
||||
|
||||
void LLFloaterPreference::cancel()
|
||||
|
|
@ -1069,6 +1072,14 @@ void LLFloaterPreference::cancel()
|
|||
gSavedSettings.setString("PresetGraphicActive", mSavedGraphicsPreset);
|
||||
LLPresetsManager::getInstance()->triggerChangeSignal();
|
||||
}
|
||||
|
||||
// <FS:Ansariel> Fix resetting camera preset on cancel
|
||||
if (mSavedCameraPreset != gSavedSettings.getString("PresetCameraActive"))
|
||||
{
|
||||
gSavedSettings.setString("PresetCameraActive", mSavedCameraPreset);
|
||||
LLPresetsManager::getInstance()->triggerChangeCameraSignal();
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
|
||||
void LLFloaterPreference::onOpen(const LLSD& key)
|
||||
|
|
@ -1230,6 +1241,9 @@ void LLFloaterPreference::onOpen(const LLSD& key)
|
|||
// <FS:Ansariel> Fix resetting graphics preset on cancel
|
||||
saveGraphicsPreset(gSavedSettings.getString("PresetGraphicActive"));
|
||||
|
||||
// <FS:Ansariel> Fix resetting camera preset on cancel
|
||||
saveCameraPreset(gSavedSettings.getString("PresetCameraActive"));
|
||||
|
||||
// <FS:Ansariel> FIRE-19810: Make presets global since PresetGraphicActive setting is global as well
|
||||
//bool started = (LLStartUp::getStartupState() == STATE_STARTED);
|
||||
|
||||
|
|
@ -4154,6 +4168,27 @@ BOOL LLPanelPreferenceView::postBuild()
|
|||
presetsMgr->createMissingDefault(PRESETS_CAMERA); // a no-op after the first time, but that's ok
|
||||
}
|
||||
|
||||
// <FS:Ansariel> Hook up camera and focus spin controls
|
||||
mSpinnerCameraX = getChild<LLSpinCtrl>("camera_x");
|
||||
mSpinnerCameraY = getChild<LLSpinCtrl>("camera_y");
|
||||
mSpinnerCameraZ = getChild<LLSpinCtrl>("camera_z");
|
||||
mSpinnerFocusX = getChild<LLSpinCtrl>("focus_x");
|
||||
mSpinnerFocusY = getChild<LLSpinCtrl>("focus_y");
|
||||
mSpinnerFocusZ = getChild<LLSpinCtrl>("focus_z");
|
||||
|
||||
mSpinnerCameraX->setCommitCallback(boost::bind(&LLPanelPreferenceView::onChangeCameraX, this));
|
||||
mSpinnerCameraY->setCommitCallback(boost::bind(&LLPanelPreferenceView::onChangeCameraY, this));
|
||||
mSpinnerCameraZ->setCommitCallback(boost::bind(&LLPanelPreferenceView::onChangeCameraZ, this));
|
||||
mSpinnerFocusX->setCommitCallback(boost::bind(&LLPanelPreferenceView::onChangeFocusX, this));
|
||||
mSpinnerFocusY->setCommitCallback(boost::bind(&LLPanelPreferenceView::onChangeFocusY, this));
|
||||
mSpinnerFocusZ->setCommitCallback(boost::bind(&LLPanelPreferenceView::onChangeFocusZ, this));
|
||||
|
||||
gSavedSettings.getControl("CameraOffsetRearView")->getSignal()->connect(boost::bind(&LLPanelPreferenceView::refreshCameraSettings, this));
|
||||
gSavedSettings.getControl("FocusOffsetRearView")->getSignal()->connect(boost::bind(&LLPanelPreferenceView::refreshCameraSettings, this));
|
||||
|
||||
refreshCameraSettings();
|
||||
// </FS:Ansariel>
|
||||
|
||||
return LLPanelPreference::postBuild();
|
||||
}
|
||||
|
||||
|
|
@ -4167,42 +4202,47 @@ void LLPanelPreferenceView::onPresetsListChangeCamera()
|
|||
|
||||
setPresetText();
|
||||
|
||||
LLFloaterPreference* instance = LLFloaterReg::findTypedInstance<LLFloaterPreference>("preferences");
|
||||
if (instance && !gSavedSettings.getString("PresetCameraActive").empty())
|
||||
{
|
||||
instance->saveSettings(); //make cancel work correctly after changing the preset
|
||||
}
|
||||
// <FS:Ansariel> Fix resetting camera preset on cancel
|
||||
//LLFloaterPreference* instance = LLFloaterReg::findTypedInstance<LLFloaterPreference>("preferences");
|
||||
//if (instance && !gSavedSettings.getString("PresetCameraActive").empty())
|
||||
//{
|
||||
// instance->saveSettings(); //make cancel work correctly after changing the preset
|
||||
//}
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
|
||||
void LLPanelPreferenceView::draw()
|
||||
{
|
||||
setPresetText();
|
||||
// <FS:Ansariel> Fix resetting camera preset on cancel
|
||||
//setPresetText();
|
||||
LLPanelPreference::draw();
|
||||
}
|
||||
|
||||
void LLPanelPreferenceView::setPresetText()
|
||||
{
|
||||
LLTextBox* preset_text = getChild<LLTextBox>("preset_camera_text");
|
||||
static LLTextBox* preset_text = getChild<LLTextBox>("preset_camera_text");
|
||||
|
||||
std::string preset_camera_active = gSavedSettings.getString("PresetCameraActive");
|
||||
|
||||
if (!preset_camera_active.empty() && preset_camera_active != preset_text->getText())
|
||||
{
|
||||
LLFloaterPreference* instance = LLFloaterReg::findTypedInstance<LLFloaterPreference>("preferences");
|
||||
if (instance)
|
||||
{
|
||||
instance->saveCameraPreset(preset_camera_active);
|
||||
}
|
||||
}
|
||||
// <FS:Ansariel> Fix resetting camera preset on cancel
|
||||
//if (!preset_camera_active.empty() && preset_camera_active != preset_text->getText())
|
||||
//{
|
||||
// LLFloaterPreference* instance = LLFloaterReg::findTypedInstance<LLFloaterPreference>("preferences");
|
||||
// if (instance)
|
||||
// {
|
||||
// instance->saveCameraPreset(preset_camera_active);
|
||||
// }
|
||||
//}
|
||||
|
||||
LLPresetsManager* presetsMgr = LLPresetsManager::getInstance();
|
||||
if (presetsMgr)
|
||||
{
|
||||
if (presetsMgr->isCameraDirty() && !preset_camera_active.empty())
|
||||
{
|
||||
preset_camera_active.clear();
|
||||
}
|
||||
}
|
||||
//LLPresetsManager* presetsMgr = LLPresetsManager::getInstance();
|
||||
//if (presetsMgr)
|
||||
//{
|
||||
// if (presetsMgr->isCameraDirty() && !preset_camera_active.empty())
|
||||
// {
|
||||
// preset_camera_active.clear();
|
||||
// }
|
||||
//}
|
||||
// </FS:Ansariel>
|
||||
|
||||
if (!preset_camera_active.empty())
|
||||
{
|
||||
|
|
@ -4218,6 +4258,69 @@ void LLPanelPreferenceView::setPresetText()
|
|||
}
|
||||
}
|
||||
|
||||
// <FS:Ansariel> Hook up camera and focus spin controls
|
||||
void LLPanelPreferenceView::onChangeCameraX()
|
||||
{
|
||||
LLVector3 camera = gSavedSettings.getVector3("CameraOffsetRearView");
|
||||
camera.mV[VX] = mSpinnerCameraX->getValueF32();
|
||||
mSpinnerCameraX->setValue(camera.mV[VX]);
|
||||
gSavedSettings.setVector3("CameraOffsetRearView", camera);
|
||||
}
|
||||
|
||||
void LLPanelPreferenceView::onChangeCameraY()
|
||||
{
|
||||
LLVector3 camera = gSavedSettings.getVector3("CameraOffsetRearView");
|
||||
camera.mV[VY] = mSpinnerCameraY->getValueF32();
|
||||
mSpinnerCameraY->setValue(camera.mV[VY]);
|
||||
gSavedSettings.setVector3("CameraOffsetRearView", camera);
|
||||
}
|
||||
|
||||
void LLPanelPreferenceView::onChangeCameraZ()
|
||||
{
|
||||
LLVector3 camera = gSavedSettings.getVector3("CameraOffsetRearView");
|
||||
camera.mV[VZ] = mSpinnerCameraZ->getValueF32();
|
||||
mSpinnerCameraZ->setValue(camera.mV[VZ]);
|
||||
gSavedSettings.setVector3("CameraOffsetRearView", camera);
|
||||
}
|
||||
|
||||
void LLPanelPreferenceView::onChangeFocusX()
|
||||
{
|
||||
LLVector3d focus = gSavedSettings.getVector3d("FocusOffsetRearView");
|
||||
focus.mdV[VX] = mSpinnerFocusX->getValueF32();
|
||||
mSpinnerFocusX->setValue(focus.mdV[VX]);
|
||||
gSavedSettings.setVector3d("FocusOffsetRearView", focus);
|
||||
}
|
||||
|
||||
void LLPanelPreferenceView::onChangeFocusY()
|
||||
{
|
||||
LLVector3d focus = gSavedSettings.getVector3d("FocusOffsetRearView");
|
||||
focus.mdV[VY] = mSpinnerFocusY->getValueF32();
|
||||
mSpinnerFocusY->setValue(focus.mdV[VY]);
|
||||
gSavedSettings.setVector3d("FocusOffsetRearView", focus);
|
||||
}
|
||||
|
||||
void LLPanelPreferenceView::onChangeFocusZ()
|
||||
{
|
||||
LLVector3d focus = gSavedSettings.getVector3d("FocusOffsetRearView");
|
||||
focus.mdV[VZ] = mSpinnerFocusZ->getValueF32();
|
||||
mSpinnerFocusZ->setValue(focus.mdV[VZ]);
|
||||
gSavedSettings.setVector3d("FocusOffsetRearView", focus);
|
||||
}
|
||||
|
||||
void LLPanelPreferenceView::refreshCameraSettings()
|
||||
{
|
||||
LLVector3 camera = gSavedSettings.getVector3("CameraOffsetRearView");
|
||||
mSpinnerCameraX->setValue(camera.mV[VX]);
|
||||
mSpinnerCameraY->setValue(camera.mV[VY]);
|
||||
mSpinnerCameraZ->setValue(camera.mV[VZ]);
|
||||
|
||||
LLVector3d focus = gSavedSettings.getVector3d("FocusOffsetRearView");
|
||||
mSpinnerFocusX->setValue(focus.mdV[VX]);
|
||||
mSpinnerFocusY->setValue(focus.mdV[VY]);
|
||||
mSpinnerFocusZ->setValue(focus.mdV[VZ]);
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
|
||||
BOOL LLPanelPreferenceGraphics::postBuild()
|
||||
{
|
||||
// <FS:Ansariel> Improved graphics preferences
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ class LLSD;
|
|||
class LLTextBox;
|
||||
class LLComboBox;
|
||||
class LLLineEditor;
|
||||
class LLSpinCtrl;
|
||||
|
||||
typedef std::map<std::string, std::string> notifications_map;
|
||||
|
||||
|
|
@ -368,6 +369,24 @@ public:
|
|||
private:
|
||||
void onPresetsListChangeCamera();
|
||||
LOG_CLASS(LLPanelPreferenceView);
|
||||
|
||||
// <FS:Ansariel> Hook up camera and focus spin controls
|
||||
LLSpinCtrl* mSpinnerCameraX;
|
||||
LLSpinCtrl* mSpinnerCameraY;
|
||||
LLSpinCtrl* mSpinnerCameraZ;
|
||||
LLSpinCtrl* mSpinnerFocusX;
|
||||
LLSpinCtrl* mSpinnerFocusY;
|
||||
LLSpinCtrl* mSpinnerFocusZ;
|
||||
|
||||
void onChangeCameraX();
|
||||
void onChangeCameraY();
|
||||
void onChangeCameraZ();
|
||||
void onChangeFocusX();
|
||||
void onChangeFocusY();
|
||||
void onChangeFocusZ();
|
||||
|
||||
void refreshCameraSettings();
|
||||
// </FS:Ansariel>
|
||||
};
|
||||
|
||||
class LLPanelPreferenceGraphics : public LLPanelPreference
|
||||
|
|
|
|||
|
|
@ -66,7 +66,8 @@ BOOL LLPanelPresetsCameraPulldown::postBuild()
|
|||
// Make sure there is a default preference file
|
||||
presetsMgr->createMissingDefault(PRESETS_CAMERA);
|
||||
|
||||
presetsMgr->startWatching(PRESETS_CAMERA);
|
||||
// <FS:Ansariel> Done in LLPresetsManager ctor
|
||||
//presetsMgr->startWatching(PRESETS_CAMERA);
|
||||
|
||||
presetsMgr->setPresetListChangeCameraCallback(boost::bind(&LLPanelPresetsCameraPulldown::populatePanel, this));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,6 +52,10 @@ LLPresetsManager::LLPresetsManager()
|
|||
// This works, because the LLPresetsManager instance is created in the
|
||||
// STATE_WORLD_INIT phase during startup when the status bar is initialized
|
||||
initGraphicPresetControls();
|
||||
|
||||
// <FS:Ansariel> Start watching camera controls as soon as the preset
|
||||
// manager gets initialized
|
||||
startWatching(PRESETS_CAMERA);
|
||||
}
|
||||
|
||||
LLPresetsManager::~LLPresetsManager()
|
||||
|
|
@ -280,7 +284,7 @@ bool LLPresetsManager::savePreset(const std::string& subdirectory, std::string n
|
|||
}
|
||||
else if(PRESETS_CAMERA == subdirectory)
|
||||
{
|
||||
gSavedSettings.setString("PresetGraphicActive", name);
|
||||
gSavedSettings.setString("PresetCameraActive", name);
|
||||
|
||||
name_list.clear();
|
||||
getControlNames(name_list);
|
||||
|
|
|
|||
|
|
@ -3,10 +3,19 @@
|
|||
<tab_container label="Move and View" name="tabs">
|
||||
<!--View-->
|
||||
<panel label="Ansicht" name="tab-view">
|
||||
<text name="preset_camera_label" width="130">
|
||||
Aktuelle Voreinstellung:
|
||||
</text>
|
||||
<slider label="Sichtwinkel" name="camera_fov"/>
|
||||
<slider label="Abstand" name="camera_offset_scale"/>
|
||||
<slider label="Übergangszeit" name="camera_transition_time"/>
|
||||
<slider label="Glättung" name="camera_position_smoothing"/>
|
||||
<text name="camera_offset_label" tool_tip="Initialer Kamera-Abstand vom Avatar in der Rückansicht">
|
||||
Kamera-Abstand:
|
||||
</text>
|
||||
<text name="camera_focus_offset_label" tool_tip="Initialer Fokuspunkt-Abstand relativ zum Avatar für die Kamera in der Rückansicht (X-Achse ist vorwärts)">
|
||||
Fokus-Abstand:
|
||||
</text>
|
||||
<check_box label="Kamerabeschränkungen aufheben" name="DisableCameraConstraints" tool_tip="Erlaubt die Bewegungen der Kamera außerhalb der normalen Grenzen und der Erdoberfläche"/>
|
||||
<check_box label="Mausrad nicht zum Zoomen verwenden" name="FSDisableMouseWheelCameraZoom"/>
|
||||
<text name="heading2">
|
||||
|
|
@ -16,6 +25,12 @@
|
|||
<check_box label="Aussehen" name="appearance_camera_movement" tool_tip="Automatische Kamerapositionierung im Bearbeitenmodus verwenden"/>
|
||||
<check_box label="Zusätzliche Beleuchtung" name="EditAppearanceLighting" tool_tip="Aktiviert die zusätzliche Beleuchtung, wenn die Form des Avatars bearbeitet wird."/>
|
||||
<check_box label="Visuelle Hilfen" name="FSAppearanceShowHints" tool_tip="Aktiviert die visuellen Hilfen, die die Teile des Avatars anzeigen, die modifiziert werden."/>
|
||||
<text name="presets_buttons_label" width="100">
|
||||
Voreinstellungen:
|
||||
</text>
|
||||
<button label="Speichern" name="PrefCameraSaveButton"/>
|
||||
<button label="Laden" name="PrefCameraLoadButton"/>
|
||||
<button label="Löschen" name="PrefCameraDeleteButton"/>
|
||||
<check_box label="Klick auf Avatar hält Kameraposition" name="clickonavatarkeepscamera" tool_tip="Normalerweise wird die Kameraposition beim Anklicken des Avatars zurückgesetzt. Diese Option verhindert dieses Verhalten."/>
|
||||
<check_box label="Kameraposition nach Teleport zurücksetzen (innerhalb einer Region)" name="FSResetCameraOnTP" tool_tip="Normalerweise wird die Kameraposition beim Teleportieren zurückgesetzt. Diese Option verhindert dieses Verhalten."/>
|
||||
<check_box label="Kameraposition bei Avatarbewegung zurücksetzen" name="FSResetCameraOnMovement"/>
|
||||
|
|
|
|||
|
|
@ -146,13 +146,6 @@ https://accounts.secondlife.com/change_email/
|
|||
layout="topleft"
|
||||
help_topic="preferences_move_tab"
|
||||
name="move" />
|
||||
<panel
|
||||
class="panel_preference_view"
|
||||
filename="panel_preferences_view.xml"
|
||||
label="View"
|
||||
layout="topleft"
|
||||
help_topic="preferences_view_tab"
|
||||
name="view" />
|
||||
<panel
|
||||
class="panel_preference"
|
||||
filename="panel_preferences_alerts.xml"
|
||||
|
|
|
|||
|
|
@ -39,8 +39,27 @@
|
|||
mouse_opaque="false"
|
||||
visible="true"
|
||||
width="18"
|
||||
left="20"
|
||||
left="10"
|
||||
top="10"/>
|
||||
<text
|
||||
follows="top|left|right"
|
||||
height="16"
|
||||
layout="topleft"
|
||||
left="38"
|
||||
name="preset_camera_label"
|
||||
top_delta="0"
|
||||
width="75">
|
||||
Preset in use:
|
||||
</text>
|
||||
<text
|
||||
follows="top|left|right"
|
||||
height="16"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
name="preset_camera_text"
|
||||
width="120">
|
||||
(None)
|
||||
</text>
|
||||
<slider
|
||||
can_edit_text="true"
|
||||
control_name="CameraAngle"
|
||||
|
|
@ -52,11 +71,12 @@
|
|||
layout="topleft"
|
||||
label_width="100"
|
||||
label="View angle"
|
||||
left_pad="20"
|
||||
left="38"
|
||||
max_val="2.97"
|
||||
min_val="0.17"
|
||||
name="camera_fov"
|
||||
show_text="true"
|
||||
top_pad="5"
|
||||
width="275" />
|
||||
<slider
|
||||
can_edit_text="true"
|
||||
|
|
@ -112,13 +132,99 @@
|
|||
show_text="true"
|
||||
width="275"
|
||||
top_pad="5"/>
|
||||
|
||||
<text
|
||||
follows="top|left|right"
|
||||
height="16"
|
||||
layout="topleft"
|
||||
left="322"
|
||||
name="camera_offset_label"
|
||||
tool_tip="Initial camera offset from avatar in Rear View"
|
||||
top="10"
|
||||
width="100">
|
||||
Camera offset:
|
||||
</text>
|
||||
<spinner
|
||||
height="20"
|
||||
label="X"
|
||||
label_width="10"
|
||||
follows="top|left"
|
||||
left="322"
|
||||
name="camera_x"
|
||||
top_pad="5"
|
||||
min_val="-1e+007"
|
||||
max_val="1e+007"
|
||||
width="67"/>
|
||||
<spinner
|
||||
height="20"
|
||||
label="Y"
|
||||
label_width="10"
|
||||
follows="top|left"
|
||||
name="camera_y"
|
||||
left_pad="4"
|
||||
min_val="-1e+007"
|
||||
max_val="1e+007"
|
||||
width="67"/>
|
||||
<spinner
|
||||
height="20"
|
||||
label="Z"
|
||||
label_width="10"
|
||||
follows="top|left"
|
||||
name="camera_z"
|
||||
left_pad="4"
|
||||
min_val="-1e+007"
|
||||
max_val="1e+007"
|
||||
width="67"/>
|
||||
<text
|
||||
follows="top|left|right"
|
||||
height="16"
|
||||
layout="topleft"
|
||||
left="322"
|
||||
name="camera_focus_offset_label"
|
||||
tool_tip="Initial focus point offset relative to avatar for the camera preset Rear View (x-axis is forward)"
|
||||
top_pad="18"
|
||||
width="100">
|
||||
Focus offset:
|
||||
</text>
|
||||
<spinner
|
||||
height="20"
|
||||
label="X"
|
||||
label_width="10"
|
||||
follows="top|left"
|
||||
left="322"
|
||||
name="focus_x"
|
||||
top_pad="5"
|
||||
min_val="-1e+007"
|
||||
max_val="1e+007"
|
||||
width="67"/>
|
||||
<spinner
|
||||
height="20"
|
||||
label="Y"
|
||||
label_width="10"
|
||||
follows="top|left"
|
||||
name="focus_y"
|
||||
left_pad="4"
|
||||
min_val="-1e+007"
|
||||
max_val="1e+007"
|
||||
width="67"/>
|
||||
<spinner
|
||||
height="20"
|
||||
label="Z"
|
||||
label_width="10"
|
||||
follows="top|left"
|
||||
name="focus_z"
|
||||
left_pad="4"
|
||||
min_val="-1e+007"
|
||||
max_val="1e+007"
|
||||
width="67"/>
|
||||
|
||||
<check_box
|
||||
control_name="DisableCameraConstraints"
|
||||
height="16"
|
||||
initial_value="true"
|
||||
label="Disable camera constraints"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
left="35"
|
||||
name="DisableCameraConstraints"
|
||||
tool_tip="Set this to move your camera beyond its normal bounds and below land level. If you are not good at moving the camera, more of your shots may be at bad angles."
|
||||
top_pad="10"
|
||||
|
|
@ -136,10 +242,10 @@
|
|||
type="string"
|
||||
length="1"
|
||||
height="10"
|
||||
left="80"
|
||||
left="55"
|
||||
name="heading2"
|
||||
width="300"
|
||||
top_pad="10">
|
||||
top_pad="8">
|
||||
Automatically pose avatar during (select one or more):
|
||||
</text>
|
||||
<check_box
|
||||
|
|
@ -183,7 +289,56 @@
|
|||
name="FSAppearanceShowHints"
|
||||
tool_tip="Enable or disable the visual hints showing the avatar parts being modified."
|
||||
width="150" />
|
||||
|
||||
<text
|
||||
follows="left|top"
|
||||
type="string"
|
||||
length="1"
|
||||
height="10"
|
||||
left="38"
|
||||
name="presets_buttons_label"
|
||||
width="50"
|
||||
top_pad="10">
|
||||
Presets:
|
||||
</text>
|
||||
<button
|
||||
follows="top|left"
|
||||
height="23"
|
||||
label="Save"
|
||||
layout="topleft"
|
||||
left_pad="5"
|
||||
name="PrefCameraSaveButton"
|
||||
top_delta="-4"
|
||||
width="115">
|
||||
<button.commit_callback
|
||||
function="Pref.PrefSave"
|
||||
parameter="camera" />
|
||||
</button>
|
||||
<button
|
||||
follows="top|left"
|
||||
height="23"
|
||||
label="Load"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
name="PrefCameraLoadButton"
|
||||
top_delta="0"
|
||||
width="115">
|
||||
<button.commit_callback
|
||||
function="Pref.PrefLoad"
|
||||
parameter="camera"/>
|
||||
</button>
|
||||
<button
|
||||
follows="top|left"
|
||||
height="23"
|
||||
label="Delete"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
name="PrefCameraDeleteButton"
|
||||
top_delta="0"
|
||||
width="115">
|
||||
<button.commit_callback
|
||||
function="Pref.PrefDelete"
|
||||
parameter="camera"/>
|
||||
</button>
|
||||
<check_box
|
||||
top_pad="10"
|
||||
follows="left|top"
|
||||
|
|
|
|||
Loading…
Reference in New Issue