12 * \brief 構造化文字列を表現するクラスです。
17 typedef std::shared_ptr<Text> pointer;
18 typedef std::shared_ptr<Text const> const_pointer;
19 typedef std::weak_ptr<Text> weak_pointer;
23 Text(weak_pointer parent_);
24 Text(weak_pointer parent_, QString const &string_);
29 bool contains(pointer value_);
42 pointer append(pointer value_);
43 pointer append(QString const &string_);
44 pointer insert(pointer position_, pointer value_);
45 pointer insert(pointer position_, QString const &string_);
46 pointer insert_after(pointer position, pointer value);
47 pointer insert_after(pointer position_, QString const &string_);
50 Text& set_string(QString const &string);
52 UserData::pointer data();
53 UserData::pointer set_data(UserData::pointer data_);
57 static pointer create();
58 static pointer create(weak_pointer parent_);
59 static pointer create(weak_pointer parent_, QString const &string_);
62 weak_pointer m_parent; /*!< rootノードの場合、空。それ以外は親ノード。 */
63 weak_pointer m_previous; /*!< rootノードの場合、自分自身。それ以外は前のノード。 */
64 pointer m_next; /*!< 次のテキスト */
66 pointer m_begin; /*!< 最初の子 */
69 UserData::pointer m_data;
72 class RangeData : public UserData
75 enum : int { Type = UserData::User + 1, };
78 RangeData(int begin_, int tail_);
81 void set_tail(int tail_);
87 static pointer create(int begin_, int tail_);
94 Q_DECLARE_METATYPE(Text::weak_pointer)
95 Q_DECLARE_METATYPE(Text::pointer)