[Python-ogre-commit] SF.net SVN: python-ogre:[790] trunk/python-ogre
Brought to you by:
andy_miller,
roman_yakovenko
|
From: <and...@us...> - 2008-11-14 07:08:27
|
Revision: 790
http://python-ogre.svn.sourceforge.net/python-ogre/?rev=790&view=rev
Author: andy_miller
Date: 2008-11-14 07:08:16 +0000 (Fri, 14 Nov 2008)
Log Message:
-----------
QuickGui updated, NXOgre generator for 0.22, removed info message from doc generation
Modified Paths:
--------------
trunk/python-ogre/PythonOgreConfig_nt.py
trunk/python-ogre/ThirdParty/ogreal/OgreALPrereqs.h
trunk/python-ogre/ThirdParty/quickgui/QuickGUIButton.cpp
trunk/python-ogre/ThirdParty/quickgui/QuickGUICharacter.cpp
trunk/python-ogre/ThirdParty/quickgui/QuickGUICharacter.h
trunk/python-ogre/ThirdParty/quickgui/QuickGUIExportDLL.h
trunk/python-ogre/ThirdParty/quickgui/QuickGUIForwardDeclaredDesc.cpp
trunk/python-ogre/ThirdParty/quickgui/QuickGUIForwardDeclaredDesc.h
trunk/python-ogre/ThirdParty/quickgui/QuickGUILabel.cpp
trunk/python-ogre/ThirdParty/quickgui/QuickGUILabel.h
trunk/python-ogre/ThirdParty/quickgui/QuickGUIListTextItem.cpp
trunk/python-ogre/ThirdParty/quickgui/QuickGUIListTextItem.h
trunk/python-ogre/ThirdParty/quickgui/QuickGUIMenu.cpp
trunk/python-ogre/ThirdParty/quickgui/QuickGUIMenuLabel.cpp
trunk/python-ogre/ThirdParty/quickgui/QuickGUIMenuLabel.h
trunk/python-ogre/ThirdParty/quickgui/QuickGUIProgressBar.cpp
trunk/python-ogre/ThirdParty/quickgui/QuickGUIProgressBar.h
trunk/python-ogre/ThirdParty/quickgui/QuickGUISerialBase.h
trunk/python-ogre/ThirdParty/quickgui/QuickGUISerialReader.cpp
trunk/python-ogre/ThirdParty/quickgui/QuickGUISerialReader.h
trunk/python-ogre/ThirdParty/quickgui/QuickGUISerialWriter.cpp
trunk/python-ogre/ThirdParty/quickgui/QuickGUISerialWriter.h
trunk/python-ogre/ThirdParty/quickgui/QuickGUIStringConverter.cpp
trunk/python-ogre/ThirdParty/quickgui/QuickGUIStringConverter.h
trunk/python-ogre/ThirdParty/quickgui/QuickGUITab.cpp
trunk/python-ogre/ThirdParty/quickgui/QuickGUITab.h
trunk/python-ogre/ThirdParty/quickgui/QuickGUITabPage.cpp
trunk/python-ogre/ThirdParty/quickgui/QuickGUITabPage.h
trunk/python-ogre/ThirdParty/quickgui/QuickGUIText.cpp
trunk/python-ogre/ThirdParty/quickgui/QuickGUIText.h
trunk/python-ogre/ThirdParty/quickgui/QuickGUITextAlignment.h
trunk/python-ogre/ThirdParty/quickgui/QuickGUITextArea.cpp
trunk/python-ogre/ThirdParty/quickgui/QuickGUITextArea.h
trunk/python-ogre/ThirdParty/quickgui/QuickGUITextBox.cpp
trunk/python-ogre/ThirdParty/quickgui/QuickGUITextBox.h
trunk/python-ogre/ThirdParty/quickgui/QuickGUITitleBar.cpp
trunk/python-ogre/ThirdParty/quickgui/QuickGUITitleBar.h
trunk/python-ogre/ThirdParty/quickgui/QuickGUIToolBar.cpp
trunk/python-ogre/ThirdParty/quickgui/QuickGUIWindow.cpp
trunk/python-ogre/ThirdParty/quickgui/QuickGUIWindow.h
trunk/python-ogre/code_generators/common_utils/extract_documentation.py
trunk/python-ogre/code_generators/nxogre/generate_code.py
trunk/python-ogre/code_generators/nxogre/python_nxogre_aliases.h
trunk/python-ogre/code_generators/nxogre/python_nxogre_sizeof.h
trunk/python-ogre/demos/qgui/Demo_QuickGUI01.py
trunk/python-ogre/demos/theora/demo_video.py
trunk/python-ogre/environment.py
trunk/python-ogre/packages_2.5/ogre/gui/CEGUI/__init__.py
trunk/python-ogre/packages_2.5/ogre/renderer/OGRE/sf_OIS.py
Removed Paths:
-------------
trunk/python-ogre/generated/
Modified: trunk/python-ogre/PythonOgreConfig_nt.py
===================================================================
--- trunk/python-ogre/PythonOgreConfig_nt.py 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/PythonOgreConfig_nt.py 2008-11-14 07:08:16 UTC (rev 790)
@@ -62,8 +62,8 @@
PATH_plib = os.path.join(PATH_THIRDPARTY, 'plib')
PATH_et = os.path.join(PATH_THIRDPARTY, 'et')
PATH_caelum = os.path.join(PATH_THIRDPARTY, 'caelum')
-PATH_NxOgre= os.path.join(BASE_DIR, 'nxogre', 'NxOgre')
-PATH_NxOgre= os.path.join(PATH_THIRDPARTY, 'nxogre')
+PATH_NxOgre= os.path.join(BASE_DIR, 'nxogre_0.22')
+# # # PATH_NxOgre= os.path.join(PATH_THIRDPARTY, 'nxogre')
PATH_NxOgre_09= os.path.join(PATH_THIRDPARTY, 'nxogre_0.9')
PATH_watermesh= os.path.join(PATH_THIRDPARTY, 'watermesh')
PATH_noise= os.path.join(PATH_THIRDPARTY, 'noise')
@@ -162,7 +162,7 @@
PATH_INCLUDE_quickgui = PATH_quickgui
PATH_INCLUDE_NxOgre_09= PATH_NxOgre_09
PATH_INCLUDE_NxOgre= os.path.join(PATH_NxOgre, 'include')
-PATH_INCLUDE_NxOgre= PATH_NxOgre
+# # # PATH_INCLUDE_NxOgre= PATH_NxOgre
PATH_INCLUDE_Bullet= os.path.join(PATH_Bullet, 'src')
PATH_INCLUDE_freetype= os.path.join(PATH_INCLUDE_quickgui,'FreeType2.3.5')
PATH_INCLUDE_betagui = PATH_betagui
Modified: trunk/python-ogre/ThirdParty/ogreal/OgreALPrereqs.h
===================================================================
--- trunk/python-ogre/ThirdParty/ogreal/OgreALPrereqs.h 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/ogreal/OgreALPrereqs.h 2008-11-14 07:08:16 UTC (rev 790)
@@ -42,33 +42,15 @@
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
# include "AL/al.h"
# include "AL/alc.h"
-// # include "xram.h"
-// # if OGRE_COMPILER == OGRE_COMPILER_MSVC
-// # ifdef OGREAL_EXPORT
-// # define OgreAL_Export __declspec(dllexport)
-// # else
-// # define OgreAL_Export __declspec(dllimport)
-// # endif
-// # else
- # define OgreAL_Export
-// # endif
+ # define OgreAL_Export
#elif OGRE_COMPILER == OGRE_COMPILER_GNUC
# include "al.h"
# include "alc.h"
-// # if defined(OGREAL_EXPORT) && OGRE_COMP_VER >= 400
-// # define OgreAL_Export __attribute__ ((visibility("default")))
-// # else
- # define OgreAL_Export
- # endif
- // fake EAX/X-RAM
- typedef ALenum (*EAXGetBufferMode)(ALuint buffer, ALint *pReserved);
- typedef ALboolean (*EAXSetBufferMode)(ALsizei n, ALuint *buffers, ALint value);
-// #else // Other Compilers
-// # include "al.h"
-// # include "alc.h"
-// # include "xram.h"
-// # define OgreAL_Export
-// #endif
+ # define OgreAL_Export
+ #endif
+
+ typedef ALenum (*EAXGetBufferMode)(ALuint buffer, ALint *pReserved);
+ typedef ALboolean (*EAXSetBufferMode)(ALsizei n, ALuint *buffers, ALint value);
#ifndef OGREAL_THREADED
# define OGREAL_THREADED 0
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUIButton.cpp
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUIButton.cpp 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUIButton.cpp 2008-11-14 07:08:16 UTC (rev 790)
@@ -21,6 +21,7 @@
ButtonDesc::ButtonDesc() :
LabelDesc()
{
+ textDesc.horizontalTextAlignment = TEXT_ALIGNMENT_HORIZONTAL_CENTER;
}
void ButtonDesc::serialize(SerialBase* b)
@@ -42,6 +43,8 @@
{
Label::_initialize(d);
+ ButtonDesc* bd = dynamic_cast<ButtonDesc*>(d);
+
mDesc = dynamic_cast<LabelDesc*>(mWidgetDesc);
setSkinType(d->skinTypeName);
@@ -68,33 +71,7 @@
void Button::onDraw()
{
- Brush* brush = Brush::getSingletonPtr();
-
- brush->setFilterMode(mDesc->brushFilterMode);
-
- SkinType* st = mSkinType;
- if(!mWidgetDesc->enabled && mWidgetDesc->disabledSkinType != "")
- st = SkinTypeManager::getSingleton().getSkinType(getClass(),mWidgetDesc->disabledSkinType);
-
- brush->drawSkinElement(Rect(mTexturePosition,mWidgetDesc->dimensions.size),st->getSkinElement(mSkinElementName));
-
- Ogre::ColourValue prevColor = brush->getColour();
- Rect prevClipRegion = brush->getClipRegion();
-
- Rect clipRegion;
- clipRegion.size =
- Size(
- mWidgetDesc->dimensions.size.width - mDesc->padding[PADDING_RIGHT] - mDesc->padding[PADDING_LEFT],
- mWidgetDesc->dimensions.size.height - mDesc->padding[PADDING_BOTTOM] - mDesc->padding[PADDING_TOP]);
- clipRegion.position = mTexturePosition;
- clipRegion.translate(Point(mDesc->padding[PADDING_LEFT],mDesc->padding[PADDING_TOP]));
-
- brush->setClipRegion(prevClipRegion.getIntersection(clipRegion));
-
- mText->draw(clipRegion.position);
-
- brush->setClipRegion(prevClipRegion);
- brush->setColor(prevColor);
+ Label::onDraw();
}
void Button::onMouseEnter(const EventArgs& args)
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUICharacter.cpp
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUICharacter.cpp 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUICharacter.cpp 2008-11-14 07:08:16 UTC (rev 790)
@@ -3,7 +3,8 @@
namespace QuickGUI
{
- Character::Character() {};
+ Character::Character( void ) {} ;
+
Character::Character(Ogre::UTFString::code_point cp, Ogre::FontPtr fp, Ogre::ColourValue cv) :
codePoint(cp),
fontPtr(fp),
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUICharacter.h
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUICharacter.h 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUICharacter.h 2008-11-14 07:08:16 UTC (rev 790)
@@ -56,9 +56,10 @@
/// UV coords of glyph, retreived from Font texture generated by Ogre::Font class.
UVRect uvCoords;
+ Character();
protected:
- Character(void);
+
bool mHighlighted;
bool mWhiteSpace;
};
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUIExportDLL.h
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUIExportDLL.h 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUIExportDLL.h 2008-11-14 07:08:16 UTC (rev 790)
@@ -4,19 +4,19 @@
#include "OgrePlatform.h"
#ifndef _QuickGUIExport
- #if defined(OGRE_PLATFORM)
- #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 && !defined ( __MINGW32__ )
- # if defined( QUICKGUI_EXPORTS )
- # define _QuickGUIExport __declspec( dllexport )
- # else
- # define _QuickGUIExport __declspec( dllimport )
- # endif
- #else
- # define _QuickGUIExport
- #endif
- #else
+// #if defined(OGRE_PLATFORM)
+// #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 && !defined ( __MINGW32__ )
+// # if defined( QUICKGUI_EXPORTS )
+// # define _QuickGUIExport __declspec( dllexport )
+// # else
+// # define _QuickGUIExport __declspec( dllimport )
+// # endif
+// #else
+// # define _QuickGUIExport
+// #endif
+// #else
#define _QuickGUIExport
- #endif
+// #endif
#endif
#endif
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUIForwardDeclaredDesc.cpp
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUIForwardDeclaredDesc.cpp 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUIForwardDeclaredDesc.cpp 2008-11-14 07:08:16 UTC (rev 790)
@@ -10,21 +10,17 @@
TabPageDesc::TabPageDesc() :
PanelDesc()
{
- for(int i = 0; i < PADDING_COUNT; ++i)
- padding[i] = 5.0;
-
supportScrollBars = false;
tabFrontWidth = -1;
+ verticalTextAlignment = TEXT_ALIGNMENT_VERTICAL_CENTER;
}
void TabPageDesc::serialize(SerialBase* b)
{
PanelDesc::serialize(b);
- for(int i = 0; i < PADDING_COUNT; ++i)
- b->IO(StringConverter::toString(static_cast<Padding>(i)),&padding[i]);
-
b->IO("TabFrontWidth",&tabFrontWidth);
+ b->IO("VerticalTextAlignment",&verticalTextAlignment);
}
TabControlDesc::TabControlDesc() :
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUIForwardDeclaredDesc.h
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUIForwardDeclaredDesc.h 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUIForwardDeclaredDesc.h 2008-11-14 07:08:16 UTC (rev 790)
@@ -37,8 +37,8 @@
public:
TabPageDesc();
- /// Describes the Padding around Tab's Text
- float padding[PADDING_COUNT];
+ /// Vertical alignment of text within this widget's client area.
+ VerticalTextAlignment verticalTextAlignment;
/// Describes the Text used in this Label
TextDesc textDesc;
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUILabel.cpp
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUILabel.cpp 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUILabel.cpp 2008-11-14 07:08:16 UTC (rev 790)
@@ -17,18 +17,14 @@
LabelDesc::LabelDesc() :
WidgetDesc()
{
- for(int i = 0; i < PADDING_COUNT; ++i)
- {
- padding[i] = 5.0;
- }
+ verticalTextAlignment = TEXT_ALIGNMENT_VERTICAL_CENTER;
}
void LabelDesc::serialize(SerialBase* b)
{
WidgetDesc::serialize(b);
- for(int i = 0; i < PADDING_COUNT; ++i)
- b->IO(StringConverter::toString(static_cast<Padding>(i)),&padding[i]);
+ b->IO("VerticalTextAlignment",&verticalTextAlignment);
textDesc.serialize(b);
}
@@ -59,29 +55,34 @@
// modify it directly, which is used for serialization.
mDesc->textDesc = ld->textDesc;
+ // Store pointer to SkinType
+ SkinType* st = mSkinType;
+ if(!mWidgetDesc->enabled && mWidgetDesc->disabledSkinType != "")
+ {
+ st = SkinTypeManager::getSingleton().getSkinType(getClass(),mWidgetDesc->disabledSkinType);
+ }
+
+ SkinElement* se = st->getSkinElement(mSkinElementName);
+
if(mDesc->dimensions.size.width == 0)
{
if(mDesc->textDesc.segments.empty())
mDesc->dimensions.size.width = 50;
else
- mDesc->dimensions.size.width = ld->padding[PADDING_LEFT] + mDesc->textDesc.getTextWidth() + ld->padding[PADDING_RIGHT];
+ mDesc->dimensions.size.width = se->getBorderThickness(BORDER_LEFT) + mDesc->textDesc.getTextWidth() + se->getBorderThickness(BORDER_RIGHT);
}
if(mDesc->dimensions.size.height == 0)
{
if(mDesc->textDesc.segments.empty())
mDesc->dimensions.size.height = 20;
else
- mDesc->dimensions.size.height = ld->padding[PADDING_TOP] + mDesc->textDesc.getTextHeight() + ld->padding[PADDING_BOTTOM];
+ mDesc->dimensions.size.height = se->getBorderThickness(BORDER_TOP) + mDesc->textDesc.getTextHeight() + se->getBorderThickness(BORDER_BOTTOM);
}
- mDesc->textDesc.allottedWidth = ld->dimensions.size.width - (ld->padding[PADDING_LEFT] + ld->padding[PADDING_RIGHT]);
+ mDesc->verticalTextAlignment = ld->verticalTextAlignment;
+ mDesc->textDesc.allottedWidth = ld->dimensions.size.width - (se->getBorderThickness(BORDER_LEFT) + se->getBorderThickness(BORDER_RIGHT));
mText = new Text(mDesc->textDesc);
- setPadding(PADDING_BOTTOM,ld->padding[PADDING_BOTTOM]);
- setPadding(PADDING_LEFT,ld->padding[PADDING_LEFT]);
- setPadding(PADDING_RIGHT,ld->padding[PADDING_RIGHT]);
- setPadding(PADDING_TOP,ld->padding[PADDING_TOP]);
-
mCurrentFontName = Text::getFirstAvailableFont()->getName();
mCurrentColourValue = Ogre::ColourValue::White;
}
@@ -100,12 +101,9 @@
return "Label";
}
- float Label::getPadding(Padding p)
+ HorizontalTextAlignment Label::getHorizontalTextAlignment()
{
- if(p == PADDING_COUNT)
- throw Exception(Exception::ERR_INVALIDPARAMS,"PADDING_COUNT is not a valid parameter!","Label::getPadding");
-
- return mDesc->padding[p];
+ return mText->getHorizontalTextAlignment();
}
Ogre::UTFString Label::getText()
@@ -118,6 +116,11 @@
return mText->getVerticalLineSpacing();
}
+ VerticalTextAlignment Label::getVerticalTextAlignment()
+ {
+ return mDesc->verticalTextAlignment;
+ }
+
void Label::onDraw()
{
Brush* brush = Brush::getSingletonPtr();
@@ -135,16 +138,35 @@
Ogre::ColourValue prevColor = brush->getColour();
Rect prevClipRegion = brush->getClipRegion();
- Rect clipRegion;
- clipRegion.size =
- Size(
- mWidgetDesc->dimensions.size.width - mDesc->padding[PADDING_RIGHT] - mDesc->padding[PADDING_LEFT],
- mWidgetDesc->dimensions.size.height - mDesc->padding[PADDING_BOTTOM] - mDesc->padding[PADDING_TOP]);
- clipRegion.position = mTexturePosition;
- clipRegion.translate(Point(mDesc->padding[PADDING_LEFT],mDesc->padding[PADDING_TOP]));
+ // Center Text Vertically
+ float textHeight = mText->getTextHeight();
+ float yPos = 0;
+
+ switch(mDesc->verticalTextAlignment)
+ {
+ case TEXT_ALIGNMENT_VERTICAL_BOTTOM:
+ yPos = mDesc->dimensions.size.height - st->getSkinElement(mSkinElementName)->getBorderThickness(BORDER_BOTTOM) - textHeight;
+ break;
+ case TEXT_ALIGNMENT_VERTICAL_CENTER:
+ yPos = (mDesc->dimensions.size.height / 2.0) - (textHeight / 2.0);
+ break;
+ case TEXT_ALIGNMENT_VERTICAL_TOP:
+ yPos = st->getSkinElement(mSkinElementName)->getBorderThickness(BORDER_TOP);
+ break;
+ }
+
+ // Clip to client dimensions
+ Rect clipRegion(mClientDimensions);
+ clipRegion.translate(mTexturePosition);
+
brush->setClipRegion(prevClipRegion.getIntersection(clipRegion));
+ // Adjust Rect to Text drawing region
+ clipRegion = mClientDimensions;
+ clipRegion.position.y = yPos;
+ clipRegion.translate(mTexturePosition);
+
mText->draw(clipRegion.position);
brush->setClipRegion(prevClipRegion);
@@ -225,14 +247,17 @@
redraw();
}
- void Label::setPadding(Padding p, float distance)
+ void Label::setHorizontalTextAlignment(HorizontalTextAlignment a)
{
- if(p == PADDING_COUNT)
- throw Exception(Exception::ERR_INVALIDPARAMS,"PADDING_COUNT is not a valid parameter!","Label::setPadding");
+ mText->setHorizontalTextAlignment(a);
- mDesc->padding[p] = distance;
- mText->setAllottedWidth(mWidgetDesc->dimensions.size.width - (mDesc->padding[PADDING_LEFT] + mDesc->padding[PADDING_RIGHT]));
+ redraw();
+ }
+ void Label::setVerticalTextAlignment(VerticalTextAlignment a)
+ {
+ mDesc->verticalTextAlignment = a;
+
redraw();
}
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUILabel.h
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUILabel.h 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUILabel.h 2008-11-14 07:08:16 UTC (rev 790)
@@ -1,7 +1,6 @@
#ifndef QUICKGUILABEL_H
#define QUICKGUILABEL_H
-#include "QuickGUIPadding.h"
#include "QuickGUIWidget.h"
#include "QuickGUIText.h"
@@ -13,7 +12,8 @@
public:
LabelDesc();
- float padding[PADDING_COUNT];
+ /// Vertical alignment of text within this widget's client area.
+ VerticalTextAlignment verticalTextAlignment;
/// Describes the Text used in this Label
TextDesc textDesc;
@@ -59,9 +59,9 @@
*/
virtual Ogre::String getClass();
/**
- * Gets the distance between a Label border and the text.
+ * Returns the horizontal alignment of text within this widget's client area.
*/
- float getPadding(Padding p);
+ HorizontalTextAlignment getHorizontalTextAlignment();
/**
* Gets the text in UTFString form.
*/
@@ -71,6 +71,10 @@
* are multiple lines of text.
*/
float getVerticalLineSpacing();
+ /**
+ * Returns the vertical alignment of text within this widget's client area.
+ */
+ VerticalTextAlignment getVerticalTextAlignment();
/**
* Sets all characters of the text to the specified color.
@@ -117,9 +121,9 @@
*/
void setFont(const Ogre::String& fontName, Ogre::UTFString s, bool allOccurrences);
/**
- * Sets the distance between a Label border and the text.
+ * Sets the Horizontal alignment of Text as displayed within the Label area.
*/
- void setPadding(Padding p, float distance);
+ void setHorizontalTextAlignment(HorizontalTextAlignment a);
/**
* Sets the text for this object.
*/
@@ -137,6 +141,10 @@
* are multiple lines of text.
*/
void setVerticalLineSpacing(float distance);
+ /**
+ * Sets the Vertical alignment of Text as displayed within the Label area.
+ */
+ void setVerticalTextAlignment(VerticalTextAlignment a);
protected:
Label(const Ogre::String& name);
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUIListTextItem.cpp
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUIListTextItem.cpp 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUIListTextItem.cpp 2008-11-14 07:08:16 UTC (rev 790)
@@ -17,20 +17,14 @@
ListTextItemDesc::ListTextItemDesc() :
ListItemDesc()
{
- for(int i = 0; i < PADDING_COUNT; ++i)
- {
- padding[i] = 5.0;
- }
+ verticalTextAlignment = TEXT_ALIGNMENT_VERTICAL_CENTER;
}
void ListTextItemDesc::serialize(SerialBase* b)
{
ListItemDesc::serialize(b);
- for(int i = 0; i < PADDING_COUNT; ++i)
- {
- b->IO(StringConverter::toString(static_cast<Padding>(i)),&padding[i]);
- }
+ b->IO("VerticalTextAlignment",&verticalTextAlignment);
textDesc.serialize(b);
}
@@ -60,14 +54,9 @@
// Make a copy of the Text Desc. The Text object will
// modify it directly, which is used for serialization.
mDesc->textDesc = ltid->textDesc;
-
+ mDesc->verticalTextAlignment = ltid->verticalTextAlignment;
mText = new Text(mDesc->textDesc);
- setPadding(PADDING_BOTTOM,ltid->padding[PADDING_BOTTOM]);
- setPadding(PADDING_LEFT,ltid->padding[PADDING_LEFT]);
- setPadding(PADDING_RIGHT,ltid->padding[PADDING_RIGHT]);
- setPadding(PADDING_TOP,ltid->padding[PADDING_TOP]);
-
mCurrentFontName = Text::getFirstAvailableFont()->getName();
mCurrentColourValue = Ogre::ColourValue::White;
}
@@ -91,14 +80,6 @@
return mText->getText();
}
- float ListTextItem::getPadding(Padding p)
- {
- if(p == PADDING_COUNT)
- throw Exception(Exception::ERR_INVALIDPARAMS,"PADDING_COUNT is not a valid parameter!","Label::getPadding");
-
- return mDesc->padding[p];
- }
-
void ListTextItem::onDraw()
{
Brush* brush = Brush::getSingletonPtr();
@@ -114,21 +95,39 @@
Ogre::ColourValue prevColor = brush->getColour();
Rect prevClipRegion = brush->getClipRegion();
- Rect clipRegion;
- clipRegion.size =
- Size(
- mDesc->dimensions.size.width - mDesc->padding[PADDING_RIGHT],
- mDesc->dimensions.size.height - mDesc->padding[PADDING_BOTTOM]);
- clipRegion.position = mTexturePosition;
- clipRegion.translate(Point(mDesc->padding[PADDING_LEFT],mDesc->padding[PADDING_TOP]));
+ // Center Text Vertically
+ float textHeight = mText->getTextHeight();
+ float yPos = 0;
+
+ switch(mDesc->verticalTextAlignment)
+ {
+ case TEXT_ALIGNMENT_VERTICAL_BOTTOM:
+ yPos = mDesc->dimensions.size.height - st->getSkinElement(mSkinElementName)->getBorderThickness(BORDER_BOTTOM) - textHeight;
+ break;
+ case TEXT_ALIGNMENT_VERTICAL_CENTER:
+ yPos = (mDesc->dimensions.size.height / 2.0) - (textHeight / 2.0);
+ break;
+ case TEXT_ALIGNMENT_VERTICAL_TOP:
+ yPos = st->getSkinElement(mSkinElementName)->getBorderThickness(BORDER_TOP);
+ break;
+ }
+
+ // Clip to client dimensions
+ Rect clipRegion(mClientDimensions);
+ clipRegion.translate(mTexturePosition);
+
brush->setClipRegion(prevClipRegion.getIntersection(clipRegion));
+ // Adjust Rect to Text drawing region
+ clipRegion = mClientDimensions;
+ clipRegion.position.y = yPos;
+ clipRegion.translate(mTexturePosition);
+
mText->draw(clipRegion.position);
brush->setClipRegion(prevClipRegion);
-
- Brush::getSingleton().setColor(prevColor);
+ brush->setColor(prevColor);
}
void ListTextItem::setColor(const Ogre::ColourValue& cv)
@@ -205,17 +204,6 @@
redraw();
}
- void ListTextItem::setPadding(Padding p, float distance)
- {
- if(p == PADDING_COUNT)
- throw Exception(Exception::ERR_INVALIDPARAMS,"PADDING_COUNT is not a valid parameter!","Label::setPadding");
-
- mDesc->padding[p] = distance;
- mText->setAllottedWidth(mWidgetDesc->dimensions.size.width - (mDesc->padding[PADDING_LEFT] + mDesc->padding[PADDING_RIGHT]));
-
- redraw();
- }
-
void ListTextItem::setText(Ogre::UTFString s, Ogre::FontPtr fp, const Ogre::ColourValue& cv)
{
mText->setText(s,fp,cv);
@@ -237,6 +225,6 @@
{
ListItem::setWidth(pixelWidth);
- mText->setAllottedWidth(mDesc->dimensions.size.width - (mDesc->padding[PADDING_LEFT] + mDesc->padding[PADDING_RIGHT]));
+ mText->setAllottedWidth(mDesc->dimensions.size.width);
}
}
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUIListTextItem.h
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUIListTextItem.h 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUIListTextItem.h 2008-11-14 07:08:16 UTC (rev 790)
@@ -11,7 +11,8 @@
public:
ListTextItemDesc();
- float padding[PADDING_COUNT];
+ /// Vertical alignment of text within this widget's client area.
+ VerticalTextAlignment verticalTextAlignment;
/// Describes the Text used in this Label
TextDesc textDesc;
@@ -55,10 +56,6 @@
*/
virtual Ogre::String getClass();
/**
- * Gets the distance between a Label border and the text.
- */
- float getPadding(Padding p);
- /**
* Gets the text in UTFString form.
*/
Ogre::UTFString getText();
@@ -108,10 +105,6 @@
*/
void setFont(const Ogre::String& fontName, Ogre::UTFString s, bool allOccurrences);
/**
- * Sets the distance between a Label border and the text.
- */
- void setPadding(Padding p, float distance);
- /**
* Sets the text for this object.
*/
void setText(Ogre::UTFString s, Ogre::FontPtr fp, const Ogre::ColourValue& cv);
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUIMenu.cpp
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUIMenu.cpp 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUIMenu.cpp 2008-11-14 07:08:16 UTC (rev 790)
@@ -45,7 +45,7 @@
MenuLabel(name),
mMenuPanel(NULL)
{
- mSkinElementName= DEFAULT;
+ mSkinElementName = DEFAULT;
}
Menu::~Menu()
@@ -62,12 +62,6 @@
setSkinType(d->skinTypeName);
MenuDesc* md = dynamic_cast<MenuDesc*>(d);
-
- mText->setAllottedWidth(md->dimensions.size.width - (md->padding[PADDING_LEFT] + md->padding[PADDING_RIGHT]));
- setPadding(PADDING_BOTTOM,md->padding[PADDING_BOTTOM]);
- setPadding(PADDING_LEFT,md->padding[PADDING_LEFT]);
- setPadding(PADDING_RIGHT,md->padding[PADDING_RIGHT]);
- setPadding(PADDING_TOP,md->padding[PADDING_TOP]);
mDesc->menuWidth = md->menuWidth;
@@ -188,7 +182,8 @@
// Determine position of MenuItem
d.dimensions.position.y = mMenuPanel->getNextAvailableYPosition();
d.dimensions.size.width = mMenuPanel->getClientDimensions().size.width;
- d.dimensions.size.height = d.textDesc.getTextHeight() + (d.padding[PADDING_TOP] + d.padding[PADDING_BOTTOM]);
+ SkinElement* se = mSkinType->getSkinElement(mSkinElementName);
+ d.dimensions.size.height = d.textDesc.getTextHeight() + se->getBorderThickness(BORDER_TOP) + se->getBorderThickness(BORDER_BOTTOM);
MenuLabel* newMenuLabel = dynamic_cast<MenuLabel*>(Widget::create("MenuLabel",d));
addChild(newMenuLabel);
@@ -207,7 +202,8 @@
// Determine position of Menu
d.dimensions.position.y = mMenuPanel->getNextAvailableYPosition();
d.dimensions.size.width = mMenuPanel->getClientDimensions().size.width;
- d.dimensions.size.height = d.textDesc.getTextHeight() + (d.padding[PADDING_TOP] + d.padding[PADDING_BOTTOM]);
+ SkinElement* se = mSkinType->getSkinElement(mSkinElementName);
+ d.dimensions.size.height = d.textDesc.getTextHeight() + se->getBorderThickness(BORDER_TOP) + se->getBorderThickness(BORDER_BOTTOM);
Menu* newMenu = dynamic_cast<Menu*>(Widget::create("Menu",d));
@@ -369,7 +365,7 @@
else
p.x = mParentWidget->getScreenPosition().x + mParentWidget->getSize().width - mDesc->subMenuOverlap;
- p.y = getScreenPosition().y;
+ p.y = getScreenPosition().y - mMenuPanel->mSkinType->getSkinElement(mMenuPanel->mSkinElementName)->getBorderThickness(BORDER_TOP);
}
mMenuPanel->setPosition(p);
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUIMenuLabel.cpp
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUIMenuLabel.cpp 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUIMenuLabel.cpp 2008-11-14 07:08:16 UTC (rev 790)
@@ -23,20 +23,16 @@
MenuLabelDesc::MenuLabelDesc() :
MenuItemDesc()
{
- for(int i = 0; i < PADDING_COUNT; ++i)
- {
- padding[i] = 5.0;
- }
+ verticalTextAlignment = TEXT_ALIGNMENT_VERTICAL_CENTER;
+
+ textDesc.horizontalTextAlignment = TEXT_ALIGNMENT_HORIZONTAL_LEFT;
}
void MenuLabelDesc::serialize(SerialBase* b)
{
MenuItemDesc::serialize(b);
- for(int i = 0; i < PADDING_COUNT; ++i)
- {
- b->IO(StringConverter::toString(static_cast<Padding>(i)),&padding[i]);
- }
+ b->IO("VerticalTextAlignment",&verticalTextAlignment);
textDesc.serialize(b);
}
@@ -65,19 +61,16 @@
// modify it directly, which is used for serialization.
mDesc->textDesc = mld->textDesc;
- mDesc->textDesc.allottedWidth = mld->dimensions.size.width - (mld->padding[PADDING_LEFT] + mld->padding[PADDING_RIGHT]);
+ setSkinType(d->skinTypeName);
+ SkinElement* se = mSkinType->getSkinElement(mSkinElementName);
+ mDesc->textDesc.allottedWidth = mld->dimensions.size.width - (se->getBorderThickness(BORDER_LEFT) + se->getBorderThickness(BORDER_RIGHT));
+
if(mText != NULL)
delete mText;
+ mDesc->verticalTextAlignment = mld->verticalTextAlignment;
mText = new Text(mDesc->textDesc);
-
- setPadding(PADDING_BOTTOM,mld->padding[PADDING_BOTTOM]);
- setPadding(PADDING_LEFT,mld->padding[PADDING_LEFT]);
- setPadding(PADDING_RIGHT,mld->padding[PADDING_RIGHT]);
- setPadding(PADDING_TOP,mld->padding[PADDING_TOP]);
-
- setSkinType(d->skinTypeName);
}
Widget* MenuLabel::factory(const Ogre::String& widgetName)
@@ -94,17 +87,14 @@
return "MenuLabel";
}
- float MenuLabel::getPadding(Padding p)
+ float MenuLabel::getVerticalLineSpacing()
{
- if(p == PADDING_COUNT)
- throw Exception(Exception::ERR_INVALIDPARAMS,"PADDING_COUNT is not a valid parameter!","MenuLabel::getPadding");
-
- return mDesc->padding[p];
+ return mText->getVerticalLineSpacing();
}
- float MenuLabel::getVerticalLineSpacing()
+ VerticalTextAlignment MenuLabel::getVerticalTextAlignment()
{
- return mText->getVerticalLineSpacing();
+ return mDesc->verticalTextAlignment;
}
void MenuLabel::onDraw()
@@ -122,21 +112,39 @@
Ogre::ColourValue prevColor = brush->getColour();
Rect prevClipRegion = brush->getClipRegion();
- Rect clipRegion;
- clipRegion.size =
- Size(
- mWidgetDesc->dimensions.size.width - mDesc->padding[PADDING_RIGHT] - mDesc->padding[PADDING_LEFT],
- mWidgetDesc->dimensions.size.height - mDesc->padding[PADDING_BOTTOM] - mDesc->padding[PADDING_TOP]);
- clipRegion.position = mTexturePosition;
- clipRegion.translate(Point(mDesc->padding[PADDING_LEFT],mDesc->padding[PADDING_TOP]));
+ // Center Text Vertically
+ float textHeight = mText->getTextHeight();
+ float yPos = 0;
+
+ switch(mDesc->verticalTextAlignment)
+ {
+ case TEXT_ALIGNMENT_VERTICAL_BOTTOM:
+ yPos = mDesc->dimensions.size.height - st->getSkinElement(mSkinElementName)->getBorderThickness(BORDER_BOTTOM) - textHeight;
+ break;
+ case TEXT_ALIGNMENT_VERTICAL_CENTER:
+ yPos = (mDesc->dimensions.size.height / 2.0) - (textHeight / 2.0);
+ break;
+ case TEXT_ALIGNMENT_VERTICAL_TOP:
+ yPos = st->getSkinElement(mSkinElementName)->getBorderThickness(BORDER_TOP);
+ break;
+ }
+
+ // Clip to client dimensions
+ Rect clipRegion(mClientDimensions);
+ clipRegion.translate(mTexturePosition);
+
brush->setClipRegion(prevClipRegion.getIntersection(clipRegion));
+ // Adjust Rect to Text drawing region
+ clipRegion = mClientDimensions;
+ clipRegion.position.y = yPos;
+ clipRegion.translate(mTexturePosition);
+
mText->draw(clipRegion.position);
brush->setClipRegion(prevClipRegion);
-
- Brush::getSingleton().setColor(prevColor);
+ brush->setColor(prevColor);
}
void MenuLabel::onMouseButtonUp(const EventArgs& args)
@@ -235,17 +243,6 @@
redraw();
}
- void MenuLabel::setPadding(Padding p, float distance)
- {
- if(p == PADDING_COUNT)
- throw Exception(Exception::ERR_INVALIDPARAMS,"PADDING_COUNT is not a valid parameter!","MenuLabel::setPadding");
-
- mDesc->padding[p] = distance;
- mText->setAllottedWidth(mWidgetDesc->dimensions.size.width - (mDesc->padding[PADDING_LEFT] + mDesc->padding[PADDING_RIGHT]));
-
- redraw();
- }
-
void MenuLabel::setText(Ogre::UTFString s, Ogre::FontPtr fp, const Ogre::ColourValue& cv)
{
mText->setText(s,fp,cv);
@@ -262,4 +259,11 @@
redraw();
}
+
+ void MenuLabel::setVerticalTextAlignment(VerticalTextAlignment a)
+ {
+ mDesc->verticalTextAlignment = a;
+
+ redraw();
+ }
}
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUIMenuLabel.h
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUIMenuLabel.h 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUIMenuLabel.h 2008-11-14 07:08:16 UTC (rev 790)
@@ -1,7 +1,6 @@
#ifndef QUICKGUIMENULABEL_H
#define QUICKGUIMENULABEL_H
-#include "QuickGUIPadding.h"
#include "QuickGUIMenuItem.h"
#include "QuickGUIText.h"
@@ -13,7 +12,8 @@
public:
MenuLabelDesc();
- float padding[PADDING_COUNT];
+ /// Vertical alignment of text within this widget's client area.
+ VerticalTextAlignment verticalTextAlignment;
/// Describes the Text used in this Label
TextDesc textDesc;
@@ -61,14 +61,14 @@
*/
virtual Ogre::String getClass();
/**
- * Gets the distance between a Label border and the text.
- */
- float getPadding(Padding p);
- /**
* Returns the number of pixels placed between each line of text, if there
* are multiple lines of text.
*/
float getVerticalLineSpacing();
+ /**
+ * Returns the vertical alignment of text within this widget's client area.
+ */
+ VerticalTextAlignment getVerticalTextAlignment();
/**
* Sets all characters of the text to the specified color.
@@ -115,10 +115,6 @@
*/
void setFont(const Ogre::String& fontName, Ogre::UTFString s, bool allOccurrences);
/**
- * Sets the distance between a Label border and the text.
- */
- void setPadding(Padding p, float distance);
- /**
* Sets the text for this object.
*/
void setText(Ogre::UTFString s, Ogre::FontPtr fp, const Ogre::ColourValue& cv);
@@ -127,6 +123,10 @@
* are multiple lines of text.
*/
void setVerticalLineSpacing(float distance);
+ /**
+ * Sets the Vertical alignment of Text as displayed within the Label area.
+ */
+ void setVerticalTextAlignment(VerticalTextAlignment a);
protected:
MenuLabel(const Ogre::String& name);
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUIProgressBar.cpp
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUIProgressBar.cpp 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUIProgressBar.cpp 2008-11-14 07:08:16 UTC (rev 790)
@@ -25,21 +25,14 @@
layout = PROGRESSBAR_LAYOUT_HORIZONTAL;
clippingEdge = PROGRESSBAR_CLIP_LEFT_BOTTOM;
progress = 100;
-
- for(int i = 0; i < PADDING_COUNT; ++i)
- {
- padding[i] = 5.0;
- }
+ verticalTextAlignment = TEXT_ALIGNMENT_VERTICAL_CENTER;
}
void ProgressBarDesc::serialize(SerialBase* b)
{
WidgetDesc::serialize(b);
- for(int i = 0; i < PADDING_COUNT; ++i)
- {
- b->IO(StringConverter::toString(static_cast<Padding>(i)),&padding[i]);
- }
+ b->IO("VerticalTextAlignment",&verticalTextAlignment);
textDesc.serialize(b);
@@ -74,14 +67,11 @@
// modify it directly, which is used for serialization.
mDesc->textDesc = pd->textDesc;
- mDesc->textDesc.allottedWidth = pd->dimensions.size.width - (pd->padding[PADDING_LEFT] + pd->padding[PADDING_RIGHT]);
+ SkinElement* se = mSkinType->getSkinElement(mSkinElementName);
+ mDesc->textDesc.allottedWidth = pd->dimensions.size.width - (se->getBorderThickness(BORDER_LEFT) + se->getBorderThickness(BORDER_RIGHT));
+ mDesc->verticalTextAlignment = pd->verticalTextAlignment;
mText = new Text(mDesc->textDesc);
- setPadding(PADDING_BOTTOM,pd->padding[PADDING_BOTTOM]);
- setPadding(PADDING_LEFT,pd->padding[PADDING_LEFT]);
- setPadding(PADDING_RIGHT,pd->padding[PADDING_RIGHT]);
- setPadding(PADDING_TOP,pd->padding[PADDING_TOP]);
-
mCurrentFontName = Text::getFirstAvailableFont()->getName();
mCurrentColourValue = Ogre::ColourValue::White;
@@ -166,17 +156,14 @@
return mDesc->fillDirection;
}
- ProgressBarLayout ProgressBar::setLayout()
+ HorizontalTextAlignment ProgressBar::getHorizontalTextAlignment()
{
- return mDesc->layout;
+ return mText->getHorizontalTextAlignment();
}
- float ProgressBar::getPadding(Padding p)
+ ProgressBarLayout ProgressBar::setLayout()
{
- if(p == PADDING_COUNT)
- throw Exception(Exception::ERR_INVALIDPARAMS,"PADDING_COUNT is not a valid parameter!","ProgressBar::getPadding");
-
- return mDesc->padding[p];
+ return mDesc->layout;
}
float ProgressBar::getProgress()
@@ -194,6 +181,11 @@
return mText->getVerticalLineSpacing();
}
+ VerticalTextAlignment ProgressBar::getVerticalTextAlignment()
+ {
+ return mDesc->verticalTextAlignment;
+ }
+
void ProgressBar::onDraw()
{
Brush* brush = Brush::getSingletonPtr();
@@ -213,26 +205,45 @@
barRect.translate(mTexturePosition);
brush->drawRectangle(barRect,UVRect(0,0,1,1));
- /*
Ogre::ColourValue prevColor = brush->getColour();
Rect prevClipRegion = brush->getClipRegion();
- Rect clipRegion;
- clipRegion.size =
- Size(
- mDesc->dimensions.size.width - mDesc->padding[PADDING_RIGHT],
- mDesc->dimensions.size.height - mDesc->padding[PADDING_BOTTOM]);
- clipRegion.position = mTexturePosition;
- clipRegion.translate(Point(mDesc->padding[PADDING_LEFT],mDesc->padding[PADDING_TOP]));
+ if(mText->empty())
+ return;
+ // Center Text Vertically
+
+ float textHeight = mText->getTextHeight();
+ float yPos = 0;
+
+ switch(mDesc->verticalTextAlignment)
+ {
+ case TEXT_ALIGNMENT_VERTICAL_BOTTOM:
+ yPos = mDesc->dimensions.size.height - st->getSkinElement(mSkinElementName)->getBorderThickness(BORDER_BOTTOM) - textHeight;
+ break;
+ case TEXT_ALIGNMENT_VERTICAL_CENTER:
+ yPos = (mDesc->dimensions.size.height / 2.0) - (textHeight / 2.0);
+ break;
+ case TEXT_ALIGNMENT_VERTICAL_TOP:
+ yPos = st->getSkinElement(mSkinElementName)->getBorderThickness(BORDER_TOP);
+ break;
+ }
+
+ // Clip to client dimensions
+ Rect clipRegion(mClientDimensions);
+ clipRegion.translate(mTexturePosition);
+
brush->setClipRegion(prevClipRegion.getIntersection(clipRegion));
+ // Adjust Rect to Text drawing region
+ clipRegion = mClientDimensions;
+ clipRegion.position.y = yPos;
+ clipRegion.translate(mTexturePosition);
+
mText->draw(clipRegion.position);
brush->setClipRegion(prevClipRegion);
-
- Brush::getSingleton().setColor(prevColor);
- */
+ brush->setColor(prevColor);
}
void ProgressBar::setClippingEdge(ProgressBarClippingEdge e)
@@ -323,22 +334,18 @@
redraw();
}
- void ProgressBar::setLayout(ProgressBarLayout l)
+ void ProgressBar::setHorizontalTextAlignment(HorizontalTextAlignment a)
{
- mDesc->layout = l;
+ mText->setHorizontalTextAlignment(a);
- setProgress(mDesc->progress);
+ redraw();
}
- void ProgressBar::setPadding(Padding p, float distance)
+ void ProgressBar::setLayout(ProgressBarLayout l)
{
- if(p == PADDING_COUNT)
- throw Exception(Exception::ERR_INVALIDPARAMS,"PADDING_COUNT is not a valid parameter!","ProgressBar::setPadding");
+ mDesc->layout = l;
- mDesc->padding[p] = distance;
- mText->setAllottedWidth(mWidgetDesc->dimensions.size.width - (mDesc->padding[PADDING_LEFT] + mDesc->padding[PADDING_RIGHT]));
-
- redraw();
+ setProgress(mDesc->progress);
}
void ProgressBar::setProgress(float percent)
@@ -542,4 +549,11 @@
redraw();
}
+
+ void ProgressBar::setVerticalTextAlignment(VerticalTextAlignment a)
+ {
+ mDesc->verticalTextAlignment = a;
+
+ redraw();
+ }
}
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUIProgressBar.h
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUIProgressBar.h 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUIProgressBar.h 2008-11-14 07:08:16 UTC (rev 790)
@@ -23,7 +23,8 @@
/// Percentage of progress of the bar. (0-100)
float progress;
- float padding[PADDING_COUNT];
+ /// Vertical alignment of text within this widget's client area.
+ VerticalTextAlignment verticalTextAlignment;
/// Describes the Text used in this Label
TextDesc textDesc;
@@ -107,14 +108,14 @@
*/
ProgressBarFillDirection getFillDirection();
/**
+ * Returns the horizontal alignment of text within this widget's client area.
+ */
+ HorizontalTextAlignment getHorizontalTextAlignment();
+ /**
* Gets the axis of progress growth, either horizontal or vertical.
*/
ProgressBarLayout setLayout();
/**
- * Gets the distance between a Label border and the text.
- */
- float getPadding(Padding p);
- /**
* Gets the progress of the ProgressBar, that is a visual indicator of percent complete.
*/
float getProgress();
@@ -127,6 +128,10 @@
* are multiple lines of text.
*/
float getVerticalLineSpacing();
+ /**
+ * Returns the vertical alignment of text within this widget's client area.
+ */
+ VerticalTextAlignment getVerticalTextAlignment();
/**
* Sets the side of the bar texture that is clipped to simulate progress.
@@ -181,14 +186,14 @@
*/
void setFont(const Ogre::String& fontName, Ogre::UTFString s, bool allOccurrences);
/**
+ * Sets the Horizontal alignment of Text as displayed within the Label area.
+ */
+ void setHorizontalTextAlignment(HorizontalTextAlignment a);
+ /**
* Sets the axis of progress growth, either horizontal or vertical.
*/
void setLayout(ProgressBarLayout l);
/**
- * Sets the distance between a Label border and the text.
- */
- void setPadding(Padding p, float distance);
- /**
* Sets the progress of the ProgressBar, that is a visual indicator of percent complete.
* NOTE: values above and below 0 will be capped to 0/100%.
*/
@@ -216,6 +221,10 @@
* are multiple lines of text.
*/
void setVerticalLineSpacing(float distance);
+ /**
+ * Sets the Vertical alignment of Text as displayed within the Label area.
+ */
+ void setVerticalTextAlignment(VerticalTextAlignment a);
protected:
ProgressBar(const Ogre::String& name);
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUISerialBase.h
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUISerialBase.h 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUISerialBase.h 2008-11-14 07:08:16 UTC (rev 790)
@@ -54,9 +54,10 @@
virtual void IO(const Ogre::String& propertyName, VScrollBarButtonLayout* member) = 0;
virtual void IO(const Ogre::String& propertyName, HScrollBarButtonLayout* member) = 0;
virtual void IO(const Ogre::String& propertyName, Size* member) = 0;
- virtual void IO(const Ogre::String& propertyName, TextAlignment* member) = 0;
+ virtual void IO(const Ogre::String& propertyName, HorizontalTextAlignment* member) = 0;
virtual void IO(const Ogre::String& propertyName, HorizontalAnchor* member) = 0;
virtual void IO(const Ogre::String& propertyName, VerticalAnchor* member) = 0;
+ virtual void IO(const Ogre::String& propertyName, VerticalTextAlignment* member) = 0;
protected:
ScriptDefinition* mCurrentDefinition;
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUISerialReader.cpp
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUISerialReader.cpp 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUISerialReader.cpp 2008-11-14 07:08:16 UTC (rev 790)
@@ -302,7 +302,7 @@
}
}
- void SerialReader::IO(const Ogre::String& propertyName, TextAlignment* member)
+ void SerialReader::IO(const Ogre::String& propertyName, HorizontalTextAlignment* member)
{
if(mCurrentDefinition == NULL)
throw Exception(Exception::ERR_SERIALIZATION,"SerialReader has not been correctly setup to retrieve properties. (Missing call to SerialReader::begin?)","SerialReader::IO");
@@ -310,7 +310,7 @@
DefinitionProperty* prop = mCurrentDefinition->getProperty(propertyName);
Ogre::StringVector sv = prop->getValues();
- *member = StringConverter::parseTextAlignment(sv[0]);
+ *member = StringConverter::parseHorizontalTextAlignment(sv[0]);
}
void SerialReader::IO(const Ogre::String& propertyName, HorizontalAnchor* member)
@@ -335,6 +335,17 @@
*member = StringConverter::parseVerticalAnchor(sv[0]);
}
+ void SerialReader::IO(const Ogre::String& propertyName, VerticalTextAlignment* member)
+ {
+ if(mCurrentDefinition == NULL)
+ throw Exception(Exception::ERR_SERIALIZATION,"SerialReader has not been correctly setup to retrieve properties. (Missing call to SerialReader::begin?)","SerialReader::IO");
+
+ DefinitionProperty* prop = mCurrentDefinition->getProperty(propertyName);
+ Ogre::StringVector sv = prop->getValues();
+
+ *member = StringConverter::parseVerticalTextAlignment(sv[0]);
+ }
+
bool SerialReader::isSerialWriter()
{
return false;
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUISerialReader.h
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUISerialReader.h 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUISerialReader.h 2008-11-14 07:08:16 UTC (rev 790)
@@ -42,9 +42,10 @@
virtual void IO(const Ogre::String& propertyName, VScrollBarButtonLayout* member);
virtual void IO(const Ogre::String& propertyName, HScrollBarButtonLayout* member);
virtual void IO(const Ogre::String& propertyName, Size* member);
- virtual void IO(const Ogre::String& propertyName, TextAlignment* member);
+ virtual void IO(const Ogre::String& propertyName, HorizontalTextAlignment* member);
virtual void IO(const Ogre::String& propertyName, HorizontalAnchor* member);
virtual void IO(const Ogre::String& propertyName, VerticalAnchor* member);
+ virtual void IO(const Ogre::String& propertyName, VerticalTextAlignment* member);
bool isSerialWriter();
bool isSerialReader();
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUISerialWriter.cpp
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUISerialWriter.cpp 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUISerialWriter.cpp 2008-11-14 07:08:16 UTC (rev 790)
@@ -291,7 +291,7 @@
mCurrentDefinition->mProperties[propertyName] = newProp;
}
- void SerialWriter::IO(const Ogre::String& propertyName, TextAlignment* member)
+ void SerialWriter::IO(const Ogre::String& propertyName, HorizontalTextAlignment* member)
{
if(mCurrentDefinition == NULL)
throw Exception(Exception::ERR_SERIALIZATION,"SerialWriter not setup to write! Did you miss a call to SerialWriter::begin()?","SerialWriter::IO");
@@ -333,6 +333,20 @@
mCurrentDefinition->mProperties[propertyName] = newProp;
}
+ void SerialWriter::IO(const Ogre::String& propertyName, VerticalTextAlignment* member)
+ {
+ if(mCurrentDefinition == NULL)
+ throw Exception(Exception::ERR_SERIALIZATION,"SerialWriter not setup to write! Did you miss a call to SerialWriter::begin()?","SerialWriter::IO");
+
+ DefinitionProperty* newProp = new DefinitionProperty(propertyName);
+ newProp->mValues.push_back(StringConverter::toString(*member));
+
+ if(mCurrentDefinition->mProperties.find(propertyName) != mCurrentDefinition->mProperties.end())
+ throw Exception(Exception::ERR_SERIALIZATION,"ScriptDefinition already contains the property \"" + propertyName + "\"!","SerialWriter::IO");
+ else
+ mCurrentDefinition->mProperties[propertyName] = newProp;
+ }
+
bool SerialWriter::isSerialWriter()
{
return true;
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUISerialWriter.h
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUISerialWriter.h 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUISerialWriter.h 2008-11-14 07:08:16 UTC (rev 790)
@@ -50,9 +50,10 @@
virtual void IO(const Ogre::String& propertyName, VScrollBarButtonLayout* member);
virtual void IO(const Ogre::String& propertyName, HScrollBarButtonLayout* member);
virtual void IO(const Ogre::String& propertyName, Size* member);
- virtual void IO(const Ogre::String& propertyName, TextAlignment* member);
+ virtual void IO(const Ogre::String& propertyName, HorizontalTextAlignment* member);
virtual void IO(const Ogre::String& propertyName, HorizontalAnchor* member);
virtual void IO(const Ogre::String& propertyName, VerticalAnchor* member);
+ virtual void IO(const Ogre::String& propertyName, VerticalTextAlignment* member);
bool isSerialWriter();
bool isSerialReader();
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUIStringConverter.cpp
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUIStringConverter.cpp 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUIStringConverter.cpp 2008-11-14 07:08:16 UTC (rev 790)
@@ -29,16 +29,15 @@
}
}
- Ogre::String StringConverter::toString(Padding p)
+ Ogre::String StringConverter::toString(HorizontalTextAlignment a)
{
- switch(p)
+ switch(a)
{
- case PADDING_LEFT: return "PADDING_LEFT";
- case PADDING_RIGHT: return "PADDING_RIGHT";
- case PADDING_TOP: return "PADDING_TOP";
- case PADDING_BOTTOM: return "PADDING_BOTTOM";
+ case TEXT_ALIGNMENT_HORIZONTAL_LEFT: return "TEXT_ALIGNMENT_HORIZONTAL_LEFT";
+ case TEXT_ALIGNMENT_HORIZONTAL_RIGHT: return "TEXT_ALIGNMENT_HORIZONTAL_RIGHT";
+ case TEXT_ALIGNMENT_HORIZONTAL_CENTER: return "TEXT_ALIGNMENT_HORIZONTAL_CENTER";
default:
- throw Exception(Exception::ERR_SERIALIZATION,"Padding type does not have a string equivalent! Check if update is needed!","StringConverter::toString");
+ throw Exception(Exception::ERR_SERIALIZATION,"HorizontalTextAlignment type does not have a string equivalent! Check if update is needed!","StringConverter::toString");
}
}
@@ -107,18 +106,6 @@
}
}
- Ogre::String StringConverter::toString(TextAlignment a)
- {
- switch(a)
- {
- case TEXT_ALIGNMENT_LEFT: return "TEXT_ALIGNMENT_LEFT";
- case TEXT_ALIGNMENT_RIGHT: return "TEXT_ALIGNMENT_RIGHT";
- case TEXT_ALIGNMENT_CENTER: return "TEXT_ALIGNMENT_CENTER";
- default:
- throw Exception(Exception::ERR_SERIALIZATION,"TextAlignment type does not have a string equivalent! Check if update is needed!","StringConverter::toString");
- }
- }
-
Ogre::String StringConverter::toString(ToolBarItemLayout l)
{
switch(l)
@@ -145,6 +132,18 @@
}
}
+ Ogre::String StringConverter::toString(VerticalTextAlignment a)
+ {
+ switch(a)
+ {
+ case TEXT_ALIGNMENT_VERTICAL_BOTTOM: return "TEXT_ALIGNMENT_VERTICAL_BOTTOM";
+ case TEXT_ALIGNMENT_VERTICAL_CENTER: return "TEXT_ALIGNMENT_VERTICAL_CENTER";
+ case TEXT_ALIGNMENT_VERTICAL_TOP: return "TEXT_ALIGNMENT_VERTICAL_TOP";
+ default:
+ throw Exception(Exception::ERR_SERIALIZATION,"VerticalTextAlignment type does not have a string equivalent! Check if update is needed!","StringConverter::toString");
+ }
+ }
+
Ogre::String StringConverter::toString(WidgetEvent e)
{
switch(e)
@@ -209,14 +208,13 @@
throw Exception(Exception::ERR_SERIALIZATION,"\"" + s + "\" is not a recognized HorizontalAnchor type! (Possible need to update?)","StringConverter::parseHorizontalAnchor");
}
- Padding StringConverter::parsePadding(const Ogre::String& s)
+ HorizontalTextAlignment StringConverter::parseHorizontalTextAlignment(const Ogre::String& s)
{
- if(s == "PADDING_LEFT") return PADDING_LEFT;
- else if(s == "PADDING_RIGHT") return PADDING_RIGHT;
- else if(s == "PADDING_TOP") return PADDING_TOP;
- else if(s == "PADDING_BOTTOM") return PADDING_BOTTOM;
+ if(s == "TEXT_ALIGNMENT_HORIZONTAL_LEFT") return TEXT_ALIGNMENT_HORIZONTAL_LEFT;
+ else if(s == "TEXT_ALIGNMENT_HORIZONTAL_RIGHT") return TEXT_ALIGNMENT_HORIZONTAL_RIGHT;
+ else if(s == "TEXT_ALIGNMENT_HORIZONTAL_CENTER") return TEXT_ALIGNMENT_HORIZONTAL_CENTER;
else
- throw Exception(Exception::ERR_SERIALIZATION,"\"" + s + "\" is not a recognized Padding type! (Possible need to update?)","StringConverter::parsePadding");
+ throw Exception(Exception::ERR_SERIALIZATION,"\"" + s + "\" is not a recognized HorizontalTextAlignment type! (Possible need to update?)","StringConverter::parseHorizontalTextAlignment");
}
VScrollBarButtonLayout StringConverter::parseVScrollBarButtonLayout(const Ogre::String& s)
@@ -269,15 +267,6 @@
throw Exception(Exception::ERR_SERIALIZATION,"\"" + s + "\" is not a recognized ProgressBarClippingEdge type! (Possible need to update?)","StringConverter::parseProgressBarClippingEdge");
}
- TextAlignment StringConverter::parseTextAlignment(const Ogre::String& s)
- {
- if(s == "TEXT_ALIGNMENT_LEFT") return TEXT_ALIGNMENT_LEFT;
- else if(s == "TEXT_ALIGNMENT_RIGHT") return TEXT_ALIGNMENT_RIGHT;
- else if(s == "TEXT_ALIGNMENT_CENTER") return TEXT_ALIGNMENT_CENTER;
- else
- throw Exception(Exception::ERR_SERIALIZATION,"\"" + s + "\" is not a recognized TextAlignment type! (Possible need to update?)","StringConverter::parseTextAlignment");
- }
-
ToolBarItemLayout StringConverter::parseToolBarItemLayout(const Ogre::String& s)
{
if(s == "TOOLBAR_ITEM_LAYOUT_NEGATIVE_TO_POSITIVE") return TOOLBAR_ITEM_LAYOUT_NEGATIVE_TO_POSITIVE;
@@ -298,6 +287,15 @@
throw Exception(Exception::ERR_SERIALIZATION,"\"" + s + "\" is not a recognized VerticalAnchor type! (Possible need to update?)","StringConverter::parseVerticalAnchor");
}
+ VerticalTextAlignment StringConverter::parseVerticalTextAlignment(const Ogre::String& s)
+ {
+ if(s == "TEXT_ALIGNMENT_VERTICAL_BOTTOM") return TEXT_ALIGNMENT_VERTICAL_BOTTOM;
+ else if(s == "TEXT_ALIGNMENT_VERTICAL_CENTER") return TEXT_ALIGNMENT_VERTICAL_CENTER;
+ else if(s == "TEXT_ALIGNMENT_VERTICAL_TOP") return TEXT_ALIGNMENT_VERTICAL_TOP;
+ else
+ throw Exception(Exception::ERR_SERIALIZATION,"\"" + s + "\" is not a recognized VerticalTextAlignment type! (Possible need to update?)","StringConverter::parseVerticalTextAlignment");
+ }
+
WidgetEvent StringConverter::parseWidgetEvent(const Ogre::String& s)
{
if(s == "WIDGET_EVENT_ENABLED_CHANGED") return WIDGET_EVENT_ENABLED_CHANGED;
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUIStringConverter.h
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUIStringConverter.h 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUIStringConverter.h 2008-11-14 07:08:16 UTC (rev 790)
@@ -5,7 +5,6 @@
#include "QuickGUIBrushEnums.h"
#include "QuickGUIException.h"
#include "QuickGUIExportDLL.h"
-#include "QuickGUIPadding.h"
#include "QuickGUIProgressBarEnums.h"
#include "QuickGUIEventTypes.h"
#include "QuickGUIScrollBarButtonLayouts.h"
@@ -22,29 +21,29 @@
public:
static Ogre::String toString(BrushFilterMode m);
static Ogre::String toString(HorizontalAnchor a);
- static Ogre::String toString(Padding p);
- static Ogre::String toString(VScrollBarButtonLayout l);
+ static Ogre::String toString(HorizontalTextAlignment a);
static Ogre::String toString(HScrollBarButtonLayout l);
static Ogre::String toString(ProgressBarFillDirection d);
static Ogre::String toString(ProgressBarLayout l);
static Ogre::String toString(ProgressBarClippingEdge e);
- static Ogre::String toString(TextAlignment a);
static Ogre::String toString(ToolBarItemLayout l);
static Ogre::String toString(VerticalAnchor a);
+ static Ogre::String toString(VerticalTextAlignment a);
+ static Ogre::String toString(VScrollBarButtonLayout l);
static Ogre::String toString(WidgetEvent e);
static Ogre::String toString(WindowEvent e);
static BrushFilterMode parseBrushFilterMode(const Ogre::String& s);
static HorizontalAnchor parseHorizontalAnchor(const Ogre::String& s);
- static Padding parsePadding(const Ogre::String& s);
- static VScrollBarButtonLayout parseVScrollBarButtonLayout(const Ogre::String& s);
+ static HorizontalTextAlignment parseHorizontalTextAlignment(const Ogre::String& s);
static HScrollBarButtonLayout parseHScrollBarButtonLayout(const Ogre::String& s);
static ProgressBarFillDirection parseProgressBarFillDirection(const Ogre::String& s);
static ProgressBarLayout parseProgressBarLayout(const Ogre::String& s);
static ProgressBarClippingEdge parseProgressBarClippingEdge(const Ogre::String& s);
- static TextAlignment parseTextAlignment(const Ogre::String& s);
static ToolBarItemLayout parseToolBarItemLayout(const Ogre::String& s);
static VerticalAnchor parseVerticalAnchor(const Ogre::String& s);
+ static VerticalTextAlignment parseVerticalTextAlignment(const Ogre::String& s);
+ static VScrollBarButtonLayout parseVScrollBarButtonLayout(const Ogre::String& s);
static WidgetEvent parseWidgetEvent(const Ogre::String& s);
static WindowEvent parseWindowEvent(const Ogre::String& s);
Modified: trunk/python-ogre/ThirdParty/quickgui/QuickGUITab.cpp
===================================================================
--- trunk/python-ogre/ThirdParty/quickgui/QuickGUITab.cpp 2008-11-10 17:16:49 UTC (rev 789)
+++ trunk/python-ogre/ThirdParty/quickgui/QuickGUITab.cpp 2008-11-14 07:08:16 UTC (rev 790)
@@ -44,9 +44,9 @@
if(mDesc->textDesc.segments.empty())
mDesc->dimensions.size.width = mDesc->frontWidth + 50;
else
- mDesc->dimensions.size.width = mDesc->frontWidth + mDesc->textDesc.getTextWidth() + mDesc->padding[PADDING_RIGHT];
+ mDesc->dimensions.size.width = mDesc->frontWidth + mDesc->textDesc.getTextWidth() + mSkinType->getSkinElement(mSkinElementName)->getBorderThickness(BORDER_RIGHT);
- mText->setAllottedWidth(mDesc->textDesc.getTextWidth() + mDesc->padding[PADDING_RIGHT]);
+ mText->setAllottedWidth(mDesc->textDesc.getTextWidth() + mSkinType->getSkinElement(mSkinElementName)->getBorderThickness(BORDER_RIGHT));
}
void Tab::_initialize(WidgetDesc* d)
@@ -64,11 +64,6 @@
else
mDesc->frontWidth = td->frontWidth;
- mDesc->padding[PADDING_LEFT] = td->padding[PADDING_LEFT];
- mDesc->padding[PADDING_RIGHT] = td->padding[PADDING_RIGHT];
- mDesc->padding[PADDING_BOTTOM] = td->padding[PADDING_BOTTOM];
- mDesc->padding[PADDING_TOP] = td->padding[PADDING_TOP];
-
// Make a copy of the Text Desc. The Text object will
// modify it directly, which is used for serialization.
mDesc->textDesc = td->textDesc;
@@ -76,14 +71,15 @@
if(mDesc->textDesc.segments.empty())
mDesc->dimensions.size.width = mDesc->frontWidth + 50;
else
- mDesc->dimensions.size.width = mDesc->frontWidth + mDesc->padding[PADDING_LEFT] + mDesc->textDesc.getTextWidth() + mDesc->padding[PADDING_RIGHT];
+ mDesc->dimensions.size.width = mDesc->frontWidth + mSkinType->getSkinElement(MAIN)->getBorderThickness(BORDER_LEFT) + mDesc->textDesc.getTextWidth() + mSkinType->getSkinElement(MAIN)->getBorderThickness(BORDER_RIGHT);
if(mDesc->textDesc.segments.empty())
mDesc->dimensions.size.height = 20;
else
- mDesc->dimensions.size.height = mDesc->padding[PADDING_TOP] + mDesc->textDesc.getTextHeight() + mDesc->padding[PADDING_BOTTOM];
+ mDesc->dimensions.size.height = mSkinType->getSkinElement(mSkinElementName)->getBorderThickness(BORDER_TOP) + mDesc->textDesc.getTextHeight() + mSkinType->getSkinElement(mSkinElementName)->getBorderThickness(BORDER_BOTTOM);
- mDesc->textDesc.allottedWidth = mDesc->textDesc.getTextWidth() + mDesc->padding[PADDING_RIGHT];
+ mDesc->verticalTextAlignment = td->verticalTextAlignment;
+ mDesc->textDesc.allottedWidth = mDesc->textDesc.getTextWidth() + mSkinType->getSkinElement(mSkinElementName)->getBorderThickness(BORDER_RIGHT);
mText = new Text(mDesc->textDesc);
mCurrentFontName = Text::get...
[truncated message content] |