Add RichText sample

This commit is contained in:
CaiWenzhi 2014-03-06 20:52:29 +08:00
parent 03f5be47da
commit 8b7a5c3141
11 changed files with 151 additions and 2 deletions

View File

@ -1 +1 @@
d5bc7043083749a9bb33b41b6f902c251d4de747
d5aad52713bc25f053afa48235e48aae9155f328

View File

@ -23,7 +23,8 @@ UITextAtlas.cpp \
UITextBMFont.cpp \
UILoadingBar.cpp \
UISlider.cpp \
UITextField.cpp
UITextField.cpp \
UIRichText.cpp
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/.. \

View File

@ -17,6 +17,7 @@ set(GUI_SRC
UILoadingBar.cpp
UISlider.cpp
UITextField.cpp
UIRichText.cpp
)
add_library(gui STATIC

View File

@ -41,6 +41,7 @@ THE SOFTWARE.
#include "gui/UITextBMFont.h"
#include "gui/UIPageView.h"
#include "gui/UIHelper.h"
#include "gui/UIRichText.h"
NS_CC_BEGIN
namespace ui {

View File

@ -80,6 +80,7 @@ Classes/ExtensionsTest/CocoStudioGUITest/UITextAtlasTest/UITextAtlasTest.cpp \
Classes/ExtensionsTest/CocoStudioGUITest/UITextBMFontTest/UITextBMFontTest.cpp \
Classes/ExtensionsTest/CocoStudioGUITest/UITextFieldTest/UITextFieldTest.cpp \
Classes/ExtensionsTest/CocoStudioGUITest/UIWidgetAddNodeTest/UIWidgetAddNodeTest.cpp \
Classes/ExtensionsTest/CocoStudioGUITest/UIRichTextTest/UIRichTextTest.cpp \
Classes/ExtensionsTest/CocoStudioGUITest/UIScene_Editor.cpp \
Classes/ExtensionsTest/CocoStudioGUITest/UISceneManager_Editor.cpp \
Classes/ExtensionsTest/CocoStudioGUITest/UIButtonTest/UIButtonTest_Editor.cpp \

View File

@ -94,6 +94,7 @@ set(SAMPLE_SRC
Classes/ExtensionsTest/CocoStudioGUITest/UITextBMFontTest/UITextBMFontTest.cpp
Classes/ExtensionsTest/CocoStudioGUITest/UITextFieldTest/UITextFieldTest.cpp
Classes/ExtensionsTest/CocoStudioGUITest/UIWidgetAddNodeTest/UIWidgetAddNodeTest.cpp
Classes/ExtensionsTest/CocoStudioGUITest/UIRichTextTest/UIRichTextTest.cpp
Classes/ExtensionsTest/CocoStudioGUITest/UIScene_Editor.cpp
Classes/ExtensionsTest/CocoStudioGUITest/UISceneManager_Editor.cpp
Classes/ExtensionsTest/CocoStudioGUITest/UIButtonTest/UIButtonTest_Editor.cpp

View File

@ -255,6 +255,18 @@ g_guisTests[] =
Director::getInstance()->replaceScene(pScene);
}
},
{
"gui RichTextTest",
[](Ref* sender)
{
UISceneManager* pManager = UISceneManager::sharedUISceneManager();
pManager->setCurrentUISceneId(kUIRichTextTest);
pManager->setMinUISceneId(kUIRichTextTest);
pManager->setMaxUISceneId(kUIRichTextTest);
Scene* pScene = pManager->currentUIScene();
Director::getInstance()->replaceScene(pScene);
}
},
};
static const int g_maxTests = sizeof(g_guisTests) / sizeof(g_guisTests[0]);

View File

