Référence du fichier Fichier.h

Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier:

Aller au code source de ce fichier.

Fonctions

void Fichier_Nouveau ()
void Fichier_Choisir ()
void Fichier_Charger (gchar *chemin, GtkSourceBuffer *sBuf)
void Fichier_Rechercher (void)
void Fichier_Modif ()
void Fichier_UNDO ()
void Fichier_REDO ()
void Fichier_Enregistrer ()
void Fichier_Enregistrer_Tous_Les_Fichier ()
void Fichier_EnregistrerSous ()
void Fichier_Fermer ()
void Fichier_Fermer_Un_Fichier (gshort id, gshort onglet)
void Fichier_Fermer_Tous_Les_Fichiers ()
void Fichier_Retirer_Du_Projet ()
void Fichier_Ecrire (gshort id)


Documentation des fonctions

void Fichier_Charger gchar *  chemin,
GtkSourceBuffer *  sBuf
 

Définition à la ligne 78 du fichier Fichier.h.

Références Fichier_Modif().

Référencé par DLG_EditorOPTIONS(), Fichier_Choisir(), et Ouvrir_Fichier_Ou_Le_Passer_Au_Premier_Plan().

00079 {
00080    gchar *tmp = NULL, *utf8=NULL;
00081    GtkTextIter iter;
00082 
00083    if (g_file_get_contents (chemin, &tmp, NULL, NULL))
00084    {
00085      if (!g_utf8_validate (tmp, -1, NULL))
00086      {
00087        //g_print("Fichier non UTF-8 -> conversion en utf-8.\n");
00088        utf8 = g_locale_to_utf8 (tmp, -1, NULL, NULL, NULL);
00089        tmp=g_strdup(utf8);
00090        g_free(utf8);
00091      }
00092      gtk_source_buffer_begin_not_undoable_action (sBuf);
00093       gtk_text_buffer_get_iter_at_line (GTK_TEXT_BUFFER(sBuf), &iter, 0);
00094       gtk_text_buffer_insert (GTK_TEXT_BUFFER(sBuf), &iter, tmp, -1);
00095       g_free (tmp);
00096       // Place curseur au début
00097       gtk_text_buffer_set_modified (GTK_TEXT_BUFFER(sBuf), FALSE);
00098       gtk_text_buffer_get_start_iter (GTK_TEXT_BUFFER(sBuf), &iter);
00099       gtk_text_buffer_place_cursor (GTK_TEXT_BUFFER(sBuf), &iter);
00100 
00101       g_signal_connect (G_OBJECT (sBuf), "changed", G_CALLBACK (Fichier_Modif), NULL);
00102      gtk_source_buffer_end_not_undoable_action (sBuf);
00103    }
00104 }

Voici le graphe d'appel pour cette fonction:

void Fichier_Choisir  ) 
 

Définition à la ligne 53 du fichier Fichier.h.

Références Ajouter_ELEMENT(), Ajouter_TreeviewItem(), Creer_Onglet(), DLG_Open(), Fichier_Charger(), NB, et NBfichiersOuverts.

Référencé par Creer_Menu(), et Creer_ToolBar().

00054 {
00055   gchar *nom = NULL;
00056   gchar *chemin=NULL;
00057 
00058   chemin = DLG_Open(FALSE);
00059   if (chemin)
00060   {
00061     nom  = g_path_get_basename(chemin);
00062     //(1) Insérer nouvelle entrée dans le tableau
00063     Ajouter_ELEMENT(nom, chemin, NBfichiersOuverts++);
00064     //(2) Insérer nouvelle entrée dans le treeview
00065     Ajouter_TreeviewItem(&iterProj, nom, chemin, NULL);
00066     //(3) Créer nouvel onglet et son textbox/sourceBuffer
00067     TxtBuf[NB-1] = Creer_Onglet(nom);
00068     //(4) Charger le textbox depuis un fichier
00069     Fichier_Charger(chemin, TxtBuf[NB-1]);
00070     estModifie[NB-1]=FALSE;
00071     g_free(nom);
00072     g_free(chemin);
00073   }
00074 }

