- Fix GroupExt::remove_by_index() virtual call.
- Improve font documentation.
- Add hack to find a font's name based on the file name when stb fails to get it.
- Fix documentation typo. Thanks @mark-summerfield.
- Add more to radio button docs.
- Cleanup macros and surrounding api. Thanks @AshfordN.
- Update doc comment on draw::set_line_style().
- Add Window xclass and default_xclass setter and getter. (Changes the XA_WM_CLASS property of the window)
- Add
Color::from_hex_str(&str)
andto_hex_str()
. - Optimize Color::from_rgba_tuple().
- Add draw::text_extents().
- Properly
cfltk_
prefix extern Cocoa wrapper functions. - Fix build on 32-bit X11 systems (introduced in 1.2.11 by Window::platform_hide() and platform_show()).
- Fix docs for dialog::message_title_default(). Thanks @hannesbraun.
- Add TreeItem::set_label_fgcolor() and label_fgcolor(), deprecate the older names. Thanks @AshfordN.
- Add TreeItem::as_ptr().
- Add Tree::item_pathname().
- Add enums::Key::F1 to F12, Key::is_fn_key() and Key::fn_key(i32).
- Add menu::mac_set_about(). Thanks @hannesbraun.
- Add TreeItem::try_widget() and Wizard::try_current_widget().
- Add app::version_str().
- Add dialog::message_title() and message_title_default().
- Shift experimental Flow widget to its own crate.
- Add TreeItem::draw_item_content.
- Expose several macros that assist in implementing some traits (WidgetExt, WidgetBase, GroupExt), useful for creating custom widgets.
- Deprecate TreeItem::widget(), wizard::current_widget() and Group::current().
- Add draw::draw_check().
- Expose trait macros.
- Link to FLTK bundled libpng on Linux.
- Add SimpleTerminal::append2.
- Build thin binaries on MacOS 11 M1 since cargo/rust still don't support universal binaries.
- Add WidgetExt::center_x() and center_y().
- Allow scraping examples for docs.rs.
- Add Fl_Flex::remove to C wrapper.
- Expose WidgetExt::raw_user_data() and set_raw_user_data().
- Pull fixes from FLTK.
- Fix android build (break introduced with version 1.2.11). Thanks @Ar37-rs.
- Don't assert that window is shown with set_opacity.
- Mark Window::platform_hide() and platform_show() as safe.
- Add WindowExt::wait_for_expose().
- Fix div by zero in Flex orphaned space.
- Flex::set_size() no longer needs a mutable widget ref.
- Flex::end() and recalc() no longer need mutable ref to self.
- Pull FLTK fixes.
- Update README with tutorial links and reference to fltk-table and fltk-evented.
- Cleanup and reorganize macro ordering to be after structs.
- Formatting and lints.
- Unlink C++ std lib to enable cross-compiling to Windows.
- Fix draw::Offscreen::rescale().
- Update FLTK device code.
- Fix 32bit Windows broken build in version 1.2.11, by changing ShowWindow extern calling convention.
- Pull FLTK focus box fix.
- Fix Flex::Row set_pad().
- Add experimental Flow widget.
- Add Window::platform_show() and platform_hide() which calls the platforms show and hide routines.
- Add utils::char_len() and content_view().
- Remove asserts in WindowExt::set_cursor_image() and just rescale if image had been modified.
- Fix image links in crates.io.
- Adds image::RgbScaling enum.
- Adds RgbImage::scaling_algorithm() and set_scaling_algorithm().
- Add ImageExt::to_rgb_image().
- Add RgbImage::from_pixmap().
- Assert image size in WindowExt::set_cursor_image().
- Scale returned RgbImage in ImageExt::to_rgb().
- Update FLTK.
- Fix floating point exception in Flex inner vector not properly resizing with set_size().
- Fix crates.io links by using absolute urls.
- Add Group::try_current().
- Add Color::from_rgba_tuple().
- Constify more enums::Color and Shortcut methods.
- Constify utils functions.
- Formatting and clippy.
- Update FLTK and cfltk.
- Move macros into fltk and remove dependency on syn & quote.
- Make raw-window-handle an optional dependency.
- Constify Key, Event and Shortcut constructors.
- Add const Key::to_char().
- Add const Color::from_rgbi().
- Add app::font_size() getter.
- Handle None in DisplayExt::set_highlight_data().
- Alias GlutWindow as GlWindow since they are basically the same!
- Remove wrong implementation of draw::scale_x().
- Add WidgetExt::handle_event().
- Relax app::handle() event requirements, and use
Into<Event>
. - Pull FLTK Gif fixes.
- Pull image fixes from FLTK.
- Add app::compose, compose_state, reset_marked_text and insertion_point_location.
- Add app::copy.
- Check the size of drawn text.
- Get scaling factor on MacOS without requiring info.plist.
- Add copy and paste overloads for selection buffers.
- Add app::add_clipboard_notify() and remove_clipboard_notify().
- Add a new group::Flex widget wrapping Fl_Flex.
- Use fork of FL_Flex to avoid patching, then linking libstd++.
- Add Flex's margin and pad properties getter and setter.
- Overload Flex::add to recalculate layout.
- Add WidgetBase::resize_callback().
- Add WidgetBase::default_fill() to construct a widget with the size of its parent.
- Improve some docs.
- Derive Default for Column, Row and Grid widgets.
- Fix cargo doc build issue on docs.rs.
- Fix doc comments about FileDialog and NativeFileChooser.
- Using fltk-bundled automatically enables glwindow. Note, other user-built bundles can be cached and used via the CFLTK_BUNDLE_DIR or CFLTK_BUNDLE_URL env variables.
- Remove unnecessary references to use-ninja in the README and main docs since it will be used if found.
- Update ROADMAP.
- Open display for certain draw functions when appropriate.
- Add TextBuffer::search_forward(), search_backward(), find_char_forward() and find_char_backward().
- Add DisplayExt::unset_highlight_data() convenience method.
- Update FLTK to pull nanosvg fixes.
- Fix image type asserts in Window::set_shape().
- Add draw::gl_start() and gl_finish(). As well as app::set_gl_visual(Mode).
- Copy shared lib when building with fltk-shared feature to the target dir.
- Update docs regarding WidgetExt::trigger(), set_trigger() and enums::CallbackTrigger explaining their provenance.
- Fix typo in function name (my_getContentView).
- Enable building FLTK and cfltk in MinSizeRel profile when using opt-level="s" or "z".
- Add a single-threaded feature. This allows linking X11-based libs not built with threading support. As a side-effect, this disables accessing/modifying widgets from other threads, it also might improve performance. It should not be the default.
- Update fltk and syn.
- Pull FLTK tooltip fix for issue #797.
- Fix
fn WidgetExt::callback() -> Option<Box<dyn FnMut()>>
(callback getter) to only work for FLTK types with default callbacks. - Properly export the widget_extends macro.
- Fix undefined symbol on macos.
- Check for ImageExt::count() when calling ImageExt::to_rgb().
- Remove unnecessary deps.
- Refactor cfltk to remove code duplication and reduce build times.
- Update libc, cmake-rs, bitflags and syn.
- Fix fltk-shared feature on X11 systems.
- Remove redundant macro expansion.
- Update deps.
- Add output::OutputType.
- Add format_text example. Contributed by @mvasi90.
- Fix some clippy lints.
- Add Font::get_name().
- Add image::RgbImage::convert().
- Add ColorDepth::from_u8().
- Add a widget_extends! macro for custom widgets, which basically implements Deref/DerefMut and adds convenience constructor and anchoring methods.
- (Revert a breaking change introduced in 1.1.8)
- Fix invalid cast in TextBuffer::selection_position().
- Update FLTK.
- Add draw::scale().
- Add app::add_system_handler and remove_system_handler.
- Fix high cpu usage due to spurious awakes during app::wait().
- Add Color::to_rgb().
- Add frame_color() and set_frame_color().
- Add menubutton example, this should be preferable over MenuItem for right click menus.
- Add Color::contrast, grayscale and rgb_color.
- Add doc comment that SvgFileSurface can panic on creation.
- Add WidgetExt::has_focus().
- Add app::set_frame_type_cb() and set_frame2().
- Add Color::gray_ramp and color_average().
- Add app::draw_frame_active().
- Fix doc of draw::draw_frame and draw_frame2 and add assert.
- Update Syn.
- Add WidgetExt::with_type().
- Add MenuExt::menu and set_menu().
- Add ImageExt::draw_ext() which allows passing the offset to the image.
- Add app::frame_shadow_width setter and getter.
- Add app::frame_border_radius_max setter and getter.
- Add app::set_color().
- Add enums::Color::darker() and lighter().
- Fix app::event_clicks() and add overload for event_clicks_num() for number of clicks.
- Add widget_resize() for simple resizing without class-specific resize functionality.
- Add overloads for
app::*_idle
andapp::*_timeout
which accept simple function pointers. - Add utils::filename_expand().
- Support
::new
and::end
calls for Column and Row widgets. - Support
::end
calls for VGrid and HGrid widgets. - Update libc and FLTK.
- Largely simplify getting concrete types, ex. Scroll::scrollbar() now returns a concrete Scrollbar instead of a
Box<dyn ValuatorExt>
, and parent() returns anOption<Group>
instead of anOption<Box<dyn GroupExt>>
. - Add Window::opacity() and set_opacity() to support window transparency/opacity.
- Add MenuItem::add_image() to add icons to menu items.
- MenuExt::add(), add_emit(), insert() and insert_emit() now return the index of the menu item.
- Add WidgetExt::set_image_scaled() and set_deimage_scaled().
- Add callback getter.
- Fix MSRV, turns out it's 1.46 when using if in const context!
- Add TableExt::scrollbar() and hscrollbar().
- Add
fn WidgetExt::is_same<W: WidgetExt>(&self, other: &W)
. - Add WidgetExt::active and active_r.
- Add app::ready, check, release, reload_scheme, menu_line_spacing and set_menu_line_spacing.
- Fix double fclose in SvgFileSurface drop impl. Thanks @DBLouis.
- Pull MouseWheel coordinate in subwindows fix from FLTK.
- impl PartialEq for several FLTK types.
- Fix MenuItem::set_label() on Windows.
- Add into_group() method to GroupExt.
- Add MenuButton types enum MenuButtonType.
- Allow DisplayExt::set_highlight_data() to be set even in the absence of a text buffer.
- Pull fixes from FLTK and cfltk.
- Add app::event_original_key().
- Add GroupExt::init_sizes(), bounds() and add_resizable().
- Add alias OFlatBox to OFlatFrame.
- Add feature
no-gdiplus
to disable gdi+ drawing on Windows. - Fix dependabot config.
- Update dependencies.
- Fixed spreadsheet example, Thanks @eadf.
- Fixed calculator example. Thanks @eadf.
- Add several clipboard event handling functions into the app module. app::event_clipboard().
- Add app::clipboard_contains().
- Add app::paste_text() and paste_image().
- Add app::event_dispatch to intercept events before they reach widgets’ handlers.
- Add app::handle_raw for forwarding events from event_dispatch.
- Fix Font::set_font(), FLTK expects a long lived string.
- Update app::set_callback to reflect WidgetExt::set_callback.
- Add app::swap_frame_type() to swap the default frame type with a new one.
- Add app::frame_type() to get the default frame type.
- Add enums::FrameType::swap_frames() to swap frame types.
- Free WindowExt::raw_handle() memory on error.
- Use full font name instead of family name when handling external truetype fonts.
- Add convenience functions to enums::Font for loading and replacing fonts.
- Update to latest FLTK with gdi+ support on Windows (for anti-aliased oblique lines and curves).
- Fix GroupExt::clear().
- Add
impl From<i32> for Event
. - Use bitflags for Event.
- Impl fmt::Display for Event.
- Update FLTK and cfltk.
- Link to system libpng on linux to avoid conflicting with FLTK's bundled libpng.
- Add pixels_per_unit() and pixel_h pixel_w for SingleWindow and DoubleWindow.
- Add WindowExt::screen_num() and set_screen_num().
- Fix link in main docs.
- Relax FileChooser::shown() to accept immutable borrow.
- Update fltk-derive.
- Pass FileChooser title as long-lived string.
- Fix GroupExt::clear to account for empty groups.
- Add open_display call before surface::ImageSurface::new.
- Update FAQ to use 1.0 code . Thanks @sportfloh
- Add GroupExt::unsafe_clear for faster clearing of group widgets.
- Update FLTK & cfltk.
- Add RgbImage constructors which take line data as param.
- Add draw::draw_image2 which takes line data as param.
- Update FLTK & syn.
- Transfer repo and update LICENSE files.
- Fix links to releases and demos.
- Add missing Shortcut/EventState values.
- Add missing screen functions.
- Add SvgImage::normalize().
- Re-revert WindowExt::set_icon().
- Fix WindowExt::set_icon potential leak.
- Update FLTK.
- Revert WindowExt::set_icon to previous behavior.
- Add null checks to new image code.
- Add Meta, Command & Control Shortcuts (helpful for working with MacOS). #640. Thanks @hannesbraun
- Fix WidgetExt::set_image() memory leak when called with an already set image.
- Update deps: Syn, libc and FLTK.
- Grab correct image for correct drops.
- Fix
enable-glwindow
builds.
- Reorganize build script.
- Remove redundant functions in the bindings.
- Update FLTK, cfltk, syn.
- Base on cfltk main branch.
- Add MenuItem::children().
- Relax mutability requirement for MenuItem::next() and at().
- Add check on WidgetExt::label().
- [BREAKING] Importing fltk::* no longer auto-imports the prelude nor enums modules.
- [BREAKING] Importing widgets no longer auto-imports the prelude nor enums modules.
- [BREAKING] Replace set_callback, handle, draw, draw_cell with their overloads.
- [BREAKING] Widgets take a
&'static str
for a label when initialized. To use dynamic labels, use set_label or with_label. - [BREAKING] Replace TableExt::visible_cells and get_selection with their easier overloads.
- [BREAKING] Rename InputChoice::set_value2 to set_value_index.
- [BREAKING] Take i32 where FLTK expects i32.
- [BREAKING] Rename WidgetType::to_int() to to_i32().
- [BREAKING] app::event_dx() and event_dy() return an app::MouseWheel instead of i32.
- [BREAKING] enums::Mouse moved to app::MouseButton.
- [BREAKING] Move enums::TextCursor to text::Cursor.
- Add a Column and Row widgets which support auto_layout by default, but require that widgets be added using add().
- Add ValueInput::soft and set_soft methods.
- Add WindowExt::set_cursor_image() and default_cursor().
- Update FLTK, syn and libc.
- Add assert of widget validity when cloning.
- Add GroupExt::clip_children() and set_clip_children().
- Add GroupExt::draw_child(), update_child, draw_children and draw_outside_label.
- Fix FileBrowser::set_filter doc comment.
- Update libc and syn.
- Update FLTK and cfltk.
- Add app::set_selection_color() and set_inactive_color().
- Update readme on events.
- Update deps.
- Try to use ninja when available.
- Update FLTK cfltk and libc.
- Add BrowserExt::selected_text().
- Remove commented code.
- Fix refcount checks.
- Fix typo in docs.
- Update FAQ.
- Add ValuatorExt::set_step() zero checks.
- [BREAKING] Remove image conversion code.
- Fix Fl_RGB_Image allocation.
- Refactor build script.
- Enable the fltk-bundled feature on a system path using the CFLTK_BUNDLE_DIR env variable.
- Enable the fltk-bundled feature on a user-defined url using CFLTK_BUNDLE_URL env var.
- Add app::set_font_size() to set the global font size of the app.
- Add Slider (and Scrollbar) slider_size setter and getter.
- Add Slider (and Scrollbar) slider_frame setter and getter.
- Specify 'static lifetime for Printer labels.
- Add assert on image's color depth prior to writing to a file.
- Add second check in GlWindow get_proc_address.
- Fix print support on linux/bsd and add proper error handling.
- Pull Gif fix from FLTK.
- Fix system-fltk feature.
- Update deps.
- Add ImageExt::w() and h().
- Add MenuExt::global().
- Add MenuItem::measure(), draw() and set_image().
- Add WindowExt::shap() and set_shape().
- Fix take_focus() error value.
- Add WindowExt::x_root() and y_root().
- Add FrameType::dx(), dy(), dw() and dh().
- Add WidgetExt::center_of_parent().
- Add ButtonExt::value() and set_value().
- Add comment on supported image formats in WindowExt::set_icon().
- Remove redundant set_size() definitions in Chart and BrowserExt.
- Add WidgetExt::w() and WidgetExt::h().
- Add Spinner value setter and getter.
- Remove unnecessary clone in RgbImage::new().
- Add doc comments regarding SysMenuBar and enums::Event::Resize.
- Clone data in RgbImage::new().
- Fix typo in EngravedBox name.
- Fix memory leak in RgbImage::new() and other functions calling it.
- Add enums::Damage.
- Add WidgetExt::damage_type() and set_damage_type().
- Add WidgetExt::size_of_parent().
- Fix typo in README. Thanks @kainjow.
- Update deps.
- Update README & FAQ.
- Add screen scale getters and setters in the app module.
- add WidgetExt::visible() and visible_r() (recursive) methods.
- Add GroupExt::remove_by_index().
- MenuItem::popup() no longer requires mut self.
- Update deps.
- Check for 0 children with Pack::auto_layout(). Thanks @dheijl.
- Add utils::rgba2hex().
- Pass u32 to utils::hex2rgba().
- Fix docs and intra doc links.
- Update FLTK and cfltk.
- Mark app::handle and handle_main as safe.
- Add methods to get and set Dial angles.
- Add app::remove_idle, has_idle, remove_timeout.
- [BREAKING] RgbImage::new() and draw::draw_image() take a ColorDepth enum instead of an int.
- [BREAKING] Remove app::delay().
- [BREAKING] Remove image related LabelType values.
- [BREAKING] Change iconsize and set_iconsize to icon_size and set_icon_size.
- [BREAKING] BrowserExt::topline, middleline and bottomline converted to snake case.
- [BREAKING] app::wait_for returns a Result<bool, FltkError>.
- Fix temp file creation when lacking TMPDIR env variable on some systems.
- Fix doc tests.
- Add tests directory.
- Update FLTK and cfltk.
- Clean up examples.
- Move example usage to docs.
- Mark Pixmap constructor as unsafe.
- Refactoring.
- Update FLTK and cfltk.
- cleanup fltk.patch.
- Fix broken image::Pixmap.
- Add asserts for supported window icon images.
- Fix android typo causing failed android builds.
- Fix draw::draw_image().
- Mark draw::draw_image() as unsafe.
- Add docs regarding label's special symbols.
- Add enable-glwindow to docs.rs metadata.
- Add draw::draw_image().
- Add OverlayWindow widget.
- Relax requirement of static str for get_proc_address.
- Update deps.
- Add TabelExt::get_selection2 and visible_cells2 variants which return tuples.
- Add GlutWindow widget.
- Fix size of window::RawHandle on 32-bit Xlib systems (#502). Thanks @CaseyB.
- Add BrowserExt::value(). Thanks @tdryer.
- Refactoring derive code.
- Update cfltk.
- Remove unnecessary field in MenuItem.
- Add app::event_mouse_button();
- Add enums::Mouse.
- Fix docs.
- impl IntoIter for MenuItem.
- Add app::add_idle().
- Add app::sleep().
- Add note on WidgetBase::draw() regarding drawing on MacOS.
- Update cfltk.
- Add InputChoice::input() which returns the underlying input widget. Thanks @tdryer
- Update docs.
- [BREAKING] Rename old app::awake<F: FnMut()>(cb: F) to app::awake_callback.
- [BREAKING] Remove redundant/unnecessary methods from the App struct.
- Add app::event_key_down(Key) which takes a key and returns true if the given key was held down (or pressed) during the last event. Thanks @CaseyB.
- Add framebuffer drawing functions: draw::draw_rgba(), draw_rgba_nocopy(), draw_rgb() and draw_rgb_nocopy().
- Add utils::hex2rgba().
- Add app::awake().
- Add custom std::fmt::Debug impl for Event to account for custom events.
- Update libc dependency.
- Add app::handle_main() for sending events to the main window.
- Add i32 conversion methods for enums::Event.
- Lock messages.
- Enable detection of window resizing (added enums::Event::Resize).
- Added unsafe app::handle which enables sending messages to app windows.
- Expose unsafe functions app::awake_msg and thread_msg.
- Update FLTK and cfltk.
- Add optional gl_loader dependency for interop with other OpenGL crates.
- Add raw-window-handle dependency for interop with other renderers and windowing systems. (both are lightweight)
- Pass contentView to RawWindowHandle for compat with wgpu.
- Add GlWindow::get_proc_address().
- Use bitflags for draw::LineStyle.
- Open display before calls to draw.
- Add default variants of message boxes (not requiring coordinates)
- Add missing docs.
- Fix clippy warnings.
- Update syn crate.
- Fix GlWindow::set_mode to account for change of enums::Mode now using bitfalgs.
- Fix linkage with feature enable-glwindow.
- Add missing assert.
- Update cfltk.
- Add debug_assert that char != 0 for BrowserExt::set_format_char and set_column_char.
- Fix rustdoc failing tests.
- Add syntactic sugar for DisplayExt::set_buffer to accept Into-Option, same for set_highlight_data.
- Change dialog::color_chooser's default to white instead of black.
- Add dialog::color_chooser_with_default().
- Fix premature drop in app::load_font.
- Add build instructions for nixOS. Thanks @legendofa
- [BREAKING] Remove deprecated calls app::set_color and calls to scrollbar_width (should be replaced by scrollbar_size).
- [BREAKING] Change Color::BackGround to BackGround2 to better reflect the color of input/output widgets.
- [BREAKING] TableRowSelectMode enum values were trimmed to remove Select prefix.
- [BREAKING] DragType enum values were trimmed to remove Drag prefix.
- [BREAKING] Change text methods to snake case in dialog and browser modules for consistency.
- FAQ: Add info on keeping the console window only for debug builds on Windows.Thanks @dheijl
- Add proper Default impl for use with fl2rust.
- Add Color::by_index(u8).
- Add WindowExt::hotspot().
- Add Group::current().
- Add ButtonExt and MenuExt down_box().
- Add HelpView and InputChoice widgets in the misc module.
- Add CheckBrowser in the browser module.
- Add app::get_system_colors().
- Update dependencies.
- Add missing docs.
- Add WindowExt::size_range which sets min/max width/height.
- Relax Copy trait bound to Clone as message requirement in widget emit calls.
- Update syn version.
- Add MenuExt::end, a stub needed for fluid.
- Add TableExt::callback_col, callback_row, callback_context.
- Build fluid with fltk.
- Widget deletion is relegated to WidgetBase.
- Add app::background, background2 and foreground to set default app colors.
- Deprecate app::set_color.
- Add IntoIterator impls for GroupExt widgets, MenuExt widgets and the Tree widget.
- Fix logic bug in the BrowserExt::select method. Thanks @ThiNei2l.
- [BREAKING] TableRow::select_row and select_all_rows also take a flag to specify selection/deselection/toggling existing state.
- [BREAKING] Mark WidgetExt::into_widget as unsafe since it allows casting into incompatible widget types.
- Update docs.
- Update dependencies.
- Refactoring.
- Update docs and README.
- Dissociate versions of fltk from both fltk-derive and fltk-sys.
- Add wiki.
- Update dependencies.
- Update README and lib.rs.
- [BREAKING] Remove enums::Color::to_rgb and to_u32.
- [BREAKING] WidgetExt::trigger returns a CallbackTrigger instead of an int.
- Add custom Display implementation for Color.
- Use lazy_static for globals.
- Use bitflags for several enum types.
- Add utils::rgb2hex and utils::hex2rgb.
- Add draw::set_draw_rgb_color() and set_draw_hex_color().
- Relax app::Message requirements to only be Send + Sync.
- Add app::set_font(Font) to set global app font.
- Add app::set_color(Color) to set the global app's background color.
- Add app::visible_focus and set_visible_focus.
- Fix WidgetExt::center_of() to account for special positioning within windows.
- WidgetExt::as_window and as_group only require immutable ref to self.
- Default Window to a DoubleWindow instead of single window for better performance.
- Add more fields to enums::Align.
- Add impl BitOr for Shortcut | Shortcut.
- Update dependencies.
- Pin fltk crate versions to each other.
- update fltk and cfltk.
- Fix WidgetExt::right_of() by @dheatovwil
- Fix WidgetExt::center_of().
- Add WidgetExt::trigger() getter.
- Trigger rebuild on env change of CC or CXX.
- Update cfltk.
- Write to temp files in TEMP/TMPDIR.
- Add surface::SvgFileSurface to draw widgets as svg images.
- Add surface::ImageSurface::draw_decorated_window().
- Add WindowExt::decorated_w() and decorated_h().
- Added doc comment on the limitations of SimpleTerminal.
- Added a Dockerfile, because why not!
- Update cfltk and fltk.
- Clean up build script.
- Account for spacing with auto_layout.
- Add custom widgets: group::HGrid and group::VGrid.
- Add lib search paths for Mageia 7 by @nsalguero.
- Fix docs on special characters.
- Add feature: no-pango if rtl and cjk unicode support is not needed on linux/bsd.s
- Add Pack::auto_layout.
- GroupExt::resizable() takes a &WidgetExt instead of a &mut WidgetExt.
- WindowExt::make_resizable moved to GroupExt::make_resizable.
- WidgetExt::parent returns a boxed GroupExt instead of a WidgetExt.
- Follow cfltk stable branch instead of main.
- Separate the C api "cfltk" into a separate repo and add via submodules.
- Restructuring the repo accordingly.
- No longer force the position of default init windows and keep it up to the window manager.
- Add WindowExt::free_position().
- Change C api set_style_table_entry to set_highlight_data.
- Patch fltk to fix behavior of Fl_Win32_At_Exit() with mingw toolchain.
- Fix android build which doesn't support Fl_Printer.
- Fix WidgetExt::with_size() resizability.
- Add WidgetExt::measure_label() and draw::measure().
- Simplified some return types in the printer module.
- Change return type of Printer::begin_job().
- Use AtomicUsize for refcounting instead of Arc.
- Decrease refcount when unsetting an image or setting another image.
- Remove unwrapping when querying for windows, which could fail.
- BREAKING (Security update): Methods and functions returning widget and image instances now return a safer boxed trait object since these might not be constructed by user code (like in dialogs).
- Fix support for msvc 2013 and lower.
- Add WidgetBase trait.
- Images and TextBuffer are now refcounted.
- Add unsafe RgbImage::from_data() which creates an RgbImage from non-owned data.
- Image::write_to_file has an AsRefstd::path::Path parameter.
- Add SurfaceDevice trait and ImageSurface type.
- Add Printer type for native print support.
- Prelim support for musl builds.
- Remove back-compat SurfaceDevice::set_current().
- Enable window grabbing.
- BREAKING: App::wait() returns bool instead of Result since it doesn't error out.
- BREAKING: Require pango headers on linux distros for rtl and cjk unicode support.
- BREAKING: Deletion static methods take ownership of widgets and images.
- Update docs regarding build dependencies.
- Add WidgetExt::draw2(), WidgetExt::handle2() and TableExt::draw_cell2() all of which expose the widget in the closure arguments.
- Remove the requirement to box callbacks.
- Passing CString to C/C++ should not panic on inner null characters.
- Removed several unused internal methods from the public interface.
- Add doc comment on MenuExt::value() which might return -1 when no choice is made.
- Add WidgetExt::set_callback2 which exposes the widget in the closure arguments.
- Remove unused safe_new.
- Update FLTK.
- Internal refactoring.
- Fix app::wait erroneous result.
- Change Tree methods to take immutable borrows of tree items.
- Pull fixes from FLTK.
- Move threads initialization to occur on App initialization.
- Pull NSOpenPanel fix from FLTK.
- Add app::set_scrollbar_size(u32) and app::scrollbar_size().
- Add wrapping methods to DisplayExt as well the text::WrapMode enum.
- Fix Window::show_with_args().
- Require ANDROID_SDK_ROOT, which has cmake and ninja.
- No need to specify use-ninja feature for Android.
- Require ANDROID_NDK_ROOT. Still uses NDK_HOME for back-compat.
- Fix channels on Android.
- Breaking:
- Some draw functions now take a Coord struct:
- draw_polygon2()
- draw_curve()
- Some draw functions now take a Coord struct:
- Add prelim alpha support for Android, this requires:
- Android NDK to be installed.
- NDK_HOME to be set.
- Add support for passing cmake toolchain files via env var CFLTK_TOOLCHAIN.
- Add struct AndroidWindow.
- Update FLTK.
- Update syn.
- Add a roadmap for the project.
- Fix typos, thanks @nicolasbauw
- Add DisplayExt::style_buffer().
- Fix wrapper bug which ignored return values.
- Update FLTK.
- Impl Send and Sync for FltkError.
- Remove opaque type StyleTables.
- BrowserExt::set_column_widths() takes a static slice.
- Accept AsRef where &Path was previously required.
- Update FLTK.
- Update deps.
- Add null check on C++ side when loading fonts.
- Update FLTK.
- Add doc comments on MenuExt::add() labels.
- Add App::load_font() to load a font from a path.
- Update build.rs to reflect latest FLTK cmake options.
- Remove potentially failing internal unwraps.
- Update FLTK.
- Update syn.
- Clean up examples.
- Add fltk-sys example.
- Restructure C wrapper.
- Rename enum InputType field value InputType to Input.
- Add experimental no-images feature flag.
- cfltk and fltk are compiled with no-rtti and no-exceptions.
- Override placement new in cfltk.
- Add note on exception-safety in FAQ.
- mark app::set_raw_callback as unsafe.
- Add static widget, buffer and image deletion functions.
- Fixed typo app::dispaly -> app::display (Thanks @DBLouis).
- Remove default linkage to C++ std library.
- Add app::set_raw_callback() which avoids boxing callbacks.
- Update FLTK to after commit cd26829 which adds MacOS 11.0 support.
- Add missing docs for callback arguments.
- Add TextBuffer::save_file().
- Use expect() in the build script to give meaningful messages on missing dependencies.
- Make fltk-sys no_std.
- Add feature flag "enable-glwindow".
- Remove feature flag "no-opengl".
- Separate raw opengl functions into their own crate "glu-sys".
- Add DoubleWindow::flush().
- Update dependencies (syn to 1.0.36).
- Add alias Scheme to AppScheme.
- Add WindowExt::fullscreen_active() and WindowExt::iconize().
- Update FLTK.
- Fix WindowExt::raw_handle() method on systems where
unsigned long int
is u32. - Make several free functions in the app module public.
- Add convenience functions dialog::file_chooser() and dialog::dir_chooser().
- Add color_chooser() convenience function.
- Add dialog::FileChooser::window().
- impl BitOr for dialog::FileChooserType.
- Add WidgetExt::set_pos and WidgetExt::set_size.
- Add Fltk's own FileChooser. In addition to the already available native FileDialog.
- Add app::wait_for(dur: f64).
- Add impl BitOr for Shortcut.
- Change impl Add to impl BitOr for Shortcut.
- Add Shortcut::from_key() and Shortcut::from_i32().
- Add Window::show_with_args() and show_with_env_args() for FLTK specific command-line arguments.
- Add FrameType::by_index().
- Add some missing asserts.
- Add missing docs for new TextEditor functions.
- Add SingleWindow widget.
- Add more FileBrowser methods.
- Add Pixmap.
- Use high res GL on MacOS by default when OpenGL is supported.
- Add more Tabs methods.
- Add rest of TextEditor methods.
- Move LineStyle to draw module.
- Move ChartType to misc module.
- Allow getting the fl_display and fl_gc globabl variables.
- Add null checks for methods acquiring and requiring raw handles.
- Add several more image types.
- Add SysMenuBar widget.
- Add WindowExt::region and set_region methods.
- Change interface of raw handles to return and accept RawHandle (HWND on windows, NSWindow on macos, Xid on X11).
- Rename Window::from_raw_handle() to Window::find_by_handle().
- Add event coordinate getters relative to the screen position of the cursor.
- Add fl_find(Window xid) as Window::from_raw_handle().
- Add RawWindowHandle as a wrapper around an opaque type.
- FLTK update.
- Add ScrollType enum.
- Update versions of syn, quote and cmake.
- Add Scroll::scrollbar() and Scroll::hscrollbar().
- Add BrowserExt::scrollbar() and BrowserExt::hscrollbar().
- Add missing stdint.h header at cfl.cpp.
- Expose unsafe TableExt::draw_cell_data() and set_draw_cell_data() methods.
- Refactoring.
- Add
# Safety
to docs. - Add to readme and faq.
- Fix "save as" in the editor example.
- Fixed Chart colors.
- MenuItem::new now takes a slice instead of a vector.
- Add exception checks in callbacks.
- Add app::belowmouse, pushed and focus functions.
- Add functions to query FLTK's api and abi versions.
- Remove Copy trait from TextBuffer and Images since it was potentially unsound.
- Rename TextBuffer::copy to copy_from to avoid conflict with copy method which does a deep copy.
- Deprecate App::set_scheme in favor of App::with_scheme.
- Change char flags to return raw::c_char instead of i8/u8.
- Add is_ascii assert for set_column_char and set_format_char.
- Add missing docs for BrowserExt methods.
- Add None to BrowserScrollbar Enum.
- Rename BrowserScrollBar to BrowserScrollbar.
- Remove redundancies in WidgetType enum values.
- Add several missing methods to BrowserExt methods.
- Added PackType which can be used with the Pack widget.
- Clean up fonts interface. Add example on how to use system fonts.
- Add app::delay() which delays the execution of the application.
- Add missing docs.
- Add asserts around TextBuffer operations.
- Change interface for working with images. Now widgets take an Option. This allows unsetting images.
- Remove unnecessary copy when setting a widget image.
- Add deimage and set_deimage methods to WidgetExt.
- The DisplayExt::set_buffer() takes an optional buffer, this allows unsetting the buffer.
- The DisplayExt widgets have the same constructors as other widgets.
- Fixed TextBuffer load_file method.
- Added assert to length of style entries.
- Fix image deletion.
- Add asserts to check if an image was deleted.
- Add note on image lifetimes in relation to widgets.
- Give image type specialized drop impls.
- Provide unsafe variant for widget deletion, which would delete user_data recursively for when needed.
- Improve docs about TableRow.
- RgbImage takes ownership of the underlying data.
- Remove gl_start and gl_finish.
- Add App::set_visual(Mode), app::own_colormap, app::set_focus.
- Fix Cursor naming.
- Update FLTK to commit 5005d04 for further SVG fixes.
- Add TableExt::draw_cell and TableContext.
- Rename Align enum members.
- Fix cmake invocation on Windows to build for release.
- Add most ImageExt methods.
- Change signature of draw::write__file to accept ImageExt trait.
- SharedImage::from_image() can't take ownership of the image.
- Add BMP, Jpeg and PNG image conversion methods.
- Update FLTK to commit 46b8968 which fixes Fl_SVG_Image to window icon issue.
- Add damage related methods to WidgetExt.
- Add gl_start and gl_finish to enable gl drawing within widgets.
- Rename SharedImage::from_rgb to from_image.
- Add count method to ImageExt.
- Modify visibility of internal image methods.
- ImageExt::to_rgb_data marked as unsafe.
- Added ImageExt::to_rgb_image.
- Update FLTK to commit b831848.
- Add assert for WindowExt::set_icon() supported image types.
- Fix memory leak with set_image and set_icon methods.
- Mark Image::into() as unsafe.
- Mark Widget::into() as unsafe.
- Add App::windows() method which returs an optional Vector of the application's windows.
- Widget deletion calls app::delete_widget instead of raw delete.
- Add add_emit and insert_emit to MenuExt, also emit to MenuItem.
- Add support for systems without OpenGL using the no-opengl feature flag.
- Initialize internal FLTK styles on application start.
- Fix use of uninitialized data.
- Remove deprecate set_style_table_entry method, which was replaced by set_highlight_data.
- Impl Copy for the TextBuffer.
- Add WindowExt border and set_border methods.
- Add is_radio and is_checkbox methods to MenuItem.
- Remove WidgetType trait from LabelType and FrameType.
- Add TextBuffer::unset_buffer() method.
- Deprecated DisplayExt::set_style_table_entry, use set_highlight_data instead.
- DisplayExt::buffer just returns a manually managed buffer.
- Automatically export fltk::prelude and fltk::enums into the fltk namespace.
- Fixed typos in method names.
- Fixed use-after-free of TextDisplay StyleTableEntry.
- Enable manual memory management of the style table entry when necessary.
- Add clean way to quit application using App::quit().
- Revert the DisplayExt buffer method to returning a reference.
- Fixed typos in method names.
- Fixed use-after-free of TextDisplay StyleTableEntry.
- Make TextBuffer semantics clearer using ManuallyDrop for all methods taking and returning a TextBuffer.
- Enable manual memory management of the style table entry when necessary.
- Add clean way to quit application using App::quit().
- Revert the DisplayExt buffer method to returning a reference.
- Fixed typos in method names.
- Fixed use-after-free of TextDisplay StyleTableEntry.
- Make TextBuffer semantics clearer using ManuallyDrop for all methods taking and returning a TextBuffer.
- Enable manual memory management of the style table entry when necessary.
- Add clean way to quit application using App::quit().
- Add support for windows-gnu fltk-bundled builds.
- Update to latest FLTK.
- Add positions to common dialogs which are now supported by FLTK.
- Complete methods for the SimpleTerminal struct.
- Add proper cleanup for draw callbacks
- Add checks for menu clear and clear_submenu operations.
- Add checks for tree clear operations.
- Add MenuExt::remove.
- Important fix to menu item set_label method.
- Add more checks for widget deletion.
- Add cleanup after menu deletion.
- Remove redundant delete_widget function.
- Add method to iterate menus.
- Add a safe variant to delete and unset callbacks.
- Calls to widget::clear will automatically delete allocated user_data.
- Mark clear methods not acting on FLTK widgets as unsafe.
- Add a method to unset callbacks.
- Fix double free after acquiring user_data.
- Add a tracker pointer to all widgets.
- Check for use after widget deletion for all operations on widgets.
- Add Fl_Scroll methods.
- Mark GroupExt clear method as unsafe since it could invalidate underlying widgets.
- Add WidgetExt unsafe methods to acquire user_data and manually delete widgets.
- Add WidgetExt focus methods.
- Added several methods to MenuExt and Pack.
- Relax callback restrictions.
- Give some more descriptive names for draw methods.
- Revert back to C++11 for the wrapper.
- Allow for custom widget creation, along with example.
- Image constructors return a Result instead of an Option for all ops.
- Impl Clone for widgets, since they have interior mutability (basically Arc<Mutex> on the C++ side).
- Systematically return Error when FLTK (C++) returns Error code.
- Add emit method for widgets which take a app::Sender and a message to allow for message passing and shorted callback function.
- Added the rest of the horizontal valuator widgets.
- Methods return raw pointers are marked as unsafe.
- Impl Error for FltkError.
- Add support for bundled fltk via the fltk-bundled feature flag.
- Several fixes to Offscreen and GlWindow methods.
- Translate gl functions exposed via fltk.
- Add mode and set_mode to GlWindow.
- Prefer platfrom gl header.
- Prefix all draw methods with draw_.
- Add a SharedImage struct.
- Add shown() and raw_handle() methods to WindowExt trait.
- Remove the necessity for the gl-window feature flag, however on Linux distros, OpenGL headers must be installed.
- Add several handler methods (delete_widget, event_inside_widget, event_inside).
- Add app::delete_widget() for safe widget deletion during event handling.
- Require a C++17 compiler to deal with msvc issues.
- Fix GlWindow conditional compilation.
- Fix GLU linkage on Linux.
- Fix memory leaks from CString.
- Remove unintentional debug message.
- Remove the necessity for the gl-window feature flag, however on Linux distros, OpenGL headers must be installed.
- Add several handler methods (delete_widget, event_inside_widget, event_inside).
- Add app::delete_widget() for safe widget deletion during event handling.
- Require a C++17 compiler to deal with msvc issues.
- Fix GlWindow conditional compilation.
- Fix GLU linkage on Linux.
- Add several handler methods (delete_widget, event_inside_widget, event_inside).
- Add app::delete_widget() for safe widget deletion during event handling.
- Require a C++17 compiler to deal with msvc issues.
- Fix GlWindow conditional compilation.
- Fix GLU linkage on Linux.
- Add GlWindow under gl-window feature flag.
- Add draw::show_colormap.
- Add draw methods.
- Add set_cursor method for window types.
- Add get_items() method to Tree widget.
- Add support for loading images from data/memory using the from_data() method.
- impl Send and Sync for TreeItem and MenuItem.
- Renamed ImageExt to_bytes to to_rgb which is more approprate.
- Added more button and valuator widgets.
- Add scale method to images.
- Require Rust 1.38 or higher.
- Use type hashing for channels.
- Add support for Trees and TreeItems.
- Add feature to support legacy OpenGL.
- Added wrapper for program_should_quit signal.
- Free user data after widget destruction.
- Added beeps.
- Require channel messages to also be Send and Sync.
- Mark internal traits as unsafe.
- Fix operator widget*().
- Add excludes to Cargo.toml.
- Added timeout callback functions to the app module.
- Added features to use system libjpeg, libpng and zlib instead of bundled ones.
- Added initial support for Drag and Drop operations
- Fix documentation
- Reinstated hard requirement of of Copy for sent messages.
- Change Image::new to Image::load when it involves getting an image from the filesystem.
- Make methods involved in loading file return Result.
- Removed hard requirement of of Copy for sent messages.
- Fix some methods taking an immutable reference to widgets
- Made app::awake_msg and app::thread_msg private, and are only exposed via app::channel(), where T must implement Copy.
- Added async_std and tokio examples in the examples directory.
- Added CHANGELOG.md to the repository.
- Added FAQ.md to the repository.
- Added app::add_handler() to handle unhandled events, this takes a non-capturing closure.
- Removed deprecated description() method in FltkError.
- Added app::channel() as well as app::awake_msg and app::thread_msg.
- Added clear and clear_submenu to MenuExt
- Completed ButtonExt methods and checks.
- Added impl methods for certain button checks (is_checked, is_toggled...etc).