- 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).