| 12
 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
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 
 |  
#include <gtk/gtk.h>
#include <unistd.h>
 
 
GtkWidget *g_main_window = NULL;
 
 
 
gboolean
on_main_window_delete_event            (GtkWidget       *widget,
                                        GdkEvent        *event,
                                        gpointer         user_data)
{
	gtk_main_quit ();
  return FALSE;
}
 
 
GtkWidget*
create_main_window (void)
{
  GtkWidget *main_window;
 
  main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_widget_set_size_request (main_window, 770, 600);
  gtk_window_set_title (GTK_WINDOW (main_window), "Main window" );
 
 
  g_signal_connect ((gpointer) main_window, "delete_event",
                    G_CALLBACK (on_main_window_delete_event),
                    NULL);
 
  return main_window;
}
 
 
 
gboolean destroy_func ( gpointer user_data )
{
	//g_print ( "TIMEEEEER !!!" );
 
	gtk_widget_destroy ( (GtkWidget*) user_data );
	return FALSE;
}
 
 
GtkWidget*
create_splash_window (void)
{
  GtkWidget *splash_window;
  GtkWidget *fixed45;
  GtkWidget *splash_window_app_name;
  GtkWidget *splash_window_app_version;
  GtkWidget *splash_window_company;
 
  splash_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_widget_set_size_request (splash_window, 400, 200);
  gtk_window_set_title (GTK_WINDOW (splash_window),  "Welcome window" );
  gtk_window_set_position (GTK_WINDOW (splash_window), GTK_WIN_POS_CENTER_ALWAYS);
  gtk_window_set_modal (GTK_WINDOW (splash_window), TRUE);
  gtk_window_set_resizable (GTK_WINDOW (splash_window), FALSE);
  gtk_window_set_skip_taskbar_hint (GTK_WINDOW (splash_window), TRUE);
  gtk_window_set_skip_pager_hint (GTK_WINDOW (splash_window), TRUE);
 
  fixed45 = gtk_fixed_new ();
  gtk_widget_show (fixed45);
  gtk_container_add (GTK_CONTAINER (splash_window), fixed45);
 
  splash_window_app_name = gtk_label_new ( "<span font_desc=\"30\" weight=\"bold\" color=\"green\">MY APPLICATION</span>" );
  gtk_widget_show (splash_window_app_name);
  gtk_fixed_put (GTK_FIXED (fixed45), splash_window_app_name, 0, 16);
  gtk_widget_set_size_request (splash_window_app_name, 400, 72);
  gtk_label_set_use_markup (GTK_LABEL (splash_window_app_name), TRUE);
  gtk_label_set_justify (GTK_LABEL (splash_window_app_name), GTK_JUSTIFY_CENTER);
  gtk_label_set_line_wrap (GTK_LABEL (splash_window_app_name), TRUE);
 
  splash_window_app_version = gtk_label_new ( "<span font_desc=\"10\" weight=\"bold\">1.0.0</span>" );
  gtk_widget_show (splash_window_app_version);
  gtk_fixed_put (GTK_FIXED (fixed45), splash_window_app_version, 0, 88);
  gtk_widget_set_size_request (splash_window_app_version, 400, 24);
  gtk_label_set_use_markup (GTK_LABEL (splash_window_app_version), TRUE);
 
  splash_window_company = gtk_label_new ( "<span font_desc=\"14\" weight=\"bold\">MY COMPANY NAME</span>" );
  gtk_widget_show (splash_window_company);
  gtk_fixed_put (GTK_FIXED (fixed45), splash_window_company, 0, 144);
  gtk_widget_set_size_request (splash_window_company, 400, 24);
  gtk_label_set_use_markup (GTK_LABEL (splash_window_company), TRUE);
 
  return splash_window;
}
 
 
 
int
main (int argc, char *argv[])
{
 
  gtk_set_locale ();
  gtk_init (&argc, &argv);
 
  g_main_window = create_main_window ();
  if ( g_main_window )
  {
		gtk_widget_show ( g_main_window );
 
		GtkWidget	*splash = create_splash_window ();
		if ( splash )
		{
			gtk_widget_show ( splash );
 
			g_timeout_add ( 2000, destroy_func, splash );
		}
 
	  gtk_main ();
 
	}
  return 0;
} | 
Partager