Skip to content

Latest commit

 

History

History
247 lines (205 loc) · 9.78 KB

CHANGELOG.md

File metadata and controls

247 lines (205 loc) · 9.78 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.6.3] - 2023-07-03

  • Fix duplicate use of activate() in BWidgets::HPianoRoll and parent class BWidgets::Activatable

[1.6.2] - 2023-06-30

  • Escape selection before leave in BWidgets::Pattern<T>
  • Code optimization

[1.6.0] - 2023-06-28

  • Merge 1.5.0 - 1.5.3, in brief:
    • Add BDevices::Keys constructor by key code
    • Fix BDevices::Keys::KeyType based on uint32_t
    • Add static converters for BDevices::Keys::KeyType and key code (uint32_t)
    • Implement emit key events to widgets which grabbed selected keys
    • Add the flag entered_ to mark entered widgets
    • Add substeps to BWidgets::ValidatableRange
    • Implement substep scrolling and dragging if shift key pressed in (image-) dial, scale, scrollbar widgets, and pads
    • Add keyboard control (cursor keys, +/-) to dials, sliders, scrollbars, pad, and pattern
    • Update documentation

[1.5.3] - 2023-06-28

  • Add keyboard control to BWidgets::Pattern<T>
  • Add keyboard control to BWidgets::Pad<T>

[1.5.2] - 2023-06-26

  • Add static converters for BDevices::Keys::KeyType and key code (uint32_t)
  • Add '+'/'-' keyboard controls to dials and sliders
  • Fix BDevices::Keys::KeyType based on uint32_t

[1.5.1] - 2023-06-25

  • Add the flag entered_ to mark entered widgets
  • Add keyboard control to dials, sliders, and scrollbars
  • Add BDevices::Keys constructor by key code
  • Add concept to documentation

[1.5.0] - 2023-06-23

  • Implement emit key events to widgets which grabbed selected keys
  • Add substeps to BWidgets::ValidatableRange
  • Implement substep scrolling and dragging if shift key pressed in (image-) dial, scale, and scrollbar widgets
  • Fix documentation

[1.4.0] - 2023-06-20

  • Merge 1.3.0 - 1.3.2, in brief:
    • Move event queue from BWidgets::Windows to BWidgets::EventQueueable, inherit in BWidgets::Windows
    • Make BWidgets::Messagable and BWidgets::Closeable header only
    • Add BEvents::Event::EventType::all
    • Enable uint16_t for BDevices::Keys::KeyType
    • Add BDevices::Keys::KeyType::enter
    • Add class BWidgets::Activatable for user driven widget status change
    • Add class BWidgets::Enterable for entering a widget
    • Add class BWidgets::Navigatable to navigate between child widgets
    • Add hot keys and methods to BWidgets::Enterable
    • Add enter by hot key method in BWidgets::Navigatable
    • Implement BWidgets::Activatable, BWidgets::Enterable, and / or BWidgets::Navigatable in BWidgets::FileChooser, BWidgets::SampleChooser, BWidgets::EditLabel, BWidgets::SpinBox, BWidgets::ListBox, BWidgets::ComboBox, BWidgets::Box and BWidgets::Button
    • Fix prevent twice addition of events to the event loop
    • Fix issue #6 by always updating child widgets in BWidgets::Box
    • Update documentation

[1.3.2] - 2023-06-18

  • Enable uint16_t for BDevices::Keys::KeyType
  • Add BDevices::Keys::KeyType::enter
  • Add hot keys and methods to BWidgets::Enterable
  • Add enter by hot key method in BWidgets::Navigatable
  • Implement enter by hot key in widgets
  • Fix issue #6 by always updating child widgets in BWidgets::Box

[1.3.1] - 2023-06-17

  • Add Navigatable::enterNavigated(), Navigatable::resetNavigation(), Navigatable::isNavigated()
  • Remove unused Navigatable::autoDeactivation_
  • Change implementation of BWidgets::Enterable, now at BWidgets::Widget level.
  • Furter extend implementation of BWidgets::Enterable in BWidgets::FileChooser, BWidgets::SampleChooser, BWidgets::EditLabel, BWidgets::SpinBox, BWidgets::ListBox, BWidgets::ComboBox

[1.3.0] - 2023-06-10

  • Add class BWidgets::Activatable and implement in BWidgets::Widget
  • Add class BWidgets::Navigatable and implement in BWidgets::Box
  • Add class BWidgets::Enterable and implement in BWidgets::Box and BWidgets::Button
  • Add BEvents::Event::EventType::all
  • Move event queue from BWidgets::Windows to BWidgets::EventQueueable, inherit in BWidgets::Windows
  • Make BWidgets::Messagable and BWidgets::Closeable header only
  • Fix prevent twice addition of events to the event loop
  • Update documentation

[1.2.2] - 2023-06-02

  • Fix incorrectly displayed meter values due to floating point operations
  • Animate meters in draws and valuepositions demo

