# CEGUIFalWidgetComponent.h

    00001 /************************************************************************
    00002     filename:   CEGUIFalWidgetComponent.h
    00003     created:    Mon Jun 13 2005
    00004     author:     Paul D Turner <paul@cegui.org.uk>
    00005 *************************************************************************/
    00006 /*************************************************************************
    00007     Crazy Eddie's GUI System (http://www.cegui.org.uk)
    00008     Copyright (C)2004 - 2005 Paul D Turner (paul@cegui.org.uk)
    00009
    00010     This library is free software; you can redistribute it and/or
    00011     modify it under the terms of the GNU Lesser General Public
    00012     License as published by the Free Software Foundation; either
    00013     version 2.1 of the License, or (at your option) any later version.
    00014
    00015     This library is distributed in the hope that it will be useful,
    00016     but WITHOUT ANY WARRANTY; without even the implied warranty of
    00017     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00018     Lesser General Public License for more details.
    00019
    00020     You should have received a copy of the GNU Lesser General Public
    00021     License along with this library; if not, write to the Free Software
    00022     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    00023 *************************************************************************/
    00024 #ifndef _CEGUIFalWidgetComponent_h_
    00025 #define _CEGUIFalWidgetComponent_h_
    00026
    00027 #include "falagard/CEGUIFalDimensions.h"
    00028 #include "falagard/CEGUIFalPropertyInitialiser.h"
    00029 #include "CEGUIWindow.h"
    00030
    00031 #if defined(_MSC_VER)
    00032 #       pragma warning(push)
    00033 #       pragma warning(disable : 4251)
    00034 #endif
    00035
    00036 // Start of CEGUI namespace section
    00037 namespace CEGUI
    00038 {
    00046     class CEGUIEXPORT WidgetComponent
    00047     {
    00048     public:
    00049         WidgetComponent() {}
    00050         WidgetComponent(const String& type, const String& look, const String& suffix);
    00051
    00056         void create(Window& parent) const;
    00057
    00058         const ComponentArea& getComponentArea() const;
    00059         void setComponentArea(const ComponentArea& area);
    00060
    00061         const String& getBaseWidgetType() const;
    00062         void setBaseWidgetType(const String& type);
    00063
    00064         const String& getWidgetLookName() const;
    00065         void setWidgetLookName(const String& look);
    00066
    00067         const String& getWidgetNameSuffix() const;
    00068         void setWidgetNameSuffix(const String& suffix);
    00069
    00070         VerticalAlignment getVerticalWidgetAlignemnt() const;
    00071         void setVerticalWidgetAlignment(VerticalAlignment alignment);
    00072
    00073         HorizontalAlignment getHorizontalWidgetAlignemnt() const;
    00074         void setHorizontalWidgetAlignemnt(HorizontalAlignment alignment);
    00075
    00076         void addPropertyInitialiser(const PropertyInitialiser& initialiser);
    00077         void clearPropertyInitialisers();
    00078
    00079         void layout(const Window& owner) const;
    00080
    00091         void writeXMLToStream(OutStream& out_stream) const;
    00092
    00093     private:
    00094         typedef std::vector<PropertyInitialiser> PropertiesList;
    00095
    00096         ComponentArea   d_area;
    00097         String   d_baseType;
    00098         String   d_imageryName;
    00099         String   d_nameSuffix;
    00100         VerticalAlignment    d_vertAlign;
    00101         HorizontalAlignment  d_horzAlign;
    00102         PropertiesList  d_properties;
    00103     };
    00104
    00105 } // End of  CEGUI namespace section
    00106
    00107
    00108 #if defined(_MSC_VER)
    00109 #       pragma warning(pop)
    00110 #endif
    00111
    00112 #endif  // end of guard _CEGUIFalWidgetComponent_h_