1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
| /* travail sur les tables */
#include <stdlib.h>
#include <gtk/gtk.h>
int main (int argc, char *argv[])
{
GtkWidget *win=NULL;
GtkWidget *pTable=NULL;
GtkWidget *pTable_titre=NULL;
GtkWidget *pTable_bandeau=NULL;
GtkWidget *pTable_liste=NULL;
GtkWidget *boxv=NULL;
GtkWidget *boxv2=NULL;
GtkWidget *label[300];
GtkWidget *label_titre=NULL;
GtkWidget *titre_principal=NULL;
GtkWidget *frame0=NULL;
GtkWidget *frame1=NULL;
GtkWidget *frame2=NULL;
GtkWidget *barre_defilement=NULL;
char tmp[500];
int i;
/* Initialize GTK+ */
gtk_init (&argc, &argv);
/* Creating the main window */
win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_container_set_border_width (GTK_CONTAINER (win), 8);
gtk_window_set_title (GTK_WINDOW (win), "testing table..");
gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_CENTER);
gtk_window_set_default_size(GTK_WINDOW(win), 750, 500);
g_signal_connect(win, "destroy", G_CALLBACK(gtk_main_quit), NULL);
/* creation d'une box verticale */
boxv=gtk_vbox_new(FALSE, 0);
/* creation d'une autre box verticale */
boxv2=gtk_vbox_new(FALSE, 0);
/* creation des labels et insertion dans la boxv*/
for (i=0;i<300;i++)
{
(void)sprintf(tmp,"texte%d",i);
label[i]=gtk_label_new(tmp);
gtk_box_pack_start(GTK_BOX(boxv),label[i], FALSE, FALSE, 5);
}
/* création de la scolling window correspondante */
barre_defilement=gtk_scrolled_window_new(NULL, NULL);
/* on ne veux que la barre verticale - if needed */
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(barre_defilement), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
/* on ne veux pas de bord autour */
gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(barre_defilement), GTK_SHADOW_NONE);
/* on met la barre à gauche */
gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW(barre_defilement), GTK_CORNER_BOTTOM_RIGHT);
/* on met la boxv la scrolling window */
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(barre_defilement), boxv);
/* creation du titre principal */
(void)sprintf(tmp,"titre Principal");
titre_principal=gtk_label_new(tmp);
/* creation de la table titre */
pTable_titre=gtk_table_new((guint)3,(guint)20,FALSE);
/* creation du frame 0 */
frame0=gtk_frame_new(NULL);
gtk_frame_set_shadow_type(GTK_FRAME(frame0), GTK_SHADOW_ETCHED_OUT);
/* on met le titre dans la table et la table dans le frame */
gtk_table_attach(GTK_TABLE(pTable_titre), titre_principal, 0,20,0,3,GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,0,0 );
gtk_container_add(GTK_CONTAINER(frame0), GTK_WIDGET(pTable_titre));
/* creation d'un titre "bandeau" */
(void)sprintf(tmp,"bandeau du titre");
label_titre=gtk_label_new(tmp);
/* creation de la table liste */
pTable_liste=gtk_table_new((guint)18,(guint)4,FALSE);
/* création de la table bandeau */
pTable_bandeau=gtk_table_new((guint)2,(guint)20,FALSE);
/* on met le bandeau dedans */
gtk_table_attach(GTK_TABLE(pTable_bandeau), label_titre, 0,20,0,2,GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,0,0 );
/* on met la boxv et sa barre de défilement dedans */
gtk_table_attach(GTK_TABLE(pTable_liste), barre_defilement, 0,4,0,18,GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,0,0 );
/*création de la table principale mise des widgets dedans */
pTable=gtk_table_new((guint)20,(guint)20,FALSE);
/* Creation de deux frames */
frame1=gtk_frame_new(NULL);
gtk_frame_set_shadow_type(GTK_FRAME(frame1), GTK_SHADOW_ETCHED_OUT);
frame2=gtk_frame_new(NULL);
gtk_frame_set_shadow_type(GTK_FRAME(frame2), GTK_SHADOW_ETCHED_OUT);
/* on met la table bandeau dans le 1er frame et la table liste dans la seconde */
gtk_container_add(GTK_CONTAINER(frame1), GTK_WIDGET(pTable_bandeau));
gtk_container_add(GTK_CONTAINER(frame2), GTK_WIDGET(pTable_liste));
/* on met les frames dans la table */
gtk_table_attach(GTK_TABLE(pTable), frame1, 0,20,0,2,GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,0,0 );
gtk_table_attach(GTK_TABLE(pTable), frame2, 0,4,2,20,GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,0,0 );
/* On met tout dans la box verticale v2 */
gtk_box_pack_start(GTK_BOX(boxv2),frame0, FALSE, FALSE, 5);
gtk_box_pack_start(GTK_BOX(boxv2),pTable, FALSE, FALSE, 5);
/* on ajoute la table dans la fenetre */
gtk_container_add (GTK_CONTAINER (win), boxv2);
/* Enter the main loop */
gtk_widget_show_all (win);
gtk_main();
return 0;
} |
Partager