Giter Site home page Giter Site logo

fltk-rs's Introduction

fltk-rs

Documentation Crates.io License Build

Rust bindings for the FLTK Graphical User Interface library.

The fltk crate is a cross-platform lightweight gui library which can be statically linked to produce small, self-contained and fast gui applications.

Resources:

Why choose FLTK?

  • Lightweight. Small binary, around 1mb after stripping. Small memory footprint.
  • Speed. Fast to install, fast to build, fast at startup and fast at runtime.
  • Single executable. No DLLs to deploy.
  • Supports old architectures.
  • FLTK's permissive license which allows static linking for closed-source applications.
  • Themeability (5 supported schemes: Base, GTK, Plastic, Gleam and Oxy), and additional theming using fltk-theme.
  • Provides around 80 customizable widgets.
  • Has inbuilt image support.

Here is a list of software using FLTK. For software using fltk-rs, check here.

  • Link to the official FLTK repository.
  • Link to the official documentation.

Usage

Just add the following to your project's Cargo.toml file:

[dependencies]
fltk = "^1.4"

To use the latest changes in the repo:

[dependencies]
fltk = { version = "^1.4", git = "https://github.com/fltk-rs/fltk-rs" }

Or if you have other depenendencies which depend on fltk-rs:

[dependencies]
fltk = "^1.4"

[patch.crates-io]
fltk = { git = "https://github.com/fltk-rs/fltk-rs" }

To use the bundled libs (available for x64 windows (msvc & gnu (msys2-mingw)), x64 & aarch64 linux & macos):

[dependencies]
fltk = { version = "^1.4", features = ["fltk-bundled"] }

The library is automatically built and statically linked to your binary.

An example hello world application:

use fltk::{app, prelude::*, window::Window};

fn main() {
    let app = app::App::default();
    let mut wind = Window::new(100, 100, 400, 300, "Hello from rust");
    wind.end();
    wind.show();
    app.run().unwrap();
}

Another example showing the basic callback functionality:

use fltk::{app, button::Button, frame::Frame, prelude::*, window::Window};

fn main() {
    let app = app::App::default();
    let mut wind = Window::new(100, 100, 400, 300, "Hello from rust");
    let mut frame = Frame::new(0, 0, 400, 200, "");
    let mut but = Button::new(160, 210, 80, 40, "Click me!");
    wind.end();
    wind.show();
    but.set_callback(move |_| frame.set_label("Hello World!")); // the closure capture is mutable borrow to our button
    app.run().unwrap();
}

Please check the examples directory for more examples. You will notice that all widgets are instantiated with a new() method, taking the x and y coordinates, the width and height of the widget, as well as a label which can be left blank if needed. Another way to initialize a widget is using the builder pattern: (The following buttons are equivalent)

use fltk::{button::Button, prelude::*};
let but1 = Button::new(10, 10, 80, 40, "Button 1");

let but2 = Button::default()
    .with_pos(10, 10)
    .with_size(80, 40)
    .with_label("Button 2");

An example of a counter showing use of the builder pattern:

use fltk::{app, button::Button, frame::Frame, prelude::*, window::Window};
fn main() {
    let app = app::App::default();
    let mut wind = Window::default()
        .with_size(160, 200)
        .center_screen()
        .with_label("Counter");
    let mut frame = Frame::default()
        .with_size(100, 40)
        .center_of(&wind)
        .with_label("0");
    let mut but_inc = Button::default()
        .size_of(&frame)
        .above_of(&frame, 0)
        .with_label("+");
    let mut but_dec = Button::default()
        .size_of(&frame)
        .below_of(&frame, 0)
        .with_label("-");
    wind.make_resizable(true);
    wind.end();
    wind.show();
    /* Event handling */
    app.run().unwrap();
}

Alternatively, you can use Flex (for flexbox layouts), Pack or Grid:

use fltk::{app, button::Button, frame::Frame, group::Flex, prelude::*, window::Window};
fn main() {
    let app = app::App::default();
    let mut wind = Window::default().with_size(160, 200).with_label("Counter");
    let mut flex = Flex::default().with_size(120, 140).center_of_parent().column();
    let mut but_inc = Button::default().with_label("+");
    let mut frame = Frame::default().with_label("0");
    let mut but_dec = Button::default().with_label("-");
    flex.end();
    wind.end();
    wind.show();
    app.run().unwrap();
}

Another example:

use fltk::{app, button::Button, frame::Frame, group::Flex, prelude::*, window::Window};

fn main() {
    let app = app::App::default();
    let mut wind = Window::default().with_size(400, 300);
    let mut col = Flex::default_fill().column();
    col.set_margins(120, 80, 120, 80);
    let mut frame = Frame::default();
    let mut but = Button::default().with_label("Click me!");
    col.fixed(&but, 40);
    col.end();
    wind.end();
    wind.show();

    but.set_callback(move |_| frame.set_label("Hello world"));

    app.run().unwrap();
}

Events

Events can be handled using the set_callback method (as above) or the available fltk::app::set_callback() free function, which will handle the default trigger of each widget(like clicks for buttons):

    /* previous hello world code */
    but.set_callback(move |_| frame.set_label("Hello World!"));
    another_but.set_callback(|this_button| this_button.set_label("Works"));
    app.run().unwrap();

Another way is to use message passing:

    /* previous counter code */
    let (s, r) = app::channel::<Message>();

    but_inc.emit(s, Message::Increment);
    but_dec.emit(s, Message::Decrement);
    
    while app.wait() {
        let label: i32 = frame.label().parse().unwrap();
        if let Some(msg) = r.recv() {
            match msg {
                Message::Increment => frame.set_label(&(label + 1).to_string()),
                Message::Decrement => frame.set_label(&(label - 1).to_string()),
            }
        }
    }

For the remainder of the code, check the full example here.

For custom event handling, the handle() method can be used:

    some_widget.handle(move |widget, ev: Event| {
        match ev {
            Event::Push => {
                println!("Pushed!");
                true
            },
            /* other events to be handled */
            _ => false,
        }
    });

Handled or ignored events using the handle method should return true, unhandled events should return false. More examples are available in the fltk/examples directory.

For an alternative event handling mechanism using an immediate-mode approach, check the fltk-evented crate.

Theming

FLTK offers 5 application schemes:

  • Base
  • Gtk
  • Gleam
  • Plastic
  • Oxy

(Additional theming can be found in the fltk-theme crate)

These can be set using the App::with_scheme() method.

let app = app::App::default().with_scheme(app::Scheme::Gleam);

Themes of individual widgets can be optionally modified using the provided methods in the WidgetExt trait, such as set_color(), set_label_font(), set_frame() etc:

    some_button.set_color(Color::Light1); // You can use one of the provided colors in the fltk enums
    some_button.set_color(Color::from_rgb(255, 0, 0)); // Or you can specify a color by rgb or hex/u32 value
    some_button.set_color(Color::from_u32(0xffebee));
    some_button.set_frame(FrameType::RoundUpBox);
    some_button.set_font(Font::TimesItalic);

For default application colors, fltk-rs provides app::background(), app::background2() and app::foreground(). You can also specify the default application selection/inactive colors, font, label size, frame type, scrollbar size, menu line-spacing. Additionally the fltk-theme crate offers some other predefined color maps (dark theme, tan etc) and widget themes which can be loaded into your application.

Build Dependencies

Rust (version > 1.55), CMake (version > 3.11), Git and a C++17 compiler need to be installed and in your PATH for a cross-platform build from source. Ninja is recommended, but not required. This crate also offers a bundled form of fltk on selected x86_64 and aarch64 platforms (Windows (msvc and gnu), MacOS, Linux), this can be enabled using the fltk-bundled feature flag as mentioned in the usage section (this requires curl and tar to download and unpack the bundled libraries).

  • Windows:
    • MSVC: Windows SDK
    • Gnu: No dependencies
  • MacOS: No dependencies.
  • Linux/BSD: X11 and OpenGL development headers need to be installed for development. The libraries themselves are normally available on linux/bsd distros with a graphical user interface.

For Debian-based GUI distributions, that means running:

sudo apt-get install libx11-dev libxext-dev libxft-dev libxinerama-dev libxcursor-dev libxrender-dev libxfixes-dev libpango1.0-dev libgl1-mesa-dev libglu1-mesa-dev

For RHEL-based GUI distributions, that means running:

sudo yum groupinstall "X Software Development" && yum install pango-devel libXinerama-devel libstdc++-static

For Arch-based GUI distributions, that means running:

sudo pacman -S libx11 libxext libxft libxinerama libxcursor libxrender libxfixes pango cairo libgl mesa --needed

For Alpine linux:

apk add pango-dev fontconfig-dev libxinerama-dev libxfixes-dev libxcursor-dev mesa-gl

For NixOS (Linux distribution) this nix-shell environment can be used:

nix-shell --packages rustc cmake git gcc xorg.libXext xorg.libXft xorg.libXinerama xorg.libXcursor xorg.libXrender xorg.libXfixes libcerf pango cairo libGL mesa pkg-config

Runtime Dependencies

  • Windows: None
  • MacOS: None
  • Linux: You need X11 libraries, as well as pango and cairo for drawing (and OpenGL if you want to enable the enable-glwindow feature):
apt-get install -qq --no-install-recommends libx11-6 libxinerama1 libxft2 libxext6 libxcursor1 libxrender1 libxfixes3 libcairo2 libpango-1.0-0 libpangocairo-1.0-0 libpangoxft-1.0-0 libglib2.0-0 libfontconfig1 libglu1-mesa libgl1

Note that if you installed the build dependencies, it will also install the runtime dependencies automatically as well.

Also note that most graphical desktop environments already have these libs already installed. This list can be useful if you want to test your already built package in CI/docker (where there is no graphical user interface).

Features

