- Fixed crash when selected pos was bigger, than amount of items in list
- Fixed rect.get_minimal_layout(?)
- Optimized list component, when it had big array of items, and was unwrapping all of them
- Moved funcion check in register_object
- List now has option to set (if known) a fixed size of all components, which fastens computing
- List now has style for selected item
- Added docs
- Added modal component, which basically is rect that clears all that was written before
- Added method for inserting new item to list, without giving full array
- Heavy optimizations:
- buffer.flush_buffer was rewritten on awk, given huge perfomance boost
- Style now processed inside buffer.flush_buffer
- Rewriten components, so they use optimal buffer.insert_x functions
- layout.get_size layout.get_rect object.get_minimal_size are now returning values using
export. Moved to exporting because subshells are slow
- Related to buffer functions was put in buffer class
- Removed buffer_helpers file, as it was mostly migrated to buffer class
- Cursor now hidden completely upon start
- Buffer and style now has functions to draw area, instead of processing each pixel. Its preferable to use theese function as they are much more faster than style.apply and buffer.insert
- Forgot to add style class to list, so here it is
- Added set_style to abstract object class
- Layout now required in .draw() instead of .new(). Before that change, creating a component for drawing within another component required assigning a layout which was then immideately replaced
- Layout no longer modify components on resize
- Fixed minor error in layout split calculation
- All components upon creation are registered in global table, this allow abstraction over concrete type, for more see object component
- Added list component, for rendering many items in layout, that couldn't fit all items
- Fixed label positioning when it was centered
- Label now has set_multiline_mode which can be use for multiline mode if text doesn't fits itself into one line
- Added delete functions for components and layouts, note that in layout child layouts and components will also be deleted
- Fixed that if rect.set_title_style was called before rect.set_title, style was not applied
- Added gauge component (vertical and horizontal versions), with optional label inside of it
- Added gracefull shutdown
- On terminal resize all layouts will be recalculated, note that layouts created from specified size are not going to be recalculated
- Removed new_from_size from rect and label, now you need to create layout from size first, then pass it to label(or rect).new
- Style instead of special arg for disabling or enabling now accept styleparam=value, this can help with attrs that cannot rely on 1 or 0, for example color
- Added foreground and background colors as style properties, both params are passed in r;g;b , all colors may be unsupported in some terminals
- Added unicode_start and unicode_exit so in tty symbols are rendered properly
- Fixed typo in move_cursor, which somehow worked before
- Changed layout split functions behaivour
- Layout now can have properties while splitting - size can be given in (flex grow, pixel, percentage of layout)
- Renamed symbol class to style
- Optimized getting modifiers for symbol during draw
- label and rect now implements style.set_style and rect also implement style.set_title_style
- rect now can give layout that will be inside of that rect, excluding borders.
- Buffer now moves cursor to top of the screen, so in tty redrawing no longer(?) 'jumps'
- Added attributes to characters in buffer, so there's a way to draw rich text (blink, colored, etc)
- Started changelog
- Created components, for now its only label and rect
- Added layout, with splitting evenly horizontally or vertically. You should see it as hbox or vbox and build inside of it
- Added buffer will draw everything that was put in