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
| #include <gtk/gtk.h>
#include <glib.h>
#include <glib/gprintf.h>
typedef struct
{
GtkWidget * pNotebook;
GtkWidget ** pScrolled;
}
win;
static void creation (GtkWidget * widget, gpointer data)
{
win *pApp = NULL;
gint nb = 0;
GtkWidget **tmp2 = NULL;
pApp = data;
nb = gtk_notebook_get_n_pages (GTK_NOTEBOOK (pApp->pNotebook));
/* ajout d'un nouvel élément */
tmp2 = g_realloc (pApp->pScrolled, sizeof (* pApp->pScrolled) * (nb + 1));
if (tmp2 != NULL)
{
g_printf ("Re-allocation reussie !\n");
pApp->pScrolled = tmp2;
}
pApp->pScrolled[nb] = gtk_scrolled_window_new (NULL, NULL);
if (pApp->pScrolled[nb] != NULL)
{
g_printf ("Creation reussie !\n");
}
(void) widget;
}
int main (int argc, char ** argv)
{
GtkWidget * p_win = NULL;
GtkWidget * p_vbox = NULL;
gtk_init (& argc, & argv);
p_win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (p_win), 200, 200);
gtk_container_set_border_width (GTK_CONTAINER (p_win), 5);
gtk_window_set_position (GTK_WINDOW (p_win), GTK_WIN_POS_CENTER);
g_signal_connect (p_win, "destroy", gtk_main_quit, NULL);
p_vbox = gtk_vbox_new (FALSE, 5);
gtk_container_add (GTK_CONTAINER (p_win), p_vbox);
/* ----- */
win * pApp = g_malloc (sizeof (* pApp));
if (pApp != NULL)
{
pApp->pNotebook = gtk_notebook_new ();
gtk_box_pack_start (GTK_BOX (p_vbox), pApp->pNotebook, TRUE, TRUE, 0);
pApp->pScrolled = g_malloc (sizeof (* pApp->pScrolled));
if (pApp->pScrolled != NULL)
{
g_printf ("Allocation reussie !\n");
pApp->pScrolled[0] = gtk_scrolled_window_new(NULL, NULL);
}
creation (NULL, (gpointer) pApp);
}
/* ----- */
gtk_widget_show_all (p_win);
gtk_main ();
return 0;
} |
Partager