mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[apps/shared] XYBannerView contains a TextField
This commit is contained in:
committed by
Émilie Feral
parent
633dfaf043
commit
3d71397949
@@ -124,7 +124,6 @@ void GraphController::reloadBannerView() {
|
||||
m_bannerView.dotNameView()->setText(buffer);
|
||||
|
||||
// Set "x=..." or "xmean=..."
|
||||
numberOfChar = 0;
|
||||
legend = "x=";
|
||||
double x = m_cursor->x();
|
||||
// Display a specific legend if the mean dot is selected
|
||||
@@ -133,14 +132,15 @@ void GraphController::reloadBannerView() {
|
||||
legend = "x\xCC\x85=";
|
||||
x = m_store->meanOfColumn(*m_selectedSeriesIndex, 0);
|
||||
}
|
||||
numberOfChar += strlcpy(buffer, legend, bufferSize);
|
||||
numberOfChar += PoincareHelpers::ConvertFloatToText<double>(x, buffer+numberOfChar, PrintFloat::bufferSizeForFloatsWithPrecision(Constant::MediumNumberOfSignificantDigits), Constant::MediumNumberOfSignificantDigits);
|
||||
m_bannerView.abscissaSymbol()->setText(legend);
|
||||
|
||||
numberOfChar = PoincareHelpers::ConvertFloatToText<double>(x, buffer, PrintFloat::bufferSizeForFloatsWithPrecision(Constant::MediumNumberOfSignificantDigits), Constant::MediumNumberOfSignificantDigits);
|
||||
assert(UTF8Decoder::CharSizeOfCodePoint(' ') == 1);
|
||||
for (int i = numberOfChar; i < k_maxLegendLength; i++) {
|
||||
buffer[numberOfChar++] = ' ';
|
||||
}
|
||||
buffer[k_maxLegendLength] = 0;
|
||||
m_bannerView.abscissaView()->setText(buffer);
|
||||
m_bannerView.abscissaValue()->setText(buffer);
|
||||
|
||||
// Set "y=..." or "ymean=..."
|
||||
numberOfChar = 0;
|
||||
|
||||
@@ -11,20 +11,17 @@ void FunctionBannerDelegate::reloadBannerViewForCursorOnFunction(CurveViewCursor
|
||||
constexpr int bufferSize = k_maxNumberOfCharacters+PrintFloat::bufferSizeForFloatsWithPrecision(Constant::LargeNumberOfSignificantDigits);
|
||||
char buffer[bufferSize];
|
||||
const char * space = " ";
|
||||
const char * legend = "0=";
|
||||
int legendLength = strlen(legend);
|
||||
int numberOfChar = 0;
|
||||
strlcpy(buffer, legend, bufferSize);
|
||||
numberOfChar += legendLength;
|
||||
buffer[0] = symbol;
|
||||
numberOfChar += PoincareHelpers::ConvertFloatToText<double>(cursor->x(), buffer+numberOfChar, PrintFloat::bufferSizeForFloatsWithPrecision(Constant::MediumNumberOfSignificantDigits), Constant::MediumNumberOfSignificantDigits);
|
||||
strlcpy(buffer+numberOfChar, space, bufferSize - numberOfChar);
|
||||
bannerView()->abscissaView()->setText(buffer);
|
||||
buffer[numberOfChar++] = symbol;
|
||||
strlcpy(buffer + numberOfChar, "=", bufferSize - numberOfChar);
|
||||
bannerView()->abscissaSymbol()->setText(buffer);
|
||||
|
||||
numberOfChar = 0;
|
||||
numberOfChar += function->nameWithArgument(buffer, bufferSize, symbol);
|
||||
legend = "=";
|
||||
numberOfChar += strlcpy(buffer+numberOfChar, legend, bufferSize-numberOfChar);
|
||||
numberOfChar = PoincareHelpers::ConvertFloatToText<double>(cursor->x(), buffer, PrintFloat::bufferSizeForFloatsWithPrecision(Constant::MediumNumberOfSignificantDigits), Constant::MediumNumberOfSignificantDigits);
|
||||
strlcpy(buffer+numberOfChar, space, bufferSize - numberOfChar);
|
||||
bannerView()->abscissaValue()->setText(buffer);
|
||||
|
||||
numberOfChar = function->nameWithArgument(buffer, bufferSize, symbol);
|
||||
numberOfChar += strlcpy(buffer+numberOfChar, "=", bufferSize-numberOfChar);
|
||||
numberOfChar += PoincareHelpers::ConvertFloatToText<double>(cursor->y(), buffer+numberOfChar, bufferSize-numberOfChar, Constant::MediumNumberOfSignificantDigits);
|
||||
strlcpy(buffer+numberOfChar, space, bufferSize-numberOfChar);
|
||||
bannerView()->ordinateView()->setText(buffer);
|
||||
|
||||
@@ -8,14 +8,28 @@ XYBannerView::XYBannerView(
|
||||
InputEventHandlerDelegate * inputEventHandlerDelegate,
|
||||
TextFieldDelegate * textFieldDelegate
|
||||
) :
|
||||
m_abscissaView(Font(), 0.5f, 0.5f, TextColor(), BackgroundColor()),
|
||||
m_abscissaSymbol(Font(), 1.0f, 0.5f, TextColor(), BackgroundColor()),
|
||||
m_abscissaValue(
|
||||
parentResponder,
|
||||
m_draftTextBuffer,
|
||||
m_draftTextBuffer,
|
||||
TextField::maxBufferSize(),
|
||||
inputEventHandlerDelegate,
|
||||
textFieldDelegate,
|
||||
false,
|
||||
Font(),
|
||||
0.0f, 0.5f,
|
||||
TextColor(),
|
||||
BackgroundColor()
|
||||
),
|
||||
m_ordinateView(Font(), 0.5f, 0.5f, TextColor(), BackgroundColor())
|
||||
{
|
||||
m_draftTextBuffer[0] = 0;
|
||||
}
|
||||
|
||||
View * XYBannerView::subviewAtIndex(int index) {
|
||||
assert(0 <= index && index < numberOfSubviews());
|
||||
View * subviews[] = {&m_abscissaView, &m_ordinateView};
|
||||
View * subviews[] = {&m_abscissaSymbol, &m_abscissaValue, &m_ordinateView};
|
||||
return subviews[index];
|
||||
}
|
||||
|
||||
|
||||
@@ -12,15 +12,18 @@ public:
|
||||
InputEventHandlerDelegate * inputEventHandlerDelegate,
|
||||
TextFieldDelegate * textFieldDelegate
|
||||
);
|
||||
BufferTextView * abscissaView() { return &m_abscissaView; }
|
||||
BufferTextView * abscissaSymbol() { return &m_abscissaSymbol; }
|
||||
TextField * abscissaValue() { return &m_abscissaValue; }
|
||||
BufferTextView * ordinateView() { return &m_ordinateView; }
|
||||
static constexpr int k_numberOfSubviews = 2;
|
||||
static constexpr int k_numberOfSubviews = 3;
|
||||
protected:
|
||||
View * subviewAtIndex(int index) override;
|
||||
private:
|
||||
int numberOfSubviews() const override { return k_numberOfSubviews; }
|
||||
BufferTextView m_abscissaView;
|
||||
BufferTextView m_abscissaSymbol;
|
||||
TextField m_abscissaValue;
|
||||
BufferTextView m_ordinateView;
|
||||
char m_draftTextBuffer[TextField::maxBufferSize()];
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user