Les meilleurs sources GTK+
Les meilleurs sources GTK+Consultez toutes les sources
Nombre d'auteurs : 4, nombre de sources : 13, dernière mise à jour : 28 juin 2013
Ce code est une « pseudo » classe qui prend en charge une très grande partie de la gestion d'un widget gtk_tree_view (affichage en arbre). Est gérée, la création complète du widget qui est placé lui-même dans un gtk_scrolled_window (barres de défilement), l'ajout/suppression d'éléments. Sont pris en compte également la gestion de certaines propriétés visuelles du widget comme l'affichage et le changement du titre de l'entête de la colonne, l'affichage de lignes colorées…
Ceci est une petite fonction qui permet d'afficher en un
seul appel une boîte de messages en GTK.
Plus la peine de s'embêter à coder l'appel, la mise en place
de la boîte de dialogue et la réception des messages…
Il suffit d'appeler la fonction et de vérifier la valeur
qu'elle retourne et la comparer à celle de la constante
d'après le type de réponses que vous attendez puis c'est
tout !
Voici un exemple d'utilisation de GtkUIManager qui permet de créer des menu et barre d'outils rapidement à l'aide d'un fichier XML. Pour plus d'infortmation, reportez vous au tutorial : Utilisation de GtkUIManager
Voici un exemple d'éditeur de texte basique réalisé avec GTK+. Vous pouvez retrouver toutes les explications dans le tutorial : GTK+ par l'exemple
Ce widget s'attache simplement à un GtkTextView est permet, lorsque l'utilisateur appuie sur les touches Ctrl+Entrée, d'afficher une liste de mots. Voici un exemple d'utilisation :
#include <gtk/gtk.h>
#include <gtkcompletion/gtkcompletion.h>
const
gchar *
items[] =
{
"
fclose
"
, "
fopen
"
, "
strcpy
"
, "
strcmp
"
, "
strcat
"
, NULL
}
;
int
main (
int
argc, char
*
argv[])
{
GtkWidget *
p_window =
NULL
;
GtkWidget *
p_text_view =
NULL
;
gtk_init (&
argc, &
argv);
p_window =
gtk_window_new (
GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request (
p_window, 200
, 300
);
g_signal_connect (
p_window, "
delete-event
"
, gtk_main_quit, NULL
);
p_text_view =
gtk_text_view_new (
);
gtk_container_add (
GTK_CONTAINER (
p_window), p_text_view);
gtk_completion_new_attach (
GTK_TEXT_VIEW (
p_text_view), items);
gtk_widget_show_all (
p_window);
gtk_main (
);
return
0
;
}
Ce widget permet simplement d'effectuer un filtre sur le contenu d'un GtkTreeView.
Voici un exemple montrant comment bloquer la fermeture d'une fenêtre en demandant confirmation à l'utilisateur.
#include <gtk/gtk.h>
static
GtkResponseType confirm_quit_dialog (
void
)
{
GtkWidget *
dialog =
NULL
;
GtkResponseType response =
GTK_RESPONSE_NO;
dialog =
gtk_message_dialog_new (
NULL
, GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO,
"
Etes-vous sur de vouloir quitter ?
"
);
gtk_window_set_title
(
GTK_WINDOW
(
dialog), "
Quitter
"
);
response =
gtk_dialog_run (
GTK_DIALOG (
dialog));
gtk_widget_destroy (
dialog);
return
response;
}
static
gboolean on_window_delete_event (
void
)
{
if
(
confirm_quit_dialog (
) ==
GTK_RESPONSE_NO)
{
/* Ne pas quitter */
return
TRUE;
}
else
{
/* Quitter */
return
FALSE;
}
}
int
main (
int
argc, char
**
argv)
{
GtkWidget *
window =
NULL
;
gtk_init (&
argc, &
argv);
window =
gtk_window_new (
GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (
GTK_WINDOW (
window), "
Quit Dialog Example
"
);
gtk_container_set_border_width (
GTK_CONTAINER (
window), 10
);
gtk_widget_set_size_request (
window, 200
, 100
);
g_signal_connect (
G_OBJECT
(
window), "
destroy
"
, gtk_main_quit, NULL
);
g_signal_connect (
G_OBJECT
(
window), "
delete-event
"
,
G_CALLBACK (
on_window_delete_event), NULL
);
gtk_widget_show (
window);
gtk_main (
);
return
0
;
}