Hasty Badger
Small UI library (a branch of Turbo Badger)
 All Classes Namespaces Functions Variables Enumerations Enumerator Friends Groups Pages
tb::TBStyleEdit Class Reference

Edit and formats TBTextFragment's. More...

#include <tb_style_edit.h>

Public Member Functions

void SetListener (TBStyleEditListener *listener)
 
void SetContentFactory (TBTextFragmentContentFactory *content_factory)
 
void SetFont (const TBFontDescription &font_desc)
 
void Paint (const TBRect &rect, const TBFontDescription &font_desc, const TBColor &text_color)
 
bool KeyDown (int key, SPECIAL_KEY special_key, MODIFIER_KEYS modifierkeys)
 
bool MouseDown (const TBPoint &point, int button, int clicks, MODIFIER_KEYS modifierkeys, bool touch)
 
bool MouseUp (const TBPoint &point, int button, MODIFIER_KEYS modifierkeys, bool touch)
 
bool MouseMove (const TBPoint &point)
 
void Focus (bool focus)
 
void Clear (bool init_new=true)
 
bool SetText (const TBStr &text, TB_CARET_POS pos=TB_CARET_POS_BEGINNING)
 
bool GetText (TBStr &text) const
 
bool IsEmpty () const
 
void SetAlign (TB_TEXT_ALIGN align)
 Set the default text alignment and all currently selected blocks, or the block of the current caret position if nothing is selected. More...
 
void SetMultiline (bool multiline=true)
 
void SetStyling (bool styling=true)
 
void SetReadOnly (bool readonly=true)
 
void SetSelection (bool selection=true)
 
void SetPassword (bool password=true)
 
void SetWrapping (bool wrapping=true)
 
void SetWindowsStyleBreak (bool win_style_br)
 Set if line breaks should be inserted in windows style (
) or unix style (
). More...
 
void Cut ()
 
void Copy ()
 
void Paste ()
 
void Delete ()
 
void Undo ()
 
void Redo ()
 
bool CanUndo () const
 
bool CanRedo () const
 
void InsertText (const char *text, int32_t len=TB_ALL_TO_TERMINATION, bool after_last=false, bool clear_undo_redo=false)
 
void AppendText (const char *text, int32_t len=TB_ALL_TO_TERMINATION, bool clear_undo_redo=false)
 
void InsertBreak ()
 
TBBlockFindBlock (int32_t y) const
 
void ScrollIfNeeded (bool x=true, bool y=true)
 
void SetScrollPos (int32_t x, int32_t y)
 
void SetLayoutSize (int32_t width, int32_t height, bool is_virtual_reformat)
 
void Reformat (bool update_fragments)
 
int32_t GetContentWidth ()
 
int32_t GetContentHeight () const
 
int32_t GetOverflowX () const
 
int32_t GetOverflowY () const
 
void BeginLockScrollbars ()
 Call BeginLockScrollbars & EndLockScrollbars around a scope which does lots of changes, to prevent UpdateScrollbar from happening for each block (May cause recalculation of content_width by iterating through all blocks)
 
void EndLockScrollbars ()
 
bool GetSizeAffectsLayout () const
 Return true if changing layout_width and layout_height requires relayouting. More...
 

Public Attributes

TBStyleEditListenerlistener
 
TBTextFragmentContentFactory default_content_factory
 
TBTextFragmentContentFactorycontent_factory
 
int32_t layout_width
 
int32_t layout_height
 
int32_t content_width
 
int32_t content_height
 
TBLinkListOf< TBBlockblocks
 
TBCaret caret
 
TBSelection selection
 
TBUndoRedoStack undoredo
 
int32_t scroll_x
 
int32_t scroll_y
 
int8_t select_state
 
TBPoint mousedown_point
 
TBTextFragmentmousedown_fragment
 
TBFontFacefont
 DEPRECATED! This will be removed when using different fonts is properly supported!
 
TBFontDescription font_desc
 
TB_TEXT_ALIGN align
 
union {
   struct {
      uint32_t   multiline_on: 1
 
      uint32_t   styling_on: 1
 
      uint32_t   read_only: 1
 
      uint32_t   selection_on: 1
 
      uint32_t   show_whitespace: 1
 
      uint32_t   password_on: 1
 
      uint32_t   wrapping: 1
 
      uint32_t   win_style_br: 1
 
      uint32_t   calculate_content_width_needed: 1
 If content_width needs to be updated next GetContentWidth-.
 
      uint32_t   lock_scrollbars_counter: 5
 Incremental counter for if UpdateScrollbar should be probhited.
 
   }   packed
 
   uint32_t   packed_init
 
}; 
 

Detailed Description

Edit and formats TBTextFragment's.

It handles the text in a TBStyleEditView.

Member Function Documentation

bool tb::TBStyleEdit::GetSizeAffectsLayout ( ) const

Return true if changing layout_width and layout_height requires relayouting.

void tb::TBStyleEdit::SetAlign ( TB_TEXT_ALIGN  align)

Set the default text alignment and all currently selected blocks, or the block of the current caret position if nothing is selected.

void tb::TBStyleEdit::SetLayoutSize ( int32_t  width,
int32_t  height,
bool  is_virtual_reformat 
)

< Trig a bounds check (scroll if outside)

void tb::TBStyleEdit::SetWindowsStyleBreak ( bool  win_style_br)
inline

Set if line breaks should be inserted in windows style (
) or unix style (
).

The default is windows style on the windows platform and disabled elsewhere.

Note: This only affects InsertBreak (pressing enter). Content set from SetText (and clipboard etc.) maintains the used line break.


The documentation for this class was generated from the following files: