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
| guint SplahScreenId=0;
gboolean splahScreenOff(void *data)
{
if (SplahScreenId && ihm.SplahScreen && ihm.WindowMain) {
gtk_widget_destroy(ihm.SplahScreen);
ihm.SplahScreen = NULL;
return FALSE;
}
}
return TRUE;
}
void splahScreen()
{
int x, y, wM, hM, wS, hS;
char file[]= "splahscreen.png";
GtkWidget *Image;
GdkPixbuf *Pix;
wM = hM = wS = hS = -1;
Image = gtk_image_new_from_file(file);
if (NULL == Image) return;
Pix = gtk_image_get_pixbuf (GTK_IMAGE(Image));
wS = gdk_pixbuf_get_width (Pix);
hS = gdk_pixbuf_get_height(Pix);
ihm.SplahScreen = gtk_window_new(GTK_WINDOW_POPUP);
gtk_window_set_resizable(GTK_WINDOW(ihm.SplahScreen), FALSE);
gtk_window_set_policy (GTK_WINDOW(ihm.SplahScreen), FALSE, FALSE, FALSE);
gtk_window_set_position (GTK_WINDOW(ihm.SplahScreen), GTK_WIN_POS_CENTER);
gtk_window_has_toplevel_focus (GTK_WINDOW(ihm.SplahScreen));
gtk_container_add (GTK_CONTAINER(ihm.SplahScreen), Image);
gtk_widget_realize(ihm.SplahScreen);
gtk_widget_show_all(ihm.SplahScreen);
SplahScreenId = gtk_timeout_add(3000, splahScreenOff, NULL);
}
GtkWidget *create_IHM(void)
{ // création de l'interface...
// ihm.WindowMain = gtk_windo...
// ...
// on passe le Splash screen en avant...
if (ihm.SplahScreen) {
gtk_window_set_transient_for(GTK_WINDOW(ihm.SplahScreen), GTK_WINDOW(ihm.WindowMain));
}
return ihm.WindowMain;
}
int main (int argc, char *argv[])
{
gtk_init (&argc, &argv);
gdk_rgb_init ();
// ...
splahScreen();
windowMain = create_IHM();
gtk_widget_show_all(windowMain);
gtk_main();
gMosaic_quit();
close_log();
return 0;
} |
Partager