From d50c8ef4f8c717ca89f4fa3ab5ead8a587a55ce7 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Wed, 10 May 2017 10:42:08 +0200 Subject: [PATCH 1/9] CComponentsHeader: fix order of width calculation Required for following position calculation Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/107db09299f528ab0cea8bd7970a8aedb716d258 Author: Thilo Graf Date: 2017-05-10 (Wed, 10 May 2017) ------------------ This commit was generated by Migit --- src/gui/components/cc_frm_header.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gui/components/cc_frm_header.cpp b/src/gui/components/cc_frm_header.cpp index f6e20c5a0..21633e22c 100644 --- a/src/gui/components/cc_frm_header.cpp +++ b/src/gui/components/cc_frm_header.cpp @@ -576,20 +576,20 @@ void CComponentsHeader::initCaption() //set header text properties if (cch_text_obj){ + //recalc caption width + cc_text_w = min(cc_text_w, cch_font->getRenderWidth(cch_text)/*+ OFFSET_INNER_MID*/); + //set alignment of text item in dependency from text alignment if (cch_caption_align == CTextBox::CENTER) cch_text_x = CC_CENTERED; - //recalc caption width - cc_text_w = min(cc_text_w, cch_font->getRenderWidth(cch_text)+ OFFSET_INNER_MID); - //assign general properties cch_text_obj->setDimensionsAll(cch_text_x, cch_items_y, cc_text_w, height); cch_text_obj->setColorBody(col_body); if (cc_body_gradient_enable != cc_body_gradient_enable_old) cch_text_obj->getCTextBoxObject()->clearScreenBuffer(); cch_text_obj->setTextColor(cch_col_text); - cch_text_obj->setText(cch_text, cch_caption_align, cch_font); + cch_text_obj->setText(cch_text, cch_caption_align, cch_font, cch_col_text); cch_text_obj->enableTboxSaveScreen(cc_body_gradient_enable || cc_txt_save_screen); //corner of text item From 2564b17c7a2c4e9567cca3bfc4c9814d61626dfe Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Wed, 10 May 2017 10:42:08 +0200 Subject: [PATCH 2/9] CComponentsHeader: remove double text color assignment Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/c320dbf8ec424c40795e1eeea212946763ccac2b Author: Thilo Graf Date: 2017-05-10 (Wed, 10 May 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/components/cc_frm_header.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/gui/components/cc_frm_header.cpp b/src/gui/components/cc_frm_header.cpp index 21633e22c..e0ae29a75 100644 --- a/src/gui/components/cc_frm_header.cpp +++ b/src/gui/components/cc_frm_header.cpp @@ -588,7 +588,6 @@ void CComponentsHeader::initCaption() cch_text_obj->setColorBody(col_body); if (cc_body_gradient_enable != cc_body_gradient_enable_old) cch_text_obj->getCTextBoxObject()->clearScreenBuffer(); - cch_text_obj->setTextColor(cch_col_text); cch_text_obj->setText(cch_text, cch_caption_align, cch_font, cch_col_text); cch_text_obj->enableTboxSaveScreen(cc_body_gradient_enable || cc_txt_save_screen); From e0b4ef9cf34a25268e1f90f42157e82e497331ba Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Wed, 10 May 2017 10:42:08 +0200 Subject: [PATCH 3/9] CComponentsHeader: fix centering of header title Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/178bf6f5968a317cf0913f6bb6e2f0a734a4a343 Author: Thilo Graf Date: 2017-05-10 (Wed, 10 May 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/components/cc_frm_header.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/components/cc_frm_header.cpp b/src/gui/components/cc_frm_header.cpp index e0ae29a75..1f075bfac 100644 --- a/src/gui/components/cc_frm_header.cpp +++ b/src/gui/components/cc_frm_header.cpp @@ -581,7 +581,7 @@ void CComponentsHeader::initCaption() //set alignment of text item in dependency from text alignment if (cch_caption_align == CTextBox::CENTER) - cch_text_x = CC_CENTERED; + cch_text_x = width/2 - cc_text_w/2; //assign general properties cch_text_obj->setDimensionsAll(cch_text_x, cch_items_y, cc_text_w, height); From 22bff2865b74b69c0e0688ef74a415e0a133d3d2 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Wed, 10 May 2017 10:42:08 +0200 Subject: [PATCH 4/9] CComponentsHeader: Try to adopt different logo/title alignments Not all constellations are tested. Please report. Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/5b541571f936275ad7973af6e6c9d90fb5016bfa Author: Thilo Graf Date: 2017-05-10 (Wed, 10 May 2017) ------------------ This commit was generated by Migit --- src/gui/components/cc_frm_header.cpp | 56 +++++++++++++++++++++------- 1 file changed, 43 insertions(+), 13 deletions(-) diff --git a/src/gui/components/cc_frm_header.cpp b/src/gui/components/cc_frm_header.cpp index 1f075bfac..da59a3b7f 100644 --- a/src/gui/components/cc_frm_header.cpp +++ b/src/gui/components/cc_frm_header.cpp @@ -302,13 +302,23 @@ void CComponentsHeader::initLogo() //right end int x_logo_right = width - cch_logo_obj->getWidth(); - if (cch_btn_obj) - x_logo_right -= cch_btn_obj->getWidth(); - if (cch_cl_obj) - x_logo_right -= cch_cl_obj->getWidth(); + if (cch_caption_align != CTextBox::RIGHT){ + if (cch_btn_obj) + x_logo_right -= cch_btn_obj->getWidth(); + if (cch_cl_obj) + x_logo_right -= cch_cl_obj->getWidth(); + }else{ + if (cch_icon_obj) + x_logo_right += cch_icon_obj->getWidth(); + } //left end - int x_logo_left = getCCItem(prev_id) ? getCCItem(prev_id)->getXPos() + getCCItem(prev_id)->getWidth() : 0; + int x_logo_left = cch_offset; + if (cch_caption_align != CTextBox::RIGHT) + x_logo_left = getCCItem(prev_id) ? getCCItem(prev_id)->getXPos() + getCCItem(prev_id)->getWidth() : 0; + else + if (cch_icon_obj) + x_logo_left += cch_icon_obj->getWidth(); //calculate available space int logo_space = x_logo_right + cch_logo_obj->getWidth() - x_logo_left; @@ -319,17 +329,30 @@ void CComponentsHeader::initLogo() //set final logo position int x_logo = 0; - if (cch_logo.Align == CC_LOGO_RIGHT) - x_logo = x_logo_right; + if (cch_logo.Align == CC_LOGO_RIGHT){ + if (cch_caption_align == CTextBox::RIGHT) + if (cch_text_obj) + x_logo = cch_text_obj->getXPos() - cch_logo_obj->getWidth(); + else + x_logo = x_logo_right; + } if (cch_logo.Align == CC_LOGO_LEFT) x_logo = x_logo_left; if (cch_logo.Align == CC_LOGO_CENTER){ x_logo = width/2 - cch_logo_obj->getWidth()/2; - //fallback if previous item and logo are overlapping - if (getCCItem(prev_id)){ - int x_tmp = x_logo_left + logo_space/2 - cch_logo_obj->getWidth()/2; - if (x_logo <= x_logo_left) - x_logo = x_tmp; + //fallback if adjacent item and logo are overlapping + if (cch_caption_align != CTextBox::RIGHT){ + if (getCCItem(prev_id)){ + int x_tmp = x_logo_left + logo_space/2 - cch_logo_obj->getWidth()/2; + if (x_logo <= x_logo_left) + x_logo = x_tmp; + } + }else{ + if (cch_text_obj){ + if (x_logo + cch_logo_obj->getWidth() >= cch_text_obj->getXPos()){ + x_logo = (x_logo_left + cch_text_obj->getXPos())/2 - cch_logo_obj->getWidth()/2; + } + } } } @@ -576,13 +599,20 @@ void CComponentsHeader::initCaption() //set header text properties if (cch_text_obj){ + int w_free = cc_text_w; + //recalc caption width - cc_text_w = min(cc_text_w, cch_font->getRenderWidth(cch_text)/*+ OFFSET_INNER_MID*/); + cc_text_w = min(cc_text_w, cch_font->getRenderWidth(cch_text)+ OFFSET_INNER_MID); //set alignment of text item in dependency from text alignment if (cch_caption_align == CTextBox::CENTER) cch_text_x = width/2 - cc_text_w/2; + if (cch_caption_align == CTextBox::RIGHT){ + cch_text_x += w_free; + cch_text_x -= max(cc_text_w, cch_font->getRenderWidth(cch_text)+ OFFSET_INNER_MID); + } + //assign general properties cch_text_obj->setDimensionsAll(cch_text_x, cch_items_y, cc_text_w, height); cch_text_obj->setColorBody(col_body); From 1fe98a3e4d5582bb76a8164f0c286896607282ce Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Wed, 10 May 2017 10:42:08 +0200 Subject: [PATCH 5/9] CLuaInstCCWindow: try to fix window title align parameter Additional (lua_Integer)CTextBox::NO_AUTO_LINEBREAK) overwrites passed parameter and has no effect, because NO_AUTO_LINEBREAK is already default. Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/27eb80eb5b51f47c792a0c7ace9b4d597ac61579 Author: Thilo Graf Date: 2017-05-10 (Wed, 10 May 2017) ------------------ This commit was generated by Migit --- src/gui/lua/lua_api_version.h | 2 +- src/gui/lua/lua_cc_window.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/lua/lua_api_version.h b/src/gui/lua/lua_api_version.h index 1edd9814a..4320eacbe 100644 --- a/src/gui/lua/lua_api_version.h +++ b/src/gui/lua/lua_api_version.h @@ -4,4 +4,4 @@ * to luainstance.h changes */ #define LUA_API_VERSION_MAJOR 1 -#define LUA_API_VERSION_MINOR 74 +#define LUA_API_VERSION_MINOR 75 diff --git a/src/gui/lua/lua_cc_window.cpp b/src/gui/lua/lua_cc_window.cpp index 8fb985e67..490a48e37 100644 --- a/src/gui/lua/lua_cc_window.cpp +++ b/src/gui/lua/lua_cc_window.cpp @@ -224,7 +224,7 @@ int CLuaInstCCWindow::CCWindowSetCaption(lua_State *L) lua_Integer alignment = (lua_Integer)CTextBox::NO_AUTO_LINEBREAK; tableLookup(L, "alignment", alignment); - D->w->setWindowCaption(name, alignment | (lua_Integer)CTextBox::NO_AUTO_LINEBREAK); + D->w->setWindowCaption(name, alignment); return 0; } From 25645799c5af2d5a56bbaa5b6c10b13c25e0ac80 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Wed, 10 May 2017 15:35:44 +0200 Subject: [PATCH 6/9] use lua_Integer Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/843703b175b227151371afc2f941b356207f03f3 Author: Jacek Jendrzej Date: 2017-05-10 (Wed, 10 May 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/lua/lua_cc_window.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/lua/lua_cc_window.cpp b/src/gui/lua/lua_cc_window.cpp index 490a48e37..6249af866 100644 --- a/src/gui/lua/lua_cc_window.cpp +++ b/src/gui/lua/lua_cc_window.cpp @@ -89,7 +89,7 @@ int CLuaInstCCWindow::CCWindowNew(lua_State *L) tableLookup(L, "name", name) || tableLookup(L, "title", name) || tableLookup(L, "caption", name); tableLookup(L, "icon", icon); - int has_shadow = CC_SHADOW_OFF; + lua_Integer has_shadow = CC_SHADOW_OFF; if (!tableLookup(L, "has_shadow", has_shadow)) { tmp1 = "false"; if (tableLookup(L, "has_shadow", tmp1)) From d831b0659aed1ee4124c193e4b80c8c50d807636 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 11 May 2017 08:35:24 +0200 Subject: [PATCH 7/9] CComponentsHeader: fix brace error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit suggest explicit braces to avoid ambiguous ‘else’ Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/1b2f1d320db1cf2fbfc7a85fec81c23597d52580 Author: Thilo Graf Date: 2017-05-11 (Thu, 11 May 2017) ------------------ This commit was generated by Migit --- src/gui/components/cc_frm_header.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/components/cc_frm_header.cpp b/src/gui/components/cc_frm_header.cpp index da59a3b7f..ea3af35d4 100644 --- a/src/gui/components/cc_frm_header.cpp +++ b/src/gui/components/cc_frm_header.cpp @@ -330,10 +330,10 @@ void CComponentsHeader::initLogo() //set final logo position int x_logo = 0; if (cch_logo.Align == CC_LOGO_RIGHT){ - if (cch_caption_align == CTextBox::RIGHT) + if (cch_caption_align == CTextBox::RIGHT){ if (cch_text_obj) x_logo = cch_text_obj->getXPos() - cch_logo_obj->getWidth(); - else + }else x_logo = x_logo_right; } if (cch_logo.Align == CC_LOGO_LEFT) From babdee806b28b9edf8f42240a7e44d8f7d997258 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 11 May 2017 11:06:42 +0200 Subject: [PATCH 8/9] EpgPlus: use default parameter for titel arrangement Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/100a1606f05639f948c9e971b033a1d4006681d9 Author: Thilo Graf Date: 2017-05-11 (Thu, 11 May 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/epgplus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/epgplus.cpp b/src/gui/epgplus.cpp index 9fb8f0b57..7d554df79 100644 --- a/src/gui/epgplus.cpp +++ b/src/gui/epgplus.cpp @@ -126,7 +126,7 @@ void EpgPlus::Header::paint(const char * Name) this->logo->allowPaint(false); } this->head->setDimensionsAll(this->x, this->y, this->width, this->font->getHeight()); - this->head->setCaption(caption, CTextBox::NO_AUTO_LINEBREAK); + this->head->setCaption(caption); this->head->paint(CC_SAVE_SCREEN_NO); } } From 064b2cc58863b520cf9756d1d60f4efd79b07ef4 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 11 May 2017 12:03:28 +0200 Subject: [PATCH 9/9] cc_frm_header.cpp/h: remove CTextBox types for title allignment Title object has only width of current text content. This causes CTextBox types have not a really visible effect. Now we have only three align types for title and these are related to cc-text object position. Involved classes adjusted too. Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/942a27e3ef1417506686ae5e8cda1fd10d785369 Author: Thilo Graf Date: 2017-05-11 (Thu, 11 May 2017) ------------------ This commit was generated by Migit --- src/gui/channellist.cpp | 2 +- src/gui/components/cc_frm_header.cpp | 24 +++++++------- src/gui/components/cc_frm_header.h | 48 ++++++++++++++++++---------- src/gui/components/cc_frm_window.cpp | 4 +-- src/gui/components/cc_frm_window.h | 12 ++++--- src/gui/eventlist.cpp | 2 +- src/gui/lua/lua_cc_window.cpp | 4 +-- src/gui/lua/lua_cc_window.h | 2 +- src/gui/scan.cpp | 2 +- src/gui/test_menu.cpp | 4 +-- 10 files changed, 60 insertions(+), 44 deletions(-) diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 16f03c41b..3b08d8190 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -2132,7 +2132,7 @@ void CChannelList::paintHead() fb_pixel_t header_txt_col = (edit_state ? COL_RED : COL_MENUHEAD_TEXT); header->setColorBody(COL_MENUHEAD_PLUS_0); - header->setCaption(header_txt, CTextBox::NO_AUTO_LINEBREAK, header_txt_col); + header->setCaption(header_txt, DEFAULT_TITLE_ALIGN, header_txt_col); if (timeset) { if(!edit_state){ diff --git a/src/gui/components/cc_frm_header.cpp b/src/gui/components/cc_frm_header.cpp index ea3af35d4..f0a5ba052 100644 --- a/src/gui/components/cc_frm_header.cpp +++ b/src/gui/components/cc_frm_header.cpp @@ -130,7 +130,7 @@ void CComponentsHeader::initVarHeader( const int& x_pos, const int& y_pos, const cch_logo.dy_max = -1; cch_logo.Align = DEFAULT_LOGO_ALIGN; cch_col_text = COL_MENUHEAD_TEXT; - cch_caption_align = CTextBox::NO_AUTO_LINEBREAK; + cch_caption_align = DEFAULT_TITLE_ALIGN; cch_items_y = CC_CENTERED; cch_offset = OFFSET_INNER_MID; cch_icon_x = cch_offset; @@ -163,7 +163,7 @@ CComponentsHeader::~CComponentsHeader() v_cch_btn.clear(); } -void CComponentsHeader::setCaption(const std::string& caption, const int& align_mode, const fb_pixel_t& text_color) +void CComponentsHeader::setCaption(const std::string& caption, const cc_title_alignment_t& align_mode, const fb_pixel_t& text_color) { if (cch_cl_obj) cch_cl_obj->Stop(); @@ -172,7 +172,7 @@ void CComponentsHeader::setCaption(const std::string& caption, const int& align_ cch_col_text = text_color; } -void CComponentsHeader::setCaption(neutrino_locale_t caption_locale, const int& align_mode, const fb_pixel_t& text_color) +void CComponentsHeader::setCaption(neutrino_locale_t caption_locale, const cc_title_alignment_t& align_mode, const fb_pixel_t& text_color) { setCaption(string(g_Locale->getText(caption_locale)), align_mode, text_color); } @@ -302,7 +302,7 @@ void CComponentsHeader::initLogo() //right end int x_logo_right = width - cch_logo_obj->getWidth(); - if (cch_caption_align != CTextBox::RIGHT){ + if (!(cch_caption_align & CC_TITLE_RIGHT)){ if (cch_btn_obj) x_logo_right -= cch_btn_obj->getWidth(); if (cch_cl_obj) @@ -314,7 +314,7 @@ void CComponentsHeader::initLogo() //left end int x_logo_left = cch_offset; - if (cch_caption_align != CTextBox::RIGHT) + if (!(cch_caption_align & CC_TITLE_RIGHT)) x_logo_left = getCCItem(prev_id) ? getCCItem(prev_id)->getXPos() + getCCItem(prev_id)->getWidth() : 0; else if (cch_icon_obj) @@ -329,19 +329,19 @@ void CComponentsHeader::initLogo() //set final logo position int x_logo = 0; - if (cch_logo.Align == CC_LOGO_RIGHT){ - if (cch_caption_align == CTextBox::RIGHT){ + if (cch_logo.Align & CC_LOGO_RIGHT){ + if (cch_caption_align & CC_TITLE_RIGHT){ if (cch_text_obj) x_logo = cch_text_obj->getXPos() - cch_logo_obj->getWidth(); }else x_logo = x_logo_right; } - if (cch_logo.Align == CC_LOGO_LEFT) + if (cch_logo.Align & CC_LOGO_LEFT) x_logo = x_logo_left; - if (cch_logo.Align == CC_LOGO_CENTER){ + if (cch_logo.Align & CC_LOGO_CENTER){ x_logo = width/2 - cch_logo_obj->getWidth()/2; //fallback if adjacent item and logo are overlapping - if (cch_caption_align != CTextBox::RIGHT){ + if (!(cch_caption_align & CC_TITLE_RIGHT)){ if (getCCItem(prev_id)){ int x_tmp = x_logo_left + logo_space/2 - cch_logo_obj->getWidth()/2; if (x_logo <= x_logo_left) @@ -605,10 +605,10 @@ void CComponentsHeader::initCaption() cc_text_w = min(cc_text_w, cch_font->getRenderWidth(cch_text)+ OFFSET_INNER_MID); //set alignment of text item in dependency from text alignment - if (cch_caption_align == CTextBox::CENTER) + if (cch_caption_align & CC_TITLE_CENTER) cch_text_x = width/2 - cc_text_w/2; - if (cch_caption_align == CTextBox::RIGHT){ + if (cch_caption_align & CC_TITLE_RIGHT){ cch_text_x += w_free; cch_text_x -= max(cc_text_w, cch_font->getRenderWidth(cch_text)+ OFFSET_INNER_MID); } diff --git a/src/gui/components/cc_frm_header.h b/src/gui/components/cc_frm_header.h index 9550d1134..e26d28ff2 100644 --- a/src/gui/components/cc_frm_header.h +++ b/src/gui/components/cc_frm_header.h @@ -32,25 +32,29 @@ #include "cc_frm_clock.h" #include -#define DEFAULT_LOGO_ALIGN CComponentsHeader::CC_LOGO_CENTER +#define DEFAULT_LOGO_ALIGN CCHeaderTypes::CC_LOGO_CENTER +#define DEFAULT_TITLE_ALIGN CCHeaderTypes::CC_TITLE_LEFT -//! Sub class of CComponentsForm. Shows a header with prepared items. -/*! -CComponentsHeader provides prepared items like icon, caption and context button icons, mostly for usage in menues or simple windows -*/ - -class CComponentsHeader : public CComponentsForm, public CCTextScreen +class CCHeaderTypes { public: ///logo position options typedef enum { - CC_LOGO_RIGHT , - CC_LOGO_LEFT , - CC_LOGO_CENTER + CC_LOGO_RIGHT = 0x01, + CC_LOGO_LEFT = 0x02, + CC_LOGO_CENTER = 0x04 }cc_logo_alignment_t; - private: + ///title position options + typedef enum + { /*for compatibilty use CTextBox enums values*/ + CC_TITLE_LEFT = 0x400, + CC_TITLE_CENTER = 0x40 , + CC_TITLE_RIGHT = 0x80 + }cc_title_alignment_t; + + protected: ///required logo data type typedef struct cch_logo_t { @@ -60,7 +64,17 @@ class CComponentsHeader : public CComponentsForm, public CCTextScreen int32_t dy_max; cc_logo_alignment_t Align; } cch_logo_struct_t; +}; + +//! Sub class of CComponentsForm. Shows a header with prepared items. +/*! +CComponentsHeader provides prepared items like icon, caption and context button icons, mostly for usage in menues or simple windows +*/ + +class CComponentsHeader : public CComponentsForm, public CCTextScreen, CCHeaderTypes +{ + private: ///member: init genaral variables, parameters for mostly used properties void initVarHeader( const int& x_pos, const int& y_pos, const int& w, const int& h, const std::string& caption, @@ -116,8 +130,8 @@ class CComponentsHeader : public CComponentsForm, public CCTextScreen std::vector v_cch_btn; ///property: size of header, possible values are CC_HEADER_SIZE_LARGE, CC_HEADER_SIZE_SMALL int cch_size_mode; - ///property: alignment of caption within header, see also setCaptionAlignment(), possible values are CTextBox::CENTER, default = CTextBox::NO_AUTO_LINEBREAK (left) - int cch_caption_align; + ///property: alignment of caption within header, see also setCaptionAlignment() + cc_title_alignment_t cch_caption_align; ///property: enable/disable of clock, see also enableClock() bool cch_cl_enable; ///property: clock format @@ -167,12 +181,12 @@ class CComponentsHeader : public CComponentsForm, public CCTextScreen virtual ~CComponentsHeader(); ///set caption text, parameters: string, int align_mode (default left) - virtual void setCaption(const std::string& caption, const int& align_mode = CTextBox::NO_AUTO_LINEBREAK, const fb_pixel_t& text_color = COL_MENUHEAD_TEXT); + virtual void setCaption(const std::string& caption, const cc_title_alignment_t& align_mode = DEFAULT_TITLE_ALIGN, const fb_pixel_t& text_color = COL_MENUHEAD_TEXT); ///set caption text, parameters: loacle, int align_mode (default left) - virtual void setCaption(neutrino_locale_t caption_locale, const int& align_mode = CTextBox::NO_AUTO_LINEBREAK, const fb_pixel_t& text_color = COL_MENUHEAD_TEXT); + virtual void setCaption(neutrino_locale_t caption_locale, const cc_title_alignment_t& align_mode = DEFAULT_TITLE_ALIGN, const fb_pixel_t& text_color = COL_MENUHEAD_TEXT); - ///set alignment of caption within header, possible paramters are CTextBox::CENTER, CTextBox::NO_AUTO_LINEBREAK - virtual void setCaptionAlignment(const int& align_mode){cch_caption_align = align_mode;} + ///set alignment of caption within header, possible paramters are CComponentsHeader::CC_TITLE_LEFT, CComponentsHeader::CC_TITLE_RIGHT, CComponentsHeader::CC_TITLE_CENTER + virtual void setCaptionAlignment(const cc_title_alignment_t& align_mode){cch_caption_align = align_mode;} /**Set text font for title. * Internal default font is g_Font[SNeutrinoSettings::FONT_TYPE_MENU_TITLE] and diff --git a/src/gui/components/cc_frm_window.cpp b/src/gui/components/cc_frm_window.cpp index acf06e1b4..4d43e08be 100644 --- a/src/gui/components/cc_frm_window.cpp +++ b/src/gui/components/cc_frm_window.cpp @@ -150,7 +150,7 @@ void CComponentsWindow::initVarWindow( const int& x_pos, const int& y_pos, const ccw_buttons = 0; //no header buttons ccw_show_footer = true; ccw_show_header = true; - ccw_align_mode = CTextBox::NO_AUTO_LINEBREAK; + ccw_align_mode = DEFAULT_TITLE_ALIGN; ccw_show_l_sideber = false; ccw_show_r_sideber = false; ccw_w_sidebar = 40; @@ -187,7 +187,7 @@ void CComponentsWindow::initWindowPos() y = frameBuffer->getScreenY(); } -void CComponentsWindow::setWindowCaption(neutrino_locale_t locale_text, const int& align_mode) +void CComponentsWindow::setWindowCaption(neutrino_locale_t locale_text, const cc_title_alignment_t& align_mode) { ccw_caption = g_Locale->getText(locale_text); ccw_align_mode = align_mode; diff --git a/src/gui/components/cc_frm_window.h b/src/gui/components/cc_frm_window.h index 7b2f71796..f6eb80f20 100644 --- a/src/gui/components/cc_frm_window.h +++ b/src/gui/components/cc_frm_window.h @@ -52,7 +52,7 @@ items like text, labels, pictures ... */ -class CComponentsWindow : public CComponentsForm +class CComponentsWindow : public CComponentsForm, CCHeaderTypes { protected: ///object: header object, to get access to header properties see also getHeaderObject() @@ -68,7 +68,7 @@ class CComponentsWindow : public CComponentsForm ///property: caption in header, see also getHeaderObject() std::string ccw_caption; ///property: alignment mode for header caption - int ccw_align_mode; + cc_title_alignment_t ccw_align_mode; ///property: icon name in header, see also getHeaderObject() std::string ccw_icon_name; ///property: assigned default icon buttons in header, see also getHeaderObject() @@ -168,15 +168,17 @@ class CComponentsWindow : public CComponentsForm void enableSidebar(const int& sidbar_type = CC_WINDOW_LEFT_SIDEBAR | CC_WINDOW_RIGHT_SIDEBAR); ///set caption in header with string, see also getHeaderObject() - void setWindowCaption(const std::string& text, const int& align_mode = CTextBox::NO_AUTO_LINEBREAK){ccw_caption = text; ccw_align_mode = align_mode;} + void setWindowCaption(const std::string& text, const cc_title_alignment_t& align_mode = DEFAULT_TITLE_ALIGN){ccw_caption = text; ccw_align_mode = align_mode;} ///set header text color + void setWindowHeaderTextColor(const fb_pixel_t& color){ccw_col_head_text = color;} ///set background to header void setWindowHeaderColor(const fb_pixel_t& color){ccw_col_head = color;} + ///set caption in header from locales, see also getHeaderObject() - void setWindowCaption(neutrino_locale_t locale_text, const int& align_mode = CTextBox::NO_AUTO_LINEBREAK); + void setWindowCaption(neutrino_locale_t locale_text, const cc_title_alignment_t& align_mode = DEFAULT_TITLE_ALIGN); ///set caption alignment, see CTextBox for possible modes - void setWindowCaptionAlignment(const int& align_mode){ccw_align_mode = align_mode;}; + void setWindowCaptionAlignment(const cc_title_alignment_t& align_mode){ccw_align_mode = align_mode;}; ///set icon name in header, see also getHeaderObject() void setWindowIcon(const std::string& iconname){ccw_icon_name = iconname; initHeader();}; diff --git a/src/gui/eventlist.cpp b/src/gui/eventlist.cpp index d8203b2da..02f56f04a 100644 --- a/src/gui/eventlist.cpp +++ b/src/gui/eventlist.cpp @@ -888,7 +888,7 @@ void CEventList::paintHead(t_channel_id _channel_id, std::string _channelname, s if (header->isPainted()) header->getChannelLogoObject()->hide(); header->setChannelLogo(_channel_id,_channelname); - header->setCaption(_channelname,CTextBox::CENTER); + header->setCaption(_channelname, CCHeaderTypes::CC_TITLE_CENTER); header->paint(CC_SAVE_SCREEN_NO); diff --git a/src/gui/lua/lua_cc_window.cpp b/src/gui/lua/lua_cc_window.cpp index 6249af866..0d4c9d412 100644 --- a/src/gui/lua/lua_cc_window.cpp +++ b/src/gui/lua/lua_cc_window.cpp @@ -221,10 +221,10 @@ int CLuaInstCCWindow::CCWindowSetCaption(lua_State *L) std::string name = ""; tableLookup(L, "name", name) || tableLookup(L, "title", name) || tableLookup(L, "caption", name); - lua_Integer alignment = (lua_Integer)CTextBox::NO_AUTO_LINEBREAK; + lua_Integer alignment = (lua_Integer)DEFAULT_TITLE_ALIGN; tableLookup(L, "alignment", alignment); - D->w->setWindowCaption(name, alignment); + D->w->setWindowCaption(name, (cc_title_alignment_t)alignment); return 0; } diff --git a/src/gui/lua/lua_cc_window.h b/src/gui/lua/lua_cc_window.h index 98cd9ac86..2c5c961f3 100644 --- a/src/gui/lua/lua_cc_window.h +++ b/src/gui/lua/lua_cc_window.h @@ -29,7 +29,7 @@ class CLuaCCWindow ~CLuaCCWindow() { delete w; } }; -class CLuaInstCCWindow +class CLuaInstCCWindow : CCHeaderTypes { public: CLuaInstCCWindow() {}; diff --git a/src/gui/scan.cpp b/src/gui/scan.cpp index 26a00d41c..1709db61e 100644 --- a/src/gui/scan.cpp +++ b/src/gui/scan.cpp @@ -507,7 +507,7 @@ void CScanTs::paintLine(int px, int py, int w, const char * const txt) void CScanTs::paint(bool fortest) { CComponentsHeaderLocalized header(x, y, width, hheight, fortest ? LOCALE_SCANTS_TEST : LOCALE_SCANTS_HEAD); - header.setCaptionAlignment(CTextBox::CENTER); + header.setCaptionAlignment(CCHeaderTypes::CC_TITLE_CENTER); header.paint(CC_SAVE_SCREEN_NO); frameBuffer->paintBoxRel(x, y + hheight, width, height - hheight, COL_MENUCONTENT_PLUS_0, RADIUS_LARGE, CORNER_BOTTOM); diff --git a/src/gui/test_menu.cpp b/src/gui/test_menu.cpp index 060e7858b..9d1865966 100644 --- a/src/gui/test_menu.cpp +++ b/src/gui/test_menu.cpp @@ -743,11 +743,11 @@ int CTestMenu::exec(CMenuTarget* parent, const std::string &actionKey) else if (actionKey == "window"){ if (window == NULL){ window = new CComponentsWindow(); - window->setWindowCaption("|........HEADER........|", CTextBox::CENTER); + window->setWindowCaption("|........HEADER........|", CCHeaderTypes::CC_TITLE_CENTER); window->setDimensionsAll(50, 50, 500, 500); window->setWindowIcon(NEUTRINO_ICON_INFO); window->enableShadow(); - window->getFooterObject()->setCaption("|........FOOTER........|", CTextBox::CENTER); + window->getFooterObject()->setCaption("|........FOOTER........|", CCHeaderTypes::CC_TITLE_CENTER); CComponentsShapeCircle *c10 = new CComponentsShapeCircle(0, 0, 28); CComponentsShapeCircle *c11 = new CComponentsShapeCircle(0, CC_APPEND, 28);