00001
00002
00003
00004
00005
00006
00007
00008 void Ouvrir_Fichier_Ou_Le_Passer_Au_Premier_Plan(gshort id)
00009 {
00010 if (ext[id]==-1) return;
00011 if (IDOnglet[id]==-1)
00012 {
00013 TxtBuf[id] = Creer_Onglet(nom[id]);
00014
00015 Fichier_Charger(chemin[id], TxtBuf[id]);
00016 }
00017 else
00018 gtk_notebook_set_current_page(GTK_NOTEBOOK(Onglets), IDOnglet[idACTIF]);
00019 }
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076 gboolean TreeView_Click (GtkTreeView *TV, GdkEventButton *event)
00077 {
00078 GtkTreeModel *pTreeModel;
00079 GtkTreePath *path;
00080
00081
00082 if (event->type == GDK_BUTTON_PRESS)
00083 {
00084 pTreeModel = gtk_tree_view_get_model (TV);
00085 if (gtk_tree_view_get_path_at_pos(TV,(gint) event->x,
00086 (gint) event->y, &path, NULL, NULL, NULL))
00087 {
00088 if (gtk_tree_model_get_iter(pTreeModel, &TVit, path))
00089 {
00090 gtk_tree_model_get (pTreeModel, &TVit, 0, &idACTIF, -1);
00091 }
00092 }
00093
00094 if (event->button == 1)
00095 {
00096 Ouvrir_Fichier_Ou_Le_Passer_Au_Premier_Plan(idACTIF);
00097 }
00098 else
00099 {
00100 gtk_menu_popup(GTK_MENU(pMenuPROJET), NULL, NULL, NULL, NULL,
00101 event->button, gdk_event_get_time((GdkEvent*)event));
00102 }
00103 }
00104 return FALSE;
00105 }
00106
00107
00108
00109 GtkTreeIter Ajouter_TreeviewItem(GtkTreeIter *parent, gchar* unNom, gchar *unChemin, gchar *img)
00110 {
00111 GtkTreeIter fils;
00112 GdkPixbuf *pImg = NULL;
00113 gshort a=-1;
00114
00115 if (img)
00116 {
00117 ext[NB] = -1;
00118 pImg = gdk_pixbuf_new_from_file (img, NULL);
00119 }
00120 else
00121 {
00122 a = getExtension(unNom);
00123 ext[NB] = a;
00124 if (a==-1) pImg = gdk_pixbuf_new_from_file (AppICONs[1], NULL);
00125 else if (a== 0) pImg = gdk_pixbuf_new_from_file (AppICONs[2], NULL);
00126 else if (a==-2) pImg = gdk_pixbuf_new_from_file (AppICONs[3], NULL);
00127
00128 else pImg = gdk_pixbuf_new_from_file (IMGs[a] , NULL);
00129 }
00130 gtk_tree_store_append (pTreeStore, &fils, parent);
00131 gtk_tree_store_set (pTreeStore, &fils, 0,NB++, 1,pImg, 2,unNom, -1);
00132 gtk_tree_view_expand_all(GTK_TREE_VIEW (pTView));
00133
00134 return fils;
00135 }
00136
00137
00138
00139 GtkWidget* Creer_TreeView(GtkWidget *fen, GtkWidget *panneau)
00140 {
00141 GtkWidget *pTView = NULL;
00142 GtkWidget *pScrollWin = NULL;
00143 GtkCellRenderer *p_renderer = NULL;
00144 GtkTreeViewColumn *p_column = NULL;
00145
00146
00147 pScrollWin = gtk_scrolled_window_new (NULL, NULL);
00148 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (pScrollWin),
00149 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
00150 gtk_paned_add1 (GTK_PANED (panneau), pScrollWin);
00151 pTreeStore = gtk_tree_store_new (3, G_TYPE_INT, GDK_TYPE_PIXBUF, G_TYPE_STRING);
00152
00153 pTView = gtk_tree_view_new_with_model (GTK_TREE_MODEL (pTreeStore));
00154 gtk_container_add (GTK_CONTAINER (pScrollWin), pTView);
00155
00156 p_renderer = gtk_cell_renderer_text_new ();
00157 p_column = gtk_tree_view_column_new_with_attributes (NULL, p_renderer, "int", 0, NULL);
00158 gtk_tree_view_append_column (GTK_TREE_VIEW (pTView), p_column);
00159 gtk_tree_view_column_set_visible(p_column, FALSE);
00160
00161 p_renderer = gtk_cell_renderer_pixbuf_new ();
00162 p_column = gtk_tree_view_column_new_with_attributes (NULL, p_renderer, "pixbuf", 1, NULL);
00163 gtk_tree_view_append_column (GTK_TREE_VIEW (pTView), p_column);
00164
00165 p_renderer = gtk_cell_renderer_text_new ();
00166 p_column = gtk_tree_view_column_new_with_attributes (NULL, p_renderer, "text", 2, NULL);
00167 gtk_tree_view_append_column (GTK_TREE_VIEW (pTView), p_column);
00168 gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (pTView), FALSE);
00169
00170 g_signal_connect(pTView, "button-press-event", G_CALLBACK(TreeView_Click), NULL);
00171
00172
00173
00174 return pTView;
00175 }
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190 void Onglet_Click (GtkNotebook *Onglets, GtkNotebookPage *page, guint page_num)
00191 {
00192 gshort n;
00193 idOngletACTIF = page_num;
00194
00195
00196 if (NBfichiersOuverts)
00197 {
00198 for(n=0; n<NB; n++)
00199 {
00200 if (IDOnglet[n]==idOngletACTIF)
00201 {
00202 idACTIF = n;
00203 break;
00204 }
00205 }
00206 }
00207
00208
00209 }
00210
00211
00212
00213 GtkSourceBuffer *Creer_Onglet(gchar* caption)
00214 {
00215 GtkWidget *pScroll, *TXTbox;
00216 PangoFontDescription *font_desc;
00217 GdkColor color;
00218 GtkSourceLanguagesManager *lm;
00219 GtkSourceLanguage *language = NULL;
00220 GtkSourceBuffer *sBuf;
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237 pScroll = gtk_scrolled_window_new (NULL, NULL);
00238 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (pScroll),
00239 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
00240 gtk_container_set_border_width (GTK_CONTAINER (pScroll), 2);
00241
00242
00243 lm = (GtkSourceLanguagesManager *)
00244 g_object_new(GTK_TYPE_SOURCE_LANGUAGES_MANAGER,
00245 "lang_files_dirs", g_slist_append(NULL,
00246 g_strdup("Lang")), NULL);
00247
00248 sBuf = GTK_SOURCE_BUFFER (gtk_source_buffer_new (NULL));
00249
00250
00251
00252
00253
00254
00255 language = gtk_source_languages_manager_get_language_from_mime_type (lm,
00256 "text/x-cgtksrc");
00257 gtk_source_buffer_set_language (sBuf, language);
00258
00259
00260
00261
00262
00263
00264 g_object_set (G_OBJECT (sBuf), "highlight",
00265 (ext[idACTIF]>0 || ext[idACTIF]==-2)?TRUE:FALSE, NULL);
00266
00267
00268 TXTbox = gtk_source_view_new_with_buffer(sBuf);
00269
00270
00271 gdk_color_parse (AppBGROUND, &color);
00272 gtk_widget_modify_base (TXTbox, GTK_STATE_NORMAL, &color);
00273
00274
00275 font_desc = pango_font_description_from_string (AppFONT);
00276 gtk_widget_modify_font (TXTbox, font_desc);
00277 pango_font_description_free (font_desc);
00278
00279
00280 if (AppUNDOLEVELS) gtk_source_buffer_set_max_undo_levels (sBuf, AppUNDOLEVELS);
00281
00282
00283 gtk_source_buffer_set_check_brackets (sBuf, FALSE);
00284
00285 gtk_source_view_set_show_line_numbers (GTK_SOURCE_VIEW(TXTbox), TRUE);
00286
00287
00288 gtk_source_view_set_show_margin(GTK_SOURCE_VIEW(TXTbox),
00289 ShowRightMARGIN?TRUE:FALSE);
00290
00291 TXT[idACTIF] = GTK_SOURCE_VIEW(TXTbox);
00292 IDOnglet[idACTIF]=NBfichiersOuverts++;
00293 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(pScroll),
00294 GTK_WIDGET(TXTbox));
00295
00296 gtk_widget_show_all (pScroll);
00297
00298
00299
00300
00301 gtk_notebook_set_current_page (GTK_NOTEBOOK(Onglets),
00302 gtk_notebook_append_page(GTK_NOTEBOOK(Onglets),
00303 pScroll, GTK_WIDGET(gtk_label_new(caption))));
00304 return sBuf;
00305 }
00306
00307
00308
00309
00310 void Creer_Onglets(GtkWidget* paned)
00311 {
00312 GtkWidget *table = gtk_table_new (3, 6, FALSE);
00313
00314 Onglets = gtk_notebook_new();
00315 gtk_notebook_set_scrollable(GTK_NOTEBOOK(Onglets), TRUE);
00316 gtk_table_attach_defaults (GTK_TABLE (table), Onglets, 0, 6, 0, 1);
00317 g_signal_connect (G_OBJECT (Onglets), "switch-page", G_CALLBACK (Onglet_Click), NULL);
00318 gtk_paned_add1 (GTK_PANED (paned), table);
00319 }
00320
00321
00322
00323
00324
00325
00326
00327
00328
00329
00330
00331
00332 GtkWidget *Creer_ToolBar()
00333 {
00334 GtkWidget* UnToolBAR = gtk_toolbar_new();
00335
00336
00337
00338
00339
00340
00341
00342
00343
00344
00345
00346
00347
00348
00349 gtk_toolbar_insert_stock(GTK_TOOLBAR(UnToolBAR),GTK_STOCK_NEW ,"Nouveau Projet"
00350 ,NULL,G_CALLBACK(Projet_Nouveau),NULL,-1);
00351 gtk_toolbar_insert_stock(GTK_TOOLBAR(UnToolBAR),GTK_STOCK_OPEN ,"Ouvrir Projet"
00352 ,NULL,G_CALLBACK(Projet_Choisir),NULL,-1);
00353 gtk_toolbar_insert_stock(GTK_TOOLBAR(UnToolBAR),GTK_STOCK_SAVE ,"Enregistrer Projet"
00354 ,NULL,G_CALLBACK(Projet_Enregistrer),NULL,-1);
00355 gtk_toolbar_insert_stock(GTK_TOOLBAR(UnToolBAR),GTK_STOCK_CLOSE,"Fermer Projet"
00356 ,NULL,G_CALLBACK(Projet_Clean) ,NULL,-1);
00357 gtk_toolbar_insert_stock(GTK_TOOLBAR(UnToolBAR),GTK_STOCK_PREFERENCES,"Options du Projet"
00358 ,NULL,G_CALLBACK(DLG_ProjectOPTIONS) ,NULL,-1);
00359
00360
00361 gtk_toolbar_append_space(GTK_TOOLBAR(UnToolBAR));
00362 gtk_toolbar_append_space(GTK_TOOLBAR(UnToolBAR));
00363 gtk_toolbar_insert_stock(GTK_TOOLBAR(UnToolBAR),GTK_STOCK_NEW ,"Nouveau Fichier"
00364 ,NULL,G_CALLBACK(Fichier_Nouveau) ,NULL,-1);
00365 gtk_toolbar_insert_stock(GTK_TOOLBAR(UnToolBAR),GTK_STOCK_OPEN ,"Ajouter Fichier au Projet"
00366 ,NULL,G_CALLBACK(Fichier_Choisir) ,NULL,-1);
00367 gtk_toolbar_insert_stock(GTK_TOOLBAR(UnToolBAR),GTK_STOCK_SAVE ,"Enregistrer Fichier"
00368 ,NULL,G_CALLBACK(Fichier_Enregistrer) ,NULL,-1);
00369 gtk_toolbar_insert_stock(GTK_TOOLBAR(UnToolBAR),GTK_STOCK_SAVE_AS,"Enregistrer Sous"
00370 ,NULL,G_CALLBACK(Fichier_EnregistrerSous),NULL,-1);
00371 gtk_toolbar_insert_stock(GTK_TOOLBAR(UnToolBAR),GTK_STOCK_CLOSE ,"Fermer Fichier"
00372 ,NULL,G_CALLBACK(Fichier_Fermer) ,NULL,-1);
00373
00374
00375 gtk_toolbar_append_space(GTK_TOOLBAR(UnToolBAR));
00376 gtk_toolbar_insert_stock(GTK_TOOLBAR(UnToolBAR),GTK_STOCK_UNDO ,"Undo"
00377 ,NULL,G_CALLBACK(Fichier_UNDO) ,NULL,-1);
00378 gtk_toolbar_insert_stock(GTK_TOOLBAR(UnToolBAR),GTK_STOCK_REDO ,"Redo"
00379 ,NULL,G_CALLBACK(Fichier_REDO) ,NULL,-1);
00380
00381
00382 gtk_toolbar_append_space(GTK_TOOLBAR(UnToolBAR));
00383 gtk_toolbar_append_space(GTK_TOOLBAR(UnToolBAR));
00384 gtk_toolbar_insert_stock(GTK_TOOLBAR(UnToolBAR),GTK_STOCK_EXECUTE ,"Compiler"
00385 ,NULL,G_CALLBACK(Projet_Compiler) ,NULL,-1);
00386 gtk_toolbar_insert_stock(GTK_TOOLBAR(UnToolBAR),GTK_STOCK_CONVERT ,"Compiler et executer"
00387 ,NULL,G_CALLBACK(Projet_CompilExec),NULL,-1);
00388 gtk_toolbar_insert_stock(GTK_TOOLBAR(UnToolBAR),GTK_STOCK_GOTO_BOTTOM,"Generate Makefile"
00389 ,NULL,G_CALLBACK(Projet_Generate_Makefile) ,NULL,-1);
00390 gtk_toolbar_insert_stock(GTK_TOOLBAR(UnToolBAR),GTK_STOCK_GO_FORWARD,"Executer"
00391 ,NULL,G_CALLBACK(Projet_Executer) ,NULL,-1);
00392
00393
00394 gtk_toolbar_append_space(GTK_TOOLBAR(UnToolBAR));
00395 gtk_toolbar_append_space(GTK_TOOLBAR(UnToolBAR));
00396 gtk_toolbar_insert_stock(GTK_TOOLBAR(UnToolBAR),GTK_STOCK_FIND,"Rechercher"
00397 ,NULL,G_CALLBACK(Fichier_Rechercher),NULL,-1);
00398 gtk_toolbar_insert_stock(GTK_TOOLBAR(UnToolBAR),GTK_STOCK_FIND_AND_REPLACE,"Remplacer"
00399 ,NULL,NULL,NULL,-1);
00400
00401
00402
00403
00404 gtk_toolbar_append_space(GTK_TOOLBAR(UnToolBAR));
00405 gtk_toolbar_insert_stock(GTK_TOOLBAR(UnToolBAR),GTK_STOCK_PREFERENCES,"Options de l' éditeur"
00406 ,NULL,G_CALLBACK(DLG_EditorOPTIONS),NULL,-1);
00407
00408
00409 gtk_toolbar_set_icon_size(GTK_TOOLBAR(UnToolBAR), GTK_ICON_SIZE_BUTTON);
00410
00411
00412 gtk_toolbar_set_style(GTK_TOOLBAR(UnToolBAR), GTK_TOOLBAR_ICONS);
00413
00414
00415
00416
00417 GtkWidget* TBAR = gtk_toolbar_new();
00418 gtk_toolbar_insert_stock(GTK_TOOLBAR(TBAR),GTK_STOCK_NEW ,"Nouveau Projet"
00419 ,NULL,G_CALLBACK(Projet_Nouveau),NULL,-1);
00420 gtk_toolbar_insert_stock(GTK_TOOLBAR(TBAR),GTK_STOCK_OPEN ,"Ouvrir Projet"
00421 ,NULL,G_CALLBACK(Projet_Choisir),NULL,-1);
00422
00423
00424 return UnToolBAR;
00425 }
00426
00427
00428
00429
00430
00431
00432
00433 GtkWidget *Menu_AddItemIMG (gchar *caption, gchar *img, GtkWidget *pMenu)
00434 {
00435 GtkWidget *p = gtk_image_menu_item_new_with_label(caption);
00436 GtkWidget *i = gtk_image_new_from_file (img);
00437 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM(p), i);
00438
00439 gtk_menu_shell_append(GTK_MENU_SHELL(pMenu), p);
00440 return p;
00441 }
00442
00443
00444
00445 GtkWidget *Menu_AddItem (gchar *img, GtkWidget *pMenu)
00446 {
00447 GtkWidget *p = gtk_image_menu_item_new_from_stock(img, NULL);
00448 gtk_menu_shell_append(GTK_MENU_SHELL(pMenu), p);
00449 return p;
00450 }
00451
00452
00453
00454 void Menu_Ajouter_SEPARATEUR(GtkWidget *pMenu)
00455 {
00456 GtkWidget *p = gtk_separator_menu_item_new();
00457 gtk_menu_shell_append(GTK_MENU_SHELL(pMenu), p);
00458 }
00459
00460
00461
00462 void Menu_Ajouter_MENU(gchar* caption, GtkWidget *pMenu, GtkWidget *LeMenu)
00463 {
00464 GtkWidget *p = gtk_menu_item_new_with_label(caption);
00465 gtk_menu_item_set_submenu(GTK_MENU_ITEM(p), pMenu);
00466 gtk_menu_shell_append(GTK_MENU_SHELL(LeMenu), p);
00467 }
00468
00469
00470
00471 GtkWidget* Creer_Menu(GtkWidget *fen)
00472 {
00473 GtkWidget *LeMenu, *pMenu, *p;
00474
00475 LeMenu = gtk_menu_bar_new();
00476
00477
00478
00479 pMenuPROJET = gtk_menu_new();
00480
00481
00482 p = Menu_AddItemIMG ("Nouveau Projet", AppICONs[4], pMenuPROJET);
00483 g_signal_connect(G_OBJECT(p), "activate", G_CALLBACK(Projet_Nouveau), NULL);
00484
00485
00486 p = Menu_AddItemIMG ("Ouvrir Projet", AppICONs[2], pMenuPROJET);
00487 g_signal_connect(G_OBJECT(p), "activate", G_CALLBACK(Projet_Choisir), NULL);
00488
00489 p = Menu_AddItem(GTK_STOCK_CLOSE, pMenuPROJET);
00490 g_signal_connect(G_OBJECT(p), "activate", G_CALLBACK(Projet_Clean), NULL);
00491
00492
00493 p = Menu_AddItemIMG ("Enregistrer Projet", AppICONs[7], pMenuPROJET);
00494 g_signal_connect(G_OBJECT(p), "activate", G_CALLBACK(Projet_Enregistrer), NULL);
00495
00496 Menu_Ajouter_SEPARATEUR(pMenuPROJET);
00497
00498
00499
00500
00501 p = Menu_AddItemIMG ("Nouveau fichier", AppICONs[6], pMenuPROJET);
00502 g_signal_connect(G_OBJECT(p),"activate",G_CALLBACK(Fichier_Nouveau),NULL);
00503
00504
00505 p = Menu_AddItemIMG ("Ajouter fichier au Projet", AppICONs[5], pMenuPROJET);
00506 g_signal_connect(G_OBJECT(p),"activate",G_CALLBACK(Fichier_Choisir),NULL);
00507
00508 p = Menu_AddItemIMG ("Retirer fichier du Projet", AppICONs[5], pMenuPROJET);
00509 g_signal_connect(G_OBJECT(p),"activate",G_CALLBACK(Fichier_Retirer_Du_Projet),NULL);
00510
00511 p = Menu_AddItem(GTK_STOCK_CLOSE, pMenuPROJET);
00512 g_signal_connect(G_OBJECT(p),"activate",G_CALLBACK(Fichier_Fermer),NULL);
00513
00514 p = Menu_AddItem(GTK_STOCK_SAVE, pMenuPROJET);
00515
00516 g_signal_connect(G_OBJECT(p), "activate",G_CALLBACK(Fichier_Enregistrer),NULL);
00517
00518 p = Menu_AddItem(GTK_STOCK_SAVE_AS, pMenuPROJET);
00519 g_signal_connect(G_OBJECT(p),"activate",G_CALLBACK(Fichier_EnregistrerSous),NULL);
00520
00521 Menu_Ajouter_SEPARATEUR(pMenuPROJET);
00522
00523 p = Menu_AddItem(GTK_STOCK_QUIT, pMenuPROJET);
00524 g_signal_connect(G_OBJECT(p),"activate",G_CALLBACK(DLG_Quitter),
00525 (GtkWidget*) fen);
00526
00527 Menu_Ajouter_MENU("File", pMenuPROJET, LeMenu);
00528
00529
00530
00531
00532 pMenu = gtk_menu_new();
00533
00534
00535 p = Menu_AddItemIMG ("Compiler", AppICONs[8], pMenu);
00536 g_signal_connect(G_OBJECT(p), "activate",
00537 G_CALLBACK(Projet_Compiler),(GtkWidget*) fen);
00538
00539
00540 p = Menu_AddItemIMG ("Compiler et exécuter", AppICONs[9], pMenu);
00541 g_signal_connect(G_OBJECT(p), "activate",
00542 G_CALLBACK(Projet_CompilExec), (GtkWidget*) fen);
00543
00544
00545
00546 p = Menu_AddItemIMG ("Generate Makefile", AppICONs[4], pMenu);
00547 g_signal_connect(G_OBJECT(p),"activate",G_CALLBACK(Projet_Generate_Makefile),NULL);
00548
00549
00550
00551 p = Menu_AddItem(GTK_STOCK_EXECUTE, pMenu);
00552 g_signal_connect(G_OBJECT(p), "activate", G_CALLBACK(Projet_Executer),
00553 (GtkWidget*) fen);
00554
00555 Menu_Ajouter_MENU("Build", pMenu, LeMenu);
00556
00557
00558
00559
00560 pMenu = gtk_menu_new();
00561
00562 p = gtk_menu_item_new_with_label("A propos de...");
00563 g_signal_connect(G_OBJECT(p), "activate", G_CALLBACK(DLG_About),
00564 (GtkWidget*) fen);
00565 gtk_menu_shell_append(GTK_MENU_SHELL(pMenu), p);
00566
00567 Menu_Ajouter_MENU("?", pMenu, LeMenu);
00568
00569 return LeMenu;
00570 }
00571
00572
00573
00574
00575
00576
00577
00578
00579
00580
00581
00582
00583
00584
00585 gboolean Liste_Click (GtkTreeView *Liste, GdkEventButton *event)
00586 {
00587 GtkTreeModel *pTreeModel;
00588 GtkTreePath *path;
00589 GtkTreeIter iter;
00590 gchar *str, **tab;
00591 gint n=0;
00592 GtkTextIter it;
00593
00594
00595 if (event->type == GDK_BUTTON_PRESS)
00596 {
00597 pTreeModel = gtk_tree_view_get_model (Liste);
00598 if (gtk_tree_view_get_path_at_pos(Liste,(gint) event->x,
00599 (gint) event->y, &path, NULL, NULL, NULL))
00600 {
00601 if (gtk_tree_model_get_iter(pTreeModel, &iter, path))
00602 {
00603 gtk_tree_model_get (pTreeModel, &iter, 0, &str, -1);
00604 tab = g_strsplit (str, ":", 0);
00605 if (tab[1] && tab[2])
00606 {
00607 n = g_ascii_strtod(tab[1],NULL);
00608 if (n)
00609 {
00610
00611 Ouvrir_Fichier_Ou_Le_Passer_Au_Premier_Plan(idACTIF);
00612
00613 gtk_text_buffer_get_iter_at_line(GTK_TEXT_BUFFER(TxtBuf[idACTIF]), &it, n-1);
00614 gtk_text_buffer_place_cursor (GTK_TEXT_BUFFER(TxtBuf[idACTIF]), &it);
00615 gtk_source_view_set_highlight_current_line(TXT[idACTIF], TRUE);
00616
00617
00618
00619 gtk_text_view_scroll_to_iter (GTK_TEXT_VIEW(TXT[idACTIF]), &it,
00620 0.0, TRUE, 1.0, 1.0);
00621 }
00622 }
00623 }
00624 }
00625 }
00626 return FALSE;
00627 }
00628
00629
00630
00631 GtkWidget *Liste_Creer()
00632 {
00633 GtkWidget *tree_view, *Scroll;
00634 GtkTreeViewColumn *column;
00635 GtkCellRenderer *cell;
00636
00637 Scroll = gtk_scrolled_window_new (NULL, NULL);
00638 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (Scroll),
00639 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
00640
00641 model = gtk_list_store_new (1, G_TYPE_STRING);
00642 tree_view = gtk_tree_view_new();
00643 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(Scroll), tree_view);
00644 gtk_tree_view_set_model (GTK_TREE_VIEW(tree_view), GTK_TREE_MODEL (model));
00645 gtk_widget_show (tree_view);
00646
00647 cell = gtk_cell_renderer_text_new();
00648 column = gtk_tree_view_column_new_with_attributes("Messages",cell,"text", 0,NULL);
00649 gtk_tree_view_append_column (GTK_TREE_VIEW(tree_view), GTK_TREE_VIEW_COLUMN(column));
00650 g_signal_connect(tree_view, "button-press-event", G_CALLBACK(Liste_Click), NULL);
00651
00652 return Scroll;
00653 }
00654
00655
00656
00657 void Liste_Add_Msg(gchar *msg, ...)
00658 {
00659 GtkTreeIter iter;
00660 va_list ap;
00661 gchar *tt;
00662
00663 va_start (ap, msg);
00664 tt = g_strdup_vprintf (msg, ap);
00665 va_end (ap);
00666
00667 gtk_list_store_append (GTK_LIST_STORE (model), &iter);
00668 gtk_list_store_set (GTK_LIST_STORE (model), &iter,0, tt,-1);
00669
00670
00671
00672
00673 }
00674
00675
00676
00677
00678
00679
00680
00681 void Show_Editor()
00682 {
00683 static GtkWidget *fenetre, *Vbox, *Hpaned, *Hbox, *Vpaned, *pMenuBar;
00684
00685
00686
00687 App_ChargerConfig();
00688
00689
00690 fenetre = Creer_Fenetre(AppCAPTION, AppLEFT, AppTOP, AppWIDTH, AppHEIGHT,
00691 FALSE, AppMAXIMIZED);
00692 gtk_window_set_default_icon_from_file (AppICON, NULL);
00693 g_signal_connect(G_OBJECT(fenetre), "destroy", G_CALLBACK(gtk_main_quit), NULL);
00694
00695
00696 Vbox = gtk_vbox_new(FALSE, 0);
00697 gtk_container_add(GTK_CONTAINER(fenetre), Vbox);
00698
00699
00700 pMenuBar = Creer_Menu(fenetre);
00701 gtk_box_pack_start(GTK_BOX(Vbox), pMenuBar, FALSE, FALSE, 0);
00702
00703
00704 pToolBar = Creer_ToolBar();
00705 gtk_box_pack_start(GTK_BOX(Vbox), GTK_WIDGET(pToolBar), FALSE, FALSE, 0);
00706
00707
00708 Hbox = gtk_hbox_new(FALSE, 0);
00709 gtk_box_pack_start(GTK_BOX(Vbox), Hbox, TRUE, TRUE, 0);
00710
00711 Hpaned = gtk_hpaned_new();
00712 gtk_container_add (GTK_CONTAINER (Hbox), Hpaned);
00713 gtk_paned_set_position (GTK_PANED (Hpaned), 200);
00714
00715
00716 pTView = Creer_TreeView(fenetre, Hpaned);
00717 NB = NBfichiersOuverts = 0;
00718 idACTIF = idOngletACTIF = -1;
00719
00720 Ajouter_ELEMENT("Projet", NULL, -1);
00721
00722 iterProj = Ajouter_TreeviewItem(NULL,"Projet", NULL, AppICONs[0]);
00723
00724
00725 Vpaned = gtk_vpaned_new ();
00726 gtk_paned_add2 (GTK_PANED (Hpaned), Vpaned);
00727
00728
00729 Creer_Onglets(Vpaned);
00730
00731
00732 Liste = Liste_Creer();
00733 gtk_paned_add2 (GTK_PANED (Vpaned), Liste);
00734 gtk_paned_set_position (GTK_PANED (Vpaned), AppHEIGHT-180);
00735
00736
00737
00738
00739
00740
00741
00742
00743
00744
00745
00746
00747
00748
00749
00750
00751
00752 gtk_widget_show_all(fenetre);
00753 }
00754