New Fonts to complain about!
Thanks Drake! Tweaks panels to look good now that font is slightly wider
This commit is contained in:
@@ -15,3 +15,5 @@ else (NOT STANDALONE)
|
|||||||
endif(LINUX AND ${ARCH} STREQUAL "x86_64")
|
endif(LINUX AND ${ARCH} STREQUAL "x86_64")
|
||||||
set(STANDALONE ON)
|
set(STANDALONE ON)
|
||||||
endif(NOT STANDALONE)
|
endif(NOT STANDALONE)
|
||||||
|
|
||||||
|
use_prebuilt_binary(fonts)
|
||||||
|
|||||||
@@ -31,11 +31,8 @@
|
|||||||
|
|
||||||
// Freetype stuff
|
// Freetype stuff
|
||||||
#include <ft2build.h>
|
#include <ft2build.h>
|
||||||
|
|
||||||
// For some reason, this won't work if it's not wrapped in the ifdef
|
|
||||||
#ifdef FT_FREETYPE_H
|
|
||||||
#include FT_FREETYPE_H
|
#include FT_FREETYPE_H
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "llerror.h"
|
#include "llerror.h"
|
||||||
#include "llimage.h"
|
#include "llimage.h"
|
||||||
@@ -279,7 +276,7 @@ F32 LLFontFreetype::getXAdvance(const LLFontGlyphInfo* glyph) const
|
|||||||
|
|
||||||
F32 LLFontFreetype::getXKerning(llwchar char_left, llwchar char_right) const
|
F32 LLFontFreetype::getXKerning(llwchar char_left, llwchar char_right) const
|
||||||
{
|
{
|
||||||
if (mFTFace == NULL)
|
if (mFTFace == nullptr)
|
||||||
return 0.0;
|
return 0.0;
|
||||||
|
|
||||||
//llassert(!mIsFallback);
|
//llassert(!mIsFallback);
|
||||||
@@ -298,7 +295,7 @@ F32 LLFontFreetype::getXKerning(llwchar char_left, llwchar char_right) const
|
|||||||
|
|
||||||
F32 LLFontFreetype::getXKerning(const LLFontGlyphInfo* left_glyph_info, const LLFontGlyphInfo* right_glyph_info) const
|
F32 LLFontFreetype::getXKerning(const LLFontGlyphInfo* left_glyph_info, const LLFontGlyphInfo* right_glyph_info) const
|
||||||
{
|
{
|
||||||
if (mFTFace == NULL)
|
if (mFTFace == nullptr)
|
||||||
return 0.0;
|
return 0.0;
|
||||||
|
|
||||||
U32 left_glyph = left_glyph_info ? left_glyph_info->mGlyphIndex : 0;
|
U32 left_glyph = left_glyph_info ? left_glyph_info->mGlyphIndex : 0;
|
||||||
@@ -487,20 +484,12 @@ void LLFontFreetype::renderGlyph(const U32 glyph_index) const
|
|||||||
if (mFTFace == NULL)
|
if (mFTFace == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
FT_Error error = FT_Load_Glyph(mFTFace, glyph_index, FT_LOAD_DEFAULT);
|
if (FT_Load_Glyph(mFTFace, glyph_index, FT_LOAD_RENDER | FT_LOAD_TARGET_LIGHT) != 0)
|
||||||
#ifdef SHOW_ASSERT
|
|
||||||
if (error)
|
|
||||||
{
|
{
|
||||||
LL_ERRS() << "FT_Load_Glyph returned " << error << LL_ENDL;
|
// If glyph fails to load and/or render, render a fallback character
|
||||||
|
llassert_always(!FT_Load_Char(mFTFace, L'?', FT_LOAD_RENDER | FT_LOAD_TARGET_LIGHT));
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
error = FT_Render_Glyph(mFTFace->glyph, gFontRenderMode);
|
|
||||||
#ifdef SHOW_ASSERT
|
|
||||||
if (error)
|
|
||||||
{
|
|
||||||
LL_ERRS() << "FT_Render_Glyph returned " << error << LL_ENDL;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
mRenderGlyphCount++;
|
mRenderGlyphCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -568,6 +557,7 @@ U8 LLFontFreetype::getStyle() const
|
|||||||
{
|
{
|
||||||
return mStyle;
|
return mStyle;
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLFontFreetype::setSubImageLuminanceAlpha(const U32 x, const U32 y, const U32 bitmap_num, const U32 width, const U32 height, const U8 *data, S32 stride) const
|
void LLFontFreetype::setSubImageLuminanceAlpha(const U32 x, const U32 y, const U32 bitmap_num, const U32 width, const U32 height, const U8 *data, S32 stride) const
|
||||||
{
|
{
|
||||||
LLImageRaw *image_raw = mFontBitmapCachep->getImageRaw(bitmap_num);
|
LLImageRaw *image_raw = mFontBitmapCachep->getImageRaw(bitmap_num);
|
||||||
|
|||||||
@@ -26,24 +26,28 @@
|
|||||||
|
|
||||||
#include "linden_common.h"
|
#include "linden_common.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "llfontgl.h"
|
#include "llfontgl.h"
|
||||||
|
|
||||||
// Linden library includes
|
// Linden library includes
|
||||||
|
#include "llfasttimer.h"
|
||||||
#include "llfontfreetype.h"
|
#include "llfontfreetype.h"
|
||||||
#include "llfontbitmapcache.h"
|
#include "llfontbitmapcache.h"
|
||||||
#include "llfontregistry.h"
|
#include "llfontregistry.h"
|
||||||
#include "llgl.h"
|
#include "llgl.h"
|
||||||
#include "llrender.h"
|
#include "llrender.h"
|
||||||
#include "lltexture.h"
|
|
||||||
#include "v4color.h"
|
|
||||||
#include "llstl.h"
|
#include "llstl.h"
|
||||||
#include "llfasttimer.h"
|
#include "v4color.h"
|
||||||
|
#include "lltexture.h"
|
||||||
|
#include "lldir.h"
|
||||||
|
|
||||||
// Third party library includes
|
// Third party library includes
|
||||||
#include <boost/tokenizer.hpp>
|
#include <boost/tokenizer.hpp>
|
||||||
|
|
||||||
|
#if LL_WINDOWS
|
||||||
|
#include "llwin32headerslean.h"
|
||||||
|
#include <shlobj.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
const S32 BOLD_OFFSET = 1;
|
const S32 BOLD_OFFSET = 1;
|
||||||
|
|
||||||
// static class members
|
// static class members
|
||||||
@@ -52,7 +56,7 @@ F32 LLFontGL::sHorizDPI = 96.f;
|
|||||||
F32 LLFontGL::sScaleX = 1.f;
|
F32 LLFontGL::sScaleX = 1.f;
|
||||||
F32 LLFontGL::sScaleY = 1.f;
|
F32 LLFontGL::sScaleY = 1.f;
|
||||||
BOOL LLFontGL::sDisplayFont = TRUE ;
|
BOOL LLFontGL::sDisplayFont = TRUE ;
|
||||||
std::string LLFontGL::sAppDir;
|
std::string LLFontGL::sFontDir;
|
||||||
|
|
||||||
LLColor4U LLFontGL::sShadowColor(0, 0, 0, 255);
|
LLColor4U LLFontGL::sShadowColor(0, 0, 0, 255);
|
||||||
LLFontRegistry* LLFontGL::sFontRegistry = NULL;
|
LLFontRegistry* LLFontGL::sFontRegistry = NULL;
|
||||||
@@ -937,7 +941,7 @@ void LLFontGL::initClass(F32 screen_dpi, F32 x_scale, F32 y_scale, const std::st
|
|||||||
sHorizDPI = (F32)llfloor(screen_dpi * x_scale);
|
sHorizDPI = (F32)llfloor(screen_dpi * x_scale);
|
||||||
sScaleX = x_scale;
|
sScaleX = x_scale;
|
||||||
sScaleY = y_scale;
|
sScaleY = y_scale;
|
||||||
sAppDir = app_dir;
|
sFontDir = app_dir;
|
||||||
|
|
||||||
// Font registry init
|
// Font registry init
|
||||||
if (!sFontRegistry)
|
if (!sFontRegistry)
|
||||||
@@ -997,7 +1001,7 @@ void LLFontGL::destroyAllGL()
|
|||||||
// static
|
// static
|
||||||
U8 LLFontGL::getStyleFromString(const std::string &style)
|
U8 LLFontGL::getStyleFromString(const std::string &style)
|
||||||
{
|
{
|
||||||
S32 ret = 0;
|
U8 ret = 0;
|
||||||
if (style.find("NORMAL") != style.npos)
|
if (style.find("NORMAL") != style.npos)
|
||||||
{
|
{
|
||||||
ret |= NORMAL;
|
ret |= NORMAL;
|
||||||
@@ -1115,6 +1119,7 @@ LLFontGL::VAlign LLFontGL::vAlignFromName(const std::string& name)
|
|||||||
//else leave baseline
|
//else leave baseline
|
||||||
return gl_vfont_align;
|
return gl_vfont_align;
|
||||||
}
|
}
|
||||||
|
|
||||||
//static
|
//static
|
||||||
LLFontGL* LLFontGL::getFontMonospace()
|
LLFontGL* LLFontGL::getFontMonospace()
|
||||||
{
|
{
|
||||||
@@ -1203,59 +1208,67 @@ LLFontGL* LLFontGL::getFontDefault()
|
|||||||
return getFontSansSerif(); // Fallback to sans serif as default font
|
return getFontSansSerif(); // Fallback to sans serif as default font
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static std::string sSystemFontPath;
|
||||||
|
|
||||||
// static
|
// static
|
||||||
std::string LLFontGL::getFontPathSystem()
|
std::string LLFontGL::getFontPathSystem()
|
||||||
{
|
{
|
||||||
std::string system_path;
|
if (!sSystemFontPath.empty()) return sSystemFontPath;
|
||||||
|
|
||||||
// Try to figure out where the system's font files are stored.
|
|
||||||
char *system_root = NULL;
|
|
||||||
#if LL_WINDOWS
|
#if LL_WINDOWS
|
||||||
system_root = getenv("SystemRoot"); /* Flawfinder: ignore */
|
wchar_t* pPath = nullptr;
|
||||||
if (!system_root)
|
if (SHGetKnownFolderPath(FOLDERID_Fonts, 0, nullptr, &pPath) == S_OK)
|
||||||
{
|
{
|
||||||
LL_WARNS() << "SystemRoot not found, attempting to load fonts from default path." << LL_ENDL;
|
sSystemFontPath = ll_convert_wide_to_string(pPath, CP_UTF8) + gDirUtilp->getDirDelimiter();
|
||||||
}
|
LL_INFOS() << "from SHGetKnownFolderPath(): " << sSystemFontPath << LL_ENDL;
|
||||||
#endif
|
CoTaskMemFree(pPath);
|
||||||
|
pPath = nullptr;
|
||||||
if (system_root)
|
|
||||||
{
|
|
||||||
system_path = llformat("%s/fonts/", system_root);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#if LL_WINDOWS
|
// Try to figure out where the system's font files are stored.
|
||||||
// HACK for windows 98/Me
|
auto system_root = LLStringUtil::getenv("SystemRoot");
|
||||||
system_path = "/WINDOWS/FONTS/";
|
if (! system_root.empty())
|
||||||
#elif LL_DARWIN
|
{
|
||||||
// HACK for Mac OS X
|
sSystemFontPath = gDirUtilp->add(system_root, "fonts") + gDirUtilp->getDirDelimiter();
|
||||||
system_path = "/System/Library/Fonts/";
|
LL_INFOS() << "from SystemRoot: " << sSystemFontPath << LL_ENDL;
|
||||||
#endif
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LL_WARNS() << "SystemRoot not found, attempting to load fonts from default path." << LL_ENDL;
|
||||||
|
// HACK for windows 98/Me
|
||||||
|
sSystemFontPath = "/WINDOWS/FONTS/";
|
||||||
}
|
}
|
||||||
return system_path;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#elif LL_DARWIN
|
||||||
|
// HACK for Mac OS X
|
||||||
|
sSystemFontPath = "/System/Library/Fonts/";
|
||||||
|
#endif
|
||||||
|
return sSystemFontPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
static std::string sLocalFontPath;
|
||||||
|
|
||||||
// static
|
// static
|
||||||
std::string LLFontGL::getFontPathLocal()
|
std::string LLFontGL::getFontPathLocal()
|
||||||
{
|
{
|
||||||
std::string local_path;
|
if (!sLocalFontPath.empty()) return sLocalFontPath;
|
||||||
|
|
||||||
// Backup files if we can't load from system fonts directory.
|
// Backup files if we can't load from system fonts directory.
|
||||||
// We could store this in an end-user writable directory to allow
|
// We could store this in an end-user writable directory to allow
|
||||||
// end users to switch fonts.
|
// end users to switch fonts.
|
||||||
if (LLFontGL::sAppDir.length())
|
if (!LLFontGL::sFontDir.empty())
|
||||||
{
|
{
|
||||||
// use specified application dir to look for fonts
|
// use specified application dir to look for fonts
|
||||||
local_path = LLFontGL::sAppDir + "/fonts/";
|
sLocalFontPath = gDirUtilp->add(LLFontGL::sFontDir, "fonts") + gDirUtilp->getDirDelimiter();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// assume working directory is executable directory
|
// assume working directory is executable directory
|
||||||
local_path = "./fonts/";
|
sLocalFontPath = "./fonts/";
|
||||||
}
|
}
|
||||||
return local_path;
|
return sLocalFontPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
LLFontGL::LLFontGL(const LLFontGL &source)
|
LLFontGL::LLFontGL(const LLFontGL &source)
|
||||||
|
|||||||
@@ -214,7 +214,8 @@ public:
|
|||||||
static F32 sScaleX;
|
static F32 sScaleX;
|
||||||
static F32 sScaleY;
|
static F32 sScaleY;
|
||||||
static BOOL sDisplayFont ;
|
static BOOL sDisplayFont ;
|
||||||
static std::string sAppDir; // For loading fonts
|
static std::string sFontDir; // For loading fonts
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class LLFontRegistry;
|
friend class LLFontRegistry;
|
||||||
friend class LLTextBillboard;
|
friend class LLTextBillboard;
|
||||||
@@ -235,7 +236,6 @@ protected:
|
|||||||
|
|
||||||
// Registry holds all instantiated fonts.
|
// Registry holds all instantiated fonts.
|
||||||
static LLFontRegistry* sFontRegistry;
|
static LLFontRegistry* sFontRegistry;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -225,7 +225,7 @@ std::string currentOsName()
|
|||||||
return "Windows";
|
return "Windows";
|
||||||
#elif LL_DARWIN
|
#elif LL_DARWIN
|
||||||
return "Mac";
|
return "Mac";
|
||||||
#elif LL_SDL
|
#elif LL_SDL || LL_MESA_HEADLESS
|
||||||
return "Linux";
|
return "Linux";
|
||||||
#else
|
#else
|
||||||
return "";
|
return "";
|
||||||
@@ -426,7 +426,7 @@ LLFontGL *LLFontRegistry::createFont(const LLFontDescriptor& desc)
|
|||||||
LLFontFreetype::font_vector_t fontlist;
|
LLFontFreetype::font_vector_t fontlist;
|
||||||
LLFontGL *result = NULL;
|
LLFontGL *result = NULL;
|
||||||
|
|
||||||
// Snarf all fonts we can into fontlistp. First will get pulled
|
// Snarf all fonts we can into fontlist. First will get pulled
|
||||||
// off the list and become the "head" font, set to non-fallback.
|
// off the list and become the "head" font, set to non-fallback.
|
||||||
// Rest will consitute the fallback list.
|
// Rest will consitute the fallback list.
|
||||||
BOOL is_first_found = TRUE;
|
BOOL is_first_found = TRUE;
|
||||||
@@ -441,7 +441,7 @@ LLFontGL *LLFontRegistry::createFont(const LLFontDescriptor& desc)
|
|||||||
++file_name_it)
|
++file_name_it)
|
||||||
{
|
{
|
||||||
LLFontGL *fontp = new LLFontGL;
|
LLFontGL *fontp = new LLFontGL;
|
||||||
std::string font_path = local_path + *file_name_it;
|
std::string font_path = gDirUtilp->add(local_path, *file_name_it);
|
||||||
// *HACK: Fallback fonts don't render, so we can use that to suppress
|
// *HACK: Fallback fonts don't render, so we can use that to suppress
|
||||||
// creation of OpenGL textures for test apps. JC
|
// creation of OpenGL textures for test apps. JC
|
||||||
BOOL is_fallback = !is_first_found || !mCreateGLTextures;
|
BOOL is_fallback = !is_first_found || !mCreateGLTextures;
|
||||||
@@ -449,12 +449,12 @@ LLFontGL *LLFontRegistry::createFont(const LLFontDescriptor& desc)
|
|||||||
if (!fontp->loadFace(font_path, extra_scale * point_size,
|
if (!fontp->loadFace(font_path, extra_scale * point_size,
|
||||||
LLFontGL::sVertDPI, LLFontGL::sHorizDPI, 2, is_fallback))
|
LLFontGL::sVertDPI, LLFontGL::sHorizDPI, 2, is_fallback))
|
||||||
{
|
{
|
||||||
font_path = sys_path + *file_name_it;
|
font_path = gDirUtilp->add(sys_path, *file_name_it);
|
||||||
|
|
||||||
if (!fontp->loadFace(font_path, extra_scale * point_size,
|
if (!fontp->loadFace(font_path, extra_scale * point_size,
|
||||||
LLFontGL::sVertDPI, LLFontGL::sHorizDPI, 2, is_fallback))
|
LLFontGL::sVertDPI, LLFontGL::sHorizDPI, 2, is_fallback))
|
||||||
{
|
{
|
||||||
LL_INFOS_ONCE("LLFontRegistry") << "Couldn't load font " << *file_name_it << LL_ENDL;
|
LL_INFOS_ONCE("LLFontRegistry") << "Couldn't load font " << *file_name_it << " from path " << font_path << LL_ENDL;
|
||||||
delete fontp;
|
delete fontp;
|
||||||
fontp = NULL;
|
fontp = NULL;
|
||||||
}
|
}
|
||||||
@@ -491,6 +491,7 @@ LLFontGL *LLFontRegistry::createFont(const LLFontDescriptor& desc)
|
|||||||
{
|
{
|
||||||
LL_WARNS() << "createFont failed in some way" << LL_ENDL;
|
LL_WARNS() << "createFont failed in some way" << LL_ENDL;
|
||||||
}
|
}
|
||||||
|
|
||||||
mFontMap[norm_desc] = result;
|
mFontMap[norm_desc] = result;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -533,19 +534,19 @@ void LLFontRegistry::destroyGL()
|
|||||||
|
|
||||||
LLFontGL *LLFontRegistry::getFont(const LLFontDescriptor& orig_desc)
|
LLFontGL *LLFontRegistry::getFont(const LLFontDescriptor& orig_desc)
|
||||||
{
|
{
|
||||||
LLFontDescriptor norm_desc = orig_desc.normalize();
|
LLFontDescriptor desc = orig_desc.normalize();
|
||||||
|
|
||||||
font_reg_map_t::iterator it = mFontMap.find(norm_desc);
|
font_reg_map_t::iterator it = mFontMap.find(desc);
|
||||||
if (it != mFontMap.end())
|
if (it != mFontMap.end())
|
||||||
return it->second;
|
return it->second;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
LLFontGL *fontp = createFont(orig_desc);
|
LLFontGL *fontp = createFont(desc);
|
||||||
if (!fontp)
|
if (!fontp)
|
||||||
{
|
{
|
||||||
LL_WARNS() << "getFont failed, name " << orig_desc.getName()
|
LL_WARNS() << "getFont failed, name " << desc.getName()
|
||||||
<<" style=[" << ((S32) orig_desc.getStyle()) << "]"
|
<<" style=[" << ((S32) desc.getStyle()) << "]"
|
||||||
<< " size=[" << orig_desc.getSize() << "]" << LL_ENDL;
|
<< " size=[" << desc.getSize() << "]" << LL_ENDL;
|
||||||
}
|
}
|
||||||
return fontp;
|
return fontp;
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1635,6 +1635,17 @@ std::string LLViewerWindow::translateString(const char* tag,
|
|||||||
return LLTrans::getString( std::string(tag), args_copy);
|
return LLTrans::getString( std::string(tag), args_copy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const std::string font_dir()
|
||||||
|
{
|
||||||
|
return gDirUtilp->getExecutableDir()
|
||||||
|
#if LL_DARWIN
|
||||||
|
+ "../Resources/"
|
||||||
|
#elif !defined(LL_WINDOWS)
|
||||||
|
+ "../"
|
||||||
|
#endif
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Classes
|
// Classes
|
||||||
//
|
//
|
||||||
@@ -1803,7 +1814,7 @@ LLViewerWindow::LLViewerWindow(
|
|||||||
LLFontGL::initClass( gSavedSettings.getF32("FontScreenDPI"),
|
LLFontGL::initClass( gSavedSettings.getF32("FontScreenDPI"),
|
||||||
mDisplayScale.mV[VX],
|
mDisplayScale.mV[VX],
|
||||||
mDisplayScale.mV[VY],
|
mDisplayScale.mV[VY],
|
||||||
gDirUtilp->getAppRODataDir());
|
font_dir());
|
||||||
}
|
}
|
||||||
// Create container for all sub-views
|
// Create container for all sub-views
|
||||||
LLView::Params rvp;
|
LLView::Params rvp;
|
||||||
@@ -5473,7 +5484,8 @@ void LLViewerWindow::initFonts(F32 zoom_factor)
|
|||||||
LLFontGL::initClass( gSavedSettings.getF32("FontScreenDPI"),
|
LLFontGL::initClass( gSavedSettings.getF32("FontScreenDPI"),
|
||||||
mDisplayScale.mV[VX] * zoom_factor,
|
mDisplayScale.mV[VX] * zoom_factor,
|
||||||
mDisplayScale.mV[VY] * zoom_factor,
|
mDisplayScale.mV[VY] * zoom_factor,
|
||||||
gDirUtilp->getAppRODataDir());
|
font_dir());
|
||||||
|
// Force font reloads, which can be very slow
|
||||||
LLFontGL::loadDefaultFonts();
|
LLFontGL::loadDefaultFonts();
|
||||||
}
|
}
|
||||||
void LLViewerWindow::toggleFullscreen(BOOL show_progress)
|
void LLViewerWindow::toggleFullscreen(BOOL show_progress)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<floater bottom="-495" can_close="true" can_drag_on_left="false" can_minimize="false"
|
<floater bottom="-495" can_close="true" can_drag_on_left="false" can_minimize="false"
|
||||||
can_resize="false" can_tear_off="true" enabled="true" height="408"
|
can_resize="false" can_tear_off="true" enabled="true" height="408"
|
||||||
left="457" min_height="408" min_width="160" mouse_opaque="true"
|
left="457" min_height="408" min_width="160" mouse_opaque="true"
|
||||||
name="Inventory Finder" title="inventory_recent_items" width="160">
|
name="Inventory Finder" title="inventory_recent_items" width="168">
|
||||||
<icon bottom="370" color="1 1 1 1" enabled="true" follows="left|top" height="16"
|
<icon bottom="370" color="1 1 1 1" enabled="true" follows="left|top" height="16"
|
||||||
image_name="inv_item_animation.tga" left="8" mouse_opaque="true"
|
image_name="inv_item_animation.tga" left="8" mouse_opaque="true"
|
||||||
name="icon_animation" width="16" />
|
name="icon_animation" width="16" />
|
||||||
@@ -77,7 +77,7 @@
|
|||||||
halign="center" height="20" label="None" label_selected="None" left="8"
|
halign="center" height="20" label="None" label_selected="None" left="8"
|
||||||
mouse_opaque="true" name="None" scale_image="true" width="100" />
|
mouse_opaque="true" name="None" scale_image="true" width="100" />
|
||||||
<text bottom_delta="-16" left="3" follows="left|top" name="links">Links: </text>
|
<text bottom_delta="-16" left="3" follows="left|top" name="links">Links: </text>
|
||||||
<radio_group bottom_delta="-6" left_delta="27" follows="left|top" height="16" draw_border="false" name="radio_links">
|
<radio_group bottom_delta="-6" left_delta="30" follows="left|top" height="16" draw_border="false" name="radio_links">
|
||||||
<radio_item bottom_delta="-8" name="Any" value="0">Any</radio_item>
|
<radio_item bottom_delta="-8" name="Any" value="0">Any</radio_item>
|
||||||
<radio_item bottom_delta="0" left_delta="19" name="Only" value="2">Only</radio_item>
|
<radio_item bottom_delta="0" left_delta="19" name="Only" value="2">Only</radio_item>
|
||||||
<radio_item bottom_delta="0" left_delta="21" name="None" value="1">None</radio_item>
|
<radio_item bottom_delta="0" left_delta="21" name="None" value="1">None</radio_item>
|
||||||
|
|||||||
@@ -189,8 +189,8 @@
|
|||||||
font="SansSerifSmall" height="15" initial_value="true" label="Use Grid"
|
font="SansSerifSmall" height="15" initial_value="true" label="Use Grid"
|
||||||
left_delta="0" mouse_opaque="true" name="checkbox snap to grid" width="134" />
|
left_delta="0" mouse_opaque="true" name="checkbox snap to grid" width="134" />
|
||||||
<button bottom_delta="0" follows="left|top" font="SansSerifSmall" halign="center"
|
<button bottom_delta="0" follows="left|top" font="SansSerifSmall" halign="center"
|
||||||
valign="center" height="18" label="Options..." label_selected="Options..."
|
valign="center" height="18" label="Options"
|
||||||
left_delta="64" mouse_opaque="true" name="Options..." scale_image="TRUE" width="75" >
|
left_delta="68" mouse_opaque="true" name="Options..." scale_image="TRUE" width="68" >
|
||||||
<button.commit_callback
|
<button.commit_callback
|
||||||
function="BuildTool.gridOptions"/>
|
function="BuildTool.gridOptions"/>
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -3,8 +3,15 @@
|
|||||||
|
|
||||||
<font name="default" comment="default font files (global fallbacks)">
|
<font name="default" comment="default font files (global fallbacks)">
|
||||||
<file>DejaVuSansCondensed.ttf</file>
|
<file>DejaVuSansCondensed.ttf</file>
|
||||||
|
<file>NotoSansDisplay-Regular.ttf</file>
|
||||||
|
<file>SourceHanSansJP-Regular.otf</file>
|
||||||
|
<file>SourceHanSansKR-Regular.otf</file>
|
||||||
|
<file>SourceHanSansCN-Regular.otf</file>
|
||||||
|
<file>SourceHanSansHK-Regular.otf</file>
|
||||||
|
<file>SourceHanSansTW-Regular.otf</file>
|
||||||
<os name="Windows">
|
<os name="Windows">
|
||||||
<file>YuGothR.ttc</file>
|
<file>YuGothR.ttc</file>
|
||||||
|
<file>meiryo.TTC</file>
|
||||||
<file>MSGOTHIC.TTC</file>
|
<file>MSGOTHIC.TTC</file>
|
||||||
<file>gulim.ttc</file>
|
<file>gulim.ttc</file>
|
||||||
<file>simhei.ttf</file>
|
<file>simhei.ttf</file>
|
||||||
@@ -22,14 +29,48 @@
|
|||||||
</os>
|
</os>
|
||||||
</font>
|
</font>
|
||||||
|
|
||||||
<font name="SansSerif" comment="Name of san-serif font (Truetype file name)">
|
|
||||||
<file>DroidSans.ttf</file>
|
|
||||||
</font>
|
|
||||||
|
|
||||||
<font name="SansSerifBold"
|
<font name="SansSerifBold"
|
||||||
comment="Name of bold sans-serif font"
|
comment="Name of bold sans-serif font"
|
||||||
font_style="Bold">
|
font_style="Bold">
|
||||||
<file>DroidSans-Bold.ttf</file>
|
<file>DroidSans-Bold.ttf</file>
|
||||||
|
<file>DejaVuSansCondensed-Bold.ttf</file>
|
||||||
|
<file>NotoSansDisplay-Bold.ttf</file>
|
||||||
|
<file>SourceHanSansJP-Bold.otf</file>
|
||||||
|
<file>SourceHanSansKR-Bold.otf</file>
|
||||||
|
<file>SourceHanSansCN-Bold.otf</file>
|
||||||
|
<file>SourceHanSansHK-Bold.otf</file>
|
||||||
|
<file>SourceHanSansTW-Bold.otf</file>
|
||||||
|
</font>
|
||||||
|
|
||||||
|
<font name="SansSerif" comment="Name of san-serif font (Truetype file name)">
|
||||||
|
<file>DroidSans.ttf</file>
|
||||||
|
</font>
|
||||||
|
|
||||||
|
<font name="SansSerif"
|
||||||
|
comment="Name of bold sans-serif font"
|
||||||
|
font_style="BOLD">
|
||||||
|
<file>DroidSans-Bold.ttf</file>
|
||||||
|
<file>DejaVuSansCondensed-Bold.ttf</file>
|
||||||
|
<file>NotoSansDisplay-Bold.ttf</file>
|
||||||
|
<file>SourceHanSansJP-Bold.otf</file>
|
||||||
|
<file>SourceHanSansKR-Bold.otf</file>
|
||||||
|
<file>SourceHanSansCN-Bold.otf</file>
|
||||||
|
<file>SourceHanSansHK-Bold.otf</file>
|
||||||
|
<file>SourceHanSansTW-Bold.otf</file>
|
||||||
|
</font>
|
||||||
|
|
||||||
|
<font name="SansSerif"
|
||||||
|
comment="Name of italic sans-serif font"
|
||||||
|
font_style="ITALIC">
|
||||||
|
<file>DejaVuSansCondensed-Oblique.ttf</file>
|
||||||
|
<file>NotoSansDisplay-Italic.ttf</file>
|
||||||
|
</font>
|
||||||
|
|
||||||
|
<font name="SansSerif"
|
||||||
|
comment="Name of bold italic sans-serif font"
|
||||||
|
font_style="BOLD|ITALIC">
|
||||||
|
<file>DejaVuSansCondensed-BoldOblique.ttf</file>
|
||||||
|
<file>NotoSansDisplay-BoldItalic.ttf</file>
|
||||||
</font>
|
</font>
|
||||||
|
|
||||||
<font name="Monospace"
|
<font name="Monospace"
|
||||||
@@ -39,25 +80,25 @@
|
|||||||
|
|
||||||
<font name="DejaVu"
|
<font name="DejaVu"
|
||||||
comment="Name of DejaVu font">
|
comment="Name of DejaVu font">
|
||||||
<file>DejaVuSans.ttf</file>
|
<file>DejaVuSansCondensed.ttf</file>
|
||||||
</font>
|
</font>
|
||||||
|
|
||||||
<font name="DejaVu"
|
<font name="DejaVu"
|
||||||
comment="Name of DejaVu font (bold)"
|
comment="Name of DejaVu font (bold)"
|
||||||
font_style="BOLD">
|
font_style="BOLD">
|
||||||
<file>DejaVuSansBold.ttf</file>
|
<file>DejaVuSansCondensed-Bold.ttf</file>
|
||||||
</font>
|
</font>
|
||||||
|
|
||||||
<font name="DejaVu"
|
<font name="DejaVu"
|
||||||
comment="Name of DejaVu font (italic)"
|
comment="Name of DejaVu font (italic)"
|
||||||
font_style="ITALIC">
|
font_style="ITALIC">
|
||||||
<file>DejaVuSansOblique.ttf</file>
|
<file>DejaVuSansCondensed-Oblique.ttf</file>
|
||||||
</font>
|
</font>
|
||||||
|
|
||||||
<font name="DejaVu"
|
<font name="DejaVu"
|
||||||
comment="Name of DejaVu font (bold italic)"
|
comment="Name of DejaVu font (bold italic)"
|
||||||
font_style="BOLD|ITALIC">
|
font_style="BOLD|ITALIC">
|
||||||
<file>DejaVuSansBoldOblique.ttf</file>
|
<file>DejaVuSansCondensed-BoldOblique.ttf</file>
|
||||||
</font>
|
</font>
|
||||||
|
|
||||||
<font name="Helvetica"
|
<font name="Helvetica"
|
||||||
@@ -109,4 +150,3 @@
|
|||||||
size="8.5"
|
size="8.5"
|
||||||
/>
|
/>
|
||||||
</fonts>
|
</fonts>
|
||||||
|
|
||||||
|
|||||||
@@ -117,7 +117,7 @@
|
|||||||
<check_box bottom_delta="-20" follows="top" label="Replace slurls and formatted links with labels" name="SinguReplaceLinks" control_name="SinguReplaceLinks" tool_tip="While you can right click to see where they really lead by copying them, this does allow links to be misleading at first glance."/>
|
<check_box bottom_delta="-20" follows="top" label="Replace slurls and formatted links with labels" name="SinguReplaceLinks" control_name="SinguReplaceLinks" tool_tip="While you can right click to see where they really lead by copying them, this does allow links to be misleading at first glance."/>
|
||||||
<text name="EmergencyTeleportDesc" left="14" bottom_delta="-12" follows="top">Drop a landmark below to autoteleport there in the last 20 seconds before region restarts</text>
|
<text name="EmergencyTeleportDesc" left="14" bottom_delta="-12" follows="top">Drop a landmark below to autoteleport there in the last 20 seconds before region restarts</text>
|
||||||
<drop_target control_name="EmergencyTeleportLandmark" bottom_delta="-8" left="15" height="17" name="emergency_teleport_landmark_drop" width="430"/>
|
<drop_target control_name="EmergencyTeleportLandmark" bottom_delta="-8" left="15" height="17" name="emergency_teleport_landmark_drop" width="430"/>
|
||||||
<text name="EmergencyTeleportBackupDesc" halign="center" width="432" left="14" bottom_delta="-26" follows="top">Drop a backup landmark to autoteleport to below, should you already be at the above</text>
|
<text name="EmergencyTeleportBackupDesc" halign="center" width="432" left="14" bottom_delta="-26" follows="top">Drop a backup landmark to autoteleport to below, should you already be at above</text>
|
||||||
<drop_target control_name="EmergencyTeleportLandmarkBackup" bottom_delta="-8" left="15" height="17" name="emergency_teleport_landmark_backup_drop" width="430"/>
|
<drop_target control_name="EmergencyTeleportLandmarkBackup" bottom_delta="-8" left="15" height="17" name="emergency_teleport_landmark_backup_drop" width="430"/>
|
||||||
</panel>
|
</panel>
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<check_box bottom_delta="-20" control_name="AlchemyConnectToNeighbors" follows="top" height="16" label="Connect to neighboring regions" name="connect_to_neighbors"/>
|
<check_box bottom_delta="-20" control_name="AlchemyConnectToNeighbors" follows="top" height="16" label="Connect to neighboring regions" name="connect_to_neighbors"/>
|
||||||
<check_box bottom_delta="-20" follows="top" label="Auto-minimize region restart notice" name="region_restart_minimized" control_name="LiruRegionRestartMinimized" tool_tip="Useful for sim owners and people who need to pack up before leaving"/>
|
<check_box bottom_delta="-20" follows="top" label="Auto-minimize region restart notice" name="region_restart_minimized" control_name="LiruRegionRestartMinimized" tool_tip="Useful for sim owners and people who need to pack up before leaving"/>
|
||||||
<text bottom_delta="-16" follows="top" name="UISndRestartText">Sound played when regions will restart:</text>
|
<text bottom_delta="-16" follows="top" name="UISndRestartText">Sound played when regions will restart:</text>
|
||||||
<line_editor bottom_delta="-6" left_delta="222" follows="top" width="209" height="16" name="UISndRestart" tool_tip="Empty for no sound to play"/>
|
<line_editor bottom_delta="-6" left_delta="222" follows="top" width="216" height="16" name="UISndRestart" tool_tip="Empty for no sound to play"/>
|
||||||
<spinner bottom_delta="-20" left_delta="-222" decimal_digits="3" follows="top" height="16" increment="0.05" label="Inactive Transparency" tool_tip="When a floater loses focus, this controls how much its opacity changes." label_width="120" max_val="5" min_val="0" name="Inactive Transparency" width="200" control_name="InactiveFloaterTransparency"/>
|
<spinner bottom_delta="-20" left_delta="-222" decimal_digits="3" follows="top" height="16" increment="0.05" label="Inactive Transparency" tool_tip="When a floater loses focus, this controls how much its opacity changes." label_width="120" max_val="5" min_val="0" name="Inactive Transparency" width="200" control_name="InactiveFloaterTransparency"/>
|
||||||
<spinner bottom_delta="0" left_delta="220" decimal_digits="3" follows="top" height="16" increment="0.05" label="Active Transparency" tool_tip="When a floater is in focus, this controls how much its opacity changes." label_width="110" max_val="5" min_val="0" name="Active Transparency" width="190" control_name="ActiveFloaterTransparency"/>
|
<spinner bottom_delta="0" left_delta="220" decimal_digits="3" follows="top" height="16" increment="0.05" label="Active Transparency" tool_tip="When a floater is in focus, this controls how much its opacity changes." label_width="110" max_val="5" min_val="0" name="Active Transparency" width="190" control_name="ActiveFloaterTransparency"/>
|
||||||
</panel>
|
</panel>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||||
<panel border="true" bottom="-409" height="408" label="General" left="102" name="general_panel" width="517">
|
<panel border="true" bottom="-409" height="408" label="General" left="102" name="general_panel" width="517">
|
||||||
<radio_group bottom="-44" height="40" left="109" name="default_start_location" width="199">
|
<radio_group bottom="-44" height="40" left="109" name="default_start_location" width="220">
|
||||||
<radio_item bottom="-20" height="20" name="home" tool_tip="Log into my home location by default.">My Home</radio_item>
|
<radio_item bottom="-20" height="20" name="home" tool_tip="Log into my home location by default.">My Home</radio_item>
|
||||||
<radio_item bottom="-20" height="20" left="93" name="last" tool_tip="Log into my last location by default.">My Last Location</radio_item>
|
<radio_item bottom="-20" height="20" left="93" name="last" tool_tip="Log into my last location by default.">My Last Location</radio_item>
|
||||||
</radio_group>
|
</radio_group>
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
<check_box bottom="-219" height="16" left="10" label="Go away when idle" name="away_when_idle_checkbox"/>
|
<check_box bottom="-219" height="16" left="10" label="Go away when idle" name="away_when_idle_checkbox"/>
|
||||||
<spinner bottom="-220" decimal_digits="0" height="16" increment="1" initial_val="300" label="Away Timeout:" label_width="91" left="136" max_val="600" min_val="0" name="afk_timeout_spinner" width="137"/>
|
<spinner bottom="-220" decimal_digits="0" height="16" increment="1" initial_val="300" label="Away Timeout:" label_width="91" left="136" max_val="600" min_val="0" name="afk_timeout_spinner" width="137"/>
|
||||||
<check_box bottom="-257" height="16" initial_value="false" label="Notify when in-world currency is exchanged" left="10" name="notify_money_change_checkbox"/>
|
<check_box bottom="-257" height="16" initial_value="false" label="Notify when in-world currency is exchanged" left="10" name="notify_money_change_checkbox"/>
|
||||||
<check_box bottom="-257" height="16" label="without filling up the corner" left="245" name="no_transaction_clutter_checkbox" tool_tip="Still present the notifications, but have them pop up in the bottom right momentarily, then leave, so the transaction draws attention but doesn't get in the way."/>
|
<check_box bottom="-257" height="16" label="without filling up the corner" left="280" name="no_transaction_clutter_checkbox" tool_tip="Still present the notifications, but have them pop up in the bottom right momentarily, then leave, so the transaction draws attention but doesn't get in the way."/>
|
||||||
<text bottom="-291" height="10" left="10" name="maturity_desired_label">Rating:</text>
|
<text bottom="-291" height="10" left="10" name="maturity_desired_label">Rating:</text>
|
||||||
<text bottom="-291" height="10" left="101" name="maturity_desired_prompt">I want to access content rated:</text>
|
<text bottom="-291" height="10" left="101" name="maturity_desired_prompt">I want to access content rated:</text>
|
||||||
<combo_box bottom="-297" follows="left|top" height="18" left="267" name="maturity_desired_combobox" width="120" control_name="PreferredMaturity">
|
<combo_box bottom="-297" follows="left|top" height="18" left="267" name="maturity_desired_combobox" width="120" control_name="PreferredMaturity">
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
follows="left|top|right" border_visible="false" mouse_opaque="false"
|
follows="left|top|right" border_visible="false" mouse_opaque="false"
|
||||||
drop_shadow_visible="true" border_drop_shadow_visible="false" />
|
drop_shadow_visible="true" border_drop_shadow_visible="false" />
|
||||||
<button label="Refresh Grid URLs" enabled="true" name="btn_gridinfo"
|
<button label="Refresh Grid URLs" enabled="true" name="btn_gridinfo"
|
||||||
height="18" width="100" left="120" bottom_delta="-22"
|
height="18" width="120" left="120" bottom_delta="-22"
|
||||||
halign="center" tool_tip="Retrieve all grid info from the given Login URI (overwriting the current URLs, see Advanced)"
|
halign="center" tool_tip="Retrieve all grid info from the given Login URI (overwriting the current URLs, see Advanced)"
|
||||||
follows="left|top" scale_image="true"
|
follows="left|top" scale_image="true"
|
||||||
font="SansSerifSmall" mouse_opaque="true" />
|
font="SansSerifSmall" mouse_opaque="true" />
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
<check_box bottom="-85" height="16" initial_value="false" label="Show timestamps in IM" name="show_timestamps_check"/>
|
<check_box bottom="-85" height="16" initial_value="false" label="Show timestamps in IM" name="show_timestamps_check"/>
|
||||||
<check_box bottom="-105" height="16" initial_value="false" label="Show online Friend notifications" name="friends_online_notify_checkbox"/>
|
<check_box bottom="-105" height="16" initial_value="false" label="Show online Friend notifications" name="friends_online_notify_checkbox"/>
|
||||||
<text bottom_delta="-15" follows="top|left" left_delta="4" name="conference_block_text">Incoming conferences:</text>
|
<text bottom_delta="-15" follows="top|left" left_delta="4" name="conference_block_text">Incoming conferences:</text>
|
||||||
<radio_group follows="top|left" bottom_delta="-6" left_delta="116" height="16" width="204" draw_border="true" control_name="LiruBlockConferences" name="block_conferences_radio">
|
<radio_group follows="top|left" bottom_delta="-6" left_delta="120" height="16" width="204" draw_border="true" control_name="LiruBlockConferences" name="block_conferences_radio">
|
||||||
<radio_item bottom_delta="0" name="accept" width="30" value="0">Accept</radio_item>
|
<radio_item bottom_delta="0" name="accept" width="30" value="0">Accept</radio_item>
|
||||||
<radio_item bottom_delta="0" left_delta="30" name="friends only" width="44" value="2">Friends Only</radio_item>
|
<radio_item bottom_delta="0" left_delta="30" name="friends only" width="44" value="2">Friends Only</radio_item>
|
||||||
<radio_item bottom_delta="0" left_delta="44" name="block" width="30" value="1">Block</radio_item>
|
<radio_item bottom_delta="0" left_delta="44" name="block" width="30" value="1">Block</radio_item>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<text visibility_control="CmdLineDisableVoice" bottom_delta="-14" follows="left|top" left_delta="12" name="voice_unavailable">Voice Chat Is Not Available</text>
|
<text visibility_control="CmdLineDisableVoice" bottom_delta="-14" follows="left|top" left_delta="12" name="voice_unavailable">Voice Chat Is Not Available</text>
|
||||||
<check_box control_name="local_enable" invisibility_control="CmdLineDisableVoice" bottom_delta="-6" follows="top" height="16" initial_value="false" label="Enable voice chat" left="8" name="enable_voice_check"/>
|
<check_box control_name="local_enable" invisibility_control="CmdLineDisableVoice" bottom_delta="-6" follows="top" height="16" initial_value="false" label="Enable voice chat" left="8" name="enable_voice_check"/>
|
||||||
<check_box bottom_delta="-18" follows="top" height="16" name="enable_multivoice_check"/>
|
<check_box bottom_delta="-18" follows="top" height="16" name="enable_multivoice_check"/>
|
||||||
<string value="Allow multiple instances of [APP_NAME] to use voice simultaneously (requires restart)" name="multivoice_label"/>
|
<string value="Allow multiple instances to use voice simultaneously (requires restart)" name="multivoice_label"/>
|
||||||
<radio_group enabled_control="local_enable" bottom_delta="-66" draw_border="false" follows="top" height="60" left_delta="20" name="ear_location" width="364">
|
<radio_group enabled_control="local_enable" bottom_delta="-66" draw_border="false" follows="top" height="60" left_delta="20" name="ear_location" width="364">
|
||||||
<radio_item bottom="-19" height="16" left="3" name="0">Hear Voice Chat from camera position.</radio_item>
|
<radio_item bottom="-19" height="16" left="3" name="0">Hear Voice Chat from camera position.</radio_item>
|
||||||
<radio_item bottom="-35" height="16" name="1">Hear Voice Chat from avatar position.</radio_item>
|
<radio_item bottom="-35" height="16" name="1">Hear Voice Chat from avatar position.</radio_item>
|
||||||
|
|||||||
@@ -111,8 +111,16 @@ class ViewerManifest(LLManifest):
|
|||||||
self.end_prefix("character")
|
self.end_prefix("character")
|
||||||
|
|
||||||
# Include our fonts
|
# Include our fonts
|
||||||
|
if self.prefix(src=os.path.join(pkgdir, "fonts"), dst="fonts"):
|
||||||
|
self.path("DejaVuSansCondensed*.ttf")
|
||||||
|
self.path("DejaVuSansMono.ttf")
|
||||||
|
self.path("DroidSans*.ttf")
|
||||||
|
self.path("NotoSansDisplay*.ttf")
|
||||||
|
self.path("SourceHanSans*.otf")
|
||||||
|
self.end_prefix()
|
||||||
|
|
||||||
|
# Include our font licenses
|
||||||
if self.prefix(src="fonts"):
|
if self.prefix(src="fonts"):
|
||||||
self.path("*.ttf")
|
|
||||||
self.path("*.txt")
|
self.path("*.txt")
|
||||||
self.end_prefix("fonts")
|
self.end_prefix("fonts")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user