Voici le graphe d'appel pour cette fonction:

void Fichier_Ecrire gshort  id  ) 
 

Définition à la ligne 338 du fichier Fichier.h.

Références idOngletACTIF, et Liste_Add_Msg().

Référencé par Fichier_Enregistrer(), Fichier_Enregistrer_Tous_Les_Fichier(), et Fichier_Fermer_Un_Fichier().

00339 {
00340   FILE *fichier = fopen (chemin[id],"w");
00341   if (fichier)
00342   {
00343     gchar *contenu=NULL;//, *locale;
00344     GtkTextIter start, end;
00345     GtkWidget *p_child = NULL;
00346     GtkLabel *label = NULL;
00347 
00348     // obtient texte depuis le GtkSourceBuffer
00349     gtk_text_buffer_get_bounds (GTK_TEXT_BUFFER(TxtBuf[id]), &start, &end);
00350     contenu = gtk_text_buffer_get_text (GTK_TEXT_BUFFER(TxtBuf[id]), &start, &end, FALSE);
00351     //récupérer l'encodage.
00352     //locale = g_locale_from_utf8 (contenu, -1, NULL, NULL, NULL);
00353 
00354     //Ecriture
00355     //g_file_set_contents (chemin[id],contenu,-1,NULL);
00356     fprintf (fichier, "%s", contenu);//locale);
00357     fclose (fichier);
00358 
00359     //Liste_Add_Msg("%s écrit.", chemin[id]);
00360     estModifie[id]=FALSE;
00361 
00362     // retire * du label onglet
00363     p_child = gtk_notebook_get_nth_page (GTK_NOTEBOOK(Onglets), idOngletACTIF);
00364     label = GTK_LABEL (gtk_notebook_get_tab_label (GTK_NOTEBOOK(Onglets), p_child));
00365     gtk_label_set_text (label, nom[id]);
00366 
00367     g_free (contenu);
00368     //g_free (locale);
00369     Liste_Add_Msg("%s écrit.", chemin[id]);
00370   }
00371  }

Voici le graphe d'appel pour cette fonction:

void Fichier_Enregistrer  ) 
 

Définition à la ligne 163 du fichier Fichier.h.

Références Fichier_Ecrire(), et idACTIF.

Référencé par Creer_Menu(), et Creer_ToolBar().

00164 {
00165   Fichier_Ecrire(idACTIF);
00166 }

Voici le graphe d'appel pour cette fonction:

void Fichier_Enregistrer_Tous_Les_Fichier  ) 
 

Définition à la ligne 170 du fichier Fichier.h.

Références Fichier_Ecrire(), et NB.

Référencé par Projet_Compiler(), et Projet_Enregistrer().

00171 {
00172   gushort n;
00173   for (n=0; n<NB; n++)
00174   {
00175     if (estModifie[n]) Fichier_Ecrire(n);
00176   }
00177 }

Voici le graphe d'appel pour cette fonction:

void Fichier_EnregistrerSous  ) 
 

Définition à la ligne 181 du fichier Fichier.h.

Références getExtension(), idACTIF, idOngletACTIF, et Liste_Add_Msg().

Référencé par Creer_Menu(), et Creer_ToolBar().

