PDF de programación - Integracion de aplicaciones en el escritorio GNOME

Imágen de pdf Integracion de aplicaciones en el escritorio GNOME

Integracion de aplicaciones en el escritorio GNOMEgráfica de visualizaciones

Publicado el 14 de Enero del 2017
325 visualizaciones desde el 14 de Enero del 2017
130,3 KB
12 paginas
Integracin en el escritorio GNOME

Carlos Garca Campos

carlosgc@gnome.org

Resumen El nœmero de aplicaciones disponibles para el escritorio GNOME no
para de crecer, lo cual es bueno ya que hace de GNOME un sistema de escritorio
mucho mas rico. Pero muchas de estas aplicaciones fallan en el planteamiento
inicial. En general tendemos a planicar el desarrollo de una aplicacin como si
Østa fuese a estar aislada del mundo. Incluso en ocasiones ponemos en prÆctica
muchos de los conceptos aprendidos en ingeniera del software, realizamos un
anÆlisis de requisitos, elaboramos los casos de uso, etc. y nos olvidamos de una
parte fundamental: nuestra aplicacin va a ejecutar sobre un sistema de escritorio
y va a convivir con otras aplicaciones. Si ademÆs de disponer de una amplia
variedad de aplicaciones para GNOME Østas muestran una consistencia y una
integracin el resultado es un escritorio mas rico aun.

1.

Integracin

La integracin en el escritorio puede entenderse, al menos, de dos formas:

Integracin de las aplicaciones con el sistema de escritorio
Integracin entre las aplicaciones disponibles en el escritorio

La integracin de las aplicaciones con el sistema de escritorio hace referencia a que
todas las aplicaciones sean consistentes de manera que, aunque cada una estØ diseæada
para un propsito distinto, su manejo sea similar e incluso exactamente igual para las
tareas que son comunes. Del mismo modo deben ofrecer un aspecto similar y cumplir
con los objetivos generales del sistema de escritorio, como la usabilidad, simplicidad,
etc.

La integracin entre las aplicaciones disponibles en el escritorio se consigue me-
diante la comunicacin entre ellas, ejecutando otra aplicacin para hacer una tarea re-
lacionada, etc.

En GNOME disponemos de los recursos necesarios para aæadir o mejorar la inte-

gracin de nuestras aplicaciones con el escritorio.

2.

Integracin con el sistema de escritorio

2.1. Ficheros .desktop

Uno de los problemas mas comunes es la dicultad de encontrar el ejecutable de un
programa instalado. No parece lgico que los usuarios tengan que saberse de memoria
como se llama el archivo ejecutable de cada aplicacin instalada para poder ejecutarla.
Es por ello que es muy importante publicar nuestra aplicacin en el sistema de escri-
torio. Para ello disponemos de los cheros .desktop, utilizados para aæadir una entrada
al menœ, crear un lanzador para el panel, etc.

Los cheros .desktop son cheros de texto plano que contienen informacin acerca

de la aplicacin. En GNOME se usa la especicacin estÆndar de Freedesktop.

[Desktop Entry]
Encoding=UTF-8
Name=File Browser
Name[en_GB]=File Browser
Name[es]=Examinador de archivos
Comment=Browse the lesystem with the le manager
Comment[en_GB]=Browse the lesystem with the le manager
Comment[es]=Examinar el sistema de archivos con el administrador de archivos
TryExec=nautilus
Exec=nautilus no-desktop browser %U
Icon=le-manager
Terminal=false
StartupNotify=true
Type=Application
Categories=GNOME;Application;System;Utility;Core;
OnlyShowIn=GNOME;
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=nautilus
X-GNOME-Bugzilla-Component=general
X-Gnome-Bugzilla-OtherBinaries=nautilus-adapter;nautilus-content-loser;nautilus-sidebar-
loser;nautilus-text-view;nautilus-throbber;

Este ejemplo corresponde al chero .desktop del examinador de cheros Nautilus.
EstÆ compuesto por una seccin principal llamada Desktop Entry y un conjunto de pares
Clave=valor. Tan solo son obligatorias Type, Encoding y Name, aunque muchas otras

son muy aconsejables como Comment, Icon, Exec, Terminal, etc. Algunas pueden ser
traducibles aæadiendo el cdigo del idioma entre corchetes a continuacin del nombre
de la clave.

La mayora son bastante descriptivas:

TryExec: es el nombre del binario en el sistema de cheros. Se utiliza para compro-
bar que el binario estÆ disponible para ser ejecutado, de lo contrario el programa no
serÆ mostrado en los menœs, escritorio, panel, etc.

Exec: representa el comando completo, con los posibles argumentos

Terminal: indica si el programa debe ser lanzado en una terminal

2.2. El selector de cheros

El selector de cheros es un elemento comœn en todas las aplicaciones que necesitan
abrir y guardar cheros o bien acceder al sistema de cheros. Usar el selector de cheros
de GNOME tienen numerosas ventajas:

Consistencia entre las aplicaciones

El selector de cheros estÆ bien integrado con el sistema de escritorio

Facilidad de uso, el usuario usa el mismo selector de cheros, con el que ya estÆ
familiarizado, en todas las aplicaciones

