00001
00002
00003
00004 GtkWidget *Creer_Fenetre(gchar* caption,
00005 guint Left, guint Top, guint Width, guint Height,
00006 gboolean isCENTERED, gboolean Maximized)
00007 {
00008 GtkWidget *fen;
00009 fen = gtk_window_new (GTK_WINDOW_TOPLEVEL);
00010 gtk_window_set_title (GTK_WINDOW(fen), caption);
00011
00012 if (ProjetICON)
00013 gtk_window_set_default_icon_from_file (ProjetICON, NULL);
00014
00015
00016 gtk_window_set_default_size(GTK_WINDOW(fen), Width, Height);
00017 if (isCENTERED)
00018 gtk_window_set_position (GTK_WINDOW(fen), GTK_WIN_POS_CENTER);
00019 else
00020 gtk_window_move (GTK_WINDOW(fen), Left, Top);
00021
00022 if (Maximized) gtk_window_maximize(GTK_WINDOW(fen));
00023
00024 return fen;
00025 }
00026
00027
00028
00029 gchar* DLG_Open(gboolean unProjet)
00030 {
00031 gchar* str = NULL;
00032 GtkFileFilter *FILTER;
00033 GtkWidget *DLG;
00034
00035 DLG = gtk_file_chooser_dialog_new("Ouvrir", NULL,
00036 GTK_FILE_CHOOSER_ACTION_OPEN,
00037 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
00038 GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL);
00039
00040 FILTER = gtk_file_filter_new ();
00041 if (unProjet)
00042 gtk_file_filter_add_pattern (FILTER, AppEXTproj);
00043 else
00044 {
00045 gushort n;
00046 for (n=1; n<nbEXT; n++)
00047 {
00048 str = g_strdup_printf("*.%s", EXTs[n]);
00049 gtk_file_filter_add_pattern (FILTER, str);
00050
00051 str = g_strdup_printf("*.%s", g_ascii_strup(EXTs[n], -1));
00052 gtk_file_filter_add_pattern (FILTER, str);
00053 }
00054 }
00055 gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(DLG), FILTER);
00056
00057 str = g_strdup("");
00058 if (gtk_dialog_run (GTK_DIALOG(DLG)) == GTK_RESPONSE_ACCEPT)
00059 str = gtk_file_chooser_get_preview_filename(GTK_FILE_CHOOSER(DLG));;
00060 gtk_widget_destroy (DLG);
00061 return str;
00062 }
00063
00064
00065
00066 void DLG_error (GtkWindow *parent, const gchar *msg, ...)
00067 {
00068 va_list ap;
00069 gchar *tt;
00070 GtkWidget *dialog;
00071
00072 va_start (ap, msg);
00073 tt = g_strdup_vprintf (msg, ap);
00074 va_end (ap);
00075
00076 dialog = gtk_message_dialog_new (parent,GTK_DIALOG_DESTROY_WITH_PARENT,
00077 GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,tt);
00078 g_free (tt);
00079
00080 gtk_dialog_run (GTK_DIALOG (dialog));
00081 gtk_widget_destroy (dialog);
00082 }
00083
00084
00085
00086 gboolean DLG_Demander(gchar *question)
00087 {
00088 GtkWidget *DLG = gtk_message_dialog_new(NULL,
00089 GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION,
00090 GTK_BUTTONS_YES_NO, question);
00091
00092 switch(gtk_dialog_run(GTK_DIALOG(DLG)))
00093 {
00094 case GTK_RESPONSE_YES:
00095 gtk_widget_destroy(DLG);
00096 return TRUE;
00097 break;
00098 case GTK_RESPONSE_NONE:
00099 case GTK_RESPONSE_NO:
00100 gtk_widget_destroy(DLG);
00101 return FALSE;
00102 break;
00103 }
00104 return FALSE;
00105 }
00106
00107
00108
00109 void DLG_About(GtkWidget* widget, gpointer data)
00110 {
00111 GtkWidget *pAbout = gtk_message_dialog_new (GTK_WINDOW(data),
00112 GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, AppABOUTstr);
00113 gtk_dialog_run(GTK_DIALOG(pAbout));
00114 gtk_widget_destroy(pAbout);
00115 }
00116
00117
00118
00119 void DLG_Quitter(GtkWidget* widget, gpointer data)
00120 {
00121 GtkWidget *pQuestion;
00122
00123 pQuestion = gtk_message_dialog_new(GTK_WINDOW(data),
00124 GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO,
00125 "Voulez vous vraiment\nquitter le programme?");
00126
00127 switch(gtk_dialog_run(GTK_DIALOG(pQuestion)))
00128 {
00129 case GTK_RESPONSE_YES: gtk_main_quit(); break;
00130 case GTK_RESPONSE_NONE:
00131 case GTK_RESPONSE_NO: gtk_widget_destroy(pQuestion); break;
00132 }
00133 }