diff --git a/src/gui/components/Makefile.am b/src/gui/components/Makefile.am index 3364ad773..b245fdaf6 100644 --- a/src/gui/components/Makefile.am +++ b/src/gui/components/Makefile.am @@ -42,4 +42,5 @@ libneutrino_gui_components_a_SOURCES = \ cc_item_shapes.cpp \ cc_item_text.cpp \ cc_item_tvpic.cpp \ - cc_timer.cpp + cc_timer.cpp\ + cc_types.cpp diff --git a/src/gui/components/cc_draw.h b/src/gui/components/cc_draw.h index 005cc95d0..083ceb40b 100644 --- a/src/gui/components/cc_draw.h +++ b/src/gui/components/cc_draw.h @@ -38,7 +38,7 @@ Basic paint attributes and member functions for component classes */ class CComponentsTimer; -class CCDraw : public COSDFader, public CComponentsSignals +class CCDraw : public COSDFader, public CComponentsSignals, public CCTypes { protected: ///pixel buffer handling, returns pixel buffer depends of given parameters diff --git a/src/gui/components/cc_item.cpp b/src/gui/components/cc_item.cpp index 41ba19a89..0a8dc71c7 100644 --- a/src/gui/components/cc_item.cpp +++ b/src/gui/components/cc_item.cpp @@ -44,8 +44,6 @@ using namespace std; //abstract sub class CComponentsItem from CComponents CComponentsItem::CComponentsItem(CComponentsForm* parent) { - cc_item_type.id = CC_ITEMTYPE_GENERIC; - cc_item_type.name = "cc_base_item"; cc_item_index = CC_NO_INDEX; cc_item_enabled = true; cc_item_selected = false; @@ -241,19 +239,6 @@ void CComponentsItem::syncSysColors() col_frame = COL_FRAME_PLUS_0; } -//returns current item element type, if no available, return -1 as unknown type -int CComponentsItem::getItemType() -{ - for(int i =0; i< (CC_ITEMTYPES) ;i++){ - if (i == cc_item_type.id) - return i; - } - - dprintf(DEBUG_DEBUG, "[CComponentsItem] %s: unknown item type requested...\n", __func__); - - return -1; -} - //returns true if current item is added to a form bool CComponentsItem::isAdded() { @@ -332,12 +317,4 @@ void CComponentsItem::setSelected(bool selected, const fb_pixel_t& sel_frame_col col_frame = cc_item_selected ? sel_frame_col : frame_col; } -void CComponentsItem::setItemName(const std::string& name) -{ - cc_item_type.name = name; -} -std::string CComponentsItem::getItemName() -{ - return cc_item_type.name; -} diff --git a/src/gui/components/cc_item.h b/src/gui/components/cc_item.h index 47baf3198..01ce69601 100644 --- a/src/gui/components/cc_item.h +++ b/src/gui/components/cc_item.h @@ -40,8 +40,6 @@ class CComponentsItem : public CComponents ///default: CC_NO_INDEX as identifer for not embedded item and default index=0 for form as main parent ///see also getIndex(), setIndex() int cc_item_index; - ///property: define of item type, see cc_types.h for possible types - cc_type_t cc_item_type; ///property: default enabled bool cc_item_enabled; ///property: default not selected @@ -102,13 +100,6 @@ class CComponentsItem : public CComponents */ virtual void kill(const fb_pixel_t& bg_color = COL_BACKGROUND_PLUS_0, bool ignore_parent = false, const int& fblayer_type = ~CC_FBDATA_TYPES); - ///get the current item type, see attribute cc_item_type above - int getItemType(); - //sets item name - void setItemName(const std::string& name); - //gets item name - std::string getItemName(); - ///syncronizes item colors with current color settings if required, NOTE: overwrites internal values! virtual void syncSysColors(); diff --git a/src/gui/components/cc_types.cpp b/src/gui/components/cc_types.cpp new file mode 100644 index 000000000..65cd28d6d --- /dev/null +++ b/src/gui/components/cc_types.cpp @@ -0,0 +1,59 @@ +/* + Based up Neutrino-GUI - Tuxbox-Project + Copyright (C) 2001 by Steffen Hehn 'McClean' + + Types and base type class for generic GUI-related components. + Copyright (C) 2012-2018, Thilo Graf 'dbt' + + License: GPL + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + +#include "cc_types.h" +#include + + +CCTypes::CCTypes() +{ + cc_item_type.id = CC_ITEMTYPE_GENERIC; + cc_item_type.name = "cc_generic_type"; +} + + +//returns current item element type, if no available, return -1 as unknown type +int CCTypes::CCTypes::getItemType() +{ + for(int i =0; i< (CC_ITEMTYPES) ;i++){ + if (i == cc_item_type.id) + return i; + } + + dprintf(DEBUG_DEBUG, "[CCTypes] %s: unknown item type requested...\n", __func__); + + return -1; +} + +//sets item name +void CCTypes::CCTypes::setItemName(const std::string& name) +{ + cc_item_type.name = name; +} + +//gets item name +std::string CCTypes::CCTypes::getItemName() +{ + return cc_item_type.name; +} diff --git a/src/gui/components/cc_types.h b/src/gui/components/cc_types.h index 8cd862312..d957ef5a1 100644 --- a/src/gui/components/cc_types.h +++ b/src/gui/components/cc_types.h @@ -2,8 +2,8 @@ Based up Neutrino-GUI - Tuxbox-Project Copyright (C) 2001 by Steffen Hehn 'McClean' - Classes for generic GUI-related components. - Copyright (C) 2012-2014, Thilo Graf 'dbt' + Types and base type class for generic GUI-related components. + Copyright (C) 2012-2018, Thilo Graf 'dbt' License: GPL @@ -17,10 +17,8 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public - License along with this program; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, - Boston, MA 02110-1301, USA. + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #ifndef __CC_TYPES__ @@ -236,5 +234,24 @@ typedef struct button_label_cc #define CC_CENTERED -2 +//abstract basic type class +class CCTypes +{ + protected: + ///property: define of item type, see cc_types.h for possible types + cc_type_t cc_item_type; + + public: + CCTypes(); + virtual ~CCTypes(){}; + + ///get the current item type, see attribute cc_item_type above + int getItemType(); + //sets item name + void setItemName(const std::string& name); + //gets item name + std::string getItemName(); + +}; #endif