Initial commit
This commit is contained in:
15
ide-touchgfx-gen/TouchGFX/generated/texts/src/LanguageGb.cpp
Normal file
15
ide-touchgfx-gen/TouchGFX/generated/texts/src/LanguageGb.cpp
Normal file
@ -0,0 +1,15 @@
|
||||
/* DO NOT EDIT THIS FILE */
|
||||
/* This file is autogenerated by the text-database code generator */
|
||||
|
||||
#include <stdint.h>
|
||||
#include <touchgfx/Unicode.hpp>
|
||||
|
||||
TEXT_LOCATION_FLASH_PRAGMA
|
||||
KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE;
|
||||
|
||||
TEXT_LOCATION_FLASH_PRAGMA
|
||||
KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE =
|
||||
{
|
||||
23, // T_SingleUseId1
|
||||
0 // T_SingleUseId2
|
||||
};
|
128
ide-touchgfx-gen/TouchGFX/generated/texts/src/Texts.cpp
Normal file
128
ide-touchgfx-gen/TouchGFX/generated/texts/src/Texts.cpp
Normal file
@ -0,0 +1,128 @@
|
||||
/* DO NOT EDIT THIS FILE */
|
||||
/* This file is autogenerated by the text-database code generator */
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <texts/TypedTextDatabase.hpp>
|
||||
#include <touchgfx/TextProvider.hpp>
|
||||
#include <touchgfx/Texts.hpp>
|
||||
#include <touchgfx/TypedText.hpp>
|
||||
#include <touchgfx/Unicode.hpp>
|
||||
#include <touchgfx/hal/HAL.hpp>
|
||||
#include <touchgfx/lcd/LCD.hpp>
|
||||
|
||||
uint16_t touchgfx::Font::getStringWidth(const touchgfx::Unicode::UnicodeChar* text, ...) const
|
||||
{
|
||||
va_list pArg;
|
||||
va_start(pArg, text);
|
||||
uint16_t width = getStringWidthLTR(TEXT_DIRECTION_LTR, text, pArg);
|
||||
va_end(pArg);
|
||||
return width;
|
||||
}
|
||||
|
||||
uint16_t touchgfx::Font::getStringWidth(touchgfx::TextDirection textDirection, const touchgfx::Unicode::UnicodeChar* text, ...) const
|
||||
{
|
||||
va_list pArg;
|
||||
va_start(pArg, text);
|
||||
uint16_t width = getStringWidthLTR(textDirection, text, pArg);
|
||||
va_end(pArg);
|
||||
return width;
|
||||
}
|
||||
|
||||
touchgfx::Unicode::UnicodeChar touchgfx::TextProvider::getNextLigature(TextDirection direction)
|
||||
{
|
||||
if (fontGsubTable && nextCharacters.peekChar())
|
||||
{
|
||||
substituteGlyphs();
|
||||
if (nextCharacters.peekChar(1) == 0x093F) //Hindi I-matra
|
||||
{
|
||||
nextCharacters.replaceAt1(nextCharacters.peekChar());
|
||||
nextCharacters.replaceAt0(0x093F);
|
||||
}
|
||||
}
|
||||
return getNextChar();
|
||||
}
|
||||
|
||||
void touchgfx::TextProvider::initializeInternal()
|
||||
{
|
||||
fillInputBuffer();
|
||||
}
|
||||
|
||||
void touchgfx::LCD::drawString(touchgfx::Rect widgetArea, const touchgfx::Rect& invalidatedArea, const touchgfx::LCD::StringVisuals& stringVisuals, const touchgfx::Unicode::UnicodeChar* format, ...)
|
||||
{
|
||||
va_list pArg;
|
||||
va_start(pArg, format);
|
||||
drawStringLTR(widgetArea, invalidatedArea, stringVisuals, format, pArg);
|
||||
va_end(pArg);
|
||||
}
|
||||
|
||||
//Default typed text database
|
||||
extern const touchgfx::TypedText::TypedTextData* const typedTextDatabaseArray[];
|
||||
|
||||
TEXT_LOCATION_FLASH_PRAGMA
|
||||
KEEP extern const touchgfx::Unicode::UnicodeChar texts_all_languages[] TEXT_LOCATION_FLASH_ATTRIBUTE =
|
||||
{
|
||||
0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x2e, 0x2e, 0x0, // @0 "Application started..."
|
||||
0x2, 0x0 // @23 "<>"
|
||||
};
|
||||
TEXT_LOCATION_FLASH_PRAGMA
|
||||
KEEP extern uint32_t const indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE;
|
||||
|
||||
//array holding dynamically installed languages
|
||||
struct TranslationHeader
|
||||
{
|
||||
uint32_t offset_to_texts;
|
||||
uint32_t offset_to_indices;
|
||||
uint32_t offset_to_typedtext;
|
||||
};
|
||||
static const TranslationHeader* languagesArray[1] = { 0 };
|
||||
|
||||
//Compiled and linked in languages
|
||||
static const uint32_t* const staticLanguageIndices[] =
|
||||
{
|
||||
indicesGb
|
||||
};
|
||||
|
||||
touchgfx::LanguageId touchgfx::Texts::currentLanguage = static_cast<touchgfx::LanguageId>(0);
|
||||
static const touchgfx::Unicode::UnicodeChar* currentLanguagePtr = 0;
|
||||
static const uint32_t* currentLanguageIndices = 0;
|
||||
|
||||
void touchgfx::Texts::setLanguage(touchgfx::LanguageId id)
|
||||
{
|
||||
const touchgfx::TypedText::TypedTextData* currentLanguageTypedText = 0;
|
||||
if (id < 1)
|
||||
{
|
||||
if (languagesArray[id] != 0)
|
||||
{
|
||||
//dynamic translation is added
|
||||
const TranslationHeader* translation = languagesArray[id];
|
||||
currentLanguagePtr = (const touchgfx::Unicode::UnicodeChar*)(((const uint8_t*)translation) + translation->offset_to_texts);
|
||||
currentLanguageIndices = (const uint32_t*)(((const uint8_t*)translation) + translation->offset_to_indices);
|
||||
currentLanguageTypedText = (const touchgfx::TypedText::TypedTextData*)(((const uint8_t*)translation) + translation->offset_to_typedtext);
|
||||
}
|
||||
else
|
||||
{
|
||||
//compiled and linked in languages
|
||||
currentLanguagePtr = texts_all_languages;
|
||||
currentLanguageIndices = staticLanguageIndices[id];
|
||||
currentLanguageTypedText = typedTextDatabaseArray[id];
|
||||
}
|
||||
}
|
||||
|
||||
if (currentLanguageTypedText)
|
||||
{
|
||||
currentLanguage = id;
|
||||
touchgfx::TypedText::registerTypedTextDatabase(currentLanguageTypedText,
|
||||
TypedTextDatabase::getFonts(), TypedTextDatabase::getInstanceSize());
|
||||
}
|
||||
}
|
||||
|
||||
void touchgfx::Texts::setTranslation(touchgfx::LanguageId id, const void* translation)
|
||||
{
|
||||
languagesArray[id] = (const TranslationHeader*)translation;
|
||||
}
|
||||
|
||||
const touchgfx::Unicode::UnicodeChar* touchgfx::Texts::getText(TypedTextId id) const
|
||||
{
|
||||
return ¤tLanguagePtr[currentLanguageIndices[id]];
|
||||
}
|
||||
|
@ -0,0 +1,74 @@
|
||||
/* DO NOT EDIT THIS FILE */
|
||||
/* This file is autogenerated by the text-database code generator */
|
||||
|
||||
#include <touchgfx/TypedText.hpp>
|
||||
#include <fonts/GeneratedFont.hpp>
|
||||
#include <texts/TypedTextDatabase.hpp>
|
||||
|
||||
extern touchgfx::GeneratedFont& getFont_verdana_20_4bpp();
|
||||
extern touchgfx::GeneratedFont& getFont_verdana_40_4bpp();
|
||||
extern touchgfx::GeneratedFont& getFont_verdana_10_4bpp();
|
||||
|
||||
const touchgfx::Font* touchgfx_fonts[] =
|
||||
{
|
||||
&(getFont_verdana_20_4bpp()),
|
||||
&(getFont_verdana_40_4bpp()),
|
||||
&(getFont_verdana_10_4bpp())
|
||||
};
|
||||
|
||||
extern const touchgfx::TypedText::TypedTextData typedText_database_DEFAULT[];
|
||||
extern const touchgfx::TypedText::TypedTextData* const typedTextDatabaseArray[];
|
||||
|
||||
TEXT_LOCATION_FLASH_PRAGMA
|
||||
const touchgfx::TypedText::TypedTextData typedText_database_DEFAULT[] TEXT_LOCATION_FLASH_ATTRIBUTE =
|
||||
{
|
||||
{ 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
{ 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR }
|
||||
};
|
||||
|
||||
TEXT_LOCATION_FLASH_PRAGMA
|
||||
const touchgfx::TypedText::TypedTextData* const typedTextDatabaseArray[] TEXT_LOCATION_FLASH_ATTRIBUTE =
|
||||
{
|
||||
typedText_database_DEFAULT
|
||||
};
|
||||
|
||||
namespace TypedTextDatabase
|
||||
{
|
||||
const touchgfx::TypedText::TypedTextData* getInstance(touchgfx::LanguageId id)
|
||||
{
|
||||
return typedTextDatabaseArray[id];
|
||||
}
|
||||
|
||||
uint16_t getInstanceSize()
|
||||
{
|
||||
return sizeof(typedText_database_DEFAULT) / sizeof(touchgfx::TypedText::TypedTextData);
|
||||
}
|
||||
|
||||
const touchgfx::Font** getFonts()
|
||||
{
|
||||
return touchgfx_fonts;
|
||||
}
|
||||
|
||||
const touchgfx::Font* setFont(touchgfx::FontId fontId, const touchgfx::Font* font)
|
||||
{
|
||||
const touchgfx::Font* old = touchgfx_fonts[fontId];
|
||||
touchgfx_fonts[fontId] = font;
|
||||
return old;
|
||||
}
|
||||
|
||||
void resetFont(touchgfx::FontId fontId)
|
||||
{
|
||||
switch (fontId)
|
||||
{
|
||||
case 0:
|
||||
touchgfx_fonts[0] = &(getFont_verdana_20_4bpp());
|
||||
break;
|
||||
case 1:
|
||||
touchgfx_fonts[1] = &(getFont_verdana_40_4bpp());
|
||||
break;
|
||||
case 2:
|
||||
touchgfx_fonts[2] = &(getFont_verdana_10_4bpp());
|
||||
break;
|
||||
}
|
||||
}
|
||||
} // namespace TypedTextDatabase
|
Reference in New Issue
Block a user