📄 falstatictext.h
字号:
/***********************************************************************
filename: FalStaticText.h
created: Tue Jul 5 2005
author: Paul D Turner <paul@cegui.org.uk>
*************************************************************************/
/***************************************************************************
* Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
***************************************************************************/
#ifndef _FalStaticText_h_
#define _FalStaticText_h_
#include "FalModule.h"
#include "FalStatic.h"
#include "FalStaticTextProperties.h"
#include <vector>
#if defined(_MSC_VER)
# pragma warning(push)
# pragma warning(disable : 4251)
#endif
// Start of CEGUI namespace section
namespace CEGUI
{
/*!
\brief
StaticText class for the FalagardBase module.
This class requires LookNFeel to be assigned. The LookNFeel should provide the following:
States:
- Enabled - basic rendering for enabled state.
- Disabled - basic rendering for disabled state.
- EnabledFrame - frame rendering for enabled state
- DisabledFrame - frame rendering for disabled state.
- WithFrameEnabledBackground - backdrop rendering for enabled state with frame enabled.
- WithFrameDisabledBackground - backdrop rendering for disabled state with frame enabled.
- NoFrameEnabledBackground - backdrop rendering for enabled state with frame disabled.
- NoFrameDisabledBackground - backdrop rendering for disabled state with frame disabled.
Named Areas (missing areas will default to 'WithFrameTextRenderArea'):
WithFrameTextRenderArea
WithFrameTextRenderAreaHScroll
WithFrameTextRenderAreaVScroll
WithFrameTextRenderAreaHVScroll
NoFrameTextRenderArea
NoFrameTextRenderAreaHScroll
NoFrameTextRenderAreaVScroll
NoFrameTextRenderAreaHVScroll
*/
class FALAGARDBASE_API FalagardStaticText : public FalagardStatic
{
public:
static const utf8 TypeName[]; //!< type name for this widget.
/*************************************************************************
Formatting Enumerations
*************************************************************************/
/*!
\brief
Enumeration of horizontal formatting options for falagard static text widgets
*/
enum HorzFormatting
{
LeftAligned, //!< Text is output as a single line of text with the first character aligned with the left edge of the widget.
RightAligned, //!< Text is output as a single line of text with the last character aligned with the right edge of the widget.
HorzCentred, //!< Text is output as a single line of text horizontally centred within the widget.
HorzJustified, //!< Text is output as a single line of text with the first and last characters aligned with the edges of the widget.
WordWrapLeftAligned, //!< Text is output as multiple word-wrapped lines of text with the first character of each line aligned with the left edge of the widget.
WordWrapRightAligned, //!< Text is output as multiple word-wrapped lines of text with the last character of each line aligned with the right edge of the widget.
WordWrapCentred, //!< Text is output as multiple word-wrapped lines of text with each line horizontally centered within the widget.
WordWrapJustified //!< Text is output as multiple word-wrapped lines of text with the first and last characters of each line aligned with the edges of the widget.
};
/*!
\brief
Enumeration of vertical formatting options for a falagard static text widgets
*/
enum VertFormatting
{
TopAligned, //!< Text is output with the top of first line of text aligned with the top edge of the widget.
BottomAligned, //!< Text is output with the bottom of last line of text aligned with the bottom edge of the widget.
VertCentred //!< Text is output vertically centred within the widget.
};
/*************************************************************************
Child Widget name suffix constants
*************************************************************************/
static const String VertScrollbarNameSuffix; //!< Widget name suffix for the vertical scrollbar component.
static const String HorzScrollbarNameSuffix; //!< Widget name suffix for the horizontal scrollbar component.
/************************************************************************
Constructor / Destructor
*************************************************************************/
/*!
\brief
Constructor
*/
FalagardStaticText(const String& type);
/************************************************************************
Scrolled text implementation
*************************************************************************/
/*!
\brief
Return a ColourRect object containing the colours used when rendering this widget.
*/
ColourRect getTextColours(void) const {return d_textCols;}
/*!
\brief
Return the current horizontal formatting option set for this widget.
*/
HorzFormatting getHorizontalFormatting(void) const {return d_horzFormatting;}
/*!
\brief
Return the current vertical formatting option set for this widget.
*/
VertFormatting getVerticalFormatting(void) const {return d_vertFormatting;}
/*!
\brief
Sets the colours to be applied when rendering the text.
*/
void setTextColours(const ColourRect& colours);
/*!
\brief
Set the vertical formatting required for the text.
*/
void setVerticalFormatting(VertFormatting v_fmt);
/*!
\brief
Set the horizontal formatting required for the text.
*/
void setHorizontalFormatting(HorzFormatting h_fmt);
/*!
\brief
Return whether the vertical scroll bar is set to be shown if needed.
*/
bool isVerticalScrollbarEnabled(void) const {return d_enableVertScrollbar;}
/*!
\brief
Return whether the horizontal scroll bar is set to be shown if needed.
*/
bool isHorizontalScrollbarEnabled(void) const {return d_enableHorzScrollbar;}
/*!
\brief
Set whether the vertical scroll bar will be shown if needed.
*/
void setVerticalScrollbarEnabled(bool setting);
/*!
\brief
Set whether the horizontal scroll bar will be shown if needed.
*/
void setHorizontalScrollbarEnabled(bool setting);
void render(void);
protected:
// overridden from FalagardStatic base class
void onLookNFeelAssigned();
void onLookNFeelUnassigned();
// text field with scrollbars methods
void renderScrolledText(void);
void configureScrollbars(void);
Scrollbar* getVertScrollbar(void) const;
Scrollbar* getHorzScrollbar(void) const;
Rect getTextRenderArea(void) const;
Size getDocumentSize(const Rect& renderArea) const;
// overridden event handlers
bool onTextChanged(const EventArgs& e);
bool onSized(const EventArgs& e);
bool onFontChanged(const EventArgs& e);
bool onMouseWheel(const EventArgs& e);
// event subscribers
bool handleScrollbarChange(const EventArgs& e);
// properties
static FalagardStaticTextProperties::TextColours d_textColoursProperty;
static FalagardStaticTextProperties::VertFormatting d_vertFormattingProperty;
static FalagardStaticTextProperties::HorzFormatting d_horzFormattingProperty;
static FalagardStaticTextProperties::VertScrollbar d_vertScrollbarProperty;
static FalagardStaticTextProperties::HorzScrollbar d_horzScrollbarProperty;
// implementation data
HorzFormatting d_horzFormatting; //!< Horizontal formatting to be applied to the text.
VertFormatting d_vertFormatting; //!< Vertical formatting to be applied to the text.
ColourRect d_textCols; //!< Colours used when rendering the text.
bool d_enableVertScrollbar; //!< true if vertical scroll bar is enabled.
bool d_enableHorzScrollbar; //!< true if horizontal scroll bar is enabled.
typedef std::vector<Event::Connection> ConnectionList;
ConnectionList d_connections;
};
} // End of CEGUI namespace section
#if defined(_MSC_VER)
# pragma warning(pop)
#endif
#endif // end of guard _FalStaticText_h_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -