[Tizen] Integration TextUtils from tizen_6.0 to tizen_5.5_tv 58/253058/1
authorJoogab Yun <joogab.yun@samsung.com>
Tue, 2 Feb 2021 04:15:28 +0000 (13:15 +0900)
committerJoogab Yun <joogab.yun@samsung.com>
Thu, 4 Feb 2021 06:03:54 +0000 (15:03 +0900)
commitfe02737ec0f5c28a635ad11576771d3e643191da
treebd122b130caf4a13bd2bc5a9f73787db34883777
parent30e6e7f0c1aa4d58b45bef18a80f0a496c88d4b0
[Tizen] Integration TextUtils from tizen_6.0 to tizen_5.5_tv

    Add MIN_LINE_SIZE property

    Users want to set the line size in multi-line.
    We have a lineSpacing property which allows us to set the spacing of the lines.

    However, the user wants to achieve a similar effect by setting the size of the line, not lineSpacing.

    Change-Id: Ia96e1875e90454a3269d2ad853d3c4e20ce66ae9

    Change Resize() to Reserve() to improve performance.

    Change-Id: I6078fb17131630a770cb770dc9f2251f1c9ae6b6

    Divide Render() into small apis

    Change-Id: If20f7a5cef20386e2aeb00cf1d3e283b10da3e93

    Add GetLastCharacterIndex().

    This returns the last character indices when the input text is rendered with the layout size.

    Change-Id: I9f6ff3226a3aeb94c19d3ad69aabc8e017f99cbe

    add minLineSize at text-utils-devel

    Change-Id: I1a11d35283b8f7b4cf14b0ae40487307b24e0a0a

    There is a problem that ellipsis does not work properly when MIN_LINE_SIZE is set.

    Update the penY value.

    Change-Id: Iaab2f2590bda4c80316262dcf4f9fcb0f5a91343

    If the size of the text is larger than the size of the control,
    setting it to VerticalAlignment::Center cuts the top and bottom of the text.

    The VerticalAlignment::CENTER setting works when the size of the control is enough.

    Change-Id: I3d35b4dfceb4297c89bddfc5c5364de4be5bc646

    add Padding parameter at RendererParameters

    Change-Id: If8d78e1363bc02b5f872119af59f6d3b89550b90

Change-Id: Ib96012d9671bbb0154cec76c7800f03590183a41

text tiling

If the length of text is very long and exceeds maxTextureSize,
it cannot be displayed on the screen.

So tiling is required.
I implement tiling by attaching multiple renderers.

And the MAX_TEXT_LENGTH limit is removed.

sample)

    std::ifstream file;
    file.open(PATH[0]);
    std::stringstream ss;
    ss << file.rdbuf();
    file.close();

    ScrollView scroller = ScrollView::New();
    scroller.SetPosition( 100.f, 100.f);
    scroller.SetSize(500.f, 1000.f);
    scroller.SetAnchorPoint(AnchorPoint::TOP_LEFT);
    scroller.SetParentOrigin(ParentOrigin::TOP_LEFT);
    scroller.SetAxisAutoLock(true);

    TextLabel textLabel = TextLabel::New( );
    textLabel.SetProperty( TextLabel::Property::TEXT,  ss.str() );
    textLabel.SetAnchorPoint( AnchorPoint::TOP_LEFT );
    textLabel.SetParentOrigin(ParentOrigin::TOP_LEFT);
    textLabel.SetProperty( TextLabel::Property::VERTICAL_ALIGNMENT, "TOP" );
    textLabel.SetProperty( TextLabel::Property::MULTI_LINE, true );
    textLabel.SetProperty( TextLabel::Property::ELLIPSIS, false );
    textLabel.SetProperty( TextLabel::Property::ENABLE_MARKUP, true );
    textLabel.SetProperty( TextLabel::Property::POINT_SIZE, 16);
    textLabel.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::BLUE );

    scroller.Add( textLabel );
    stage.Add( scroller );

Change-Id: I65082244a801ba697fd9ab0b598c82e702c2a948
14 files changed:
automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Controller.cpp
automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp
dali-toolkit/devel-api/controls/text-controls/text-label-devel.h
dali-toolkit/devel-api/text/text-utils-devel.cpp
dali-toolkit/devel-api/text/text-utils-devel.h
dali-toolkit/internal/controls/text-controls/text-label-impl.cpp
dali-toolkit/internal/text/layouts/layout-engine.cpp
dali-toolkit/internal/text/layouts/layout-engine.h
dali-toolkit/internal/text/rendering/text-typesetter.cpp
dali-toolkit/internal/text/shaper.cpp [changed mode: 0644->0755]
dali-toolkit/internal/text/text-controller.cpp
dali-toolkit/internal/text/text-controller.h
dali-toolkit/internal/visuals/text/text-visual.cpp
dali-toolkit/internal/visuals/text/text-visual.h [changed mode: 0644->0755]