Search code examples
cgtksplash-screen

Splash Screen in GTK


I'm new to GTK and i'm using it to create UI in C. I've created a splash screen and i'm able to close it after specified seconds using the function g_timeout_add(100, function_to_call, NULL);. The Splash screen works great. but the problem is when in extend my program further (i.e) After closing the splash screen I want another window to be displayed automatically, it doesn't happen so. Both the windows open together. Here is my program.

gboolean function_to_call(gpointer data){
    gtk_quit_main();
    return(FALSE);
}
int main (int argc, char *argv[]){
    GtkWidget *window, *image, *another_window;
    gtk_init(&argc, &argv);
    .
    .
    .
    .
    .
    .
    .
    g_timeout_add (100, function_to_call, NULL);
    gtk_main ();
    /*if my program is till this, splash screen closes after 1 sec . But when i try
     *to define another window from here onwards and call gtk_widget_show() and gtk_main() 
     *again for another_ window, window and another_window both open together and window  
     *doesn't close after 1 sec. */
}

Any kind of help is appreciatable.
Thank you.


Solution

  • Your function_to_call doesn't close your splash window here, it ends the gtk_main event loop. You don't need to end the event loop.

    What you want to do instead, in your function_to_call, is hide (or destroy) your splash window and show your next window (gtk_widget_hide(),gtk_widget_show()).