기본 파일 열기, 폴더 선택 및 저장 대화 상자를 이식 가능하게 호출하는 작고 깔끔한 C 라이브러리입니다. 대화 상자 코드를 한 번 작성하면 지원되는 모든 플랫폼에서 기본 대화 상자가 팝업되도록 합니다. wxWidgets 및 qt와 같은 대규모 종속성을 연결하지 마십시오.
특징:
린 C API, 정적 라이브러리 -- ObjC 없음, C++ 없음, STL 없음.
Zlib 라이센스가 있습니다.
모든 플랫폼에서 일관된 UTF-8 지원.
간단한 범용 파일 필터 구문.
유료 지원이 가능합니다.
다중 파일 선택 지원.
64비트 및 32비트에 적합합니다.
GCC, Clang, Xcode, Mingw 및 Visual Studio가 지원됩니다.
빌드 또는 연결에 대한 타사 종속성이 없습니다.
Windows에서 Vista의 최신 IFileDialog
지원합니다.
OS X에서 더 이상 사용되지 않는 Cocoa API를 지원합니다.
Linux의 GTK3 대화 상자.
GTK 연결을 피하기 위해 Linux에서 Zenity를 선택적으로 지원합니다.
테스트를 거쳤으며 게임 개발자를 위해 모든 플랫폼에서 http://www.libsdl.org와 함께 작동합니다.
#include <nfd.h>#include <stdio.h>#include <stdlib.h>int main( void ) {nfdchar_t *outPath = NULL;nfdresult_t 결과 = NFD_OpenDialog( NULL, NULL, &outPath ); if ( 결과 == NFD_OKAY ) {puts("성공!");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년 10월 |
1.1.0 | 프리메이크5; 더 이상 사용되지 않는 스콘 | 2016년 8월 |
1.1.1 | minw 지원, 빌드 수정 | 2016년 8월 |
1.1.2 | test_pickfolder()가 추가되었습니다. | 2016년 8월 |
1.1.3 | zenity 리눅스 백엔드 추가 | 2017년 11월 |
decls의 문자 유형 수정 | 2017년 11월 | |
1.1.4 | win32 memleas 수정 | 2018년 12월 |
win32 오류 처리 개선 | 2018년 12월 | |
macos 포커스 버그 수정 | 2018년 12월 | |
1.1.5 | win32 fix com 다시 초기화 | 2019년 8월 |
1.1.6 | osx 필터 버그 수정 | 2019년 8월 |
더 이상 사용되지 않는 scons 제거 | 2019년 8월 | |
Mingw 컴파일 수정 | 2019년 8월 | |
-Wextra 경고 정리 | 2019년 8월 |
NFD는 Premake5에서 생성된 Makefile과 IDE 프로젝트 파일을 사용합니다. 생성된 프로젝트 파일은 build/
아래에 체크인되므로 대부분의 경우 Premake를 다운로드하여 사용할 필요가 없습니다.
Premake5를 직접 실행해야 하는 경우 추가 빌드 문서를 사용할 수 있습니다.
이전에는 NFD가 SCons를 사용하여 빌드했습니다. 1.1.6부터 SCons 지원이 완전히 제거되었습니다.
nfd.a
릴리스 빌드용으로 빌드되고, nfd_d.a
디버그 빌드용으로 빌드됩니다.
makefile은 release_x64
기본값으로 하여 최대 4개의 옵션을 제공합니다.
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
의 인수를 포함하는 것입니다.
또는 build/gmake_linux_zenity
에서 Makefile을 실행하여 Zenity 백엔드를 사용할 수 있습니다. Zenity는 자체 주소 공간에서 대화 상자를 실행하지만 사용자는 Zenity를 시스템에 올바르게 설치하고 구성해야 합니다.
Mac OS에서는 프레임워크 목록에 AppKit
추가합니다.
Windows에서는 comctl32.lib
에 연결되어 있는지 확인하세요.
API 호출은 NFD.h
참조하세요. 예제 코드는 tests/*.c
참조하세요.
컴파일 후 build/bin
에는 컴파일된 테스트 프로그램이 포함됩니다. build/lib
아래의 해당 하위 디렉터리에는 빌드된 라이브러리가 포함되어 있습니다.
모든 파일 대화 상자 API에는 파일 필터링 형식이 있지만 이를 지원하는 일관된 수단은 없습니다. NFD는 확장자 그룹별로 파일을 필터링하여 확장자에 대한 자체 설명(해당되는 경우)을 제공하는 기능을 제공합니다.
와일드카드 필터는 항상 모든 대화 상자에 추가됩니다.
;
새 필터를 시작합니다.
,
필터에 별도의 유형을 추가하십시오.
txt
기본 필터는 텍스트 파일용입니다. 드롭다운에 와일드카드 옵션이 있습니다.
png,jpg;psd
기본 필터는 png 및 jpg 파일용입니다. 두 번째 필터는 psd 파일에 사용할 수 있습니다. 드롭다운에 와일드카드 옵션이 있습니다.
NULL
와일드카드만 가능합니다.
test_opendialogmultiple.c를 참조하세요.
나는 고품질 코드 패치를 수락하거나 지원을 통해 이러한 문제와 기타 문제를 해결하겠습니다. 자세한 내용은 기여를 참조하세요.
GetOpenFileName
과 같은 Windows XP의 레거시 대화 상자는 지원되지 않습니다.
파일 필터 이름은 지원되지 않습니다. 예: "이미지 파일"(*.png, *.jpg). 그러나 이름 없는 필터는 지원됩니다.
GTK Zenity 구현의 프로세스 실행 오류 처리는 정리 및 반환 대신 중단을 선택하여 수많은 오류 사례를 적절하게 처리하지 않습니다.
GTK 3은 생성된 대화상자당 하나의 경고를 스팸으로 보냅니다.
Copyright © 2014-2019 Frogtoss Games, Inc. 파일 라이센스는 이 저장소의 모든 파일에 적용됩니다.
Michael Labbe의 기본 파일 대화 상자 [email protected]
microutf8용 Tomasz Konojacki
Minw 지원을 위한 Denis Kolodin.
Zenity 지원을 위한 Tom Mason.
이 작품에 대한 직접적인 지원은 유료 계약에 따라 원저작자가 제공합니다.
프로그토스 게임즈에 문의하세요.