Sortie de la boîte à outils graphique wxWidgets 3.2.0

9 ans après la sortie de la branche 3.0, la première version d'une nouvelle branche stable de la boîte à outils multiplateforme wxWidgets 3.2.0 a été présentée, qui permet de créer des interfaces graphiques pour Linux, Windows, macOS, UNIX et les plateformes mobiles. Par rapport à la branche 3.0, il existe un certain nombre d'incompatibilités au niveau des API. La boîte à outils est écrite en C++ et est distribuée sous la licence gratuite de bibliothèque wxWindows, approuvée par l'Open Source Foundation et l'organisation OSI. La licence est basée sur la LGPL et se distingue par l'autorisation d'utiliser ses propres termes pour distribuer des œuvres dérivées sous forme binaire.

En plus de développer des programmes en C++, wxWidgets fournit des liaisons pour les langages de programmation les plus populaires, notamment PHP, Python, Perl et Ruby. Contrairement à d'autres boîtes à outils, wxWidgets fournit une application avec une apparence véritablement native pour le système cible en utilisant les API système plutôt qu'en imitant l'interface graphique.

Principales nouveautés :

  • Un nouveau port expérimental de wxQt a été implémenté, permettant à wxWidgets de fonctionner au-dessus du framework Qt.
  • Le port wxGTK fournit une prise en charge complète du protocole Wayland.
  • Ajout de la prise en charge des écrans à haute densité de pixels (High DPI). Ajout de la possibilité d'attribuer différents DPI pour différents moniteurs et de modifier dynamiquement le DPI. Une nouvelle API wxBitmapBundle a été proposée, qui permet de manipuler plusieurs versions d'une image bitmap, présentées dans différentes résolutions, comme un tout.
  • Un nouveau système de build basé sur CMake a été proposé. La prise en charge de nouveaux compilateurs (notamment MSVS 2022, g++ 12 et clang 14) et systèmes d'exploitation a été ajoutée au système d'assemblage.
  • Le support d'OpenGL a été repensé, l'utilisation des nouvelles versions d'OpenGL (3.2+) a été améliorée.
  • Ajout de la prise en charge de la compression LZMA et des fichiers ZIP 64.
  • La protection au moment de la compilation a été améliorée, grâce à la possibilité de désactiver les conversions implicites dangereuses entre les chaînes de types wxString et « char* ».
  • Ajout de la prise en charge des événements pour les gestes de contrôle joués à l'aide de la souris.
  • Les classes wxFont et wxGraphicsContext ont désormais la possibilité de spécifier des valeurs non entières lors de la définition des tailles de police et des largeurs de stylo.
  • La classe wxStaticBox implémente la possibilité d'attribuer des étiquettes arbitraires aux fenêtres.
  • L'API wxWebRequest prend désormais en charge HTTPS et HTTP/2.
  • La classe wxGrid a ajouté la prise en charge du gel des colonnes et des lignes.
  • Nouvelles classes introduites : wxActivityIndicator, wxAddRemoveCtrl, wxAppProgressIndicator, wxBitmapBundle, wxNativeWindow, wxPersistentComboBox, wxPowerResourceBlocker, wxSecretStore, wxTempFFile et wxUILocale.
  • De nouveaux gestionnaires XRC ont été implémentés pour toutes les nouvelles classes et certaines classes existantes.
  • Nouvelles méthodes introduites : wxDataViewToggleRenderer::ShowAsRadio(), wxDateTime::GetWeekBasedYear(), wxDisplay::GetPPI(), wxGrid::SetCornerLabelValue(), wxHtmlEasyPrinting::SetPromptMode(), wxJoystickEvent::GetButtonOrdinal(), wxListBox::Get TopItem (), wxProcess :: Activate (), wxTextEntry :: ForceUpper (), wxStandardPaths :: GetUserDir (), wxToolbook :: EnablePage (), wxUIActionSimulator :: Select ().
  • Des améliorations significatives ont été apportées aux classes wxBusyInfo, wxDataViewCtrl, wxNotificationMessage, wxStaticBox, wxStyledTextCtrl et wxUIActionSimulator.
  • La prise en charge de la plate-forme macOS a été améliorée, notamment la possibilité d'utiliser un thème sombre et la prise en charge supplémentaire des appareils exécutant des processeurs ARM.
  • Des améliorations ont été apportées pour prendre en charge la norme C++11. Ajout de la prise en charge de la construction avec les compilateurs C++20.
  • Toutes les bibliothèques tierces incluses ont été mises à jour. Ajout de la prise en charge de WebKit 2 et GStreamer 1.7.

Source: opennet.ru

Ajouter un commentaire