Novidades para desenvolvedores

As seguintes mudanças são importantes para desenvolvedores que usam a plataforma de desenvolvimento GNOME 2.24. Se você não estiver interessado em mudanças para desenvolvedores, pode pular para a Seção 5 ― Novidades em mobilidade.

4.1 Preparativos para o GLib/GTK+ 3.0

Para começar a preparar os desenvolvedores para o GLib e o GTK+ 3.0, as próximas versões dessas bibliotecas incluirão sinalizadores ("flags") para impor uma compatibilidade mais rígida.

O GLib, o GTK+ e o ATK 3.0 necessitarão que apenas cabeçalhos de primeiro nível (por exemplo, glib.h, gobject.h, gio.h) sejam incluídos nos aplicativos. Essa alteração é importante para permitir que cabeçalhos individuais sejam removidos, renomeados ou rearranjados sem afetar a compatibilidade do código fonte com os aplicativos.

Para permitir que os desenvolvedores testem agora a compatibilidade de seus aplicativos, foram fornecidas novas opções de compilação: G_DISABLE_SINGLE_INCLUDES para o GLib, GTK_DISABLE_SINGLE_INCLUDES para o GTK+, e ATK_DISABLE_SINGLE_INCLUDES para o ATK.

Basta passar essas opções como sinalizadores ("flags") ao compilar seus aplicativos (por exemplo, -DG_DISABLE_SINGLE_INCLUDES) para garantir que seu aplicativo esteja correto.

Mais testes de compatibilidade

O GLib, o GTK+ e as bibliotecas associadas também fornecem outras opções de compilação que você pode usar para testar a compatibilidade com o GTK+ 3.0.

Você pode desabilitar o suporte a símbolos e classes obsoletos que serão removidos na versão 3.0 definindo as seguintes opções ao compilar: ATK_DISABLE_DEPRECATED, PANGO_DISABLE_DEPRECATED, G_DISABLE_DEPRECATED, GDK_PIXBUF_DISABLE_DEPRECATED, GDK_DISABLE_DEPRECATED e GTK_DISABLE_DEPRECATED; respectivamente para ATK, Pango, GLib, GdkPixbuf, GDK e GTK+.

Você pode testar se seus programas usam apenas funções com suporte adequado a sistemas "multihead" (com múltiplos monitores) definindo GDK_MULTIHEAD_SAFE e GTK_MULTIHEAD_SAFE.

4.2 GLib 2.18

O GNOME 2.24 é a primeira versão do GNOME a depender do GLib 2.18.

O GLib 2.18 apresenta melhor suporte a contextos na tradução de strings com as macros C_() e NC_(), além de mais API para o GIO.

Uma lista completa dos novos símbolos está disponível para o GLib e o GIO.

4.3 GTK+ 2.14

O GNOME 2.24 é a primeira versão do GNOME a depender do GTK+ 2.14.

Uma importante alteração nessa novidade do GTK+ é que todos os widgets (componentes) que herdam GtkAdjustment, como botões de seletores numéricos ("spinbuttons") e controles deslizantes ("sliders"), agora impõem suas faixas na forma [menor, menor - tamanho da página], como está na documentação. Se você quiser garantir uma faixa de [menor, maior], defina page_size para 0.

Glade e GTK+ 2.14

Todas as versões do Glade (incluindo 3.4.1) atualmente criam GtkSpinButton, GtkHScale e GtkVScale com um page_size de 10 por padrão. Os desenvolvedores devem verificar quaisquer arquivos Glade que eles tenham criado para garantir que o tamanho da página seja um valor adequado.

Uma nova classe, GtkMountOperation, foi criada para ser usada com o g_volume_mount. GtkMountOperation é uma GMountOperation capaz de exibir se necessário um diálogo de autenticação para o usuário.

Agora é possível abrir arquivos e outros URIs com o aplicativo padrão usando a função gtk_show_uri(), ao invés de depender do libgnome. E o GDK agora fornece o GdkAppLaunchContext, uma implementação do GAppLaunchContext para aplicativos gráficos, incluindo a notificação de inicialização e a prevenção de roubo de foco.

Outra novidade do GTK+ 2.14 é uma API para o GtkFileChooser baseada no GFile, e a capacidade do GtkBuilder de construir fragmentos de uma árvore XML.

Uma lista completa de novos símbolos está disponível para o GTK+ e o GDK.

4.4 Bibliotecas de mensagens instantâneas

Junto ao novo cliente de mensagens instantâneas (veja a Seção 2.1 ― Mantenha contato), o GNOME 2.24 inclui as bibliotecas libempathy, libempathy-gtk e telepathy-glib, que podem ser usadas para integrar recursos de mensagens instantâneas em qualquer aplicativo do GNOME.

4.5 Deskbar

A interface Match agora inclui dois novos métodos: set_snippet e get_snippet. Se um trecho for definido, será exibido em uma nova linha abaixo do valor get_verb da ocorrência.

A interface Action ganhou o método get_tooltip. Ignorar esse método permite que uma dica seja mostrada quando o usuário passar o mouse sobre uma ocorrência ou ação.