Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Fox toolkit

From Wikipedia, the free encyclopedia
FOX toolkit
The topic of this articlemay not meet Wikipedia'snotability guidelines for products and services. Please help to demonstrate the notability of the topic by citingreliable secondary sources that areindependent of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to bemerged,redirected, ordeleted.
Find sources: "Fox toolkit" – news ·newspapers ·books ·scholar ·JSTOR
(May 2014) (Learn how and when to remove this message)
FOX toolkit
Developer(s)Jeroen van der Zijp, FOX community
Stable release
1.6.58 / May 13, 2024;
10 months ago
 (2024-05-13)
Preview release
1.7.86 / August 15, 2024;
7 months ago
 (2024-08-15)
Written inC++
Operating systemCross-platform
TypeDevelopment Library
LicenseGNU Lesser General Public License with License Addendum allowing static linking[1]
Websitefox-toolkit.org

TheFOX toolkit is anopen-source,cross-platformwidget toolkit, i.e. a library of basic elements for building agraphical user interface (GUI). FOX stands for Free Objects for X.

It features a hard-wiredWindows 95-styletheme available for bothMicrosoft Windows itself as well as theX Window System (which is used on manyUNIX andUNIX-like operating systems).[2]

The FOX toolkit has been released under theGNU Lesser General Public Licence. Development began 1997 by Jeroen van der Zijp while he was affiliated at CFDRC. Since then, Jeroen van der Zijp maintains the core library and test applications, with the help of user community.

The FOX toolkit is written inC++, withlanguage bindings available forPython,Ruby andEiffel. The FOXsource code distribution supports building with many different (commercial and free) C++ compilers.

Cross-platform compatibility

[edit]

FOX differentiates itself in the following way from other cross-platform toolkits:

  • Tk is a cross-platform toolkit but does not have all of the widgets that FOX considers desirable.
  • Qt up to version 4.5 used to have a licensing model that required a commercial license in some cases where FOX would not.
  • wxWidgets promotes the use of native widgets on each supported platform.
  • FLTK is a fast, low-footprint library that supports rapid application development, and requires less code to use, but lacks advanced widgets.

All of these toolkits have some support for programming natively on theclassic Mac OS and/ormacOS platforms, which FOX currently does not support.[citation needed]

FOX uses a technique similar to theJava Swing-style approach to display a graphical user interface to the screen, using only graphical primitives available on that platform, as opposed to the original JavaAWT-style approach which used native widgets. This means that applications will have a similarlook and feel across platforms. In theory, porting FOX to a new platform should also be easier than implementing support for native widgets.

On the downside, it usually means that FOX applications will look and feel different from native applications for those platforms, which some users may find confusing. Also, certain native platform features may not be available immediately, such as comprehensive printing support or internationalized input handling, because they will need to be re-implemented in a cross-platform way before they can be used in FOX. Some applications, likeXfe File Manager, allow changing the color scheme to better integrate with the system's theme colors.[3] OnArch Linux, an app called FOX Control Panel is available to change the color scheme of all FOX applications system-wide. It ships with the main FOX Toolkit package.

Messaging system

[edit]

FOX offers a transparent bi-directional messaging system. Each widget sends its message to a certain target. Each message is composed by a selector that identifies its kind and an id that is unique and provided by the widget's enumeration. The advantage is that each widget can call a target widget's method in a transparent manner, even if the method does not exist. Vice versa, in the implementation of the individual message handler, since the sender is known, the target can also dispatch a message to the sender. This is a particularly important feature in component oriented software, where components may be written by different people, or even different organizations.

The FOX messaging system simplifies the GUI update strategy: during widget update, the widgets can ask from their targets to update them. This means that a command message does not also have to explicitly update any widgets as it is typical. In case an application implements N command messages each updating M widgets, then M*N updates must be executed and at most M*N messages must be implemented. On the other hand, if widgets request for update, only N command messages and at most M update messages are implemented. This strategy separates the GUI update from data changes, making the GUI a real-time reflection of the underlying data structures.

Internals

[edit]

Dependencies

[edit]

Under hood it depends on the cross-platform libraries, which include the following:[4]

Hello World

[edit]

The following example creates a FOX application and a dialog with a button on C++:

