| FLTK | |
|---|---|
| 初回リリース | 1998 (1998年) |
| 安定版リリース | 1.4.4 / 2025年7月20日 (2025年7月20日) |
| プレビューリリース | experimental-2022-01 (2022年1月23日) [±] ( 2022-01-23 ) |
| リポジトリ | |
| 書かれた | C++ |
| オペレーティング·システム | X11またはWaylandを使用したUnix ライク、macOS、Microsoft Windows |
| タイプ | ユーザーインターフェースライブラリ |
| ライセンス | GNU Lesser General Public Licenseバージョン2(静的リンクを許可する例外あり) [ 1 ] |
| Webサイト | www.fltk.org |
Fast Light Toolkit(FLTK)[ 2 ]は、ビル・スピツァックらによって開発された、グラフィカル・ユーザー・インターフェース(GUI)用のクロスプラットフォーム・ウィジェット(グラフィカル・コントロール要素)ライブラリです。3Dグラフィックス・プログラミングに対応するように設計されており、 OpenGLへのインターフェースを備えていますが、一般的なGUIプログラミングにも適しています。
基盤となるシステム依存のコードから抽象化された独自のウィジェット、描画、イベント システムを使用することで、サポートされているすべてのオペレーティング システムで同じに見えるプログラムを作成できます。
FLTK は、互換性のないライセンスを持つアプリケーションからの静的リンクを許可する条項を追加した、 GNU Lesser General Public License (LGPL)に基づいてライセンスされた、無料のオープンソース ソフトウェアです。
GTK、Qt、wxWidgetsなどのユーザーインターフェースライブラリとは対照的に、FLTKはより軽量な設計を採用しており、GUI機能に限定されています。そのため、ライブラリは非常に小さく(FLTKの「Hello World」プログラムは約100 KiB)、通常は静的にリンクされています。また、複雑なマクロ、個別のコードプリプロセッサ、テンプレート、例外、実行時型情報(RTTI)、あるいはFLTK 1.xでは名前空間といった高度なC++機能の使用を避けています。パッケージサイズが比較的小さいため、新規ユーザーにとって比較的容易に習得できます。[ 3 ]
これらの利点には、相応の欠点が伴います。FLTK は、ほとんどの GUI ツールキットよりもウィジェットの数が少なく、非ネイティブウィジェットを使用しているため、どのプラットフォームでもネイティブなルックアンドフィールを実現できません。
名前の意味
FLTKはもともと、Silicon Graphics (SGI)マシン向けに書かれたForms Libraryとの互換性を持つように設計されました(このライブラリの派生であるXFormsは現在でもかなり頻繁に使用されています)。そのライブラリでは、すべての関数と構造が で始まりますfl_。この命名規則はC++ライブラリのすべての新しいメソッドとウィジェットに拡張され、この接頭辞がFLライブラリの名前として採用されました。FLがオープンソースとしてリリースされた後、インターネットで「FL」を検索すると、Floridaの略語でもあるため、問題が発生することがわかりました。多くの議論と、既に何人かによって使用されていたツールキットの新しい名前を探した後、Bill SpitzakがFast Light Tool Kit (FLTK)を考案しました。[ 4 ]
建築
FLTKは、プログラミング言語C++で書かれたオブジェクト指向ウィジェットツールキットです。GTKは主にX Window System向けに最適化されていますが、FLTKはMicrosoft Windows ( Windows APIインターフェース)やOS X ( Quartzインターフェース)など、他のプラットフォームでも動作します。Waylandバックエンドが実装されており、リリース1.4.0以降で利用可能です。[ 5 ] FLTK2は、cairoグラフィックライブラリをオプションで使用できるように試験的にサポートしています。
言語バインディング
あるプログラミング言語で書かれたライブラリは、言語バインディングが記述されていれば、別の言語でも使用できます。FLTKには、様々な言語に対応した幅広いバインディングが用意されています。
FLTKは主にC++プログラミング言語 向けに設計され、C++で記述されています。しかし、Lua [ 6 ] 、Perl [ 7 ] 、Python [ 8 ] 、Ruby [ 9 ] 、Rust [ 10 ] 、 Tcl [ 11 ]など、他の言語向けのバインディングも存在します。
FLTK 1.x の場合、この例では[OK]ボタンのあるウィンドウを作成します。
# <FL/Fl.H>をインクルードします# <FL/Fl_Window.H>をインクルードします# <FL/Fl_Button.H>をインクルードしますint main ( int argc , char * argv []) { Fl_Window * w = new Fl_Window ( 330 , 190 ); new Fl_Button ( 110 , 130 , 100 , 35 , "Okay" ); w -> end (); w -> show ( argc , argv ); return Fl :: run (); }GUIデザイナー
FLTK には、 C++ソース ファイルとヘッダー ファイル を生成するグラフィカル GUIデザイナーであるFast Light User Interface Designer ( FLUID ) が含まれています。
使用
次のような多くのプログラムやプロジェクトで FLTK が使用されています。
- Nanolinux、14 MBのLinuxディストリビューション[ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ]
- XFDOSはGUIを備えたFreeDOSベースのディストリビューションで、Nano-XとFLTKを移植している[ 18 ] [ 14 ] [ 15 ] [ 17 ]
- Agenda VR3 は、FLTK ベースのソフトウェアを搭載した Linuxベースのパーソナル デジタル アシスタントです。
- サードパーティのAgenda VR3ソフトウェア
- Frictional GamesのAmnesia: The Dark Descentは、ランチャーアプリケーションにFLTKを使用しています。
- MwendanoWD、YPHによるパソコン用ロジックパズル。 [ 19 ]
- オーディオ:
- Fldigi、アマチュア無線ソフトウェアは、 PSK31などのデジタルモードを介してデータ送信とテキストチャットを可能にします。
- Giada、ルーパー、マイクロシーケンサー、サンプルプレーヤーソフトウェア、オープンソース[ 20 ]
- シンセサイザープリセットエディタであるProdatumは、リアルなインターフェースデザインを採用している[ 21 ]
- オープンソースのソフトウェアシンセサイザー、 ZynAddSubFX
- DiSTI GL Studio、ヒューマンマシンインターフェース開発ツール[ 22 ]
- エンジニアリング:
- Equinox デスクトップ環境(EDE)
- Linux用光ディスク書き込みソフトウェアFlBurn [ 25 ]
- グラフィック:
- CinePaint、ディープペイントソフトウェア、GTKからFLTKへの移行、オープンソース
- ITK-SNAP、医療画像セグメンテーション用ソフトウェアアプリケーション、オープンソース
- デジタル合成ソフト「Nuke」 。バージョン5まではQtに置き換えられた。
- オープンムービーエディタ[ 26 ]
- OpenVSP、NASAが開発した航空機設計・解析用のオープンソースパラメトリック3D CAD [ 27 ]
- PosteRazor、Windows、OS X、Linux用のオープンソースのポスター印刷ソフトウェア[ 28 ]
- Tilemap Studio、ゲームボーイ、カラー、アドバンス、DS、SNESプロジェクト用のオープンソースのタイルマップエディタ[ 29 ]
- SmallBASIC、Windows移植
- Webブラウザ:
- Dillo、Dillo-2はFLTK-2に基づいていましたが、公式リリースのないこのFLTKブランチを放棄したことが、FLTK1.3を使用してDillo-3が開始される主な原因でした。
- 第五に、初期のOperaの機能を再現する[ 30 ]
- ネットライダー[ 31 ]
- Brain Visualizer:大規模3D脳モデル用のオープンソースのインタラクティブビジュアライザー。ストーニーブルック大学で開発されたBrain Organization Simulation System (BOSS)の一部である[ 32 ]。
- X ウィンドウ マネージャー:
- FLWM
- miwm
バージョン
このセクションは拡張が必要です。不足している情報を追加していただければ幸いです。 (2010年7月) |
このバージョン履歴は、オープンソース開発の混乱した性質の一例です。[ 33 ]
1.0.x
これは以前の安定バージョンであり、現在はメンテナンスされていません。
1.1.x
これは以前の安定バージョンであり、現在はメンテナンスされていません。
2.0 ブランチ
これは開発ブランチであり、多くの新機能とよりクリーンなプログラミングスタイルを備え、FLTKの進化における次のステップとなると長い間考えられていました。しかし、安定版には至らず、開発はほぼ停止しました。現在、このブランチは非アクティブです。
1.2.x
これは、2.0 の優れた機能の一部を、より人気の高い 1.1 ブランチに統合する試みでした。現在、このブランチは開発されていません。1.1 ブランチのすべての機能は 1.3 ブランチに組み込まれています。
1.3.x
以前の安定版リリース。[ 34 ] UTF-8サポートを提供します。
1.4.x
現在の安定ブランチ。1.3にさらに多くの機能が追加されています。[ 34 ]このブランチはリリース1.4.2(2025年2月23日)以降メンテナンスモードになっています。
1.5.x
現在の開発ブランチ。このブランチはまだ開発初期段階です。FLTK 1.5以降、FLTKのビルドにはCMakeが必要です(configure/Makefileのサポートは廃止されました)。
3.0 ブランチ
このブランチは、1.x と 2.0 のブランチを「unfork」するという構想から生まれましたが、完成には至りませんでした。このブランチの開発努力はすべて放棄され、現在は非アクティブです。
参照
- GTK
- gtkmm (GTK の C++ バインディング)
- FOXツールキット
- IUP(ソフトウェア) - ネイティブグラフィカルユーザーインターフェースを構築するためのマルチプラットフォームツールキット
- ジュース
- Qt(ソフトウェア)
- ウィジェットツールキット
- wxWidgets - コミュニティによって開発されたクロスプラットフォームのオープンソースC++ウィジェットツールキット
- U++
- ウィジェットツールキットのリスト
参考文献
- ^ 「FLTKライセンス契約」。2001年12月18日時点のオリジナルよりアーカイブ。2020年1月30日閲覧。
- ^ 「Fast Light Toolkit - Fast Light Toolkit (FLTK)」 . www.fltk.org . 2020年2月2日時点のオリジナルよりアーカイブ。2020年1月30日閲覧。
- ^ 「Fast Light ToolKit (FLTK) » CppLibs」 . 2015年5月18日時点のオリジナルよりアーカイブ。2015年5月13日閲覧。
- ^ 「記事#363:「FLTK」とはどういう意味ですか? - Fast Light Toolkit (FLTK)」 www.fltk.org . 2020年7月31日時点のオリジナルよりアーカイブ。 2020年1月30日閲覧。
- ^ 「STR #3371: Wayland ディスプレイサーバープロトコルのサポート - Fast Light Toolkit (FLTK)」 . www.fltk.org . 2022年11月19日時点のオリジナルよりアーカイブ。2020年8月6日閲覧。
- ^ "murgaLuaホームページ" . 2012年7月7日時点のオリジナルよりアーカイブ。2008年12月18日閲覧。
- ^ 「リンク:カテゴリー別 - リンク - Fast Light Toolkit (FLTK)」 www.fltk.org . 2023年3月15日時点のオリジナルよりアーカイブ。 2023年4月7日閲覧。
- ^ "pyFLTKホームページ" . pyfltk.sourceforge.io . 2023年4月7日時点のオリジナルよりアーカイブ。2023年4月7日閲覧。
- ^ “Ruby/FLTK” . ruby-fltk.sourceforge.net . 2023年4月13日時点のオリジナルよりアーカイブ。2023年4月7日閲覧。
- ^ "fltk - Rust" . docs.rs. 2023年4月7日時点のオリジナルよりアーカイブ。2023年4月7日閲覧。
- ^ “Tcl/Fltk dynamic extension for Tcl” . SourceForge . 2013年4月3日. 2023年4月7日時点のオリジナルよりアーカイブ。 2023年4月7日閲覧。
- ^ “Nanolinux” . SourceForge . 2016年10月8日. 2020年11月11日時点のオリジナルよりアーカイブ。 2018年4月15日閲覧。
- ^ “Tiny to the extreme: Nanolinux” . 2014年11月30日. 2018年4月16日時点のオリジナルよりアーカイブ。 2018年4月15日閲覧。
- ^ a b「Nanolinux開発者へのインタビュー」。2014年12月30日。2018年4月16日時点のオリジナルよりアーカイブ。2018年4月15日閲覧。
- ^ a b「人工知能手法」 . 1999年4月20日時点のオリジナルよりアーカイブ。2019年8月15日閲覧。
- ^ 「PC HTMLエディター」。2018年4月16日時点のオリジナルよりアーカイブ。2018年4月15日閲覧。
- ^ a b「Georgの個人ホームページ」 www.georgpotthast.de 。 2018年8月17日時点のオリジナルよりアーカイブ。2018年4月15日閲覧。
- ^ 「TKの並外れた例!」 2012年10月12日. 2018年4月16日時点のオリジナルよりアーカイブ。2018年4月15日閲覧。
- ^ "YPH" . 2018年10月27日時点のオリジナルよりアーカイブ。2018年10月27日閲覧。
- ^ 「Giada、ハードコア・ループマシン」。2011年9月25日時点のオリジナルよりアーカイブ。2011年9月29日閲覧。
- ^ "prodatum - 公式ホームページ" . prodatum.sourceforge.net . 2023年4月7日時点のオリジナルよりアーカイブ。2023年4月7日閲覧。
- ^ 「DiSTI GL Studio」 。 2012年8月15日時点のオリジナルよりアーカイブ。2010年7月29日閲覧。
- ^ "ForcePAD" . forcepad.sourceforge.net . 2023年4月7日時点のオリジナルよりアーカイブ。2023年4月7日閲覧。
- ^ 「RoboCIM - ロボティクスソフトウェア」。2013年5月4日時点のオリジナルよりアーカイブ。2013年6月29日閲覧。
- ^ 「Linux用無料CD DVD書き込みソフトウェア」flburn.sourceforge.net . 2023年4月10日時点のオリジナルよりアーカイブ。2023年4月7日閲覧。
- ^ 「Open Movie Editor - 無料かつオープンソースのビデオエディタ」www.openmovieeditor.org。 2012年5月18日時点のオリジナルよりアーカイブ。2008年4月12日閲覧。
- ^ "OpenVSP" . openvsp.org . 2023年4月7日時点のオリジナルよりアーカイブ。2023年4月7日閲覧。
- ^ “PosteRazor - 自分だけのポスターを作ろう!” . posterazor.sourceforge.io . 2023年4月7日時点のオリジナルよりアーカイブ。2023年4月7日閲覧。
- ^ “Tilemap Studio” . GitHub . 2021年10月18日. 2021年9月8日時点のオリジナルよりアーカイブ。 2021年9月8日閲覧。
- ^ “Fifth - Home” . five-browser.sourceforge.net . 2023年4月14日時点のオリジナルよりアーカイブ。 2023年4月7日閲覧。
- ^ “NetRider” . SourceForge . 2016年2月23日. 2023年4月7日時点のオリジナルよりアーカイブ。 2023年4月7日閲覧。
- ^ “Viz (Brain Visualizer)” . GitHub . 2021年8月25日. 2021年9月8日時点のオリジナルよりアーカイブ。 2021年9月8日閲覧。
- ^ 「FLTKのバージョンは何ですか?」 2010年6月28日時点のオリジナルよりアーカイブ。2010年7月23日閲覧。
- ^ a b https://www.fltk.org/articles.php?L825 Archived 2019-08-02 at the Wayback Machine 2017年3月5日撮影。