XmTextSetString (text_output, buf);
XtFree (string);
XtFree (search_pat);
XtFree (new_pat);
}
In this routine, the pattern search starts at the beginning of the text and searches all of the text in the widget. We are
not interested in the cursor position and do not attempt to move it. The main loop of the function only needs to find
the specified pattern and replace each occurrence with the new text. After each call to XmTextReplace(), we
reread the text, since the old value is no longer valid. As with the search_text() routine, we could easily use
XmTextFindString() to search for the pattern, as we do in the text editor in Section #stexteditor.
15.2.5 Output−only Text
The Text and TextField widgets can be used in an output−only mode by setting the XmN-editable resource to
False. If the user tries to edit the text in a read−only widget, the widget beeps and does not allow the modification.
We used an output−only Text widget in our file browsing application.
Our next example addresses a common need for many developers: a method for displaying text messages while an
application is running. These messages may include status messages about application actions, as well as error
messages from Xlib, Xt, and functions internal to the application. The message area is an important part of the main
window of many applications, as discussed in Chapter 4, The Main Window. While a message area can be
-implemented using a Label widget, an output−only ScrolledText object is better suited for use as a message ...