Após três anos de desenvolvimento, foi publicado o lançamento do toolkit multiplataforma wxWidgets 3.3.0, que permite criar interfaces gráficas para Linux, Windows, macOS, sistemas compatíveis com UNIX e plataformas móveis. O toolkit é escrito em C++ e é distribuído sob a licença livre wxWindows Library License, aprovada pela Free Software Foundation e pela OSI. A licença é baseada na LGPL e permite estabelecer condições próprias para a distribuição de trabalhos derivados em forma binária.
Além do suporte ao C++, o wxWidgets fornece bindings para muitas linguagens de programação populares, incluindo PHP, Python, Perl, Haskell e Ruby. A interface em aplicativos que utilizam wxWidgets tem a aparência nativa do sistema de destino, graças ao uso de APIs do sistema e não simulações de GUI.
O wxWidgets 3.3.0 é posicionado como uma ramificação para desenvolvedores, onde novas funcionalidades estão sendo desenvolvidas para o próximo lançamento estável 3.4.0. Nesta ramificação, o wxWidgets 3.3.0 é marcado como utilizável em projetos de trabalho — a diferença das ramificações estáveis é que nas versões intermediárias das ramificações para desenvolvedores são permitidas mudanças no ABI e no API que quebram a compatibilidade. As mudanças que quebram a compatibilidade são únicas e, em geral, a ramificação 3.3 é quase totalmente compatível com o wxWidgets 3.2 em nível de API.
Principais novidades:
- Implementado um novo backend wxWebView baseado no motor Chromium, permitindo incorporar em aplicativos funcionalidades para processar e exibir conteúdo web.
- Na classe wxImage, foi adicionada a supportação para imagens no formato WebP.
- No port wxMSW, que fornece funções e controles específicos para Windows, foi adicionada suporte experimental para o modo escuro, funcionando a partir do Windows 10. O suporte para Windows XP e Vista foi descontinuado. O modo de saída com double buffering é usado por padrão, assim como nos ports wxGTK com Wayland e wxOSX.
- Na biblioteca wxAUI, foi implementada a possibilidade de fixar a posição das abas (pin) e criar abas multifilhos.
- Adicionado uma variante da classe wxWebRequest para o processamento de solicitações em modo síncrono (bloqueante).
- Adicionado API para tratamento de eventos de telas sensíveis ao toque e touchpads em baixo nível.
- Na classe wxGrid, foram implementados recursos para pessoas com deficiência.
- Para sistemas parecidos ao UNIX, os eventos wxEVT_POWER_XXX foram implementados para monitorar o estado do consumo de energia.
- No porto wxGTK, diálogos nativos para operações com arquivos são agora utilizados sempre que possível.
- Na classe wxTextCtrl, que forma elementos para exibição e edição de texto, foi adicionada a suporte a texto com formatação (RTF).
- Suporte a animações e cursos para telas com alta densidade de pixels (high DPI) foi adicionado.
- Suporte para compilação utilizando os novos compiladores gcc 15, clang 19 e Xcode 16 foi adicionado.
- Em sistemas parecidos ao UNIX, o diretório para armazenar arquivos de configuração de aplicativos agora é ~/.config/appname.conf em vez de ~/.appname (a carga de arquivos de configuração já existentes foi mantida).
- Os portos wxMotif e wxGTK1 foram removidos.
- A opção de compilação sem o uso de Unicode (wxUSE_UNICODE=0) foi eliminada.
Fonte: opennet.ru