Mayor seguridad, ya que el cdigo del selector de cheros estÆ mucho mas probado
y trabajado

Reutilizacin de cdigo

El selector de cheros es ademÆs personalizable segœn las necesidades de cada apli-
cacin, de manera que es posible aæadir opciones extra, opciones de previsualizacin,
etc.

Figura 1. Selector de cheros personalizado de le-roller

Otra caracterstica importante es la posibilidad de usar el selector de cheros embe-
bido en nuestra aplicacin permitiendo un acceso directo al sistema de cheros. Apli-
caciones como los visores de imÆgenes, grabadores de CD, etc, suelen incluir acceso
directo al sistema de cheros.

Hacer un simple visor de imÆgenes utilizando el selector de cheros podra ser tan
sencillo como crear un GtkFileChooserWidget e insertarlo en cualquier contenedor de
la aplicacin:

file_chooser = gtk_file_chooser_widget_new (

GTK_FILE_CHOOSER_ACTION_OPEN);

filter = gtk_file_filter_new ();
gtk_file_filter_add_pixbuf_formats (filter);
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (file_chooser),

filter);

gtk_box_pack_start (GTK_BOX (hbox), file_chooser,

TRUE, TRUE, 0);

gtk_widget_show (file_chooser);

DespuØs bastara con capturar el evento selection-changed del selector de cheros

y actualizar una imagen, el manejador podra ser tan simple como:

static void
on_file_chooser_selection_changed (GtkWidget *widget,

gpointer gdata)

{

GtkImage *image = GTK_IMAGE (gdata);
gchar *filename = NULL;

filename = gtk_file_chooser_get_filename (

GTK_FILE_CHOOSER (widget));

if (filename) {

gtk_image_set_from_file (image, filename);
gtk_widget_show (GTK_WIDGET (image));
g_free (filename);

}

}

2.3. Sistema de preferencias centralizado

GNOME dispone de un sistema de almacenamiento de conguraciones y prefe-
rencias centralizado llamado GConf. El tener todas las preferencias y conguraciones
centralizadas permite a los usuarios mas avanzados el acceso a dichas preferencias sin
tener que conocer con profundidad cada aplicacin para saber dnde y cmo almacena
sus conguraciones. Por otro lado permite tener ciertas conguraciones compartidas
por varias aplicaciones o conguraciones globales al escritorio.

GConf ofrece a los desarrolladores un mecanismo sencillo de almacenamiento de
las preferencias. Los administradores y usuarios avanzados disponen de aplicaciones
como gconftool o gconf-editor para el acceso y mantenimiento del sistema GConf.

El sistema GConf permite a las aplicaciones consultar sus preferencias, actualizarlas

e incluso ser noticadas ante cambios.

2.4. Archivos recientes

Las aplicaciones que manejan cheros, ya sea un documento de texto, un archivo
de audio o vdeo, etc. pueden mantener un acceso rÆpido a los œltimos cheros utiliza-
dos mas recientemente por cada usuario, tanto internamente desde la propia aplicacin
como desde el sistema de escritorio de una forma global.

El cdigo para el manejo de los archivos recientes se encuentra de momento en
libegg, por lo que es comœn, copiar directamente los archivos necesarios a nuestro di-
rectorio de fuentes y usarlos como si fuesen parte de nuestra aplicacin.

El manejo es bastante sencillo, lo mas comœn es querer mantener una lista actua-
lizada de los archivos que se abran en el menœ principal de la aplicacin. Para ello es
necesario crear un modelo donde guardar la lista de los cheros

EggRecentModel

*recent_model;

recent_model = egg_recent_model_new (EGG_RECENT_MODEL_SORT_MRU);
egg_recent_model_set_limit (recent_model, 5);
egg_recent_model_set_filter_groups (recent_model,

"TestRecent", NULL);

Podemos, entonces, construir una vista para ese modelo en el menœ de la aplicacin:

EggRecentViewGtk *recent_view;

recent_view = egg_recent_view_gtk_new (menu, menu_item);
egg_recent_view_gtk_set_trailing_sep (recent_view, TRUE);
egg_recent_view_set_model (EGG_RECENT_VIEW (recent_view),

recent_model);

Al crear la vista indicamos el menœ donde va a ser insertada y el tem del menœ
despuØs del cual se insertarÆ. Ahora cada vez que nuestra aplicacin abra un chero lo
incluiremos en el modelo y la vista serÆ actualizada:

EggRecentItem *item;

item = egg_recent_item_new_from_uri (uri);
egg_recent_item_add_group (item, "TestRecent");
egg_recent_model_add_full (recent_model, item);

Para manejar las pulsaciones del usuario sobre las entradas del menœ correspon-

dientes a los cheros recientes, podemos aæadir un manejador de la siguiente forma:

g_signal_connect (recent_view, "activate",

G_CALLBACK (on_recent_file_activate),
NULL);

Y en el manejador recibiremos tanto la vista como el tem seleccionado:

static void
on_recent_file_activate (EggRecentViewGtk *view,

EggRecentItem *item,
gpointer gdata)

{
  • Links de descarga
http://lwp-l.com/pdf1625

Comentarios de: Integracion de aplicaciones en el escritorio GNOME (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad