ネイティブのファイルを開く、フォルダーの選択、保存のダイアログを移植可能に呼び出す、小さくてきちんとした 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 result = NFD_OpenDialog( NULL, NULL, &outPath ); if ( result == 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; scons は非推奨になりました | 2016年8月 |
| 1.1.1 | mingw サポート、ビルド修正 | 2016年8月 |
| 1.1.2 | test_pickfolder() が追加されました | 2016年8月 |
| 1.1.3 | zenity linux バックエンドが追加されました | 2017年11月 |
| decls の char 型を修正 | 2017年11月 | |
| 1.1.4 | win32のmemleaksを修正 | 2018年12月 |
| win32エラー処理を改善する | 2018年12月 | |
| macosはフォーカスのバグを修正します | 2018年12月 | |
| 1.1.5 | win32 fix com を再初期化する | 2019年8月 |
| 1.1.6 | OSXフィルターのバグを修正 | 2019年8月 |
| 非推奨の scon を削除する | 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 は最大 4 つのオプションを提供し、デフォルトは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の引数を含めることです。
あるいは、 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 ファイル用です。 2 番目のフィルターは psd ファイルに使用できます。 ドロップダウンにはワイルドカード オプションがあります。
NULLワイルドカードのみ。
test_opendialogmultiple.c を参照してください。
私は品質コードのパッチを受け入れるか、サポートを通じてこれらの問題やその他の問題を解決します。 詳細については、「貢献」を参照してください。
GetOpenFileNameなどの Windows XP の従来のダイアログはサポートされていません。
ファイル フィルタ名はサポートされていません -- 例: 「画像ファイル」(*.png、*.jpg)。 ただし、名前のないフィルターはサポートされています。
GTK Zenity 実装のプロセス実行エラー処理は、多くのエラー ケースを適切に処理せず、クリーンアップして戻るのではなく中止することを選択します。
GTK 3 は、作成されたダイアログごとに 1 つの警告を送信します。
Copyright © 2014-2019 Frogtoss Games, Inc. ファイル ライセンスは、このリポジトリ内のすべてのファイルを対象としています。
ネイティブ ファイル ダイアログ by Michael Labbe [email protected]
microutf8 の Tomasz Konjacki
Denis Kolodin さん、mingw のサポートに感謝します。
Zenity サポートの Tom Mason。
この作品に対する直接のサポートは、有料契約に基づいて原作者から利用できます。
Frogtoss Games にお問い合わせください。