Added a test for BTextView. It is quite basic yet.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27678 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus
2008-09-21 21:37:22 +00:00
parent cc3b6f3a05
commit 6152a5bc58
4 changed files with 200 additions and 0 deletions
@@ -31,6 +31,7 @@ SimpleTest WidgetLayoutTest :
ScrollBarTest.cpp
SliderTest.cpp
TextControlTest.cpp
TextViewTest.cpp
:
be
;
@@ -23,6 +23,7 @@
#include "StringView.h"
#include "Test.h"
#include "TextControlTest.h"
#include "TextViewTest.h"
#include "TwoDimensionalSliderView.h"
#include "View.h"
#include "ViewContainer.h"
@@ -53,6 +54,7 @@ const test_info kTestInfos[] = {
{ "BScrollBar", ScrollBarTest::CreateTest },
{ "BSlider", SliderTest::CreateTest },
{ "BTextControl", TextControlTest::CreateTest },
{ "BTextView", TextViewTest::CreateTest },
{ NULL, NULL }
};
@@ -0,0 +1,155 @@
/*
* Copyright 2008, Stephan Aßmus <[email protected]>.
* Copyright 2007, Ingo Weinhold <[email protected]>.
* All rights reserved. Distributed under the terms of the MIT License.
*/
#include "TextViewTest.h"
#include <TextView.h>
#include "CheckBox.h"
#include "GroupView.h"
#include "TestView.h"
// messages
enum {
MSG_UPDATE_INSETS = 'upin',
MSG_UPDATE_TEXT = 'uptx',
MSG_UPDATE_FONT = 'upfn',
};
static const char* kNormalText = "Some text to get something on the screen.\n"
"There is even a line break to see that as well.";
static const char* kAlternativeText = "This is some different Text to "
"check out what happens when the text changes.";
TextViewTest::TextViewTest()
: Test("TextView", NULL),
fTextView(new BTextView("text view")),
// fTextView(new BTextView(BRect(0, 0, 49, 49), "name",
// BRect(0, 0, 49, 49), B_FOLLOW_NONE, B_WILL_DRAW | B_PULSE_NEEDED
// | B_SUPPORTS_LAYOUT)),
fUseInsetsCheckBox(NULL),
fTextCheckBox(NULL),
fFontCheckBox(NULL)
{
SetView(fTextView);
fTextView->SetText(kNormalText);
}
Test*
TextViewTest::CreateTest()
{
return new TextViewTest;
}
void
TextViewTest::ActivateTest(View* controls)
{
GroupView* group = new GroupView(B_VERTICAL);
group->SetFrame(controls->Bounds());
group->SetSpacing(0, 4);
controls->AddChild(group);
// insets
fUseInsetsCheckBox = new LabeledCheckBox("Use text rect insets",
new BMessage(MSG_UPDATE_INSETS), this);
group->AddChild(fUseInsetsCheckBox);
// text
fTextCheckBox = new LabeledCheckBox("Use alternative text",
new BMessage(MSG_UPDATE_TEXT), this);
group->AddChild(fTextCheckBox);
// font
fFontCheckBox = new LabeledCheckBox("Use large font",
new BMessage(MSG_UPDATE_FONT), this);
group->AddChild(fFontCheckBox);
// glue
group->AddChild(new Glue());
}
void
TextViewTest::DectivateTest()
{
}
void
TextViewTest::MessageReceived(BMessage* message)
{
switch (message->what) {
case MSG_UPDATE_INSETS:
_UpdateInsets();
break;
case MSG_UPDATE_TEXT:
_UpdateText();
break;
case MSG_UPDATE_FONT:
_UpdateFont();
break;
default:
Test::MessageReceived(message);
break;
}
}
// #pragma mark - private
void
TextViewTest::_UpdateInsets()
{
if (fUseInsetsCheckBox == NULL)
return;
if (fUseInsetsCheckBox->IsSelected())
fTextView->SetInsets(10, 10, 10, 10);
else
fTextView->SetInsets(0, 0, 0, 0);
}
void
TextViewTest::_UpdateText()
{
if (fTextCheckBox == NULL)
return;
if (fTextCheckBox->IsSelected())
fTextView->SetText(kAlternativeText);
else
fTextView->SetText(kNormalText);
}
void
TextViewTest::_UpdateFont()
{
if (fFontCheckBox == NULL)
return;
BFont font(be_plain_font);
if (fFontCheckBox->IsSelected()) {
font.SetSize(ceilf(font.Size() * 1.5));
fTextView->SetFontAndColor(&font);
} else {
fTextView->SetFontAndColor(&font);
}
}
@@ -0,0 +1,42 @@
/*
* Copyright 2008, Stephan Aßmus <[email protected]>.
* Copyright 2007, Ingo Weinhold <[email protected]>.
* All rights reserved. Distributed under the terms of the MIT License.
*/
#ifndef WIDGET_LAYOUT_TEST_TEXT_VIEW_TEST_H
#define WIDGET_LAYOUT_TEST_TEXT_VIEW_TEST_H
#include "Test.h"
class BTextView;
class LabeledCheckBox;
class TextViewTest : public Test {
public:
TextViewTest();
static Test* CreateTest();
virtual void ActivateTest(View* controls);
virtual void DectivateTest();
virtual void MessageReceived(BMessage* message);
private:
void _UpdateInsets();
void _UpdateText();
void _UpdateFont();
private:
BTextView* fTextView;
LabeledCheckBox* fUseInsetsCheckBox;
LabeledCheckBox* fTextCheckBox;
LabeledCheckBox* fFontCheckBox;
};
#endif // WIDGET_LAYOUT_TEST_TEXT_VIEW_TEST_H