@ -0,0 +1,103 @@
#include "UIRichTextTest.h"
#include "cocostudio/CCArmatureDataManager.h"
#include "cocostudio/CCArmature.h"
UIRichTextTest::UIRichTextTest()
{
}
UIRichTextTest::~UIRichTextTest()
{
}
bool UIRichTextTest::init()
{
if (UIScene::init())
{
Size widgetSize = _widget->getSize();
// Add the alert
Text *alert = Text::create();
alert->setText("RichText");
alert->setFontName("Marker Felt");
alert->setFontSize(30);
alert->setColor(Color3B(159, 168, 176));
alert->setPosition(Point(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getSize().height * 3.125));
_widget->addChild(alert);
Button* button = Button::create();
button->setTouchEnabled(true);
button->loadTextures("cocosgui/animationbuttonnormal.png", "cocosgui/animationbuttonpressed.png", "");
button->setTitleText("switch");
button->setPosition(Point(widgetSize.width / 2.0f, widgetSize.height / 2.0f + button->getSize().height * 2.5));
button->addTouchEventListener(this, toucheventselector(UIRichTextTest::touchEvent));
button->setZOrder(10);
_widget->addChild(button);
// RichText
_richText = RichText::create();
_richText->ignoreContentAdaptWithSize(false);
_richText->setSize(Size(100, 100));
RichElementText* re1 = RichElementText::create(1, Color3B::WHITE, 255, "This color is white. ", "Helvetica", 10);
RichElementText* re2 = RichElementText::create(2, Color3B::YELLOW, 255, "And this is yellow. ", "Helvetica", 10);
RichElementText* re3 = RichElementText::create(3, Color3B::BLUE, 255, "This one is blue. ", "Helvetica", 10);
RichElementText* re4 = RichElementText::create(4, Color3B::GREEN, 255, "And green. ", "Helvetica", 10);
RichElementText* re5 = RichElementText::create(5, Color3B::RED, 255, "Last one is red ", "Helvetica", 10);
RichElementImage* reimg = RichElementImage::create(6, Color3B::WHITE, 255, "cocosgui/sliderballnormal.png");
cocostudio::ArmatureDataManager::getInstance()->addArmatureFileInfo("cocosgui/100/100.ExportJson");
cocostudio::Armature *pAr = cocostudio::Armature::create("100");
pAr->getAnimation()->play("Animation1");
RichElementCustomNode* recustom = RichElementCustomNode::create(1, Color3B::WHITE, 255, pAr);
RichElementText* re6 = RichElementText::create(7, Color3B::ORANGE, 255, "Have fun!! ", "Helvetica", 10);
_richText->pushBackElement(re1);
_richText->insertElement(re2, 1);
_richText->pushBackElement(re3);
_richText->pushBackElement(re4);
_richText->pushBackElement(re5);
_richText->insertElement(reimg, 2);
_richText->pushBackElement(recustom);
_richText->pushBackElement(re6);
_richText->setPosition(Point(widgetSize.width / 2, widgetSize.height / 2));
_richText->setZOrder(10);
_widget->addChild(_richText);
return true;
}
return false;
}
void UIRichTextTest::touchEvent(Ref *pSender, TouchEventType type)
{
switch (type)
{
case TOUCH_EVENT_ENDED:
{
if (_richText->isIgnoreContentAdaptWithSize())
{
_richText->ignoreContentAdaptWithSize(false);
_richText->setSize(Size(100, 100));
}
else
{
_richText->ignoreContentAdaptWithSize(true);
}
}
break;
default:
break;
}
}

View File

@ -0,0 +1,23 @@
#ifndef __TestCpp__UIRichTextTest__
#define __TestCpp__UIRichTextTest__
#include "../UIScene.h"
class UIRichTextTest : public UIScene
{
public:
UIRichTextTest();
~UIRichTextTest();
bool init();
void touchEvent(Ref *pSender, TouchEventType type);
protected:
UI_SCENE_CREATE_FUNC(UIRichTextTest)
protected:
RichText* _richText;
};
#endif /* defined(__TestCpp__UIRichTextTest__) */

View File

@ -16,6 +16,7 @@
#include "UIPageViewTest/UIPageViewTest.h"
#include "UIListViewTest/UIListViewTest.h"
#include "UIWidgetAddNodeTest/UIWidgetAddNodeTest.h"
#include "UIRichTextTest/UIRichTextTest.h"
/*
#include "UISwitchTest/UISwitchTest.h"
*/
@ -107,6 +108,7 @@ static const char* s_testArray[] =
"UIPickerViewTest_Horizontal",
*/
"UIWidgetAddNodeTest",
"UIRichTextTest",
};
static UISceneManager *sharedInstance = NULL;
@ -354,6 +356,9 @@ Scene *UISceneManager::currentUIScene()
case kUIWidgetAddNodeTest:
return UIWidgetAddNodeTest::sceneWithTitle(s_testArray[_currentUISceneId]);
case kUIRichTextTest:
return UIRichTextTest::sceneWithTitle(s_testArray[_currentUISceneId]);
}
return NULL;
}

View File

@ -100,6 +100,7 @@ enum
kUIPickerViewTest_Horizontal,
*/
kUIWidgetAddNodeTest,
kUIRichTextTest,
kUITestMax
};