Articulo de referencia

Kit de herramientas Fox

{{Cite web|title=FOX Library License|url=http://fox-toolkit.org/license.html|access-date=2024-09-01|website=fox-toolkit.org}} "},"website":{"wt":"{{URL|http://fox-toolkit.org/}}...

El kit de herramientas FOX es un conjunto de widgets de código abierto y multiplataforma , es decir, una biblioteca de elementos básicos para construir una interfaz gráfica de usuario (GUI). FOX significa Free Objects for X (Objetos Libres para X).

Presenta un tema integrado al estilo de Windows 95, disponible tanto para Microsoft Windows como para el Sistema X Window (que se utiliza en muchos sistemas operativos UNIX y similares ). [ 2 ]

El conjunto de herramientas FOX se ha publicado bajo la Licencia Pública General Reducida de GNU . Su desarrollo comenzó en 1997 a cargo de Jeroen van der Zijp, mientras trabajaba en CFDRC. Desde entonces, Jeroen van der Zijp mantiene la biblioteca principal y las aplicaciones de prueba, con la ayuda de la comunidad de usuarios.

El conjunto de herramientas FOX está escrito en C++ , con enlaces disponibles para Python , Ruby y Eiffel . La distribución del código fuente de FOX permite la compilación con diversos compiladores de C++ (tanto comerciales como gratuitos).

Compatibilidad multiplataforma

Kit de herramientas FOX

FOX se diferencia de otros conjuntos de herramientas multiplataforma de la siguiente manera:

  • Tk es un conjunto de herramientas multiplataforma, pero no incluye todos los widgets que FOX considera deseables.
  • Hasta la versión 4.5, Qt tenía un modelo de licenciamiento que requería una licencia comercial en algunos casos en los que FOX no la exigía.
  • wxWidgets promueve el uso de widgets nativos en cada plataforma compatible.
  • FLTK es una biblioteca rápida y de bajo consumo de recursos que permite el desarrollo rápido de aplicaciones y requiere menos código para su uso, pero carece de widgets avanzados.

Todos estos conjuntos de herramientas ofrecen cierto grado de soporte para la programación nativa en las plataformas clásicas de Mac OS y/o macOS , algo que FOX actualmente no admite.

FOX utiliza una técnica similar al estilo Java Swing para mostrar una interfaz gráfica de usuario en pantalla, empleando únicamente las primitivas gráficas disponibles en la plataforma, a diferencia del enfoque original de Java AWT , que utilizaba widgets nativos. Esto significa que las aplicaciones tendrán una apariencia similar en todas las plataformas. En teoría, portar FOX a una nueva plataforma debería ser más sencillo que implementar la compatibilidad con widgets nativos.

Como desventaja, esto suele significar que las aplicaciones FOX tendrán una apariencia y un funcionamiento diferentes a las aplicaciones nativas de esas plataformas, lo que algunos usuarios pueden encontrar confuso. Además, ciertas características de la plataforma nativa pueden no estar disponibles de inmediato, como la compatibilidad integral con la impresión o el manejo de entrada internacionalizado, ya que deberán reimplementarse de forma multiplataforma antes de poder usarse en FOX. Algunas aplicaciones, como Xfe File Manager , permiten cambiar el esquema de color para integrarse mejor con los colores del tema del sistema. [ 3 ] En Arch Linux , está disponible una aplicación llamada FOX Control Panel para cambiar el esquema de color de todas las aplicaciones FOX en todo el sistema. Viene incluida con el paquete principal de FOX Toolkit.

Sistema de mensajería

FOX ofrece un sistema de mensajería bidireccional transparente. Cada widget envía su mensaje a un destinatario específico. Cada mensaje se compone de un selector que identifica su tipo y un identificador único proporcionado por la enumeración del widget. La ventaja es que cada widget puede llamar al método de un widget destinatario de forma transparente, incluso si el método no existe. A la inversa, en la implementación del manejador de mensajes individual, dado que se conoce al remitente, el destinatario también puede enviar un mensaje al remitente. Esta es una característica particularmente importante en el software orientado a componentes, donde los componentes pueden ser desarrollados por diferentes personas o incluso por diferentes organizaciones.

El sistema de mensajería FOX simplifica la estrategia de actualización de la interfaz gráfica de usuario (GUI): durante la actualización de un widget, este puede solicitar a sus destinos que lo actualicen. Esto significa que un mensaje de comando no tiene que actualizar explícitamente ningún widget, como suele ser habitual. Si una aplicación implementa N mensajes de comando, cada uno actualizando M widgets, entonces se deben ejecutar M*N actualizaciones y, como máximo, M*N mensajes. Por otro lado, si los widgets solicitan la actualización, solo se implementan N mensajes de comando y, como máximo, M mensajes de actualización. Esta estrategia separa la actualización de la GUI de los cambios de datos, convirtiendo la GUI en un reflejo en tiempo real de las estructuras de datos subyacentes.

Interiores

Dependencias

Internamente depende de las bibliotecas multiplataforma, que incluyen las siguientes: [ 4 ]

Hola Mundo

El siguiente ejemplo crea una aplicación FOX y un cuadro de diálogo con un botón en C++:

#incluir "fx.h"int main ( int argc , char * argv [ ] ) { FXApp application ( "Hola" , " FoxTest" ); application.init ( argc , argv ); FXMainWindow * main = new FXMainWindow ( & application , "Hola" , NULL , NULL , DECOR_ALL ); new FXButton ( main , "&¡ Hola , mundo!" , NULL , & application , FXApp :: ID_QUIT ); application.create ( ); main- > show ( PLACEMENT_SCREEN ); return application.run ( ) ; }

También es posible crear diálogos con Python 2.2 y Ruby :

FXPy

#!/usr/bin/env python3from FXPy.fox import * import sysdef runme (): app = FXApp ( " Hola" , " Prueba" ) app.init ( sys.argv ) main = FXMainWindow ( app , "Hola " , None , None , DECOR_ALL ) button = FXButton ( main , " & ¡ Hola , mundo ! " , None , app , FXApp.ID_QUIT ) app.create ( ) main.show ( PLACEMENT_SCREEN ) app.run ( )if __name__ == "__main__" : runme ()

FXRubí

require 'fox16' include Fox application = 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 basado en FOX

  • CFD-View: un sistema de postprocesamiento desarrollado por ESI Group.
  • Abaqus/CAE: el preprocesador y postprocesador del paquete de elementos finitos Abaqus [ 5 ]
  • bdStudio: una herramienta de visualización precisa y fácil de usar para simulaciones aeroespaciales complejas en tiempo real, desarrollada por SAIC.
  • Arquitectura de prueba modular de Intel (IMTA)
  • PVRShaman: un estudio gratuito de desarrollo de sombreadores de Imagination Technologies.
  • LinkCAD: una aplicación comercial de conversión de formatos para diversos formatos CAD.
  • TMP Vision y SLIM: diseñados para satisfacer las necesidades de modelos FEA complejos.
  • Kerkythea : un sistema de renderizado multimétodo
  • Acronis True Image y otros productos de Acronis [ 6 ]
  • Goggles Music Manager: un gestor y reproductor de colecciones de música.
  • xfe : un gestor de archivos gráfico para el sistema X Window.
  • TnFOX: una bifurcación de la biblioteca FOX.
  • SUMO (Simulación de Movilidad Urbana): un simulador de tráfico con un editor de interfaz gráfica de usuario.

Véase también

  • FLTK : un kit de herramientas de widgets ligero, multiplataforma y no nativo.
  • fpGUI : un conjunto de herramientas GUI multiplataforma con un diseñador visual de formularios y un lector de documentos de ayuda personalizado.
  • GTK : un conjunto de herramientas para widgets utilizado por las aplicaciones GNOME.
  • gtkmm : la interfaz oficial de C++ para GTK
  • IUP : un conjunto de herramientas multiplataforma para la creación de interfaces gráficas de usuario nativas.
  • Jugo
  • Qt : un conjunto de herramientas para widgets utilizado por KDE.
  • Ultimate++
  • Kit de herramientas de widgets
  • wxWidgets : una biblioteca de widgets de código abierto multiplataforma en C++ que encapsula los kits de herramientas de widgets nativos.
  • Lista de kits de herramientas de widgets

Referencias

  1. "Licencia de la biblioteca FOX" . fox-toolkit.org . Consultado el 1 de septiembre de 2024 .
  2. FOX Toolkit , Kits de herramientas GUI para el sistema X Window, por Leslie Polzer, 27 de julio de 2003, freshmeat.net
  3. "Página principal de XFE" .
  4. "Instrucciones de instalación" . fox-toolkit.org . Consultado el 4 de agosto de 2021 .
  5. "Abaqus FEA / Programas de código abierto versión 6.7" . Archivado del original el 9 de noviembre de 2007. Consultado el 9 de diciembre de 2007 .
  6. "Información sobre licencias de Acronis" . Consultado el 8 de diciembre de 2007 .
  • Sitio web oficialEdita esto en Wikidata