[1.2.0] - 2023-06-02

  • Merge 1.1.0 - 1.1.3, in brief:
    • Add default and parametrized constructors to BWidgets::Support
    • Add class BWidgets::ValueVisualizable
    • Add parametrized overrides of getExtends(), getWidth(), and getHeight() in BWidgets::Label to get Widget extends for a not yet applied text string
    • Implement BWidgets::ValueVisualizable::ValuePosition in ValueDials, ValueMeters, and ValueSliders (Note: Minor changes in widget element positioning (esp. in BWidgets::ValueHSlider) to become more consistent)
    • Add definitions BWIDGETS_DEFAULT_XXX_XSPACING and BWIDGETS_DEFAULT_XXX_YSPACING for spacing between label and dial/meter/slider.
    • Add drawing sets color parameters
    • Add drawing sets bar size paramters
    • Add drawing sets Lolly and Flow
    • Add functional focus text
    • Add Widget::setFocusText() and Widget::getFocusText()
    • Fix drawPad() call in Pad<T>::draw()
    • Fix implementation of BWIDGETS_DEFAULT_SLIDER_BAR_REL_SIZE (now only applies on Sliders; now matches with BWIDGETS_DEFAULT_SLIDER_KNOB_REL_SIZE)
    • Fix warnings unused variables fgColor and bgColor
    • Add value position demo
    • Update documentation

[1.1.3] - 2023-06-02

  • Added default and parametrized constructors to BWidgets::Support
  • Fix center BWidgets::RadialMeter
  • Add class BWidgets::ValueVisualizable
  • Add parametrized overrides of getExtends(), getWidth(), and getHeight() in BWidgets::Label to get Widget extends for a not yet applied text string
  • Implement BWidgets::ValueVisualizable::ValuePosition in ValueDials, ValueMeters, and ValueSliders (Note: Minor changes in widget element positioning (esp. in BWidgets::ValueHSlider) to become more consistent)
  • Add definitions BWIDGETS_DEFAULT_XXX_XSPACING and BWIDGETS_DEFAULT_XXX_YSPACING for spacing between label and dial/meter/slider.
  • Add value position demo

[1.1.2] - 2023-05-27

  • Added Widget::setFocusText() and Widget::getFocusText()
  • Implemented functional focus Label text

[1.1.1] - 2023-05-24

  • Fixed implementation of BWIDGETS_DEFAULT_SLIDER_BAR_REL_SIZE (now only applies on Sliders; now matches with BWIDGETS_DEFAULT_SLIDER_KNOB_REL_SIZE)
  • Fixed warnings unused variables fgColor and bgColor

[1.1.0] - 2023-05-24

  • Added drawing sets color parameters
  • Added drawing sets bar size paramters
  • Added drawing set Lolly
  • Added drawing set Flow
  • Added documentation for drawing set parameters in BWidgets/README.md
  • Fixed drawPad() call in Pad<T>::draw()

[1.0.0] - 2023-05-22

First release.

Features provided

  • Widgets
    • Basic container widgets (Widget, Window, Frame, ...)
    • Text widgets (Label, Text, ...)
    • Button and switch widgets
    • Choice box widgets (SpinBox, ListBox, ComboBox, ...)
    • Meter widgets
    • Sliders and dial widgets
    • Pad widgets
    • Pattern widget
    • Piano roll widget
    • Image-based widgets
    • Dialog widgets (Box, TextBox, MessageBox, ...)
    • File selection dialog widgets (FileChooser, SampleChooser)
  • Styles
    • Types (Color, ColorMap, Line, Border, ...)
    • Forward and update styles to child widgets with matching URID (see below)
    • Use themes *Devices
    • Keyboard support
    • Mouse support
    • Take control (grab) or release control (free) over devices
    • Implement to support dragging, clicking, enter text
  • Events
    • Base events (expose, close, ...)
    • Mouse / Pointer events (press, release, click, drag, move, scroll, focus)
    • Keyboard events
    • Value change events
    • Custom message events
    • Handle events in main Window
    • Enable events in widgets using interface classes (Supports)
  • Widget functionality
    • Container functionality by supporting Linkable
    • Visualization by supporting Visualizable
    • Event handling in the main Window
    • Control of event handling by supporting EventMergeable and EventPassable
    • User interaction by supporting Clickable, Draggable, PointerFocusable, Toggleable, Scrollable and KeyPressable
    • Generic control over widget values using Valueable
    • Additional messages by supporting Messageable
    • Widget visibility control by supporting Closeable
    • Enable re-definition of widget default sizes at compile time (BWIDGETS_DEFAULT_XXX_WIDTH and BWIDGETS_DEFAULT_XXX_HEIGHT)
    • Define substitutable widget elemet drawing sets at compile time (draws)
    • Optimize widget size using resize()
    • Show default hover text (widget title, if set) by supporting PointerFocusable
    • Layers visualization and event handling
    • Scale (zoom) main Window and linked child widgets
    • Reversed Valueable widgets by setStep() with negative values
    • Transfer functions to transfer values from an external context to an internal context.
  • URID
    • Static URID management: Link URIs to their respective ID
    • Assign URIDs to styles, widgets, ...
  • Dictionary
    • Static management of terms and translations
    • Default dictionary for common UI dialogs
    • Dictionary replacable at compile time
    • Add terms and translations at runtime
    • Optional fallback to installed third party dictionaries (e. g., GTK)
  • Shortcut macros (BURID, BDICT, ...)
  • Doxygen documentation