New Fonts to complain about!

Thanks Drake!
Tweaks panels to look good now that font is slightly wider
This commit is contained in:
Lirusaito
2019-04-10 13:18:18 -04:00
parent ed88e55e04
commit 278459bdf2
21 changed files with 151 additions and 85 deletions

View File

@@ -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)

View File

@@ -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);

View File

@@ -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())
{
sSystemFontPath = gDirUtilp->add(system_root, "fonts") + gDirUtilp->getDirDelimiter();
LL_INFOS() << "from SystemRoot: " << sSystemFontPath << LL_ENDL;
}
else
{
LL_WARNS() << "SystemRoot not found, attempting to load fonts from default path." << LL_ENDL;
// HACK for windows 98/Me
sSystemFontPath = "/WINDOWS/FONTS/";
}
}
#elif LL_DARWIN #elif LL_DARWIN
// HACK for Mac OS X // HACK for Mac OS X
system_path = "/System/Library/Fonts/"; sSystemFontPath = "/System/Library/Fonts/";
#endif #endif
} return sSystemFontPath;
return system_path;
} }
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)

View File

@@ -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

View File

@@ -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.

View File

@@ -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)

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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">

View File

@@ -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" />

View File

@@ -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>

View File

@@ -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>

View File

@@ -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")