mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-29 00:11:14 +02:00
CComponentsForm: fix item offset with enabled frame
frame width was not considered
This commit is contained in:
@@ -363,6 +363,7 @@ void CComponentsForm::paintCCItems()
|
|||||||
|
|
||||||
//using of real x/y values to paint items if this text object is bound in a parent form
|
//using of real x/y values to paint items if this text object is bound in a parent form
|
||||||
int this_x = x, auto_x = x, this_y = y, auto_y = y, this_w = width;
|
int this_x = x, auto_x = x, this_y = y, auto_y = y, this_w = width;
|
||||||
|
int w_parent_frame = 0;
|
||||||
if (cc_parent){
|
if (cc_parent){
|
||||||
this_x = auto_x = cc_xr;
|
this_x = auto_x = cc_xr;
|
||||||
this_y = auto_y = cc_yr;
|
this_y = auto_y = cc_yr;
|
||||||
@@ -406,14 +407,14 @@ void CComponentsForm::paintCCItems()
|
|||||||
|
|
||||||
dprintf(DEBUG_INFO, "[CComponentsForm] %s: page_count = %u, item_page = %u, cur_page = %u\n", __func__, getPageCount(), cc_item->getPageNumber(), this->cur_page);
|
dprintf(DEBUG_INFO, "[CComponentsForm] %s: page_count = %u, item_page = %u, cur_page = %u\n", __func__, getPageCount(), cc_item->getPageNumber(), this->cur_page);
|
||||||
|
|
||||||
//get current dimension of item
|
|
||||||
int w_item = cc_item->getWidth();
|
|
||||||
int h_item = cc_item->getHeight();
|
|
||||||
|
|
||||||
//get current position of item
|
//get current position of item
|
||||||
int xpos = cc_item->getXPos();
|
int xpos = cc_item->getXPos();
|
||||||
int ypos = cc_item->getYPos();
|
int ypos = cc_item->getYPos();
|
||||||
|
|
||||||
|
//get current dimension of item
|
||||||
|
int w_item = cc_item->getWidth() - (xpos <= fr_thickness ? fr_thickness : 0);
|
||||||
|
int h_item = cc_item->getHeight() - (ypos <= fr_thickness ? fr_thickness : 0);
|
||||||
|
|
||||||
//check item for corrupt position, skip current item if found problems
|
//check item for corrupt position, skip current item if found problems
|
||||||
if (ypos > height || xpos > this_w){
|
if (ypos > height || xpos > this_w){
|
||||||
dprintf(DEBUG_INFO, "[CComponentsForm] %s: [form: %d] [item-index %d] [type=%d] WARNING: item position is out of form size:\ndefinied x=%d, defined this_w=%d \ndefinied y=%d, defined height=%d \n",
|
dprintf(DEBUG_INFO, "[CComponentsForm] %s: [form: %d] [item-index %d] [type=%d] WARNING: item position is out of form size:\ndefinied x=%d, defined this_w=%d \ndefinied y=%d, defined height=%d \n",
|
||||||
@@ -422,37 +423,41 @@ void CComponentsForm::paintCCItems()
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
w_parent_frame = xpos <= fr_thickness ? fr_thickness : 0;
|
||||||
|
|
||||||
//set required x-position to item:
|
//set required x-position to item:
|
||||||
//append vertical
|
//append vertical
|
||||||
if (xpos == CC_APPEND){
|
if (xpos == CC_APPEND){
|
||||||
auto_x += append_x_offset;
|
auto_x += append_x_offset;
|
||||||
cc_item->setRealXPos(auto_x + xpos);
|
cc_item->setRealXPos(auto_x + xpos + w_parent_frame);
|
||||||
auto_x += w_item;
|
auto_x += w_item;
|
||||||
}
|
}
|
||||||
//positionize vertical centered
|
//positionize vertical centered
|
||||||
else if (xpos == CC_CENTERED){
|
else if (xpos == CC_CENTERED){
|
||||||
auto_x = this_w/2 - w_item/2;
|
auto_x = this_w/2 - w_item/2;
|
||||||
cc_item->setRealXPos(this_x + auto_x);
|
cc_item->setRealXPos(this_x + auto_x + w_parent_frame);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
cc_item->setRealXPos(this_x + xpos);
|
cc_item->setRealXPos(this_x + xpos + w_parent_frame);
|
||||||
auto_x = (cc_item->getRealXPos() + w_item);
|
auto_x = (cc_item->getRealXPos() + w_item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
w_parent_frame = ypos <= fr_thickness ? fr_thickness : 0;
|
||||||
|
|
||||||
//set required y-position to item
|
//set required y-position to item
|
||||||
//append hor
|
//append hor
|
||||||
if (ypos == CC_APPEND){
|
if (ypos == CC_APPEND){
|
||||||
auto_y += append_y_offset;
|
auto_y += append_y_offset;
|
||||||
cc_item->setRealYPos(auto_y + ypos);
|
cc_item->setRealYPos(auto_y + ypos + w_parent_frame);
|
||||||
auto_y += h_item;
|
auto_y += h_item;
|
||||||
}
|
}
|
||||||
//positionize hor centered
|
//positionize hor centered
|
||||||
else if (ypos == CC_CENTERED){
|
else if (ypos == CC_CENTERED){
|
||||||
auto_y = height/2 - h_item/2;
|
auto_y = height/2 - h_item/2;
|
||||||
cc_item->setRealYPos(this_y + auto_y);
|
cc_item->setRealYPos(this_y + auto_y + w_parent_frame);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
cc_item->setRealYPos(this_y + ypos);
|
cc_item->setRealYPos(this_y + ypos + w_parent_frame);
|
||||||
auto_y = (cc_item->getRealYPos() + h_item);
|
auto_y = (cc_item->getRealYPos() + h_item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -184,7 +184,7 @@ void CComponentsButton::initCaption()
|
|||||||
x_cap += cc_btn_icon_obj ? cc_btn_icon_obj->getWidth() : 0;
|
x_cap += cc_btn_icon_obj ? cc_btn_icon_obj->getWidth() : 0;
|
||||||
|
|
||||||
int w_cap = width - fr_thickness - append_x_offset - x_cap - fr_thickness;
|
int w_cap = width - fr_thickness - append_x_offset - x_cap - fr_thickness;
|
||||||
int h_cap = height - 2*fr_thickness;
|
int h_cap = height*80/100/* - 2*fr_thickness*/;
|
||||||
|
|
||||||
/*NOTE:
|
/*NOTE:
|
||||||
paint of centered text in y direction without y_offset
|
paint of centered text in y direction without y_offset
|
||||||
@@ -192,7 +192,7 @@ void CComponentsButton::initCaption()
|
|||||||
but text render isn't wrong here, because capitalized chars or long chars like e. 'q', 'y' are considered!
|
but text render isn't wrong here, because capitalized chars or long chars like e. 'q', 'y' are considered!
|
||||||
Therefore we here need other icons or a hack, that considers some different height values.
|
Therefore we here need other icons or a hack, that considers some different height values.
|
||||||
*/
|
*/
|
||||||
int y_cap = height/2 - h_cap/2 - fr_thickness;
|
int y_cap = height/2 - h_cap/2 + fr_thickness/2;
|
||||||
|
|
||||||
cc_btn_capt_obj->setDimensionsAll(x_cap, y_cap, w_cap, h_cap);
|
cc_btn_capt_obj->setDimensionsAll(x_cap, y_cap, w_cap, h_cap);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user