Pustaka C kecil dan rapi yang dengan mudah memanggil dialog buka file asli, pilih folder, dan simpan. Tulis kode dialog satu kali dan munculkan dialog asli di semua platform yang didukung. Hindari menghubungkan dependensi besar seperti wxWidgets dan qt.
Fitur:
Lean C API, perpustakaan statis -- tanpa ObjC, tanpa C++, tanpa STL.
berlisensi Zlib.
Dukungan UTF-8 yang konsisten di semua platform.
Sintaks filter file universal sederhana.
Dukungan berbayar tersedia.
Dukungan pemilihan beberapa file.
Ramah 64-bit dan 32-bit.
GCC, Dentang, Xcode, Mingw dan Visual Studio didukung.
Tidak ada ketergantungan pihak ketiga untuk membangun atau menghubungkan.
Dukungan untuk IFileDialog
modern Vista di Windows.
Dukungan untuk Cocoa API yang tidak digunakan lagi di OS X.
Dialog GTK3 di Linux.
Dukungan Zenity opsional di Linux untuk menghindari penautan GTK.
Diuji, bekerja bersama http://www.libsdl.org di semua platform, untuk pengembang game di luar sana.
#include <nfd.h>#include <stdio.h>#include <stdlib.h>int main( batal ) {nfdchar_t *outPath = NULL;nfdresult_t hasil = NFD_OpenDialog( NULL, NULL, &outPath ); if ( hasil == NFD_OKAY ) {puts("Sukses!");puts(outPath);free(outPath); }else if ( hasil == NFD_CANCEL ) {puts("Pengguna menekan batal."); }else {printf("Kesalahan: %sn", NFD_GetError() ); }mengembalikan 0; }
Lihat API NFD.h yang mendokumentasikan mandiri untuk opsi selengkapnya.
Peningkatan versi utama menunjukkan penghentian API atau ABI.
Peningkatan versi kecil menunjukkan build atau keberangkatan yang sepele.
Peningkatan versi mikro cukup kompilasi ulang dan drop-in.
melepaskan | apa yang baru | tanggal |
---|---|---|
1.0.0 | awal | Oktober 2014 |
1.1.0 | pembuatan awal5; scons tidak digunakan lagi | Agustus 2016 |
1.1.1 | dukungan mingw, perbaikan versi | Agustus 2016 |
1.1.2 | test_pickfolder() ditambahkan | Agustus 2016 |
1.1.3 | backend linux zenity ditambahkan | November 2017 |
perbaiki tipe char di decls | November 2017 | |
1.1.4 | memperbaiki memleaks win32 | Desember 2018 |
meningkatkan penanganan kesalahan win32 | Desember 2018 | |
macOS memperbaiki bug fokus | Desember 2018 | |
1.1.5 | win32 fix com inisialisasi ulang | Agustus 2019 |
1.1.6 | memperbaiki bug filter osx | Agustus 2019 |
hapus scon yang tidak digunakan lagi | Agustus 2019 | |
perbaiki kompilasi mingw | Agustus 2019 | |
-Pembersihan peringatan Wextra | Agustus 2019 |
NFD menggunakan Makefiles dan file proyek IDE yang dihasilkan Premake5. File proyek yang dihasilkan diperiksa di bawah build/
sehingga Anda tidak perlu mengunduh dan menggunakan Premake dalam banyak kasus.
Jika Anda perlu menjalankan Premake5 secara langsung, dokumentasi build lebih lanjut tersedia.
Sebelumnya, NFD menggunakan SCons untuk membangun. Pada 1.1.6, dukungan SCons telah dihapus seluruhnya.
nfd.a
akan dibuat untuk build rilis, dan nfd_d.a
akan dibuat untuk build debug.
Makefile menawarkan hingga empat opsi, dengan release_x64
sebagai default.
make config=release_x86 make config=release_x64 make config=debug_x86 make config=debug_x64
Tambahkan src/include
ke jalur pencarian penyertaan Anda.
Tambahkan nfd.lib
atau nfd_d.lib
ke daftar pustaka statis yang akan ditautkan (masing-masing untuk rilis atau debug).
Tambahkan build/<debug|release>/<arch>
ke jalur pencarian perpustakaan.
apt-get libgtk-3-dev
menginstal ketergantungan gtk untuk kompilasi perpustakaan.
Di Linux, Anda memiliki opsi untuk mengkompilasi dan menautkan ke GTK. Jika Anda menggunakannya, cara kompilasi yang disarankan adalah dengan menyertakan argumen pkg-config --cflags --libs gtk+-3.0
.
Alternatifnya, Anda dapat menggunakan backend Zenity dengan menjalankan Makefile di build/gmake_linux_zenity
. Zenity menjalankan dialog di ruang alamatnya sendiri, tetapi mengharuskan pengguna menginstal dan mengkonfigurasi Zenity dengan benar di sistem mereka.
Di Mac OS, tambahkan AppKit
ke daftar kerangka kerja.
Di Windows, pastikan Anda menautkan ke comctl32.lib
.
Lihat NFD.h
untuk panggilan API. Lihat tests/*.c
untuk contoh kode.
Setelah kompilasi, build/bin
berisi program pengujian yang dikompilasi. Subdirektori yang sesuai di bawah build/lib
berisi perpustakaan yang dibangun.
Ada bentuk pemfilteran file di setiap API dialog file, tetapi tidak ada cara yang konsisten untuk mendukungnya. NFD menyediakan dukungan untuk memfilter file berdasarkan kelompok ekstensi, memberikan deskripsinya sendiri (jika berlaku) untuk ekstensi tersebut.
Filter wildcard selalu ditambahkan ke setiap dialog.
;
Mulai filter baru.
,
Tambahkan tipe terpisah ke filter.
txt
Filter default adalah untuk file teks. Ada opsi wildcard di dropdown.
png,jpg;psd
Filter default adalah untuk file png dan jpg. Filter kedua tersedia untuk file psd. Ada opsi wildcard di dropdown.
Hanya karakter pengganti NULL
.
Lihat test_opendialogmultiple.c.
Saya menerima patch kode kualitas, atau akan menyelesaikan masalah ini dan masalah lainnya melalui dukungan. Lihat berkontribusi untuk detailnya.
Tidak ada dukungan untuk dialog lawas Windows XP seperti GetOpenFileName
.
Tidak ada dukungan untuk nama filter file -- misal: "File Gambar" (*.png, *.jpg). Namun, filter tanpa nama didukung.
Penanganan kesalahan exec proses implementasi GTK Zenity tidak menangani banyak kasus kesalahan dengan baik, memilih untuk membatalkan daripada membersihkan dan mengembalikan.
GTK 3 mengirim spam satu peringatan per dialog yang dibuat.
Hak Cipta © 2014-2019 Frogtoss Games, Inc. LISENSI File mencakup semua file dalam repo ini.
Dialog File Asli oleh Michael Labbe [email protected]
Tomasz Konojacki untuk mikroutf8
Denis Kolodin atas dukungannya.
Tom Mason atas dukungan Zenity.
Dukungan terarah untuk karya ini tersedia dari penulis asli berdasarkan perjanjian berbayar.
Hubungi Permainan Frogtoss.