Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members

IGUISkin.h

Go to the documentation of this file.
00001 // Copyright (C) 2002-2008 Nikolaus Gebhardt
00002 // This file is part of the "Irrlicht Engine".
00003 // For conditions of distribution and use, see copyright notice in irrlicht.h
00004 
00005 #ifndef __I_GUI_SKIN_H_INCLUDED__
00006 #define __I_GUI_SKIN_H_INCLUDED__
00007 
00008 #include "IAttributeExchangingObject.h"
00009 #include "SColor.h"
00010 #include "rect.h"
00011 
00012 namespace irr
00013 {
00014 namespace gui
00015 {
00016         class IGUIFont;
00017         class IGUISpriteBank;
00018         class IGUIElement;
00019 
00021 
00029         enum EGUI_SKIN_TYPE
00030         {
00032                 EGST_WINDOWS_CLASSIC=0,
00034                 EGST_WINDOWS_METALLIC,
00036                 EGST_BURNING_SKIN,
00037 
00039                 EGST_UNKNOWN
00040         };
00041 
00043         const c8* const GUISkinTypeNames[] =
00044         {
00045                 "windowsClassic",
00046                 "windowsMetallic",
00047                 "burning",
00048                 "unknown",
00049                 0,
00050         };
00051 
00052 
00054         enum EGUI_DEFAULT_COLOR
00055         {
00057                 EGDC_3D_DARK_SHADOW = 0,
00059                 EGDC_3D_SHADOW,
00061                 EGDC_3D_FACE,
00063                 EGDC_3D_HIGH_LIGHT,
00065                 EGDC_3D_LIGHT,
00067                 EGDC_ACTIVE_BORDER,
00069                 EGDC_ACTIVE_CAPTION,
00071                 EGDC_APP_WORKSPACE,
00073                 EGDC_BUTTON_TEXT,
00075                 EGDC_GRAY_TEXT,
00077                 EGDC_HIGH_LIGHT,
00079                 EGDC_HIGH_LIGHT_TEXT,
00081                 EGDC_INACTIVE_BORDER,
00083                 EGDC_INACTIVE_CAPTION,
00085                 EGDC_TOOLTIP,
00087                 EGDC_TOOLTIP_BACKGROUND,
00089                 EGDC_SCROLLBAR,
00091                 EGDC_WINDOW,
00093                 EGDC_WINDOW_SYMBOL,
00095                 EGDC_ICON,
00097                 EGDC_ICON_HIGH_LIGHT,
00100                 EGDC_COUNT
00101         };
00102 
00104         const c8* const GUISkinColorNames[] =
00105         {
00106                 "3DDarkShadow",
00107                 "3DShadow",
00108                 "3DFace",
00109                 "3DHighlight",
00110                 "3DLight",
00111                 "ActiveBorder",
00112                 "ActiveCaption",
00113                 "AppWorkspace",
00114                 "ButtonText",
00115                 "GrayText",
00116                 "Highlight",
00117                 "HighlightText",
00118                 "InactiveBorder",
00119                 "InactiveCaption",
00120                 "ToolTip",
00121                 "ToolTipBackground",
00122                 "ScrollBar",
00123                 "Window",
00124                 "WindowSymbol",
00125                 "Icon",
00126                 "IconHighlight",
00127                 0,
00128         };
00129 
00131         enum EGUI_DEFAULT_SIZE
00132         {
00134                 EGDS_SCROLLBAR_SIZE = 0,
00136                 EGDS_MENU_HEIGHT,
00138                 EGDS_WINDOW_BUTTON_WIDTH,
00140                 EGDS_CHECK_BOX_WIDTH,
00142                 EGDS_MESSAGE_BOX_WIDTH,
00144                 EGDS_MESSAGE_BOX_HEIGHT,
00146                 EGDS_BUTTON_WIDTH,
00148                 EGDS_BUTTON_HEIGHT,
00150                 EGDS_TEXT_DISTANCE_X,
00152                 EGDS_TEXT_DISTANCE_Y,
00155                 EGDS_COUNT
00156         };
00157 
00158 
00160         const c8* const GUISkinSizeNames[] =
00161         {
00162                 "ScrollBarSize",
00163                 "MenuHeight",
00164                 "WindowButtonWidth",
00165                 "CheckBoxWidth",
00166                 "MessageBoxWidth",
00167                 "MessageBoxHeight",
00168                 "ButtonWidth",
00169                 "ButtonHeight",
00170                 "TextDistanceX",
00171                 "TextDistanceY",
00172                 0,
00173         };
00174 
00175 
00176         enum EGUI_DEFAULT_TEXT
00177         {
00179                 EGDT_MSG_BOX_OK = 0,
00181                 EGDT_MSG_BOX_CANCEL,
00183                 EGDT_MSG_BOX_YES,
00185                 EGDT_MSG_BOX_NO,
00187                 EGDT_WINDOW_CLOSE,
00189                 EGDT_WINDOW_MAXIMIZE,
00191                 EGDT_WINDOW_MINIMIZE,
00193                 EGDT_WINDOW_RESTORE,
00194 
00196                 EGDT_COUNT
00197         };
00198 
00200         const c8* const GUISkinTextNames[] =
00201         {
00202                 "MessageBoxOkay",
00203                 "MessageBoxCancel",
00204                 "MessageBoxYes",
00205                 "MessageBoxNo",
00206                 "WindowButtonClose",
00207                 "WindowButtonMaximize",
00208                 "WindowButtonMinimize",
00209                 "WindowButtonRestore",
00210                 0,
00211         };
00212 
00214         enum EGUI_DEFAULT_ICON
00215         {
00217                 EGDI_WINDOW_MAXIMIZE = 0,
00219                 EGDI_WINDOW_RESTORE,
00221                 EGDI_WINDOW_CLOSE,
00223                 EGDI_WINDOW_MINIMIZE,
00225                 EGDI_WINDOW_RESIZE,
00227                 EGDI_CURSOR_UP,
00229                 EGDI_CURSOR_DOWN,
00231                 EGDI_CURSOR_LEFT,
00233                 EGDI_CURSOR_RIGHT,
00235                 EGDI_MENU_MORE,
00237                 EGDI_CHECK_BOX_CHECKED,
00239                 EGDI_DROP_DOWN,
00241                 EGDI_SMALL_CURSOR_UP,
00243                 EGDI_SMALL_CURSOR_DOWN,
00245                 EGDI_RADIO_BUTTON_CHECKED,
00247                 EGDI_MORE_LEFT,
00249                 EGDI_MORE_RIGHT,
00251                 EGDI_MORE_UP,
00253                 EGDI_MORE_DOWN,
00255                 EGDI_EXPAND,
00257                 EGDI_COLLAPSE,
00259                 EGDI_FILE,
00261                 EGDI_DIRECTORY,
00262 
00264                 EGDI_COUNT
00265         };
00266 
00267         const c8* const GUISkinIconNames[] =
00268         {
00269                 "windowMaximize",
00270                 "windowRestore",
00271                 "windowClose",
00272                 "windowMinimize",
00273                 "windowResize",
00274                 "cursorUp",
00275                 "cursorDown",
00276                 "cursorLeft",
00277                 "cursorRight",
00278                 "menuMore",
00279                 "checkBoxChecked",
00280                 "dropDown",
00281                 "smallCursorUp",
00282                 "smallCursorDown",
00283                 "radioButtonChecked",
00284                 "moreLeft",
00285                 "moreRight",
00286                 "moreUp",
00287                 "moreDown",
00288                 "expand",
00289                 "collapse",
00290                 "file",
00291                 "directory",
00292                 0
00293         };
00294 
00295         // Customizable fonts
00296         enum EGUI_DEFAULT_FONT
00297         {
00299                 EGDF_DEFAULT=0,
00301                 EGDF_BUTTON,
00303                 EGDF_WINDOW,
00305                 EGDF_MENU,
00307                 EGDF_TOOLTIP,
00310                 EGDF_COUNT
00311         };
00312 
00313         const c8* const GUISkinFontNames[] =
00314         {
00315                 "defaultFont",
00316                 "buttonFont",
00317                 "windowFont",
00318                 "menuFont",
00319                 "tooltipFont",
00320                 0
00321         };
00322 
00324         class IGUISkin : public virtual io::IAttributeExchangingObject
00325         {
00326         public:
00327 
00329                 virtual video::SColor getColor(EGUI_DEFAULT_COLOR color) const = 0;
00330 
00332                 virtual void setColor(EGUI_DEFAULT_COLOR which, video::SColor newColor) = 0;
00333 
00335                 virtual s32 getSize(EGUI_DEFAULT_SIZE size) const = 0;
00336 
00338 
00340                 virtual const wchar_t* getDefaultText(EGUI_DEFAULT_TEXT text) const = 0;
00341 
00343 
00345                 virtual void setDefaultText(EGUI_DEFAULT_TEXT which, const wchar_t* newText) = 0;
00346 
00348                 virtual void setSize(EGUI_DEFAULT_SIZE which, s32 size) = 0;
00349 
00351                 virtual IGUIFont* getFont(EGUI_DEFAULT_FONT which=EGDF_DEFAULT) const = 0;
00352 
00354                 virtual void setFont(IGUIFont* font, EGUI_DEFAULT_FONT which=EGDF_DEFAULT) = 0;
00355 
00357                 virtual IGUISpriteBank* getSpriteBank() const = 0;
00358 
00360                 virtual void setSpriteBank(IGUISpriteBank* bank) = 0;
00361 
00363 
00364                 virtual u32 getIcon(EGUI_DEFAULT_ICON icon) const = 0;
00365 
00367 
00371                 virtual void setIcon(EGUI_DEFAULT_ICON icon, u32 index) = 0;
00372 
00374 
00382                 virtual void draw3DButtonPaneStandard(IGUIElement* element,
00383                         const core::rect<s32>& rect,
00384                         const core::rect<s32>* clip=0) = 0;
00385 
00387 
00395                 virtual void draw3DButtonPanePressed(IGUIElement* element,
00396                         const core::rect<s32>& rect,
00397                         const core::rect<s32>* clip=0) = 0;
00398 
00400 
00411                 virtual void draw3DSunkenPane(IGUIElement* element,
00412                         video::SColor bgcolor, bool flat, bool fillBackGround,
00413                         const core::rect<s32>& rect,
00414                         const core::rect<s32>* clip=0) = 0;
00415 
00417 
00426                 virtual core::rect<s32> draw3DWindowBackground(IGUIElement* element,
00427                         bool drawTitleBar, video::SColor titleBarColor,
00428                         const core::rect<s32>& rect,
00429                         const core::rect<s32>* clip=0) = 0;
00430 
00432 
00440                 virtual void draw3DMenuPane(IGUIElement* element,
00441                         const core::rect<s32>& rect,
00442                         const core::rect<s32>* clip=0) = 0;
00443 
00445 
00451                 virtual void draw3DToolBar(IGUIElement* element,
00452                         const core::rect<s32>& rect,
00453                         const core::rect<s32>* clip=0) = 0;
00454 
00456 
00463                 virtual void draw3DTabButton(IGUIElement* element, bool active,
00464                         const core::rect<s32>& rect, const core::rect<s32>* clip=0) = 0;
00465 
00467 
00474                 virtual void draw3DTabBody(IGUIElement* element, bool border, bool background,
00475                         const core::rect<s32>& rect, const core::rect<s32>* clip=0) = 0;
00476 
00478 
00487                 virtual void drawIcon(IGUIElement* element, EGUI_DEFAULT_ICON icon,
00488                         const core::position2di position, u32 starttime=0, u32 currenttime=0,
00489                         bool loop=false, const core::rect<s32>* clip=0) = 0;
00490 
00492 
00500                 virtual void draw2DRectangle(IGUIElement* element, const video::SColor &color,
00501                         const core::rect<s32>& pos, const core::rect<s32>* clip = 0) = 0;
00502 
00504                 virtual EGUI_SKIN_TYPE getType() const { return EGST_UNKNOWN; }
00505         };
00506 
00507 
00508 } // end namespace gui
00509 } // end namespace irr
00510 
00511 #endif
00512 

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2008 by Nikolaus Gebhardt. Generated on Sun Sep 21 08:57:41 2008 by Doxygen (1.4.2)