From c618cf6a9e712b9e3bd5b92ec2058b3db300fd57 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Sun, 9 Sep 2012 13:32:13 +0200 Subject: [PATCH] CComponentsItemBox: move paint of text into its own method Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/2c6a317b4096a1c5652f725b911c254327448b4a Author: Thilo Graf Date: 2012-09-09 (Sun, 09 Sep 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/components/cc.h | 7 +-- src/gui/components/components.cpp | 80 +++++++++++++++++++------------ 2 files changed, 53 insertions(+), 34 deletions(-) diff --git a/src/gui/components/cc.h b/src/gui/components/cc.h index 9b341c2f3..e7af3d4d3 100644 --- a/src/gui/components/cc.h +++ b/src/gui/components/cc.h @@ -333,7 +333,7 @@ class CComponentsItemBox : public CComponentsContainer size_t prevElementRight; std::vector v_element_data; bool isCalculated; - + void clearElements(); void initVarItemBox(); void calSizeOfElements(); @@ -342,11 +342,12 @@ class CComponentsItemBox : public CComponentsContainer void calculateElements(); bool addElement(int align, int type, const std::string& element="", size_t *index=NULL); void paintImage(size_t index, bool newElement); - + void paintText(size_t index, bool newElement); + public: CComponentsItemBox(); virtual ~CComponentsItemBox(); - + inline virtual void setTextFont(Font* font){font_text = font;}; inline virtual void setTextColor(fb_pixel_t color_text){ it_col_text = color_text;}; diff --git a/src/gui/components/components.cpp b/src/gui/components/components.cpp index fa18adb69..d40e617e1 100644 --- a/src/gui/components/components.cpp +++ b/src/gui/components/components.cpp @@ -1009,45 +1009,63 @@ void CComponentsItemBox::paintImage(size_t index, bool newElement) pic->paint(); } +//paint text into item box +void CComponentsItemBox::paintText(size_t index, bool newElement) +{ + //prepare textbox dimension instances + CBox* box = NULL; + box = static_cast(v_element_data[index].handler1); + + if ((newElement) || (box == NULL)) { + if (box != NULL) { + delete box; + box = NULL; + } + box = new CBox(); + v_element_data[index].handler1 = (void*)box; + } + + box->iX = v_element_data[index].x; + box->iY = v_element_data[index].y; + box->iWidth = v_element_data[index].width; + box->iHeight = v_element_data[index].height; + + + //prepare text + CTextBox* textbox = NULL; + textbox = static_cast(v_element_data[index].handler2); + + if ((newElement) || (textbox == NULL)) { + if (textbox != NULL) { + textbox->hide(); + delete textbox; + textbox = NULL; + } + textbox = new CTextBox(v_element_data[index].element.c_str(), font_text, CTextBox::AUTO_WIDTH|CTextBox::AUTO_HIGH, box, col_body); + v_element_data[index].handler2 = (void*)textbox; + } + + textbox->setTextBorderWidth(0); + textbox->enableBackgroundPaint(false); + textbox->setTextFont(font_text); + textbox->movePosition(box->iX, box->iY); + textbox->setTextColor(it_col_text); + + if (textbox->setText(&v_element_data[index].element)) + textbox->paint(); +} + + +//paint available elements at one task void CComponentsItemBox::paintElement(size_t index, bool newElement) { - CBox* box = NULL; - CTextBox* textbox = NULL; - switch (v_element_data[index].type) { case CC_ITEMBOX_ICON: case CC_ITEMBOX_PICTURE: paintImage(index,newElement); break; case CC_ITEMBOX_TEXT: - box = static_cast(v_element_data[index].handler1); - if ((newElement) || (box == NULL)) { - if (box != NULL) { - delete box; - } - box = new CBox(); - v_element_data[index].handler1 = (void*)box; - } - box->iX = v_element_data[index].x; - box->iY = v_element_data[index].y; - box->iWidth = v_element_data[index].width; - box->iHeight = v_element_data[index].height; - textbox = static_cast(v_element_data[index].handler2); - if ((newElement) || (textbox == NULL)) { - if (textbox != NULL) { - textbox->hide(); - delete textbox; - } - textbox = new CTextBox(v_element_data[index].element.c_str(), font_text, CTextBox::AUTO_WIDTH|CTextBox::AUTO_HIGH, box, col_body); - v_element_data[index].handler2 = (void*)textbox; - } - textbox->setTextBorderWidth(0); - textbox->enableBackgroundPaint(false); - textbox->setTextFont(font_text); - textbox->movePosition(box->iX, box->iY); - textbox->setTextColor(it_col_text); - if (textbox->setText(&v_element_data[index].element)) - textbox->paint(); + paintText(index,newElement); break; case CC_ITEMBOX_CLOCK: font_text->RenderString(v_element_data[index].x, v_element_data[index].y, v_element_data[index].width,