All Projects → saurvs → Nfd Rs

saurvs / Nfd Rs

Licence: mit
OS-native file dialogs on Linux, OS X and Windows

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Nfd Rs

Spidereye
Cross platform .Net Core applications with a webview UI
Stars: ✭ 113 (-6.61%)
Mutual labels:  cross-platform
Instalooter
Another API-less Instagram pictures and videos downloader.
Stars: ✭ 1,639 (+1254.55%)
Mutual labels:  cross-platform
Hello imgui
Hello, Dear ImGui: cross-platform Gui apps for Windows / Mac / Linux / iOS / Android / Emscripten with the simplicity of a "Hello World" app
Stars: ✭ 120 (-0.83%)
Mutual labels:  cross-platform
Foco
Stay focused with Foco 🚀
Stars: ✭ 113 (-6.61%)
Mutual labels:  cross-platform
Clatexmath
A dynamic, cross-platform, and embeddable LaTeX rendering library
Stars: ✭ 113 (-6.61%)
Mutual labels:  cross-platform
Skiasharp.extended
SkiaSharp is a cross-platform, comprehensive 2D graphics API for all .NET platforms. And, here is where you will find all sorts of extras that you can use with it.
Stars: ✭ 118 (-2.48%)
Mutual labels:  cross-platform
Twain Sdk
A cross-platform protocol sdk based on TWAIN.Provide the implementation of both desktop development and dynamic web development.
Stars: ✭ 111 (-8.26%)
Mutual labels:  cross-platform
Flutter Products Tutorial
A Flutter e-commerce starter kit built using ScopedModel
Stars: ✭ 120 (-0.83%)
Mutual labels:  cross-platform
Shoes4
Shoes 4 : the next version of Shoes
Stars: ✭ 1,509 (+1147.11%)
Mutual labels:  cross-platform
Klayge
KlayGE is a cross-platform open source game engine with plugin-based architecture.
Stars: ✭ 1,646 (+1260.33%)
Mutual labels:  cross-platform
Expressive
Expressive is a cross-platform expression parsing and evaluation framework. The cross-platform nature is achieved through compiling for .NET Standard so it will run on practically any platform.
Stars: ✭ 113 (-6.61%)
Mutual labels:  cross-platform
Viro
ViroReact: AR and VR using React Native
Stars: ✭ 1,735 (+1333.88%)
Mutual labels:  cross-platform
Vifm
Vifm is a file manager with curses interface, which provides Vim-like environment for managing objects within file systems, extended with some useful ideas from mutt.
Stars: ✭ 1,822 (+1405.79%)
Mutual labels:  cross-platform
Slib
SLib - A universal, efficient, light-weight framework for building cross-platform applications on Android/iOS/macOS/Tizen/Win32/Linux platforms, developed by SLIBIO. Based on C++, provides desktop/mobile widgets, OpenGL rendering and networking solutions.
Stars: ✭ 113 (-6.61%)
Mutual labels:  cross-platform
Flutter app sample
flutter app sample
Stars: ✭ 120 (-0.83%)
Mutual labels:  cross-platform
Qhttpengine
HTTP server for Qt applications
Stars: ✭ 112 (-7.44%)
Mutual labels:  cross-platform
Keepassxc
KeePassXC is a cross-platform community-driven port of the Windows application “Keepass Password Safe”.
Stars: ✭ 11,623 (+9505.79%)
Mutual labels:  cross-platform
Dwsim5
DWSIM - Open Source Chemical Process Simulator (5.x series)
Stars: ✭ 120 (-0.83%)
Mutual labels:  cross-platform
Awesome flutter ui
This repository demonstrates use of various widgets in flutter and tricks to create beautiful UI elements in flutter for Android and IOS
Stars: ✭ 120 (-0.83%)
Mutual labels:  cross-platform
Easy.logger
A modern, high performance cross platform wrapper for Log4Net.
Stars: ✭ 118 (-2.48%)
Mutual labels:  cross-platform

nfd-rs

nfd-rs is a Rust binding to the library nativefiledialog, that provides a convenient cross-platform interface to opening file dialogs on Linux, OS X and Windows.

This crate has been tested on Mac, Window and Linux (Ubuntu 14.04) and supports single/mutliple and save dialogs, notice APIs may break with newer versions.

Usage

  • Add the dependency nfd in your Cargo.toml

    [dependencies]
    nfd = "0.0.4"
    
  • Open a single file dialog

    extern crate nfd;
    
    use nfd::Response;
    
    fn main() {
    
      let result = nfd::open_file_dialog(None, None).unwrap_or_else(|e| {
      	panic!(e);
      });
    
      match result {
          Response::Okay(file_path) => println!("File path = {:?}", file_path),
          Response::OkayMultiple(files) => println!("Files {:?}", files),
          Response::Cancel => println!("User canceled"),
      }
    }
    
  • Open a multi file dialog using builder with jpg files as filter

    extern crate nfd;
    
    use nfd::Response;
    
    fn main() {
    
      let result = nfd::dialog_multiple().filter("jpg").open().unwrap_or_else(|e| {
      	panic!(e);
      });
    
      match result {
          Response::Okay(file_path) => println!("File path = {:?}", file_path),
          Response::OkayMultiple(files) => println!("Files {:?}", files),
          Response::Cancel => println!("User canceled"),
      }
    }
    

Screenshot

Cocoa on El Capitan

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].