00182 {
00183   GtkWidget *dialog;
00184   gchar *chem=NULL;
00185   gchar *dosRELATIF=NULL;
00186   gchar *newNOM=NULL;
00187   gchar *contenu=NULL;
00188   FILE *pF;
00189   GtkTextIter start, end;
00190   GtkWidget *p_child = NULL;
00191   GtkLabel *label = NULL;
00192 
00193 
00194   dialog = gtk_file_chooser_dialog_new ("Enregistrer Sous", NULL,
00195                                 GTK_FILE_CHOOSER_ACTION_SAVE,
00196                                 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
00197                                 GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL);
00198 
00199   dosRELATIF = g_path_get_dirname(chemin[idACTIF]);
00200   chem = g_strdup_printf("%s/%s/", g_get_current_dir(), dosRELATIF);
00201   gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), chem);
00202   gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), nom[idACTIF]);
00203 
00204   if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
00205   {
00206     chem = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
00207     //g_print("je vais écrire %s\n", chem);
00208     pF = fopen (chem,"w");
00209     if (pF)
00210     {
00211       // obtient texte depuis le GtkSourceBuffer
00212       gtk_text_buffer_get_bounds (GTK_TEXT_BUFFER(TxtBuf[idACTIF]), &start, &end);
00213       contenu = gtk_text_buffer_get_text (GTK_TEXT_BUFFER(TxtBuf[idACTIF]),
00214                                          &start, &end, FALSE);
00215       //Ecriture
00216       fprintf (pF, "%s", contenu);
00217       fclose (pF);
00218       contenu = g_strdup_printf("%s écrit.", chem);
00219       Liste_Add_Msg(contenu);
00220 
00221       //change le nom de l' onglet
00222       newNOM = g_path_get_basename(chem);
00223       p_child = gtk_notebook_get_nth_page (GTK_NOTEBOOK(Onglets), idOngletACTIF);
00224       label = GTK_LABEL (gtk_notebook_get_tab_label (GTK_NOTEBOOK(Onglets), p_child));
00225       gtk_label_set_text (label, newNOM);
00226 
00227       //Change le nom dans le treeview
00228         // obtenir pIMG
00229       //gtk_tree_store_set (pTreeStore, &fils, 0,idACTIF, 1,pImg, 2,newNOM, -1);
00230 
00231 
00232       //change nom dans tableau
00233              nom[idACTIF] = g_strdup(newNOM);
00234           chemin[idACTIF] = g_strdup_printf("%s/%s", dosRELATIF, newNOM);
00235              ext[idACTIF] = getExtension(newNOM); //re-détermine l' extension
00236       estModifie[idACTIF] = FALSE;
00237     }
00238   }
00239 
00240   if (newNOM)     g_free (newNOM);
00241   if (chem)       g_free (chem);
00242   if (dosRELATIF) g_free (dosRELATIF);
00243   gtk_widget_destroy (dialog);
00244 //App_Lister_Tableau();
00245 }

Voici le graphe d'appel pour cette fonction:

void Fichier_Fermer  ) 
 

Définition à la ligne 249 du fichier Fichier.h.

Références Fichier_Fermer_Un_Fichier(), idACTIF, et idOngletACTIF.

Référencé par Creer_Menu(), et Creer_ToolBar().

Voici le graphe d'appel pour cette fonction:

void Fichier_Fermer_Tous_Les_Fichiers  ) 
 

Définition à la ligne 286 du fichier Fichier.h.

00287 {
00288   // parcourt la structure. si ->estOuvert, le ferme
00289   //gint id = gtk_notebook_get_current_page (GTK_NOTEBOOK(Onglets));
00290   //g_print("fermeture onglet n°%d!\n", id);
00291   //gtk_notebook_remove_page (GTK_NOTEBOOK(Onglets), gtk_notebook_get_current_page (GTK_NOTEBOOK(Onglets)));
00292 }

void Fichier_Fermer_Un_Fichier gshort  id,
gshort  onglet
 

Définition à la ligne 254 du fichier Fichier.h.

Références DLG_Demander(), Fichier_Ecrire(), idOngletACTIF, NB, et NBfichiersOuverts.

Référencé par Fichier_Fermer(), et Fichier_Retirer_Du_Projet().

