9 anos após o lançamento do branch 3.0, foi apresentado o primeiro lançamento de um novo branch estável do kit de ferramentas multiplataforma wxWidgets 3.2.0, que permite criar interfaces gráficas para Linux, Windows, macOS, UNIX e plataformas móveis. Em comparação com a versão 3.0, existem várias incompatibilidades no nível da API. O kit de ferramentas é escrito em C++ e distribuído sob a licença gratuita da biblioteca wxWindows, aprovada pela Open Source Foundation e pela organização OSI. A licença é baseada na LGPL e se distingue pela permissão para usar seus próprios termos para distribuir trabalhos derivados em formato binário.
Além de desenvolver programas em C++, wxWidgets fornece ligações para as linguagens de programação mais populares, incluindo PHP, Python, Perl e Ruby. Ao contrário de outros kits de ferramentas, wxWidgets fornece um aplicativo com uma aparência verdadeiramente nativa para o sistema de destino usando APIs do sistema em vez de imitar a GUI.
Principais inovações:
- Uma nova versão experimental do wxQt foi implementada, permitindo que o wxWidgets funcione sobre o framework Qt.
- A porta wxGTK fornece suporte completo para o protocolo Wayland.
- Adicionado suporte para telas com alta densidade de pixels (High DPI). Adicionada a capacidade de atribuir diferentes DPIs para diferentes monitores e alterar dinamicamente o DPI. Foi proposta uma nova API wxBitmapBundle, que permite manipular várias versões de uma imagem bitmap, apresentada em diferentes resoluções, como um todo.
- Um novo sistema de construção baseado em CMake foi proposto. Suporte para novos compiladores (incluindo MSVS 2022, g++ 12 e clang 14) e sistemas operacionais foi adicionado ao sistema assembly.
- O suporte OpenGL foi redesenhado, o uso de novas versões OpenGL (3.2+) foi melhorado.
- Adicionado suporte para compactação LZMA e arquivos ZIP 64.
- A proteção em tempo de compilação foi aprimorada, graças à capacidade de desabilitar conversões implícitas perigosas entre strings dos tipos wxString e “char*”.
- Adicionado suporte a eventos para gestos de controle reproduzidos com o mouse.
- As classes wxFont e wxGraphicsContext agora têm a capacidade de especificar valores não inteiros ao definir tamanhos de fonte e larguras de caneta.
- A classe wxStaticBox implementa a capacidade de atribuir rótulos arbitrários às janelas.
- A API wxWebRequest agora oferece suporte a HTTPS e HTTP/2.
- A classe wxGrid adicionou suporte para congelamento de colunas e linhas.
- Novas classes introduzidas: wxActivityIndicator, wxAddRemoveCtrl, wxAppProgressIndicator, wxBitmapBundle, wxNativeWindow, wxPersistentComboBox, wxPowerResourceBlocker, wxSecretStore, wxTempFFile e wxUILocale.
- Novos manipuladores XRC foram implementados para todas as novas classes e algumas classes existentes.
- Novos métodos introduzidos: 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().
- Melhorias significativas foram feitas nas classes wxBusyInfo, wxDataViewCtrl, wxNotificationMessage, wxStaticBox, wxStyledTextCtrl e wxUIActionSimulator.
- O suporte para a plataforma macOS foi aprimorado, incluindo a capacidade de usar um tema sombrio e suporte adicional para dispositivos que executam processadores ARM.
- Melhorias foram feitas para oferecer suporte ao padrão C++11. Adicionado suporte para compilação com compiladores C++20.
- Todas as bibliotecas de terceiros incluídas foram atualizadas. Adicionado suporte para WebKit 2 e GStreamer 1.7.
Fonte: opennet.ru