From 4faea14c5488d86a52213004f4b6cbc4885f4596 Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Wed, 17 Sep 2008 10:29:00 +0000 Subject: doxygen: fixed typos and code examples (html quotes and \ escape sequences) in tutorials git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6278 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- documentation/editor.dox | 424 +++++++++++++++++++++++------------------------ 1 file changed, 212 insertions(+), 212 deletions(-) (limited to 'documentation/editor.dox') diff --git a/documentation/editor.dox b/documentation/editor.dox index f6e37e759..760e2ab1f 100644 --- a/documentation/editor.dox +++ b/documentation/editor.dox @@ -30,7 +30,7 @@ lets define what we want our text editor to do: the design of our GUI. Obviously the first thing that we need is a window, which we'll place inside a class called EditorWindow: - +\endcode

Variables

Our text editor will need some global variables to keep track of things: -

+\endcode

The textbuf variable is the text editor buffer for our window class described previously. We'll cover the other @@ -70,45 +70,45 @@ define each function the editor needs to perform. The Fl_Menu_Item structure is used to define the menus and items in a menubar:

- +\endcode

Once we have the menus defined we can create the Fl_Menu_Bar widget and assign the menus to it with:

- +m->copy(menuitems); +\endcode

We'll define the callback functions later. @@ -118,48 +118,48 @@ m->copy(menuitems); Fl_Text_Editor widget to edit the text: -

+\code +w->editor = new Fl_Text_Editor(0, 30, 640, 370); +w->editor->buffer(textbuf); +\endcode

So that we can keep track of changes to the file, we also want to add -a "modify" callback:

+a "modify" callback:

- +\code +textbuf->add_modify_callback(changed_cb, w); +textbuf->call_modify_callbacks(); +\endcode

Finally, we want to use a mono-spaced font like FL_COURIER: -

+\code +w->editor->textfont(FL_COURIER); +\endcode

The Replace Dialog

We can use the FLTK convenience functions for many of the editor's dialogs, however the replace dialog needs its own custom window. To keep things simple we will have a -"find" string, a "replace" string, and -"replace all", "replace next", and -"cancel" buttons. The strings are just -Fl_Input widgets, the "replace all" and -"cancel" buttons are Fl_Button widgets, and -the "replace next " button is a +"find" string, a "replace" string, and +"replace all", "replace next", and +"cancel" buttons. The strings are just +Fl_Input widgets, the "replace all" and +"cancel" buttons are Fl_Button widgets, and +the "replace next " button is a Fl_Return_Button widget:

\image html editor-replace.gif "Figure 4-1: The search and replace dialog" - +\code +Fl_Window *replace_dlg = new Fl_Window(300, 105, "Replace"); +Fl_Input *replace_find = new Fl_Input(70, 10, 200, 25, "Find:"); +Fl_Input *replace_with = new Fl_Input(70, 40, 200, 25, "Replace:"); +Fl_Button *replace_all = new Fl_Button(10, 70, 90, 25, "Replace All"); +Fl_Button *replace_next = new Fl_Button(105, 70, 120, 25, "Replace Next"); +Fl_Button *replace_cancel = new Fl_Button(230, 70, 60, 25, "Cancel"); +\endcode

Callbacks

@@ -171,14 +171,14 @@ need to define our callback functions.

This function will be called whenever the user changes any text in the editor widget: -

+\endcode

The set_title() function is one that we will write to set the changed status on the current file. We're doing it this way @@ -191,12 +191,12 @@ title bar. href="Fl_Text_Editor.html#Fl_Text_Editor.kf_copy">kf_copy() to copy the currently selected text to the clipboard:

- +\endcode

cut_cb()

