/* Based up Neutrino-GUI - Tuxbox-Project Copyright (C) 2001 by Steffen Hehn 'McClean' Extra functions based up GUI-related components. Copyright (C) 2015, 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 . */ #ifndef __CC_EXTRA_H__ #define __CC_EXTRA_H__ #include "cc_item_shapes.h" #include "cc_item_text.h" /** Paint a box on screen. * @param[in] x position * @param[in] y position * @param[in] dx witdh * @param[in] dy height * @param[in] color_body color of background, default = COL_MENUCONTENT_PLUS_0 * @param[in] radius corner radius, default = 0 * @param[in] corner_type corner type, defined in drivers/framebuffer.h * @li CORNER_NONE (default) * @li CORNER_TOP_LEFT * @li CORNER_TOP_RIGHT * @li CORNER_TOP * @li CORNER_BOTTOM_RIGHT * @li CORNER_RIGHT * @li CORNER_BOTTOM_LEFT * @li CORNER_LEFT * @li CORNER_BOTTOM * @li CORNER_ALL * @param[in] gradient_mode mode of color gradient * @li CC_COLGRAD_OFF (default) * @li CC_COLGRAD_LIGHT_2_DARK * @li CC_COLGRAD_DARK_2_LIGHT * @li CC_COLGRAD_COL_A_2_COL_B * @li CC_COLGRAD_COL_B_2_COL_A * @li CC_COLGRAD_COL_LIGHT_DARK_LIGHT * @li CC_COLGRAD_COL_DARK_LIGHT_DARK * @param[in] gradient_sec_col secondary gradient color, default = COL_MENUCONTENT_PLUS_0 * @param[in] gradient_direction mode of color gradient * @li CFrameBuffer::gradientVertical (default) * @li CFrameBuffer::gradientHorizontal * @param[in] gradient_intensity gradient intensity * @li ColorGradient::light * @li ColorGradient::normal (default) * @li CFrameBuffer::advanced * @param[in] color_frame color of frame around box, default = COL_FRAME_PLUS_0 * @param[in] shadow_mode enable/disable shadow behind box, default = CC_SHADOW_OFF * @param[in] color_shadow color of shadow, default = COL_SHADOW_PLUS_0 * * @return * True if painted * @see * @li CCDraw() * @li CComponentsShapeSquare() * @li colors.h * @li driver/framebuffer.h * @li driver/colorgradient.h */ bool paintBoxRel( const int& x, const int& y, const int& dx, const int& dy, const fb_pixel_t& color_body = COL_MENUCONTENT_PLUS_0, const int& radius = 0, const int& corner_type = CORNER_NONE, const int& gradient_mode = CC_COLGRAD_OFF, const int& gradient_sec_col = COL_MENUCONTENT_PLUS_0, const int& gradient_direction = CFrameBuffer::gradientVertical, const int& gradient_intensity = CColorGradient::normal, const int& w_frame = 0, const fb_pixel_t& color_frame = COL_FRAME_PLUS_0, int shadow_mode = CC_SHADOW_OFF, const fb_pixel_t& color_shadow = COL_SHADOW_PLUS_0); /** Paint a box on screen. * @param[in] x position * @param[in] y position * @param[in] dx witdh * @param[in] dy height * @param[in] color_body color of background, default = COL_MENUCONTENT_PLUS_0 * @param[in] radius corner radius, default = 0 * @param[in] corner_type corner type, defined in drivers/framebuffer.h * @li CORNER_NONE (default) * @li CORNER_TOP_LEFT * @li CORNER_TOP_RIGHT * @li CORNER_TOP * @li CORNER_BOTTOM_RIGHT * @li CORNER_RIGHT * @li CORNER_BOTTOM_LEFT * @li CORNER_LEFT * @li CORNER_BOTTOM * @li CORNER_ALL * @param[in] color_frame color of frame around box, default = COL_FRAME_PLUS_0 * @param[in] shadow_mode enable/disable shadow behind box, default = CC_SHADOW_OFF * @param[in] color_shadow color of shadow, default = COL_SHADOW_PLUS_0 * * @return * True if painted * @see * @li CCDraw() * @li CComponentsShapeSquare() * @li colors.h * @li driver/framebuffer.h * @li driver/colorgradient.h */ bool paintBoxRel0( const int& x, const int& y, const int& dx, const int& dy, const fb_pixel_t& color_body, const int& radius = 0, const int& corner_type = CORNER_NONE, const int& w_frame = 0, const fb_pixel_t& color_frame = COL_FRAME_PLUS_0, int shadow_mode = CC_SHADOW_OFF, const fb_pixel_t& color_shadow = COL_SHADOW_PLUS_0); /** Paint a text box on screen. * @param[in] std::string& text * @param[in] x position * @param[in] y position * @param[in] dx witdh * @param[in] dy height * @param[in] *font pointer to font type object, default = NULL, sets g_Font[SNeutrinoSettings::FONT_TYPE_MENU_INFO] as default font * @param[in] color_body color of box, default = COL_MENUCONTENT_PLUS_0 * @param[in] font_style font style * @li CComponentsText::FONT_STYLE_REGULAR (default) * @li CComponentsText::FONT_STYLE_BOLD, * @li CComponentsText::FONT_STYLE_ITALIC * @param[in] radius corner radius, default = 0 * @param[in] corner_type corner type, defined in drivers/framebuffer.h * @li CORNER_NONE (default) * @li CORNER_TOP_LEFT * @li CORNER_TOP_RIGHT * @li CORNER_TOP * @li CORNER_BOTTOM_RIGHT * @li CORNER_RIGHT * @li CORNER_BOTTOM_LEFT * @li CORNER_LEFT * @li CORNER_BOTTOM * @li CORNER_ALL * @param[in] gradient_mode mode of color gradient * @li CC_COLGRAD_OFF (default) * @li CC_COLGRAD_LIGHT_2_DARK * @li CC_COLGRAD_DARK_2_LIGHT * @li CC_COLGRAD_COL_A_2_COL_B * @li CC_COLGRAD_COL_B_2_COL_A * @li CC_COLGRAD_COL_LIGHT_DARK_LIGHT * @li CC_COLGRAD_COL_DARK_LIGHT_DARK * @param[in] gradient_sec_col secondary gradient color, default = COL_MENUCONTENT_PLUS_0 * @param[in] gradient_direction mode of color gradient * @li CFrameBuffer::gradientVertical (default) * @li CFrameBuffer::gradientHorizontal * @param[in] gradient_intensity gradient intensity * @li ColorGradient::light * @li ColorGradient::normal (default) * @li CFrameBuffer::advanced * @param[in] color_frame color of frame around box, default = COL_FRAME_PLUS_0 * @param[in] shadow_mode enable/disable shadow behind box, default = CC_SHADOW_OFF * @param[in] color_shadow color of shadow, default = COL_SHADOW_PLUS_0 * * @return * True if painted * @see * @li CCDraw() * @li CComponentsText() * @li CComponentsLabel() * @li CTextBox() * @li colors.h * @li driver/framebuffer.h * @li driver/colorgradient.h */ bool paintTextBoxRel( const std::string& text, const int& x, const int& y, const int& dx, const int& dy = 0, Font *font = NULL, const int& mode = CTextBox::AUTO_WIDTH, const int& font_style = CComponentsText::FONT_STYLE_REGULAR, const fb_pixel_t& color_text = COL_MENUCONTENT_TEXT, const fb_pixel_t& color_body = COL_MENUCONTENT_PLUS_0, const int& radius = 0, const int& corner_type = CORNER_NONE, const int& gradient_mode = CC_COLGRAD_OFF, const int& gradient_sec_col = COL_MENUCONTENT_PLUS_0, const int& gradient_direction = CFrameBuffer::gradientVertical, const int& gradient_intensity = CColorGradient::normal, const fb_pixel_t& color_frame = COL_FRAME_PLUS_0, int shadow_mode = CC_SHADOW_OFF, const fb_pixel_t& color_shadow = COL_SHADOW_PLUS_0); /** Paint an image on screen. * @param[in] std::string& full path or filename * @param[in] x position * @param[in] y position * @param[in] dx witdh, default = 0 (no scale) * @param[in] dy height, default = 0 (no scale) * @param[in] transparent image transparency mode * @li CFrameBuffer::TM_EMPTY @li CFrameBuffer::TM_NONE (default) @li CFrameBuffer::TM_BLACK @li CFrameBuffer::TM_INI * @param[in] color_body color of background, default = 0 (no background) * @param[in] radius corner radius of background, default = 0 * @param[in] corner_type corner type of background, defined in drivers/framebuffer.h * @li CORNER_NONE (default) * @li CORNER_TOP_LEFT * @li CORNER_TOP_RIGHT * @li CORNER_TOP * @li CORNER_BOTTOM_RIGHT * @li CORNER_RIGHT * @li CORNER_BOTTOM_LEFT * @li CORNER_LEFT * @li CORNER_BOTTOM * @li CORNER_ALL * @param[in] gradient_mode mode of background color gradient * @li CC_COLGRAD_OFF (default) * @li CC_COLGRAD_LIGHT_2_DARK * @li CC_COLGRAD_DARK_2_LIGHT * @li CC_COLGRAD_COL_A_2_COL_B * @li CC_COLGRAD_COL_B_2_COL_A * @li CC_COLGRAD_COL_LIGHT_DARK_LIGHT * @li CC_COLGRAD_COL_DARK_LIGHT_DARK * @param[in] gradient_sec_col secondary gradient background color, default = COL_MENUCONTENT_PLUS_0 * @param[in] gradient_direction background color gradient direction * @li CFrameBuffer::gradientVertical (default) * @li CFrameBuffer::gradientHorizontal * @param[in] gradient_intensity background gradient intensity * @li ColorGradient::light * @li ColorGradient::normal (default) * @li CFrameBuffer::advanced * @param[in] color_frame color of frame around box, default = COL_FRAME_PLUS_0 * @param[in] shadow_mode enable/disable shadow behind box, default = CC_SHADOW_OFF * @param[in] color_shadow color of shadow, default = COL_SHADOW_PLUS_0 * * @return * True if painted * @see * @li icons.h * @li colors.h * @li CComponentsPicture() * @li driver/framebuffer.h * @li driver/colorgradient.h */ bool paintImage( const std::string& image_name, const int& x, const int& y, const int& dx = 0, const int& dy = 0, const int& transparent = CFrameBuffer::TM_NONE, const fb_pixel_t& color_body = 0, const int& radius = 0, const int& corner_type = CORNER_NONE, const fb_pixel_t& color_frame = COL_FRAME_PLUS_0, int shadow_mode = CC_SHADOW_OFF, const fb_pixel_t& color_shadow = COL_SHADOW_PLUS_0); #endif