mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-30 17:01:15 +02:00
Merge branch 'master' into pu/fb-setmode
This commit is contained in:
@@ -532,6 +532,12 @@ void CComponentsForm::killCCItems(const fb_pixel_t& bg_color, bool ignore_parent
|
||||
v_cc_items[i]->kill(bg_color, ignore_parent);
|
||||
}
|
||||
|
||||
void CComponentsForm::hideCCItems()
|
||||
{
|
||||
for(size_t i=0; i<v_cc_items.size(); i++)
|
||||
v_cc_items[i]->hide();
|
||||
}
|
||||
|
||||
void CComponentsForm::setPageCount(const u_int8_t& pageCount)
|
||||
{
|
||||
u_int8_t new_val = pageCount;
|
||||
|
@@ -81,6 +81,16 @@ class CComponentsForm : public CComponentsItem
|
||||
///NOTE: Items always have parent bindings to "this" and use the parent background color as default! Set parameter 'ignore_parent=true' to ignore parent background color!
|
||||
virtual void killCCItems(const fb_pixel_t& bg_color, bool ignore_parent);
|
||||
|
||||
/**
|
||||
Removes possible contained items and finally removes
|
||||
current form from screen and
|
||||
restores last displayed background before form was painted.
|
||||
*/
|
||||
void hide(){hideCCItems(); CCDraw::hide();}
|
||||
|
||||
///restore background for all items inside form,
|
||||
void hideCCItems();
|
||||
|
||||
///add an item to form collection, returns id
|
||||
virtual int addCCItem(CComponentsItem* cc_Item);
|
||||
///add items from a vector to form collection, returns size/count of items
|
||||
|
@@ -27,6 +27,25 @@
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
||||
/* general chain form shema
|
||||
|
||||
x/y
|
||||
/
|
||||
+---------------------------------------width----------------------------------------+
|
||||
| chn_t_offset |
|
||||
| +--------+ +--------+ +--------+ |
|
||||
|chn_l_offset| item |append_x_offset| item |append_x_offset| item |chn_r_offset|
|
||||
| +--------+ +--------+ +--------+ |
|
||||
| append_y_offset |height
|
||||
| +--------+ +--------+ +--------+ |
|
||||
| | item | | item | | item | |
|
||||
| +--------+ +--------+ +--------+ |
|
||||
| chn_t_offset |
|
||||
+------------------------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------
|
||||
//sub class CComponentsFrmChain
|
||||
CComponentsFrmChain::CComponentsFrmChain( const int& x_pos, const int& y_pos, const int& w, const int& h,
|
||||
@@ -59,11 +78,14 @@ void CComponentsFrmChain::initVarChain( const int& x_pos, const int& y_pos, cons
|
||||
width = w;
|
||||
height = h;
|
||||
|
||||
chn_l_offset = chn_r_offset = 0;
|
||||
chn_t_offset = chn_b_offset = 0;
|
||||
|
||||
shadow = shadow_mode;
|
||||
col_frame = color_frame;
|
||||
col_body = color_body;
|
||||
col_shadow = color_shadow;
|
||||
|
||||
|
||||
chn_direction = direction;
|
||||
|
||||
if (v_items)
|
||||
@@ -86,23 +108,65 @@ void CComponentsFrmChain::initChainItems()
|
||||
return;
|
||||
|
||||
//set new values
|
||||
int w_tmp = append_x_offset;
|
||||
int h_tmp = append_y_offset;
|
||||
int w_tmp = 0, h_tmp = 0;
|
||||
int w_item = 0, h_item = 0;
|
||||
size_t i_count = v_cc_items.size();
|
||||
|
||||
for (size_t i= 0; i< v_cc_items.size(); i++){
|
||||
int x_item = v_cc_items[i]->getXPos();
|
||||
int y_item = v_cc_items[i]->getYPos();
|
||||
|
||||
for (size_t i= 0; i< i_count; i++){
|
||||
// x_item = v_cc_items[i]->getXPos();
|
||||
// y_item = v_cc_items[i]->getYPos();
|
||||
w_item = v_cc_items[i]->getWidth();
|
||||
h_item = v_cc_items[i]->getHeight();
|
||||
|
||||
if (chn_direction & CC_DIR_X){
|
||||
w_tmp += v_cc_items[i]->getWidth();
|
||||
w_tmp += append_x_offset;
|
||||
v_cc_items[i]->setPos(max(CC_APPEND, x_item), max(CC_CENTERED, y_item));
|
||||
if (i == 0){
|
||||
v_cc_items[i]->setXPos(chn_l_offset);
|
||||
w_tmp += chn_l_offset;
|
||||
w_tmp += w_item;
|
||||
if (i_count == 1)
|
||||
w_tmp += chn_r_offset;
|
||||
}
|
||||
|
||||
if (i_count > 1){
|
||||
if (i == i_count-1){
|
||||
w_tmp += w_item;
|
||||
w_tmp += append_x_offset;
|
||||
v_cc_items[i]->setXPos(w_tmp - v_cc_items[i]->getWidth());
|
||||
w_tmp += chn_r_offset;
|
||||
}
|
||||
}
|
||||
|
||||
if (i != 0 && i != i_count-1){
|
||||
w_tmp += w_item;
|
||||
w_tmp += append_x_offset;
|
||||
v_cc_items[i]->setXPos(w_tmp - v_cc_items[i]->getWidth());
|
||||
}
|
||||
}
|
||||
|
||||
if (chn_direction & CC_DIR_Y){
|
||||
h_tmp += v_cc_items[i]->getHeight();
|
||||
h_tmp += append_y_offset;
|
||||
v_cc_items[i]->setPos(max(CC_CENTERED, x_item), max(CC_APPEND, y_item));
|
||||
if (i == 0){
|
||||
v_cc_items[i]->setYPos(chn_t_offset);
|
||||
h_tmp += chn_t_offset;
|
||||
h_tmp += h_item;
|
||||
if (i_count == 1)
|
||||
h_tmp += chn_b_offset;
|
||||
}
|
||||
|
||||
if (i_count > 1){
|
||||
if (i == i_count-1){
|
||||
h_tmp += h_item;
|
||||
h_tmp += append_y_offset;
|
||||
v_cc_items[i]->setYPos(h_tmp - v_cc_items[i]->getHeight());
|
||||
h_tmp += chn_b_offset;
|
||||
}
|
||||
}
|
||||
|
||||
if (i != 0 && i != i_count-1){
|
||||
h_tmp += h_item;
|
||||
h_tmp += append_y_offset;
|
||||
v_cc_items[i]->setYPos(h_tmp - v_cc_items[i]->getHeight());
|
||||
}
|
||||
}
|
||||
}
|
||||
width = max (w_tmp, width);
|
||||
|
@@ -55,6 +55,10 @@ class CComponentsFrmChain : public CComponentsForm
|
||||
fb_pixel_t& color_frame,
|
||||
fb_pixel_t& color_body,
|
||||
fb_pixel_t& color_shadow);
|
||||
|
||||
int chn_l_offset, chn_r_offset;
|
||||
int chn_t_offset, chn_b_offset;
|
||||
|
||||
protected:
|
||||
///property: mode for arrangement direction of items, see also setDirection(), getDirection()
|
||||
int chn_direction;
|
||||
@@ -75,7 +79,26 @@ class CComponentsFrmChain : public CComponentsForm
|
||||
///defines mode for arrangement direction of items, see also chn_direction
|
||||
virtual void setDirection(int direction);
|
||||
///gets the mode of arrangment direction
|
||||
virtual int getDirection(){return chn_direction;};
|
||||
virtual int getDirection(){return chn_direction;}
|
||||
|
||||
/**Members to set border offsets
|
||||
* @param[in] offset
|
||||
* @li expects type int as offset value
|
||||
* @return
|
||||
* void
|
||||
*/
|
||||
void setLeftOffset(const int& offset){chn_l_offset = offset;}
|
||||
void setRightOffset(const int& offset){chn_r_offset = offset;}
|
||||
void setTopOffset(const int& offset){chn_t_offset = offset;}
|
||||
void setBottomOffset(const int& offset){chn_b_offset = offset;}
|
||||
|
||||
void setBorderOffsets(const int& left_offset, const int& right_offset, const int& top_offset, const int& bottom_offset)
|
||||
{
|
||||
setLeftOffset(left_offset);
|
||||
setRightOffset(right_offset);
|
||||
setTopOffset(top_offset);
|
||||
setBottomOffset(bottom_offset);
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -274,10 +274,10 @@ void CComponentsHeader::initIcon()
|
||||
|
||||
void CComponentsHeader::initLogo()
|
||||
{
|
||||
cch_logo.dy_max = cch_logo.dy_max == -1 ? height - 2*OFFSET_INNER_MIN : cch_logo.dy_max;
|
||||
int h_logo = cch_logo.dy_max == -1 ? height - 2*OFFSET_INNER_MIN : cch_logo.dy_max;
|
||||
|
||||
if(!cch_logo_obj)
|
||||
cch_logo_obj = new CComponentsChannelLogoScalable(width/2, height/2 - cch_logo.dy_max/2, cch_logo.Name, cch_logo.Id, this);
|
||||
cch_logo_obj = new CComponentsChannelLogoScalable(width/2, height/2 - h_logo/2, cch_logo.Name, cch_logo.Id, this);
|
||||
else
|
||||
cch_logo_obj->setChannel(cch_logo.Id, cch_logo.Name);
|
||||
|
||||
@@ -285,12 +285,12 @@ void CComponentsHeader::initLogo()
|
||||
if (cch_logo.dy_max == -1){
|
||||
int dx_orig = 0, dy_orig = 0 ;
|
||||
cch_logo_obj->getRealSize(&dx_orig, &dy_orig);
|
||||
if (cch_logo.dy_max > dy_orig)
|
||||
cch_logo.dy_max = dy_orig;
|
||||
if (h_logo > dy_orig)
|
||||
h_logo = dy_orig;
|
||||
}
|
||||
|
||||
if (cch_logo_obj->hasLogo()){
|
||||
cch_logo_obj->setHeight(cch_logo.dy_max, true);
|
||||
cch_logo_obj->setHeight(h_logo, true);
|
||||
|
||||
// set id of logo item depends of neighbor items
|
||||
int logo_id = getCCItemId(cch_logo_obj);
|
||||
@@ -414,8 +414,9 @@ void CComponentsHeader::initButtons()
|
||||
//set button form properties
|
||||
if (cch_btn_obj){
|
||||
cch_btn_obj->setYPos(cch_items_y);
|
||||
cch_btn_obj->doPaintBg(false);
|
||||
cch_btn_obj->doPaintBg(false);;
|
||||
cch_btn_obj->setAppendOffset(cch_buttons_space, 0);
|
||||
cch_btn_obj->setRightOffset(cch_buttons_space);
|
||||
cch_btn_obj->removeAllIcons();
|
||||
cch_btn_obj->addIcon(v_cch_btn);
|
||||
|
||||
|
@@ -299,7 +299,7 @@ class CComponentsHeader : public CComponentsForm, public CCTextScreen
|
||||
virtual void paint(bool do_save_bg = CC_SAVE_SCREEN_YES);
|
||||
|
||||
///hides item, arg: no_restore see hideCCItem()
|
||||
void hide(){disableClock(); CComponents::hide();}
|
||||
void hide(){disableClock(); CComponentsForm::hide();}
|
||||
///erase current screen without restore of background, it's similar to paintBackgroundBoxRel() from CFrameBuffer
|
||||
void kill(const fb_pixel_t& bg_color = COL_BACKGROUND_PLUS_0, const int& corner_radius = -1, const int& fblayer_type = CC_FBDATA_TYPES, bool disable_clock = true);
|
||||
|
||||
|
Reference in New Issue
Block a user