summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorMerov Linden <merov@lindenlab.com>2011-10-03 17:13:14 -0700
committerMerov Linden <merov@lindenlab.com>2011-10-03 17:13:14 -0700
commit99ada9b047d1cda8f45ec7f193ec04328496a721 (patch)
tree03daf2f4ab56de43b03f4f7b0963abe041ad67ec /indra/newview
parentcd467cc34f876920b35d3570f50dbad54ce4a42c (diff)
parent37fdd27bcbd38b5cf22e0ff003f4d01b908996c7 (diff)
EXP-1202 : pull from richard/viewer-experience-fui
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/app_settings/commands.xml4
-rw-r--r--indra/newview/llfloatertoybox.cpp2
-rw-r--r--indra/newview/llnamelistctrl.h2
-rw-r--r--indra/newview/lltoolbarview.cpp15
-rw-r--r--indra/newview/lltoolbarview.h12
-rw-r--r--indra/newview/llviewertexturelist.cpp44
-rw-r--r--indra/newview/llviewertexturelist.h7
-rw-r--r--indra/newview/skins/default/textures/textures.xml6
-rw-r--r--indra/newview/skins/default/xui/en/floater_toybox.xml4
-rw-r--r--indra/newview/skins/default/xui/en/main_view.xml4
-rw-r--r--indra/newview/skins/default/xui/en/panel_toolbar_view.xml6
-rw-r--r--indra/newview/skins/default/xui/en/widgets/toolbar.xml27
12 files changed, 94 insertions, 39 deletions
diff --git a/indra/newview/app_settings/commands.xml b/indra/newview/app_settings/commands.xml
index 224c1b4b48..77bf7cace3 100644
--- a/indra/newview/app_settings/commands.xml
+++ b/indra/newview/app_settings/commands.xml
@@ -70,7 +70,7 @@
label_ref="Command_HowTo_Label"
tooltip_ref="Command_HowTo_Tooltip"
function="Floater.ToolbarToggle"
- parameter="floater_help_browser"
+ parameter="help_browser"
/>
<command name="inventory"
available_in_toybox="true"
@@ -142,7 +142,7 @@
label_ref="Command_Profile_Label"
tooltip_ref="Command_Profile_Tooltip"
function="Floater.ToolbarToggle"
- parameter="profile"
+ parameter="my_profile"
/>
<command name="search"
available_in_toybox="true"
diff --git a/indra/newview/llfloatertoybox.cpp b/indra/newview/llfloatertoybox.cpp
index d7f114043d..7a6afb4e33 100644
--- a/indra/newview/llfloatertoybox.cpp
+++ b/indra/newview/llfloatertoybox.cpp
@@ -61,6 +61,8 @@ BOOL LLFloaterToybox::postBuild()
center();
mBtnRestoreDefaults = getChild<LLButton>("btn_restore_defaults");
+ mBtnRestoreDefaults->setCommitCallback(boost::bind(&LLToolBarView::loadDefaultToolbars));
+
mToolBar = getChild<LLToolBar>("toybox_toolbar");
LLCommandManager& cmdMgr = LLCommandManager::instance();
diff --git a/indra/newview/llnamelistctrl.h b/indra/newview/llnamelistctrl.h
index d64fdbe6a5..ca9956dc53 100644
--- a/indra/newview/llnamelistctrl.h
+++ b/indra/newview/llnamelistctrl.h
@@ -61,7 +61,7 @@ public:
{}
};
- struct NameColumn : public LLInitParam::Choice<NameColumn>
+ struct NameColumn : public LLInitParam::ChoiceBlock<NameColumn>
{
Alternative<S32> column_index;
Alternative<std::string> column_name;
diff --git a/indra/newview/lltoolbarview.cpp b/indra/newview/lltoolbarview.cpp
index 929486a185..5822f682df 100644
--- a/indra/newview/lltoolbarview.cpp
+++ b/indra/newview/lltoolbarview.cpp
@@ -129,7 +129,7 @@ bool LLToolBarView::addCommand(const LLCommandId& command, LLToolBar* toolbar)
}
bool LLToolBarView::loadToolbars(bool force_default)
-{
+{
LLToolBarView::ToolbarSet toolbar_set;
// Load the toolbars.xml file
@@ -219,6 +219,19 @@ bool LLToolBarView::loadToolbars(bool force_default)
return true;
}
+//static
+bool LLToolBarView::loadDefaultToolbars()
+{
+ bool retval = false;
+
+ if (gToolBarView)
+ {
+ retval = gToolBarView->loadToolbars(true);
+ }
+
+ return retval;
+}
+
void LLToolBarView::saveToolbars() const
{
// Build the parameter tree from the toolbar data
diff --git a/indra/newview/lltoolbarview.h b/indra/newview/lltoolbarview.h
index 4e1b855e3d..b7d3a4033a 100644
--- a/indra/newview/lltoolbarview.h
+++ b/indra/newview/lltoolbarview.h
@@ -51,7 +51,7 @@ public:
struct Toolbar : public LLInitParam::Block<Toolbar>
{
Mandatory<U32> button_display_mode;
- Multiple<LLCommandId::Params> commands;
+ Multiple<LLCommandId::Params> commands;
Toolbar();
};
struct ToolbarSet : public LLInitParam::Block<ToolbarSet>
@@ -66,18 +66,18 @@ public:
virtual ~LLToolBarView();
virtual BOOL postBuild();
virtual void draw();
-
// Toolbar view interface with the rest of the world
// Checks if the commandId is being used somewhere in one of the toolbars
bool hasCommand(const LLCommandId& commandId) const;
// Loads the toolbars from the existing user or default settings
bool loadToolbars(bool force_default = false); // return false if load fails
- bool loadDefaultToolbars() { return loadToolbars(true); }
+ static bool loadDefaultToolbars();
+
static void startDragItem( S32 x, S32 y, const LLUUID& uuid);
static BOOL handleDragItem( S32 x, S32 y, const LLUUID& uuid, LLAssetType::EType type);
static BOOL handleDrop( EDragAndDropType cargo_type, void* cargo_data, const LLUUID& folder_id);
-
+
protected:
friend class LLUICtrlFactory;
LLToolBarView(const Params&);
@@ -93,6 +93,10 @@ private:
LLToolBar* mToolbarLeft;
LLToolBar* mToolbarRight;
LLToolBar* mToolbarBottom;
+ bool mDragging;
+ LLToolBarButton* mDragButton;
+ S32 mMouseX;
+ S32 mMouseY;
static bool sDragStarted;
};
diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp
index 30ef8b8a29..c64488251a 100644
--- a/indra/newview/llviewertexturelist.cpp
+++ b/indra/newview/llviewertexturelist.cpp
@@ -1342,7 +1342,8 @@ LLUIImagePtr LLUIImageList::getUIImageByID(const LLUUID& image_id, S32 priority)
const BOOL use_mips = FALSE;
const LLRect scale_rect = LLRect::null;
- return loadUIImageByID(image_id, use_mips, scale_rect, (LLViewerTexture::EBoostLevel)priority);
+ const LLRect clip_rect = LLRect::null;
+ return loadUIImageByID(image_id, use_mips, scale_rect, clip_rect, (LLViewerTexture::EBoostLevel)priority);
}
LLUIImagePtr LLUIImageList::getUIImage(const std::string& image_name, S32 priority)
@@ -1356,32 +1357,33 @@ LLUIImagePtr LLUIImageList::getUIImage(const std::string& image_name, S32 priori
const BOOL use_mips = FALSE;
const LLRect scale_rect = LLRect::null;
- return loadUIImageByName(image_name, image_name, use_mips, scale_rect, (LLViewerTexture::EBoostLevel)priority);
+ const LLRect clip_rect = LLRect::null;
+ return loadUIImageByName(image_name, image_name, use_mips, scale_rect, clip_rect, (LLViewerTexture::EBoostLevel)priority);
}
LLUIImagePtr LLUIImageList::loadUIImageByName(const std::string& name, const std::string& filename,
- BOOL use_mips, const LLRect& scale_rect, LLViewerTexture::EBoostLevel boost_priority )
+ BOOL use_mips, const LLRect& scale_rect, const LLRect& clip_rect, LLViewerTexture::EBoostLevel boost_priority )
{
if (boost_priority == LLViewerTexture::BOOST_NONE)
{
boost_priority = LLViewerTexture::BOOST_UI;
}
LLViewerFetchedTexture* imagep = LLViewerTextureManager::getFetchedTextureFromFile(filename, MIPMAP_NO, boost_priority);
- return loadUIImage(imagep, name, use_mips, scale_rect);
+ return loadUIImage(imagep, name, use_mips, scale_rect, clip_rect);
}
LLUIImagePtr LLUIImageList::loadUIImageByID(const LLUUID& id,
- BOOL use_mips, const LLRect& scale_rect, LLViewerTexture::EBoostLevel boost_priority)
+ BOOL use_mips, const LLRect& scale_rect, const LLRect& clip_rect, LLViewerTexture::EBoostLevel boost_priority)
{
if (boost_priority == LLViewerTexture::BOOST_NONE)
{
boost_priority = LLViewerTexture::BOOST_UI;
}
LLViewerFetchedTexture* imagep = LLViewerTextureManager::getFetchedTexture(id, MIPMAP_NO, boost_priority);
- return loadUIImage(imagep, id.asString(), use_mips, scale_rect);
+ return loadUIImage(imagep, id.asString(), use_mips, scale_rect, clip_rect);
}
-LLUIImagePtr LLUIImageList::loadUIImage(LLViewerFetchedTexture* imagep, const std::string& name, BOOL use_mips, const LLRect& scale_rect)
+LLUIImagePtr LLUIImageList::loadUIImage(LLViewerFetchedTexture* imagep, const std::string& name, BOOL use_mips, const LLRect& scale_rect, const LLRect& clip_rect)
{
if (!imagep) return NULL;
@@ -1402,13 +1404,14 @@ LLUIImagePtr LLUIImageList::loadUIImage(LLViewerFetchedTexture* imagep, const st
LLUIImageLoadData* datap = new LLUIImageLoadData;
datap->mImageName = name;
datap->mImageScaleRegion = scale_rect;
+ datap->mImageClipRegion = clip_rect;
imagep->setLoadedCallback(onUIImageLoaded, 0, FALSE, FALSE, datap, NULL);
}
return new_imagep;
}
-LLUIImagePtr LLUIImageList::preloadUIImage(const std::string& name, const std::string& filename, BOOL use_mips, const LLRect& scale_rect)
+LLUIImagePtr LLUIImageList::preloadUIImage(const std::string& name, const std::string& filename, BOOL use_mips, const LLRect& scale_rect, const LLRect& clip_rect)
{
// look for existing image
uuid_ui_image_map_t::iterator found_it = mUIImages.find(name);
@@ -1418,7 +1421,7 @@ LLUIImagePtr LLUIImageList::preloadUIImage(const std::string& name, const std::s
llerrs << "UI Image " << name << " already loaded." << llendl;
}
- return loadUIImageByName(name, filename, use_mips, scale_rect);
+ return loadUIImageByName(name, filename, use_mips, scale_rect, clip_rect);
}
//static
@@ -1432,6 +1435,7 @@ void LLUIImageList::onUIImageLoaded( BOOL success, LLViewerFetchedTexture *src_v
LLUIImageLoadData* image_datap = (LLUIImageLoadData*)user_data;
std::string ui_image_name = image_datap->mImageName;
LLRect scale_rect = image_datap->mImageScaleRegion;
+ LLRect clip_rect = image_datap->mImageClipRegion;
if (final)
{
delete image_datap;
@@ -1448,9 +1452,21 @@ void LLUIImageList::onUIImageLoaded( BOOL success, LLViewerFetchedTexture *src_v
// from power-of-2 gl image
if (success && imagep.notNull() && src_vi && (src_vi->getUrl().compare(0, 7, "file://")==0))
{
- F32 clip_x = (F32)src_vi->getOriginalWidth() / (F32)src_vi->getFullWidth();
- F32 clip_y = (F32)src_vi->getOriginalHeight() / (F32)src_vi->getFullHeight();
- imagep->setClipRegion(LLRectf(0.f, clip_y, clip_x, 0.f));
+ F32 full_width = (F32)src_vi->getFullWidth();
+ F32 full_height = (F32)src_vi->getFullHeight();
+ F32 clip_x = (F32)src_vi->getOriginalWidth() / full_width;
+ F32 clip_y = (F32)src_vi->getOriginalHeight() / full_height;
+ if (clip_rect != LLRect::null)
+ {
+ imagep->setClipRegion(LLRectf(llclamp((F32)clip_rect.mLeft / full_width, 0.f, 1.f),
+ llclamp((F32)clip_rect.mTop / full_height, 0.f, 1.f),
+ llclamp((F32)clip_rect.mRight / full_width, 0.f, 1.f),
+ llclamp((F32)clip_rect.mBottom / full_height, 0.f, 1.f)));
+ }
+ else
+ {
+ imagep->setClipRegion(LLRectf(0.f, clip_y, clip_x, 0.f));
+ }
if (scale_rect != LLRect::null)
{
imagep->setScaleRegion(
@@ -1471,6 +1487,7 @@ struct UIImageDeclaration : public LLInitParam::Block<UIImageDeclaration>
Optional<std::string> file_name;
Optional<bool> preload;
Optional<LLRect> scale;
+ Optional<LLRect> clip;
Optional<bool> use_mips;
UIImageDeclaration()
@@ -1478,6 +1495,7 @@ struct UIImageDeclaration : public LLInitParam::Block<UIImageDeclaration>
file_name("file_name"),
preload("preload", false),
scale("scale"),
+ clip("clip"),
use_mips("use_mips", false)
{}
};
@@ -1572,7 +1590,7 @@ bool LLUIImageList::initFromFile()
{
continue;
}
- preloadUIImage(image.name, file_name, image.use_mips, image.scale);
+ preloadUIImage(image.name, file_name, image.use_mips, image.scale, image.clip);
}
if (cur_pass == PASS_DECODE_NOW && !gSavedSettings.getBOOL("NoPreload"))
diff --git a/indra/newview/llviewertexturelist.h b/indra/newview/llviewertexturelist.h
index 7f4dd0ae88..e0a362596d 100644
--- a/indra/newview/llviewertexturelist.h
+++ b/indra/newview/llviewertexturelist.h
@@ -220,24 +220,27 @@ public:
bool initFromFile();
- LLPointer<LLUIImage> preloadUIImage(const std::string& name, const std::string& filename, BOOL use_mips, const LLRect& scale_rect);
+ LLPointer<LLUIImage> preloadUIImage(const std::string& name, const std::string& filename, BOOL use_mips, const LLRect& scale_rect, const LLRect& clip_rect);
static void onUIImageLoaded( BOOL success, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* src_aux, S32 discard_level, BOOL final, void* userdata );
private:
LLPointer<LLUIImage> loadUIImageByName(const std::string& name, const std::string& filename,
BOOL use_mips = FALSE, const LLRect& scale_rect = LLRect::null,
+ const LLRect& clip_rect = LLRect::null,
LLViewerTexture::EBoostLevel boost_priority = LLViewerTexture::BOOST_UI);
LLPointer<LLUIImage> loadUIImageByID(const LLUUID& id,
BOOL use_mips = FALSE, const LLRect& scale_rect = LLRect::null,
+ const LLRect& clip_rect = LLRect::null,
LLViewerTexture::EBoostLevel boost_priority = LLViewerTexture::BOOST_UI);
- LLPointer<LLUIImage> loadUIImage(LLViewerFetchedTexture* imagep, const std::string& name, BOOL use_mips = FALSE, const LLRect& scale_rect = LLRect::null);
+ LLPointer<LLUIImage> loadUIImage(LLViewerFetchedTexture* imagep, const std::string& name, BOOL use_mips = FALSE, const LLRect& scale_rect = LLRect::null, const LLRect& clip_rect = LLRect::null);
struct LLUIImageLoadData
{
std::string mImageName;
LLRect mImageScaleRegion;
+ LLRect mImageClipRegion;
};
typedef std::map< std::string, LLPointer<LLUIImage> > uuid_ui_image_map_t;
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index 4462fb792f..68773947ec 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -473,7 +473,11 @@ with the same filename but different name
<texture name="Resize_Corner" file_name="windows/Resize_Corner.png" preload="true" />
- <texture name="Rounded_Rect" file_name="Rounded_Rect.png" preload="true" scale.left="6" scale.top="24" scale.right="58" scale.bottom="6" />
+ <texture name="Rounded_Rect" file_name="Rounded_Rect.png" preload="true" scale.left="6" scale.top="26" scale.right="58" scale.bottom="6" />
+ <texture name="Rounded_Rect_Top" file_name="Rounded_Rect.png" preload="true" scale.left="6" scale.top="8" scale.right="58" scale.bottom="0" clip.left="0" clip.right="64" clip.bottom="16" clip.top="32" />
+ <texture name="Rounded_Rect_Bottom" file_name="Rounded_Rect.png" preload="true" scale.left="6" scale.top="16" scale.right="58" scale.bottom="8" clip.left="0" clip.right="64" clip.bottom="0" clip.top="16" />
+ <texture name="Rounded_Rect_Left" file_name="Rounded_Rect.png" preload="true" scale.left="6" scale.top="26" scale.right="32" scale.bottom="6" clip.left="0" clip.right="32" clip.bottom="0" clip.top="32" />
+ <texture name="Rounded_Rect_Right" file_name="Rounded_Rect.png" preload="true" scale.left="0" scale.top="26" scale.right="26" scale.bottom="6" clip.left="32" clip.right="64" clip.bottom="0" clip.top="32" />
<texture name="Rounded_Square" file_name="rounded_square.j2c" preload="true" scale.left="16" scale.top="16" scale.right="112" scale.bottom="16" />
<texture name="Row_Selection" file_name="navbar/Row_Selection.png" preload="false" />
diff --git a/indra/newview/skins/default/xui/en/floater_toybox.xml b/indra/newview/skins/default/xui/en/floater_toybox.xml
index feb19571b2..de39032cbf 100644
--- a/indra/newview/skins/default/xui/en/floater_toybox.xml
+++ b/indra/newview/skins/default/xui/en/floater_toybox.xml
@@ -48,8 +48,8 @@
button_display_mode="icons_with_text"
follows="all"
left="20"
- max_button_width="140"
- min_button_width="70"
+ button_icon_and_text.max_button_width="140"
+ button_icon_and_text.min_button_width="70"
name="toybox_toolbar"
pad_left="5"
pad_right="5"
diff --git a/indra/newview/skins/default/xui/en/main_view.xml b/indra/newview/skins/default/xui/en/main_view.xml
index d8f593715f..cf566d7d23 100644
--- a/indra/newview/skins/default/xui/en/main_view.xml
+++ b/indra/newview/skins/default/xui/en/main_view.xml
@@ -100,12 +100,12 @@
visible="false"
width="500"/>
</layout_panel>
- <layout_panel auto_resize="false"
+ <!--<layout_panel auto_resize="false"
min_height="33"
height="33"
mouse_opaque="false"
name="bottom_tray_container"
- visible="false"/>
+ visible="false"/>-->
</layout_stack>
</layout_panel>
</layout_stack>
diff --git a/indra/newview/skins/default/xui/en/panel_toolbar_view.xml b/indra/newview/skins/default/xui/en/panel_toolbar_view.xml
index fa7632920b..44da813f61 100644
--- a/indra/newview/skins/default/xui/en/panel_toolbar_view.xml
+++ b/indra/newview/skins/default/xui/en/panel_toolbar_view.xml
@@ -33,13 +33,13 @@
follows="all"
mouse_opaque="false">
<layout_panel name="left_toolbar_panel"
- fit_content="true"
auto_resize="false"
user_resize="false"
height="500"
width="30"
mouse_opaque="false">
<toolbar follows="left|top|bottom"
+ button_panel.bg_opaque_image="Rounded_Rect_Right"
name="toolbar_left"
height="500"
width="30"
@@ -54,13 +54,13 @@
user_resize="false"
mouse_opaque="false"/>
<layout_panel name="right_toolbar_panel"
- fit_content="true"
auto_resize="false"
user_resize="false"
height="500"
width="30"
mouse_opaque="false">
<toolbar
+ button_panel.bg_opaque_image="Rounded_Rect_Left"
follows="right|top|bottom"
name="toolbar_right"
height="500"
@@ -74,13 +74,13 @@
</layout_stack>
</layout_panel>
<layout_panel name="bottom_toolbar_panel"
- fit_content="true"
auto_resize="false"
user_resize="false"
height="30"
width="1024"
mouse_opaque="false">
<toolbar layout="topleft"
+ button_panel.bg_opaque_image="Rounded_Rect_Top"
name="toolbar_bottom"
height="30"
width="1024"
diff --git a/indra/newview/skins/default/xui/en/widgets/toolbar.xml b/indra/newview/skins/default/xui/en/widgets/toolbar.xml
index 32bc88cc9a..8422e3943d 100644
--- a/indra/newview/skins/default/xui/en/widgets/toolbar.xml
+++ b/indra/newview/skins/default/xui/en/widgets/toolbar.xml
@@ -1,22 +1,33 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<toolbar button_height="30"
- pad_left="5"
- pad_right="5"
- pad_top="5"
- pad_bottom="5"
- pad_between="5"
+<toolbar pad_left="1"
+ pad_right="1"
+ pad_top="1"
+ pad_bottom="1"
+ pad_between="1"
mouse_opaque="false"
read_only="false">
<button_panel name="button_panel"
bg_opaque_image="Rounded_Rect"
background_visible="true"
+ bg_opaque_image_overlay="MouseGray"
background_opaque="true"/>
- <button_icon_and_text follows="left|top"
+ <button_icon_and_text imgoverlay_label_space="7"
+ min_button_width="70"
+ max_button_width="140"
+ desired_height="24"
+ pad_left="10"
+ pad_right="10"
+ follows="left|top"
chrome="true"
image_overlay_alignment="left"
use_ellipses="true"
auto_resize="true"/>
- <button_icon follows="left|top"
+ <button_icon pad_left="10"
+ pad_right="10"
+ desired_height="35"
+ min_button_width="35"
+ max_button_width="35"
+ follows="left|top"
label=""
chrome="true"
use_ellipses="true"