Wydanie zestawu narzędzi graficznych wxWidgets 3.2.0

9 lat po wydaniu gałęzi 3.0 zaprezentowano pierwsze wydanie nowej stabilnej gałęzi wieloplatformowego zestawu narzędzi wxWidgets 3.2.0, który umożliwia tworzenie interfejsów graficznych dla platform Linux, Windows, macOS, UNIX i mobilnych. W porównaniu do gałęzi 3.0 istnieje szereg niezgodności na poziomie API. Zestaw narzędzi jest napisany w języku C++ i jest rozpowszechniany w ramach bezpłatnej licencji bibliotecznej wxWindows, zatwierdzonej przez Open Source Foundation i organizację OSI. Licencja oparta jest na licencji LGPL i wyróżnia się zezwoleniem na używanie własnych warunków do rozpowszechniania utworów pochodnych w formie binarnej.

Oprócz tworzenia programów w C++, wxWidgets zapewnia powiązania dla najpopularniejszych języków programowania, w tym PHP, Python, Perl i Ruby. W przeciwieństwie do innych zestawów narzędzi, wxWidgets zapewnia aplikacji prawdziwie natywny wygląd i działanie dla systemu docelowego, korzystając z systemowych interfejsów API, a nie naśladując GUI.

Główne innowacje:

  • Zaimplementowano nowy eksperymentalny port wxQt, umożliwiający pracę wxWidgets na frameworku Qt.
  • Port wxGTK zapewnia pełną obsługę protokołu Wayland.
  • Dodano obsługę ekranów o dużej gęstości pikseli (High DPI). Dodano możliwość przypisywania różnych DPI dla różnych monitorów i dynamicznej zmiany DPI. Zaproponowano nowe API wxBitmapBundle, które umożliwia manipulowanie kilkoma wersjami obrazu bitmapowego, prezentowanymi w różnych rozdzielczościach, jako jedną całością.
  • Zaproponowano nowy system kompilacji oparty na CMake. Do systemu asemblera dodano obsługę nowych kompilatorów (m.in. MSVS 2022, g++ 12 i clang 14) oraz systemów operacyjnych.
  • Przeprojektowano obsługę OpenGL, poprawiono obsługę nowych wersji OpenGL (3.2+).
  • Dodano obsługę kompresji LZMA i plików ZIP 64.
  • Udoskonalono ochronę w czasie kompilacji dzięki możliwości wyłączenia niebezpiecznych, niejawnych konwersji pomiędzy ciągami znaków typu wxString i „char*”.
  • Dodano obsługę zdarzeń dla gestów kontrolnych odtwarzanych za pomocą myszy.
  • Klasy wxFont i wxGraphicsContext mają teraz możliwość podawania wartości niecałkowitych podczas definiowania rozmiarów czcionek i szerokości pisaków.
  • Klasa wxStaticBox implementuje możliwość przypisywania dowolnych etykiet do okien.
  • Interfejs API wxWebRequest obsługuje teraz protokoły HTTPS i HTTP/2.
  • Klasa wxGrid dodała obsługę zamrażania kolumn i wierszy.
  • Wprowadzono nowe klasy: wxActivityIndicator, wxAddRemoveCtrl, wxAppProgressIndicator, wxBitmapBundle, wxNativeWindow, wxPersistentComboBox, wxPowerResourceBlocker, wxSecretStore, wxTempFFile i wxUILocale.
  • Nowe procedury obsługi XRC zostały zaimplementowane dla wszystkich nowych klas i niektórych istniejących klas.
  • Wprowadzono nowe metody: 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().
  • Wprowadzono znaczące ulepszenia w klasach wxBusyInfo, wxDataViewCtrl, wxNotificationMessage, wxStaticBox, wxStyledTextCtrl i wxUIActionSimulator.
  • Poprawiono obsługę platformy macOS, w tym możliwość korzystania z ciemnego motywu i dodano obsługę urządzeń z procesorami ARM.
  • Wprowadzono ulepszenia w celu obsługi standardu C++ 11. Dodano obsługę budowania za pomocą kompilatorów C++ 20.
  • Wszystkie dołączone biblioteki innych firm zostały zaktualizowane. Dodano obsługę WebKit 2 i GStreamer 1.7.

Źródło: opennet.ru

Dodaj komentarz