00001 #include <gtk/gtk.h>
00002 #include <stdio.h>
00003 #include <errno.h>
00004 #include <stdlib.h>
00005 #include "search.c"
00006
00007
00008 extern GtkWidget *entry;
00009
00013 GtkWidget *view;
00014
00018 GtkItemFactory *main_menu;
00019
00020
00021 void show_help(void);
00022 void show_about(void);
00026
00027
00028
00029 void edit_cut()
00030 {
00031 gtk_text_buffer_cut_clipboard(buf,gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), TRUE);
00032 }
00033
00037 void edit_copy()
00038 {
00039 gtk_text_buffer_copy_clipboard(buf,gtk_clipboard_get(GDK_SELECTION_CLIPBOARD));
00040 }
00041
00045 void edit_paste()
00046 {
00047 gtk_text_buffer_paste_clipboard(buf,gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), NULL, TRUE);
00048 }
00049
00053 void edit_select()
00054 {
00055 GtkTextIter p;
00056 gtk_text_buffer_get_start_iter(buf, &p);
00057 gtk_text_buffer_place_cursor(buf, &p);
00058 gtk_text_buffer_get_end_iter(buf, &p);
00059 gtk_text_buffer_move_mark_by_name(buf, "selection_bound", &p);
00060 }
00061
00065 void search_find()
00066 {
00067 textfind();
00068 }
00069
00073 void search_replace()
00074 {
00075 text_find_replace();
00076 }
00077
00081 void help_contents()
00082 {
00083 show_help();
00084 }
00088 void help_about()
00089 {
00090 show_about();
00091 }
00092
00093
00097 void file_new()
00098 {
00099 if(save_if_modified())
00100 {
00101
00102 buf = gtk_text_buffer_new(gtk_text_buffer_get_tag_table(buf));
00103
00104 gtk_text_view_set_buffer(GTK_TEXT_VIEW(view), buf);
00105
00106 GtkTextIter p1, p2;
00107
00108 gtk_text_buffer_get_start_iter(buf2,&p2);
00109 gtk_text_buffer_get_end_iter(buf2, &p1);
00110 gtk_text_buffer_delete(buf2,&p2,&p1);
00111
00112 gtk_entry_set_text(GTK_ENTRY (entry),"");
00113 filename = NULL;
00114 gtk_window_set_title(GTK_WINDOW(window),"TextEditor(NewFile)");
00115 g_object_unref(G_OBJECT(buf));
00116
00117 }
00118
00119
00120 }
00121
00125 void file_open()
00126 {
00127 if(save_if_modified())
00128 {
00129
00130 buf = gtk_text_buffer_new(gtk_text_buffer_get_tag_table(buf));
00131 gtk_text_view_set_buffer(GTK_TEXT_VIEW(view), buf);
00132
00133
00134 g_object_unref(G_OBJECT(buf));
00135 load_file(NULL);
00136 }
00137
00138 }
00139
00143 void file_save()
00144 {
00145 save_file(filename);
00146 }
00147
00151 void file_saveas()
00152 {
00153 save_file(NULL);
00154 }
00158 void file_quit()
00159 {
00160 if(save_if_modified())
00161 gtk_widget_destroy(window);
00162 }
00163
00164
00188 GtkItemFactoryEntry menu_def[] =
00189 {
00190 { (char *)"/_File", NULL, NULL, 0, (char *)"<Branch>", NULL },
00191 { (char *)"/File/_New", (char *)"<control>N", file_new, 0, NULL },
00192 { (char *)"/File/_Open...", (char *)"<control>O", file_open, 0,NULL },
00193 { (char *)"/File/_Save", (char *)"<control>S", file_save,0,NULL },
00194 { (char *)"/File/Save _As...", NULL, file_saveas,0,NULL },
00195 { (char *)"/File/sep", NULL, NULL, 0, (char *)"<Separator>", NULL },
00196 { (char *)"/File/_Quit", (char *)"<control>Q", file_quit, 0,NULL },
00197 { (char *)"/_Edit", NULL, NULL, 0, (char *)"<Branch>", NULL },
00198 { (char *)"/Edit/C_ut", (char *)"<control>X", edit_cut, 0,NULL },
00199 { (char *)"/Edit/_Copy", (char *)"<control>C", edit_copy ,0,NULL },
00200 { (char *)"/Edit/_Paste", (char *)"<control>V", edit_paste, 0,NULL},
00201 { (char *)"/Edit/sep", NULL, NULL, 0, (char *)"<Separator>", NULL },
00202 { (char *)"/Edit/Select All", NULL, edit_select, NULL, NULL },
00203 { (char *)"/_Search", NULL, NULL, 0, (char *)"<Branch>", NULL },
00204 { (char *)"/Search/_Find", (char *)"<control>F" , search_find, 0,NULL },
00205 { (char *)"/Search/_Replace", (char *)"<control>R" , search_replace, 0,NULL },
00206 { (char *)"/_Help", NULL, NULL, 0, (char *)"<Branch>", NULL },
00207 { (char *)"/Help/_Contents", (char *)"<control>H", help_contents,0,NULL },
00208 { (char *)"/Help/_About", NULL , help_about, 0, "<Item>" },
00209
00210 };