diff --git a/apps/shared/Makefile b/apps/shared/Makefile index 0bcee7f82..db498eeef 100644 --- a/apps/shared/Makefile +++ b/apps/shared/Makefile @@ -64,6 +64,7 @@ app_src += $(addprefix apps/shared/,\ text_field_delegate.cpp \ text_field_delegate_app.cpp \ text_field_with_extension.cpp \ + text_helpers.cpp \ toolbox_helpers.cpp \ values_controller.cpp \ values_function_parameter_controller.cpp \ diff --git a/apps/shared/text_helpers.cpp b/apps/shared/text_helpers.cpp new file mode 100644 index 000000000..199f9f29d --- /dev/null +++ b/apps/shared/text_helpers.cpp @@ -0,0 +1,25 @@ +#include "text_helpers.h" +#include +#include +#include + +namespace Shared { +namespace TextHelpers { + +void PadWithSpaces(char * buffer, int bufferSize, int * currentNumberOfChar, int maxGlyphLengthWithPadding) { + assert(*currentNumberOfChar <= bufferSize); + size_t currentGlyphLength = UTF8Helper::StringGlyphLength(buffer, *currentNumberOfChar); + bool addedPadding = false; + assert(UTF8Decoder::CharSizeOfCodePoint(' ') == 1); + while (currentGlyphLength < maxGlyphLengthWithPadding && *currentNumberOfChar < bufferSize) { + *currentNumberOfChar = *currentNumberOfChar + UTF8Decoder::CodePointToChars(' ', buffer + *currentNumberOfChar, bufferSize - *currentNumberOfChar); + addedPadding = true; + currentGlyphLength++; + } + if (addedPadding) { + buffer[*currentNumberOfChar-1] = 0; + } +} + +} +} diff --git a/apps/shared/text_helpers.h b/apps/shared/text_helpers.h new file mode 100644 index 000000000..06b5f7c66 --- /dev/null +++ b/apps/shared/text_helpers.h @@ -0,0 +1,12 @@ +#ifndef SHARED_TEXT_HELPERS_H +#define SHARED_TEXT_HELPERS_H + +namespace Shared { +namespace TextHelpers { + +void PadWithSpaces(char * buffer, int bufferSize, int * currentNumberOfChar, int maxGlyphLengthWithPadding); + +} +} + +#endif diff --git a/apps/statistics/histogram_controller.cpp b/apps/statistics/histogram_controller.cpp index fcd94ed73..60b0e5338 100644 --- a/apps/statistics/histogram_controller.cpp +++ b/apps/statistics/histogram_controller.cpp @@ -1,6 +1,7 @@ #include "histogram_controller.h" #include "../apps_container.h" #include "../shared/poincare_helpers.h" +#include "../shared/text_helpers.h" #include "app.h" #include #include @@ -90,20 +91,6 @@ Responder * HistogramController::tabController() const { return (parentResponder()->parentResponder()->parentResponder()->parentResponder()); } -void pad(char * buffer, int bufferSize, int * currentNumberOfChar, int maxGlyphLengthWithPadding) { - assert(*currentNumberOfChar <= bufferSize); - size_t currentGlyphLength = UTF8Helper::StringGlyphLength(buffer, *currentNumberOfChar); - bool addedPadding = false; - while (currentGlyphLength < maxGlyphLengthWithPadding && *currentNumberOfChar < bufferSize) { - *currentNumberOfChar = *currentNumberOfChar + UTF8Decoder::CodePointToChars(' ', buffer + *currentNumberOfChar, bufferSize - *currentNumberOfChar); - addedPadding = true; - currentGlyphLength++; - } - if (addedPadding) { - buffer[*currentNumberOfChar-1] = 0; - } -} - void HistogramController::reloadBannerView() { if (selectedSeriesIndex() < 0) { return; @@ -134,7 +121,7 @@ void HistogramController::reloadBannerView() { numberOfChar+= UTF8Decoder::CodePointToChars('[', buffer + numberOfChar, bufferSize - numberOfChar); // Padding - pad(buffer, bufferSize, &numberOfChar, k_maxIntervalLegendLength); + Shared::TextHelpers::PadWithSpaces(buffer, bufferSize, &numberOfChar, k_maxIntervalLegendLength); m_view.bannerView()->intervalView()->setText(buffer); // Add Size Data @@ -149,7 +136,7 @@ void HistogramController::reloadBannerView() { numberOfChar += PoincareHelpers::ConvertFloatToText(size, buffer+numberOfChar, bufferSize-numberOfChar, Constant::LargeNumberOfSignificantDigits); } // Padding - pad(buffer, bufferSize, &numberOfChar, k_maxLegendLength); + Shared::TextHelpers::PadWithSpaces(buffer, bufferSize, &numberOfChar, k_maxLegendLength); m_view.bannerView()->sizeView()->setText(buffer); // Add Frequency Data @@ -163,7 +150,7 @@ void HistogramController::reloadBannerView() { numberOfChar += PoincareHelpers::ConvertFloatToText(frequency, buffer+numberOfChar, bufferSize - numberOfChar, Constant::LargeNumberOfSignificantDigits); } // Padding - pad(buffer, bufferSize, &numberOfChar, k_maxLegendLength); + Shared::TextHelpers::PadWithSpaces(buffer, bufferSize, &numberOfChar, k_maxLegendLength); m_view.bannerView()->frequencyView()->setText(buffer); m_view.bannerView()->reload();