From 9ec432034dc3c45d7ce763eb02dae4cc7f6b8da8 Mon Sep 17 00:00:00 2001 From: Steven Bennetts Date: Sun, 21 Jun 2009 08:04:56 +0000 Subject: merge -r 122421-124917 viewer-2.0.0-2 -> viewer-2.0.0-3 ignore-dead-branch --- indra/integration_tests/CMakeLists.txt | 3 + .../integration_tests/llui_libtest/CMakeLists.txt | 97 ++++++++++ .../llui_libtest/llui_libtest.cpp | 196 +++++++++++++++++++++ .../integration_tests/llui_libtest/llui_libtest.h | 36 ++++ .../integration_tests/llui_libtest/llwidgetreg.cpp | 106 +++++++++++ indra/integration_tests/llui_libtest/llwidgetreg.h | 43 +++++ 6 files changed, 481 insertions(+) create mode 100644 indra/integration_tests/CMakeLists.txt create mode 100644 indra/integration_tests/llui_libtest/CMakeLists.txt create mode 100644 indra/integration_tests/llui_libtest/llui_libtest.cpp create mode 100644 indra/integration_tests/llui_libtest/llui_libtest.h create mode 100644 indra/integration_tests/llui_libtest/llwidgetreg.cpp create mode 100644 indra/integration_tests/llui_libtest/llwidgetreg.h (limited to 'indra/integration_tests') diff --git a/indra/integration_tests/CMakeLists.txt b/indra/integration_tests/CMakeLists.txt new file mode 100644 index 0000000000..67e8fbf1f2 --- /dev/null +++ b/indra/integration_tests/CMakeLists.txt @@ -0,0 +1,3 @@ +# -*- cmake -*- + +add_subdirectory(llui_libtest) diff --git a/indra/integration_tests/llui_libtest/CMakeLists.txt b/indra/integration_tests/llui_libtest/CMakeLists.txt new file mode 100644 index 0000000000..68556ac4ab --- /dev/null +++ b/indra/integration_tests/llui_libtest/CMakeLists.txt @@ -0,0 +1,97 @@ +# -*- cmake -*- + +project (llui_libtest) + +include(00-Common) +include(LLCommon) +include(LLImage) +include(LLImageJ2COJ) # ugh, needed for images +include(LLMath) +include(LLRender) +include(LLWindow) +include(LLUI) +include(LLVFS) # ugh, needed for LLDir +include(LLXML) +include(Linking) +# include(Tut) + +include_directories( + ${FREETYPE_INCLUDE_DIRS} + ${LLCOMMON_INCLUDE_DIRS} + ${LLIMAGE_INCLUDE_DIRS} + ${LLMATH_INCLUDE_DIRS} + ${LLRENDER_INCLUDE_DIRS} + ${LLUI_INCLUDE_DIRS} + ${LLVFS_INCLUDE_DIRS} + ${LLWINDOW_INCLUDE_DIRS} + ${LLXML_INCLUDE_DIRS} + ) + +set(llui_libtest_SOURCE_FILES + llui_libtest.cpp + llwidgetreg.cpp + ) + +set(llui_libtest_HEADER_FILES + CMakeLists.txt + llui_libtest.h + llwidgetreg.h + ) + +set_source_files_properties(${llui_libtest_HEADER_FILES} + PROPERTIES HEADER_FILE_ONLY TRUE) + +list(APPEND llui_libtest_SOURCE_FILES ${llui_libtest_HEADER_FILES}) + +add_executable(llui_libtest ${llui_libtest_SOURCE_FILES}) + +# Link with OS-specific libraries for LLWindow dependency +if (DARWIN) + find_library(COCOA_LIBRARY Cocoa) + set(OS_LIBRARIES ${COCOA_LIBRARY}) +elseif (WINDOWS) + set(OS_LIBRARIES ${WINDOWS_LIBRARIES}) +elseif (LINUX) + set(OS_LIBRARIES) +else (DARWIN) + message(FATAL_ERROR "unknown platform") +endif (DARWIN) + +# Libraries on which this library depends, needed for Linux builds +# Sort by high-level to low-level +target_link_libraries(llui_libtest + llui + ${OS_LIBRARIES} + ${GOOGLE_PERFTOOLS_LIBRARIES} + ) + +if (WINDOWS) + set_target_properties(llui_libtest + PROPERTIES + LINK_FLAGS "/NODEFAULTLIB:LIBCMT" + LINK_FLAGS_DEBUG "/NODEFAULTLIB:MSVCRT /NODEFAULTLIB:LIBCMTD" + ) + + # Copy over OpenJPEG.dll + # *NOTE: On Windows with VS2005, only the first comment prints + set(OPENJPEG_RELEASE + "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/release/openjpeg.dll") + add_custom_command( TARGET llui_libtest POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${OPENJPEG_RELEASE} ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Copying OpenJPEG DLLs to binary directory" + ) + set(OPENJPEG_DEBUG + "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/debug/openjpegd.dll") + add_custom_command( TARGET llui_libtest POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${OPENJPEG_DEBUG} ${CMAKE_CURRENT_BINARY_DIR} + ) +endif (WINDOWS) + +if (VIEWER) + # Ensure people working on the viewer don't break this library + # *NOTE: This could be removed, or only built by Parabuild, if the build + # and link times become too long. JC + add_dependencies(viewer llui_libtest) +endif (VIEWER) diff --git a/indra/integration_tests/llui_libtest/llui_libtest.cpp b/indra/integration_tests/llui_libtest/llui_libtest.cpp new file mode 100644 index 0000000000..f8caa7990b --- /dev/null +++ b/indra/integration_tests/llui_libtest/llui_libtest.cpp @@ -0,0 +1,196 @@ +/** + * @file llui_libtest.cpp + * @brief Integration test for the LLUI library + * + * $LicenseInfo:firstyear=2009&license=viewergpl$ + * + * Copyright (c) 2002-2009, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ +#include "linden_common.h" + +#include "llui_libtest.h" + +// project includes +#include "llwidgetreg.h" + +// linden library includes +#include "llcontrol.h" // LLControlGroup +#include "lldir.h" +#include "llerrorcontrol.h" +#include "llfloater.h" +#include "llfontgl.h" +#include "lltrans.h" +#include "llui.h" +#include "lluictrlfactory.h" + +#include + +// *TODO: switch to using TUT +// *TODO: teach Parabuild about this program, run automatically after full builds + +// We can't create LLImageGL objects because we have no window or rendering +// context. Provide enough of an LLUIImage to test the LLUI library without +// an underlying image. +class TestUIImage : public LLUIImage +{ +public: + TestUIImage() + : LLUIImage( std::string(), NULL ) // NULL ImageGL, don't deref! + { } + + /*virtual*/ S32 getWidth() const + { + return 16; + } + + /*virtual*/ S32 getHeight() const + { + return 16; + } +}; + +// We need to supply dummy images +class TestImageProvider : public LLImageProviderInterface +{ +public: + /*virtual*/ LLPointer getUIImage(const std::string& name) + { + return makeImage(); + } + + /*virtual*/ LLPointer getUIImageByID(const LLUUID& id) + { + return makeImage(); + } + + /*virtual*/ void cleanUp() + { + } + + LLPointer makeImage() + { + LLPointer image_gl; + LLPointer image = new LLUIImage( std::string(), image_gl); + return image; + } +}; + +static std::string get_xui_dir() +{ + std::string delim = gDirUtilp->getDirDelimiter(); + return gDirUtilp->getAppRODataDir() + delim + std::string("skins") + delim + "default" + delim + "xui" + delim; +} + +int main(int argc, char** argv) +{ + // Must init LLError for llerrs to actually cause errors. + LLError::initForApplication("."); + + // Font lookup needs directory support + gDirUtilp->initAppDirs("SecondLife", "../../../newview"); + gDirUtilp->setSkinFolder("default"); + + std::string config_filename = gDirUtilp->getExpandedFilename( + LL_PATH_APP_SETTINGS, "settings.xml"); + LLControlGroup config_group("config"); + config_group.loadFromFile(config_filename); + + std::string color_filename = gDirUtilp->getExpandedFilename( + LL_PATH_DEFAULT_SKIN, "colors.xml"); + LLControlGroup color_group("color"); + color_group.loadFromFile(color_filename); + + LLControlGroup floater_group("floater"); + LLControlGroup ignores_group("ignores"); + LLUI::settings_map_t settings; + settings["config"] = &config_group; + settings["color"] = &color_group; + settings["floater"] = &floater_group; + settings["ignores"] = &ignores_group; + + // Don't use real images as we don't have a GL context + TestImageProvider image_provider; + LLUI::initClass(settings, &image_provider); + + const bool no_register_widgets = false; + LLWidgetReg::initClass( no_register_widgets ); + + // Unclear if this is needed + LLUI::setupPaths(); + // Otherwise we get translation warnings when setting up floaters + // (tooltips for buttons) + std::set default_args; + LLTrans::parseStrings("strings.xml", default_args); + + LLFontManager::initClass(); + + // Creating widgets apparently requires fonts to be initialized, + // otherwise it crashes. + LLFontGL::initClass(96.f, 1.f, 1.f, + gDirUtilp->getAppRODataDir(), + LLUI::getXUIPaths(), + false ); // don't create gl textures + + LLFloaterView::Params fvparams; + fvparams.name("Floater View"); + fvparams.rect( LLRect(0,480,640,0) ); + fvparams.mouse_opaque(false); + fvparams.follows.flags(FOLLOWS_ALL); + fvparams.tab_stop(false); + gFloaterView = LLUICtrlFactory::create (fvparams); + + // Convert all test floaters to new XML format + std::string delim = gDirUtilp->getDirDelimiter(); + std::string xui_dir = get_xui_dir() + "en" + delim; + std::string filename; + while (gDirUtilp->getNextFileInDir(xui_dir, "floater_test_*.xml", filename, false)) + { + if (filename.find("_new.xml") != std::string::npos) + { + // don't re-export other test floaters + continue; + } + llinfos << "Converting " << filename << llendl; + // Build a floater and output new attributes + LLXMLNodePtr output_node = new LLXMLNode(); + LLFloater* floater = new LLFloater(); + LLUICtrlFactory::getInstance()->buildFloater(floater, + filename, + FALSE, // don't open floater + output_node); + std::string out_filename = xui_dir + filename; + std::string::size_type extension_pos = out_filename.rfind(".xml"); + out_filename.resize(extension_pos); + out_filename += "_new.xml"; + + llinfos << "Output: " << out_filename << llendl; + LLFILE* floater_file = LLFile::fopen(out_filename.c_str(), "w"); + LLXMLNode::writeHeaderToFile(floater_file); + output_node->writeToFile(floater_file); + fclose(floater_file); + } + return 0; +} diff --git a/indra/integration_tests/llui_libtest/llui_libtest.h b/indra/integration_tests/llui_libtest/llui_libtest.h new file mode 100644 index 0000000000..a84d57dba9 --- /dev/null +++ b/indra/integration_tests/llui_libtest/llui_libtest.h @@ -0,0 +1,36 @@ +/** + * @file llui_libtest.h + * + * $LicenseInfo:firstyear=2009&license=viewergpl$ + * + * Copyright (c) 2002-2009, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ +#ifndef LLUI_LIBTEST_H +#define LLUI_LIBTEST_H + +// TODO + +#endif diff --git a/indra/integration_tests/llui_libtest/llwidgetreg.cpp b/indra/integration_tests/llui_libtest/llwidgetreg.cpp new file mode 100644 index 0000000000..417f3059d6 --- /dev/null +++ b/indra/integration_tests/llui_libtest/llwidgetreg.cpp @@ -0,0 +1,106 @@ +/** + * @file llwidgetreg.cpp + * + * $LicenseInfo:firstyear=2009&license=viewergpl$ + * + * Copyright (c) 2002-2009, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ +#include "linden_common.h" + +#include "llwidgetreg.h" + +#include "llbutton.h" +#include "llcheckboxctrl.h" +#include "llcombobox.h" +#include "llcontainerview.h" +#include "lliconctrl.h" +#include "llmenugl.h" +#include "llmultislider.h" +#include "llmultisliderctrl.h" +#include "llprogressbar.h" +#include "llradiogroup.h" +#include "llscrollcontainer.h" +#include "llscrollingpanellist.h" +#include "llscrolllistctrl.h" +#include "llslider.h" +#include "llsliderctrl.h" +#include "llspinctrl.h" +#include "llstatview.h" +#include "lltabcontainer.h" +#include "lltextbox.h" +#include "lltexteditor.h" +#include "llflyoutbutton.h" +#include "llsearcheditor.h" +#include "lllayoutstack.h" + +void LLWidgetReg::initClass(bool register_widgets) +{ + // Only need to register if the Windows linker has optimized away the + // references to the object files. + if (register_widgets) + { + LLDefaultWidgetRegistry::Register button("button"); + LLDefaultWidgetRegistry::Register check_box("check_box"); + LLDefaultWidgetRegistry::Register combo_box("combo_box"); + LLDefaultWidgetRegistry::Register flyout_button("flyout_button"); + LLDefaultWidgetRegistry::Register container_view("container_view"); + LLDefaultWidgetRegistry::Register icon("icon"); + LLDefaultWidgetRegistry::Register line_editor("line_editor"); + LLDefaultWidgetRegistry::Register search_editor("search_editor"); + LLDefaultWidgetRegistry::Register menu_item_separator("menu_item_separator"); + LLDefaultWidgetRegistry::Register menu_item_call_gl("menu_item_call"); + LLDefaultWidgetRegistry::Register menu_item_check_gl("menu_item_check"); + LLDefaultWidgetRegistry::Register menu("menu"); + LLDefaultWidgetRegistry::Register menu_bar("menu_bar"); + LLDefaultWidgetRegistry::Register context_menu("context_menu"); + LLDefaultWidgetRegistry::Register multi_slider_bar("multi_slider_bar"); + LLDefaultWidgetRegistry::Register multi_slider("multi_slider"); + LLDefaultWidgetRegistry::Register panel("panel", &LLPanel::fromXML); + LLDefaultWidgetRegistry::Register layout_stack("layout_stack", &LLLayoutStack::fromXML); + LLDefaultWidgetRegistry::Register progress_bar("progress_bar"); + LLDefaultWidgetRegistry::Register radio_group("radio_group"); + LLDefaultWidgetRegistry::Register radio_item("radio_item"); + LLDefaultWidgetRegistry::Register scroll_container("scroll_container"); + LLDefaultWidgetRegistry::Register scrolling_panel_list("scrolling_panel_list"); + LLDefaultWidgetRegistry::Register scroll_list("scroll_list"); + LLDefaultWidgetRegistry::Register slider_bar("slider_bar"); + LLDefaultWidgetRegistry::Register slider("slider"); + LLDefaultWidgetRegistry::Register spinner("spinner"); + LLDefaultWidgetRegistry::Register stat_bar("stat_bar"); + //LLDefaultWidgetRegistry::Register placeholder("placeholder"); + LLDefaultWidgetRegistry::Register tab_container("tab_container"); + LLDefaultWidgetRegistry::Register text("text"); + LLDefaultWidgetRegistry::Register simple_text_editor("simple_text_editor"); + LLDefaultWidgetRegistry::Register ui_ctrl("ui_ctrl"); + LLDefaultWidgetRegistry::Register stat_view("stat_view"); + //LLDefaultWidgetRegistry::Register locate("locate"); + //LLDefaultWidgetRegistry::Register pad("pad"); + LLDefaultWidgetRegistry::Register view_border("view_border"); + } + + // *HACK: Usually this is registered as a viewer text editor + LLDefaultWidgetRegistry::Register text_editor("text_editor"); +} diff --git a/indra/integration_tests/llui_libtest/llwidgetreg.h b/indra/integration_tests/llui_libtest/llwidgetreg.h new file mode 100644 index 0000000000..eac818608d --- /dev/null +++ b/indra/integration_tests/llui_libtest/llwidgetreg.h @@ -0,0 +1,43 @@ +/** + * @file llwidgetreg.h + * + * $LicenseInfo:firstyear=2009&license=viewergpl$ + * + * Copyright (c) 2002-2009, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ +#ifndef LLWIDGETREG_H +#define LLWIDGETREG_H + +// Register all widgets with the builder registry. +// Useful on Windows where linker discards all references to the +// static LLDefaultWidgetRegistry::Register<> calls. +class LLWidgetReg +{ +public: + static void initClass(bool register_widgets); +}; + +#endif -- cgit v1.2.3 From 68da2bdfee46bcdb7a9893e05f30bfe0a2d9aaf6 Mon Sep 17 00:00:00 2001 From: James Cook Date: Tue, 23 Jun 2009 22:54:48 +0000 Subject: Merge build patch for Linux server builds from xui-army. I believe this fixes the "llui_libtest -lllui not found" build error. Merging revisions 123378-123379 of svn+ssh://svn.lindenlab.com/svn/linden/branches/skinning/xui-army into G:\viewer-2-0-link\latest, respecting ancestry --- indra/integration_tests/llui_libtest/CMakeLists.txt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'indra/integration_tests') diff --git a/indra/integration_tests/llui_libtest/CMakeLists.txt b/indra/integration_tests/llui_libtest/CMakeLists.txt index 68556ac4ab..88564c6085 100644 --- a/indra/integration_tests/llui_libtest/CMakeLists.txt +++ b/indra/integration_tests/llui_libtest/CMakeLists.txt @@ -1,5 +1,9 @@ # -*- cmake -*- +# Only set this up for viewer builds, because the llui library is most closely +# related to the viewer +if (VIEWER) + project (llui_libtest) include(00-Common) @@ -89,9 +93,9 @@ if (WINDOWS) ) endif (WINDOWS) -if (VIEWER) - # Ensure people working on the viewer don't break this library - # *NOTE: This could be removed, or only built by Parabuild, if the build - # and link times become too long. JC - add_dependencies(viewer llui_libtest) +# Ensure people working on the viewer don't break this library +# *NOTE: This could be removed, or only built by Parabuild, if the build +# and link times become too long. JC +add_dependencies(viewer llui_libtest) + endif (VIEWER) -- cgit v1.2.3 From 52aeaa32841e7d0b37abab0a2a2540c2be2f16b7 Mon Sep 17 00:00:00 2001 From: James Cook Date: Tue, 7 Jul 2009 00:53:05 +0000 Subject: Merge skinning-14 to viewer-2, including refactoring many floaters to register them with LLFloaterReg, support for introspection of ParamBlock based UI widgets to dump XML schema, splitting llfolderview.cpp into three separate files to unravel dependencies and skeleton for for LLListView widget. Resolved conflicts in these files: lldraghandle.h, lluictrl.h, llchiclet.cpp, llfolderview.h/cpp, lliinventorybridge.cpp, llpanelpicks.cpp, llviewermenu.cpp, floater_mute.xml, floater_preferences.xml, notifications.xml, panel_preferences_audio.xml, panel_preferences_graphics1.xml, panel_region_general.xml svn merge -r124961:126284 svn+ssh://svn.lindenlab.com/svn/linden/branches/skinning/skinning-14 --- .../llui_libtest/llui_libtest.cpp | 60 ++++++++++------- .../integration_tests/llui_libtest/llwidgetreg.cpp | 76 +++++++++++----------- indra/integration_tests/llui_libtest/llwidgetreg.h | 2 +- 3 files changed, 77 insertions(+), 61 deletions(-) (limited to 'indra/integration_tests') diff --git a/indra/integration_tests/llui_libtest/llui_libtest.cpp b/indra/integration_tests/llui_libtest/llui_libtest.cpp index f8caa7990b..1e5de74e92 100644 --- a/indra/integration_tests/llui_libtest/llui_libtest.cpp +++ b/indra/integration_tests/llui_libtest/llui_libtest.cpp @@ -104,25 +104,27 @@ static std::string get_xui_dir() return gDirUtilp->getAppRODataDir() + delim + std::string("skins") + delim + "default" + delim + "xui" + delim; } -int main(int argc, char** argv) +void init_llui() { - // Must init LLError for llerrs to actually cause errors. - LLError::initForApplication("."); - // Font lookup needs directory support - gDirUtilp->initAppDirs("SecondLife", "../../../newview"); +#if LL_DARWIN + const char* newview_path = "../../../../newview"; +#else + const char* newview_path = "../../../newview"; +#endif + gDirUtilp->initAppDirs("SecondLife", newview_path); gDirUtilp->setSkinFolder("default"); - + std::string config_filename = gDirUtilp->getExpandedFilename( - LL_PATH_APP_SETTINGS, "settings.xml"); + LL_PATH_APP_SETTINGS, "settings.xml"); LLControlGroup config_group("config"); config_group.loadFromFile(config_filename); - + std::string color_filename = gDirUtilp->getExpandedFilename( - LL_PATH_DEFAULT_SKIN, "colors.xml"); + LL_PATH_DEFAULT_SKIN, "colors.xml"); LLControlGroup color_group("color"); color_group.loadFromFile(color_filename); - + LLControlGroup floater_group("floater"); LLControlGroup ignores_group("ignores"); LLUI::settings_map_t settings; @@ -130,14 +132,14 @@ int main(int argc, char** argv) settings["color"] = &color_group; settings["floater"] = &floater_group; settings["ignores"] = &ignores_group; - + // Don't use real images as we don't have a GL context TestImageProvider image_provider; LLUI::initClass(settings, &image_provider); - + const bool no_register_widgets = false; LLWidgetReg::initClass( no_register_widgets ); - + // Unclear if this is needed LLUI::setupPaths(); // Otherwise we get translation warnings when setting up floaters @@ -146,14 +148,14 @@ int main(int argc, char** argv) LLTrans::parseStrings("strings.xml", default_args); LLFontManager::initClass(); - + // Creating widgets apparently requires fonts to be initialized, // otherwise it crashes. LLFontGL::initClass(96.f, 1.f, 1.f, - gDirUtilp->getAppRODataDir(), - LLUI::getXUIPaths(), - false ); // don't create gl textures - + gDirUtilp->getAppRODataDir(), + LLUI::getXUIPaths(), + false ); // don't create gl textures + LLFloaterView::Params fvparams; fvparams.name("Floater View"); fvparams.rect( LLRect(0,480,640,0) ); @@ -161,7 +163,10 @@ int main(int argc, char** argv) fvparams.follows.flags(FOLLOWS_ALL); fvparams.tab_stop(false); gFloaterView = LLUICtrlFactory::create (fvparams); +} +void export_test_floaters() +{ // Convert all test floaters to new XML format std::string delim = gDirUtilp->getDirDelimiter(); std::string xui_dir = get_xui_dir() + "en" + delim; @@ -178,19 +183,30 @@ int main(int argc, char** argv) LLXMLNodePtr output_node = new LLXMLNode(); LLFloater* floater = new LLFloater(); LLUICtrlFactory::getInstance()->buildFloater(floater, - filename, - FALSE, // don't open floater - output_node); + filename, + FALSE, // don't open floater + output_node); std::string out_filename = xui_dir + filename; std::string::size_type extension_pos = out_filename.rfind(".xml"); out_filename.resize(extension_pos); out_filename += "_new.xml"; - + llinfos << "Output: " << out_filename << llendl; LLFILE* floater_file = LLFile::fopen(out_filename.c_str(), "w"); LLXMLNode::writeHeaderToFile(floater_file); output_node->writeToFile(floater_file); fclose(floater_file); } +} + +int main(int argc, char** argv) +{ + // Must init LLError for llerrs to actually cause errors. + LLError::initForApplication("."); + + init_llui(); + + export_test_floaters(); + return 0; } diff --git a/indra/integration_tests/llui_libtest/llwidgetreg.cpp b/indra/integration_tests/llui_libtest/llwidgetreg.cpp index 417f3059d6..4e59971f29 100644 --- a/indra/integration_tests/llui_libtest/llwidgetreg.cpp +++ b/indra/integration_tests/llui_libtest/llwidgetreg.cpp @@ -62,45 +62,45 @@ void LLWidgetReg::initClass(bool register_widgets) // references to the object files. if (register_widgets) { - LLDefaultWidgetRegistry::Register button("button"); - LLDefaultWidgetRegistry::Register check_box("check_box"); - LLDefaultWidgetRegistry::Register combo_box("combo_box"); - LLDefaultWidgetRegistry::Register flyout_button("flyout_button"); - LLDefaultWidgetRegistry::Register container_view("container_view"); - LLDefaultWidgetRegistry::Register icon("icon"); - LLDefaultWidgetRegistry::Register line_editor("line_editor"); - LLDefaultWidgetRegistry::Register search_editor("search_editor"); - LLDefaultWidgetRegistry::Register menu_item_separator("menu_item_separator"); - LLDefaultWidgetRegistry::Register menu_item_call_gl("menu_item_call"); - LLDefaultWidgetRegistry::Register menu_item_check_gl("menu_item_check"); - LLDefaultWidgetRegistry::Register menu("menu"); - LLDefaultWidgetRegistry::Register menu_bar("menu_bar"); - LLDefaultWidgetRegistry::Register context_menu("context_menu"); - LLDefaultWidgetRegistry::Register multi_slider_bar("multi_slider_bar"); - LLDefaultWidgetRegistry::Register multi_slider("multi_slider"); - LLDefaultWidgetRegistry::Register panel("panel", &LLPanel::fromXML); - LLDefaultWidgetRegistry::Register layout_stack("layout_stack", &LLLayoutStack::fromXML); - LLDefaultWidgetRegistry::Register progress_bar("progress_bar"); - LLDefaultWidgetRegistry::Register radio_group("radio_group"); - LLDefaultWidgetRegistry::Register radio_item("radio_item"); - LLDefaultWidgetRegistry::Register scroll_container("scroll_container"); - LLDefaultWidgetRegistry::Register scrolling_panel_list("scrolling_panel_list"); - LLDefaultWidgetRegistry::Register scroll_list("scroll_list"); - LLDefaultWidgetRegistry::Register slider_bar("slider_bar"); - LLDefaultWidgetRegistry::Register slider("slider"); - LLDefaultWidgetRegistry::Register spinner("spinner"); - LLDefaultWidgetRegistry::Register stat_bar("stat_bar"); - //LLDefaultWidgetRegistry::Register placeholder("placeholder"); - LLDefaultWidgetRegistry::Register tab_container("tab_container"); - LLDefaultWidgetRegistry::Register text("text"); - LLDefaultWidgetRegistry::Register simple_text_editor("simple_text_editor"); - LLDefaultWidgetRegistry::Register ui_ctrl("ui_ctrl"); - LLDefaultWidgetRegistry::Register stat_view("stat_view"); - //LLDefaultWidgetRegistry::Register locate("locate"); - //LLDefaultWidgetRegistry::Register pad("pad"); - LLDefaultWidgetRegistry::Register view_border("view_border"); + LLDefaultChildRegistry::Register button("button"); + LLDefaultChildRegistry::Register check_box("check_box"); + LLDefaultChildRegistry::Register combo_box("combo_box"); + LLDefaultChildRegistry::Register flyout_button("flyout_button"); + LLDefaultChildRegistry::Register container_view("container_view"); + LLDefaultChildRegistry::Register icon("icon"); + LLDefaultChildRegistry::Register line_editor("line_editor"); + LLDefaultChildRegistry::Register search_editor("search_editor"); + LLDefaultChildRegistry::Register menu_item_separator("menu_item_separator"); + LLDefaultChildRegistry::Register menu_item_call_gl("menu_item_call"); + LLDefaultChildRegistry::Register menu_item_check_gl("menu_item_check"); + LLDefaultChildRegistry::Register menu("menu"); + LLDefaultChildRegistry::Register menu_bar("menu_bar"); + LLDefaultChildRegistry::Register context_menu("context_menu"); + LLDefaultChildRegistry::Register multi_slider_bar("multi_slider_bar"); + LLDefaultChildRegistry::Register multi_slider("multi_slider"); + LLDefaultChildRegistry::Register panel("panel", &LLPanel::fromXML); + LLDefaultChildRegistry::Register layout_stack("layout_stack", &LLLayoutStack::fromXML); + LLDefaultChildRegistry::Register progress_bar("progress_bar"); + LLDefaultChildRegistry::Register radio_group("radio_group"); + LLDefaultChildRegistry::Register radio_item("radio_item"); + LLDefaultChildRegistry::Register scroll_container("scroll_container"); + LLDefaultChildRegistry::Register scrolling_panel_list("scrolling_panel_list"); + LLDefaultChildRegistry::Register scroll_list("scroll_list"); + LLDefaultChildRegistry::Register slider_bar("slider_bar"); + LLDefaultChildRegistry::Register slider("slider"); + LLDefaultChildRegistry::Register spinner("spinner"); + LLDefaultChildRegistry::Register stat_bar("stat_bar"); + //LLDefaultChildRegistry::Register placeholder("placeholder"); + LLDefaultChildRegistry::Register tab_container("tab_container"); + LLDefaultChildRegistry::Register text("text"); + LLDefaultChildRegistry::Register simple_text_editor("simple_text_editor"); + LLDefaultChildRegistry::Register ui_ctrl("ui_ctrl"); + LLDefaultChildRegistry::Register stat_view("stat_view"); + //LLDefaultChildRegistry::Register locate("locate"); + //LLDefaultChildRegistry::Register pad("pad"); + LLDefaultChildRegistry::Register view_border("view_border"); } // *HACK: Usually this is registered as a viewer text editor - LLDefaultWidgetRegistry::Register text_editor("text_editor"); + LLDefaultChildRegistry::Register text_editor("text_editor"); } diff --git a/indra/integration_tests/llui_libtest/llwidgetreg.h b/indra/integration_tests/llui_libtest/llwidgetreg.h index eac818608d..4e0bc5377a 100644 --- a/indra/integration_tests/llui_libtest/llwidgetreg.h +++ b/indra/integration_tests/llui_libtest/llwidgetreg.h @@ -33,7 +33,7 @@ // Register all widgets with the builder registry. // Useful on Windows where linker discards all references to the -// static LLDefaultWidgetRegistry::Register<> calls. +// static LLDefaultChildRegistry::Register<> calls. class LLWidgetReg { public: -- cgit v1.2.3 From 77f56a3f3db72b2938eadb0868fc7be975dabafa Mon Sep 17 00:00:00 2001 From: Xiaohong Bao Date: Fri, 10 Jul 2009 22:02:26 +0000 Subject: merge QAR-1579: texture-cleanup-1. --- indra/integration_tests/llui_libtest/llui_libtest.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'indra/integration_tests') diff --git a/indra/integration_tests/llui_libtest/llui_libtest.cpp b/indra/integration_tests/llui_libtest/llui_libtest.cpp index 1e5de74e92..481dd93493 100644 --- a/indra/integration_tests/llui_libtest/llui_libtest.cpp +++ b/indra/integration_tests/llui_libtest/llui_libtest.cpp @@ -72,6 +72,7 @@ public: } }; +class LLTexture ; // We need to supply dummy images class TestImageProvider : public LLImageProviderInterface { @@ -92,7 +93,7 @@ public: LLPointer makeImage() { - LLPointer image_gl; + LLPointer image_gl; LLPointer image = new LLUIImage( std::string(), image_gl); return image; } -- cgit v1.2.3 From 09d9b0556e8cf6c0a716e5b2c78b265799486331 Mon Sep 17 00:00:00 2001 From: Monroe Williams Date: Wed, 15 Jul 2009 23:16:09 +0000 Subject: svn merge -r 127173:127174 svn+ssh://svn.lindenlab.com/svn/linden/branches/pluginapi/pluginapi_04 Cherry-picking a change to the code that uses the copy of skins in the development tree instead of the version in the app bundle on the mac. Reviewed by James. --- indra/integration_tests/llui_libtest/llui_libtest.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/integration_tests') diff --git a/indra/integration_tests/llui_libtest/llui_libtest.cpp b/indra/integration_tests/llui_libtest/llui_libtest.cpp index 481dd93493..e0117eca06 100644 --- a/indra/integration_tests/llui_libtest/llui_libtest.cpp +++ b/indra/integration_tests/llui_libtest/llui_libtest.cpp @@ -102,7 +102,7 @@ public: static std::string get_xui_dir() { std::string delim = gDirUtilp->getDirDelimiter(); - return gDirUtilp->getAppRODataDir() + delim + std::string("skins") + delim + "default" + delim + "xui" + delim; + return gDirUtilp->getSkinBaseDir() + delim + "default" + delim + "xui" + delim; } void init_llui() -- cgit v1.2.3 From 8f7ec64899c54dcee6caa0307510cc4003ba7bdd Mon Sep 17 00:00:00 2001 From: James Cook Date: Mon, 27 Jul 2009 17:56:26 +0000 Subject: Merged skinning-17 into viewer-2 for bug fixes. Commented out new IM window for now, not complete. Merging revisions 127913-128319 of svn+ssh://svn.lindenlab.com/svn/linden/branches/skinning/skinning-17 into D:\viewer-2.0.0-3, respecting ancestry --- indra/integration_tests/llui_libtest/llui_libtest.cpp | 1 + indra/integration_tests/llui_libtest/llwidgetreg.cpp | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'indra/integration_tests') diff --git a/indra/integration_tests/llui_libtest/llui_libtest.cpp b/indra/integration_tests/llui_libtest/llui_libtest.cpp index e0117eca06..54fc167adf 100644 --- a/indra/integration_tests/llui_libtest/llui_libtest.cpp +++ b/indra/integration_tests/llui_libtest/llui_libtest.cpp @@ -41,6 +41,7 @@ #include "lldir.h" #include "llerrorcontrol.h" #include "llfloater.h" +#include "llfontfreetype.h" #include "llfontgl.h" #include "lltrans.h" #include "llui.h" diff --git a/indra/integration_tests/llui_libtest/llwidgetreg.cpp b/indra/integration_tests/llui_libtest/llwidgetreg.cpp index 4e59971f29..5a97f2aefd 100644 --- a/indra/integration_tests/llui_libtest/llwidgetreg.cpp +++ b/indra/integration_tests/llui_libtest/llwidgetreg.cpp @@ -42,6 +42,7 @@ #include "llmultisliderctrl.h" #include "llprogressbar.h" #include "llradiogroup.h" +#include "llsearcheditor.h" #include "llscrollcontainer.h" #include "llscrollingpanellist.h" #include "llscrolllistctrl.h" @@ -53,7 +54,7 @@ #include "lltextbox.h" #include "lltexteditor.h" #include "llflyoutbutton.h" -#include "llsearcheditor.h" +#include "llfiltereditor.h" #include "lllayoutstack.h" void LLWidgetReg::initClass(bool register_widgets) @@ -65,11 +66,11 @@ void LLWidgetReg::initClass(bool register_widgets) LLDefaultChildRegistry::Register button("button"); LLDefaultChildRegistry::Register check_box("check_box"); LLDefaultChildRegistry::Register combo_box("combo_box"); + LLDefaultChildRegistry::Register filter_editor("filter_editor"); LLDefaultChildRegistry::Register flyout_button("flyout_button"); LLDefaultChildRegistry::Register container_view("container_view"); LLDefaultChildRegistry::Register icon("icon"); LLDefaultChildRegistry::Register line_editor("line_editor"); - LLDefaultChildRegistry::Register search_editor("search_editor"); LLDefaultChildRegistry::Register menu_item_separator("menu_item_separator"); LLDefaultChildRegistry::Register menu_item_call_gl("menu_item_call"); LLDefaultChildRegistry::Register menu_item_check_gl("menu_item_check"); @@ -83,6 +84,7 @@ void LLWidgetReg::initClass(bool register_widgets) LLDefaultChildRegistry::Register progress_bar("progress_bar"); LLDefaultChildRegistry::Register radio_group("radio_group"); LLDefaultChildRegistry::Register radio_item("radio_item"); + LLDefaultChildRegistry::Register search_editor("search_editor"); LLDefaultChildRegistry::Register scroll_container("scroll_container"); LLDefaultChildRegistry::Register scrolling_panel_list("scrolling_panel_list"); LLDefaultChildRegistry::Register scroll_list("scroll_list"); -- cgit v1.2.3 From eb853f55c07ae4a3c3f2aa05fbabcf2e4b4dc115 Mon Sep 17 00:00:00 2001 From: Richard Nelson Date: Tue, 4 Aug 2009 01:12:59 +0000 Subject: svn merge -r 128442:129343 svn+ssh://svn.lindenlab.com/svn/linden/branches/skinning/skinning-18 into svn+ssh://svn.lindenlab.com/svn/linden/branches/viewer/viewer-2.0.0-3 --- .../llui_libtest/llui_libtest.cpp | 45 +++++++++++++--------- 1 file changed, 26 insertions(+), 19 deletions(-) (limited to 'indra/integration_tests') diff --git a/indra/integration_tests/llui_libtest/llui_libtest.cpp b/indra/integration_tests/llui_libtest/llui_libtest.cpp index 54fc167adf..3d433fdfdc 100644 --- a/indra/integration_tests/llui_libtest/llui_libtest.cpp +++ b/indra/integration_tests/llui_libtest/llui_libtest.cpp @@ -52,6 +52,11 @@ // *TODO: switch to using TUT // *TODO: teach Parabuild about this program, run automatically after full builds +// I believe these must be globals, not stack variables. JC +LLControlGroup gSavedSettings("Global"); // saved at end of session +LLControlGroup gSavedPerAccountSettings("PerAccount"); // saved at end of session +LLControlGroup gWarningSettings("Warnings"); // persists ignored dialogs/warnings + // We can't create LLImageGL objects because we have no window or rendering // context. Provide enough of an LLUIImage to test the LLUI library without // an underlying image. @@ -73,6 +78,7 @@ public: } }; + class LLTexture ; // We need to supply dummy images class TestImageProvider : public LLImageProviderInterface @@ -95,10 +101,16 @@ public: LLPointer makeImage() { LLPointer image_gl; - LLPointer image = new LLUIImage( std::string(), image_gl); + LLPointer image = new TestUIImage(); //LLUIImage( std::string(), image_gl); + mImageList.push_back(image); return image; } + +public: + // Unclear if we need this, hold on to one copy of each image we make + std::vector > mImageList; }; +TestImageProvider gTestImageProvider; static std::string get_xui_dir() { @@ -117,27 +129,22 @@ void init_llui() gDirUtilp->initAppDirs("SecondLife", newview_path); gDirUtilp->setSkinFolder("default"); + // colors are no longer stored in a LLControlGroup file + LLUIColorTable::instance().loadFromSettings(); + std::string config_filename = gDirUtilp->getExpandedFilename( LL_PATH_APP_SETTINGS, "settings.xml"); - LLControlGroup config_group("config"); - config_group.loadFromFile(config_filename); - - std::string color_filename = gDirUtilp->getExpandedFilename( - LL_PATH_DEFAULT_SKIN, "colors.xml"); - LLControlGroup color_group("color"); - color_group.loadFromFile(color_filename); + gSavedSettings.loadFromFile(config_filename); - LLControlGroup floater_group("floater"); - LLControlGroup ignores_group("ignores"); + // See LLAppViewer::init() LLUI::settings_map_t settings; - settings["config"] = &config_group; - settings["color"] = &color_group; - settings["floater"] = &floater_group; - settings["ignores"] = &ignores_group; + settings["config"] = &gSavedSettings; + settings["ignores"] = &gWarningSettings; + settings["floater"] = &gSavedSettings; + settings["account"] = &gSavedPerAccountSettings; // Don't use real images as we don't have a GL context - TestImageProvider image_provider; - LLUI::initClass(settings, &image_provider); + LLUI::initClass(settings, &gTestImageProvider); const bool no_register_widgets = false; LLWidgetReg::initClass( no_register_widgets ); @@ -148,7 +155,7 @@ void init_llui() // (tooltips for buttons) std::set default_args; LLTrans::parseStrings("strings.xml", default_args); - + LLTrans::parseLanguageStrings("language_settings.xml"); LLFontManager::initClass(); // Creating widgets apparently requires fonts to be initialized, @@ -183,10 +190,10 @@ void export_test_floaters() llinfos << "Converting " << filename << llendl; // Build a floater and output new attributes LLXMLNodePtr output_node = new LLXMLNode(); - LLFloater* floater = new LLFloater(); + LLFloater* floater = new LLFloater(LLSD()); LLUICtrlFactory::getInstance()->buildFloater(floater, filename, - FALSE, // don't open floater + // FALSE, // don't open floater output_node); std::string out_filename = xui_dir + filename; std::string::size_type extension_pos = out_filename.rfind(".xml"); -- cgit v1.2.3 From c3cbd049859c058526ae9a07a5cbfa7e51085943 Mon Sep 17 00:00:00 2001 From: Adam Moss Date: Fri, 21 Aug 2009 21:52:21 +0000 Subject: svn merge -r130238:130240 svn+ssh://svn.lindenlab.com/svn/linden/branches/linux-updater-6 QAR-1771 Linux Viewer Autoupdater + XUI-parse refactoring --- indra/integration_tests/llui_libtest/CMakeLists.txt | 2 ++ indra/integration_tests/llui_libtest/llui_libtest.cpp | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'indra/integration_tests') diff --git a/indra/integration_tests/llui_libtest/CMakeLists.txt b/indra/integration_tests/llui_libtest/CMakeLists.txt index 88564c6085..1ccdb0f20b 100644 --- a/indra/integration_tests/llui_libtest/CMakeLists.txt +++ b/indra/integration_tests/llui_libtest/CMakeLists.txt @@ -16,6 +16,7 @@ include(LLWindow) include(LLUI) include(LLVFS) # ugh, needed for LLDir include(LLXML) +include(LLXUIXML) include(Linking) # include(Tut) @@ -29,6 +30,7 @@ include_directories( ${LLVFS_INCLUDE_DIRS} ${LLWINDOW_INCLUDE_DIRS} ${LLXML_INCLUDE_DIRS} + ${LLXUIXML_INCLUDE_DIRS} ) set(llui_libtest_SOURCE_FILES diff --git a/indra/integration_tests/llui_libtest/llui_libtest.cpp b/indra/integration_tests/llui_libtest/llui_libtest.cpp index 3d433fdfdc..3631761c93 100644 --- a/indra/integration_tests/llui_libtest/llui_libtest.cpp +++ b/indra/integration_tests/llui_libtest/llui_libtest.cpp @@ -43,7 +43,7 @@ #include "llfloater.h" #include "llfontfreetype.h" #include "llfontgl.h" -#include "lltrans.h" +#include "lltransutil.h" #include "llui.h" #include "lluictrlfactory.h" @@ -154,8 +154,8 @@ void init_llui() // Otherwise we get translation warnings when setting up floaters // (tooltips for buttons) std::set default_args; - LLTrans::parseStrings("strings.xml", default_args); - LLTrans::parseLanguageStrings("language_settings.xml"); + LLTransUtil::parseStrings("strings.xml", default_args); + LLTransUtil::parseLanguageStrings("language_settings.xml"); LLFontManager::initClass(); // Creating widgets apparently requires fonts to be initialized, -- cgit v1.2.3