00255 {
00256   gint n;
00257 
00258   // il peut cliquer alors qu'aucun fichier n' est ouvert
00259   if (!NBfichiersOuverts) return;
00260 
00261   // s'il est modifié, demande s'il faut enregistrer
00262   if (estModifie[id])
00263   {
00264     if (DLG_Demander(g_strdup_printf("%s : fichier modifié.\nEcrire avant de le fermer?",
00265                         (chemin[id])?chemin[id]:nom[id])))
00266          Fichier_Ecrire(id);
00267   }
00268 
00269   // Supprime l' onglet
00270   gtk_notebook_remove_page (GTK_NOTEBOOK(Onglets), onglet);
00271 
00272   // décale les numéros d' onglet
00273   for (n=1; n<NB; n++)
00274   {
00275     if      (IDOnglet[n]> idOngletACTIF) IDOnglet[n]-=1;
00276     else if (IDOnglet[n]==idOngletACTIF) IDOnglet[n]=-1;
00277   }
00278 
00279   // signale qu'il est fermé.
00280   NBfichiersOuverts--;
00281   idOngletACTIF--;
00282 }

Voici le graphe d'appel pour cette fonction:

void Fichier_Modif  ) 
 

Définition à la ligne 132 du fichier Fichier.h.

Références idACTIF, et idOngletACTIF.

Référencé par Fichier_Charger().

00133 {
00134   GtkWidget *p_child = NULL;
00135   GtkLabel *label = NULL;
00136 
00137   if (!estModifie[idACTIF])
00138   {
00139     estModifie[idACTIF] = TRUE;
00140 
00141     p_child = gtk_notebook_get_nth_page (GTK_NOTEBOOK(Onglets), idOngletACTIF);
00142     label = GTK_LABEL (gtk_notebook_get_tab_label (GTK_NOTEBOOK(Onglets), p_child));
00143     gtk_label_set_text (label, g_strdup_printf ("%s *", nom[idACTIF]));
00144   }
00145 }

void Fichier_Nouveau  ) 
 

Définition à la ligne 4 du fichier Fichier.h.

Références Ajouter_ELEMENT(), Ajouter_TreeviewItem(), AppNEWfile, Creer_Onglet(), NB, et NBfichiersOuverts.

Référencé par Creer_Menu(), et Creer_ToolBar().

00005 {
00006   //(1) Insérer nouvelle entrée dans le tableau
00007   Ajouter_ELEMENT(AppNEWfile, NULL, NBfichiersOuverts++);
00008   estModifie[NB] = TRUE;
00009   Ajouter_TreeviewItem(&iterProj, AppNEWfile, NULL, NULL);
00010 /*     GtkTreeIter iter;
00011      gtk_tree_store_insert (pTreeStore,&iter,&iterProj,2);
00012 
00013      GdkPixbuf *pImg = gdk_pixbuf_new_from_file (IMGs[1], NULL);
00014      gtk_tree_store_set (pTreeStore, &iter, 0,NB++, 1,pImg, 2,AppNEWfile, -1);
00015 */
00016 /*
00017   // Remonte pour trouver le dossier, et son iter
00018 
00019   //Liste_Add_Msg("idACTIF=%d", idACTIF);
00020   gshort n;
00021   for (n=idACTIF; n>-1; n--)
00022   {
00023     //Liste_Add_Msg("n=%d", n);
00024     if (ext[n]==-1)
00025     {
00026      GtkTreeIter iter;
00027      //GtkTreeIter itDOSSIER;
00028      //GtkTreePath *path;
00029      //Liste_Add_Msg("bingo %s %d", nom[n], n);
00030      gtk_tree_store_insert (pTreeStore,&iter,NULL,5);
00031      //if (gtk_tree_model_get_iter(pTreeModel, &itDOSSIER, path))
00032      //{
00033      //   gtk_tree_model_get (pTreeModel, &TVit, 0, &idACTIF, -1);
00034      //}
00035      break;
00036     }
00037   }
00038   //Ajouter_TreeviewItem(&TVit, AppNEWfile, NULL, NULL);
00039 */
00040 
00041   //(2) Insérer nouvelle entrée dans le treeview
00042   //GtkTreeIter i;
00043   //i = Ajouter_TreeviewItem(&iterProj, AppNEWfile, NULL, NULL);
00044   //gtk_tree_store_move_after (pTreeStore, &i, NULL);
00045   //gtk_tree_store_move_after (pTreeStore, &i, &TVit);
00046 
00047   //(3) Créer nouvel onglet et son textbox/sourceBuffer
00048   TxtBuf[NB-1] = Creer_Onglet(AppNEWfile);
00049 }

