Una biblioteca C pequeña y ordenada que invoca de forma portátil cuadros de diálogo nativos para abrir archivos, seleccionar carpetas y guardar. Escriba el código de diálogo una vez y haga que aparezcan cuadros de diálogo nativos en todas las plataformas compatibles. Evite vincular dependencias grandes como wxWidgets y qt.
Características:
API Lean C, biblioteca estática: sin ObjC, sin C++, sin STL.
Licencia Zlib.
Soporte consistente de UTF-8 en todas las plataformas.
Sintaxis de filtro de archivos universal simple.
Soporte pago disponible.
Soporte de selección de múltiples archivos.
Compatible con 64 y 32 bits.
Compatible con GCC, Clang, Xcode, Mingw y Visual Studio.
No hay dependencias de terceros para construir o vincular.
Soporte para el moderno IFileDialog
de Vista en Windows.
Soporte para API Cocoa no obsoletas en OS X.
Diálogo GTK3 en Linux.
Soporte opcional de Zenity en Linux para evitar vincular GTK.
Probado, funciona junto con http://www.libsdl.org en todas las plataformas, para los desarrolladores de juegos.
#include <nfd.h>#include <stdio.h>#include <stdlib.h>int principal (vacío) {nfdchar_t *outPath = NULL;nfdresult_t resultado = NFD_OpenDialog( NULL, NULL, &outPath); if (resultado == NFD_OKAY) {puts("¡Éxito!");puts(outPath);free(outPath); }else if (resultado == NFD_CANCEL) {puts("El usuario presionó cancelar."); }else {printf("Error: %sn", NFD_GetError()); } devolver 0; }
Consulte la API autodocumentada NFD.h para obtener más opciones.
Los incrementos de versión principal indican salida de API o ABI.
Los incrementos de versión menor denotan salidas triviales o de compilación.
Los incrementos de la versión micro simplemente se recompilan y se insertan.
liberar | Qué hay de nuevo | fecha |
---|---|---|
1.0.0 | inicial | octubre de 2014 |
1.1.0 | prehacer5; scons en desuso | agosto de 2016 |
1.1.1 | soporte mingw, correcciones de compilación | agosto de 2016 |
1.1.2 | test_pickfolder() agregado | agosto de 2016 |
1.1.3 | Se agregó el backend de Zenity Linux. | noviembre de 2017 |
arreglar el tipo de char en decls | noviembre de 2017 | |
1.1.4 | arreglar win32 memleaks | diciembre de 2018 |
mejorar el manejo de errores de win32 | diciembre de 2018 | |
macos corrige el error de enfoque | diciembre de 2018 | |
1.1.5 | win32 arreglar com reinicializar | agosto de 2019 |
1.1.6 | corregir el error del filtro OSX | agosto de 2019 |
eliminar scons obsoletos | agosto de 2019 | |
arreglar la compilación mingw | agosto de 2019 | |
-Wlimpieza de advertencia adicional | agosto de 2019 |
NFD utiliza archivos Makefiles y archivos de proyecto IDE generados por Premake5. Los archivos de proyecto generados se registran en build/
por lo que no es necesario descargar ni utilizar Premake en la mayoría de los casos.
Si necesita ejecutar Premake5 directamente, hay más documentación de compilación disponible.
Anteriormente, NFD utilizaba SCons para construir. A partir de la versión 1.1.6, la compatibilidad con SCons se eliminó por completo.
nfd.a
se creará para versiones de lanzamiento y nfd_d.a
se creará para versiones de depuración.
El archivo MAKE ofrece hasta cuatro opciones, con release_x64
como valor predeterminado.
make config=release_x86 make config=release_x64 make config=debug_x86 make config=debug_x64
Agregue src/include
a su ruta de búsqueda de inclusión.
Agregue nfd.lib
o nfd_d.lib
a la lista de bibliotecas estáticas para vincular (para lanzamiento o depuración, respectivamente).
Agregue build/<debug|release>/<arch>
a la ruta de búsqueda de la biblioteca.
apt-get libgtk-3-dev
instala la dependencia gtk para la compilación de la biblioteca.
En Linux, tienes la opción de compilar y vincular con GTK. Si lo usa, la forma recomendada de compilar es incluir los argumentos de pkg-config --cflags --libs gtk+-3.0
.
Alternativamente, puede usar el backend de Zenity ejecutando el Makefile en build/gmake_linux_zenity
. Zenity ejecuta el cuadro de diálogo en su propio espacio de direcciones, pero requiere que el usuario tenga Zenity correctamente instalado y configurado en su sistema.
En Mac OS, agregue AppKit
a la lista de marcos.
En Windows, asegúrese de vincular con comctl32.lib
.
Consulte NFD.h
para llamadas API. Consulte tests/*.c
para ver un código de ejemplo.
Después de compilar, build/bin
contiene programas de prueba compilados. El subdirectorio apropiado en build/lib
contiene la biblioteca construida.
Existe una forma de filtrado de archivos en cada API de diálogo de archivos, pero no hay un medio consistente para admitirlo. NFD brinda soporte para filtrar archivos por grupos de extensiones, proporcionando sus propias descripciones (cuando corresponda) para las extensiones.
Siempre se agrega un filtro comodín a cada diálogo.
;
Comience un nuevo filtro.
,
Agregue un tipo separado al filtro.
txt
El filtro predeterminado es para archivos de texto. Hay una opción comodín en un menú desplegable.
png,jpg;psd
El filtro predeterminado es para archivos png y jpg. Hay un segundo filtro disponible para archivos psd. Hay una opción comodín en un menú desplegable.
NULL
Sólo comodín.
Consulte test_opendialogmultiple.c.
Acepto parches de código de calidad o resolveré estos y otros asuntos a través del soporte. Consulte contribución para obtener más detalles.
No hay soporte para los cuadros de diálogo heredados de Windows XP, como GetOpenFileName
.
No se admiten nombres de filtros de archivos, por ejemplo: "Archivos de imagen" (*.png, *.jpg). Sin embargo, se admiten filtros sin nombre.
El manejo de errores de ejecución del proceso de implementación de GTK Zenity no maneja correctamente numerosos casos de error, eligiendo abortar en lugar de limpiar y regresar.
GTK 3 envía spam una advertencia por cada cuadro de diálogo creado.
Copyright © 2014-2019 Frogtoss Games, Inc. La LICENCIA de archivos cubre todos los archivos de este repositorio.
Diálogo de archivo nativo por Michael Labbe [email protected]
Tomasz Konojacki para microutf8
Denis Kolodin por el apoyo de mingw.
Tom Mason por el apoyo de Zenity.
El soporte directo para este trabajo está disponible por parte del autor original mediante un acuerdo pago.
Póngase en contacto con Juegos Frogtoss.