1 /*********************************************************************** 2 created: 25/05/2009 3 author: Paul Turner 4 *************************************************************************/ 5 /*************************************************************************** 6 * Copyright (C) 2004 - 2009 Paul D Turner & The CEGUI Development Team 7 * 8 * Permission is hereby granted, free of charge, to any person obtaining 9 * a copy of this software and associated documentation files (the 10 * "Software"), to deal in the Software without restriction, including 11 * without limitation the rights to use, copy, modify, merge, publish, 12 * distribute, sublicense, and/or sell copies of the Software, and to 13 * permit persons to whom the Software is furnished to do so, subject to 14 * the following conditions: 15 * 16 * The above copyright notice and this permission notice shall be 17 * included in all copies or substantial portions of the Software. 18 * 19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 20 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 21 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 22 * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 23 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 24 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 25 * OTHER DEALINGS IN THE SOFTWARE. 26 ***************************************************************************/ 27 #ifndef _CEGUICentredRenderedString_h_ 28 #define _CEGUICentredRenderedString_h_ 29 30 #include "CEGUI/FormattedRenderedString.h" 31 #include <vector> 32 33 #if defined (_MSC_VER) 34 # pragma warning(push) 35 # pragma warning(disable : 4251) 36 #endif 37 38 // Start of CEGUI namespace section 39 namespace CEGUI 40 { 41 /*! 42 \brief 43 FormattedRenderedString implementation that renders the RenderedString with 44 centred formatting. 45 */ 46 class CEGUIEXPORT CentredRenderedString : public FormattedRenderedString 47 { 48 public: 49 //! Constructor. 50 CentredRenderedString(const RenderedString& string); 51 52 // implementation of base interface 53 void format(const Window* ref_wnd, const Sizef& area_size); 54 void draw(const Window* ref_wnd, GeometryBuffer& buffer, 55 const Vector2f& position, const ColourRect* mod_colours, 56 const Rectf* clip_rect) const; 57 size_t getFormattedLineCount() const; 58 float getHorizontalExtent(const Window* ref_wnd) const; 59 float getVerticalExtent(const Window* ref_wnd) const; 60 61 protected: 62 std::vector<float 63 CEGUI_VECTOR_ALLOC(float)> d_offsets; 64 }; 65 66 } // End of CEGUI namespace section 67 68 #if defined (_MSC_VER) 69 # pragma warning(pop) 70 #endif 71 72 #endif // end of guard _CEGUICentredRenderedString_h_ 73