Dialogs.h

Aller à la documentation de ce fichier.
00001 /* =============================================================================
00002  * Créer une fenêtre (main/options...) *****************************************
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 //g_print("1 %s", ProjetICON);
00012   if (ProjetICON)
00013   gtk_window_set_default_icon_from_file (ProjetICON, NULL);
00014 //g_print("2");
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  * Ouvre un fichier, ou un projet **********************************************
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  * Affiche un message d' erreur ************************************************
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  * Dialogue pose une question -> oui ou non ************************************
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  * About Dialog ****************************************************************
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  * Fermer l' application? ******************************************************
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 }

Généré le Sat Jan 13 02:54:13 2007 pour EdBX:IDELangageC,Python,FASMécritavecGTK+ par  doxygen 1.4.2