GTK+ par l'exemple


précédentsommairesuivant

XVIII. Notre signature

XVIII-A. Aperçu

Image non disponible
Cliquez pour agrandir

XVIII-B. Boîte A propos

Nous allons terminer cette initiation par un petit ajout qui va finir notre application : une boîte de dialogue A propos. Depuis la version 2.6 de GTK+, il existe un widget qui va nous simplifier la vie : GtkAboutDialog.
Son utilisation est plutôt simple, il suffit de créer le widget, puis un certain nombre de fonctions permettent de renseigner les informations concernant le programme (auteur, version licence...) puis on affiche la boîte de dialogue :

 
Sélectionnez
void cb_about (GtkWidget *p_widget, gpointer user_data)
{
  GtkWidget *p_about_dialog = NULL;

  p_about_dialog = gtk_about_dialog_new ();
  gtk_about_dialog_set_version (GTK_ABOUT_DIALOG (p_about_dialog), "1.0");
  gtk_about_dialog_set_name (GTK_ABOUT_DIALOG (p_about_dialog), "Editeur de texte");
  
  {
    const gchar *authors[2] = {"gege2061", NULL};

    gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG (p_about_dialog), authors);
  }
  {
    gchar *contents = NULL;

    if (g_file_get_contents ("COPYING", &contents, NULL, NULL))
    {
      gchar *utf8 = NULL;

      utf8 = g_locale_to_utf8 (contents, -1, NULL, NULL, NULL);
      g_free (contents), contents = NULL;
      gtk_about_dialog_set_license (GTK_ABOUT_DIALOG (p_about_dialog), utf8);
      g_free (utf8), utf8 = NULL;
    }
  }
  gtk_about_dialog_set_website (GTK_ABOUT_DIALOG (p_about_dialog), "http://nicolasj.developpez.com/");
  {
    GdkPixbuf *p_logo = NULL;

    p_logo = gdk_pixbuf_new_from_file ("logo.png", NULL);
    gtk_about_dialog_set_logo (GTK_ABOUT_DIALOG (p_about_dialog), p_logo);
  }
  gtk_dialog_run (GTK_DIALOG (p_about_dialog));

  /* parametres inutilises */
  (void)p_widget;
  (void)user_data;
}

Voilà rien de bien compliqué mais le résultat obtenu est plutôt sympathique.

Bizarrement pour la fonction gtk_about_dialog_set_authors le tableau doit être déclaré comme constant. Un tableau non constant provoque une erreur de compilation !

XVIII-C. Code source


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006-2008 Nicolas Joseph. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.