@@ -204,12 +204,12 @@ void copy_cb(Fl_Widget*, void* v) { href="Fl_Text_Editor.html#Fl_Text_Editor.kf_cut">kf_cut() to cut the currently selected text to the clipboard:

- +\endcode

delete_cb()

@@ -217,11 +217,11 @@ void cut_cb(Fl_Widget*, void* v) { href="Fl_Text_Buffer.html#Fl_Text_Buffer.remove_selection">remove_selection() to delete the currently selected text to the clipboard:

- +\endcode

find_cb()

@@ -230,18 +230,18 @@ href="functions.html#fl_input2">fl_input() convenience function and then calls the find2_cb() function to find the string: - +\endcode

find2_cb()

@@ -249,26 +249,26 @@ void find_cb(Fl_Widget* w, void* v) { string. If the search string is blank then we want to pop up the search dialog: - +\endcode

If the search string cannot be found we use the fl_alert() @@ -279,17 +279,17 @@ convenience function to display a message to that effect. filename. It also calls the check_save() function to give the user the opportunity to save the current file first as needed: -

+\endcode

open_cb()

@@ -298,14 +298,14 @@ the specified file into the input widget and current filename. It also calls the check_save() function to give the user the opportunity to save the current file first as needed: - +\endcode

We call the load_file() function to actually load the file. @@ -315,12 +315,12 @@ void open_cb(Fl_Widget*, void*) { href="Fl_Text_Editor.html#Fl_Text_Editor.kf_paste">kf_paste() to paste the clipboard at the current position:

- +\endcode

quit_cb()

@@ -328,123 +328,123 @@ void paste_cb(Fl_Widget*, void* v) { modified, and if so give the user a chance to save it. It then exits from the program: - +\endcode

replace_cb()

The replace callback just shows the replace dialog: -

+\endcode

replace2_cb()

-

This callback will replace the next occurence of the replacement +

This callback will replace the next occurrence of the replacement string. If nothing has been entered for the replacement string, then the replace dialog is displayed instead: -

+\endcode

replall_cb()

-

This callback will replace all occurences of the search +

This callback will replace all occurrences of the search string in the file: -

+\endcode

replcan_cb()

This callback just hides the replace dialog: -

+\endcode

save_cb()

This callback saves the current file. If the current filename is -blank it calls the "save as" callback: +blank it calls the "save as" callback: -

+\endcode

The save_file() function saves the current file to the specified filename. @@ -462,14 +462,14 @@ specified filename.

This callback asks the user for a filename and saves the current file: -

+\endcode

The save_file() function saves the current file to the specified filename. @@ -484,13 +484,13 @@ functions to make it all work:

This function checks to see if the current file needs to be saved. If so, it asks the user if they want to save it: -

+\endcode

load_file()

This function loads the specified file into the textbuf class: -

+\endcode

When loading the file we use the loadfile() -method to "replace" the text in the buffer, or the insertfile() method to insert text in the buffer from the named file. @@ -534,22 +534,22 @@ method to insert text in the buffer from the named file.

This function saves the current buffer to the specified file: -

+\endcode

set_title()

This function checks the changed variable and updates the window label accordingly: -

+\endcode

The main() Function

@@ -576,19 +576,19 @@ The main() function creates a new text buffer, creates a new view (window) for the text, shows the window, loads the file on the command-line (if any), and then enters the FLTK event loop: - +\endcode

Compiling the Editor

@@ -596,15 +596,15 @@ int main(int argc, char **argv) { workspace include the necessary rules to build the editor. You can also compile it using a standard compiler with: - +\endcode

or by using the fltk-config script with: -

+\endcode

As noted in Chapter 1, you may need to include compiler and linker options to tell them where to find the FLTK @@ -636,16 +636,16 @@ size of the text that is drawn.

Styles are defined using the Fl_Text_Display::Style_Table_Entry structure -defined in <FL/Fl_Text_Display.H>: +defined in : -

+\endcode

The color member sets the color for the text, the font member sets the FLTK font index to use, @@ -655,7 +655,7 @@ text. The attr member is currently not used.

For our text editor we'll define 7 styles for plain code, comments, keywords, and preprocessor directives: -

+\endcode

You'll notice that the comments show a letter next to each style - each style in the style buffer is referenced using a @@ -674,27 +674,27 @@ character starting with the letter 'A'.

You call the highlight_data() method to associate the style data and buffer with the text editor widget: -

+\endcode

Finally, you need to add a callback to the main text buffer so that changes to the text buffer are mirrored in the style buffer: -

+\code +textbuf->add_modify_callback(style_update, w->editor); +\endcode

The style_update() function, like the change_cb() function described earlier, is called whenever text is added or removed from the text buffer. It mirrors the changes in the style buffer and then updates the style data as necessary: -

+\endcode

The style_parse() function scans a copy of the text in the buffer and generates the necessary style characters for display. It assumes that parsing begins at the start of a line: -

+\endcode */ -- cgit v1.2.3