CComponentsFooter: add new class CComponentsFooter

This commit is contained in:
2013-05-29 10:20:03 +02:00
parent 09bd2c98e9
commit e665ab18ab
6 changed files with 112 additions and 4 deletions

View File

@@ -29,6 +29,7 @@ libneutrino_gui_components_a_SOURCES = \
cc_frm_button.cpp \
cc_frm.cpp \
cc_frm_clock.cpp \
cc_frm_footer.cpp \
cc_frm_header.cpp \
cc_frm_icons.cpp \
cc_frm_window.cpp \

View File

@@ -143,7 +143,7 @@ class CComponentsHeader : public CComponentsForm
fb_pixel_t color_frame = COL_MENUCONTENT_PLUS_6, fb_pixel_t color_body = COL_MENUHEAD_PLUS_0, fb_pixel_t color_shadow = COL_MENUCONTENTDARK_PLUS_0);
CComponentsHeader(const int x_pos, const int y_pos, const int w, const int h = 0, neutrino_locale_t caption_locale = NONEXISTANT_LOCALE, const char* icon_name = NULL, const int buttons = 0,bool has_shadow = CC_SHADOW_OFF,
fb_pixel_t color_frame = COL_MENUCONTENT_PLUS_6, fb_pixel_t color_body = COL_MENUHEAD_PLUS_0, fb_pixel_t color_shadow = COL_MENUCONTENTDARK_PLUS_0);
~CComponentsHeader();
virtual ~CComponentsHeader();
virtual void setCaption(const std::string& caption);
@@ -158,7 +158,20 @@ class CComponentsHeader : public CComponentsForm
virtual void setButtonsSpace(const int buttons_space){cch_buttons_space = buttons_space;};
virtual void initCCItems();
void paint(bool do_save_bg = CC_SAVE_SCREEN_YES);
virtual void paint(bool do_save_bg = CC_SAVE_SCREEN_YES);
};
class CComponentsFooter : public CComponentsHeader
{
protected:
void initVarFooter();
public:
CComponentsFooter();
CComponentsFooter( const int x_pos, const int y_pos, const int w, const int h = 0,
const int buttons = 0,
bool has_shadow = CC_SHADOW_OFF,
fb_pixel_t color_frame = COL_MENUCONTENT_PLUS_6, fb_pixel_t color_body = COL_INFOBAR_SHADOW_PLUS_1, fb_pixel_t color_shadow = COL_MENUCONTENTDARK_PLUS_0);
};
class CComponentsWindow : public CComponentsForm

View File

@@ -0,0 +1,74 @@
/*
Based up Neutrino-GUI - Tuxbox-Project
Copyright (C) 2001 by Steffen Hehn 'McClean'
Classes for generic GUI-related components.
Copyright (C) 2013, 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, write to the
Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <global.h>
#include <neutrino.h>
#include "cc_frm.h"
using namespace std;
//-------------------------------------------------------------------------------------------------------
//sub class CComponentsFooter inherit from CComponentsHeader
CComponentsFooter::CComponentsFooter()
{
//CComponentsFooter
initVarFooter();
}
CComponentsFooter::CComponentsFooter( const int x_pos, const int y_pos, const int w, const int h, const int buttons, bool has_shadow,
fb_pixel_t color_frame, fb_pixel_t color_body, fb_pixel_t color_shadow )
{
//CComponentsFooter
initVarFooter();
x = x_pos;
y = y_pos;
width = w;
height = h;
shadow = has_shadow;
col_frame = color_frame;
col_body = color_body;
col_shadow = color_shadow;
cch_buttons = buttons;
initDefaultButtons();
initCCItems();
}
void CComponentsFooter::initVarFooter()
{
//CComponentsHeader
initVarHeader();
cc_item_type = CC_ITEMTYPE_FOOTER;
corner_rad = RADIUS_LARGE;
corner_type = CORNER_BOTTOM;
}

View File

@@ -42,6 +42,7 @@ typedef enum
CC_ITEMTYPE_FRM,
CC_ITEMTYPE_FRM_CLOCK,
CC_ITEMTYPE_FRM_HEADER,
CC_ITEMTYPE_FOOTER,
CC_ITEMTYPE_FRM_ICONFORM,
CC_ITEMTYPE_FRM_WINDOW,
CC_ITEMTYPE_LABEL,

View File

@@ -68,6 +68,7 @@ CTestMenu::CTestMenu()
form = NULL;
txt = NULL;
header = NULL;
footer = NULL;
iconform = NULL;
window = NULL;
button = NULL;
@@ -82,6 +83,7 @@ CTestMenu::~CTestMenu()
delete form;
delete txt;
delete header;
delete footer;
delete iconform;
delete window;
delete button;
@@ -452,8 +454,8 @@ int CTestMenu::exec(CMenuTarget* parent, const std::string &actionKey)
header->setCaption("Test");
// add any other button icon
// header->addHeaderButton(NEUTRINO_ICON_BUTTON_BLUE);
// header->addHeaderButton(NEUTRINO_ICON_BUTTON_GREEN);
// header->addButton(NEUTRINO_ICON_BUTTON_BLUE);
// header->addButton(NEUTRINO_ICON_BUTTON_GREEN);
// example to replace the text item with an image item
// get text x position
@@ -474,6 +476,21 @@ int CTestMenu::exec(CMenuTarget* parent, const std::string &actionKey)
header->hide();
return res;
}
else if (actionKey == "footer"){
int hh = g_Font[SNeutrinoSettings::FONT_TYPE_MENU_TITLE]->getHeight();
if (footer == NULL){
footer = new CComponentsFooter (100, 50, 500, hh, CComponentsHeader::CC_BTN_HELP | CComponentsHeader::CC_BTN_EXIT | CComponentsHeader::CC_BTN_MENU, true);
CComponentsButtonRed * btnred = new CComponentsButtonRed(10, 0, 200, hh, "Red");
btnred->doPaintBg(false);
footer->addCCItem(btnred);
}
if (!footer->isPainted())
footer->paint();
else
footer->hide();
return res;
}
else if (actionKey == "iconform"){
if (iconform == NULL)
iconform = new CComponentsIconForm();
@@ -609,6 +626,7 @@ void CTestMenu::showCCTests(CMenuWidget *widget)
widget->addItem(new CMenuForwarderNonLocalized("Form", true, NULL, this, "form"));
widget->addItem(new CMenuForwarderNonLocalized("Text", true, NULL, this, "text"));
widget->addItem(new CMenuForwarderNonLocalized("Header", true, NULL, this, "header"));
widget->addItem(new CMenuForwarderNonLocalized("Footer", true, NULL, this, "footer"));
widget->addItem(new CMenuForwarderNonLocalized("Icon-Form", true, NULL, this, "iconform"));
widget->addItem(new CMenuForwarderNonLocalized("Window", true, NULL, this, "window"));
}

View File

@@ -49,6 +49,7 @@ class CTestMenu : public CMenuTarget
CComponentsForm *form;
CComponentsText *txt;
CComponentsHeader *header;
CComponentsHeader *footer;
CComponentsIconForm *iconform;
CComponentsWindow *window;
CComponentsButton *button;