opy_cb (Fl_Widget *, void * v) {* e = (EditorWindow *) v; _Text_Editor :: kf_copy (0, e-> editor);
} cut_cb (Fl_Widget *, void * v) {* e = (EditorWindow *) v; _Text_Editor :: kf_cut (0, e-> editor);
} delete_cb (Fl_Widget *, void *) {> remove_selection ();
} find_cb (Fl_Widget * w, void * v) {* e = (EditorWindow *) v; char * val; = fl_input ("Search String:", e-> search) ; (val! = NULL) {
// User entered a string - go find it! (e-> search, val); _cb (w, v);
}
} find2_cb (Fl_Widget * w, void * v) {* e = (EditorWindow *) v; (e-> search [0] == ' 0') {
// Search string is blank; get a new one._cb (w, v);;
} pos = e-> editor-> insert_position (); found = textbuf-> search_forward (pos, e-> search, & pos); (found) { p>
// Found a match; select and update the position.> select (pos, pos + strlen (e-> search));> editor-> insert_position (pos + strlen ( e-> search));> editor-> show_insert_position ();
} fl_alert ("No occurrences of '% s ' found!", e-> search);
} set_title (Fl_Window * w) {(filename [0] == ' 0') strcpy (title, "Untitled"); {* slash; = strrchr (filename, '/' );
# ifdef WIN32 (slash == NULL) slash = strrchr (filename, '');
# endif (slash! = NULL) strcpy (title, slash + 1); strcpy (title, filename);
} (changed) strcat (title, "(modified)");> label (title);
} changed_cb (int, int nInserted, int nDeleted, int, const char *, void * v) {((nInserted | | nDeleted) &&! loading) changed = 1; * w = (EditorWindow *) v; _title (w); (loading) w-> editor-> show_insert_position ();
} new_cb (Fl_Widget *, void *) {(! check_save ()) return; [0] = ' 0';> select (0, textbuf-> length ()); > remove_selection (); = 0;> call_modify_callbacks ();
} open_cb (Fl_Widget *, void *) {(! check_save ()) return; _Native_File_Chooser fnfc;. title ("Open file");. type (Fl_Native_File_Chooser :: BROWSE_FILE); (fnfc. show ()) return; _file (fnfc. filename (), - 1);
} insert_cb (Fl_Widget *, void * v) {_Native_File_Chooser fnfc;. title ("Insert file");. type (Fl_Native_File_Chooser :: BROWSE_FILE); (fnfc. show ()) return; * w = (EditorWindow *) v; _file (fnfc. filename (), w-> editor-> insert_position ());
} paste_cb (Fl_Widget *, void * v) {* e = (EditorWindow *) v; _Text_Editor :: kf_paste (0, e-> editor);
} num_windows = 0; close_cb (Fl_Widget *, void * v) {* w = (EditorWindow *) v; (num_windows == 1) {(! check_save ());
}> hide ();> editor-> buffer (0);> remove_modify_callback (style_update, w-> editor);> remove_modify_c...