diff --git a/src/gui/components/cc_frm.cpp b/src/gui/components/cc_frm.cpp index 9cd5eed0b..16f9eb423 100644 --- a/src/gui/components/cc_frm.cpp +++ b/src/gui/components/cc_frm.cpp @@ -254,6 +254,12 @@ void CComponentsForm::removeCCItem(const uint& cc_item_id) #endif } +void CComponentsForm::removeCCItem(CComponentsItem* cc_Item) +{ + uint id = getCCItemId(cc_Item); + removeCCItem(id); +} + void CComponentsForm::exchangeCCItem(const uint& cc_item_id_a, const uint& cc_item_id_b) { if (!v_cc_items.empty()) diff --git a/src/gui/components/cc_frm.h b/src/gui/components/cc_frm.h index 4ee335c93..551ce4ecc 100644 --- a/src/gui/components/cc_frm.h +++ b/src/gui/components/cc_frm.h @@ -58,6 +58,7 @@ class CComponentsForm : public CComponentsItem virtual void addCCItem(CComponentsItem* cc_Item); virtual void insertCCItem(const uint& cc_item_id, CComponentsItem* cc_Item); virtual void removeCCItem(const uint& cc_item_id); + virtual void removeCCItem(CComponentsItem* cc_Item); virtual void replaceCCItem(const uint& cc_item_id, CComponentsItem* new_cc_Item); virtual void replaceCCItem(CComponentsItem* old_cc_Item, CComponentsItem* new_cc_Item); virtual void exchangeCCItem(const uint& item_id_a, const uint& item_id_b); @@ -222,6 +223,8 @@ class CComponentsWindow : public CComponentsForm const char* ccw_icon_name; ///property: assigned default icon buttons in header, see also getHeaderObject() int ccw_buttons; + ///property: value = true, let show footer + bool ccw_show_footer; ///initialze header object void initHeader(); @@ -275,6 +278,9 @@ class CComponentsWindow : public CComponentsForm ///add item to body object, also usable is addCCItem() to add items to the windo object void addWindowItem(CComponentsItem* cc_Item); + + /// + void showFooter(bool show = true){ccw_show_footer = show;}; ///set caption in header with string, see also getHeaderObject() void setWindowCaption(const std::string& text){ccw_caption = text;}; diff --git a/src/gui/components/cc_frm_window.cpp b/src/gui/components/cc_frm_window.cpp index 9feaffcdf..47d188a31 100644 --- a/src/gui/components/cc_frm_window.cpp +++ b/src/gui/components/cc_frm_window.cpp @@ -140,6 +140,7 @@ void CComponentsWindow::initVarWindow() ccw_caption = ""; ccw_icon_name = NULL; ccw_buttons = 0; //no header buttons + ccw_show_footer = true; setShadowOnOff(true); } @@ -179,7 +180,9 @@ void CComponentsWindow::initBody() //set body properties if (ccw_body){ ccw_body->setCornerType(0); - int fh = ccw_footer->getHeight(); + int fh = 0; + if (ccw_footer) + fh = ccw_footer->getHeight(); int hh = ccw_head->getHeight(); int h_body = height - hh - fh; ccw_body->setDimensionsAll(0, CC_APPEND, width, h_body); @@ -216,7 +219,16 @@ void CComponentsWindow::initCCWItems() printf("[CComponentsWindow] [%s - %d] init items...\n", __FUNCTION__, __LINE__); #endif initHeader(); - initFooter(); + + //add footer if required + if (ccw_show_footer){ + initFooter(); + }else{ + if (ccw_footer != NULL){ + removeCCItem(ccw_footer); + ccw_footer = NULL; + } + } initBody(); //add header, body and footer items only one time @@ -224,8 +236,9 @@ void CComponentsWindow::initCCWItems() addCCItem(ccw_head); if (!isAdded(ccw_body)) addCCItem(ccw_body); - if (!isAdded(ccw_footer)) - addCCItem(ccw_footer); + if (ccw_footer) + if (!isAdded(ccw_footer)) + addCCItem(ccw_footer); } void CComponentsWindow::paint(bool do_save_bg)