The following are the features offered by the crate:

  • use-ninja: Uses the ninja build system if available for a faster build, especially on Windows.
  • no-pango: Build without pango support on Linux/BSD, if rtl/cjk font support is not needed.
  • fltk-bundled: Support for bundled versions of cfltk and fltk on selected platforms (requires curl and tar)
  • enable-glwindow: Support for drawing using OpenGL functions.
  • system-libpng: Uses the system libpng
  • system-libjpeg: Uses the system libjpeg
  • system-zlib: Uses the system zlib
  • use-wayland: Uses FLTK's wayland hybrid backend (runs on wayland when present, and on X11 when not present). Requires libwayland-dev, wayland-protocols, libdbus-1-dev, libxkbcommon-dev, libgtk-3-dev (optional, for the GTK-style titlebar), in addition to the X11 development packages. Sample CI.
  • fltk-config: Uses an already installed FLTK's fltk-config to build this crate against. This still requires FLTK 1.4. Useful for reducing build times, testing against a locally built FLTK and doesn't need to invoke neither git nor cmake.

FAQ

please check the FAQ page for frequently asked questions, encountered issues, guides on deployment, and contribution.

Building

To build, just run:

git clone https://github.com/fltk-rs/fltk-rs --recurse-submodules
cd fltk-rs
cargo build

Currently implemented types:

Image types:

  • SharedImage
  • BmpImage
  • JpegImage
  • GifImage
  • AnimGifImage
  • PngImage
  • SvgImage
  • Pixmap
  • RgbImage
  • XpmImage
  • XbmImage
  • PnmImage
  • TiledImage

Widgets:

  • Buttons
    • Button
    • RadioButton
    • ToggleButton
    • RoundButton
    • CheckButton
    • LightButton
    • RepeatButton
    • RadioLightButton
    • RadioRoundButton
    • ReturnButton
    • ShortcutButton
  • Dialogs
    • Native FileDialog
    • FileChooser
    • HelpDialog
    • Message dialog
    • Alert dialog
    • Password dialog
    • Choice dialog
    • Input dialog
    • ColorChooser dialog
  • Frame (Fl_Box)
  • Windows
    • Window
    • SingleWindow (single buffered)
    • DoubleWindow (double buffered)
    • MenuWindow
    • OverlayWindow
    • GlWindow (requires the "enable-glwindow" flag)
    • Experimental GlWidgetWindow (requires the "enable-glwindow" flag)
  • Groups
  • Text display widgets
    • TextDisplay
    • TextEditor
    • SimpleTerminal
  • Input widgets
    • Input
    • IntInput
    • FloatInput
    • MultilineInput
    • SecretInput
    • FileInput
  • Output widgets
    • Output
    • MultilineOutput
  • Menu widgets
    • MenuBar
    • MenuItem
    • Choice (dropdown list)
    • SysMenuBar (MacOS menu bar which appears at the top of the screen)
  • Valuator widgets
    • Slider
    • NiceSlider
    • ValueSlider
    • Dial
    • LineDial
    • Counter
    • Scrollbar
    • Roller
    • Adjuster
    • ValueInput
    • ValueOutput
    • FillSlider
    • FillDial
    • HorSlider (Horizontal slider)
    • HorFillSlider
    • HorNiceSlider
    • HorValueSlider
  • Browsing widgets
    • Browser
    • SelectBrowser
    • HoldBrowser
    • MultiBrowser
    • FileBrowser
    • CheckBrowser
  • Miscelaneous widgets
    • Spinner
    • Clock (Round and Square)
    • Chart (several chart types are available)
    • Progress (progress bar)
    • Tooltip
    • InputChoice
    • HelpView
  • Table widgets
  • Trees
    • Tree
    • TreeItem

Drawing primitives

(In the draw module)

Surface types:

  • Printer.
  • ImageSurface.
  • SvgFileSurface.

GUI designer

fltk-rs supports FLUID, the RAD wysiwyg designer for FLTK. Checkout the fl2rust crate and fl2rust template.

Examples

To run the examples:

cargo run --example editor
cargo run --example calculator
cargo run --example calculator2
cargo run --example counter
cargo run --example hello_svg
cargo run --example hello_button
cargo run --example fb
cargo run --example pong
cargo run --example custom_widgets
cargo run --example custom_dial
...

Using custom theming and also FLTK provided default schemes like Gtk:

Different frame types which can be used with many different widgets such as Frame, Button widgets, In/Output widgets...etc.

More interesting examples can be found in the fltk-rs-demos repo. Also a nice implementation of the 7guis tasks can be found here. Various advanced examples can also be found here.

Themes

Additional themes can be found in the fltk-theme crate.

  • screenshots/aero.jpg

  • screenshots/black.jpg

And more...

Extra widgets

This crate exposes FLTK's set of widgets, which are all customizable. Additional custom widgets can be found in the fltk-extras crate.

image

image

ss

image

Tutorials

More videos in the playlist here. Some of the demo projects can be found here.

fltk-rs's People

Contributors

aaronps avatar ashfordn avatar bigfarts avatar brmmm3 avatar caseyb avatar consolec137 avatar ctlcl avatar degaart avatar dependabot[bot] avatar eadf avatar eddylin83 avatar hannesbraun avatar jgriffitts avatar jkl1337 avatar joseluis avatar killthemule avatar legendofa avatar mark-summerfield avatar moalyousef avatar mokurin000 avatar peter-scholtens avatar postrediori avatar sigmaeg avatar tdryer avatar thorio avatar treeshateorcs avatar viruscamp avatar vstojkovic avatar yveszoundi avatar zalasus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fltk-rs's Issues

Common issues

Please before opening a new issue, check the FAQ page for (potentially) frequently asked questions, encountered issues, guides on deployment, and contribution.

Add public "from" method to Image trait

Currently I'm missing an option to create images from embedded data.
There is a crate called rust-embed, which let's you easily embed external data, like images into the Rust code. The get method in that crate returns a Cow<'static, [u8]>.
It would be great to be able to code something like:

let img = PngImage::from(embedded_data.get('app.png'));

Failed to build on Windows 10 LTSB

Describe the bug
I set fltk = "^0.8" in the dependency list and used an example code:

use fltk::{app::*, window::*};

fn main() {
    let app = App::default();
    let mut wind = Window::new(100, 100, 400, 300, "Hello from rust");
    wind.end();
    wind.show();
    app.run().unwrap();
}

To Reproduce
cargo run

Expected behavior
I expected the example will launch

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Windows 10 x64
  • Version: LTSB

Additional context

   Compiling fltk-sys v0.8.0
   Compiling fltk-derive v0.8.0
error: failed to run custom build command for `fltk-sys v0.8.0`

Caused by:
  process didn't exit successfully: `O:\Rust\fltk_test\target\debug\build\fltk-sys-b3725011135e40ce\build-script-build` (exit code: 101)
  --- stdout
  cargo:rerun-if-changed=build.rs

  --- stderr
  thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "The system cannot find the file specified." }', C:\Users\Admin\.cargo\registry\src\github.com-1ecc6299db9ec823\fltk-sys-0.8.0\build.rs:41:14
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: build failed

[BUG] Build error on Respberry Pi 4B

If this is a known issue, please close it.

pi@raspberrypi:~/Projects/fltk-rs $ cargo build --release
    Updating crates.io index
   Compiling proc-macro2 v1.0.18
   Compiling unicode-xid v0.2.1
   Compiling cc v1.0.55
   Compiling syn v1.0.33
   Compiling cmake v0.1.44
   Compiling quote v1.0.7
   Compiling fltk-sys v0.7.4 (/home/pi/Projects/fltk-rs/fltk-sys)
   Compiling fltk-derive v0.7.4 (/home/pi/Projects/fltk-rs/fltk-derive)
   Compiling fltk v0.7.4 (/home/pi/Projects/fltk-rs)
error[E0308]: mismatched types
   --> src/text.rs:188:54
    |
188 |         unsafe { Fl_Text_Buffer_canUndo(self._inner, flag as i8) }
    |                                                      ^^^^^^^^^^ expected `u8`, found `i8`
    |
help: you can convert an `i8` to `u8` and panic if the converted value wouldn't fit
    |
188 |         unsafe { Fl_Text_Buffer_canUndo(self._inner, (flag as i8).try_into().unwrap()) }
    |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
  --> src/window.rs:89:54
   |
89 |         unsafe { Fl_Gl_Window_set_valid(self._inner, v as i8) }
   |                                                      ^^^^^^^ expected `u8`, found `i8`
   |
help: you can convert an `i8` to `u8` and panic if the converted value wouldn't fit
   |
89 |         unsafe { Fl_Gl_Window_set_valid(self._inner, (v as i8).try_into().unwrap()) }
   |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
   --> src/window.rs:106:62
    |
106 |         unsafe { Fl_Gl_Window_set_context_valid(self._inner, v as i8) }
    |                                                              ^^^^^^^ expected `u8`, found `i8`
    |
help: you can convert an `i8` to `u8` and panic if the converted value wouldn't fit
    |
106 |         unsafe { Fl_Gl_Window_set_context_valid(self._inner, (v as i8).try_into().unwrap()) }
    |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 3 previous errors

For more information about this error, try `rustc --explain E0308`.
error: could not compile `fltk`.

To learn more, run the command again with --verbose.

And a pretty straightforward change can fix it:

diff --git a/src/text.rs b/src/text.rs
index 2a556d893539..cfccdd04149e 100644
--- a/src/text.rs
+++ b/src/text.rs
@@ -185,7 +185,7 @@ impl TextBuffer {
     /// Sets whether the buffer can undo
     pub fn can_undo(&mut self, flag: bool) {
         assert!(!self._inner.is_null());
-        unsafe { Fl_Text_Buffer_canUndo(self._inner, flag as i8) }
+        unsafe { Fl_Text_Buffer_canUndo(self._inner, flag as u8) }
     }

     /// Loads a file into the buffer
diff --git a/src/window.rs b/src/window.rs
index ce485026af2f..0ead5ce50fd6 100644
--- a/src/window.rs
+++ b/src/window.rs
@@ -86,7 +86,7 @@ impl GlWindow {
     /// Mark the OpeGL context as still valid
     pub fn set_valid(&mut self, v: bool) {
         assert!(!self.was_deleted());
-        unsafe { Fl_Gl_Window_set_valid(self._inner, v as i8) }
+        unsafe { Fl_Gl_Window_set_valid(self._inner, v as u8) }
     }

     /// Returns whether the context is valid upon creation
@@ -103,7 +103,7 @@ impl GlWindow {
     /// Mark the context as valid upon creation
     pub fn set_context_valid(&mut self, v: bool) {
         assert!(!self.was_deleted());
-        unsafe { Fl_Gl_Window_set_context_valid(self._inner, v as i8) }
+        unsafe { Fl_Gl_Window_set_context_valid(self._inner, v as u8) }
     }

     /// Returns the GlContext

[BUG]"Cannot find type <Message> in this scope" when trying ot snippet about events handlling (from fltk-rs doc)

Hi! I tried the following snippet from the doc about fltk-rs:

` /* previous counter code */
let (s, r) = app::channel::();

but_inc.emit(s, Message::Increment);
but_dec.emit(s, Message::Decrement);

while app.wait().unwrap() {
    let label: i32 = frame.label().parse().unwrap();
    match r.recv() {
        Some(Message::Increment) => frame.set_label(&(label + 1).to_string()),
        Some(Message::Decrement) => frame.set_label(&(label - 1).to_string()),
        None => (),
    }
}`

More precisely, I replaced :
app.run().unwrap();
in the counter example with the snippet above, but

but I get the error message: "Cannot find type in this scope".

I'm using:

  • Rust 1.44.1
  • fltk-rs from crates.io : fltk = "0.7.4"

[BUG] Error building on pop os (ubuntu derivative)

Describe the bug
Following the tutorial, I install the devel dependencies as outlined in the docs. I then add the fltk dependency in cargo with the fltk-bundled feature, build a basic hello world app straight from the example, then attempt to cargo run. I get

error: could not find native static library `cfltk`, perhaps an -L flag is missing?

error: aborting due to previous error

error: could not compile `fltk-sys`.

To Reproduce
At least on pop-os

  1. install devel deps
  2. run cargo new fltktest
  3. add fltk = {version="^0.7.12", features = ["fltk-bundled"]} to dependencies in Cargo.toml
    4 . add the following to main.rs
use fltk::{app::*, button::*, frame::*, window::*};
fn main() { 
    let app = App::default();
    let mut wind = Window::new(100,100,400,300, "Hello from Rust");
    let mut frame = Frame::new(0, 0, 400,200, "");
    let mut btn = Button::new(160, 210, 80, 40, "Click Me!");
    wind.end();
    wind.show();
    btn.set_callback(Box::new(move || frame.set_label("Hello World")));
    app.run().unwrap();
}
  1. run cargo run

Expected behavior
build and get an flltk window

Desktop (please complete the following information):

  • Linux pop-os 5.4.0-7634-generic #38159249712920.04~9a1ea2e-Ubuntu SMP Fri Jun 19 22:43:37 UTC x86_64 x86_64 x86_64 GNU/Linux

Menu example

I'd like to construct a menu for my app. I don't see any examples or docs for this, so I guess I'll have to figure it out from the code.

So my questions are:

  • any pointers to help me (even on fltk with C/C++)?

  • would you like a Menu example (in a PR) if I can figure it out?

The "set_value" of Progress doesn't work

What I do is pretty simple:
let mut progress = Progress::new(10, 180, 200, 10, "");
progress.set_minimum(0.0);
progress.set_maximum(100.0);
progress.set_value(50.0);

But I still got an "empty" progress bar. Is there anything I missed?
I'm working on the windows 10 BTW.

ImageExt is not implemented for fltk::image::RgbImage.

Take the example code for 'Hello.rs' and try to use an RgbImage instead of an SVGImage. The following error is raised:

error[E0277]: the trait bound `fltk::image::RgbImage: fltk::prelude::ImageExt` is not satisfied
   --> src\main.rs:129:21
    |
129 |                 frame.set_image(&fltk_img);
    |                                 ^^^^^^^^^ the trait `fltk::prelude::ImageExt` is not implemented for `fltk::image::RgbImage`

Sample code:

fn main() {
	let app = app::App::default().set_scheme(app::AppScheme::Gleam);
	let mut wind = Window::new(100, 100, 400, 300, "Hello from rust");
	let mut frame = Frame::new(0, 0, 400, 300, "");
	// Create an image procedurally here, or load it.  Doesn't matter:
	let image = fltk_image::RgbImage::new((0..128*128).into_iter().map(|i|{ let x = i%128; let y = i/128;  x ^ y }).collect(), 128, 128);
	// let image = SvgImage::new(&PathBuf::from("screenshots/RustLogo.svg"));
	frame.set_image(&image);
	wind.make_resizable(true);
	wind.end();
	wind.show();
	app.run().unwrap();
}

fltk-version: 0.3.7

Table example

Hi!
I want to start of by saying how easy it was to get up and running with this project!
Searching the examples I could not find out how to setup a Table with data. I tried the using the custom widget example to override draw_cells but the TableContext seems to be missing. (Or I just couldn't find it)

Setting up an example like table-simple might be helpful both for me and for other user.

Hi, is there an option to pack widgets horizontally in fltk-rs?

Hi, is there an option to pack widgets horizontally in fltk-rs?

I seem to remember that the "pack" container in the original fltk in C++ had an option to this end:

Serge.

`
use fltk::{app::, button::, window::, group::, input::*};

fn main() {
let app = App::default();
let mut wind = Window::new(100, 100, 400, 300, "Hello from rust");

// Group 1
// #######
let e1 = Input::new(0, 0, 80, 40, "");
let mut  b1 = Button::new(0, 0, 80, 40, "Button 1");
let mut  b2 = Button::new(0, 0, 80, 40, "Button 2");

let mut p = Pack::new(50, 50, 300, 100, "");
//Packing group 1
p.add(&e1);
p.add(&b1);
p.add(&b2);
p.set_spacing(5);
p.end();

wind.end();
wind.show();
app.run().unwrap();

}

`

Is there a way to "get" the windows dimensions when it has been resized ?

If yes, is there also a way to detect the (end of) a resizing event (to automatically detect the new dimensions after a window resizing ebent)?

That could be a useful feature, for instance to resize the fonts along with the widows (since by default the font do not scale up along with the widgets).

[BUG] Build fails with toolchain msvc

I'm using nightly-msvc on Windows with fltk 0.5.0. cargo build fails with the following error message:
error: failed to run custom build command for fltk-sys v0.5.0

Caused by:
process didn't exit successfully: C:\Workspace\Rust\FastTools\target\debug\build\fltk-sys-c2b887145bc803c1\build-script-build (exit code: 101)
--- stdout
cargo:rerun-if-changed=build.rs
cargo:rerun-if-changed=cfltk/cfl.h
cargo:rerun-if-changed=cfltk/cfl_widget.h
cargo:rerun-if-changed=cfltk/cfl_group.h
cargo:rerun-if-changed=cfltk/cfl_window.h
cargo:rerun-if-changed=cfltk/cfl_button.h
cargo:rerun-if-changed=cfltk/cfl_box.h
cargo:rerun-if-changed=cfltk/cfl_menu.h
cargo:rerun-if-changed=cfltk/cfl_dialog.h
cargo:rerun-if-changed=cfltk/cfl_valuator.h
cargo:rerun-if-changed=cfltk/cfl_browser.h
cargo:rerun-if-changed=cfltk/cfl_misc.h
cargo:rerun-if-changed=cfltk/cfl_text.h
cargo:rerun-if-changed=cfltk/cfl_image.h
cargo:rerun-if-changed=cfltk/cfl_draw.h
cargo:rerun-if-changed=cfltk/cfl_table.h
cargo:rerun-if-changed=cfltk/cfl.cpp
cargo:rerun-if-changed=cfltk/cfl_widget.cpp
cargo:rerun-if-changed=cfltk/cfl_group.cpp
cargo:rerun-if-changed=cfltk/cfl_window.cpp
cargo:rerun-if-changed=cfltk/cfl_button.cpp
cargo:rerun-if-changed=cfltk/cfl_box.cpp
cargo:rerun-if-changed=cfltk/cfl_menu.cpp
cargo:rerun-if-changed=cfltk/cfl_dialog.cpp
cargo:rerun-if-changed=cfltk/cfl_valuator.cpp
cargo:rerun-if-changed=cfltk/cfl_browser.cpp
cargo:rerun-if-changed=cfltk/cfl_misc.cpp
cargo:rerun-if-changed=cfltk/cfl_text.cpp
cargo:rerun-if-changed=cfltk/cfl_image.cpp
cargo:rerun-if-changed=cfltk/cfl_draw.cpp
cargo:rerun-if-changed=cfltk/cfl_table.cpp
cargo:rerun-if-changed=cfltk/cfl_tree.cpp
cargo:rerun-if-changed=cfltk/CMakeLists.txt
running: "cmake" "C:\Users\bam5wi\.cargo\registry\src\github.com-1ecc6299db9ec823\fltk-sys-0.5.0\cfltk" "-G" "Visual Studio 14 2015" "-Thost=x64" "-Ax64" "-DOPTION_USE_SYSTEM_LIBPNG=OFF" "-DOPTION_USE_SYSTEM_LIBJPEG=OFF" "-DOPTION_USE_SYSTEM_ZLIB=OFF" "-DOpenGL_GL_PREFERENCE=GLVND" "-DOPTION_ABI_VERSION:STRING=10401" "-DOPTION_BUILD_EXAMPLES=OFF" "-DOPTION_USE_THREADS=ON" "-DOPTION_LARGE_FILE=ON" "-DOPTION_BUILD_HTML_DOCUMENTATION=OFF" "-DOPTION_BUILD_PDF_DOCUMENTATION=OFF" "-DCMAKE_INSTALL_PREFIX=C:\Workspace\Rust\FastTools\target\debug\build\fltk-sys-2a714bbae49aa2b6\out" "-DCMAKE_C_FLAGS= -nologo -MD -Brepro" "-DCMAKE_C_FLAGS_RELEASE= -nologo -MD -Brepro" "-DCMAKE_CXX_FLAGS= -nologo -MD -Brepro" "-DCMAKE_CXX_FLAGS_RELEASE= -nologo -MD -Brepro" "-DCMAKE_ASM_FLAGS= -nologo -MD -Brepro" "-DCMAKE_ASM_FLAGS_RELEASE= -nologo -MD -Brepro" "-DCMAKE_BUILD_TYPE=RELEASE"
-- Selecting Windows SDK version 10.0.10586.0 to target Windows 10.0.17763.
-- Warning: Header file GL/glu.h was not found.
-- The FLTK team recommends to rerun CMake from a
-- "Developer Command Prompt for Visual Studio xxxx"
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Workspace/Rust/FastTools/target/debug/build/fltk-sys-2a714bbae49aa2b6/out/build
running: "cmake" "--build" "." "--target" "install" "--config" "RELEASE" "--"
Microsoft (R) Build Engine version 14.0.25420.1
Copyright (C) Microsoft Corporation. All rights reserved.

cfl_window.cpp
C:\Users\bam5wi.cargo\registry\src\github.com-1ecc6299db9ec823\fltk-sys-0.5.0\cfltk\cfl_window.cpp(42): error C2059: syntax error: 'type' [C:\Workspace\Rust\FastTools\target\debug\build\fltk-sys-2a714bbae49aa2b6\out\build\cfltk.vcxproj]
C:\Users\bam5wi.cargo\registry\src\github.com-1ecc6299db9ec823\fltk-sys-0.5.0\cfltk\cfl_window.cpp(48): error C2059: syntax error: 'type' [C:\Workspace\Rust\FastTools\target\debug\build\fltk-sys-2a714bbae49aa2b6\out\build\cfltk.vcxproj]
C:\Users\bam5wi.cargo\registry\src\github.com-1ecc6299db9ec823\fltk-sys-0.5.0\cfltk\cfl_window.cpp(54): error C2059: syntax error: 'type' [C:\Workspace\Rust\FastTools\target\debug\build\fltk-sys-2a714bbae49aa2b6\out\build\cfltk.vcxproj]
C:\Users\bam5wi.cargo\registry\src\github.com-1ecc6299db9ec823\fltk-sys-0.5.0\cfltk\cfl_window.cpp(60): error C2059: syntax error: 'type' [C:\Workspace\Rust\FastTools\target\debug\build\fltk-sys-2a714bbae49aa2b6\out\build\cfltk.vcxproj]
cfl_button.cpp
...
C:\Users\bam5wi.cargo\registry\src\github.com-1ecc6299db9ec823\fltk-sys-0.5.0\cfltk\cfl_tree.cpp(10): error C2059: syntax error: 'type' [C:\Workspace\Rust\FastTools\target\debug\build\fltk-sys-2a714bbae49aa2b6\out\build\cfltk.vcxproj]
Generating Code...
fltk.vcxproj -> C:\Workspace\Rust\FastTools\target\debug\build\fltk-sys-2a714bbae49aa2b6\out\lib\Release\fltk.lib
fltk_forms.vcxproj -> C:\Workspace\Rust\FastTools\target\debug\build\fltk-sys-2a714bbae49aa2b6\out\lib\Release\fltk_forms.lib
fltk_gl.vcxproj -> C:\Workspace\Rust\FastTools\target\debug\build\fltk-sys-2a714bbae49aa2b6\out\lib\Release\fltk_gl.lib
fltk_jpeg.vcxproj -> C:\Workspace\Rust\FastTools\target\debug\build\fltk-sys-2a714bbae49aa2b6\out\lib\Release\fltk_jpeg.lib
fltk_z.vcxproj -> C:\Workspace\Rust\FastTools\target\debug\build\fltk-sys-2a714bbae49aa2b6\out\lib\Release\fltk_z.lib
fltk_png.vcxproj -> C:\Workspace\Rust\FastTools\target\debug\build\fltk-sys-2a714bbae49aa2b6\out\lib\Release\fltk_png.lib
fltk_images.vcxproj -> C:\Workspace\Rust\FastTools\target\debug\build\fltk-sys-2a714bbae49aa2b6\out\lib\Release\fltk_images.lib
fluid.vcxproj -> C:\Workspace\Rust\FastTools\target\debug\build\fltk-sys-2a714bbae49aa2b6\out\build\fltk\bin\Release\fluid.exe

--- stderr
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
thread 'main' panicked at '
command did not execute successfully, got: exit code: 1

With toolchain nightly-gnu cargo build runs fine.

[BUG] Support visual studio 2013

I'm using msvc 2013, it's failed to build fltk-sys, I open target\release\build\fltk-sys-69cf4b771d9caeb3\out\build\cfltk.sln to manully build, it shows in cfltk/cfl.cpp:

unsigned int Fl_rand(void) {
    std::mt19937 rng;
    std::uniform_int_distribution<std::mt19937::result_type> dist(0, UINT_FAST32_MAX);
    rng.seed(std::random_device()());
    return dist(rng);
}

msvc2013 don't have UINT_FAST32_MAX, and I add #define UINT_FAST32_MAX (4294967295UL), then it compile successful.

Prebuild binaries on macOS 10.14 instead of 10.15

Many people choose to stay on 10.14 due to 32-bit support and, to be honest, Catalina's straight-up unattractiveness. Since you seem to specify the version of macOS in your workflow yml thing, wouldn't it be possible to specify 10.14 instead of 10.15?

I believe this has no drawbacks, only benefits. Since fltk-rs already compiles and runs on my 10.14 system when not using the bundled libraries, it's silly to prebuild the binaries on a later version because that does absolutely nothing but restrict the operating systems these apps can run on.

As far as I can tell, you don't use Swift UI or any other features that require Catalina. Specifying 10.15 just because it's "the bestest version" isn't very nice :P

Ideally you would specify the very lowest version of the operating system that this library functions on, rather than the newest version just because you can.

[BUG] Build fails on armv7 targets

Describe the bug
Trying to compile this on a Raspberry Pi Model 3B running Raspbian causes a compile error in the expansion of the WindowExt derive macro. The same error occurs when cross-compiling from my AMD64 desktop running Debian Buster using the armv7-unknown-linux-gnueabihf target. On both platforms, the stable branch of Rust was used.

Compiler output
This error appears in every location where WindowExt is derived:

error[E0308]: mismatched types
  --> src/window.rs:34:31
   |
34 | #[derive(WidgetExt, GroupExt, WindowExt, Debug)]
   |                               ^^^^^^^^^
   |                               |
   |                               expected `u64`, found `u32`
   |                               expected `u64` because of return type
   |                               help: you can convert an `u32` to `u64`: `WindowExt.into()`
   |
   = note: this error originates in a derive macro (in Nightly builds, run with -Z macro-backtrace for more info)

[BUG] set_position(&mut self, val: i32) is always returning an error

Describe the bug
The set_position() function is always returning an error (with an output and input widget)

To Reproduce

let mut header_view = Output::default().with_size(WIN_W, 18).with_pos(0,0);
header_view.set_position(WIN_W/2 as i32).unwrap();

(no need to cast as i32 - same result whatever the value)

Expected behavior
thread 'main' panicked at 'called Result::unwrap() on an Err value: Internal(FailedOperation)'
(unwrap on purpose)

Desktop (please complete the following information):

  • OS: macOS 10.15
  • Version 0.8.7
  • rust 1.46 stable

Segmentation fault in save prompt

When running the editor example and choosing "Save" or "Save as", the app crashes and "Segmentation fault" is printed in the terminal. (I am running Linux.)

Testing:

  • This occurs regardless of theme.
  • Valgrind shows that the error is an invalid read occurring while png data is being processed by GTK. (This is shown whether or not Gtk is the chosen theme.) Full Valgrind log: valgrind.txt

[BUG] Memory leaks are caused when a widget with custom callback is deleted

Memory leaks are caused when a widget with custom callback/handle/draw is deleted.
for example:

struct DropObj(i32);

impl Drop for DropObj {
    fn drop(&mut self) {
        println!("drop DropObj({})!",self.0);
    }
}

fn main() {
    let app = App::default().set_scheme(AppScheme::Gtk);
    let mut wind = Window::default()
    .with_size(800, 600)
    .center_screen()
    .with_label("MemLeakTest");
    let mut grp = Group::new(10,30,600,500,"Grp");
    let mut obj = DropObj(0); // memory leak
    let mut btn = Button::new(10,40,80,25,"btn");
    grp.end();
    wind.end();
    wind.show();
    btn.set_callback(Box::new(move || {
        obj.0 += 1;
        println!("obj cnt = {}",obj.0);
        grp.clear();
        wind.redraw();
    }));
    app.run().unwrap();
}

To avoid this issue, the widget should have a method to drop these callbacks.

Threads example does not use app::lock() and app::unlock()

Is your feature request related to a problem? Please describe.

The threads example should use app::lock() in the main thread, and app::lock() an app::unlock() in the other thread that updates a widget (this is documented in FLTK).

Although it seems to work without in Windows, the GUI hangs solid after a couple of widget updates in Linux.
I did not test the example, but experienced it in a real app (https://github.com/dheijl/swyh-rs).

Describe the solution you'd like

Mentioning this somewhere and/or changing the threads example would be nice.

But thanks for your excellent work on this, I really like it!

Unable to use set_icon with newer versions

In older versions, like 0.6, it was possible to set the window icon with:

wnd.set_icon(&PngImage::from_data(&icon).unwrap());

But now I get the error message:

expected enum std::option::Option, found &fltk::image::PngImage
help: try using a variant of the expected enum: Some(&PngImage::from_data(&icon).unwrap())

When I try to set the icon with:

wnd.set_icon(Some(&PngImage::from_data(&icon).unwrap()));

I get the error message:

the trait fltk::ImageExt is not implemented for &fltk::image::PngImage

Is there any way to call drop on the boxed closures passed to handle, draw_cell, etc?

Nice binding, fltk is refreshingly simple! I've got a very dynamic and potentially long lived application, lots of widgets changing, and lots of state needing to be wrapped by the Box<Fn ...> closures and passed to handle, draw_cell, etc. When a window is closed it would be really nice to be able to get these closures back so they can be dropped properly, the current work around is to capture only weak references, but that's really not ideal.

How can I update the interface periodically?

Say if I'd like to update the main window and all widgets in it every 2 seconds, how can I do that?
I tried to use "while app.wait().unwrap { ... }", but it seems that "app.wait()" blocks until there are events(mouse moving, clicking and etc.), so it doesn't meet my requirement...

Missing Methods in Fl_browser

I find the fltk wrapper very interesting.
When reproducing the C ++ example for fltk from "Erco's FLTK Cheat Page" "Using FL_Browser with columns" I have the problem that the methods "column_widths", "column_char" are not implemented.
Can these methods be implemented in fltk-rs with little effort?
Thank you

[Doubt] Is there a channel to ask questions about the crate ?

I'm here asking because I did not notice any places where I could ask questions about how to do certain things since reading the documentation and finding the right wording can be a pain. Is there a Discord or any other group chat where people can ask trivial questions?

[BUG] Repeated calls to set_image increases memory

Describe the bug
I'm testing animation by repeatedly setting an SVG image in a frame. I noticed that when I do this, the amount of memory the program consumes goes up every time set_image is called.

To Reproduce

use fltk::{
    app::*,
    frame::*,
    window::*,
    image::*
};

macro_rules! clock {() => ("<?xml version=\"1.0\" encoding=\"utf-8\"?>
<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">
<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"
	 width=\"640px\" height=\"480px\" viewBox=\"0 0 640 480\" enable-background=\"new 0 0 640 480\" xml:space=\"preserve\">
<path transform=\"rotate(-45 320 240)\" d=\"M282.658,250.271c0,5.31-1.031,10.156-3.087,14.543c-2.059,4.387-4.984,8.152-8.774,11.293
	c-3.793,3.144-8.477,5.58-14.055,7.312c-5.581,1.731-11.836,2.601-18.767,2.601c-9.968,0-18.605-1.572-25.917-4.713
	s-13.299-6.986-17.955-11.536l13.812-15.111c4.116,3.684,8.584,6.499,13.405,8.449c4.819,1.95,9.993,2.925,15.518,2.925
	c5.525,0,9.856-1.219,12.999-3.656c3.141-2.438,4.712-5.769,4.712-9.993c0-2.056-0.3-3.844-0.894-5.361
	c-0.596-1.517-1.653-2.925-3.168-4.226c-1.518-1.3-3.549-2.519-6.093-3.655c-2.546-1.138-5.768-2.301-9.668-3.494
	c-6.5-2.056-11.943-4.25-16.33-6.58c-4.387-2.328-7.937-4.9-10.643-7.719c-2.709-2.815-4.659-5.931-5.849-9.343
	c-1.193-3.412-1.788-7.23-1.788-11.455c0-5.2,1.082-9.831,3.25-13.893c2.166-4.062,5.144-7.5,8.937-10.318
	c3.791-2.815,8.178-4.956,13.162-6.418c4.981-1.462,10.343-2.193,16.086-2.193c8.449,0,15.842,1.247,22.179,3.737
	c6.337,2.493,11.997,6.121,16.98,10.887l-12.674,14.624c-7.583-6.281-15.655-9.424-24.21-9.424c-4.875,0-8.721,0.95-11.537,2.844
	c-2.818,1.896-4.225,4.578-4.225,8.043c0,1.843,0.297,3.412,0.894,4.712c0.594,1.3,1.65,2.519,3.168,3.656
	c1.516,1.137,3.656,2.249,6.418,3.331c2.763,1.084,6.309,2.33,10.643,3.736c5.306,1.734,10.046,3.631,14.218,5.688
	c4.169,2.06,7.662,4.524,10.48,7.394c2.815,2.871,4.981,6.174,6.5,9.911C281.898,240.603,282.658,245.071,282.658,250.271z
	 M335.953,260.833l20.637-90.181h27.46l-32.011,112.604h-33.634l-32.173-112.604h28.598l20.311,90.181H335.953z M437.832,286.019
	c-16.357,0-28.896-5.01-37.615-15.03c-8.722-10.019-13.081-24.779-13.081-44.278c0-9.531,1.407-17.98,4.225-25.348
	c2.815-7.366,6.688-13.54,11.618-18.524c4.928-4.981,10.668-8.747,17.223-11.293c6.555-2.544,13.568-3.818,21.043-3.818
	c8.23,0,15.436,1.3,21.611,3.899c6.174,2.6,11.537,5.959,16.086,10.075l-14.137,14.624c-3.467-3.032-6.906-5.281-10.318-6.744
	s-7.393-2.193-11.941-2.193c-4.01,0-7.693,0.731-11.051,2.193s-6.256,3.793-8.691,6.987c-2.438,3.196-4.334,7.287-5.688,12.268
	c-1.355,4.984-2.031,10.996-2.031,18.037c0,7.367,0.486,13.567,1.463,18.604c0.975,5.037,2.408,9.1,4.305,12.187
	c1.895,3.087,4.307,5.309,7.23,6.662c2.926,1.355,6.338,2.031,10.238,2.031c5.631,0,10.613-1.244,14.947-3.737v-25.186h-14.785
	l-2.6-18.849h43.547v55.57c-5.85,3.793-12.297,6.718-19.336,8.774C453.051,284.987,445.631,286.019,437.832,286.019z M523.5,151.5
	c0-6.627-5.373-12-12-12h-343c-6.627,0-12,5.373-12,12v150c0,6.627,5.373,12,12,12h343c6.627,0,12-5.373,12-12V151.5z\"/>
</svg>")}


static mut FRAME:Option<Frame> = None;

fn tick() {
    let svg = SvgImage::from_data(&clock!()).unwrap();
    unsafe {
        match &FRAME {
            Some(frame) => {frame.to_owned().set_image(&svg)},
            None => (),
        }
    }
    repeat_timeout(1.0, Box::new(tick));
}

fn main() {
    let app = App::default().set_scheme(AppScheme::Gleam);
    let mut wind = Window::default()
        .with_label("svg test")
        .with_size(720, 486)
        .center_screen();
    let mut frame = Frame::new(10, 10, 720 - 20, 486 - 20, "");
    let svg = SvgImage::from_data(&clock!()).unwrap();
    frame.set_image(&svg);
    unsafe {
        FRAME = Some(frame);
    }
    wind.end();
    wind.show();
    add_timeout(1.0, Box::new(tick));
    app.run().unwrap();
}

Expected behavior
Since the old image is being replaced I expected the memory usage to stay constant

Desktop (please complete the following information):

  • OS: Windows 10 x64
  • Version 0.6.2

Additional context
My apologies if this is a user error, I'm new to rust and fltk. This is the simplest code I could come up with that demonstrated the problem

Add release tags

Please add tags for releases to be able to select specific versions with git tools.

[BUG] frame set_type and frame set_label_type not working as expected

Describe the bug
I'm learning fltk and recreated the simple introduction Hello World app described here. The app should create a Hello World Box with a shadow on the text and a Frame around the label. I don't seem to get either.

To Reproduce
Here's the rust I was using.

use fltk::{
    app::*,
    dialog::*,
    frame::*,
    enums::Font::*,
    enums::LabelType::*,
    enums::FrameType::*,
    window::Window,
};

fn main() {
    let app = App::default();
    let  mut window:Window = Window::new(0,0,340,180,"Problem");
    let mut frame:Frame = Frame::new(20,40,300,100, "Hello, World!");
    frame.set_type(UpBox);
    frame.set_label_font(HelveticaBoldItalic);
    frame.set_label_size(36);
    frame.set_label_type(ShadowLabel);
    window.end();
    window.show();
    app.run().unwrap();
}

Expected behavior
I was expecting this
image

and I get
image

Desktop (please complete the following information):

  • OS: Windows 10 x64
  • Version ^0.5

Any assistance would be appreciated.

Example paint flickering while drawing

I've tried the example 'paint' on Windows 10.
While drawing the view flickers a lot, although offscreen drawing is used.
I'm not sure if it is an issue with FLTK on Windows or not.

fltk-sys build fails on Windows with GNU Rust toolchain.

Build fails on fltk-sys:

failed to run custom build command for `fltk-sys v0.2.16`
...
no valid generator found for GNU toolchain; MSYS or MinGW must be installed

Tried with different environments: Cygwin, MSYS2, mingw-w64 (which doesn't have cmake at all).

[BUG]

Describe the bug
compile failed when i execute cargo run --color=always --package fltk --example animations

To Reproduce

Expected behavior
--- stderr
之前的 HEAD 位置是 d20c68a49 More Doxygen information for enum Fl_Paged_Device::Page_Format.
切换到分支 'master'
error: 打补丁失败:CMake/export.cmake:33
error: CMake/export.cmake:补丁未应用
error: 打补丁失败:CMake/options.cmake:115
error: CMake/options.cmake:补丁未应用
error: 打补丁失败:src/drivers/Android/Fl_Android_System_Driver.H:25
error: src/drivers/Android/Fl_Android_System_Driver.H:补丁未应用
/Users/wangyanqing16/cargo_work/fltk-rs/fltk-sys/cfltk/src/cfl_text.cpp:354:18: error: no member named 'style_buffer' in 'Fl_Text_Display'
return self->style_buffer();
~~~~ ^
/Users/wangyanqing16/cargo_work/fltk-rs/fltk-sys/cfltk/src/cfl_text.cpp:375:18: error: no member named 'style_buffer' in 'Fl_Text_Editor'
return self->style_buffer();
~~~~ ^
/Users/wangyanqing16/cargo_work/fltk-rs/fltk-sys/cfltk/src/cfl_text.cpp:564:18: error: no member named 'style_buffer' in 'Fl_Simple_Terminal'
return self->style_buffer();
~~~~ ^
3 errors generated.
make[2]: *** [CMakeFiles/cfltk.dir/src/cfl_text.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/cfltk.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: /Users/wangyanqing16/cargo_work/fltk-rs/target/debug/build/fltk-sys-cb38f46d453e5239/out/lib/libfltk.a(Fl_Help_Dialog_Dox.cxx.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: /Users/wangyanqing16/cargo_work/fltk-rs/target/debug/build/fltk-sys-cb38f46d453e5239/out/lib/libfltk.a(fl_overlay_visual.cxx.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: /Users/wangyanqing16/cargo_work/fltk-rs/target/debug/build/fltk-sys-cb38f46d453e5239/out/lib/libfltk.a(Fl_Help_Dialog_Dox.cxx.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: /Users/wangyanqing16/cargo_work/fltk-rs/target/debug/build/fltk-sys-cb38f46d453e5239/out/lib/libfltk.a(fl_overlay_visual.cxx.o) has no symbols
make: *** [all] Error 2
thread 'main' panicked at '
command did not execute successfully, got: exit code: 2

build script failed, must exit now', /Users/wangyanqing16/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.44/src/lib.rs:885:5
stack backtrace:
0: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
1: core::fmt::write
2: std::io::Write::write_fmt
3: std::panicking::default_hook::{{closure}}
4: std::panicking::default_hook
5: std::panicking::rust_panic_with_hook
6: rust_begin_unwind
7: std::panicking::begin_panic_fmt
8: cmake::fail
9: cmake::run
10: cmake::Config::build
11: build_script_build::main
12: std::rt::lang_start::{{closure}}
13: std::rt::lang_start_internal
14: std::rt::lang_start
15: main
note: Some details are omitted, run with RUST_BACKTRACE=full for a verbose backtrace.

Screenshots
图片

Desktop (please complete the following information):

  • OS: macOS 10.14.6

FileDialog's bad usage of strings

Hello! I just wanted to thank you for working on these bindings! I've been looking around for a simple GUI library for prototyping and this hit the spot!

There are a few issues I noticed when using the FileDialog:

let mut image_dialog = FileDialog::new(FileDialogType::BrowseFile);
image_dialog.set_filter("*.png");
image_dialog.show();

This example adds a filter, but instead of adding *.png, it contains a bunch of garbage after it. For me, it displayed an error message from a different crate (which you can imagine was difficult to debug). Changing the filter to *.png\x00 works and shows that the set_filter method should append a null byte before passing it to FLTK.

Another issue I'm seeing is that there's no way to tell if a FileDialog succeeded or failed. If I close the file dialog without choosing a file, the program will segfault because FileDialog::filename() is trying to convert the empty string (or whatever FLTK is returning) to a UTF-8 String. Having these return Option<String> would be perfect.

I am using fltk 0.1.13 on Fedora

[BUG] Does not build on macOS 10.14

Everything is built for 10.15 which upsets everything and causes catastrophic build failure.

image

error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-m64" "-L" "/Users/LoganDark/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/Users/LoganDark/rust-fltk-test/target/debug/deps/rust_roblox_fflags.2696as94kt0h1qbk.rcgu.o" "/Users/LoganDark/rust-fltk-test/target/debug/deps/rust_roblox_fflags.2wakrprul8t07rf7.rcgu.o" "/Users/LoganDark/rust-fltk-test/target/debug/deps/rust_roblox_fflags.3673js91mtewuf5r.rcgu.o" "/Users/LoganDark/rust-fltk-test/target/debug/deps/rust_roblox_fflags.44leuty1gli8xmve.rcgu.o" "/Users/LoganDark/rust-fltk-test/target/debug/deps/rust_roblox_fflags.4ikwnllv6xelct57.rcgu.o" "/Users/LoganDark/rust-fltk-test/target/debug/deps/rust_roblox_fflags.twaxmm3al3diu82.rcgu.o" "-o" "/Users/LoganDark/rust-fltk-test/target/debug/deps/rust_roblox_fflags" "/Users/LoganDark/rust-fltk-test/target/debug/deps/rust_roblox_fflags.2h04uquq3bqty7wk.rcgu.o" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/LoganDark/rust-fltk-test/target/debug/deps" "-L" "/Users/LoganDark/rust-fltk-test/target/debug/build/fltk-sys-8fa181856eb6bbd9/out/build" "-L" "/Users/LoganDark/rust-fltk-test/target/debug/build/fltk-sys-8fa181856eb6bbd9/out/lib" "-L" "/Users/LoganDark/rust-fltk-test/target/debug/build/fltk-sys-8fa181856eb6bbd9/out/lib/Release" "-L" "/Users/LoganDark/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk-dc1cda862d91312b.rlib" "/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib" "/Users/LoganDark/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libstd-16788ade64e57bde.rlib" "/Users/LoganDark/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-9a8cd3f9e5f3d70b.rlib" "/Users/LoganDark/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-93e6ab273db3373f.rlib" "/Users/LoganDark/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-8e4140dd8e9c5c52.rlib" "/Users/LoganDark/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libbacktrace-acdb60af30603380.rlib" "/Users/LoganDark/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libbacktrace_sys-e69cb554c5473e43.rlib" "/Users/LoganDark/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-0e6e71d015f0d832.rlib" "/Users/LoganDark/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libunwind-148cae18a66ff11e.rlib" "/Users/LoganDark/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-c1c8042a25d04cae.rlib" "/Users/LoganDark/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/liblibc-0a0bcb94df31e54d.rlib" "/Users/LoganDark/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/liballoc-51b0291ce3aee382.rlib" "/Users/LoganDark/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-37e506490f0b8800.rlib" "/Users/LoganDark/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcore-caa802c98f89c09c.rlib" "/Users/LoganDark/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7cb9c01c7b80892c.rlib" "-lc++" "-framework" "Carbon" "-framework" "Cocoa" "-framework" "ApplicationServices" "-framework" "OpenGL" "-lSystem" "-lresolv" "-lc" "-lm"
  = note: ld: warning: directory not found for option '-L/Users/LoganDark/rust-fltk-test/target/debug/build/fltk-sys-8fa181856eb6bbd9/out/build'
          ld: warning: directory not found for option '-L/Users/LoganDark/rust-fltk-test/target/debug/build/fltk-sys-8fa181856eb6bbd9/out/lib/Release'
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(cfl_window.cpp.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(cfl_dialog.cpp.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(cfl_tree.cpp.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(cfl.cpp.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(cfl_widget.cpp.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(cfl_image.cpp.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(cfl_valuator.cpp.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(cfl_box.cpp.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(cfl_browser.cpp.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(cfl_button.cpp.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(cfl_misc.cpp.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(cfl_menu.cpp.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(cfl_group.cpp.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(cfl_input.cpp.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(cfl_output.cpp.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(cfl_text.cpp.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(cfl_table.cpp.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(cfl_draw.cpp.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_ask.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_images_core.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_oval_box.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_rounded_box.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_gtk.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_File_Icon.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_shadow_box.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_diamond_box.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Image.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Multi_Label.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_gleam.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_round_box.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_engraved_label.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_plastic.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_BMP_Image.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_GIF_Image.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Gl_Window.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Gl_Overlay.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_PNG_Image.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_SVG_Image.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Tree_Item.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_JPEG_Image.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Help_Dialog.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Menu_Window.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Shared_Image.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Double_Window.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Tree_Item_Array.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Native_File_Chooser.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Native_File_Chooser_MAC.mm.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_own_colormap.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_lock.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(screen_xywh.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_get_system_colors.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_visual.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_set_font.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Tree.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Group.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Widget.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Tooltip.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Window.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Window_fullscreen.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_cursor.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_draw.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_color.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_boxtype.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_font.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_read_image.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_cocoa.mm.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_draw_pixmap.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_shortcut.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_overlay.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Image_Surface.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_show_colormap.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(filename_match.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_encoding_latin1.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_encoding_mac_roman.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Quartz_Graphics_Driver_image.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Browser.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Browser_load.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Counter.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Spinner.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Adjuster.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Browser_.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Menu_Bar.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Progress.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Valuator.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Dial.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Help_View.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Input.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_PNM_Image.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Scrollbar.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Table_Row.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_XBM_Image.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_XPM_Image.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_File_Input.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Slider.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Tree_Prefs.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Menu_Button.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Preferences.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Text_Buffer.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Text_Editor.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Tiled_Image.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Value_Input.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Check_Button.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Clock.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_File_Browser.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_File_Chooser2.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Image_Reader.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Light_Button.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Button.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Round_Button.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Text_Display.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Value_Output.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Value_Slider.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Color_Chooser.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Repeat_Button.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Return_Button.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Screen_Driver.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Cocoa_Screen_Driver.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Single_Window.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Darwin_System_Driver.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Window_Driver.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Cocoa_Window_Driver.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Device.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Graphics_Driver.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Simple_Terminal.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(gl_draw.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(gl_start.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_OpenGL_Display_Device.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Gl_Choice.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_compose.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_labeltype.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_grab.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_abort.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Box.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Pack.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Tabs.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Tile.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Chart.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Menu_.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Menu_add.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Table.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Choice.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Input_.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Pixmap.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Roller.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Scroll.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_arg.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Window_hotspot.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Wizard.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Menu.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(flstring.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Quartz_Graphics_Driver_font.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_utf8.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Gl_Device_Plugin.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(numericsort.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(gzclose.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(gzlib.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(gzread.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jcapimin.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jdapimin.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jdmaster.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jdapistd.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jdmarker.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jcparam.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jcapistd.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jerror.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jdatadst.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jdatasrc.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(png.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(pngread.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(pngwrite.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(pngerror.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(pngget.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(pngset.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(pngrtran.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(pngtrans.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(pngrio.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(is_spacing.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(case.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_open_uri.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_symbols.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(filename_list.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(glut_font.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Bitmap.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(filename_isdir.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(filename_expand.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(filename_absolute.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_scroll_area.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Printer.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_File_Chooser.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_MacOS_Sys_Menu_Bar.mm.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Sys_Menu_Bar.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_System_Driver.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(filename_ext.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Widget_Surface.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_vertex.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_rect.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Quartz_Graphics_Driver.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_arc.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(fl_curve.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Copy_Surface.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Posix_System_Driver.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_get_key_mac.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Quartz_Image_Surface_Driver.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Quartz_Copy_Surface_Driver.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_OpenGL_Graphics_Driver_rect.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(adler32.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(crc32.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(deflate.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(freeglut_stroke_roman.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(gzwrite.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(inflate.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jutils.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jquant1.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jquant2.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jdarith.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jdcolor.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jcinit.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jdcoefct.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jdmainct.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jdpostct.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jdhuff.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jdinput.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jddctmgr.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jcmarker.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jmemmgr.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jdmerge.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jdsample.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jcomapi.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(pngmem.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(pngrutil.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(pngwutil.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(pngwtran.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(pngwio.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Cocoa_Printer_Driver.mm.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_OpenGL_Graphics_Driver_vertex.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_OpenGL_Graphics_Driver_line_style.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_OpenGL_Graphics_Driver_font.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_OpenGL_Graphics_Driver_arci.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_OpenGL_Graphics_Driver_color.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Quartz_Graphics_Driver_vertex.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Quartz_Graphics_Driver_line_style.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Quartz_Graphics_Driver_rect.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Quartz_Graphics_Driver_arci.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Quartz_Graphics_Driver_color.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(Fl_Paged_Device.cxx.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(trees.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(inffast.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(inftrees.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jcarith.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jccoefct.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jcmainct.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jcmaster.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jcprepct.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jccolor.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jcsample.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jcdctmgr.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jchuff.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jaricom.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jmemnobs.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jidctint.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jidctflt.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jidctfst.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(zutil.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jfdctint.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jfdctflt.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          ld: warning: object file (/Users/LoganDark/rust-fltk-test/target/debug/deps/libfltk_sys-36a0c9922ed0e152.rlib(jfdctfst.c.o)) was built for newer OSX version (10.15) than being linked (10.14)
          Undefined symbols for architecture x86_64:
            "_objc_opt_self", referenced from:
                +[FLWindowDelegate initialize] in libfltk_sys-36a0c9922ed0e152.rlib(Fl_cocoa.mm.o)
            "_objc_opt_class", referenced from:
                -[FLWindow recursivelySendToSubwindows:applyToSelf:] in libfltk_sys-36a0c9922ed0e152.rlib(Fl_cocoa.mm.o)
                -[FLWindowDelegate view_did_resize:] in libfltk_sys-36a0c9922ed0e152.rlib(Fl_cocoa.mm.o)
                rect_to_NSBitmapImageRep_subwins(Fl_Window*, int, int, int, int, bool) in libfltk_sys-36a0c9922ed0e152.rlib(Fl_cocoa.mm.o)
                +[FLApplication sendEvent:] in libfltk_sys-36a0c9922ed0e152.rlib(Fl_cocoa.mm.o)
                -[FLView insertText:replacementRange:] in libfltk_sys-36a0c9922ed0e152.rlib(Fl_cocoa.mm.o)
                -[FLView setMarkedText:selectedRange:replacementRange:] in libfltk_sys-36a0c9922ed0e152.rlib(Fl_cocoa.mm.o)
                -[FLaboutItemTarget validateMenuItem:] in libfltk_sys-36a0c9922ed0e152.rlib(Fl_cocoa.mm.o)
                ...
            "_objc_opt_isKindOfClass", referenced from:
                -[FLWindow recursivelySendToSubwindows:applyToSelf:] in libfltk_sys-36a0c9922ed0e152.rlib(Fl_cocoa.mm.o)
                -[FLWindowDelegate view_did_resize:] in libfltk_sys-36a0c9922ed0e152.rlib(Fl_cocoa.mm.o)
                rect_to_NSBitmapImageRep_subwins(Fl_Window*, int, int, int, int, bool) in libfltk_sys-36a0c9922ed0e152.rlib(Fl_cocoa.mm.o)
                +[FLApplication sendEvent:] in libfltk_sys-36a0c9922ed0e152.rlib(Fl_cocoa.mm.o)
                -[FLView insertText:replacementRange:] in libfltk_sys-36a0c9922ed0e152.rlib(Fl_cocoa.mm.o)
                -[FLView setMarkedText:selectedRange:replacementRange:] in libfltk_sys-36a0c9922ed0e152.rlib(Fl_cocoa.mm.o)
                -[FLaboutItemTarget validateMenuItem:] in libfltk_sys-36a0c9922ed0e152.rlib(Fl_cocoa.mm.o)
                ...
          ld: symbol(s) not found for architecture x86_64
          clang: error: linker command failed with exit code 1 (use -v to see invocation)
          

error: aborting due to previous error; 2 warnings emitted

error: could not compile `rust-fltk-test`.

To learn more, run the command again with --verbose.

Process finished with exit code 101

Unable to compile FLTK project

I created a new project (cargo new --vcs none fltk_app) with fltk = "0.2.12" as a dependency but when I try to compile the project I get the following error message:

cargo run
    Updating crates.io index
  Downloaded fltk v0.2.12
  Downloaded fltk-derive v0.2.12
  Downloaded fltk-sys v0.2.12
   Compiling proc-macro2 v1.0.10
   Compiling unicode-xid v0.2.0
   Compiling cc v1.0.50
   Compiling syn v1.0.17
   Compiling cmake v0.1.42
   Compiling quote v1.0.3
   Compiling fltk-sys v0.2.12
error: failed to run custom build command for `fltk-sys v0.2.12`

Caused by:
  process didn't exit successfully: `C:\mike\rust\fltk_app\target\debug\build\fltk-sys-2b1c997f00afbb34\build-script-build` (exit code: 101)
--- stdout
cargo:rerun-if-changed=build.rs
cargo:rerun-if-changed=cfltk/cfl.h
cargo:rerun-if-changed=cfltk/cfl_widget.h
cargo:rerun-if-changed=cfltk/cfl_group.h
cargo:rerun-if-changed=cfltk/cfl_window.h
cargo:rerun-if-changed=cfltk/cfl_button.h
cargo:rerun-if-changed=cfltk/cfl_box.h
cargo:rerun-if-changed=cfltk/cfl_menu.h
cargo:rerun-if-changed=cfltk/cfl_dialog.h
cargo:rerun-if-changed=cfltk/cfl_valuator.h
cargo:rerun-if-changed=cfltk/cfl_browser.h
cargo:rerun-if-changed=cfltk/cfl_misc.h
cargo:rerun-if-changed=cfltk/cfl_text.h
cargo:rerun-if-changed=cfltk/cfl_image.h
cargo:rerun-if-changed=cfltk/cfl_draw.h
cargo:rerun-if-changed=cfltk/global.h
cargo:rerun-if-changed=cfltk/cfl.cpp
cargo:rerun-if-changed=cfltk/cfl_widget.cpp
cargo:rerun-if-changed=cfltk/cfl_group.cpp
cargo:rerun-if-changed=cfltk/cfl_window.cpp
cargo:rerun-if-changed=cfltk/cfl_button.cpp
cargo:rerun-if-changed=cfltk/cfl_box.cpp
cargo:rerun-if-changed=cfltk/cfl_menu.cpp
cargo:rerun-if-changed=cfltk/cfl_dialog.cpp
cargo:rerun-if-changed=cfltk/cfl_valuator.cpp
cargo:rerun-if-changed=cfltk/cfl_browser.cpp
cargo:rerun-if-changed=cfltk/cfl_misc.cpp
cargo:rerun-if-changed=cfltk/cfl_text.cpp
cargo:rerun-if-changed=cfltk/cfl_image.cpp
cargo:rerun-if-changed=cfltk/cfl_draw.cpp
cargo:rerun-if-changed=cfltk/CMakeLists.txt
running: "cmake" "C:\\Users\\username\\.cargo\\registry\\src\\github.com-1ecc6299db9ec823\\fltk-sys-0.2.12\\cfltk" "-G" "Visual Studio 16 2019" "-Thost=x64" "-Ax64" "-DOPTION_ABI_VERSION:STRING=10401" "-DOpenGL_GL_PREFERENCE=GLVND" "-DOPTION_BUILD_EXAMPLES=OFF" "-DOPTION_USE_THREADS=ON" "-DOPTION_LARGE_FILE=ON" "-DOPTION_USE_SYSTEM_ZLIB=OFF" "-DOPTION_USE_SYSTEM_LIBPNG=OFF" "-DOPTION_USE_SYSTEM_LIBJPEG=OFF" "-DOPTION_BUILD_HTML_DOCUMENTATION=OFF" "-DOPTION_BUILD_PDF_DOCUMENTATION=OFF" "-DCMAKE_INSTALL_PREFIX=C:\\mike\\rust\\fltk_app\\target\\debug\\build\\fltk-sys-3f72634ccbb802bf\\out" "-DCMAKE_C_FLAGS= -nologo -MD -Brepro" "-DCMAKE_C_FLAGS_RELEASE= -nologo -MD -Brepro" "-DCMAKE_CXX_FLAGS= -nologo -MD -Brepro" "-DCMAKE_CXX_FLAGS_RELEASE= -nologo -MD -Brepro" "-DCMAKE_BUILD_TYPE=RELEASE"
-- Configuring incomplete, errors occurred!
See also "C:/mike/rust/fltk_app/target/debug/build/fltk-sys-3f72634ccbb802bf/out/build/CMakeFiles/CMakeOutput.log".

--- stderr
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
CMake Error at CMakeLists.txt:2 (project):
  Generator

    Visual Studio 16 2019

  could not find any instance of Visual Studio.



thread 'main' panicked at '
command did not execute successfully, got: exit code: 1

build script failed, must exit now', C:\Users\username\.cargo\registry\src\github.com-1ecc6299db9ec823\cmake-0.1.42\src\lib.rs:861:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

warning: build failed, waiting for other jobs to finish...
error: build failed

(I replaced my username with username)

Crash when setting callback for button

With the latest version 0.3.12 when I try to set a callback for the button:

    let mut ok = Button::default()
        .with_size(400, 40)
        .below_of(&frame, 0)
        .with_label("Ok");
    ok.set_callback(Box::new(move || std::process::exit(0)));

The program crashes with the following traceback:
10: std::panicking::begin_panic<str*>
at C:\Users\user.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libstd\panicking.rs:404
11: fltk::button::{{impl}}::set_callback
at C:\Users\user.cargo\registry\src\github.com-1ecc6299db9ec823\fltk-0.3.12\src\button.rs:11
12: fastcopy::MainWindow::run
at .\src\main.rs:193

Won't build on Win7-64

I copied the hello.rs example from the main web page. On Linux it builds and runs correctly. On Win7-64 with Rust 1.44.1 it fails as follows:

error: failed to run custom build command for `fltk-sys v0.7.12`

Caused by:
  process didn't exit successfully: `C:\tmp\targets\comparepdfcmd\release\build\fltk-sys-fbe273d853ade65c\build-script-build` (exit code: 101)
--- stdout
cargo:rerun-if-changed=build.rs

--- stderr
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "The system cannot find the file specified." }', C:\Users\mark\.cargo\registry\src\github.com-1ecc6299db9ec823\fltk-sys-0.7.12\build.rs:37:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

warning: build failed, waiting for other jobs to finish...
error: build failed

Here's the attempt with the backtrace:

error: failed to run custom build command for `fltk-sys v0.7.12`

Caused by:
  process didn't exit successfully: `C:\tmp\targets\hellofltk\release\build\fltk-sys-fbe273d853ade65c\build
-script-build` (exit code: 101)
--- stdout
cargo:rerun-if-changed=build.rs

--- stderr
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "The system cannot find the file specified." }', C:\Users\mark\.cargo\registry\src\github.com-1ecc6299db9ec823\fltk-sys-0.7.12\build.rs:37:9
stack backtrace:
   0: std::sys_common::backtrace::_print::{{impl}}::fmt
             at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libstd\sys_common\backtrace.rs:59
   1: core::fmt::write
             at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libcore\fmt\mod.rs:1069
   2: std::io::Write::write_fmt<std::sys::windows::stdio::Stderr>
             at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libstd\io\mod.rs:1505
   3: std::panicking::default_hook::{{closure}}
             at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libstd\panicking.rs:198
   4: std::panicking::default_hook
             at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libstd\panicking.rs:220
   5: std::panicking::rust_panic_with_hook
             at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libstd\panicking.rs:518
   6: std::panicking::begin_panic_handler
             at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libstd\panicking.rs:419
   7: core::panicking::panic_fmt
             at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libcore\panicking.rs:111
   8: core::option::expect_none_failed
             at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libcore\option.rs:1268
   9: __mb_cur_max
  10: __mb_cur_max
  11: std::rt::lang_start_internal
             at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libstd\rt.rs:51
  12: main
  13: __scrt_common_main_seh
             at f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253
  14: BaseThreadInitThunk
  15: RtlUserThreadStart
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

warning: build failed, waiting for other jobs to finish...
error: build failed

[BUG] Empty file/directory for FileDialog

Describe the bug
Using FileDialog always results in the empty string as file/directory on MacOS 10.15.5.

To Reproduce

Cargo.toml:

[package]
name = "my-project"
version = "0.1.0"
edition = "2018"

[dependencies]
fltk = "0.9.2"

main.rs:

use fltk::dialog::{FileDialog, FileDialogType};

fn main() {
    let mut dialog = FileDialog::new(FileDialogType::BrowseFile);
    dialog.show();
    println!("filename: {:?}", dialog.filename().as_path().to_str().unwrap());
    println!("directory: {:?}", dialog.directory().as_path().to_str().unwrap());
    for file in dialog.filenames() {
        println!("files: {:?}", file.as_path().to_str().unwrap());
    }
}

Results in:

filename: ""
directory: ""

Expected behavior
dialog.filename() / dialog.directory() should contain the selected path.

Desktop (please complete the following information):

  • OS: macOS 10.15

Is custom event supported?

I think custom event might be useful in a multi-thread environment. For example we have a few threads which do some heavy loading works and they'd like to inform the progress to the main thread. If fltk-rs supports custom events, that could be done by sending a custom event to main thread, then the main thread can update the widgets accordingly.

After some googling it seems that fltk has a function named "Fl::add_handler()" which can do that. Is this supported in fltk-rs?

Linking error when using the Progress widget

I'm trying to use a progress bar in my program like:
let mut progress = Progress::new(10, 170, 300, 20, "");
progress.set_minimum(0.0);
progress.set_maximum(100.0);

but the program failed to build due to a link error(below). Is this a bug?

error: linking with `link.exe` failed: exit code: 1120 
  |
  = note: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.25.28610\\bin\\HostX64\\x64\\link.exe" "/NOLOGO" "/NXCOMPAT" "/LIBPATH:C:\\Users\\ace11\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "D:\\Projects\\nas-backup\\target\\debug\\deps\\nas_backup.1p2kjxh28e2jzm24.rcgu.o" "D:\\Projects\\nas-backup\\target\\debug\\deps\\nas_backup.2wyq57zmk0ur9wqx.rcgu.o" "D:\\Projects\\nas-backup\\target\\debug\\deps\\nas_backup.508pwn4aj8dx1duu.rcgu.o" "D:\\Projects\\nas-backup\\target\\debug\\deps\\nas_backup.50b25njn5vbb4yna.rcgu.o" "D:\\Projects\\nas-backup\\target\\debug\\deps\\nas_backup.b8smr0b7e8bps9p.rcgu.o" "D:\\Projects\\nas-backup\\target\\debug\\deps\\nas_backup.hjo7daa4nasghe2.rcgu.o" "/OUT:D:\\Projects\\nas-backup\\target\\debug\\deps\\nas_backup.exe" "D:\\Projects\\nas-backup\\target\\debug\\deps\\nas_backup.12x0y3r9v7h0ybsi.rcgu.o" "/OPT:REF,NOICF" "/DEBUG" "/NATVIS:C:\\Users\\ace11\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:C:\\Users\\ace11\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\liballoc.natvis" "/NATVIS:C:\\Users\\ace11\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libcore.natvis" "/NATVIS:C:\\Users\\ace11\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libstd.natvis" "/LIBPATH:D:\\Projects\\nas-backup\\target\\debug\\deps" "/LIBPATH:D:\\Projects\\nas-backup\\target\\debug\\build\\fltk-sys-53e364f709758b26\\out\\build" "/LIBPATH:D:\\Projects\\nas-backup\\target\\debug\\build\\fltk-sys-53e364f709758b26\\out\\lib" "/LIBPATH:D:\\Projects\\nas-backup\\target\\debug\\build\\fltk-sys-53e364f709758b26\\out\\lib\\Release" "/LIBPATH:C:\\Users\\ace11\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "D:\\Projects\\nas-backup\\target\\debug\\deps\\libfltk-3dafa2b12f11ac98.rlib" "D:\\Projects\\nas-backup\\target\\debug\\deps\\libfltk_sys-23ee14dd77147e24.rlib" "C:\\Users\\ace11\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd-93a5cbf3214e1635.rlib" "C:\\Users\\ace11\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libpanic_unwind-bc497f38bc14ea36.rlib" "C:\\Users\\ace11\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libhashbrown-cff6a81a38e24acd.rlib" "C:\\Users\\ace11\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_alloc-2fcb3fe30807f5cb.rlib" "C:\\Users\\ace11\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libbacktrace-916d55fe59b6e45e.rlib" "C:\\Users\\ace11\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_demangle-7f1beeb3aa6031c7.rlib" "C:\\Users\\ace11\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind-0f8323184fc867ad.rlib" "C:\\Users\\ace11\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcfg_if-451043412713beed.rlib" "C:\\Users\\ace11\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liblibc-e9eb82ffd1eb284e.rlib" "C:\\Users\\ace11\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc-8a93a70731c0c815.rlib" "C:\\Users\\ace11\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_core-6fc8e09b7aa39aaf.rlib" "C:\\Users\\ace11\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-05a61bb76241250f.rlib" "C:\\Users\\ace11\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-9e67ceffec35e0af.rlib" "ws2_32.lib" "comctl32.lib" "gdi32.lib" "oleaut32.lib" "ole32.lib" "uuid.lib" "shell32.lib" "advapi32.lib" "comdlg32.lib" "winspool.lib" "user32.lib" "kernel32.lib" "odbc32.lib" "advapi32.lib" "ws2_32.lib" "userenv.lib" "msvcrt.lib"
  = note: libfltk-3dafa2b12f11ac98.rlib(fltk-3dafa2b12f11ac98.fltk.ednor6ld-cgu.11.rcgu.o) : error LNK2019: unresolved external symbol Fl_Spinner_set_maxsize referenced in function _ZN4fltk4misc7Spinner16set_maximum_size17he5989ec193d6999dE
          libfltk-3dafa2b12f11ac98.rlib(fltk-3dafa2b12f11ac98.fltk.ednor6ld-cgu.11.rcgu.o) : error LNK2019: unresolved external symbol Fl_Chart_set_maxsize referenced in function _ZN4fltk4misc5Chart16set_maximum_size17h83338f0120c511d7E
          D:\Projects\nas-backup\target\debug\deps\nas_backup.exe : fatal error LNK1120: 2 unresolved externals


error: aborting due to previous error

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.