mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2024-11-26 08:05:38 +00:00
Merge branch '63-add-badges-decals-e-g-for-favorites-completed-games-non-working-games-collections-and-folders' into 575-theme-add-a-modern-clean-switch-like-theme-as-an-official-theme-in-es-de-to-choose-from
This commit is contained in:
commit
1c6a80fcc7
|
@ -404,17 +404,19 @@ void DetailedGameListView::updateInfoPanel()
|
||||||
mGenre.setValue(file->metadata.get("genre"));
|
mGenre.setValue(file->metadata.get("genre"));
|
||||||
mPlayers.setValue(file->metadata.get("players"));
|
mPlayers.setValue(file->metadata.get("players"));
|
||||||
|
|
||||||
// Generate badges slots value based on the game metadata.
|
// Populate the badge slots based on game metadata.
|
||||||
std::stringstream ss;
|
std::vector<std::string> badgeSlots;
|
||||||
ss << (file->metadata.get("favorite").compare("true") ? "" : "favorite ");
|
for (auto badge : mBadges.getBadgeTypes()) {
|
||||||
ss << (file->metadata.get("completed").compare("true") ? "" : "completed ");
|
if (badge == "altemulator") {
|
||||||
ss << (file->metadata.get("kidgame").compare("true") ? "" : "kidgame ");
|
if (file->metadata.get(badge).compare("") != 0)
|
||||||
ss << (file->metadata.get("broken").compare("true") ? "" : "broken ");
|
badgeSlots.push_back(badge);
|
||||||
ss << (file->metadata.get("altemulator").compare("") ? "altemulator " : "");
|
}
|
||||||
std::string slots = ss.str();
|
else {
|
||||||
if (!slots.empty())
|
if (file->metadata.get(badge).compare("true") == 0)
|
||||||
slots.pop_back();
|
badgeSlots.push_back(badge);
|
||||||
mBadges.setValue(slots);
|
}
|
||||||
|
}
|
||||||
|
mBadges.setBadges(badgeSlots);
|
||||||
|
|
||||||
mName.setValue(file->metadata.get("name"));
|
mName.setValue(file->metadata.get("name"));
|
||||||
|
|
||||||
|
|
|
@ -445,17 +445,19 @@ void VideoGameListView::updateInfoPanel()
|
||||||
mGenre.setValue(file->metadata.get("genre"));
|
mGenre.setValue(file->metadata.get("genre"));
|
||||||
mPlayers.setValue(file->metadata.get("players"));
|
mPlayers.setValue(file->metadata.get("players"));
|
||||||
|
|
||||||
// Generate badges slots value based on the game metadata.
|
// Populate the badge slots based on game metadata.
|
||||||
std::stringstream ss;
|
std::vector<std::string> badgeSlots;
|
||||||
ss << (file->metadata.get("favorite").compare("true") ? "" : "favorite ");
|
for (auto badge : mBadges.getBadgeTypes()) {
|
||||||
ss << (file->metadata.get("completed").compare("true") ? "" : "completed ");
|
if (badge == "altemulator") {
|
||||||
ss << (file->metadata.get("kidgame").compare("true") ? "" : "kidgame ");
|
if (file->metadata.get(badge).compare("") != 0)
|
||||||
ss << (file->metadata.get("broken").compare("true") ? "" : "broken ");
|
badgeSlots.push_back(badge);
|
||||||
ss << (file->metadata.get("altemulator").compare("") ? "altemulator " : "");
|
}
|
||||||
std::string slots = ss.str();
|
else {
|
||||||
if (!slots.empty())
|
if (file->metadata.get(badge).compare("true") == 0)
|
||||||
slots.pop_back();
|
badgeSlots.push_back(badge);
|
||||||
mBadges.setValue(slots);
|
}
|
||||||
|
}
|
||||||
|
mBadges.setBadges(badgeSlots);
|
||||||
|
|
||||||
mName.setValue(file->metadata.get("name"));
|
mName.setValue(file->metadata.get("name"));
|
||||||
|
|
||||||
|
|
|
@ -7,72 +7,55 @@
|
||||||
// Used by gamelist views.
|
// Used by gamelist views.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
#define SLOT_FAVORITE "favorite"
|
||||||
|
#define SLOT_COMPLETED "completed"
|
||||||
|
#define SLOT_KIDGAME "kidgame"
|
||||||
|
#define SLOT_BROKEN "broken"
|
||||||
|
#define SLOT_ALTERNATIVE_EMULATOR "altemulator"
|
||||||
|
|
||||||
#include "components/BadgesComponent.h"
|
#include "components/BadgesComponent.h"
|
||||||
|
|
||||||
#include "Settings.h"
|
|
||||||
#include "ThemeData.h"
|
#include "ThemeData.h"
|
||||||
#include "resources/TextureResource.h"
|
#include "utils/StringUtil.h"
|
||||||
|
|
||||||
// Available slot definitions.
|
|
||||||
std::vector<std::string> BadgesComponent::mSlots = {SLOT_FAVORITE, SLOT_COMPLETED, SLOT_KIDS,
|
|
||||||
SLOT_BROKEN, SLOT_ALTERNATIVE_EMULATOR};
|
|
||||||
|
|
||||||
BadgesComponent::BadgesComponent(Window* window)
|
BadgesComponent::BadgesComponent(Window* window)
|
||||||
: FlexboxComponent(window)
|
: FlexboxComponent{window, mBadgeImages}
|
||||||
|
, mBadgeTypes{
|
||||||
|
{SLOT_FAVORITE, SLOT_COMPLETED, SLOT_KIDGAME, SLOT_BROKEN, SLOT_ALTERNATIVE_EMULATOR}}
|
||||||
{
|
{
|
||||||
mBadgeIcons[SLOT_FAVORITE] = ":/graphics/badge_favorite.svg";
|
mBadgeIcons[SLOT_FAVORITE] = ":/graphics/badge_favorite.svg";
|
||||||
mBadgeIcons[SLOT_COMPLETED] = ":/graphics/badge_completed.svg";
|
mBadgeIcons[SLOT_COMPLETED] = ":/graphics/badge_completed.svg";
|
||||||
mBadgeIcons[SLOT_KIDS] = ":/graphics/badge_kidgame.svg";
|
mBadgeIcons[SLOT_KIDGAME] = ":/graphics/badge_kidgame.svg";
|
||||||
mBadgeIcons[SLOT_BROKEN] = ":/graphics/badge_broken.svg";
|
mBadgeIcons[SLOT_BROKEN] = ":/graphics/badge_broken.svg";
|
||||||
mBadgeIcons[SLOT_ALTERNATIVE_EMULATOR] = ":/graphics/badge_altemulator.svg";
|
mBadgeIcons[SLOT_ALTERNATIVE_EMULATOR] = ":/graphics/badge_altemulator.svg";
|
||||||
|
|
||||||
ImageComponent mImageFavorite = ImageComponent(window);
|
|
||||||
mImageComponents.insert({SLOT_FAVORITE, mImageFavorite});
|
|
||||||
ImageComponent mImageCompleted = ImageComponent(window);
|
|
||||||
mImageComponents.insert({SLOT_COMPLETED, mImageCompleted});
|
|
||||||
ImageComponent mImageKids = ImageComponent(window);
|
|
||||||
mImageComponents.insert({SLOT_KIDS, mImageKids});
|
|
||||||
ImageComponent mImageBroken = ImageComponent(window);
|
|
||||||
mImageComponents.insert({SLOT_BROKEN, mImageBroken});
|
|
||||||
ImageComponent mImageAltEmulator = ImageComponent(window);
|
|
||||||
mImageComponents.insert({SLOT_ALTERNATIVE_EMULATOR, mImageAltEmulator});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BadgesComponent::~BadgesComponent()
|
void BadgesComponent::setBadges(const std::vector<std::string>& badges)
|
||||||
{
|
{
|
||||||
for (GuiComponent* c : mChildren)
|
std::map<std::string, bool> prevVisibility;
|
||||||
c->clearChildren();
|
|
||||||
clearChildren();
|
|
||||||
mBadgeIcons.clear();
|
|
||||||
mImageComponents.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
void BadgesComponent::setValue(const std::string& value)
|
// Save the visibility status to know whether any badges changed.
|
||||||
{
|
for (auto& image : mBadgeImages) {
|
||||||
mChildren.clear();
|
prevVisibility[image.first] = image.second.isVisible();
|
||||||
if (!value.empty()) {
|
image.second.setVisible(false);
|
||||||
std::string temp;
|
|
||||||
std::istringstream ss(value);
|
|
||||||
while (std::getline(ss, temp, ' ')) {
|
|
||||||
if (!(temp == SLOT_FAVORITE || temp == SLOT_COMPLETED || temp == SLOT_KIDS ||
|
|
||||||
temp == SLOT_BROKEN || temp == SLOT_ALTERNATIVE_EMULATOR))
|
|
||||||
LOG(LogError) << "Badge slot '" << temp << "' is invalid.";
|
|
||||||
else if (std::find(mSlots.begin(), mSlots.end(), temp) != mSlots.end())
|
|
||||||
mChildren.push_back(&mImageComponents.find(temp)->second);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (auto& badge : badges) {
|
||||||
|
auto it = std::find_if(
|
||||||
|
mBadgeImages.begin(), mBadgeImages.end(),
|
||||||
|
[badge](std::pair<std::string, ImageComponent> image) { return image.first == badge; });
|
||||||
|
|
||||||
|
if (it != mBadgeImages.cend())
|
||||||
|
it->second.setVisible(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Only recalculate the flexbox if any badges changed.
|
||||||
|
for (auto& image : mBadgeImages) {
|
||||||
|
if (prevVisibility[image.first] != image.second.isVisible()) {
|
||||||
onSizeChanged();
|
onSizeChanged();
|
||||||
}
|
break;
|
||||||
|
}
|
||||||
std::string BadgesComponent::getValue() const
|
}
|
||||||
{
|
|
||||||
std::stringstream ss;
|
|
||||||
for (auto& slot : mSlots)
|
|
||||||
ss << slot << ' ';
|
|
||||||
std::string r = ss.str();
|
|
||||||
r.pop_back();
|
|
||||||
return r;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void BadgesComponent::applyTheme(const std::shared_ptr<ThemeData>& theme,
|
void BadgesComponent::applyTheme(const std::shared_ptr<ThemeData>& theme,
|
||||||
|
@ -82,39 +65,31 @@ void BadgesComponent::applyTheme(const std::shared_ptr<ThemeData>& theme,
|
||||||
{
|
{
|
||||||
using namespace ThemeFlags;
|
using namespace ThemeFlags;
|
||||||
|
|
||||||
const ThemeData::ThemeElement* elem = theme->getElement(view, element, "badges");
|
const ThemeData::ThemeElement* elem{theme->getElement(view, element, "badges")};
|
||||||
if (!elem)
|
if (!elem)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (auto& slot : mSlots) {
|
if (elem->has("slots")) {
|
||||||
if (properties & PATH && elem->has(slot)) {
|
std::vector<std::string> slots = Utils::String::delimitedStringToVector(
|
||||||
|
Utils::String::toLower(elem->get<std::string>("slots")), " ");
|
||||||
|
|
||||||
|
for (auto slot : slots) {
|
||||||
|
if (std::find(mBadgeTypes.cbegin(), mBadgeTypes.cend(), slot) != mBadgeTypes.end()) {
|
||||||
|
if (properties & PATH && elem->has(slot))
|
||||||
mBadgeIcons[slot] = elem->get<std::string>(slot);
|
mBadgeIcons[slot] = elem->get<std::string>(slot);
|
||||||
mImageComponents.find(slot)->second.setImage(mBadgeIcons[slot]);
|
|
||||||
|
ImageComponent badgeImage{mWindow};
|
||||||
|
|
||||||
|
badgeImage.setImage(mBadgeIcons[slot]);
|
||||||
|
badgeImage.setVisible(false);
|
||||||
|
mBadgeImages.push_back(std::make_pair(slot, badgeImage));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
mImageComponents.find(slot)->second.setImage(mBadgeIcons[slot]);
|
LOG(LogError) << "Invalid badge slot \"" << slot << "\" defined";
|
||||||
std::string teststring;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (elem->has("slots")) {
|
|
||||||
auto value = elem->get<std::string>("slots");
|
|
||||||
mSlots = {};
|
|
||||||
if (!value.empty()) {
|
|
||||||
std::string temp;
|
|
||||||
std::istringstream ss(value);
|
|
||||||
while (std::getline(ss, temp, ' ')) {
|
|
||||||
if (!(temp == SLOT_FAVORITE || temp == SLOT_COMPLETED || temp == SLOT_KIDS ||
|
|
||||||
temp == SLOT_BROKEN || temp == SLOT_ALTERNATIVE_EMULATOR))
|
|
||||||
LOG(LogError) << "Badge slot '" << temp << "' is invalid.";
|
|
||||||
else
|
|
||||||
mSlots.push_back(temp);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply theme on the flexbox component parent.
|
// Apply theme on the flexbox component parent.
|
||||||
FlexboxComponent::applyTheme(theme, view, element, properties);
|
FlexboxComponent::applyTheme(theme, view, element, properties);
|
||||||
|
}
|
||||||
onSizeChanged();
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,30 +11,14 @@
|
||||||
#define ES_CORE_COMPONENTS_BADGES_COMPONENT_H
|
#define ES_CORE_COMPONENTS_BADGES_COMPONENT_H
|
||||||
|
|
||||||
#include "FlexboxComponent.h"
|
#include "FlexboxComponent.h"
|
||||||
#include "GuiComponent.h"
|
|
||||||
#include "ImageComponent.h"
|
|
||||||
#include "renderers/Renderer.h"
|
|
||||||
|
|
||||||
#define NUM_SLOTS 4
|
|
||||||
#define SLOT_FAVORITE "favorite"
|
|
||||||
#define SLOT_COMPLETED "completed"
|
|
||||||
#define SLOT_KIDS "kidgame"
|
|
||||||
#define SLOT_BROKEN "broken"
|
|
||||||
#define SLOT_ALTERNATIVE_EMULATOR "altemulator"
|
|
||||||
|
|
||||||
class TextureResource;
|
|
||||||
|
|
||||||
class BadgesComponent : public FlexboxComponent
|
class BadgesComponent : public FlexboxComponent
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
BadgesComponent(Window* window);
|
BadgesComponent(Window* window);
|
||||||
~BadgesComponent();
|
|
||||||
|
|
||||||
static std::shared_ptr<BadgesComponent>& getInstance();
|
std::vector<std::string> getBadgeTypes() { return mBadgeTypes; }
|
||||||
|
void setBadges(const std::vector<std::string>& badges);
|
||||||
std::string getValue() const override;
|
|
||||||
// Should be a list of strings.
|
|
||||||
void setValue(const std::string& value) override;
|
|
||||||
|
|
||||||
virtual void applyTheme(const std::shared_ptr<ThemeData>& theme,
|
virtual void applyTheme(const std::shared_ptr<ThemeData>& theme,
|
||||||
const std::string& view,
|
const std::string& view,
|
||||||
|
@ -42,9 +26,9 @@ public:
|
||||||
unsigned int properties) override;
|
unsigned int properties) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static std::vector<std::string> mSlots;
|
std::vector<std::string> mBadgeTypes;
|
||||||
std::map<std::string, std::string> mBadgeIcons;
|
std::map<std::string, std::string> mBadgeIcons;
|
||||||
std::map<std::string, ImageComponent> mImageComponents;
|
std::vector<std::pair<std::string, ImageComponent>> mBadgeImages;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // ES_CORE_COMPONENTS_BADGES_COMPONENT_H
|
#endif // ES_CORE_COMPONENTS_BADGES_COMPONENT_H
|
||||||
|
|
|
@ -7,35 +7,41 @@
|
||||||
// Used by gamelist views.
|
// Used by gamelist views.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "components/FlexboxComponent.h"
|
#define DEFAULT_DIRECTION Direction::row
|
||||||
#include "Settings.h"
|
#define DEFAULT_ALIGN Align::center
|
||||||
#include "ThemeData.h"
|
#define DEFAULT_ITEMS_PER_LINE 4
|
||||||
#include "resources/TextureResource.h"
|
#define DEFAULT_LINES 1
|
||||||
|
#define DEFAULT_MARGIN_X 10.0f
|
||||||
|
#define DEFAULT_MARGIN_Y 10.0f
|
||||||
|
|
||||||
FlexboxComponent::FlexboxComponent(Window* window)
|
#include "components/FlexboxComponent.h"
|
||||||
: GuiComponent(window)
|
|
||||||
, mDirection(DEFAULT_DIRECTION)
|
#include "ThemeData.h"
|
||||||
, mAlign(DEFAULT_ALIGN)
|
|
||||||
, mItemsPerLine(DEFAULT_ITEMS_PER_LINE)
|
FlexboxComponent::FlexboxComponent(Window* window,
|
||||||
, mLines(DEFAULT_LINES)
|
std::vector<std::pair<std::string, ImageComponent>>& images)
|
||||||
, mItemMargin({DEFAULT_MARGIN_X, DEFAULT_MARGIN_Y})
|
: GuiComponent{window}
|
||||||
, mLayoutValid(false)
|
, mDirection{DEFAULT_DIRECTION}
|
||||||
|
, mAlign{DEFAULT_ALIGN}
|
||||||
|
, mImages(images)
|
||||||
|
, mItemsPerLine{DEFAULT_ITEMS_PER_LINE}
|
||||||
|
, mLines{DEFAULT_LINES}
|
||||||
|
, mItemMargin{glm::vec2{DEFAULT_MARGIN_X, DEFAULT_MARGIN_Y}}
|
||||||
|
, mLayoutValid{false}
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void FlexboxComponent::onSizeChanged() { mLayoutValid = false; }
|
|
||||||
|
|
||||||
void FlexboxComponent::computeLayout()
|
void FlexboxComponent::computeLayout()
|
||||||
{
|
{
|
||||||
// Start placing items in the top-left.
|
// Start placing items in the top-left.
|
||||||
float anchorX = 0;
|
float anchorX{0.0f};
|
||||||
float anchorY = 0;
|
float anchorY{0.0f};
|
||||||
float anchorOriginX = 0;
|
float anchorOriginX{0.0f};
|
||||||
float anchorOriginY = 0;
|
float anchorOriginY{0.0f};
|
||||||
|
|
||||||
// Translation directions when placing items.
|
// Translation directions when placing items.
|
||||||
glm::ivec2 directionLine = {1, 0};
|
glm::ivec2 directionLine{1, 0};
|
||||||
glm::ivec2 directionRow = {0, 1};
|
glm::ivec2 directionRow{0, 1};
|
||||||
|
|
||||||
// Change direction.
|
// Change direction.
|
||||||
if (mDirection == Direction::column) {
|
if (mDirection == Direction::column) {
|
||||||
|
@ -43,21 +49,23 @@ void FlexboxComponent::computeLayout()
|
||||||
directionRow = {1, 0};
|
directionRow = {1, 0};
|
||||||
}
|
}
|
||||||
|
|
||||||
// Compute children maximal dimensions.
|
// Compute maximum image dimensions.
|
||||||
glm::vec2 grid;
|
glm::vec2 grid;
|
||||||
if (mDirection == Direction::row)
|
if (mDirection == Direction::row)
|
||||||
grid = {mItemsPerLine, mLines};
|
grid = {mItemsPerLine, mLines};
|
||||||
else
|
else
|
||||||
grid = {mLines, mItemsPerLine};
|
grid = {mLines, mItemsPerLine};
|
||||||
glm::vec2 maxItemSize = (mSize + mItemMargin - grid * mItemMargin) / grid;
|
glm::vec2 maxItemSize{(mSize + mItemMargin - grid * mItemMargin) / grid};
|
||||||
|
|
||||||
// Set final children dimensions.
|
// Set final image dimensions.
|
||||||
for (auto i : mChildren) {
|
for (auto& image : mImages) {
|
||||||
auto oldSize = i->getSize();
|
if (!image.second.isVisible())
|
||||||
|
continue;
|
||||||
|
auto oldSize{image.second.getSize()};
|
||||||
if (oldSize.x == 0)
|
if (oldSize.x == 0)
|
||||||
oldSize.x = maxItemSize.x;
|
oldSize.x = maxItemSize.x;
|
||||||
glm::vec2 sizeMaxX = {maxItemSize.x, oldSize.y * (maxItemSize.x / oldSize.x)};
|
glm::vec2 sizeMaxX{maxItemSize.x, oldSize.y * (maxItemSize.x / oldSize.x)};
|
||||||
glm::vec2 sizeMaxY = {oldSize.x * (maxItemSize.y / oldSize.y), maxItemSize.y};
|
glm::vec2 sizeMaxY{oldSize.x * (maxItemSize.y / oldSize.y), maxItemSize.y};
|
||||||
glm::vec2 newSize;
|
glm::vec2 newSize;
|
||||||
if (sizeMaxX.y > maxItemSize.y)
|
if (sizeMaxX.y > maxItemSize.y)
|
||||||
newSize = sizeMaxY;
|
newSize = sizeMaxY;
|
||||||
|
@ -65,23 +73,27 @@ void FlexboxComponent::computeLayout()
|
||||||
newSize = sizeMaxX;
|
newSize = sizeMaxX;
|
||||||
else
|
else
|
||||||
newSize = sizeMaxX.x * sizeMaxX.y >= sizeMaxY.x * sizeMaxY.y ? sizeMaxX : sizeMaxY;
|
newSize = sizeMaxX.x * sizeMaxX.y >= sizeMaxY.x * sizeMaxY.y ? sizeMaxX : sizeMaxY;
|
||||||
i->setSize(newSize);
|
image.second.setResize(newSize.x, newSize.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pre-compute layout parameters.
|
// Pre-compute layout parameters.
|
||||||
float lineWidth = (mDirection == Direction::row ? (maxItemSize.y + mItemMargin.y) :
|
float lineWidth = (mDirection == Direction::row ? (maxItemSize.y + mItemMargin.y) :
|
||||||
(maxItemSize.x + mItemMargin.x));
|
(maxItemSize.x + mItemMargin.x));
|
||||||
float anchorXStart = anchorX;
|
float anchorXStart{anchorX};
|
||||||
float anchorYStart = anchorY;
|
float anchorYStart{anchorY};
|
||||||
|
|
||||||
// Iterate through the children.
|
int i = 0;
|
||||||
for (int i = 0; i < static_cast<int>(mChildren.size()); i++) {
|
|
||||||
GuiComponent* child = mChildren[i];
|
// Iterate through the images.
|
||||||
auto size = child->getSize();
|
for (auto& image : mImages) {
|
||||||
|
if (!image.second.isVisible())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
auto size{image.second.getSize()};
|
||||||
|
|
||||||
// Top-left anchor position.
|
// Top-left anchor position.
|
||||||
float x = anchorX - anchorOriginX * size.x;
|
float x{anchorX - anchorOriginX * size.x};
|
||||||
float y = anchorY - anchorOriginY * size.y;
|
float y{anchorY - anchorOriginY * size.y};
|
||||||
|
|
||||||
// Apply alignment
|
// Apply alignment
|
||||||
if (mAlign == Align::end) {
|
if (mAlign == Align::end) {
|
||||||
|
@ -93,7 +105,7 @@ void FlexboxComponent::computeLayout()
|
||||||
y += directionLine.y == 0 ? (maxItemSize.y - size.y) / 2 : 0;
|
y += directionLine.y == 0 ? (maxItemSize.y - size.y) / 2 : 0;
|
||||||
}
|
}
|
||||||
else if (mAlign == Align::stretch && mDirection == Direction::row) {
|
else if (mAlign == Align::stretch && mDirection == Direction::row) {
|
||||||
child->setSize(child->getSize().x, maxItemSize.y);
|
image.second.setSize(image.second.getSize().x, maxItemSize.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply origin.
|
// Apply origin.
|
||||||
|
@ -103,10 +115,10 @@ void FlexboxComponent::computeLayout()
|
||||||
y -= mOrigin.y * mSize.y;
|
y -= mOrigin.y * mSize.y;
|
||||||
|
|
||||||
// Store final item position.
|
// Store final item position.
|
||||||
child->setPosition(getPosition().x + x, getPosition().y + y);
|
image.second.setPosition(getPosition().x + x, getPosition().y + y);
|
||||||
|
|
||||||
// Translate anchor.
|
// Translate anchor.
|
||||||
if ((i + 1) % std::max(1, static_cast<int>(mItemsPerLine)) != 0) {
|
if ((i++ + 1) % std::max(1, static_cast<int>(mItemsPerLine)) != 0) {
|
||||||
// Translate on same line.
|
// Translate on same line.
|
||||||
anchorX += (size.x + mItemMargin.x) * static_cast<float>(directionLine.x);
|
anchorX += (size.x + mItemMargin.x) * static_cast<float>(directionLine.x);
|
||||||
anchorY += (size.y + mItemMargin.y) * static_cast<float>(directionLine.y);
|
anchorY += (size.y + mItemMargin.y) * static_cast<float>(directionLine.y);
|
||||||
|
@ -135,7 +147,8 @@ void FlexboxComponent::render(const glm::mat4& parentTrans)
|
||||||
if (!mLayoutValid)
|
if (!mLayoutValid)
|
||||||
computeLayout();
|
computeLayout();
|
||||||
|
|
||||||
renderChildren(parentTrans);
|
for (auto& image : mImages)
|
||||||
|
image.second.render(parentTrans);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FlexboxComponent::applyTheme(const std::shared_ptr<ThemeData>& theme,
|
void FlexboxComponent::applyTheme(const std::shared_ptr<ThemeData>& theme,
|
||||||
|
@ -149,7 +162,6 @@ void FlexboxComponent::applyTheme(const std::shared_ptr<ThemeData>& theme,
|
||||||
glm::vec2{static_cast<float>(Renderer::getScreenWidth()),
|
glm::vec2{static_cast<float>(Renderer::getScreenWidth()),
|
||||||
static_cast<float>(Renderer::getScreenHeight())}};
|
static_cast<float>(Renderer::getScreenHeight())}};
|
||||||
|
|
||||||
// TODO: How to do this without explicit 'badges' property?
|
|
||||||
const ThemeData::ThemeElement* elem = theme->getElement(view, element, "badges");
|
const ThemeData::ThemeElement* elem = theme->getElement(view, element, "badges");
|
||||||
if (!elem)
|
if (!elem)
|
||||||
return;
|
return;
|
||||||
|
@ -179,9 +191,3 @@ void FlexboxComponent::applyTheme(const std::shared_ptr<ThemeData>& theme,
|
||||||
// Layout no longer valid.
|
// Layout no longer valid.
|
||||||
mLayoutValid = false;
|
mLayoutValid = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<HelpPrompt> FlexboxComponent::getHelpPrompts()
|
|
||||||
{
|
|
||||||
std::vector<HelpPrompt> prompts;
|
|
||||||
return prompts;
|
|
||||||
}
|
|
||||||
|
|
|
@ -11,67 +11,75 @@
|
||||||
#define ES_CORE_COMPONENTS_FLEXBOX_COMPONENT_H
|
#define ES_CORE_COMPONENTS_FLEXBOX_COMPONENT_H
|
||||||
|
|
||||||
#include "GuiComponent.h"
|
#include "GuiComponent.h"
|
||||||
#include "renderers/Renderer.h"
|
#include "components/ImageComponent.h"
|
||||||
|
|
||||||
// Default values.
|
|
||||||
#define DEFAULT_DIRECTION Direction::row
|
|
||||||
#define DEFAULT_ALIGN Align::center
|
|
||||||
#define DEFAULT_ITEMS_PER_LINE 4
|
|
||||||
#define DEFAULT_LINES 1
|
|
||||||
#define DEFAULT_MARGIN_X 10.0f
|
|
||||||
#define DEFAULT_MARGIN_Y 10.0f
|
|
||||||
|
|
||||||
class FlexboxComponent : public GuiComponent
|
class FlexboxComponent : public GuiComponent
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
enum class Direction : char { row, column };
|
enum class Direction : char {
|
||||||
enum class Align : char { start, end, center, stretch };
|
row, // Replace with AllowShortEnumsOnASingleLine: false (clang-format >=11.0).
|
||||||
|
column
|
||||||
|
};
|
||||||
|
|
||||||
explicit FlexboxComponent(Window* window);
|
enum class Align : char {
|
||||||
|
start, // Replace with AllowShortEnumsOnASingleLine: false (clang-format >=11.0).
|
||||||
|
end,
|
||||||
|
center,
|
||||||
|
stretch
|
||||||
|
};
|
||||||
|
|
||||||
|
explicit FlexboxComponent(Window* window,
|
||||||
|
std::vector<std::pair<std::string, ImageComponent>>& images);
|
||||||
|
|
||||||
// Getters/Setters for rendering options.
|
// Getters/Setters for rendering options.
|
||||||
[[nodiscard]] Align getAlign() const { return mAlign; };
|
Align getAlign() const { return mAlign; }
|
||||||
void setAlign(Align value)
|
void setAlign(Align value)
|
||||||
{
|
{
|
||||||
mAlign = value;
|
mAlign = value;
|
||||||
mLayoutValid = false;
|
mLayoutValid = false;
|
||||||
};
|
}
|
||||||
[[nodiscard]] unsigned int getItemsPerLine() const { return mItemsPerLine; };
|
|
||||||
|
unsigned int getItemsPerLine() const { return mItemsPerLine; }
|
||||||
void setItemsPerLine(unsigned int value)
|
void setItemsPerLine(unsigned int value)
|
||||||
{
|
{
|
||||||
mItemsPerLine = value;
|
mItemsPerLine = value;
|
||||||
mLayoutValid = false;
|
mLayoutValid = false;
|
||||||
};
|
}
|
||||||
[[nodiscard]] unsigned int getLines() const { return mLines; };
|
|
||||||
|
unsigned int getLines() const { return mLines; }
|
||||||
void setLines(unsigned int value)
|
void setLines(unsigned int value)
|
||||||
{
|
{
|
||||||
mLines = value;
|
mLines = value;
|
||||||
mLayoutValid = false;
|
mLayoutValid = false;
|
||||||
};
|
}
|
||||||
[[nodiscard]] glm::vec2 getItemMargin() const { return mItemMargin; };
|
|
||||||
|
glm::vec2 getItemMargin() const { return mItemMargin; }
|
||||||
void setItemMargin(glm::vec2 value)
|
void setItemMargin(glm::vec2 value)
|
||||||
{
|
{
|
||||||
mItemMargin = value;
|
mItemMargin = value;
|
||||||
mLayoutValid = false;
|
mLayoutValid = false;
|
||||||
};
|
}
|
||||||
|
|
||||||
void onSizeChanged() override;
|
void onSizeChanged() override { mLayoutValid = false; }
|
||||||
void render(const glm::mat4& parentTrans) override;
|
void render(const glm::mat4& parentTrans) override;
|
||||||
void applyTheme(const std::shared_ptr<ThemeData>& theme,
|
void applyTheme(const std::shared_ptr<ThemeData>& theme,
|
||||||
const std::string& view,
|
const std::string& view,
|
||||||
const std::string& element,
|
const std::string& element,
|
||||||
unsigned int properties) override;
|
unsigned int properties) override;
|
||||||
std::vector<HelpPrompt> getHelpPrompts() override;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Calculate flexbox layout.
|
// Calculate flexbox layout.
|
||||||
void computeLayout();
|
void computeLayout();
|
||||||
|
|
||||||
// Rendering options.
|
// Layout options.
|
||||||
Direction mDirection;
|
Direction mDirection;
|
||||||
Align mAlign;
|
Align mAlign;
|
||||||
|
|
||||||
|
std::vector<std::pair<std::string, ImageComponent>>& mImages;
|
||||||
|
|
||||||
unsigned int mItemsPerLine;
|
unsigned int mItemsPerLine;
|
||||||
unsigned int mLines;
|
unsigned int mLines;
|
||||||
|
|
||||||
glm::vec2 mItemMargin;
|
glm::vec2 mItemMargin;
|
||||||
bool mLayoutValid;
|
bool mLayoutValid;
|
||||||
};
|
};
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
viewBox="0 0 21.166666 29.633334"
|
viewBox="0 0 21.166666 29.633334"
|
||||||
version="1.1"
|
version="1.1"
|
||||||
id="svg4842"
|
id="svg4842"
|
||||||
inkscape:version="1.0.2 (e86c870879, 2021-01-15)"
|
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
|
||||||
sodipodi:docname="badge_altemulator.svg">
|
sodipodi:docname="badge_altemulator.svg">
|
||||||
<defs
|
<defs
|
||||||
id="defs4836" />
|
id="defs4836" />
|
||||||
|
@ -23,15 +23,15 @@
|
||||||
borderopacity="1.0"
|
borderopacity="1.0"
|
||||||
inkscape:pageopacity="0.0"
|
inkscape:pageopacity="0.0"
|
||||||
inkscape:pageshadow="2"
|
inkscape:pageshadow="2"
|
||||||
inkscape:zoom="7.0546875"
|
inkscape:zoom="12.442154"
|
||||||
inkscape:cx="29.041584"
|
inkscape:cx="-18.41824"
|
||||||
inkscape:cy="62.825107"
|
inkscape:cy="59.681612"
|
||||||
inkscape:document-units="mm"
|
inkscape:document-units="mm"
|
||||||
inkscape:current-layer="layer1"
|
inkscape:current-layer="layer2"
|
||||||
showgrid="false"
|
showgrid="false"
|
||||||
inkscape:window-width="3440"
|
inkscape:window-width="3840"
|
||||||
inkscape:window-height="1355"
|
inkscape:window-height="2065"
|
||||||
inkscape:window-x="2560"
|
inkscape:window-x="0"
|
||||||
inkscape:window-y="0"
|
inkscape:window-y="0"
|
||||||
inkscape:window-maximized="1"
|
inkscape:window-maximized="1"
|
||||||
fit-margin-top="0"
|
fit-margin-top="0"
|
||||||
|
@ -42,7 +42,7 @@
|
||||||
inkscape:snap-nodes="false"
|
inkscape:snap-nodes="false"
|
||||||
inkscape:snap-others="false"
|
inkscape:snap-others="false"
|
||||||
inkscape:snap-global="true"
|
inkscape:snap-global="true"
|
||||||
inkscape:document-rotation="0"/>
|
inkscape:document-rotation="0" />
|
||||||
<metadata
|
<metadata
|
||||||
id="metadata4839">
|
id="metadata4839">
|
||||||
<rdf:RDF>
|
<rdf:RDF>
|
||||||
|
@ -51,7 +51,7 @@
|
||||||
<dc:format>image/svg+xml</dc:format>
|
<dc:format>image/svg+xml</dc:format>
|
||||||
<dc:type
|
<dc:type
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
<dc:title></dc:title>
|
<dc:title />
|
||||||
</cc:Work>
|
</cc:Work>
|
||||||
</rdf:RDF>
|
</rdf:RDF>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
@ -77,7 +77,7 @@
|
||||||
width="204.36"
|
width="204.36"
|
||||||
height="288.81"
|
height="288.81"
|
||||||
id="rect14"
|
id="rect14"
|
||||||
style="fill:#d7d7d7;fill-opacity:1;stroke-width:0.26458"/>
|
style="fill:#d7d7d7;fill-opacity:1;stroke-width:0.26458" />
|
||||||
</g>
|
</g>
|
||||||
<g
|
<g
|
||||||
id="g20"
|
id="g20"
|
||||||
|
@ -88,7 +88,7 @@
|
||||||
width="194.89999"
|
width="194.89999"
|
||||||
height="279.22"
|
height="279.22"
|
||||||
id="rect18"
|
id="rect18"
|
||||||
style="stroke-width:0.26458"/>
|
style="stroke-width:0.26458" />
|
||||||
</g>
|
</g>
|
||||||
<rect
|
<rect
|
||||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:0.0266453"
|
style="fill:#e6e6e6;fill-opacity:1;stroke-width:0.0266453"
|
||||||
|
@ -181,27 +181,27 @@
|
||||||
d="m 2.2271284,292.95117 c 0,0.40604 0.015331,0.79582 0.030663,1.17749 0,0.0243 0.030663,0.0406 0.076656,0.0406 0.2529687,0.008 1.364477,0.0203 1.625048,0.0203 0.2529687,0 1.073192,-0.004 1.3184891,-0.0122 v -0.29642 -0.35327 c -0.00767,-0.0203 -0.038327,-0.0406 -0.076656,-0.0406 -0.2606263,-0.004 -1.096179,-0.008 -1.3568192,-0.008 h -0.099653 v -0.21114 h 0.9965315 v -0.268 -0.30859 c -0.00767,-0.0203 -0.038327,-0.0406 -0.076656,-0.0406 -0.1993091,0 -0.6132565,-0.004 -0.919871,-0.004 v -0.21521 h 0.2989565 c 0.2529687,0 0.9735306,0 1.2188276,-0.008 v -0.29642 -0.35326 c -0.00767,-0.0203 -0.038327,-0.0406 -0.076656,-0.0406 -0.2606264,-0.004 -1.0808497,-0.008 -1.3414899,-0.008 -0.2529687,0 -1.3491477,0.004 -1.5867594,0.008 -0.022997,0.40604 -0.030663,0.81206 -0.030663,1.21812 z"
|
d="m 2.2271284,292.95117 c 0,0.40604 0.015331,0.79582 0.030663,1.17749 0,0.0243 0.030663,0.0406 0.076656,0.0406 0.2529687,0.008 1.364477,0.0203 1.625048,0.0203 0.2529687,0 1.073192,-0.004 1.3184891,-0.0122 v -0.29642 -0.35327 c -0.00767,-0.0203 -0.038327,-0.0406 -0.076656,-0.0406 -0.2606263,-0.004 -1.096179,-0.008 -1.3568192,-0.008 h -0.099653 v -0.21114 h 0.9965315 v -0.268 -0.30859 c -0.00767,-0.0203 -0.038327,-0.0406 -0.076656,-0.0406 -0.1993091,0 -0.6132565,-0.004 -0.919871,-0.004 v -0.21521 h 0.2989565 c 0.2529687,0 0.9735306,0 1.2188276,-0.008 v -0.29642 -0.35326 c -0.00767,-0.0203 -0.038327,-0.0406 -0.076656,-0.0406 -0.2606264,-0.004 -1.0808497,-0.008 -1.3414899,-0.008 -0.2529687,0 -1.3491477,0.004 -1.5867594,0.008 -0.022997,0.40604 -0.030663,0.81206 -0.030663,1.21812 z"
|
||||||
id="path78-4"
|
id="path78-4"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
style="fill:#f0f0f0;fill-opacity:1;stroke-width:0.036704"/>
|
style="fill:#f0f0f0;fill-opacity:1;stroke-width:0.036704" />
|
||||||
<path
|
<path
|
||||||
d="m 5.6153964,294.14527 c 0.5289244,0.0325 1.0961791,0.0446 1.6174179,0.0446 1.0348618,0 1.8780861,-0.15023 1.8780861,-0.79582 0,-0.5644 -0.9505434,-0.71463 -1.5867594,-0.81618 -0.3142859,-0.0487 -0.5519252,-0.0853 -0.5519252,-0.15834 0,-0.0731 0.1533072,-0.1137 0.3909464,-0.1137 0.4752649,0 1.0195325,0.0812 1.3798065,0.16647 l 0.1763081,-0.67809 c -0.5135951,-0.0527 -1.0348617,-0.0894 -1.4795233,-0.0894 -1.0501911,0 -1.8167688,0.0487 -1.8167688,0.70652 0,0.62531 0.8508821,0.75525 1.4258361,0.84049 0.2989567,0.0446 0.5212666,0.0772 0.5212666,0.15836 0,0.065 -0.1226499,0.14617 -0.4139474,0.14617 -0.3449586,0 -0.8202234,-0.0528 -1.3568193,-0.14212 z"
|
d="m 5.6153964,294.14527 c 0.5289244,0.0325 1.0961791,0.0446 1.6174179,0.0446 1.0348618,0 1.8780861,-0.15023 1.8780861,-0.79582 0,-0.5644 -0.9505434,-0.71463 -1.5867594,-0.81618 -0.3142859,-0.0487 -0.5519252,-0.0853 -0.5519252,-0.15834 0,-0.0731 0.1533072,-0.1137 0.3909464,-0.1137 0.4752649,0 1.0195325,0.0812 1.3798065,0.16647 l 0.1763081,-0.67809 c -0.5135951,-0.0527 -1.0348617,-0.0894 -1.4795233,-0.0894 -1.0501911,0 -1.8167688,0.0487 -1.8167688,0.70652 0,0.62531 0.8508821,0.75525 1.4258361,0.84049 0.2989567,0.0446 0.5212666,0.0772 0.5212666,0.15836 0,0.065 -0.1226499,0.14617 -0.4139474,0.14617 -0.3449586,0 -0.8202234,-0.0528 -1.3568193,-0.14212 z"
|
||||||
id="path80-9"
|
id="path80-9"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
style="fill:#f0f0f0;fill-opacity:1;stroke-width:0.036704"/>
|
style="fill:#f0f0f0;fill-opacity:1;stroke-width:0.036704" />
|
||||||
<path
|
<path
|
||||||
d="m 9.4307297,292.9475 c 0,0.10149 0.00613,0.19489 0.01226,0.29641 0,0.0243 0.024523,0.0406 0.061303,0.0406 0.2023048,0.008 0.9931183,0.0203 1.2015133,0.0203 0.202306,0 0.919554,-0.004 1.054426,-0.0122 0,-0.0853 0.0061,-0.17459 0.0061,-0.2558 0,-0.20302 -0.0061,-0.24769 -0.0061,-0.34514 -0.0061,-0.0203 -0.03065,-0.0406 -0.06131,-0.0406 -0.208428,-0.004 -0.692729,-0.008 -0.901169,-0.008 -0.202303,0 -1.1647903,0.004 -1.354836,0.008 -0.00613,0.13399 -0.01226,0.21926 -0.01226,0.29642 z"
|
d="m 9.4307297,292.9475 c 0,0.10149 0.00613,0.19489 0.01226,0.29641 0,0.0243 0.024523,0.0406 0.061303,0.0406 0.2023048,0.008 0.9931183,0.0203 1.2015133,0.0203 0.202306,0 0.919554,-0.004 1.054426,-0.0122 0,-0.0853 0.0061,-0.17459 0.0061,-0.2558 0,-0.20302 -0.0061,-0.24769 -0.0061,-0.34514 -0.0061,-0.0203 -0.03065,-0.0406 -0.06131,-0.0406 -0.208428,-0.004 -0.692729,-0.008 -0.901169,-0.008 -0.202303,0 -1.1647903,0.004 -1.354836,0.008 -0.00613,0.13399 -0.01226,0.21926 -0.01226,0.29642 z"
|
||||||
id="path82-1"
|
id="path82-1"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
style="fill:#f0f0f0;fill-opacity:1;stroke-width:0.0328234"/>
|
style="fill:#f0f0f0;fill-opacity:1;stroke-width:0.0328234" />
|
||||||
<path
|
<path
|
||||||
d="m 13.651876,292.95117 c 0,-0.19489 0,-0.36544 0.0077,-0.53598 h 0.130314 c 0.206967,0 0.360288,0.0528 0.360288,0.53598 0,0.48319 -0.153307,0.54004 -0.360288,0.54004 h -0.130314 c -0.0077,-0.17054 -0.0077,-0.34108 -0.0077,-0.54004 z m -1.517812,0 c 0,0.40604 0.01533,0.75525 0.01533,1.13692 0,0.0243 0.03066,0.0406 0.07666,0.0406 0.528925,0.0284 1.011861,0.0487 1.433466,0.0487 1.28783,0 2.092697,-0.21115 2.092697,-1.22628 0,-0.95418 -0.812553,-1.24657 -2.108095,-1.24657 -0.429277,0 -0.98886,0.0284 -1.494784,0.0691 0,0.40604 -0.01533,0.7715 -0.01533,1.17749 z"
|
d="m 13.651876,292.95117 c 0,-0.19489 0,-0.36544 0.0077,-0.53598 h 0.130314 c 0.206967,0 0.360288,0.0528 0.360288,0.53598 0,0.48319 -0.153307,0.54004 -0.360288,0.54004 h -0.130314 c -0.0077,-0.17054 -0.0077,-0.34108 -0.0077,-0.54004 z m -1.517812,0 c 0,0.40604 0.01533,0.75525 0.01533,1.13692 0,0.0243 0.03066,0.0406 0.07666,0.0406 0.528925,0.0284 1.011861,0.0487 1.433466,0.0487 1.28783,0 2.092697,-0.21115 2.092697,-1.22628 0,-0.95418 -0.812553,-1.24657 -2.108095,-1.24657 -0.429277,0 -0.98886,0.0284 -1.494784,0.0691 0,0.40604 -0.01533,0.7715 -0.01533,1.17749 z"
|
||||||
id="path84-7"
|
id="path84-7"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
style="fill:#f0f0f0;fill-opacity:1;stroke-width:0.036704"/>
|
style="fill:#f0f0f0;fill-opacity:1;stroke-width:0.036704" />
|
||||||
<path
|
<path
|
||||||
d="m 15.999759,292.92458 c 0,0.3953 0.01492,0.77476 0.02985,1.14634 0,0.0237 0.02985,0.0395 0.07463,0.0395 0.246278,0.008 1.328384,0.0198 1.582062,0.0198 0.246277,0 1.044804,-0.004 1.283611,-0.0118 v -0.28858 -0.34391 c -0.0075,-0.0198 -0.03731,-0.0395 -0.07463,-0.0395 -0.253731,-0.004 -1.067182,-0.008 -1.320928,-0.008 h -0.09702 v -0.20557 h 0.970171 v -0.2609 -0.30043 c -0.0075,-0.0198 -0.03731,-0.0395 -0.07463,-0.0395 -0.194037,0 -0.597034,-0.004 -0.895539,-0.004 v -0.20951 h 0.291049 c 0.246277,0 0.947778,0 1.186587,-0.008 v -0.28857 -0.34391 c -0.0075,-0.0198 -0.03731,-0.0395 -0.07463,-0.0395 -0.253731,-0.004 -1.052258,-0.008 -1.306003,-0.008 -0.246277,0 -1.313459,0.004 -1.544785,0.008 -0.02239,0.39529 -0.02985,0.79057 -0.02985,1.18589 z"
|
d="m 15.999759,292.92458 c 0,0.3953 0.01492,0.77476 0.02985,1.14634 0,0.0237 0.02985,0.0395 0.07463,0.0395 0.246278,0.008 1.328384,0.0198 1.582062,0.0198 0.246277,0 1.044804,-0.004 1.283611,-0.0118 v -0.28858 -0.34391 c -0.0075,-0.0198 -0.03731,-0.0395 -0.07463,-0.0395 -0.253731,-0.004 -1.067182,-0.008 -1.320928,-0.008 h -0.09702 v -0.20557 h 0.970171 v -0.2609 -0.30043 c -0.0075,-0.0198 -0.03731,-0.0395 -0.07463,-0.0395 -0.194037,0 -0.597034,-0.004 -0.895539,-0.004 v -0.20951 h 0.291049 c 0.246277,0 0.947778,0 1.186587,-0.008 v -0.28857 -0.34391 c -0.0075,-0.0198 -0.03731,-0.0395 -0.07463,-0.0395 -0.253731,-0.004 -1.052258,-0.008 -1.306003,-0.008 -0.246277,0 -1.313459,0.004 -1.544785,0.008 -0.02239,0.39529 -0.02985,0.79057 -0.02985,1.18589 z"
|
||||||
id="path86-0"
|
id="path86-0"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
style="fill:#f0f0f0;fill-opacity:1;stroke-width:0.0357331"/>
|
style="fill:#f0f0f0;fill-opacity:1;stroke-width:0.0357331" />
|
||||||
</g>
|
</g>
|
||||||
<g
|
<g
|
||||||
id="g54"
|
id="g54"
|
||||||
|
@ -211,11 +211,11 @@
|
||||||
<path
|
<path
|
||||||
id="path26"
|
id="path26"
|
||||||
d="m 17.44,237.05 c 0,6.2189 2.6119,7.5125 6.7911,7.5125 1.0199,0 1.8408,-0.0746 2.8607,-0.27364 l -0.52239,-3.9304 -2.2886,0.17413 c -1.0199,0.0497 -1.6667,-0.52239 -1.6667,-3.4826 0,-2.9602 0.74627,-3.5075 1.6667,-3.4577 l 2.2886,0.14926 0.54726,-3.9055 c -1.0199,-0.22388 -1.8159,-0.42289 -2.8358,-0.42289 -4.204,0 -6.8408,1.791 -6.8408,7.6368 z"
|
d="m 17.44,237.05 c 0,6.2189 2.6119,7.5125 6.7911,7.5125 1.0199,0 1.8408,-0.0746 2.8607,-0.27364 l -0.52239,-3.9304 -2.2886,0.17413 c -1.0199,0.0497 -1.6667,-0.52239 -1.6667,-3.4826 0,-2.9602 0.74627,-3.5075 1.6667,-3.4577 l 2.2886,0.14926 0.54726,-3.9055 c -1.0199,-0.22388 -1.8159,-0.42289 -2.8358,-0.42289 -4.204,0 -6.8408,1.791 -6.8408,7.6368 z"
|
||||||
inkscape:connector-curvature="0"/>
|
inkscape:connector-curvature="0" />
|
||||||
<path
|
<path
|
||||||
id="path28"
|
id="path28"
|
||||||
d="m 27.505,237.05 c 0,5.7712 2.1642,7.612 6.9154,7.612 3.5075,-0.17413 5.7214,-2.7114 5.7214,-7.612 0,-5.7463 -2.2388,-7.6368 -6.9652,-7.6368 -3.5075,0.17413 -5.6717,2.7612 -5.6717,7.6368 z m 5.1741,0 c 0,-2.9602 0.42289,-3.2836 1.0945,-3.2836 0.67161,0 1.1692,0.32339 1.1692,3.2836 0,2.9602 -0.42289,3.2836 -1.0945,3.2836 -0.67161,0 -1.1692,-0.32339 -1.1692,-3.2836 z"
|
d="m 27.505,237.05 c 0,5.7712 2.1642,7.612 6.9154,7.612 3.5075,-0.17413 5.7214,-2.7114 5.7214,-7.612 0,-5.7463 -2.2388,-7.6368 -6.9652,-7.6368 -3.5075,0.17413 -5.6717,2.7612 -5.6717,7.6368 z m 5.1741,0 c 0,-2.9602 0.42289,-3.2836 1.0945,-3.2836 0.67161,0 1.1692,0.32339 1.1692,3.2836 0,2.9602 -0.42289,3.2836 -1.0945,3.2836 -0.67161,0 -1.1692,-0.32339 -1.1692,-3.2836 z"
|
||||||
inkscape:connector-curvature="0"/>
|
inkscape:connector-curvature="0" />
|
||||||
<path
|
<path
|
||||||
id="path30"
|
id="path30"
|
||||||
d="m 41.176,237.05 c 0,2.4876 0.04975,4.8756 0.0995,7.214 0,0.14925 0.0995,0.24875 0.24876,0.24875 0.79602,0.0498 1.5672,0.0746 2.4129,0.0746 0.8209,0 1.2687,-0.0249 2.0647,-0.0746 l -0.0995,-6.5921 2.5871,6.3433 c 0.04975,0.14925 0.12438,0.24875 0.27363,0.24875 0.79602,0.0498 1.5174,0.0746 2.2637,0.0746 0.8209,0 1.2438,-0.0249 1.9403,-0.0746 0.04975,-2.4876 0.0995,-4.9751 0.0995,-7.4627 0,-2.4876 -0.04975,-4.8756 -0.0995,-7.214 0,-0.12438 -0.12438,-0.22388 -0.24876,-0.24876 -0.74627,-0.0249 -1.4677,-0.0498 -2.3134,-0.0498 -0.8209,0 -1.393,0.0249 -2.1642,0.0498 l 0.07463,6.6169 -2.5622,-6.3682 c -0.07463,-0.12438 -0.14925,-0.22388 -0.27363,-0.24876 -0.79602,-0.0249 -1.4428,-0.0498 -2.1642,-0.0498 -0.8209,0 -1.2687,0.0249 -2.0398,0.0498 -0.07463,2.4876 -0.0995,4.9751 -0.0995,7.4627 z"
|
d="m 41.176,237.05 c 0,2.4876 0.04975,4.8756 0.0995,7.214 0,0.14925 0.0995,0.24875 0.24876,0.24875 0.79602,0.0498 1.5672,0.0746 2.4129,0.0746 0.8209,0 1.2687,-0.0249 2.0647,-0.0746 l -0.0995,-6.5921 2.5871,6.3433 c 0.04975,0.14925 0.12438,0.24875 0.27363,0.24875 0.79602,0.0498 1.5174,0.0746 2.2637,0.0746 0.8209,0 1.2438,-0.0249 1.9403,-0.0746 0.04975,-2.4876 0.0995,-4.9751 0.0995,-7.4627 0,-2.4876 -0.04975,-4.8756 -0.0995,-7.214 0,-0.12438 -0.12438,-0.22388 -0.24876,-0.24876 -0.74627,-0.0249 -1.4677,-0.0498 -2.3134,-0.0498 -0.8209,0 -1.393,0.0249 -2.1642,0.0498 l 0.07463,6.6169 -2.5622,-6.3682 c -0.07463,-0.12438 -0.14925,-0.22388 -0.27363,-0.24876 -0.79602,-0.0249 -1.4428,-0.0498 -2.1642,-0.0498 -0.8209,0 -1.2687,0.0249 -2.0398,0.0498 -0.07463,2.4876 -0.0995,4.9751 -0.0995,7.4627 z"
|
||||||
|
@ -296,7 +296,7 @@
|
||||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:Dyuthi;-inkscape-font-specification:Dyuthi;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:Dyuthi;-inkscape-font-specification:Dyuthi;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
|
||||||
x="19.372959"
|
x="19.372959"
|
||||||
y="271.49698"
|
y="271.49698"
|
||||||
id="text5145"/>
|
id="text5145" />
|
||||||
<g
|
<g
|
||||||
id="g5222">
|
id="g5222">
|
||||||
<g
|
<g
|
||||||
|
@ -381,7 +381,7 @@
|
||||||
id="rect5061"
|
id="rect5061"
|
||||||
d="m 4.7486749,277.07833 c -0.3682172,0 -0.664559,0.25094 -0.664559,0.56276 v 5.0648 c 0,0.31182 0.2963418,0.56276 0.664559,0.56276 H 16.456487 c 0.368217,0 0.664559,-0.25094 0.664559,-0.56276 v -1.64279 a 0.91714642,0.91714642 0 0 1 -0.698149,-0.88987 0.91714642,0.91714642 0 0 1 0.698149,-0.88935 v -1.64279 c 0,-0.31182 -0.296342,-0.56276 -0.664559,-0.56276 z"
|
d="m 4.7486749,277.07833 c -0.3682172,0 -0.664559,0.25094 -0.664559,0.56276 v 5.0648 c 0,0.31182 0.2963418,0.56276 0.664559,0.56276 H 16.456487 c 0.368217,0 0.664559,-0.25094 0.664559,-0.56276 v -1.64279 a 0.91714642,0.91714642 0 0 1 -0.698149,-0.88987 0.91714642,0.91714642 0 0 1 0.698149,-0.88935 v -1.64279 c 0,-0.31182 -0.296342,-0.56276 -0.664559,-0.56276 z"
|
||||||
style="opacity:1;fill:#fcfcfd;fill-opacity:1;stroke:#282828;stroke-width:0.274902;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
style="opacity:1;fill:#fcfcfd;fill-opacity:1;stroke:#282828;stroke-width:0.274902;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
inkscape:connector-curvature="0"/>
|
inkscape:connector-curvature="0" />
|
||||||
<rect
|
<rect
|
||||||
rx="0.42198506"
|
rx="0.42198506"
|
||||||
ry="0.42198506"
|
ry="0.42198506"
|
||||||
|
@ -390,7 +390,7 @@
|
||||||
height="4.9067254"
|
height="4.9067254"
|
||||||
width="5.7913175"
|
width="5.7913175"
|
||||||
id="rect5019"
|
id="rect5019"
|
||||||
style="opacity:1;vector-effect:none;fill:#ffd700;fill-opacity:1;stroke:#282828;stroke-width:0.213968;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers"/>
|
style="opacity:1;vector-effect:none;fill:#ffd700;fill-opacity:1;stroke:#282828;stroke-width:0.213968;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers" />
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
<g
|
<g
|
||||||
|
@ -401,31 +401,31 @@
|
||||||
aria-label="ALT EMU"
|
aria-label="ALT EMU"
|
||||||
transform="scale(1.0680187,0.93631321)"
|
transform="scale(1.0680187,0.93631321)"
|
||||||
id="text41"
|
id="text41"
|
||||||
style="font-size:4.97619px;line-height:1.25;font-family:'Bebas Neue';-inkscape-font-specification:'Bebas Neue';display:inline;stroke-width:0.0339285">
|
style="font-size:4.97619px;line-height:1.25;font-family:'Bebas Neue';-inkscape-font-specification:'Bebas Neue';display:inline;stroke-width:0.0339285;fill:#f0f0f0;fill-opacity:1">
|
||||||
<path
|
<path
|
||||||
d="m 1.7229501,4.7457954 c 0,0.024881 0.019905,0.03981 0.044786,0.03981 0.1642143,0.00995 0.3383809,0.014928 0.5075714,0.014928 0.1642142,0 0.2537857,-0.00498 0.4130238,-0.014928 0.034833,-0.1791429 0.06469,-0.3632619 0.094548,-0.547381 h 0.4627856 c 0.024881,0.1691905 0.054738,0.338381 0.089571,0.4976191 0.00498,0.029857 0.029857,0.049762 0.054738,0.049762 0.1741666,0.014928 0.3184761,0.014928 0.4876666,0.014928 0.1691904,0 0.2786666,-0.00498 0.4329285,-0.014928 C 4.1662594,3.8202241 3.9323785,2.8050813 3.7432833,1.8496528 3.7383071,1.8247719 3.7134261,1.7998909 3.6885452,1.7998909 3.449688,1.7949147 3.2158071,1.7899385 2.97695,1.7899385 c -0.233881,0 -0.4627857,0 -0.6867143,0.00995 -0.184119,0.9205952 -0.393119,1.8809999 -0.5424047,2.7916426 -0.00995,0.049762 -0.024881,0.1443096 -0.024881,0.1542619 z M 2.8674738,3.5913193 c 0.03981,-0.3732142 0.079619,-0.7464285 0.1244047,-1.1146665 0.049762,0.3732142 0.099524,0.7464285 0.1542619,1.1146665 z"
|
d="m 1.7229501,4.7457954 c 0,0.024881 0.019905,0.03981 0.044786,0.03981 0.1642143,0.00995 0.3383809,0.014928 0.5075714,0.014928 0.1642142,0 0.2537857,-0.00498 0.4130238,-0.014928 0.034833,-0.1791429 0.06469,-0.3632619 0.094548,-0.547381 h 0.4627856 c 0.024881,0.1691905 0.054738,0.338381 0.089571,0.4976191 0.00498,0.029857 0.029857,0.049762 0.054738,0.049762 0.1741666,0.014928 0.3184761,0.014928 0.4876666,0.014928 0.1691904,0 0.2786666,-0.00498 0.4329285,-0.014928 C 4.1662594,3.8202241 3.9323785,2.8050813 3.7432833,1.8496528 3.7383071,1.8247719 3.7134261,1.7998909 3.6885452,1.7998909 3.449688,1.7949147 3.2158071,1.7899385 2.97695,1.7899385 c -0.233881,0 -0.4627857,0 -0.6867143,0.00995 -0.184119,0.9205952 -0.393119,1.8809999 -0.5424047,2.7916426 -0.00995,0.049762 -0.024881,0.1443096 -0.024881,0.1542619 z M 2.8674738,3.5913193 c 0.03981,-0.3732142 0.079619,-0.7464285 0.1244047,-1.1146665 0.049762,0.3732142 0.099524,0.7464285 0.1542619,1.1146665 z"
|
||||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.97619px;font-family:Digitalt;-inkscape-font-specification:Digitalt;fill:#ffffff;stroke-width:0.0339285"
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.97619px;font-family:Digitalt;-inkscape-font-specification:Digitalt;fill:#f0f0f0;stroke-width:0.0339285;fill-opacity:1"
|
||||||
id="path975"/>
|
id="path975" />
|
||||||
<path
|
<path
|
||||||
d="m 4.4946808,3.2927479 c 0,0.497619 0.00995,0.9753333 0.019905,1.4430952 0,0.029857 0.019905,0.049762 0.049762,0.049762 0.1642143,0.00995 0.8857619,0.024881 1.0549523,0.024881 0.1642143,0 0.5772381,-0.00498 0.7364762,-0.014929 0,-0.1244047 0,-0.2438333 0,-0.3632618 0,-0.1393334 0,-0.2786667 0,-0.4329286 C 6.3507997,3.974486 6.3308949,3.949605 6.306014,3.949605 6.1368235,3.9446288 5.7138474,3.9396526 5.5446569,3.9396526 h -0.019905 c 0,-0.2089999 0.00498,-0.4229761 0.00498,-0.6469047 0,-0.497619 -0.00995,-0.9753332 -0.019905,-1.4430951 0,-0.024881 -0.024881,-0.049762 -0.049762,-0.049762 -0.1691905,-0.00498 -0.3433572,-0.00995 -0.5125476,-0.00995 -0.1642143,0 -0.2786667,0.00498 -0.4329286,0.00995 -0.014928,0.497619 -0.019905,0.995238 -0.019905,1.492857 z"
|
d="m 4.4946808,3.2927479 c 0,0.497619 0.00995,0.9753333 0.019905,1.4430952 0,0.029857 0.019905,0.049762 0.049762,0.049762 0.1642143,0.00995 0.8857619,0.024881 1.0549523,0.024881 0.1642143,0 0.5772381,-0.00498 0.7364762,-0.014929 0,-0.1244047 0,-0.2438333 0,-0.3632618 0,-0.1393334 0,-0.2786667 0,-0.4329286 C 6.3507997,3.974486 6.3308949,3.949605 6.306014,3.949605 6.1368235,3.9446288 5.7138474,3.9396526 5.5446569,3.9396526 h -0.019905 c 0,-0.2089999 0.00498,-0.4229761 0.00498,-0.6469047 0,-0.497619 -0.00995,-0.9753332 -0.019905,-1.4430951 0,-0.024881 -0.024881,-0.049762 -0.049762,-0.049762 -0.1691905,-0.00498 -0.3433572,-0.00995 -0.5125476,-0.00995 -0.1642143,0 -0.2786667,0.00498 -0.4329286,0.00995 -0.014928,0.497619 -0.019905,0.995238 -0.019905,1.492857 z"
|
||||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.97619px;font-family:Digitalt;-inkscape-font-specification:Digitalt;fill:#ffffff;stroke-width:0.0339285"
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.97619px;font-family:Digitalt;-inkscape-font-specification:Digitalt;fill:#f0f0f0;stroke-width:0.0339285;fill-opacity:1"
|
||||||
id="path977"/>
|
id="path977" />
|
||||||
<path
|
<path
|
||||||
d="m 6.1318408,2.1780813 c 0,0.1343572 0,0.2687143 0.00498,0.4080476 0,0.029857 0.019905,0.049762 0.049762,0.049762 0.084595,0.00498 0.3234523,0.00995 0.5473809,0.014929 0,0.209 0,0.4130238 0,0.6419285 0,0.497619 0.00995,0.9753333 0.019905,1.4430952 0,0.029857 0.019905,0.049762 0.049762,0.049762 0.1642143,0.00995 0.338381,0.014928 0.5075714,0.014928 0.1642143,0 0.2786667,-0.00498 0.4379048,-0.014928 0.00995,-0.4976191 0.019905,-0.9952381 0.019905,-1.4928571 0,-0.2289047 -0.00498,-0.4329285 -0.00995,-0.6369523 0.2587619,0 0.5225,-0.00498 0.6070952,-0.00995 0,-0.1244047 0,-0.2488095 0,-0.3682381 0,-0.1443095 0,-0.2836428 0,-0.4279523 -0.00498,-0.024881 -0.024881,-0.049762 -0.049762,-0.049762 -0.1691904,-0.00498 -0.8608809,-0.00995 -1.0300713,-0.00995 -0.1642143,0 -0.995238,0.00498 -1.1494999,0.00995 -0.00498,0.1343571 -0.00498,0.2587619 -0.00498,0.3781904 z"
|
d="m 6.1318408,2.1780813 c 0,0.1343572 0,0.2687143 0.00498,0.4080476 0,0.029857 0.019905,0.049762 0.049762,0.049762 0.084595,0.00498 0.3234523,0.00995 0.5473809,0.014929 0,0.209 0,0.4130238 0,0.6419285 0,0.497619 0.00995,0.9753333 0.019905,1.4430952 0,0.029857 0.019905,0.049762 0.049762,0.049762 0.1642143,0.00995 0.338381,0.014928 0.5075714,0.014928 0.1642143,0 0.2786667,-0.00498 0.4379048,-0.014928 0.00995,-0.4976191 0.019905,-0.9952381 0.019905,-1.4928571 0,-0.2289047 -0.00498,-0.4329285 -0.00995,-0.6369523 0.2587619,0 0.5225,-0.00498 0.6070952,-0.00995 0,-0.1244047 0,-0.2488095 0,-0.3682381 0,-0.1443095 0,-0.2836428 0,-0.4279523 -0.00498,-0.024881 -0.024881,-0.049762 -0.049762,-0.049762 -0.1691904,-0.00498 -0.8608809,-0.00995 -1.0300713,-0.00995 -0.1642143,0 -0.995238,0.00498 -1.1494999,0.00995 -0.00498,0.1343571 -0.00498,0.2587619 -0.00498,0.3781904 z"
|
||||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.97619px;font-family:Digitalt;-inkscape-font-specification:Digitalt;fill:#ffffff;stroke-width:0.0339285"
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.97619px;font-family:Digitalt;-inkscape-font-specification:Digitalt;fill:#f0f0f0;stroke-width:0.0339285;fill-opacity:1"
|
||||||
id="path979"/>
|
id="path979" />
|
||||||
<path
|
<path
|
||||||
d="m 10.067999,3.2927479 c 0,0.497619 0.01,0.9753333 0.0199,1.4430952 0,0.029857 0.0199,0.049762 0.04976,0.049762 0.164215,0.00995 0.885762,0.024881 1.054953,0.024881 0.164214,0 0.696666,-0.00498 0.855904,-0.014929 0,-0.1244047 0,-0.2438333 0,-0.3632618 0,-0.1393334 0,-0.2786667 0,-0.4329286 -0.005,-0.024881 -0.02488,-0.049762 -0.04976,-0.049762 -0.169191,-0.00498 -0.711596,-0.00995 -0.880786,-0.00995 h -0.06469 c 0,-0.084595 0,-0.1691904 0,-0.2587618 h 0.646905 c 0,-0.1194286 0,-0.2239286 0,-0.3284286 0,-0.1194286 0,-0.2388571 0,-0.3781904 -0.005,-0.024881 -0.02488,-0.049762 -0.04976,-0.049762 -0.129381,0 -0.398095,-0.00498 -0.597143,-0.00498 0,-0.089571 0,-0.1791429 0,-0.2637381 0.0846,0 0.154262,0 0.194072,0 0.164214,0 0.631976,0 0.791214,-0.00995 0,-0.1244047 0,-0.2438333 0,-0.3632619 0,-0.1393333 0,-0.2786666 0,-0.4329285 -0.005,-0.024881 -0.02488,-0.049762 -0.04976,-0.049762 -0.16919,-0.00498 -0.701643,-0.00995 -0.870833,-0.00995 -0.164214,0 -0.87581,0.00498 -1.030071,0.00995 -0.01493,0.497619 -0.0199,0.995238 -0.0199,1.492857 z"
|
d="m 10.067999,3.2927479 c 0,0.497619 0.01,0.9753333 0.0199,1.4430952 0,0.029857 0.0199,0.049762 0.04976,0.049762 0.164215,0.00995 0.885762,0.024881 1.054953,0.024881 0.164214,0 0.696666,-0.00498 0.855904,-0.014929 0,-0.1244047 0,-0.2438333 0,-0.3632618 0,-0.1393334 0,-0.2786667 0,-0.4329286 -0.005,-0.024881 -0.02488,-0.049762 -0.04976,-0.049762 -0.169191,-0.00498 -0.711596,-0.00995 -0.880786,-0.00995 h -0.06469 c 0,-0.084595 0,-0.1691904 0,-0.2587618 h 0.646905 c 0,-0.1194286 0,-0.2239286 0,-0.3284286 0,-0.1194286 0,-0.2388571 0,-0.3781904 -0.005,-0.024881 -0.02488,-0.049762 -0.04976,-0.049762 -0.129381,0 -0.398095,-0.00498 -0.597143,-0.00498 0,-0.089571 0,-0.1791429 0,-0.2637381 0.0846,0 0.154262,0 0.194072,0 0.164214,0 0.631976,0 0.791214,-0.00995 0,-0.1244047 0,-0.2438333 0,-0.3632619 0,-0.1393333 0,-0.2786666 0,-0.4329285 -0.005,-0.024881 -0.02488,-0.049762 -0.04976,-0.049762 -0.16919,-0.00498 -0.701643,-0.00995 -0.870833,-0.00995 -0.164214,0 -0.87581,0.00498 -1.030071,0.00995 -0.01493,0.497619 -0.0199,0.995238 -0.0199,1.492857 z"
|
||||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.97619px;font-family:Digitalt;-inkscape-font-specification:Digitalt;fill:#ffffff;stroke-width:0.0339285"
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.97619px;font-family:Digitalt;-inkscape-font-specification:Digitalt;fill:#f0f0f0;stroke-width:0.0339285;fill-opacity:1"
|
||||||
id="path981"/>
|
id="path981" />
|
||||||
<path
|
<path
|
||||||
d="m 12.327182,3.2927479 c 0,0.497619 0.01,0.9753333 0.0199,1.4430952 0,0.029857 0.01991,0.049762 0.04976,0.049762 0.164215,0.00995 0.363262,0.014928 0.482691,0.014928 0.164214,0 0.253786,-0.00498 0.413024,-0.014928 l -0.0199,-1.3485476 0.542405,1.099738 0.04976,0.00995 0.05474,-0.00995 0.567285,-1.1544761 c 0,0.4677619 0.0199,0.915619 0.02986,1.3535238 0,0.029857 0.0199,0.049762 0.04976,0.049762 0.164215,0.00995 0.338381,0.014928 0.45781,0.014928 0.164214,0 0.243833,-0.00498 0.388143,-0.014928 0.01,-0.4976191 0.0199,-0.9952381 0.0199,-1.4928571 0,-0.497619 -0.01,-0.9753332 -0.0199,-1.4430951 0,-0.024881 -0.02488,-0.044786 -0.04976,-0.049762 -0.139334,-0.00498 -0.293596,-0.00995 -0.462786,-0.00995 -0.139333,0 -0.258762,0.00498 -0.348333,0.014929 -0.02488,0 -0.04479,0.024881 -0.05972,0.044786 l -0.627,1.2788809 -0.622023,-1.2788809 c -0.01,-0.019905 -0.02986,-0.044786 -0.05474,-0.049762 -0.149286,-0.00498 -0.263738,-0.00995 -0.432929,-0.00995 -0.164214,0 -0.253786,0.00498 -0.408048,0.00995 -0.01493,0.497619 -0.0199,0.995238 -0.0199,1.492857 z"
|
d="m 12.327182,3.2927479 c 0,0.497619 0.01,0.9753333 0.0199,1.4430952 0,0.029857 0.01991,0.049762 0.04976,0.049762 0.164215,0.00995 0.363262,0.014928 0.482691,0.014928 0.164214,0 0.253786,-0.00498 0.413024,-0.014928 l -0.0199,-1.3485476 0.542405,1.099738 0.04976,0.00995 0.05474,-0.00995 0.567285,-1.1544761 c 0,0.4677619 0.0199,0.915619 0.02986,1.3535238 0,0.029857 0.0199,0.049762 0.04976,0.049762 0.164215,0.00995 0.338381,0.014928 0.45781,0.014928 0.164214,0 0.243833,-0.00498 0.388143,-0.014928 0.01,-0.4976191 0.0199,-0.9952381 0.0199,-1.4928571 0,-0.497619 -0.01,-0.9753332 -0.0199,-1.4430951 0,-0.024881 -0.02488,-0.044786 -0.04976,-0.049762 -0.139334,-0.00498 -0.293596,-0.00995 -0.462786,-0.00995 -0.139333,0 -0.258762,0.00498 -0.348333,0.014929 -0.02488,0 -0.04479,0.024881 -0.05972,0.044786 l -0.627,1.2788809 -0.622023,-1.2788809 c -0.01,-0.019905 -0.02986,-0.044786 -0.05474,-0.049762 -0.149286,-0.00498 -0.263738,-0.00995 -0.432929,-0.00995 -0.164214,0 -0.253786,0.00498 -0.408048,0.00995 -0.01493,0.497619 -0.0199,0.995238 -0.0199,1.492857 z"
|
||||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.97619px;font-family:Digitalt;-inkscape-font-specification:Digitalt;fill:#ffffff;stroke-width:0.0339285"
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.97619px;font-family:Digitalt;-inkscape-font-specification:Digitalt;fill:#f0f0f0;stroke-width:0.0339285;fill-opacity:1"
|
||||||
id="path983"/>
|
id="path983" />
|
||||||
<path
|
<path
|
||||||
d="m 15.696059,3.3126527 c 0,1.2539999 0.447857,1.5227142 1.348547,1.5227142 0.701643,-0.034833 1.109691,-0.442881 1.109691,-1.5227142 0,-0.497619 -0.01,-0.995238 -0.01991,-1.4629999 0,-0.024881 -0.02488,-0.049762 -0.04976,-0.049762 -0.16919,-0.00498 -0.343357,-0.00995 -0.512548,-0.00995 -0.164214,0 -0.278666,0.00498 -0.432928,0.00995 -0.01493,0.497619 -0.01991,1.1644285 -0.01991,1.6620475 0,0.4428809 -0.05474,0.5075714 -0.189095,0.5075714 -0.134357,0 -0.199048,-0.06469 -0.199048,-0.5075714 0,-0.497619 -0.01,-1.1445237 -0.0199,-1.6122856 0,-0.024881 -0.02488,-0.049762 -0.04976,-0.049762 -0.169191,-0.00498 -0.343357,-0.00995 -0.512548,-0.00995 -0.164214,0 -0.278667,0.00498 -0.432928,0.00995 -0.01493,0.497619 -0.0199,1.0151428 -0.0199,1.5127618 z"
|
d="m 15.696059,3.3126527 c 0,1.2539999 0.447857,1.5227142 1.348547,1.5227142 0.701643,-0.034833 1.109691,-0.442881 1.109691,-1.5227142 0,-0.497619 -0.01,-0.995238 -0.01991,-1.4629999 0,-0.024881 -0.02488,-0.049762 -0.04976,-0.049762 -0.16919,-0.00498 -0.343357,-0.00995 -0.512548,-0.00995 -0.164214,0 -0.278666,0.00498 -0.432928,0.00995 -0.01493,0.497619 -0.01991,1.1644285 -0.01991,1.6620475 0,0.4428809 -0.05474,0.5075714 -0.189095,0.5075714 -0.134357,0 -0.199048,-0.06469 -0.199048,-0.5075714 0,-0.497619 -0.01,-1.1445237 -0.0199,-1.6122856 0,-0.024881 -0.02488,-0.049762 -0.04976,-0.049762 -0.169191,-0.00498 -0.343357,-0.00995 -0.512548,-0.00995 -0.164214,0 -0.278667,0.00498 -0.432928,0.00995 -0.01493,0.497619 -0.0199,1.0151428 -0.0199,1.5127618 z"
|
||||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.97619px;font-family:Digitalt;-inkscape-font-specification:Digitalt;fill:#ffffff;stroke-width:0.0339285"
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.97619px;font-family:Digitalt;-inkscape-font-specification:Digitalt;fill:#f0f0f0;stroke-width:0.0339285;fill-opacity:1"
|
||||||
id="path985"/>
|
id="path985" />
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 51 KiB |
Loading…
Reference in a new issue