Merge branch 'master' into pu/mp

This commit is contained in:
Jacek Jendrzej
2017-04-29 19:03:17 +02:00
4 changed files with 103 additions and 15 deletions

View File

@@ -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_b_offset |
+------------------------------------------------------------------------------------+
*/
//-------------------------------------------------------------------------------------------------------
//sub class CComponentsFrmChain
CComponentsFrmChain::CComponentsFrmChain( const int& x_pos, const int& y_pos, const int& w, const int& h,
@@ -59,6 +78,9 @@ 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;
@@ -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();
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]->setPos(max(CC_APPEND, x_item), max(CC_CENTERED, y_item));
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();
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]->setPos(max(CC_CENTERED, x_item), max(CC_APPEND, y_item));
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);

View File

@@ -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

View File

@@ -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);