FOX steht für Free Objects for X und ist ein Open-Source-Programm, das in C ++ implementiert wurde und von Grund auf für die Erstellung von grafischen Benutzeroberflächen (GUIs) für Softwareprojekte entwickelt wurde.
Es wurde für Linux entwickelt, aber der Umfang dieses Projekts ist im Laufe der Zeit etwas ehrgeiziger geworden, da es nun darauf abzielt, vollkommen plattformunabhängig zu sein. Daher sind die mit der FOX-Bibliothek geschriebenen Programme nur mit einer Vielzahl von Plattformen kompatibel.
Funktionen auf einen Blick
Zu den wichtigsten Merkmalen gehören einfache Entwicklung, Orthogonalität, Konsistenz, Prägnanz, moderne GUI-Funktionen, Symbole und Bilder, Tooltips, Hilfe zur Statuszeile, Floatable-Toolbars, Tab-Books sowie Tree-Listen.
MDI-Widgets (Multiple Document Interface), 3D-OpenGL-Widgets, Drag & Drop, Auswahl, Zwischenablage-Unterstützung, Timer, Leerlaufverarbeitung, WYSIWYG-Rendering, GUI-Aktualisierung, ziel- / nachrichtenbasiert.
Das Toolkit wird von jedem Linux-Kernel-basierten Betriebssystem unterstützt. Es wurde erfolgreich mit Computern getestet, die entweder die 32-Bit- oder die 64-Bit-Befehlssatzarchitektur unterstützen.
Erste Schritte mit FOX
FOX kann einfach über den integrierten Paketmanager auf jeder Distribution von GNU / Linux aus den Haupt-Software-Repositories installiert werden. Es kann auch wie jedes andere Programm mit dem Quellpaket installiert werden.
Laden Sie die neueste stabile Version von Softoware herunter, indem Sie die dedizierte Download-Schaltfläche oben verwenden, speichern Sie das Archiv in Ihrem Home-Verzeichnis und extrahieren Sie dessen Inhalt mit einem beliebigen Archiv-Manager-Dienstprogramm.
Öffnen Sie eine Terminal-App, navigieren Sie zu dem Speicherort, an dem Sie die Archivdatei extrahiert haben (z. B. cd /home/softoware/fox-1.6.49), und führen Sie das & lsquo; ./ configure & amp; & amp ;; machen & rsquo; Befehl zum Konfigurieren und Kompilieren des Programms.
Installieren Sie FOX systemweit, indem Sie das & lsquo; make install & rsquo; Befehl als root oder das & lsquo; sudo make install & rsquo; Befehl als privilegierter Benutzer. Führen Sie nach der Installation den Befehl "fox --help & rsquo" aus. oder & lsquo; Mann Fuchs & rsquo; Befehl zum Erlernen der Verwendung des Toolkits zum Erstellen von grafischen Benutzeroberflächen für Ihre Softwareprojekte.
Was ist neu in dieser Version:
- Geschaltetes FXDir, um readdir () anstelle von jetzt-deprecated readdir_r () zu verwenden. Angeblich jetzt threadsicher.
- Einige interne Optimierungen in FXRex.
- In FXText gibt die doppelte Zeile den Cursor an der richtigen Stelle zurück, hebt jedoch die neue Zeile hervor (wenn Sie eine zu viele kopieren, können Sie sie sofort wieder löschen).
- Fügen Sie einige Hilfemeldungen für den PathFinder-Dialog Einstellungen hinzu.
- Fügen Sie columnFromPos () - und posFromColumn () - Funktionen in FXText hinzu.
- Fehler behoben, bei dem FXText die Breite nicht neu berechnet, wenn nur eine einzelne Zeile vorhanden ist (wurde kürzlich eingeführt).
- FXRex Reverse-Algorithmus funktionierte nicht im Verbatim-Modus; es tut jetzt.
- Einige Einschränkungen des FXRex Regex-Umkehralgorithmus wurden entfernt.
- Adie Open-Selected Rework hatte einige Bugs eingeführt; ist jetzt behoben.
- Neue praktische APIs zum Math-Namespace hinzugefügt.
- Zu Vektorklassen neue APIs hinzugefügt.
- FXText block select, Blockkopie in die Zwischenablage und block delete jetzt funktioniert.
- FXText shiftText () hatte einen kleinen Fehler bei der Verschiebung von Text mit Tabs; Dies wurde auf eine sehr ausgeklügelte Weise behandelt, eine interne Routine, die auch für Blockoperationen benötigt wird.
Was ist neu in der Version:
- Wesentliche Änderungen in der Engine für reguläre Ausdrücke. Neue API amatch () für verankerte Übereinstimmung und neue API-Suche, die match () ersetzt. Bessere Reihenfolge der Parameter und Verschieben einiger Flags von der Laufzeit zur Kompilierzeit.
- Interna von FXRex sind jetzt bereit für UTF8-Abgleich; Der Parsing-Teil muss jedoch folgen, bevor diese neuen Funktionen verwendet werden können.
- FXRex :: substitute () interpretiert jetzt die üblichen Escape-Sequenzen beim Erstellen eines Ersatzmusters aus Übereinstimmungen mit regulären Ausdrücken.
- Beschleunigung in FXText getByte (), getChar (), etc. durch Einführung der verzweigungsfreien Behandlung von Gapped-Buffer-Zugriffen.
- Die verdrahteten Such- und Ersetzungsdialoge wurden aus Ftexttext in den Adie-Texteditor verschoben. Dies ist Teil des FXText Widget-Slim-Down-Programms.
- Adie Texteditor suchen und ersetzen Verbesserungen. Im Grunde stream-Linien Maus-freie Verwendbarkeit.
- Adie inkrementelle Suchleiste erscheint jetzt am unteren Rand des Fensters. Dies ist weniger störend, da der Text nicht "heruntergedrückt" wird. wenn diese Werkzeugleiste erscheint.
- Die FXHash-Routine find () gibt jetzt den Slot-Index oder -1 zurück, wenn sie nicht gefunden wird. Wenn Sie FXHash verwenden, sollten Sie beachten, dass das Ersetzen von find () durch at () Ihren Code auf dem neuen System reparieren wird. Dies geschah auf der Grundlage einer Anfrage von einem Benutzer, der bemerkte, dass sich die find () API in FXHash anders als die find () in FXDictionary. verhielt
- Streichen Sie den führenden und den nachgestellten Platz von der Anzeige in Adies Lesezeichenmenü.
- Parallele Konstanten-Deklaration für FXParallelFor hinzugefügt.
- Wechseln Sie zu FXTText findText () API. Die neue Version kann nicht nur Vorwärts- und Rückwärtssuche, sondern auch verankerte Übereinstimmung durchführen. Die verankerte Übereinstimmung wird ausgeführt, wenn weder die Flags SEARCH_FORWARD noch SEARCH_BACKWARD übergeben werden.
- Der Dialog "Gehe zu Linie" wurde von FXText in den richtigen Adie-Texteditor (ebenfalls ein Teil des FXText-Widget-Slimdown-Programms) verschoben.
- Adie-Ersetzen-Dialog hat nun die Schaltfläche Suchen.
- Adie Replace Dialog Replace-Funktion prüft nun zuerst, ob der markierte Text der gesuchte Text ist und sucht nur weiter, wenn dies nicht der Fall ist. Diese Logik wird daher die bereits hervorgehobene Auswahl ersetzen und es weniger wahrscheinlich machen, dass Sie versehentlich "übersprungen" werden. das erste Element in einer Suchen-und-Ersetzen-Sitzung.
- Außerdem bleiben die Dialogfelder "Suchen" und "Ersetzen" so lange geöffnet, bis sie explizit geschlossen werden. Es war oft so, dass die erste Suche nicht immer die gewünschte war, und man musste den Dialog ein zweites Mal ansprechen. Beachten Sie, dass Escape den Dialog verbirgt, so dass für "Hauptbenutzer" keine Mausinteraktion erforderlich ist.
- Der Dialog zum Suchen und Ersetzen kann jetzt nur innerhalb des ausgewählten Textes ersetzt werden.
- Einige Sprachmuster-Updates in der Adie-Syntax-Farbdatei.
- CMake Farbmuster zur Syntaxdatei hinzugefügt.
- Zu FXRex wurden neue Match-Modi hinzugefügt: Exact und NotEmpty. Der Exact-Modus ist nur erfolgreich, wenn eine erfolgreiche Übereinstimmung die gesamte Zeichenfolge verbraucht. Der NotEmpty-Modus ist nur erfolgreich, wenn die Übereinstimmung mindestens ein Zeichen enthält. Beachten Sie, dass dies Kompilierzeit-Flags sind, die durch spezielle Annahmen in der Matching-Engine implementiert werden. Daher wird die Engine möglicherweise frühere Spiele zurückverfolgen, um andere Möglichkeiten auszuprobieren!
- Anpassung der Engine für reguläre Ausdrücke durch Anpassung des Matcher-Setups intern beschleunigt; Dies betrifft insbesondere search ().
- Fehler in FXHash :: at (). behoben
- Die Rekursion in der einfachen Possessiv-Übereinstimmung in FXRex wurde eliminiert.
- Hinzugefügte nützliche isNull (), isBool () usw. APIs zu FXVariant.
- Auswahl-ändernde APIs wurden in FXText virtualisiert, um Unterklassen zu erstellen.
Was ist neu in Version 1.7.44:
- Aktualisierte JavaScript-Objektnotation FXJSON I / O-Klasse: - Die Grenzen für die Token-Größe wurden sowohl bei Eingabe- als auch bei Ausgabeoperationen entfernt (früher auf Puffergröße begrenzt).
- Kleinere Änderungen an FXVariant: - Einige fehlende APIs wurden hinzugefügt, die zu Char () als unbrauchbar entfernt wurden. Hinzugefügt hat (), um zu bestimmen, ob der Schlüssel vorhanden ist, falls FXVariant eine Map ist.
- Vereinfachte FXFile und andere FXIO-Unterklassen, um redundante Implementierungen zu entfernen.
- FXIOBuffer wurde hinzugefügt, ein FXIO-Gerät, das zu / von einem Speicherpuffer serialisiert.
- FXRanged, FXRangef: Überprüfen Sie jetzt intersect () etwas anders.
- Ray to FXSpheref, FXSpered-Schnitttest wurde geändert, um den Ursprung innerhalb der Sphären-Möglichkeit zu ermöglichen.
- Kleiner Fehler in wc2nc () behoben.
- Möglicher Pufferüberlauf in FXDir behoben.
- Hinzugefügt Klasse FXStringMap.
- Einige APIs in FXDictionary geändert. Erase () API hinzugefügt, um das Entfernen des bereits lokalisierten Slots zu ermöglichen. Dies ist schneller und wird für eine erfolgreiche Unterklassenbildung benötigt.
- FXStat Problem unter Windows behoben.
Was ist neu in Version 1.6.49:
- Überprüfen Sie den Index außerhalb der Grenzen in FXTabBook :: setCurrent ().
Was ist neu in Version 1.7.33:
- Problem mit Windows7 OpenGL-Pixelformat unterstützende Komposition wird schwerer gewichtet und wählt daher bevorzugt den Kompositionsmodus. Dies macht es weniger wahrscheinlich, dass das Visuelle mit Nicht-Aero-fähigen Pixelformaten übereinstimmt.
- Problem beim Speichern / Laden von TIFF-Bildern.
- Quaternion arc () für Vektoren, die 180 Grad voneinander entfernt sind, gefixt.
- Einige Verbesserungen in FXAtomic: optimaler Code für Nicht-PIC-Kompilierungen; Überprüfen Sie auch auf PIE (positionsunabhängige ausführbare Datei).
- Problem in FXRex bezüglich Nicht-ASCII-Zeichen behoben.
- Reparierte einige fehlerhafte Syntaxmuster in der Adie.stx-Syntaxdatei.
- SSE-ified lerp () API wurde zu Vektorklassen hinzugefügt.
- In FXMat4d wurde das SSE-Problem bei nicht ausgerichteten Speichern behoben. zeigte sich auf 32-Bit-Systemen.
- Setjmp () / longjmp () Problem behoben in fxpngio.cpp.
- Operator FXbool in FXAutoPtr und FXRefPtr interferierte mit Vergleichsoperatoren; entfernt es.
- APIs zu FXMat4-Klassen hinzugefügt.
- Der FXExpression-Klasse wurde eine Serialisierungsfunktion hinzugefügt.
Was ist neu in Version 1.7.30:
- Stark erweiterte Code-Dokumentation für das FXText-Widget.
- Verbesserter Syntax Parser für Adie Texteditor.
- FXFileList gibt jetzt korrekte Rückrufe aus, wenn Dateien oder Verzeichnisse auf der Festplatte geändert werden, während FXFileList sie anzeigt.
- FXFileSelector versetzt FXFileList in den ICONLIST_SINGLESELECT-Modus, wenn der SELECTFILE_ANY-Modus aktiviert ist. Dies ist so, wie es sein sollte, da der Benutzer einen Dateinamen eingeben kann, der noch nicht existiert.
- Mehrere unnötige Verzeichnis-Scans wurden eliminiert, wenn FXFileDialog zum ersten Mal erscheint. Dies macht den FXFileDialog viel schneller als zuvor.
- Python-Syntaxregeln wurden in Adie.stx aktualisiert.
- Farbregeln für Merge-Konflikte für C, C ++ und einige andere Sprachen zu Adie.stx hinzugefügt.
- Behobene Fehler in Adie.stx wurden jetzt durch einen strikteren Syntax-Parser gekennzeichnet.
- Nichtrekursives forceRefresh () in FXWindow.
- FXIconList generiert SEL_DELETED, SEL_INSERTED anstelle von SEL_REPLACED. Diese Rückrufe sind nützlicher.
- PathFinder zeigt nützliche Informationen in seiner Statuszeile an.
- Kann jetzt die Berechtigungen mehrerer Dateien im PathFinder-Eigenschaftenfenster ändern.
- PathFinder kann jetzt Dateizuordnungen und Symbolzuweisungen genau wie ControlPanel ändern. Vorläufig wirken sich diese nur im PathFinder selbst aus, aber das sollte sich in Zukunft ändern.
- Typo in FXComplexd behoben.
- Workarounds für die Festplattenstatistik für MacOSX und andere Nicht-Linux-Unices.
- Fehler in FXMat3d SSE2-Code behoben. War mit ausgerichteten Zugriff.
- FXFileList- und FXDirList-Elemente verfolgen die Modus-Bits. Dies vereinfacht die Dinge tatsächlich ein wenig.
- Unbrauchbare Verzeichnisrescan werden eliminiert, wenn die Sortierfunktion in FXFilelist und FXDirList geändert wurde.
- Geben Sie SEL_CHANGED aus, wenn das aktuelle Element in FXIconList, FXList usw. ersetzt wird.
- Adie erinnert sich, wenn die Syntax der Datei ohne Erweiterung von Hand geändert wurde; Wenn die gleiche Datei das nächste Mal geladen wird, wird die Syntax ordnungsgemäß wiederhergestellt.
- Erstmaliger Fehler in ControlPanel behoben; selten, Problem tritt nur auf, wenn ControlPanel zum ersten Mal ausgeführt wird und auf der Festplatte noch keine Registrierung vorhanden ist.
- Die Option wurde dem PathFinder hinzugefügt, um das Bild bei Verwendung des internen Bildbetrachters auf den verfügbaren Platz zu skalieren.
- Herstellerschlüssel im FXApp-Konstruktor wird jetzt standardmäßig auf FXString :: null gesetzt. Dies ist das üblichere Nutzungsmuster.
- Option, die dem PathFinder hinzugefügt wurde, um den Dateiartikelbereich zu steuern und anzuzeigen, ob Spalten automatisch angezeigt werden oder nicht.
- Fett, durchgestrichen, Stil-Flags werden jetzt in Adie gespeichert.
- Neue Syntaxregeloption in Adie.stx: all-matching & quot; background & quot; Regel. Wenn sie verwendet werden, können Sie alle Texte, die nicht mit den regulären Regeln übereinstimmen, als Override für die vom Adie-Editor verwendeten Standardfarben verwenden.
Was ist neu in Version 1.7.25:
- Ändern Sie in configure.ac, um die Eigenschaftsheaderdateien zu überprüfen mit modifizierten Compiler-Flags; Header-Dateien können nicht mit Standardoptionen kompiliert werden.
- Aktualisierte Borland C ++ Makefiles.
- Aktualisieren Sie Visual Studio 6-Projektdateien mit fehlenden Headern.
- Kleine Korrekturen in FXAutoPtr.h.
- Ändern Sie einige inline-APIs von FXProgressDialog in non-inline.
Kommentare nicht gefunden