diff --git a/Extensions/TextObject/Extension.cpp b/Extensions/TextObject/Extension.cpp index 9fa5019c9b..1fbc2f9fc9 100644 --- a/Extensions/TextObject/Extension.cpp +++ b/Extensions/TextObject/Extension.cpp @@ -23,6 +23,10 @@ freely, subject to the following restrictions: distribution. */ +/** + * Contributors to the extension: + * Victor Levasseur ( Bold/Italic/Underlined styles ) + */ #include "GDL/ExtensionBase.h" #include "GDL/Version.h" @@ -224,6 +228,93 @@ class Extension : public ExtensionBase DECLARE_END_OBJECT_CONDITION() + DECLARE_OBJECT_ACTION("SetBold", + _("Gras"), + _("Met ou non le texte en gras."), + _("Mettre en gras _PARAM0_ : _PARAM1_"), + _("Style"), + "res/actions/bold.png", + "res/actions/bold16.png"); + + instrInfo.AddParameter("object", _("Objet"), "Text", false); + instrInfo.AddParameter("yesorno", _("Mettre en gras"), "", false); + + instrInfo.cppCallingInformation.SetFunctionName("SetBold").SetIncludeFile("TextObject/TextObject.h"); + + DECLARE_END_OBJECT_ACTION() + + DECLARE_OBJECT_CONDITION("IsBold", + _("Gras"), + _("Teste si un objet texte est en gras."), + _("_PARAM0_ est en gras"), + _("Style"), + "res/conditions/bold.png", + "res/conditions/bold16.png"); + + instrInfo.AddParameter("object", _("Objet"), "Text", false); + + instrInfo.cppCallingInformation.SetFunctionName("IsBold").SetIncludeFile("TextObject/TextObject.h"); + + DECLARE_END_OBJECT_CONDITION() + + DECLARE_OBJECT_ACTION("SetItalic", + _("Italique"), + _("Met ou non le texte en italique."), + _("Mettre en italique _PARAM0_ : _PARAM1_"), + _("Style"), + "res/actions/italic.png", + "res/actions/italic16.png"); + + instrInfo.AddParameter("object", _("Objet"), "Text", false); + instrInfo.AddParameter("yesorno", _("Mettre en italique"), "", false); + + instrInfo.cppCallingInformation.SetFunctionName("SetItalic").SetIncludeFile("TextObject/TextObject.h"); + + DECLARE_END_OBJECT_ACTION() + + DECLARE_OBJECT_CONDITION("IsItalic", + _("Italique"), + _("Teste si un objet texte est en italique."), + _("_PARAM0_ est en italique"), + _("Style"), + "res/conditions/italic.png", + "res/conditions/italic16.png"); + + instrInfo.AddParameter("object", _("Objet"), "Text", false); + + instrInfo.cppCallingInformation.SetFunctionName("IsItalic").SetIncludeFile("TextObject/TextObject.h"); + + DECLARE_END_OBJECT_CONDITION() + + DECLARE_OBJECT_ACTION("SetUnderlined", + _("Souligné"), + _("Souligne ou non le texte."), + _("Souligner _PARAM0_ : _PARAM1_"), + _("Style"), + "res/actions/underline.png", + "res/actions/underline16.png"); + + instrInfo.AddParameter("object", _("Objet"), "Text", false); + instrInfo.AddParameter("yesorno", _("Souligner"), "", false); + + instrInfo.cppCallingInformation.SetFunctionName("SetUnderlined").SetIncludeFile("TextObject/TextObject.h"); + + DECLARE_END_OBJECT_ACTION() + + DECLARE_OBJECT_CONDITION("IsUnderlined", + _("Souligné"), + _("Teste si un objet texte est souligné."), + _("_PARAM0_ est souligné"), + _("Style"), + "res/conditions/underline.png", + "res/conditions/underline16.png"); + + instrInfo.AddParameter("object", _("Objet"), "Text", false); + + instrInfo.cppCallingInformation.SetFunctionName("IsUnderlined").SetIncludeFile("TextObject/TextObject.h"); + + DECLARE_END_OBJECT_CONDITION() + DECLARE_OBJECT_ACTION("Angle", _("Angle"), _("Modifie l'angle d'un objet texte."), diff --git a/Extensions/TextObject/TextExtension.cbp b/Extensions/TextObject/TextExtension.cbp index ad23eede5d..5195774da0 100644 --- a/Extensions/TextObject/TextExtension.cbp +++ b/Extensions/TextObject/TextExtension.cbp @@ -320,8 +320,6 @@ - - @@ -340,7 +338,7 @@ - + @@ -364,8 +362,6 @@ - - @@ -385,7 +381,7 @@ - + @@ -408,8 +404,6 @@ - - @@ -428,7 +422,7 @@ - + @@ -448,8 +442,6 @@ - - @@ -468,7 +460,7 @@ - + @@ -488,8 +480,8 @@ - - + + @@ -500,11 +492,11 @@ - - - + + + - + @@ -528,8 +520,8 @@ - - + + @@ -541,11 +533,11 @@ - - - + + + - + diff --git a/Extensions/TextObject/TextExtension.depend b/Extensions/TextObject/TextExtension.depend index 50777ccc8a..4bf8272bc9 100644 --- a/Extensions/TextObject/TextExtension.depend +++ b/Extensions/TextObject/TextExtension.depend @@ -8870,7 +8870,7 @@ 1264364230 d:\florian\programmation\gamedevelop\gdl\gdl\btalignedallocator.h "GDL/btScalar.h" -1326232805 source:d:\florian\programmation\gamedevelop2\extensions\textobject\textobject.cpp +1327230337 source:d:\florian\programmation\gamedevelop2\extensions\textobject\textobject.cpp "GDL/Object.h" "GDL/ImageManager.h" @@ -8881,7 +8881,6 @@ "GDL/CommonTools.h" "GDL/XmlMacros.h" "TextObject.h" - "GDL/IDE/ArbitraryResourceWorker.h" "GDL/IDE/MainEditorCommand.h" "TextObjectEditor.h" @@ -9156,7 +9155,7 @@ -1326144422 d:\florian\programmation\gamedevelop2\gdl\gdl\object.h +1328304139 d:\florian\programmation\gamedevelop2\gdl\gdl\object.h "GDL/Force.h" @@ -12217,7 +12216,7 @@ 1325335073 d:\florian\programmation\gamedevelop2\gdl\gdl\force.h -1326058787 d:\florian\programmation\gamedevelop2\gdl\gdl\event.h +1329063111 d:\florian\programmation\gamedevelop2\gdl\gdl\event.h @@ -15692,26 +15691,25 @@ 1325335072 d:\florian\programmation\gamedevelop2\gdl\gdl\rotatedrectangle.h -1322924408 d:\florian\programmation\gamedevelop2\gdl\gdl\imagemanager.h - "GDL/Game.h" - - - - +1329066373 d:\florian\programmation\gamedevelop2\gdl\gdl\imagemanager.h + + + + + -1326144572 d:\florian\programmation\gamedevelop2\gdl\gdl\game.h +1329065784 d:\florian\programmation\gamedevelop2\gdl\gdl\game.h - "GDL/Scene.h" "GDL/VariableList.h" "GDL/LoadingScreen.h" "GDL/ResourcesManager.h" -1325335073 d:\florian\programmation\gamedevelop2\gdl\gdl\scene.h +1328891436 d:\florian\programmation\gamedevelop2\gdl\gdl\scene.h "GDL/Event.h" @@ -15728,11 +15726,12 @@ -1325335071 d:\florian\programmation\gamedevelop2\gdl\gdl\position.h +1328736380 d:\florian\programmation\gamedevelop2\gdl\gdl\position.h + "GDL/VariableList.h" -1325335072 d:\florian\programmation\gamedevelop2\gdl\gdl\layer.h +1327355525 d:\florian\programmation\gamedevelop2\gdl\gdl\layer.h @@ -15784,7 +15783,7 @@ -1325278123 d:\florian\programmation\gamedevelop2\extensions\textobject\textobject.h +1327230337 d:\florian\programmation\gamedevelop2\extensions\textobject\textobject.h "GDL/Object.h" "GDL/ResourceWrapper.h" @@ -15844,12 +15843,13 @@ "wx/pen.h" "wx/bitmap.h" -1325278123 d:\florian\programmation\gamedevelop2\extensions\textobject\textobjecteditor.h +1327230162 d:\florian\programmation\gamedevelop2\extensions\textobject\textobjecteditor.h + @@ -15955,15 +15955,16 @@ 1307986701 d:\florian\programmation\gamedevelop2\extlibs\wxwidgets\include\wx\generic\statline.h -1326058492 source:d:\florian\programmation\gamedevelop2\extensions\textobject\textobjecteditor.cpp +1327230337 source:d:\florian\programmation\gamedevelop2\extensions\textobject\textobjecteditor.cpp "TextObjectEditor.h" + "GDL/Game.h" - "TextObject.h" "GDL/IDE/MainEditorCommand.h" + "TextObject.h" 1307986706 d:\florian\programmation\gamedevelop2\extlibs\wxwidgets\include\wx\colordlg.h "wx/defs.h" @@ -15994,7 +15995,7 @@ "wx/gdicmn.h" "wx/dialog.h" -1325278123 source:d:\florian\programmation\gamedevelop2\extensions\textobject\extension.cpp +1327230337 source:d:\florian\programmation\gamedevelop2\extensions\textobject\extension.cpp "GDL/ExtensionBase.h" "GDL/Version.h" "TextObject.h" @@ -16010,7 +16011,7 @@ -1326316528 d:\florian\programmation\gamedevelop2\gdl\gdl\version.h +1329345695 d:\florian\programmation\gamedevelop2\gdl\gdl\version.h 1299112181 d:\florian\programmation\gamedevelop2\extlibs\boost\boost\version.hpp @@ -16111,3 +16112,38 @@ +1307986706 d:\florian\programmation\gamedevelop2\extlibs\wxwidgets\include\wx\tglbtn.h + "wx/defs.h" + "wx/event.h" + "wx/control.h" + "wx/univ/tglbtn.h" + "wx/msw/tglbtn.h" + "wx/gtk/tglbtn.h" + "wx/gtk1/tglbtn.h" + "wx/motif/tglbtn.h" + "wx/osx/tglbtn.h" + "wx/palmos/tglbtn.h" + "wx/os2/tglbtn.h" + +1307986664 d:\florian\programmation\gamedevelop2\extlibs\wxwidgets\include\wx\univ\tglbtn.h + "wx/button.h" + +1307986678 d:\florian\programmation\gamedevelop2\extlibs\wxwidgets\include\wx\msw\tglbtn.h + "wx/bitmap.h" + +1307986696 d:\florian\programmation\gamedevelop2\extlibs\wxwidgets\include\wx\gtk\tglbtn.h + "wx/bitmap.h" + +1307986668 d:\florian\programmation\gamedevelop2\extlibs\wxwidgets\include\wx\gtk1\tglbtn.h + "wx/bitmap.h" + +1253304843 d:\florian\programmation\gamedevelop2\extlibs\wxwidgets\include\wx\motif\tglbtn.h + "wx/checkbox.h" + +1307986691 d:\florian\programmation\gamedevelop2\extlibs\wxwidgets\include\wx\osx\tglbtn.h + +1307986672 d:\florian\programmation\gamedevelop2\extlibs\wxwidgets\include\wx\palmos\tglbtn.h + "wx/checkbox.h" + +1307986684 d:\florian\programmation\gamedevelop2\extlibs\wxwidgets\include\wx\os2\tglbtn.h + diff --git a/Extensions/TextObject/TextExtension.layout b/Extensions/TextObject/TextExtension.layout index f4e31f290c..c42b684fe6 100644 --- a/Extensions/TextObject/TextExtension.layout +++ b/Extensions/TextObject/TextExtension.layout @@ -1,19 +1,19 @@ - - + + - - + + - + - - + + - - + + diff --git a/Extensions/TextObject/TextInitialPositionPanel.cpp b/Extensions/TextObject/TextInitialPositionPanel.cpp deleted file mode 100644 index cf673e1ede..0000000000 --- a/Extensions/TextObject/TextInitialPositionPanel.cpp +++ /dev/null @@ -1,90 +0,0 @@ -#if defined(GDE) -#include "Box3DInitialPositionPanel.h" - -//(*InternalHeaders(Box3DInitialPositionPanel) -#include -#include -//*) - -//(*IdInit(Box3DInitialPositionPanel) -const long Box3DInitialPositionPanel::ID_STATICTEXT4 = wxNewId(); -const long Box3DInitialPositionPanel::ID_TEXTCTRL3 = wxNewId(); -const long Box3DInitialPositionPanel::ID_STATICTEXT5 = wxNewId(); -const long Box3DInitialPositionPanel::ID_STATICTEXT2 = wxNewId(); -const long Box3DInitialPositionPanel::ID_TEXTCTRL2 = wxNewId(); -const long Box3DInitialPositionPanel::ID_STATICTEXT3 = wxNewId(); -const long Box3DInitialPositionPanel::ID_STATICTEXT6 = wxNewId(); -const long Box3DInitialPositionPanel::ID_TEXTCTRL4 = wxNewId(); -const long Box3DInitialPositionPanel::ID_STATICTEXT7 = wxNewId(); -const long Box3DInitialPositionPanel::ID_STATICTEXT1 = wxNewId(); -const long Box3DInitialPositionPanel::ID_TEXTCTRL1 = wxNewId(); -//*) - -BEGIN_EVENT_TABLE(Box3DInitialPositionPanel,wxPanel) - //(*EventTable(Box3DInitialPositionPanel) - //*) -END_EVENT_TABLE() - -Box3DInitialPositionPanel::Box3DInitialPositionPanel(wxWindow* parent,wxWindowID id,const wxPoint& pos,const wxSize& size) -{ - //(*Initialize(Box3DInitialPositionPanel) - wxStaticBoxSizer* StaticBoxSizer2; - wxFlexGridSizer* FlexGridSizer4; - wxFlexGridSizer* FlexGridSizer3; - wxFlexGridSizer* FlexGridSizer5; - wxFlexGridSizer* FlexGridSizer2; - wxFlexGridSizer* FlexGridSizer6; - wxStaticBoxSizer* StaticBoxSizer1; - wxFlexGridSizer* FlexGridSizer1; - - Create(parent, id, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("id")); - FlexGridSizer1 = new wxFlexGridSizer(0, 3, 0, 0); - StaticBoxSizer1 = new wxStaticBoxSizer(wxHORIZONTAL, this, _("Angle")); - FlexGridSizer3 = new wxFlexGridSizer(0, 3, 0, 0); - FlexGridSizer4 = new wxFlexGridSizer(0, 3, 0, 0); - StaticText4 = new wxStaticText(this, ID_STATICTEXT4, _("Yaw :"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT4")); - FlexGridSizer4->Add(StaticText4, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - yawEdit = new wxTextCtrl(this, ID_TEXTCTRL3, _("0"), wxDefaultPosition, wxSize(50,21), 0, wxDefaultValidator, _T("ID_TEXTCTRL3")); - FlexGridSizer4->Add(yawEdit, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - StaticText5 = new wxStaticText(this, ID_STATICTEXT5, _("°"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT5")); - FlexGridSizer4->Add(StaticText5, 1, wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - FlexGridSizer3->Add(FlexGridSizer4, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0); - FlexGridSizer5 = new wxFlexGridSizer(0, 3, 0, 0); - StaticText2 = new wxStaticText(this, ID_STATICTEXT2, _("Pitch :"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT2")); - FlexGridSizer5->Add(StaticText2, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - pitchEdit = new wxTextCtrl(this, ID_TEXTCTRL2, _("0"), wxDefaultPosition, wxSize(50,21), 0, wxDefaultValidator, _T("ID_TEXTCTRL2")); - FlexGridSizer5->Add(pitchEdit, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - StaticText3 = new wxStaticText(this, ID_STATICTEXT3, _("°"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT3")); - FlexGridSizer5->Add(StaticText3, 1, wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - FlexGridSizer3->Add(FlexGridSizer5, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0); - FlexGridSizer6 = new wxFlexGridSizer(0, 3, 0, 0); - StaticText6 = new wxStaticText(this, ID_STATICTEXT6, _("Roll :"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT6")); - FlexGridSizer6->Add(StaticText6, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - rollEdit = new wxTextCtrl(this, ID_TEXTCTRL4, _("0"), wxDefaultPosition, wxSize(50,21), 0, wxDefaultValidator, _T("ID_TEXTCTRL4")); - FlexGridSizer6->Add(rollEdit, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - StaticText7 = new wxStaticText(this, ID_STATICTEXT7, _("°"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT7")); - FlexGridSizer6->Add(StaticText7, 1, wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - FlexGridSizer3->Add(FlexGridSizer6, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0); - StaticBoxSizer1->Add(FlexGridSizer3, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0); - FlexGridSizer1->Add(StaticBoxSizer1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - StaticBoxSizer2 = new wxStaticBoxSizer(wxHORIZONTAL, this, _("Coordonnée Z")); - FlexGridSizer2 = new wxFlexGridSizer(0, 3, 0, 0); - StaticText1 = new wxStaticText(this, ID_STATICTEXT1, _("Hauteur initiale :"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT1")); - FlexGridSizer2->Add(StaticText1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - zEdit = new wxTextCtrl(this, ID_TEXTCTRL1, _("0"), wxDefaultPosition, wxSize(50,21), 0, wxDefaultValidator, _T("ID_TEXTCTRL1")); - FlexGridSizer2->Add(zEdit, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - StaticBoxSizer2->Add(FlexGridSizer2, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0); - FlexGridSizer1->Add(StaticBoxSizer2, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - SetSizer(FlexGridSizer1); - FlexGridSizer1->Fit(this); - FlexGridSizer1->SetSizeHints(this); - //*) -} - -Box3DInitialPositionPanel::~Box3DInitialPositionPanel() -{ - //(*Destroy(Box3DInitialPositionPanel) - //*) -} - -#endif diff --git a/Extensions/TextObject/TextInitialPositionPanel.h b/Extensions/TextObject/TextInitialPositionPanel.h deleted file mode 100644 index 590a9a352f..0000000000 --- a/Extensions/TextObject/TextInitialPositionPanel.h +++ /dev/null @@ -1,58 +0,0 @@ -#if defined(GDE) -#ifndef BOX3DINITIALPOSITIONPANEL_H -#define BOX3DINITIALPOSITIONPANEL_H - -//(*Headers(Box3DInitialPositionPanel) -#include -#include -#include -#include -//*) - -class Box3DInitialPositionPanel: public wxPanel -{ - public: - - Box3DInitialPositionPanel(wxWindow* parent,wxWindowID id=wxID_ANY,const wxPoint& pos=wxDefaultPosition,const wxSize& size=wxDefaultSize); - virtual ~Box3DInitialPositionPanel(); - - //(*Declarations(Box3DInitialPositionPanel) - wxTextCtrl* rollEdit; - wxStaticText* StaticText2; - wxStaticText* StaticText6; - wxTextCtrl* yawEdit; - wxStaticText* StaticText1; - wxStaticText* StaticText3; - wxTextCtrl* zEdit; - wxStaticText* StaticText5; - wxStaticText* StaticText7; - wxTextCtrl* pitchEdit; - wxStaticText* StaticText4; - //*) - - protected: - - //(*Identifiers(Box3DInitialPositionPanel) - static const long ID_STATICTEXT4; - static const long ID_TEXTCTRL3; - static const long ID_STATICTEXT5; - static const long ID_STATICTEXT2; - static const long ID_TEXTCTRL2; - static const long ID_STATICTEXT3; - static const long ID_STATICTEXT6; - static const long ID_TEXTCTRL4; - static const long ID_STATICTEXT7; - static const long ID_STATICTEXT1; - static const long ID_TEXTCTRL1; - //*) - - private: - - //(*Handlers(Box3DInitialPositionPanel) - //*) - - DECLARE_EVENT_TABLE() -}; - -#endif -#endif diff --git a/Extensions/TextObject/TextObject.cpp b/Extensions/TextObject/TextObject.cpp index 2765d76037..848cc7c1c9 100644 --- a/Extensions/TextObject/TextObject.cpp +++ b/Extensions/TextObject/TextObject.cpp @@ -37,7 +37,6 @@ freely, subject to the following restrictions: #include "TextObject.h" #if defined(GD_IDE_ONLY) -#include #include "GDL/IDE/ArbitraryResourceWorker.h" #include "GDL/IDE/MainEditorCommand.h" #include "TextObjectEditor.h" @@ -109,6 +108,19 @@ void TextObject::LoadFromXml(const TiXmlElement * elem) SetColor(r,g,b); } + if ( elem->FirstChildElement( "Style" ) == NULL || + elem->FirstChildElement( "Style" )->Attribute("value") == NULL ) + { + cout << "Les informations concernant le style du texte manquent."; + } + else + { + int style = 0; + elem->FirstChildElement("Style")->QueryIntAttribute("value", &style); + + SetFontStyle(style); + } + GD_CURRENT_ELEMENT_LOAD_ATTRIBUTE_BOOL("smoothed", smoothed); SetSmooth(smoothed); } @@ -134,6 +146,10 @@ void TextObject::SaveToXml(TiXmlElement * elem) color->SetAttribute("g", GetColorG()); color->SetAttribute("b", GetColorB()); + TiXmlElement * style = new TiXmlElement( "Style" ); + style->SetAttribute("value", GetFontStyle()); + elem->LinkEndChild( style ); + GD_CURRENT_ELEMENT_SAVE_ATTRIBUTE_BOOL("smoothed", smoothed); } #endif @@ -375,6 +391,57 @@ void TextObject::SetFont(const std::string & fontName_) text.SetOrigin(text.GetRect().Width/2, text.GetRect().Height/2); } +void TextObject::SetFontStyle(int style) +{ + text.SetStyle(style); +} + +int TextObject::GetFontStyle() +{ + return text.GetStyle(); +} + +bool TextObject::HasFontStyle(sf::Text::Style style) +{ + return (text.GetStyle() & style) != 0; +} + +bool TextObject::IsBold() +{ + return HasFontStyle(sf::Text::Bold); +} + +void TextObject::SetBold(bool bold) +{ + SetFontStyle((bold ? sf::Text::Bold : 0) | + (IsItalic() ? sf::Text::Italic : 0) | + (IsUnderlined() ? sf::Text::Underlined : 0) ); +} + +bool TextObject::IsItalic() +{ + return HasFontStyle(sf::Text::Italic); +} + +void TextObject::SetItalic(bool italic) +{ + SetFontStyle((IsBold() ? sf::Text::Bold : 0) | + (italic ? sf::Text::Italic : 0) | + (IsUnderlined() ? sf::Text::Underlined : 0) ); +} + +bool TextObject::IsUnderlined() +{ + return HasFontStyle(sf::Text::Underlined); +} + +void TextObject::SetUnderlined(bool underlined) +{ + SetFontStyle((IsBold() ? sf::Text::Bold : 0) | + (IsItalic() ? sf::Text::Italic : 0) | + (underlined ? sf::Text::Underlined : 0) ); +} + void TextObject::SetSmooth(bool smooth) { smoothed = smooth; diff --git a/Extensions/TextObject/TextObject.h b/Extensions/TextObject/TextObject.h index bb2d2c9ec3..4c9ce18d11 100644 --- a/Extensions/TextObject/TextObject.h +++ b/Extensions/TextObject/TextObject.h @@ -114,6 +114,17 @@ class GD_EXTENSION_API TextObject : public Object inline unsigned int GetColorB() const { return colorB; }; void SetColor(const std::string & colorStr); + void SetFontStyle(int style); + int GetFontStyle(); + bool HasFontStyle(sf::Text::Style style); + + bool IsBold(); + void SetBold(bool bold); + bool IsItalic(); + void SetItalic(bool italic); + bool IsUnderlined(); + void SetUnderlined(bool underlined); + void SetSmooth(bool smooth); bool IsSmoothed() const {return smoothed;}; diff --git a/Extensions/TextObject/TextObjectEditor.cpp b/Extensions/TextObject/TextObjectEditor.cpp index b7b870f02d..0b405f9847 100644 --- a/Extensions/TextObject/TextObjectEditor.cpp +++ b/Extensions/TextObject/TextObjectEditor.cpp @@ -29,6 +29,7 @@ freely, subject to the following restrictions: #include "TextObjectEditor.h" //(*InternalHeaders(TextObjectEditor) +#include #include #include //*) @@ -36,11 +37,15 @@ freely, subject to the following restrictions: #include #include "GDL/Game.h" -#include "TextObject.h" -#include "GDL/IDE/MainEditorCommand.h" +#include "GDL/IDE/MainEditorCommand.h" +#include "TextObject.h" //(*IdInit(TextObjectEditor) const long TextObjectEditor::ID_TEXTCTRL1 = wxNewId(); +const long TextObjectEditor::ID_STATICTEXT3 = wxNewId(); +const long TextObjectEditor::ID_TOGGLEBUTTON1 = wxNewId(); +const long TextObjectEditor::ID_TOGGLEBUTTON2 = wxNewId(); +const long TextObjectEditor::ID_TOGGLEBUTTON3 = wxNewId(); const long TextObjectEditor::ID_STATICTEXT1 = wxNewId(); const long TextObjectEditor::ID_BUTTON3 = wxNewId(); const long TextObjectEditor::ID_STATICTEXT2 = wxNewId(); @@ -69,6 +74,7 @@ object(object_) wxFlexGridSizer* FlexGridSizer3; wxFlexGridSizer* FlexGridSizer5; wxFlexGridSizer* FlexGridSizer2; + wxGridSizer* GridSizer1; wxStaticBoxSizer* StaticBoxSizer1; wxFlexGridSizer* FlexGridSizer1; @@ -77,22 +83,38 @@ object(object_) FlexGridSizer1->AddGrowableCol(0); FlexGridSizer1->AddGrowableRow(0); StaticBoxSizer1 = new wxStaticBoxSizer(wxHORIZONTAL, this, _("Texte")); - textEdit = new wxTextCtrl(this, ID_TEXTCTRL1, wxEmptyString, wxDefaultPosition, wxSize(332,173), wxTE_MULTILINE, wxDefaultValidator, _T("ID_TEXTCTRL1")); + textEdit = new wxTextCtrl(this, ID_TEXTCTRL1, wxEmptyString, wxDefaultPosition, wxSize(332,142), wxTE_MULTILINE, wxDefaultValidator, _T("ID_TEXTCTRL1")); StaticBoxSizer1->Add(textEdit, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); FlexGridSizer1->Add(StaticBoxSizer1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); StaticBoxSizer2 = new wxStaticBoxSizer(wxHORIZONTAL, this, _("Autres propriétés")); FlexGridSizer3 = new wxFlexGridSizer(0, 2, 0, 0); FlexGridSizer3->AddGrowableCol(1); + StaticText3 = new wxStaticText(this, ID_STATICTEXT3, _("Style :"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT3")); + FlexGridSizer3->Add(StaticText3, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); + GridSizer1 = new wxGridSizer(1, 3, 0, 0); + boldToggleButton = new wxToggleButton(this, ID_TOGGLEBUTTON1, _("Gras"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_TOGGLEBUTTON1")); + wxFont boldToggleButtonFont(wxDEFAULT,wxDEFAULT,wxFONTSTYLE_NORMAL,wxBOLD,false,wxEmptyString,wxFONTENCODING_DEFAULT); + boldToggleButton->SetFont(boldToggleButtonFont); + GridSizer1->Add(boldToggleButton, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); + italicToggleButton = new wxToggleButton(this, ID_TOGGLEBUTTON2, _("Italique"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_TOGGLEBUTTON2")); + wxFont italicToggleButtonFont(wxDEFAULT,wxDEFAULT,wxFONTSTYLE_ITALIC,wxNORMAL,false,wxEmptyString,wxFONTENCODING_DEFAULT); + italicToggleButton->SetFont(italicToggleButtonFont); + GridSizer1->Add(italicToggleButton, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); + underlineToggleButton = new wxToggleButton(this, ID_TOGGLEBUTTON3, _("Souligné"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_TOGGLEBUTTON3")); + wxFont underlineToggleButtonFont(wxDEFAULT,wxDEFAULT,wxFONTSTYLE_NORMAL,wxNORMAL,true,wxEmptyString,wxFONTENCODING_DEFAULT); + underlineToggleButton->SetFont(underlineToggleButtonFont); + GridSizer1->Add(underlineToggleButton, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); + FlexGridSizer3->Add(GridSizer1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0); StaticText1 = new wxStaticText(this, ID_STATICTEXT1, _("Couleur :"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT1")); FlexGridSizer3->Add(StaticText1, 1, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); colorBt = new wxButton(this, ID_BUTTON3, _("Choisir la couleur"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON3")); FlexGridSizer3->Add(colorBt, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); StaticText2 = new wxStaticText(this, ID_STATICTEXT2, _("Police :"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT2")); FlexGridSizer3->Add(StaticText2, 1, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); - FlexGridSizer4 = new wxFlexGridSizer(0, 3, 0, 0); - FlexGridSizer4->AddGrowableCol(1); + FlexGridSizer4 = new wxFlexGridSizer(0, 2, 0, 0); + FlexGridSizer4->AddGrowableCol(0); fontEdit = new wxTextCtrl(this, ID_TEXTCTRL2, wxEmptyString, wxDefaultPosition, wxSize(75,21), 0, wxDefaultValidator, _T("ID_TEXTCTRL2")); - FlexGridSizer4->Add(fontEdit, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); + FlexGridSizer4->Add(fontEdit, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); fontBt = new wxButton(this, ID_BUTTON4, _("Choisir la police"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON4")); FlexGridSizer4->Add(fontBt, 1, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); FlexGridSizer3->Add(FlexGridSizer4, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0); @@ -130,13 +152,27 @@ object(object_) fontEdit->ChangeValue(object.GetFont()); sizeEdit->SetValue(object.GetCharacterSize()); colorBt->SetBackgroundColour(wxColour(object.GetColorR(), object.GetColorG(), object.GetColorB())); - smoothCheck->SetValue(object.IsSmoothed()); + smoothCheck->SetValue(object.IsSmoothed()); + + boldToggleButton->SetValue(object.HasFontStyle(sf::Text::Bold)); + italicToggleButton->SetValue(object.HasFontStyle(sf::Text::Italic)); + underlineToggleButton->SetValue(object.HasFontStyle(sf::Text::Underlined)); } TextObjectEditor::~TextObjectEditor() { //(*Destroy(TextObjectEditor) //*) +} + +void TextObjectEditor::AdaptFontColor(wxButton *button) +{ + wxColor color = button->GetBackgroundColour(); + + if(color.Red() < 140 && color.Green() < 140 && color.Blue() < 140) + button->SetForegroundColour(wxColour(255, 255, 255)); + else + button->SetForegroundColour(wxColour(0, 0, 0)); } @@ -148,6 +184,10 @@ void TextObjectEditor::OnokBtClick(wxCommandEvent& event) object.SetSmooth(smoothCheck->GetValue()); object.SetColor(static_cast(colorBt->GetBackgroundColour().Red()), static_cast(colorBt->GetBackgroundColour().Green()), static_cast(colorBt->GetBackgroundColour().Blue())); + object.SetFontStyle((boldToggleButton->GetValue() ? sf::Text::Bold : 0) | + (italicToggleButton->GetValue() ? sf::Text::Italic : 0) | + (underlineToggleButton->GetValue() ? sf::Text::Underlined : 0) ); + EndModal(1); } @@ -157,6 +197,8 @@ void TextObjectEditor::OncolorBtClick(wxCommandEvent& event) if ( color.IsOk() ) colorBt->SetBackgroundColour(color); + AdaptFontColor(colorBt); + return; } diff --git a/Extensions/TextObject/TextObjectEditor.h b/Extensions/TextObject/TextObjectEditor.h index 9e7353541e..8dbf4173c1 100644 --- a/Extensions/TextObject/TextObjectEditor.h +++ b/Extensions/TextObject/TextObjectEditor.h @@ -35,6 +35,7 @@ freely, subject to the following restrictions: #include #include #include +#include #include #include #include @@ -48,26 +49,36 @@ class TextObjectEditor: public wxDialog public: TextObjectEditor( wxWindow* parent, Game & game_, TextObject & object_, MainEditorCommand & mainEditorCommand_ ); - virtual ~TextObjectEditor(); + virtual ~TextObjectEditor(); + + void AdaptFontColor(wxButton *button); //(*Declarations(TextObjectEditor) wxSpinCtrl* sizeEdit; wxStaticText* StaticText2; wxTextCtrl* textEdit; wxStaticText* StaticText1; + wxToggleButton* underlineToggleButton; + wxStaticText* StaticText3; wxButton* fontBt; wxButton* colorBt; wxStaticLine* StaticLine1; + wxToggleButton* boldToggleButton; wxCheckBox* smoothCheck; wxTextCtrl* fontEdit; wxStaticText* StaticText4; wxButton* okBt; + wxToggleButton* italicToggleButton; //*) protected: //(*Identifiers(TextObjectEditor) static const long ID_TEXTCTRL1; + static const long ID_STATICTEXT3; + static const long ID_TOGGLEBUTTON1; + static const long ID_TOGGLEBUTTON2; + static const long ID_TOGGLEBUTTON3; static const long ID_STATICTEXT1; static const long ID_BUTTON3; static const long ID_STATICTEXT2;