Após 9 anos desde o lançamento da versão 3.0, foi apresentado o primeiro lançamento da nova versão estável do toolkit 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, há uma série de incompatibilidades a nível de API. O toolkit é escrito em C++ e é distribuído sob a licença wxWindows Library License, aprovada pela Free Software Foundation e pela organização OSI. A licença é baseada na LGPL e permite condições próprias para a distribuição de trabalhos derivados em forma binária.
Além do desenvolvimento de programas em C++, o wxWidgets fornece bindings para a maioria das linguagens de programação populares, incluindo PHP, Python, Perl e Ruby. Ao contrário de outros toolkits, o wxWidgets proporciona à aplicação uma aparência verdadeiramente nativa para o sistema de destino e métodos de interação, graças ao uso de APIs de sistema, em vez de simulações de GUI.
Principais novidades:
- Foi implementada uma nova porta experimental wxQt, que permite que o wxWidgets funcione sobre o framework Qt.
- Na porta wxGTK, foi garantido suporte total ao protocolo Wayland.
- Foi adicionada suporte a telas com alta densidade de pixels (High DPI). Agora é possível atribuir diferentes DPIs para diferentes monitores e alterar dinamicamente o DPI. Um novo API wxBitmapBundle foi introduzido, permitindo manipular várias versões de uma imagem rasterizada apresentadas em diferentes resoluções como um todo.
- Foi proposta um novo sistema de build baseado em CMake. O sistema de build agora suporta novos compiladores (incluindo MSVS 2022, g++ 12 e clang 14) e sistemas operacionais.
- O suporte ao OpenGL foi reestruturado, melhorando o uso de novas versões do OpenGL (3.2+).
- Adicionado suporte para compressão LZMA e arquivos ZIP 64.
- A segurança na etapa de compilação foi reforçada, permitindo a desativação de conversões implícitas perigosas entre strings do tipo wxString e 'char*'.
- Adicionada suporte a eventos para gestos de controle, reproduzidos com o mouse.
- Nas classes wxFont e wxGraphicsContext, foi adicionada a possibilidade de especificar valores não inteiros ao definir o tamanho das fontes e a largura da caneta.
- Na classe wxStaticBox, foi implementada a possibilidade de atribuir rótulos arbitrários às janelas.
- Na API wxWebRequest, foi adicionada suporte para HTTPS e HTTP/2.
- A classe wxGrid agora suporta a fixação de colunas e linhas.
- Novas classes foram apresentadas: wxActivityIndicator, wxAddRemoveCtrl, wxAppProgressIndicator, wxBitmapBundle, wxNativeWindow, wxPersistentComboBox, wxPowerResourceBlocker, wxSecretStore, wxTempFFile e wxUILocale.
- Novos manipuladores XRC foram implementados para todas as novas e algumas classes existentes.
- Novos métodos foram introduzidos: wxDataViewToggleRenderer::ShowAsRadio(), wxDateTime::GetWeekBasedYear(), wxDisplay::GetPPI(), wxGrid::SetCornerLabelValue(), wxHtmlEasyPrinting::SetPromptMode(), wxJoystickEvent::GetButtonOrdinal(), wxListBox::GetTopItem(), 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 implementação de um tema escuro e suporte para dispositivos com processadores ARM.
- Foram feitas melhorias relacionadas ao suporte do padrão C++11. Suporte para compiladores C++20 adicionado.
- Todas as bibliotecas de terceiros incluídas foram atualizadas. Suporte ao WebKit 2 e GStreamer 1.7 foi adicionado.
Fonte: opennet.ru