Voici le graphe d'appel pour cette fonction:

void Fichier_Rechercher void   ) 
 

Définition à la ligne 108 du fichier Fichier.h.

Références idACTIF.

Référencé par Creer_ToolBar().

00109 {
00110   GtkTextIter iter, mstart, mend;
00111   const gchar *text = "void";
00112   gboolean found;
00113   GtkTextMark *last_pos;
00114 
00115   gtk_text_buffer_get_start_iter (GTK_TEXT_BUFFER(TxtBuf[idACTIF]), &iter);
00116 
00117   found = gtk_text_iter_forward_search (&iter, text, 0, &mstart, &mend, NULL);
00118   if (found)
00119   {
00120    g_print("found\n");
00121    //gtk_text_buffer_place_cursor (GTK_TEXT_BUFFER(TxtBuf[idACTIF]), iter);
00122    gtk_source_view_set_highlight_current_line(TXT[idACTIF], TRUE);
00123    gtk_text_buffer_select_range (GTK_TEXT_BUFFER(TxtBuf[idACTIF]), &mstart, &mend);
00124    last_pos = gtk_text_buffer_create_mark (GTK_TEXT_BUFFER(TxtBuf[idACTIF]), "last_pos", &mend, FALSE);
00125    gtk_text_view_scroll_mark_onscreen (GTK_TEXT_VIEW(TXT[idACTIF]), last_pos);
00126   }
00127   else  g_print("nan\n");
00128 }

void Fichier_REDO  ) 
 

Définition à la ligne 156 du fichier Fichier.h.

Références idACTIF.

Référencé par Creer_ToolBar().

00157 {
00158   gtk_source_buffer_redo (TxtBuf[idACTIF]);
00159 }

void Fichier_Retirer_Du_Projet  ) 
 

Définition à la ligne 296 du fichier Fichier.h.

Références Fichier_Fermer_Un_Fichier(), NB, et TVit.

Référencé par Creer_Menu().

00297 {
00298   GtkTreeModel  *pTreeModel;
00299   gshort id, i;
00300 
00301 //App_Lister_Tableau();
00302   // s'il est ouvert, le ferme. si modifié: demande enregistrement
00303   pTreeModel = gtk_tree_view_get_model (GTK_TREE_VIEW(pTView));
00304   gtk_tree_model_get (pTreeModel, &TVit, 0, &id, -1);
00305   if (IDOnglet[id]!=-1)
00306     Fichier_Fermer_Un_Fichier(id, IDOnglet[id]);
00307 
00308 //g_print("je vais retirer %d %s\n", id, nom[id]);
00309   // Retire du TreeView
00310   gtk_tree_store_remove (pTreeStore, &TVit);
00311 
00312   // Retire du tableau interne, décale les suivants
00313   for (i=1; i<NB; i++)
00314   {
00315     if (i>=id)
00316     {
00317        nom       [i] = g_strdup(nom[i+1]);
00318        chemin    [i] = g_strdup(chemin[i+1]);
00319        ext       [i] = ext[i+1];
00320        estModifie[i] = estModifie[i+1];
00321        IDOnglet  [i] = IDOnglet[i+1];
00322        TxtBuf    [i] = TxtBuf[i+1];
00323        TXT       [i] = TXT[i+1];
00324     }
00325   }
00326   // libère le dernier
00327   g_free(nom[NB]);
00328   g_free(chemin[NB]);
00329   ext[NB] = estModifie[NB]= IDOnglet[NB] = -1;
00330   g_free(TxtBuf[NB]);
00331   g_free(TXT[NB]);
00332   NB--;
00333 //App_Lister_Tableau();
00334 }

Voici le graphe d'appel pour cette fonction:

void Fichier_UNDO  ) 
 

Définition à la ligne 149 du fichier Fichier.h.

Références idACTIF.

Référencé par Creer_ToolBar().

00150 {
00151   gtk_source_buffer_undo (TxtBuf[idACTIF]);
00152 }


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