ネイティブのファイルを開く、フォルダーの選択、保存のダイアログを移植可能に呼び出す、小さくてきちんとした 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 にお問い合わせください。