Automated merge with file:///Users/oz/Work/viewer-development

master
Oz Linden 2010-11-19 17:03:05 -05:00
commit 3337ef16ce
22 changed files with 438 additions and 95 deletions

View File

@ -355,6 +355,7 @@ Joghert LeSabre
VWR-64
Jonathan Yap
VWR-17801
STORM-616
Kage Pixel
VWR-11
Ken March

View File

@ -445,6 +445,7 @@ set(viewer_SOURCE_FILES
lltoastimpanel.cpp
lltoastnotifypanel.cpp
lltoastpanel.cpp
lltoastscripttextbox.cpp
lltool.cpp
lltoolbrush.cpp
lltoolcomp.cpp
@ -975,6 +976,7 @@ set(viewer_HEADER_FILES
lltoastimpanel.h
lltoastnotifypanel.h
lltoastpanel.h
lltoastscripttextbox.h
lltool.h
lltoolbrush.h
lltoolcomp.h

View File

@ -1365,6 +1365,17 @@
<key>Value</key>
<integer>1</integer>
</map>
<key>LetterKeysFocusChatBar</key>
<map>
<key>Comment</key>
<string>When printable characters keys (possibly with Shift held) are pressed, the chatbar takes focus</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>S32</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>ChatBubbleOpacity</key>
<map>
<key>Comment</key>

View File

@ -87,7 +87,6 @@ LLHUDNameTag::LLHUDNameTag(const U8 type)
mZCompare(TRUE),
mVisibleOffScreen(FALSE),
mOffscreen(FALSE),
mColor(1.f, 1.f, 1.f, 1.f),
// mScale(),
mWidth(0.f),
mHeight(0.f),
@ -109,6 +108,8 @@ LLHUDNameTag::LLHUDNameTag(const U8 type)
{
LLPointer<LLHUDNameTag> ptr(this);
sTextObjects.insert(ptr);
mColor = LLUIColorTable::instance().getColor("BackgroundChatColor");
}
LLHUDNameTag::~LLHUDNameTag()
@ -256,6 +257,7 @@ void LLHUDNameTag::renderText(BOOL for_select)
LLColor4 shadow_color(0.f, 0.f, 0.f, 1.f);
F32 alpha_factor = 1.f;
mColor = LLUIColorTable::instance().getColor("BackgroundChatColor");
LLColor4 text_color = mColor;
if (mDoFade)
{
@ -521,7 +523,6 @@ void LLHUDNameTag::renderText(BOOL for_select)
x_offset += 1;
}
text_color = segment_iter->mColor;
text_color.mV[VALPHA] *= alpha_factor;
hud_render_text(segment_iter->getText(), render_position, *fontp, style, shadow, x_offset, y_offset, text_color, FALSE);

View File

@ -32,11 +32,13 @@
#include "llchannelmanager.h"
#include "llchiclet.h"
#include "llfloaterreg.h"
#include "lllslconstants.h"
#include "llnotifications.h"
#include "llnotificationsutil.h"
#include "llscreenchannel.h"
#include "llsyswellwindow.h"
#include "lltoastnotifypanel.h"
#include "lltoastscripttextbox.h"
#include "lltrans.h"
#include "llviewerwindow.h"
#include "llimfloater.h"
@ -151,10 +153,18 @@ void LLScriptFloater::createForm(const LLUUID& notification_id)
// create new form
LLRect toast_rect = getRect();
// LLToastNotifyPanel will fit own content in vertical direction,
// but it needs an initial rect to properly calculate its width
// Use an initial rect of the script floater to make the floater window more configurable.
mScriptForm = new LLToastNotifyPanel(notification, toast_rect);
if (isScriptTextbox(notification))
{
mScriptForm = new LLToastScriptTextbox(notification);
}
else
{
// LLToastNotifyPanel will fit own content in vertical direction,
// but it needs an initial rect to properly calculate its width
// Use an initial rect of the script floater to make the floater
// window more configurable.
mScriptForm = new LLToastNotifyPanel(notification, toast_rect);
}
addChild(mScriptForm);
// position form on floater
@ -564,4 +574,32 @@ void LLScriptFloaterManager::setFloaterVisible(const LLUUID& notification_id, bo
}
}
//////////////////////////////////////////////////////////////////
bool LLScriptFloater::isScriptTextbox(LLNotificationPtr notification)
{
// get a form for the notification
LLNotificationFormPtr form(notification->getForm());
if (form)
{
// get number of elements in the form
int num_options = form->getNumElements();
// if ANY of the buttons have the magic lltextbox string as
// name, then treat the whole dialog as a simple text entry
// box (i.e. mixed button and textbox forms are not supported)
for (int i=0; i<num_options; ++i)
{
LLSD form_element = form->getElement(i);
if (form_element["name"].asString() == TEXTBOX_MAGIC_TOKEN)
{
return true;
}
}
}
return false;
}
// EOF

View File

@ -28,6 +28,7 @@
#define LL_SCRIPTFLOATER_H
#include "lltransientdockablefloater.h"
#include "llnotificationptr.h"
class LLToastNotifyPanel;
@ -203,6 +204,8 @@ protected:
void dockToChiclet(bool dock);
private:
bool isScriptTextbox(LLNotificationPtr notification);
LLToastNotifyPanel* mScriptForm;
LLUUID mNotificationId;
LLUUID mObjectId;

View File

@ -60,7 +60,7 @@ LLToastGroupNotifyPanel::LLToastGroupNotifyPanel(LLNotificationPtr& notification
LLGroupData groupData;
if (!gAgent.getGroupData(payload["group_id"].asUUID(),groupData))
{
llwarns << "Group notice for unkown group: " << payload["group_id"].asUUID() << llendl;
llwarns << "Group notice for unknown group: " << payload["group_id"].asUUID() << llendl;
}
//group icon

View File

@ -33,6 +33,7 @@
// library includes
#include "lldbstrings.h"
#include "lllslconstants.h"
#include "llnotifications.h"
#include "lluiconstants.h"
#include "llrect.h"
@ -70,11 +71,11 @@ mCloseNotificationOnDestroy(true)
mControlPanel = getChild<LLPanel>("control_panel");
BUTTON_WIDTH = gSavedSettings.getS32("ToastButtonWidth");
// customize panel's attributes
// is it intended for displaying a tip
// is it intended for displaying a tip?
mIsTip = notification->getType() == "notifytip";
// is it a script dialog
// is it a script dialog?
mIsScriptDialog = (notification->getName() == "ScriptDialog" || notification->getName() == "ScriptDialogGroup");
// is it a caution
// is it a caution?
//
// caution flag can be set explicitly by specifying it in the notification payload, or it can be set implicitly if the
// notify xml template specifies that it is a caution
@ -139,6 +140,12 @@ mCloseNotificationOnDestroy(true)
LLSD form_element = form->getElement(i);
if (form_element["type"].asString() != "button")
{
// not a button.
continue;
}
if (form_element["name"].asString() == TEXTBOX_MAGIC_TOKEN)
{
// a textbox pretending to be a button.
continue;
}
LLButton* new_button = createButton(form_element, TRUE);
@ -159,7 +166,7 @@ mCloseNotificationOnDestroy(true)
if(h_pad < 2*HPAD)
{
/*
* Probably it is a scriptdialog toast
* Probably it is a scriptdialog toast
* for a scriptdialog toast h_pad can be < 2*HPAD if we have a lot of buttons.
* In last case set default h_pad to avoid heaping of buttons
*/
@ -261,7 +268,7 @@ LLButton* LLToastNotifyPanel::createButton(const LLSD& form_element, BOOL is_opt
}
else if (mIsScriptDialog && is_ignore_btn)
{
// this is ignore button,make it smaller
// this is ignore button, make it smaller
p.rect.height = BTN_HEIGHT_SMALL;
p.rect.width = 1;
p.auto_resize = true;

View File

@ -0,0 +1,109 @@
/**
* @file lltoastscripttextbox.cpp
* @brief Panel for script llTextBox dialogs
*
* $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
#include "lltoastscripttextbox.h"
#include "llfocusmgr.h"
#include "llbutton.h"
#include "llnotifications.h"
#include "llviewertexteditor.h"
#include "llavatarnamecache.h"
#include "lluiconstants.h"
#include "llui.h"
#include "llviewercontrol.h"
#include "lltrans.h"
#include "llstyle.h"
#include "llglheaders.h"
#include "llagent.h"
const S32 LLToastScriptTextbox::DEFAULT_MESSAGE_MAX_LINE_COUNT= 7;
LLToastScriptTextbox::LLToastScriptTextbox(LLNotificationPtr& notification)
: LLToastNotifyPanel(notification)
{
buildFromFile( "panel_notify_textbox.xml");
const LLSD& payload = notification->getPayload();
//message body
const std::string& message = payload["message"].asString();
LLViewerTextEditor* pMessageText = getChild<LLViewerTextEditor>("message");
pMessageText->clear();
LLStyle::Params style;
style.font = pMessageText->getDefaultFont();
pMessageText->appendText(message, TRUE, style);
//submit button
LLButton* pSubmitBtn = getChild<LLButton>("btn_submit");
pSubmitBtn->setClickedCallback((boost::bind(&LLToastScriptTextbox::onClickSubmit, this)));
setDefaultBtn(pSubmitBtn);
S32 maxLinesCount;
std::istringstream ss( getString("message_max_lines_count") );
if (!(ss >> maxLinesCount))
{
maxLinesCount = DEFAULT_MESSAGE_MAX_LINE_COUNT;
}
//snapToMessageHeight(pMessageText, maxLinesCount);
}
// virtual
LLToastScriptTextbox::~LLToastScriptTextbox()
{
}
void LLToastScriptTextbox::close()
{
die();
}
#include "lllslconstants.h"
void LLToastScriptTextbox::onClickSubmit()
{
LLViewerTextEditor* pMessageText = getChild<LLViewerTextEditor>("message");
if (pMessageText)
{
LLSD response = mNotification->getResponseTemplate();
response[TEXTBOX_MAGIC_TOKEN] = pMessageText->getText();
if (response[TEXTBOX_MAGIC_TOKEN].asString().empty())
{
// so we can distinguish between a successfully
// submitted blank textbox, and an ignored toast
response[TEXTBOX_MAGIC_TOKEN] = true;
}
mNotification->respond(response);
close();
llwarns << response << llendl;
}
}

View File

@ -0,0 +1,58 @@
/**
* @file lltoastscripttextbox.h
* @brief Panel for script llTextBox dialogs
*
* $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#ifndef LL_LLTOASTSCRIPTTEXTBOX_H
#define LL_LLTOASTSCRIPTTEXTBOX_H
#include "lltoastnotifypanel.h"
#include "llnotificationptr.h"
class LLButton;
/**
* Toast panel for scripted llTextbox notifications.
*/
class LLToastScriptTextbox
: public LLToastNotifyPanel
{
public:
void close();
static bool onNewNotification(const LLSD& notification);
// Non-transient messages. You can specify non-default button
// layouts (like one for script dialogs) by passing various
// numbers in for "layout".
LLToastScriptTextbox(LLNotificationPtr& notification);
/*virtual*/ ~LLToastScriptTextbox();
protected:
void onClickSubmit();
private:
static const S32 DEFAULT_MESSAGE_MAX_LINE_COUNT;
};
#endif

View File

@ -7795,6 +7795,9 @@ void initialize_menus()
view_listener_t::addMenu(new LLViewCheckRenderType(), "View.CheckRenderType");
view_listener_t::addMenu(new LLViewCheckHUDAttachments(), "View.CheckHUDAttachments");
// Me > Movement
view_listener_t::addMenu(new LLAdvancedAgentFlyingInfo(), "Agent.getFlying");
// World menu
commit.add("World.Chat", boost::bind(&handle_chat, (void*)NULL));
view_listener_t::addMenu(new LLWorldAlwaysRun(), "World.AlwaysRun");
@ -7868,9 +7871,6 @@ void initialize_menus()
// Advanced Other Settings
view_listener_t::addMenu(new LLAdvancedClearGroupCache(), "Advanced.ClearGroupCache");
// Advanced > Shortcuts
view_listener_t::addMenu(new LLAdvancedAgentFlyingInfo(), "Agent.getFlying");
// Advanced > Render > Types
view_listener_t::addMenu(new LLAdvancedToggleRenderType(), "Advanced.ToggleRenderType");

View File

@ -39,6 +39,7 @@
#include "llfloaterreg.h"
#include "llfollowcamparams.h"
#include "llinventorydefines.h"
#include "lllslconstants.h"
#include "llregionhandle.h"
#include "llsdserialize.h"
#include "llteleportflags.h"
@ -6436,8 +6437,22 @@ const char* SCRIPT_DIALOG_HEADER = "Script Dialog:\n";
bool callback_script_dialog(const LLSD& notification, const LLSD& response)
{
LLNotificationForm form(notification["form"]);
std::string button = LLNotification::getSelectedOptionName(response);
S32 button_idx = LLNotification::getSelectedOption(notification, response);
std::string rtn_text;
S32 button_idx;
button_idx = LLNotification::getSelectedOption(notification, response);
if (response[TEXTBOX_MAGIC_TOKEN].isDefined())
{
if (response[TEXTBOX_MAGIC_TOKEN].isString())
rtn_text = response[TEXTBOX_MAGIC_TOKEN].asString();
else
rtn_text.clear(); // bool marks empty string
}
else
{
rtn_text = LLNotification::getSelectedOptionName(response);
}
// Didn't click "Ignore"
if (button_idx != -1)
{
@ -6450,7 +6465,7 @@ bool callback_script_dialog(const LLSD& notification, const LLSD& response)
msg->addUUID("ObjectID", notification["payload"]["object_id"].asUUID());
msg->addS32("ChatChannel", notification["payload"]["chat_channel"].asInteger());
msg->addS32("ButtonIndex", button_idx);
msg->addString("ButtonLabel", button);
msg->addString("ButtonLabel", rtn_text);
msg->sendReliable(LLHost(notification["payload"]["sender"].asString()));
}

View File

@ -2266,6 +2266,20 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask)
return TRUE;
}
// If "Pressing letter keys starts local chat" option is selected, we are not in mouselook,
// no view has keyboard focus, this is a printable character key (and no modifier key is
// pressed except shift), then give focus to nearby chat (STORM-560)
if ( gSavedSettings.getS32("LetterKeysFocusChatBar") && !gAgentCamera.cameraMouselook() &&
!keyboard_focus && key < 0x80 && (mask == MASK_NONE || mask == MASK_SHIFT) )
{
LLLineEditor* chat_editor = LLBottomTray::instanceExists() ? LLBottomTray::getInstance()->getNearbyChatBar()->getChatBox() : NULL;
if (chat_editor)
{
// passing NULL here, character will be added later when it is handled by character handler.
LLBottomTray::getInstance()->getNearbyChatBar()->startChat(NULL);
return TRUE;
}
}
// give menus a chance to handle unmodified accelerator keys
if ((gMenuBarView && gMenuBarView->handleAcceleratorKey(key, mask))

View File

@ -160,7 +160,7 @@
layout="topleft"
left="10"
height="70"
top="54"
top="59"
name="focus_radio_group">
<radio_item
top_pad="6"
@ -197,7 +197,7 @@
<radio_group
left="10"
height="70"
top="54"
top="59"
layout="topleft"
name="move_radio_group">
<radio_item
@ -931,7 +931,7 @@
height="23"
image_overlay="Edit_Wrench"
layout="topleft"
left_pad="3"
left_pad="13"
name="button set group"
tab_stop="false"
tool_tip="Choose a group to share this object's permissions"
@ -944,7 +944,7 @@
name="checkbox share with group"
tool_tip="Allow all members of the set group to share your modify permissions for this object. You must Deed to enable role restrictions."
top_pad="10"
left="106"
left="100"
width="87" />
<button
follows="top|left"
@ -953,7 +953,7 @@
label_selected="Deed"
layout="topleft"
name="button deed"
left_pad="3"
left_pad="19"
tool_tip="Deeding gives this item away with next owner permissions. Group shared objects can be deeded by a group officer."
width="80" />
<text
@ -974,7 +974,7 @@
layout="topleft"
name="clickaction"
width="148"
left_pad="0">
left_pad="10">
<combo_box.item
label="Touch (default)"
name="Touch/grab(default)"
@ -1009,7 +1009,7 @@
width="100" />
<!-- NEW SALE TYPE COMBO BOX -->
<combo_box
left_pad="0"
left_pad="10"
layout="topleft"
follows="left|top"
allow_text_entry="false"
@ -1041,7 +1041,7 @@ even though the user gets a free copy.
decimal_digits="0"
increment="1"
top_pad="8"
left="108"
left="118"
control_name="Edit Cost"
name="Edit Cost"
label="Price: L$"

View File

@ -94,6 +94,49 @@
function="Floater.Toggle"
parameter="voice_effect" />
</menu_item_check>
<menu
create_jump_keys="true"
label="Movement"
name="Movement"
tear_off="true">
<menu_item_call
label="Sit Down"
layout="topleft"
shortcut="alt|shift|S"
name="Sit Down Here">
<menu_item_call.on_click
function="Self.SitDown"
parameter="" />
<menu_item_call.on_enable
function="Self.EnableSitDown" />
</menu_item_call>
<menu_item_check
label="Fly"
name="Fly"
shortcut="Home">
<menu_item_check.on_check
function="Agent.getFlying" />
<menu_item_check.on_click
function="Agent.toggleFlying" />
<menu_item_check.on_enable
function="Agent.enableFlying" />
</menu_item_check>
<menu_item_check
label="Always Run"
name="Always Run"
shortcut="control|R">
<menu_item_check.on_check
function="World.CheckAlwaysRun" />
<menu_item_check.on_click
function="World.AlwaysRun" />
</menu_item_check>
<menu_item_call
label="Stop Animating Me"
name="Stop Animating My Avatar">
<menu_item_call.on_click
function="Tools.StopAllAnimations" />
</menu_item_call>
</menu>
<menu
create_jump_keys="true"
label="My Status"
@ -995,12 +1038,6 @@
name="Advanced"
tear_off="true"
visible="false">
<menu_item_call
label="Stop Animating Me"
name="Stop Animating My Avatar">
<menu_item_call.on_click
function="Tools.StopAllAnimations" />
</menu_item_call>
<menu_item_call
label="Rebake Textures"
name="Rebake Texture"
@ -1553,29 +1590,6 @@
<menu_item_separator/>
<menu_item_check
label="Always Run"
name="Always Run"
shortcut="control|R">
<menu_item_check.on_check
function="World.CheckAlwaysRun" />
<menu_item_check.on_click
function="World.AlwaysRun" />
</menu_item_check>
<menu_item_check
label="Fly"
name="Fly"
shortcut="Home">
<menu_item_check.on_check
function="Agent.getFlying" />
<menu_item_check.on_click
function="Agent.toggleFlying" />
<menu_item_check.on_enable
function="Agent.enableFlying" />
</menu_item_check>
<menu_item_separator/>
<menu_item_call
label="Close Window"
name="Close Window"

View File

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
background_visible="true"
height="230"
label="instant_message"
layout="topleft"
left="0"
name="panel_notify_textbox"
top="0"
width="305">
<string
name="message_max_lines_count"
value="7" />
<panel
bevel_style="none"
follows="left|right|top"
height="150"
label="info_panel"
layout="topleft"
left="0"
name="info_panel"
top="0"
width="305">
<text_editor
parse_urls="true"
enabled="true"
follows="all"
height="60"
layout="topleft"
left="25"
max_length="250"
name="message"
parse_highlights="true"
read_only="false"
top="40"
type="string"
use_ellipses="true"
value="message"
width="260"
word_wrap="true" >
</text_editor>
parse_urls="false"
<button
top="110"
follows="top|left"
height="20"
label="Submit"
layout="topleft"
left="25"
name="btn_submit"
width="70" />
</panel>
<panel
background_visible="false"
follows="left|right|bottom"
height="0"
width="290"
label="control_panel"
layout="topleft"
left="10"
name="control_panel"
top_pad="5">
<!--
Notes:
This panel holds the Ignore button and possibly other buttons of notification.
-->
</panel>
</panel>

View File

@ -331,6 +331,7 @@
Pressing letter keys:
</text>
<radio_group
control_name="LetterKeysFocusChatBar"
height="20"
layout="topleft"
left="35"
@ -338,12 +339,12 @@
name="inworld_typing_preference">
<radio_item
label="Starts local chat"
name="radio_button1"
name="radio_start_chat"
top_delta="20"
layout="topleft"
height="16"
left="0"
value="0"
value="1"
width="150" />
<radio_item
label="Affects movement (i.e. WASD)"
@ -351,8 +352,8 @@
layout="topleft"
top_delta="0"
height="16"
name="radio_button2"
value="1"
name="radio_move"
value="0"
width="75" />
</radio_group>

View File

@ -70,7 +70,7 @@
name="UI Volume"
show_text="false"
slider_label.halign="right"
top_pad="5"
top_pad="4"
volume="true"
width="300">
<slider.commit_callback
@ -104,7 +104,7 @@
name="Wind Volume"
show_text="false"
slider_label.halign="right"
top_pad="5"
top_pad="4"
volume="true"
width="300">
<slider.commit_callback
@ -138,7 +138,7 @@
left="0"
name="SFX Volume"
show_text="false"
top_pad="7"
top_pad="4"
volume="true"
width="300">
<slider.commit_callback
@ -172,7 +172,7 @@
name="Music Volume"
slider_label.halign="right"
show_text="false"
top_pad="5"
top_pad="4"
volume="true"
width="300">
<slider.commit_callback
@ -215,7 +215,7 @@
name="Media Volume"
show_text="false"
slider_label.halign="right"
top_pad="5"
top_pad="4"
volume="true"
width="300">
<slider.commit_callback
@ -257,7 +257,7 @@
label_width="120"
layout="topleft"
left="0"
top_pad="5"
top_pad="4"
name="Voice Volume"
show_text="false"
slider_label.halign="right"
@ -301,9 +301,9 @@
height="15"
tool_tip="Check this to let media auto-play if it wants"
label="Allow Media to auto-play"
top_pad="5"
top_pad="1"
left="25"/>
<check_box
<check_box
name="media_show_on_others_btn"
control_name="MediaShowOnOthers"
value="true"
@ -313,16 +313,6 @@
label="Play media attached to other avatars"
left="25"
width="230"/>
<check_box
control_name="LipSyncEnabled"
follows="left|top"
height="20"
label="Move avatar lips when speaking"
layout="topleft"
left_pad="0"
name="enable_lip_sync"
width="237"
top_delta="-4" />
<text
type="string"
@ -333,7 +323,7 @@
left="25"
name="voice_chat_settings"
width="180"
top_pad="10">
top_pad="7">
Voice Chat Settings
</text>
<text
@ -341,10 +331,10 @@
length="1"
follows="left|top"
layout="topleft"
left="80"
left="46"
top_delta="16"
name="Listen from"
width="102">
width="112">
Listen from:
</text>
<icon
@ -363,7 +353,7 @@
height="18"
image_name="Move_Walk_Off"
layout="topleft"
left_pad="130"
left_pad="170"
name="avatar_icon"
mouse_opaque="false"
visible="true"
@ -375,7 +365,7 @@
draw_border="false"
follows="left|top"
layout="topleft"
left_delta="-128"
left_delta="-168"
width="221"
height="20"
name="ear_location">
@ -391,11 +381,21 @@
follows="left|top"
label="Avatar position"
layout="topleft"
left_pad="-54"
left_pad="-16"
name="1"
top_delta ="0"
width="200" />
</radio_group>
<check_box
control_name="LipSyncEnabled"
follows="left|top"
height="15"
label="Move avatar lips when speaking"
layout="topleft"
left="44"
name="enable_lip_sync"
top_pad="5"
width="237"/>
<check_box
follows="top|left"
enabled_control="EnableVoiceChat"
@ -403,10 +403,11 @@
height="15"
label="Toggle speak on/off when I press:"
layout="topleft"
left="30"
left="44"
name="push_to_talk_toggle_check"
width="237"
tool_tip="When in toggle mode, press and release the trigger key ONCE to switch your microphone on or off. When not in toggle mode, the microphone broadcasts your voice only while the trigger is being held down."/>
tool_tip="When in toggle mode, press and release the trigger key ONCE to switch your microphone on or off. When not in toggle mode, the microphone broadcasts your voice only while the trigger is being held down."
top_pad="3"/>
<line_editor
follows="top|left"
control_name="PushToTalkButton"
@ -454,7 +455,7 @@
label="Input/Output devices"
layout="topleft"
left="20"
top_pad="8"
top_pad="6"
name="device_settings_btn"
width="190">
</button>

View File

@ -283,7 +283,7 @@
<combo_box.item label="Plastica" name="Plastic"/>
<combo_box.item label="Gomma" name="Rubber"/>
</combo_box>
<text name="text cut">
<text name="text cut" left_delta="-10" width="170">
Riduci una sezione (inizio/fine)
</text>
<spinner label="I" name="cut begin"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="toolbox floater" title="" short_title="BOUWEN" height="587">
<floater name="toolbox floater" title="" short_title="BOUWEN" height="592">
<button label="" label_selected="" name="button focus" tool_tip="Focus"/>
<button label="" label_selected="" name="button move" tool_tip="Verplaats"/>
<button label="" label_selected="" name="button edit" tool_tip="Bewerk"/>
@ -81,13 +81,13 @@
<text name="Strength:">
Sterkte
</text>
<text name="obj_count" top_pad="15">
<text name="obj_count" top_pad="20">
Geselecteerde objecten: [COUNT]
</text>
<text name="prim_count">
primitieven: [COUNT]
</text>
<tab_container name="Object Info Tabs" tab_max_width="62" tab_min_width="30" top="180">
<tab_container name="Object Info Tabs" tab_max_width="62" tab_min_width="30" top="185">
<panel label="Algemeen" name="General">
<text name="Name:">
Naam:
@ -115,19 +115,19 @@
<text name="Group Name Proxy">
De Lindens
</text>
<button label="Instellen..." label_selected="Instellen..." name="button set group" left_pad="13"/>
<button label="Instellen..." label_selected="Instellen..." name="button set group"/>
<text name="Permissions:">
Permissies:
</text>
<check_box label="Deel met groep" name="checkbox share with group" tool_tip="Alle leden van de ingestelde groep toestaan om te delen en uw permissies voor dit object te gebruiken. U moet &apos;Overdragen&apos; om rolbeperkingen in te schakelen." left="100"/>
<check_box label="Deel met groep" name="checkbox share with group" tool_tip="Alle leden van de ingestelde groep toestaan om te delen en uw permissies voor dit object te gebruiken. U moet &apos;Overdragen&apos; om rolbeperkingen in te schakelen."/>
<string name="text deed continued">
Overdragen...
</string>
<string name="text deed">
Overdragen
</string>
<button label="Overdragen..." label_selected="Overdragen..." name="button deed" tool_tip="Groepgedeelde objecten kunnen door een groepofficier worden overgedragen" left_pad="19"/>
<button label="Overdragen..." label_selected="Overdragen..." name="button deed" tool_tip="Groepgedeelde objecten kunnen door een groepofficier worden overgedragen"/>
<check_box label="Iedereen mag verplaatsen" name="checkbox allow everyone move"/>
<check_box label="Iedereen mag kopiëren" name="checkbox allow everyone copy"/>
<check_box label="Toon in zoeken" name="search_check" tool_tip="Laat mensen dit object zien in zoekresultaten"/>

View File

@ -307,7 +307,7 @@
<combo_box.item label="Kwadrat" name="Square"/>
<combo_box.item label="Trójkąt" name="Triangle"/>
</combo_box>
<text name="text twist">
<text name="text twist" left_delta="-5" width="160">
Skręcenie (początek/koniec)
</text>
<spinner label="P" name="Twist Begin"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="toolbox floater" short_title="BUILD TOOLS" title="" width="288">
<floater name="toolbox floater" short_title="BUILD TOOLS" title="">
<floater.string name="status_rotate">
Arrastar as faixas coloridas para girar o objeto
</floater.string>