#include"fx.h"intmain(intargc,char*argv[]){FXAppapplication("Hello","FoxTest");application.init(argc,argv);FXMainWindow*main=newFXMainWindow(&application,"Hello",NULL,NULL,DECOR_ALL);newFXButton(main,"&Hello, World!",NULL,&application,FXApp::ID_QUIT);application.create();main->show(PLACEMENT_SCREEN);returnapplication.run();}

It is also possible to create dialogs withPython 2.2 andRuby:

FXPy

#!/usr/bin/env python3fromFXPy.foximport*importsysdefrunme():app=FXApp("Hello","Test")app.init(sys.argv)main=FXMainWindow(app,"Hello",None,None,DECOR_ALL)button=FXButton(main,"&Hello, World!",None,app,FXApp.ID_QUIT)app.create()main.show(PLACEMENT_SCREEN)app.run()if__name__=="__main__":runme()

FXRuby

require'fox16'includeFoxapplication=FXApp.new("Hello","FoxTest")main=FXMainWindow.new(application,"Hi",nil,nil,DECOR_ALL)FXButton.new(main,"&Hello, World!",nil,application,FXApp::ID_QUIT,LAYOUT_FILL_X|BUTTON_TOOLBAR|FRAME_RAISED|FRAME_THICK)application.create()main.show(PLACEMENT_SCREEN)application.run()

Software built on FOX

[edit]
  • CFD-View – a post-processing developed by ESI Group
  • Abaqus/CAE – the pre- and post- processor of theAbaqus finite element suite[5]
  • bdStudio – an accurate and easy-to-use visualization tool for complex real time aerospace simulations developed by SAIC
  • Intel Modular Test Architecture (IMTA)
  • PVRShaman – a free shader-development studio fromImagination Technologies
  • LinkCAD – a commercial format-conversion application for various CAD formats
  • TMP Vision and SLIM – designed to meet the needs of complex FEA models
  • Kerkythea – a multimethod render system
  • Acronis True Image and otherAcronis products[6]
  • Goggles Music Manager – a music collection manager and player
  • xfe – a graphical file manager for theX Window System
  • TnFOX – a fork of the FOX library
  • SUMO (Simulation of Urban MObility) – a traffic simulator with a GUI editor

See also

[edit]
  • FLTK – a light, cross-platform, non-native widget toolkit
  • fpGUI – a cross-platform GUI toolkit with a Visual Form Designer and a custom help document reader
  • GTK – a widget toolkit used byGNOME applications
  • gtkmm – the official C++ interface to GTK
  • IUP – a multi-platform toolkit for building native graphical user interfaces
  • Juce
  • Qt – a widget toolkit used byKDE
  • Ultimate++
  • Widget toolkit
  • wxWidgets – a cross-platform open-source C++ widget library, wrapping native widget toolkits
  • List of widget toolkits

References

[edit]
  1. ^"FOX Library License".fox-toolkit.org. Retrieved2024-09-01.
  2. ^FOX Toolkit, GUI Toolkits for The X Window System, by Leslie Polzer, 27 Jul 2003, freshmeat.net
  3. ^"XFE Homepage".
  4. ^"Installation instructions".fox-toolkit.org. Retrieved2021-08-04.
  5. ^"Abaqus FEA / Version 6.7 Open Source Programs". Archived fromthe original on 2007-11-09. Retrieved2007-12-09.
  6. ^"Acronis licensing information". Retrieved2007-12-08.

External links

[edit]


Low-level platform-specific
OnAmigaOS
OnClassic Mac OS,macOS
OnWindows
OnUnix,
underX11
OnBeOS,Haiku
OnAndroid
CLI
Low Level Cross-platform
CLI
C
Java
High-level, platform-specific
OnAmigaOS
OnClassic Mac OS,macOS
Object Pascal
Objective-C,Swift
C++
CLI
OnWindows
CLI
C++
Object Pascal
OnUnix,
underX11
OnAndroid
High-level, cross-platform
C
C++
Objective-C
CLI
Adobe Flash
Go
Haskell
Java
JavaScript
Common Lisp
Lua
Pascal
Object Pascal
Perl
PHP
Python
Ruby
Tcl
XML
shell
Dart
Retrieved from "https://en.wikipedia.org/w/index.php?title=Fox_toolkit&oldid=1268124040"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp