- cc_frm_scrollbar: add getScrollBarData() function ...

to calculate total pages and current page for CComponentsScrollBar

Signed-off-by: Thilo Graf <dbt@novatux.de>
This commit is contained in:
svenhoefer
2017-06-15 01:01:55 +02:00
committed by Thilo Graf
parent ddb027a006
commit 3e9e73cb3c
2 changed files with 12 additions and 0 deletions

View File

@@ -220,6 +220,16 @@ void CComponentsScrollBar::initSegments()
} }
} }
void getScrollBarData(int *total_pages, int *current_page, int total_items, int items_per_page, int selected_item)
{
// avoid divison by zero and fix wrong values
total_items = std::max(total_items, 1);
items_per_page = std::max(items_per_page, 1);
selected_item = std::max(selected_item, 0);
*total_pages = ((total_items - 1) / items_per_page) + 1;
*current_page = selected_item / items_per_page;
}
void paintScrollBar( const int &x_pos, void paintScrollBar( const int &x_pos,
const int &y_pos, const int &y_pos,

View File

@@ -145,6 +145,8 @@ class CComponentsScrollBar : public CComponentsFrmChain
void disableVisualize(){enableVisualize(false);} void disableVisualize(){enableVisualize(false);}
}; };
void getScrollBarData(int *total_pages, int *current_page, int total_items, int items_per_page, int selected_item);
/**Small and easy to apply scrollbar paint methode without expilcit object declaration /**Small and easy to apply scrollbar paint methode without expilcit object declaration
* @return void * @return void
* *