publication d'un kit d'outils multiplateforme , permettant de créer des interfaces graphiques pour Linux, Windows, macOS, UNIX et les plateformes mobiles. wxWidgets 3.1 est positionné comme une branche pour les développeurs, dans laquelle de nouvelles fonctionnalités sont développées en vue de la prochaine version stable 3.2.0. Comparé à la branche 3.0, il existe plusieurs incompatibilités au niveau API et la constance de l'ABI entre les versions intermédiaires 3.1.x n'est pas garantie.
Le kit d'outils est écrit en C++ et est distribué sous une licence libre , approuvée par la Free Software Foundation et l'organisation OSI. La licence est basée sur la LGPL et se distingue par la possibilité d'utiliser ses propres conditions pour la distribution d'œuvres dérivées sous forme binaire. Outre le développement d'applications en C/C++, wxWidgets fournit des bindings pour la plupart des langages de programmation populaires, y compris pour , , et . Contrairement à d'autres kits d'outils, wxWidgets offre à l'application un aspect et des méthodes d'interaction véritablement natifs pour le système cible, grâce à l'utilisation des API système, et non à la simulation de l'interface graphique.
Les principales nouveautés :
- Nouveau système de construction basé sur CMake. Le système de construction a été mis à jour pour prendre en charge de nouveaux compilateurs (MSVC 2019, g++ 10) et des systèmes d'exploitation (macOS 10.14 et macOS 11 pour ARM);
- Nouveau port expérimental wxQt;
- Support OpenGL retravaillé, améliorant l'utilisation des nouvelles versions d'OpenGL (3.2+);
- Support des événements pour les gestes de contrôle, reproduits à l'aide de la souris ajouté;
- Dans wxFont et wxGraphicsContext, la possibilité de spécifier des valeurs non entières lors de la définition de la taille des polices et de la largeur du stylet a été ajoutée;
- Dans wxStaticBox, la possibilité d'assigner des étiquettes arbitraires aux fenêtres a été mise en œuvre;
- Amélioration de la prise en charge des écrans à haute densité de pixels (High DPI);
- Ajout de la prise en charge de la compression LZMA et des fichiers ZIP 64;
- Nouvelles classes présentées : wxActivityIndicator, wxAddRemoveCtrl,
wxAppProgressIndicator, wxNativeWindow, wxPowerResourceBlocker,
wxSecretStore et wxTempFFile; - Ajout de la prise en charge de la congélation de colonnes et de lignes dans wxGrid;
- Nouvelles méthodes présentées : wxDataViewToggleRenderer::ShowAsRadio(), wxDateTime::
GetWeekBasedYear(), wxDisplay::GetPPI(), wxGrid::SetCornerLabelValue(),
wxHtmlEasyPrinting::SetPromptMode(), wxJoystickEvent::GetButtonOrdinal(),
wxListBox::GetTopItem(), 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 sécurité a été améliorée au stade de la compilation, grâce à la possibilité de désactiver les conversions implicites dangereuses entre les chaînes de types wxString et « char * ».
- Toutes les bibliothèques tierces incluses ont été mises à jour. Prise en charge ajoutée pour WebKit 2 et GStreamer 1.7;
- Des améliorations ont été apportées concernant la prise en charge de la norme C++11. Le support des compilateurs C++20 a été ajouté.
- Un grand nombre de corrections a été apporté dans les ports wxGTK3 et wxOSX/Cocoa.
Source : opennet.ru
