FLTK

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 ライクmacOSMicrosoft Windows
タイプユーザーインターフェースライブラリ
ライセンスGNU Lesser General Public Licenseバージョン2(静的リンクを許可する例外あり) [ 1 ]
Webサイトwww.fltk.org

Fast Light ToolkitFLTK[ 2 ]は、ビル・スピツァックらによって開発された、グラフィカル・ユーザー・インターフェース(GUI)用のクロスプラットフォーム・ウィジェット(グラフィカル・コントロール要素)ライブラリです。3Dグラフィックス・プログラミングに対応するように設計されており、 OpenGLへのインターフェースを備えていますが、一般的なGUIプログラミングにも適しています。

基盤となるシステム依存のコードから抽象化された独自のウィジェット、描画、イベント システムを使用することで、サポートされているすべてのオペレーティング システムで同じに見えるプログラムを作成できます。

FLTK は、互換性のないライセンスを持つアプリケーションからの静的リンクを許可する条項を追加した、 GNU Lesser General Public License (LGPL)に基づいてライセンスされた、無料のオープンソース ソフトウェアです。

GTKQtwxWidgetsなどのユーザーインターフェースライブラリとは対照的に、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 が使用されています。

バージョン

このバージョン履歴は、オープンソース開発の混乱した性質の一例です。[ 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」するという構想から生まれましたが、完成には至りませんでした。このブランチの開発努力はすべて放棄され、現在は非アクティブです。

参照

参考文献

  1. ^ 「FLTKライセンス契約」。2001年12月18日時点のオリジナルよりアーカイブ2020年1月30日閲覧。
  2. ^ 「Fast Light Toolkit - Fast Light Toolkit (FLTK)」 .​​ www.fltk.org . 2020年2月2日時点のオリジナルよりアーカイブ2020年1月30日閲覧。
  3. ^ 「Fast Light ToolKit (FLTK) » CppLibs」 . 2015年5月18日時点のオリジナルよりアーカイブ2015年5月13日閲覧。
  4. ^ 「記事#363:「FLTK」とはどういう意味ですか? - Fast Light Toolkit (FLTK)」 www.fltk.org . 2020年7月31日時点のオリジナルよりアーカイブ。 2020年1月30日閲覧
  5. ^ 「STR #3371: Wayland ディスプレイサーバープロトコルのサポート - Fast Light Toolkit (FLTK)」 . www.fltk.org . 2022年11月19日時点のオリジナルよりアーカイブ2020年8月6日閲覧。
  6. ^ "murgaLuaホームページ" . 2012年7月7日時点のオリジナルよりアーカイブ2008年12月18日閲覧。
  7. ^ 「リンク:カテゴリー別 - リンク - Fast Light Toolkit (FLTK)」 www.fltk.org . 2023年3月15日時点のオリジナルよりアーカイブ。 2023年4月7日閲覧
  8. ^ "pyFLTKホームページ" . pyfltk.sourceforge.io . 2023年4月7日時点のオリジナルよりアーカイブ2023年4月7日閲覧。
  9. ^ “Ruby/FLTK” . ruby​​-fltk.sourceforge.net . 2023年4月13日時点のオリジナルよりアーカイブ2023年4月7日閲覧。
  10. ^ "fltk - Rust" . docs.rs. 2023年4月7日時点のオリジナルよりアーカイブ2023年4月7日閲覧
  11. ^ “Tcl/Fltk dynamic extension for Tcl” . SourceForge . 2013年4月3日. 2023年4月7日時点のオリジナルよりアーカイブ。 2023年4月7日閲覧
  12. ^ “Nanolinux” . SourceForge . 2016年10月8日. 2020年11月11日時点のオリジナルよりアーカイブ。 2018年4月15日閲覧
  13. ^ “Tiny to the extreme: Nanolinux” . 2014年11月30日. 2018年4月16日時点のオリジナルよりアーカイブ。 2018年4月15日閲覧
  14. ^ a b「Nanolinux開発者へのインタビュー」。2014年12月30日。2018年4月16日時点のオリジナルよりアーカイブ2018年4月15日閲覧。
  15. ^ a b「人工知能手法」 . 1999年4月20日時点のオリジナルよりアーカイブ2019年8月15日閲覧。
  16. ^ 「PC HTMLエディター」2018年4月16日時点のオリジナルよりアーカイブ2018年4月15日閲覧。
  17. ^ a b「Georgの個人ホームページ」 www.georgpotthast.de 2018年8月17日時点のオリジナルよりアーカイブ2018年4月15日閲覧。
  18. ^ 「TKの並外れた例!」 2012年10月12日. 2018年4月16日時点のオリジナルよりアーカイブ2018年4月15日閲覧。
  19. ^ "YPH" . 2018年10月27日時点のオリジナルよりアーカイブ2018年10月27日閲覧。
  20. ^ 「Giada、ハードコア・ループマシン」2011年9月25日時点のオリジナルよりアーカイブ2011年9月29日閲覧。
  21. ^ "prodatum - 公式ホームページ" . prodatum.sourceforge.net . 2023年4月7日時点のオリジナルよりアーカイブ2023年4月7日閲覧。
  22. ^ 「DiSTI GL Studio」 。 2012年8月15日時点のオリジナルよりアーカイブ2010年7月29日閲覧。
  23. ^ "ForcePAD" . forcepad.sourceforge.net . 2023年4月7日時点のオリジナルよりアーカイブ2023年4月7日閲覧。
  24. ^ 「RoboCIM - ロボティクスソフトウェア」2013年5月4日時点のオリジナルよりアーカイブ2013年6月29日閲覧。
  25. ^ 「Linux用無料CD DVD書き込みソフトウェア」flburn.sourceforge.net . 2023年4月10時点のオリジナルよりアーカイブ2023年4月7日閲覧。
  26. ^ 「Open Movie Editor - 無料かつオープンソースのビデオエディタ」www.openmovieeditor.org。 2012年5月18時点のオリジナルよりアーカイブ2008年4月12日閲覧。
  27. ^ "OpenVSP" . openvsp.org . 2023年4月7日時点のオリジナルよりアーカイブ2023年4月7日閲覧。
  28. ^ “PosteRazor - 自分だけのポスターを作ろう!” . posterazor.sourceforge.io . 2023年4月7日時点のオリジナルよりアーカイブ2023年4月7日閲覧。
  29. ^ “Tilemap Studio” . GitHub . 2021年10月18日. 2021年9月8日時点のオリジナルよりアーカイブ。 2021年9月8日閲覧
  30. ^ “Fifth - Home” . five-browser.sourceforge.net . 2023年4月14日時点のオリジナルよりアーカイブ。 2023年4月7日閲覧
  31. ^ “NetRider” . SourceForge . 2016年2月23日. 2023年4月7日時点のオリジナルよりアーカイブ。 2023年4月7日閲覧
  32. ^ “Viz (Brain Visualizer)” . GitHub . 2021年8月25日. 2021年9月8日時点のオリジナルよりアーカイブ。 2021年9月8日閲覧
  33. ^ 「FLTKのバージョンは何ですか?」 2010年6月28日時点のオリジナルよりアーカイブ2010年7月23日閲覧
  34. ^ a b https://www.fltk.org/articles.php?L825 Archived 2019-08-02 at the Wayback Machine 2017年3月5日撮影。