مكتبة C صغيرة وأنيقة تستدعي بشكل محمول ملفًا أصليًا لفتح مربعات الحوار وتحديد المجلد وحفظه. اكتب رمز الحوار مرة واحدة واجعله يظهر مربعات حوار أصلية على جميع الأنظمة الأساسية المدعومة. تجنب ربط التبعيات الكبيرة مثل wxWidgets و qt.
سمات:
Lean C API، مكتبة ثابتة - لا يوجد ObjC، ولا C++، ولا STL.
زليب مرخص.
دعم UTF-8 المتسق على جميع الأنظمة الأساسية.
بناء جملة عامل تصفية الملفات العالمي البسيط.
الدعم المدفوع متاح.
دعم اختيار الملفات المتعددة.
64 بت و 32 بت ودية.
دعم دول مجلس التعاون الخليجي، Clang، Xcode، Mingw وVisual Studio.
لا توجد تبعيات لطرف ثالث للبناء أو الربط.
دعم نظام IFileDialog
الحديث الخاص بنظام التشغيل Vista على نظام التشغيل Windows.
دعم واجهات برمجة تطبيقات Cocoa غير المهملة على نظام التشغيل OS X.
مربع حوار GTK3 على Linux.
دعم Zenity اختياري على Linux لتجنب ربط GTK.
تم اختباره ويعمل جنبًا إلى جنب مع http://www.libsdl.org على جميع الأنظمة الأساسية لمطوري الألعاب هناك.
#تتضمن <nfd.h>#تتضمن <stdio.h>#تتضمن <stdlib.h>int main( void ) {nfdchar_t *outPath = NULL;nfdresult_t result = 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 | premake5; تم إهمالها | أغسطس 2016 |
1.1.1 | دعم mingw، إصلاحات البناء | أغسطس 2016 |
1.1.2 | تمت إضافة test_pickfolder() | أغسطس 2016 |
1.1.3 | تمت إضافة الواجهة الخلفية لنظام Linux zenity | نوفمبر 2017 |
إصلاح نوع شار في decls | نوفمبر 2017 | |
1.1.4 | إصلاح تسربات Win32 | ديسمبر 2018 |
تحسين معالجة الأخطاء في Win32 | ديسمبر 2018 | |
يقوم نظام macos بإصلاح خطأ التركيز | ديسمبر 2018 | |
1.1.5 | إصلاح Win32 كوم إعادة التهيئة | أغسطس 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
لإصدارات الإصدار، وسيتم إنشاء 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
إلى قائمة المكتبات الثابتة للارتباط بها (للإصدار أو التصحيح، على التوالي).
أضف 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
على المكتبة المبنية.
يوجد شكل من أشكال تصفية الملفات في كل واجهة برمجة تطبيقات لمربع حوار الملفات، ولكن لا توجد وسيلة متسقة لدعمه. يوفر NFD الدعم لتصفية الملفات حسب مجموعات الامتدادات، ويقدم الأوصاف الخاصة به (حيثما أمكن) للامتدادات.
تتم دائمًا إضافة عامل تصفية أحرف البدل إلى كل مربع حوار.
;
ابدأ مرشحًا جديدًا.
,
أضف نوعًا منفصلاً إلى الفلتر.
txt
عامل التصفية الافتراضي هو للملفات النصية. هناك خيار بدل في القائمة المنسدلة.
png,jpg;psd
عامل التصفية الافتراضي هو لملفات png وjpg. يتوفر مرشح ثانٍ لملفات psd. هناك خيار بدل في القائمة المنسدلة.
حرف البدل NULL
فقط.
راجع test_opendialogmultiple.c.
أقبل تصحيحات تعليمات برمجية عالية الجودة، أو سأقوم بحل هذه الأمور وغيرها من خلال الدعم. انظر المساهمة للحصول على التفاصيل.
لا يوجد دعم لمربعات الحوار القديمة لنظام التشغيل Windows XP مثل GetOpenFileName
.
لا يوجد دعم لأسماء عوامل تصفية الملفات - على سبيل المثال: "ملفات الصور" (*.png، *.jpg). ومع ذلك، يتم دعم المرشحات بدون اسم.
لا تتعامل معالجة أخطاء exec الخاصة بعملية تنفيذ GTK Zenity مع العديد من حالات الأخطاء بأمان، حيث تختار الإجهاض بدلاً من التنظيف والإرجاع.
يرسل GTK 3 تحذيرًا واحدًا مزعجًا لكل مربع حوار يتم إنشاؤه.
حقوق الطبع والنشر © 2014-2019 Frogtoss Games, Inc. يغطي ترخيص الملف جميع الملفات الموجودة في هذا الريبو.
حوار الملف الأصلي بقلم مايكل لابي [email protected]
توماش كونوجاكي لـ microutf8
دينيس كولودين لدعم mingw.
توم ماسون لدعم Zenity.
يتوفر الدعم المباشر لهذا العمل من المؤلف الأصلي بموجب اتفاقية مدفوعة الأجر.
اتصل بـ Frogtoss Games.