ไลบรารี C ขนาดเล็กที่ประณีตซึ่งสามารถเรียกใช้การเปิดไฟล์เนทิฟ เลือกโฟลเดอร์ และบันทึกไดอะล็อกแบบพกพาได้ เขียนโค้ดโต้ตอบหนึ่งครั้งและให้ป๊อปอัปกล่องโต้ตอบดั้งเดิมบนแพลตฟอร์มที่รองรับทั้งหมด หลีกเลี่ยงการเชื่อมโยงการอ้างอิงจำนวนมาก เช่น wxWidgets และ qt
คุณสมบัติ:
Lean C API, ไลบรารีแบบคงที่ -- ไม่มี ObjC, ไม่มี C++, ไม่มี STL
Zlib ได้รับใบอนุญาต
รองรับ UTF-8 ที่สอดคล้องกันบนทุกแพลตฟอร์ม
ไวยากรณ์ตัวกรองไฟล์สากลอย่างง่าย
มีการสนับสนุนแบบชำระเงิน
รองรับการเลือกไฟล์หลายไฟล์
เป็นมิตรกับ 64 บิตและ 32 บิต
รองรับ GCC, Clang, Xcode, Mingw และ Visual Studio
ไม่มีการพึ่งพาบุคคลที่สามสำหรับการสร้างหรือการเชื่อมโยง
รองรับ IFileDialog
ที่ทันสมัยของ Vista บน Windows
รองรับ Cocoa API ที่ไม่เลิกใช้งานบน OS X
กล่องโต้ตอบ GTK3 บน Linux
การสนับสนุน Zenity เพิ่มเติมบน Linux เพื่อหลีกเลี่ยงการเชื่อมโยง GTK
ผ่านการทดสอบแล้ว ทำงานร่วมกับ http://www.libsdl.org บนทุกแพลตฟอร์ม สำหรับนักพัฒนาเกม
#include <nfd.h>#include <stdio.h>#include <stdlib.h>int main( เป็นโมฆะ) {nfdchar_t *outPath = NULL;ผลลัพธ์ nfdresult_t = NFD_OpenDialog( NULL, NULL, &outPath ); ถ้า ( ผลลัพธ์ == NFD_OKAY ) {puts("Success!");puts(outPath);free(outPath); }else if ( result == NFD_CANCEL ) {puts("ผู้ใช้กดยกเลิก"); }else {printf("ข้อผิดพลาด: %sn", NFD_GetError() ); } ส่งคืน 0; -
ดู API การจัดทำเอกสารด้วยตนเอง NFD.h สำหรับตัวเลือกเพิ่มเติม
การเพิ่มเวอร์ชัน หลัก แสดงถึงการจากไปของ API หรือ ABI
การเพิ่มเวอร์ชัน เล็กน้อย แสดงถึงการสร้างหรือการจากไปเล็กน้อย
การเพิ่มเวอร์ชัน ไมโคร เพียงแค่คอมไพล์ใหม่และดรอปอิน
ปล่อย | มีอะไรใหม่ | วันที่ |
---|---|---|
1.0.0 | อักษรย่อ | ต.ค. 2014 |
1.1.0 | พรีเมค5; สคอนเลิกใช้แล้ว | ส.ค. 2559 |
1.1.1 | การสนับสนุน mingw สร้างการแก้ไข | ส.ค. 2559 |
1.1.2 | เพิ่ม test_pickfolder() แล้ว | ส.ค. 2559 |
1.1.3 | เพิ่มแบ็กเอนด์ zenity linux แล้ว | พ.ย. 2017 |
แก้ไขประเภทถ่านใน decls | พ.ย. 2017 | |
1.1.4 | แก้ไข win32 memleeks | ธันวาคม 2018 |
ปรับปรุงการจัดการข้อผิดพลาด win32 | ธันวาคม 2018 | |
macOS แก้ไขข้อผิดพลาดโฟกัส | ธันวาคม 2018 | |
1.1.5 | win32 fix com เริ่มต้นใหม่ | ส.ค. 2019 |
1.1.6 | แก้ไขข้อผิดพลาดตัวกรอง osx | ส.ค. 2019 |
ลบสคอนที่เลิกใช้แล้ว | ส.ค. 2019 | |
แก้ไขการรวบรวม mingw | ส.ค. 2019 | |
- การล้างข้อมูลเตือน Wextra | ส.ค. 2019 |
NFD ใช้ไฟล์โครงการ Makefiles และ IDE ที่สร้างโดย Premake5 ไฟล์โปรเจ็กต์ที่สร้างขึ้นจะถูกเช็คอินภายใต้ build/
ดังนั้นคุณไม่จำเป็นต้องดาวน์โหลดและใช้ Premake ในกรณีส่วนใหญ่
หากคุณต้องการรัน Premake5 โดยตรง เอกสารประกอบการสร้างเพิ่มเติมจะพร้อมใช้งาน
ก่อนหน้านี้ NFD ใช้ SCons ในการสร้าง ในเวอร์ชัน 1.1.6 การสนับสนุน SCons ได้ถูกลบออกทั้งหมดแล้ว
nfd.a
จะถูกสร้างขึ้นสำหรับรุ่น release และ nfd_d.a
จะถูกสร้างขึ้นสำหรับรุ่นการแก้ไขข้อบกพร่อง
makefile เสนอตัวเลือกได้สูงสุดสี่ตัวเลือก โดยมี release_x64
เป็นค่าเริ่มต้น
make config=release_x86 make config=release_x64 make config=debug_x86 make config=debug_x64
เพิ่ม src/include
ให้กับเส้นทางการค้นหาของคุณ
เพิ่ม nfd.lib
หรือ nfd_d.lib
ลงในรายการไลบรารีแบบคงที่ที่จะเชื่อมโยง (สำหรับ release หรือ debug ตามลำดับ)
เพิ่ม build/<debug|release>/<arch>
ให้กับพาธการค้นหาไลบรารี
apt-get libgtk-3-dev
ติดตั้งการพึ่งพา gtk สำหรับการคอมไพล์ไลบรารี
บน Linux คุณมีตัวเลือกในการคอมไพล์และเชื่อมโยงกับ GTK หากคุณใช้ วิธีที่แนะนำในการคอมไพล์คือการรวมอาร์กิวเมนต์ของ pkg-config --cflags --libs gtk+-3.0
หรือคุณสามารถใช้แบ็กเอนด์ Zenity ได้โดยการเรียกใช้ Makefile ใน build/gmake_linux_zenity
Zenity รันกล่องโต้ตอบในพื้นที่ที่อยู่ของตัวเอง แต่ต้องการให้ผู้ใช้ติดตั้งและกำหนดค่า Zenity อย่างถูกต้องในระบบของตน
บน Mac OS ให้เพิ่ม AppKit
ในรายการเฟรมเวิร์ก
บน Windows ตรวจสอบให้แน่ใจว่าคุณเชื่อมโยงกับ comctl32.lib
ดู NFD.h
สำหรับการเรียก API ดู tests/*.c
สำหรับโค้ดตัวอย่าง
หลังจากการคอมไพล์ build/bin
จะมีโปรแกรมทดสอบที่คอมไพล์แล้ว ไดเร็กทอรีย่อยที่เหมาะสมภายใต้ build/lib
มีไลบรารีที่สร้างขึ้น
มีรูปแบบการกรองไฟล์ใน API โต้ตอบของไฟล์ทุกไฟล์ แต่ไม่มีวิธีการรองรับที่สอดคล้องกัน NFD ให้การสนับสนุนสำหรับการกรองไฟล์ตามกลุ่มส่วนขยาย โดยให้คำอธิบายของตัวเอง (ถ้ามี) สำหรับส่วนขยาย
ตัวกรองไวด์การ์ดจะถูกเพิ่มในทุกกล่องโต้ตอบเสมอ
;
เริ่มต้นตัวกรองใหม่
,
เพิ่มประเภทแยกต่างหากให้กับตัวกรอง
txt
ตัวกรองเริ่มต้นสำหรับไฟล์ข้อความ มีตัวเลือกไวด์การ์ดในเมนูแบบเลื่อนลง
png,jpg;psd
ตัวกรองเริ่มต้นสำหรับไฟล์ PNG และ JPG ตัวกรองที่สองพร้อมใช้งานสำหรับไฟล์ psd มีตัวเลือกไวด์การ์ดในเมนูแบบเลื่อนลง
NULL
ไวด์การ์ดเท่านั้น
ดู test_opendialogmultiple.c
ฉันยอมรับแพตช์โค้ดคุณภาพ หรือจะแก้ไขปัญหาเหล่านี้และเรื่องอื่นๆ ผ่านการสนับสนุน ดูการมีส่วนร่วมสำหรับรายละเอียด
ไม่รองรับกล่องโต้ตอบดั้งเดิมของ Windows XP เช่น GetOpenFileName
ไม่รองรับชื่อตัวกรองไฟล์ -- เช่น "ไฟล์รูปภาพ" (*.png, *.jpg) อย่างไรก็ตาม รองรับตัวกรองที่ไม่ระบุชื่อ
การจัดการข้อผิดพลาดของกระบวนการดำเนินการของ GTK Zenity ไม่สามารถจัดการกรณีข้อผิดพลาดจำนวนมากได้อย่างสวยงาม โดยเลือกที่จะยกเลิกแทนที่จะล้างข้อมูลและส่งคืน
GTK 3 สแปมหนึ่งคำเตือนต่อกล่องโต้ตอบที่สร้างขึ้น
ลิขสิทธิ์© 2014-2019 Frogtoss Games, Inc. สิทธิ์การใช้งานไฟล์ครอบคลุมไฟล์ทั้งหมดใน repo นี้
กล่องโต้ตอบไฟล์ดั้งเดิมโดย Michael Labbe [email protected]
Tomasz Konojacki สำหรับ microutf8
เดนิส โคโลดิน สำหรับการสนับสนุน mingw
Tom Mason สำหรับการสนับสนุน Zenity
การสนับสนุนโดยตรงสำหรับงานนี้สามารถดูได้จากผู้เขียนต้นฉบับภายใต้ข้อตกลงที่ต้องชำระเงิน
ติดต่อเกม Frogtoss