commit 445ebbf9
Moved the rest of the attributes inside the opaque pointer
Changed files
| M | src/sago/SagoTextField.cpp before |
| M | src/sago/SagoTextField.hpp before |
diff --git a/src/sago/SagoTextField.cpp b/src/sago/SagoTextField.cpp
index 5871e1f..6772ec6 100644
--- a/src/sago/SagoTextField.cpp
+++ b/src/sago/SagoTextField.cpp
@@ -34,6 +34,8 @@ struct SagoTextField::SagoTextFieldData {
std::string fontName = "freeserif";
SDL_Color color = { 255, 255, 255, 0 };
int fontSize = 16;
+ std::string text = "";
+ std::string renderedText = "";
};
SagoTextField::SagoTextField() {
@@ -50,7 +52,7 @@ void SagoTextField::SetHolder(SagoDataHolder* holder) {
}
void SagoTextField::SetText(std::string text) {
- this->text = text;
+ data->text = text;
}
void SagoTextField::SetColor(const SDL_Color& color) {
@@ -66,7 +68,7 @@ void SagoTextField::SetFontSize(int fontSize) {
}
std::string SagoTextField::GetText() const {
- return text;
+ return data->text;
}
void SagoTextField::ClearCache() {
@@ -87,16 +89,16 @@ void SagoTextField::ClearCache() {
void SagoTextField::UpdateCache(SDL_Renderer* target) {
ClearCache();
TTF_Font *font = data->tex->getFontPtr(data->fontName, data->fontSize);
- data->textSurface = TTF_RenderText_Blended (font, text.c_str(), data->color);
+ data->textSurface = TTF_RenderText_Blended (font, data->text.c_str(), data->color);
data->texture = SDL_CreateTextureFromSurface(target, data->textSurface);
- renderedText = text;
+ data->renderedText = data->text;
}
void SagoTextField::Draw(SDL_Renderer* target, int x, int y) {
- if (text.empty()) {
+ if (data->text.empty()) {
return;
}
- if (text != renderedText) {
+ if (data->text != data->renderedText) {
UpdateCache(target);
}
if (!data->texture) {
diff --git a/src/sago/SagoTextField.hpp b/src/sago/SagoTextField.hpp
index bbb2395..20fa535 100644
--- a/src/sago/SagoTextField.hpp
+++ b/src/sago/SagoTextField.hpp
@@ -43,9 +43,8 @@ public:
void UpdateCache(SDL_Renderer* target);
void ClearCache();
private:
- std::string text = "";
- std::string renderedText = "";
SagoTextField(const SagoTextField& orig) = delete;
+ SagoTextField& operator=(const SagoTextField& base) = delete;
struct SagoTextFieldData;
SagoTextFieldData *data;
};