Hi,

here's a patch that extends the search+replace stuff with regular
expressions. It's paragraph based, that means forward searching for .*
will match the whole paragraph if the cursor is at position 0.

Searching backwards gives basically the same matches as searching
forwards. This may be confusing but I actually don't know another way to
match backwards instead of matching forwards and taking the last match.

The patch is based on 1.0.0, but I took form1.fd from 1.0.0pre6. Seems
like that file hasn't changed since Oct 98, so this should be okay? The
replaceAll stuff is also included.

The patch is intended for 1.1, could someone put it into cvs?

Regards
 Daniel
 
-- 
PGP Key fingerprint = 3D 98 9E D2 00 B6 E0 9D  7E B9 77 23 17 E2 11 6A
http://cgi4all.alabanza.com/glasatelier/
Only in lyxtest/src/: BufferView.o
Only in lyxtest/src/: Bullet.o
Only in lyxtest/src/: Chktex.o
Only in lyxtest/src/: DepTable.o
Only in lyxtest/src/: FileInfo.o
Only in lyxtest/src/: FontInfo.o
Only in lyxtest/src/: FontLoader.o
Only in lyxtest/src/: ImportLaTeX.o
Only in lyxtest/src/: LString.o
Only in lyxtest/src/: LaTeX.o
Only in lyxtest/src/: LaTeXFeatures.o
Only in lyxtest/src/: LaTeXLog.o
Only in lyxtest/src/: LyXAction.o
Only in lyxtest/src/: LyXSendto.o
Only in lyxtest/src/: LyXView.o
Only in lyxtest/src/: Makefile
Only in lyxtest/src/: PaperLayout.o
Only in lyxtest/src/: ParagraphExtra.o
Only in lyxtest/src/: Spacing.o
Only in lyxtest/src/: TableLayout.o
Only in lyxtest/src/: bmtable.o
Only in lyxtest/src/: buffer.o
Only in lyxtest/src/: bufferlist.o
Only in lyxtest/src/: bufferparams.o
diff -ur lyx1.0.0/src/bullet_forms.h lyxtest/src/bullet_forms.h
--- lyx1.0.0/src/bullet_forms.h Wed Jan 27 19:39:31 1999
+++ lyxtest/src/bullet_forms.h  Mon Feb 22 00:19:32 1999
@@ -1,4 +1,4 @@
-/** Header file generated with fdesign on Wed Jan 27 15:30:35 1999.**/
+/** Header file generated with fdesign on Sun Feb 21 22:42:46 1999.**/
 
 #ifndef FD_form_bullet_h_
 #define FD_form_bullet_h_
Only in lyxtest/src/: bullet_forms.o
Only in lyxtest/src/: bullet_forms_cb.o
Only in lyxtest/src/: chset.o
Only in lyxtest/src/: combox.o
Only in lyxtest/src/: config.h
Only in lyxtest/src/: credits.o
diff -ur lyx1.0.0/src/credits_form.h lyxtest/src/credits_form.h
--- lyx1.0.0/src/credits_form.h Wed Jan 27 19:39:31 1999
+++ lyxtest/src/credits_form.h  Mon Feb 22 00:19:32 1999
@@ -1,4 +1,4 @@
-/** Header file generated with fdesign on Wed Jan 27 15:30:35 1999.**/
+/** Header file generated with fdesign on Sun Feb 21 22:42:46 1999.**/
 
 #ifndef FD_form_credits_h_
 #define FD_form_credits_h_
Only in lyxtest/src/: credits_form.o
Only in lyxtest/src/: error.o
Only in lyxtest/src/: figinset.o
Only in lyxtest/src/: filedlg.o
Only in lyxtest/src/: filetools.o
diff -ur lyx1.0.0/src/form1.C lyxtest/src/form1.C
--- lyx1.0.0/src/form1.C        Mon Jan 25 12:43:26 1999
+++ lyxtest/src/form1.C Mon Feb 22 00:19:32 1999
@@ -308,39 +308,45 @@
   FL_OBJECT *obj;
   FD_form_search *fdui = (FD_form_search *) fl_calloc(1, sizeof(FD_form_search));
 
-  fdui->form_search = fl_bgn_form(FL_NO_BOX, 470, 120);
-  obj = fl_add_box(FL_UP_BOX,0,0,470,120,"");
-  obj = fl_add_frame(FL_ENGRAVED_FRAME,320,20,140,80,"");
-  fdui->input_search = obj = 
fl_add_input(FL_NORMAL_INPUT,130,10,180,30,idex(_("Find|#n")));fl_set_button_shortcut(obj,scex(_("Find|#n")),1);
+  fdui->form_search = fl_bgn_form(FL_NO_BOX, 420, 160);
+  obj = fl_add_box(FL_UP_BOX,0,0,420,160,"");
+  obj = fl_add_frame(FL_ENGRAVED_FRAME,300,10,110,100,"");
+  fdui->input_search = obj = 
+fl_add_input(FL_NORMAL_INPUT,110,10,180,30,idex(_("Find|#n")));fl_set_button_shortcut(obj,scex(_("Find|#n")),1);
     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
     fl_set_object_gravity(obj, FL_NorthWest, FL_NorthEast);
     fl_set_object_resize(obj, FL_RESIZE_X);
-  fdui->input_replace = obj = 
fl_add_input(FL_NORMAL_INPUT,130,40,180,30,idex(_("Replace 
with|#W")));fl_set_button_shortcut(obj,scex(_("Replace with|#W")),1);
+  fdui->input_replace = obj = 
+fl_add_input(FL_NORMAL_INPUT,110,40,180,30,idex(_("Replace 
+with|#W")));fl_set_button_shortcut(obj,scex(_("Replace with|#W")),1);
     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
     fl_set_object_gravity(obj, FL_West, FL_East);
     fl_set_object_resize(obj, FL_RESIZE_X);
-  obj = 
fl_add_button(FL_NORMAL_BUTTON,260,80,50,30,idex(_("@>|#F")));fl_set_button_shortcut(obj,scex(_("@>|#F")),1);
+  obj = fl_add_button(FL_NORMAL_BUTTON,210,80,80,30,idex(_(" 
+>|#F")));fl_set_button_shortcut(obj,scex(_(" >|#F")),1);
     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
     fl_set_object_gravity(obj, FL_SouthEast, FL_SouthEast);
     fl_set_object_callback(obj,SearchForwardCB,0);
-  obj = 
fl_add_button(FL_NORMAL_BUTTON,130,80,50,30,idex(_("@<|#B")));fl_set_button_shortcut(obj,scex(_("@<|#B")),1);
+  obj = fl_add_button(FL_NORMAL_BUTTON,110,80,80,30,idex(_(" 
+<|#B")));fl_set_button_shortcut(obj,scex(_(" <|#B")),1);
     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
     fl_set_object_gravity(obj, FL_SouthEast, FL_SouthEast);
     fl_set_object_callback(obj,SearchBackwardCB,0);
-  fdui->replace_button = obj = 
fl_add_button(FL_NORMAL_BUTTON,180,80,80,30,idex(_("Replace|#R#r")));fl_set_button_shortcut(obj,scex(_("Replace|#R#r")),1);
+  fdui->replace_button = obj = 
+fl_add_button(FL_NORMAL_BUTTON,110,120,80,30,idex(_("Replace|#R#r")));fl_set_button_shortcut(obj,scex(_("Replace|#R#r")),1);
     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
     fl_set_object_gravity(obj, FL_SouthEast, FL_SouthEast);
     fl_set_object_callback(obj,SearchReplaceCB,0);
-  obj = 
fl_add_button(FL_NORMAL_BUTTON,10,80,80,30,idex(_("Close|^[")));fl_set_button_shortcut(obj,scex(_("Close|^[")),1);
+  obj = 
+fl_add_button(FL_NORMAL_BUTTON,330,120,80,30,idex(_("Close|^[")));fl_set_button_shortcut(obj,scex(_("Close|^[")),1);
     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
     fl_set_object_gravity(obj, FL_SouthWest, FL_SouthWest);
     fl_set_object_callback(obj,SearchCancelCB,0);
-  fdui->btnCaseSensitive = obj = 
fl_add_checkbutton(FL_PUSH_BUTTON,330,30,150,30,idex(_("Case 
sensitive|#s#S")));fl_set_button_shortcut(obj,scex(_("Case sensitive|#s#S")),1);
+  fdui->btnCaseSensitive = obj = 
+fl_add_checkbutton(FL_PUSH_BUTTON,300,10,150,30,idex(_("Case 
+sensitive|#s#S")));fl_set_button_shortcut(obj,scex(_("Case sensitive|#s#S")),1);
     fl_set_object_color(obj,FL_MCOL,FL_YELLOW);
     fl_set_object_gravity(obj, FL_SouthEast, FL_SouthEast);
-  fdui->btnMatchWord = obj = 
fl_add_checkbutton(FL_PUSH_BUTTON,330,60,150,30,idex(_("Match 
word|#M#m")));fl_set_button_shortcut(obj,scex(_("Match word|#M#m")),1);
+  fdui->btnMatchWord = obj = 
+fl_add_checkbutton(FL_PUSH_BUTTON,300,40,150,30,idex(_("Match 
+word|#M#m")));fl_set_button_shortcut(obj,scex(_("Match word|#M#m")),1);
     fl_set_object_color(obj,FL_MCOL,FL_YELLOW);
     fl_set_object_gravity(obj, FL_SouthEast, FL_SouthEast);
+  fdui->replace_all_button = obj = 
+fl_add_button(FL_NORMAL_BUTTON,210,120,80,30,idex(_("Replace 
+All|#A#a")));fl_set_button_shortcut(obj,scex(_("Replace All|#A#a")),1);
+    fl_set_object_callback(obj,SearchReplaceAllCB,0);
+  fdui->btnMatchPattern = obj = 
+fl_add_checkbutton(FL_PUSH_BUTTON,300,70,140,30,idex(_("Pattern 
+Match|#P#p")));fl_set_button_shortcut(obj,scex(_("Pattern Match|#P#p")),1);
+    fl_set_object_color(obj,FL_MCOL,FL_YELLOW);
+    fl_set_object_gravity(obj, FL_SouthEast, FL_SouthEast);
+    fl_set_object_callback(obj,MatchPatternCB,0);
   fl_end_form();
 
   //fdui->form_search->fdui = fdui;
diff -ur lyx1.0.0/src/form1.h lyxtest/src/form1.h
--- lyx1.0.0/src/form1.h        Wed Jan 27 19:39:31 1999
+++ lyxtest/src/form1.h Mon Feb 22 00:19:32 1999
@@ -1,4 +1,4 @@
-/** Header file generated with fdesign on Wed Jan 27 15:30:36 1999.**/
+/** Header file generated with fdesign on Mon Feb 22 00:19:14 1999.**/
 
 #ifndef FD_KeyMap_h_
 #define FD_KeyMap_h_
@@ -16,6 +16,8 @@
 extern void SearchBackwardCB(FL_OBJECT *, long);
 extern void SearchReplaceCB(FL_OBJECT *, long);
 extern void SearchCancelCB(FL_OBJECT *, long);
+extern void SearchReplaceAllCB(FL_OBJECT *, long);
+extern void MatchPatternCB(FL_OBJECT *, long);
 
 
 /**** Forms and Objects ****/
@@ -120,6 +122,8 @@
        FL_OBJECT *replace_button;
        FL_OBJECT *btnCaseSensitive;
        FL_OBJECT *btnMatchWord;
+       FL_OBJECT *replace_all_button;
+       FL_OBJECT *btnMatchPattern;
 } FD_form_search;
 
 extern FD_form_search * create_form_form_search(void);
Only in lyxtest/src/: form1.o
Only in lyxtest/src/: formula.o
Only in lyxtest/src/: formulamacro.o
Only in lyxtest/src/: inset.o
Only in lyxtest/src/: insetbib.o
Only in lyxtest/src/: insetcommand.o
Only in lyxtest/src/: inseterror.o
Only in lyxtest/src/: insetinclude.o
Only in lyxtest/src/: insetindex.o
Only in lyxtest/src/: insetinfo.o
Only in lyxtest/src/: insetlabel.o
Only in lyxtest/src/: insetlatex.o
Only in lyxtest/src/: insetlatexaccent.o
Only in lyxtest/src/: insetloa.o
Only in lyxtest/src/: insetlof.o
Only in lyxtest/src/: insetlot.o
Only in lyxtest/src/: insetparent.o
Only in lyxtest/src/: insetquotes.o
Only in lyxtest/src/: insetref.o
Only in lyxtest/src/: insetspecialchar.o
Only in lyxtest/src/: insettoc.o
Only in lyxtest/src/: inseturl.C.bck
Only in lyxtest/src/: inseturl.o
Only in lyxtest/src/: intl.o
Only in lyxtest/src/: kbmap.o
Only in lyxtest/src/: lastfiles.o
diff -ur lyx1.0.0/src/latexoptions.h lyxtest/src/latexoptions.h
--- lyx1.0.0/src/latexoptions.h Wed Jan 27 19:39:32 1999
+++ lyxtest/src/latexoptions.h  Mon Feb 22 00:19:32 1999
@@ -1,4 +1,4 @@
-/** Header file generated with fdesign on Wed Jan 27 15:30:36 1999.**/
+/** Header file generated with fdesign on Sun Feb 21 22:42:46 1999.**/
 
 #ifndef FD_LaTeXOptions_h_
 #define FD_LaTeXOptions_h_
Only in lyxtest/src/: latexoptions.o
Only in lyxtest/src/: layout.o
diff -ur lyx1.0.0/src/layout_forms.h lyxtest/src/layout_forms.h
--- lyx1.0.0/src/layout_forms.h Wed Jan 27 19:39:32 1999
+++ lyxtest/src/layout_forms.h  Mon Feb 22 00:19:32 1999
@@ -1,4 +1,4 @@
-/** Header file generated with fdesign on Wed Jan 27 15:30:36 1999.**/
+/** Header file generated with fdesign on Sun Feb 21 22:42:46 1999.**/
 
 #ifndef FD_form_document_h_
 #define FD_form_document_h_
Only in lyxtest/src/: layout_forms.o
Only in lyxtest/src/: lyx
diff -ur lyx1.0.0/src/lyx.h lyxtest/src/lyx.h
--- lyx1.0.0/src/lyx.h  Wed Jan 27 19:39:33 1999
+++ lyxtest/src/lyx.h   Mon Feb 22 00:19:32 1999
@@ -1,4 +1,4 @@
-/** Header file generated with fdesign on Wed Jan 27 15:30:26 1999.**/
+/** Header file generated with fdesign on Sun Feb 21 22:42:46 1999.**/
 
 #ifndef FD_form_title_h_
 #define FD_form_title_h_
Only in lyxtest/src/: lyx.o
Only in lyxtest/src/: lyx_cb.C.bck
Only in lyxtest/src/: lyx_cb.C.orig
Only in lyxtest/src/: lyx_cb.h.bck
Only in lyxtest/src/: lyx_cb.h.orig
Only in lyxtest/src/: lyx_cb.o
Only in lyxtest/src/: lyx_gui.o
Only in lyxtest/src/: lyx_gui_misc.o
Only in lyxtest/src/: lyx_main.C.bck
Only in lyxtest/src/: lyx_main.C.orig
Only in lyxtest/src/: lyx_main.h.orig
Only in lyxtest/src/: lyx_main.o
diff -ur lyx1.0.0/src/lyx_sendfax.h lyxtest/src/lyx_sendfax.h
--- lyx1.0.0/src/lyx_sendfax.h  Wed Jan 27 19:39:35 1999
+++ lyxtest/src/lyx_sendfax.h   Mon Feb 22 00:19:32 1999
@@ -1,4 +1,4 @@
-/** Header file generated with fdesign on Wed Jan 27 15:30:37 1999.**/
+/** Header file generated with fdesign on Sun Feb 21 22:42:46 1999.**/
 
 #ifndef FD_xsendfax_h_
 #define FD_xsendfax_h_
Only in lyxtest/src/: lyx_sendfax.o
Only in lyxtest/src/: lyx_sendfax_main.o
Only in lyxtest/src/: lyx_sty.o
Only in lyxtest/src/: lyxdraw.o
Only in lyxtest/src/: lyxfont.o
diff -ur lyx1.0.0/src/lyxfr0.C lyxtest/src/lyxfr0.C
--- lyx1.0.0/src/lyxfr0.C       Mon Oct 26 23:18:28 1998
+++ lyxtest/src/lyxfr0.C        Mon Feb 22 00:32:52 1999
@@ -68,12 +68,24 @@
 }
 
 
+void SearchReplaceAllCB(FL_OBJECT *, long)
+{
+       _FR.SearchReplaceAllCB();
+}
+
+
+void MatchPatternCB(FL_OBJECT *, long)
+{
+       _FR.MatchPatternCB();
+}
+
 //--------------------- LyXFindReplace0's implementation ------------
 
 LyXFindReplace0::LyXFindReplace0()
 {
-       fCaseSensitive = false;
+       fCaseSensitive = false;
        fMatchWord = false;
+       fMatchPattern = false;
 }
 
 
@@ -99,6 +111,7 @@
        lsSearch = fl_get_input(fd_fs->input_search);
        fCaseSensitive = fl_get_button(fd_fs->btnCaseSensitive);
        fMatchWord = fl_get_button(fd_fs->btnMatchWord);
+       fMatchPattern = fl_get_button(fd_fs->btnMatchPattern);
 }
 
 
@@ -130,6 +143,25 @@
                fl_set_object_lcol(fd_fs->replace_button,FL_INACTIVE);
                fl_set_object_lcol(fd_fs->input_replace, FL_INACTIVE);
        }
+}
+
+
+void LyXFindReplace0::MatchPatternCB() {
+       FD_form_search *fd_fs = fd_form_search;
+       fMatchPattern = fl_get_button(fd_fs->btnMatchPattern);
+       if( fMatchPattern ) {
+               fl_set_object_lcol(fd_fs->btnMatchWord,FL_INACTIVE);
+               fl_set_button(fd_fs->btnMatchWord,0);
+               fl_deactivate_object(fd_fs->btnMatchWord);
+       } else {
+               fl_set_object_lcol(fd_fs->btnMatchWord,FL_BLACK);
+               fl_activate_object(fd_fs->btnMatchWord);
+       }
+}
+
+
+bool LyXFindReplace0::MatchPattern() {
+       return fMatchPattern;
 }
 
 
Only in lyxtest/src/: lyxfr0.C.bck
diff -ur lyx1.0.0/src/lyxfr0.h lyxtest/src/lyxfr0.h
--- lyx1.0.0/src/lyxfr0.h       Mon Oct 26 23:18:28 1998
+++ lyxtest/src/lyxfr0.h        Mon Feb 22 00:20:09 1999
@@ -43,14 +43,20 @@
        ///
        virtual void SearchCancelCB();
        ///
-       virtual void SearchCB(bool fForward) = 0;
+       virtual void MatchPatternCB();
+       ///
+       virtual bool SearchCB(bool fForward) = 0;
        ///
        virtual void SearchReplaceCB() = 0;
+       ///
+       virtual void SearchReplaceAllCB() = 0;
 protected:
        ///
        bool            fCaseSensitive;
        /// Match complete word only.
        bool            fMatchWord;
+       /// Handle search string as regex pattern.
+       bool            fMatchPattern;
        /// replace buttons enabled?
        bool            fReplaceEnabled;
        /// search string
@@ -69,6 +75,10 @@
        bool CaseSensitive() { return fCaseSensitive; }
        ///
        bool MatchWord() { return fMatchWord; }
+       ///
+       bool MatchPattern();
+       ///
+       bool SetMatchPattern();
        ///
        LString const SearchString() { return lsSearch; }
        ///
Only in lyxtest/src/: lyxfr0.h.bck
Only in lyxtest/src/: lyxfr0.o
diff -ur lyx1.0.0/src/lyxfr1.C lyxtest/src/lyxfr1.C
--- lyx1.0.0/src/lyxfr1.C       Tue Jan 12 10:12:13 1999
+++ lyxtest/src/lyxfr1.C        Mon Feb 22 00:37:58 1999
@@ -13,6 +13,7 @@
 #include <ctype.h>
 #include <string.h>
 #include <stdlib.h>
+#include <regex.h>
 
 #ifdef __GNUG__
 #pragma implementation
@@ -31,8 +32,10 @@
 #include "gettext.h"
 #include "LyXView.h"
 #include "lyx_gui_misc.h"
+#include "minibuffer.h"
 
 extern BufferView *current_view; // called too many times in this file...
+extern MiniBuffer *minibuffer;
 
 // Maximum length copied from the current selection to the search string
 const int LYXSEARCH_MAXLEN =  128;
@@ -169,7 +172,54 @@
 }
 
 
-void LyXFindReplace1::SearchCB(bool fForward)
+// replaces all occurences of a string (1999-01-15, [EMAIL PROTECTED])
+void LyXFindReplace1::SearchReplaceAllCB()
+{
+       LyXText         *ltCur;
+
+       if (!current_view->getScreen())
+               return;
+       if (current_view->currentBuffer()->isReadonly())
+               return;
+
+       LString const replacestring = ReplaceString();
+       current_view->getScreen()->HideCursor();
+       // start at top
+       current_view->currentBuffer()->text->ClearSelection();
+       current_view->currentBuffer()->text->CursorTop();
+
+       int replace_count = 0;
+       do {
+               ltCur = current_view->currentBuffer()->text;    
+               if (ltCur->selection) {
+                       current_view->currentBuffer()->update(-2);
+                       current_view->getScreen()->ToggleSelection(false);
+                       current_view->currentBuffer()->text->
+                               ReplaceSelectionWithString(replacestring.c_str());
+                       current_view->currentBuffer()->text->
+                               SetSelectionOverString(replacestring.c_str());
+                       current_view->currentBuffer()->update(1); 
+                       replace_count++;
+               }
+       } while( SearchCB(true) );
+
+       if( replace_count == 0 ) {
+               LyXBell();      
+               minibuffer->Set(_("String not found!"));
+       } else {
+               if( replace_count == 1 ) {
+                       minibuffer->Set(_("1 string has been replaced."));
+               } else {
+                       LString str;
+                       str += replace_count;
+                       str += _(" strings have been replaced.");
+                       minibuffer->Set(str);
+               }
+       }
+}
+
+
+bool LyXFindReplace1::SearchCB(bool fForward)
 {
        LyXText         *ltCur;
 
@@ -177,7 +227,7 @@
        searchForward = fForward;
        
        if (!current_view->getScreen())
-               return;
+               return(false);
    
        current_view->getScreen()->HideCursor();
        current_view->currentBuffer()->update(-2);
@@ -187,8 +237,8 @@
                                                  ltCur->sel_start_cursor;
 
        ReInitFromForm();
-       iLenSelected = SearchString().length();
    
+       bool result;
        if (!ValidSearchData() ||
            (fForward ? SearchForward(ltCur) : SearchBackward(ltCur))) {
                current_view->currentBuffer()->update(-2);
@@ -198,13 +248,23 @@
                current_view->currentBuffer()->text->ClearSelection();
 
                // set the new selection 
+               if( ! MatchPattern() ) {
+                       iLenSelected = SearchString().length();
+               }
                SetSelectionOverLenChars(current_view->currentBuffer()->text, 
iLenSelected);
                current_view->getScreen()->ToggleSelection(false);
-       } else 
-               LyXBell();      
+               minibuffer->Set(_("Found."));
+               result = true;
+       } else {
+               LyXBell();
+               minibuffer->Set(_("String not found!"));
+               result = false;
+       }
    
        if (current_view->getWorkArea()->focus)
                current_view->getScreen()->ShowCursor();
+
+       return(result);
 }
 
 
@@ -213,20 +273,30 @@
 // (was: LyXText::SearchForward(char const* string) in text2.C )
 bool LyXFindReplace1::SearchForward(LyXText *lt)
 {
-       LyXParagraph *par;
-       int pos;
-
-       par = lt->cursor.par;
-       pos = lt->cursor.pos;
-
-       while (par && !IsSearchStringInText(par,pos)) {
-               if (pos<par->Last()-1)
-                       pos++;
-               else {
+       LyXParagraph *par = lt->cursor.par;
+       int pos = lt->cursor.pos;
+       bool regex_okay = true;                 // to avoid the use of an exception :-(
+       
+       if( MatchPattern() ) {
+               while(par && ! IsPatternInParagraph(par,&pos,true,&regex_okay)) {
+                       if( ! regex_okay ) {
+                               WriteAlert(_("Error!"), _("\nThe pattern you entered 
+was no valid POSIX regular expression.\nSee 'man 7 regex' if you are on a unix 
+system.\n"));
+                               return false;           
+                       }
                        pos = 0;
                        par = par->Next();
                }
+       } else {
+               while (par && !IsSearchStringInText(par,pos)) {
+                       if (pos<par->Last()-1)
+                               pos++;
+                       else {
+                               pos = 0;
+                               par = par->Next();
+                       }
+               }
        }
+
        if (par) {
                lt->SetCursor(par,pos);
                return true;
@@ -242,19 +312,33 @@
 {
        LyXParagraph *par = lt->cursor.par;
        int pos = lt->cursor.pos;
+       bool regex_okay = true;                 // to avoid the use of an exception :-(
 
-       do {
-               if (pos>0)
-                       pos--;
-               else {
-                       // We skip empty paragraphs (Asger)
-                       do {
-                               par = par->Previous();
-                               if (par)
-                                       pos = par->Last()-1;
-                       } while (par && pos<0);
+       if( MatchPattern() ) {
+               while(par && ! IsPatternInParagraph(par,&pos,false,&regex_okay)) {
+                       if( ! regex_okay ) {
+                               WriteAlert(_("Error!"), _("\nThe pattern you entered 
+was no valid POSIX regular expression.\nSee 'man 7 regex' if you are on a unix 
+system.\n"));
+                               return false;           
+                       }
+                       par = par->Previous();
+                       if( par ) {
+                               pos = par->Last();
+                       }
                }
-       } while (par && !IsSearchStringInText(par,pos));
+       } else {
+               do {
+                       if (pos>0)
+                               pos--;
+                       else {
+                               // We skip empty paragraphs (Asger)
+                               do {
+                                       par = par->Previous();
+                               if (par)
+                                               pos = par->Last()-1;
+                               } while (par && pos<0);
+                       }
+               } while (par && !IsSearchStringInText(par,pos));
+       }
   
        if (par) {
                lt->SetCursor(par,pos);
@@ -327,4 +411,85 @@
                }
        }
        return false;
+}
+
+
+// if the user selected 'Pattern Match' we use the POSIX regex stuff
+// (dnaber, 1999-02-21)
+// TODO:       
+//             ***-backwards: ein buchst. wird überspr. bei paragraphen-wechsel
+//             -docs: regex is paragraph-based, backwards is like forwards but in the 
+other direction
+//             -use oo-wrapper for regex?
+bool LyXFindReplace1::IsPatternInParagraph(LyXParagraph *par, int *pos, bool forward, 
+bool *regex_okay)
+{
+               
+       LString textstring = par->GetText();
+       LString string_copy = textstring;
+       regmatch_t matches[1];
+       regmatch_t oldmatches[1];
+       regex_t preg;
+
+       int eflags;
+       if (CaseSensitive()) {
+               eflags = REG_EXTENDED;
+       } else {
+               eflags = REG_EXTENDED | REG_ICASE;
+       }
+
+       int err_code = regcomp( &preg, SearchString().c_str(), eflags );
+       if( err_code != 0 ) {
+               *regex_okay = false;
+               return false;
+       }
+
+       int startpos = 0;
+       int endpos;
+       bool found = false;
+       
+       LyXText *lt;
+       lt = current_view->currentBuffer()->text;       
+       if( lt->selection && *pos == 0 && lt->sel_start_cursor.pos == 0 && ! forward ) 
+{
+               return false;
+       }
+       endpos = *pos;
+                       
+       // forward search: find the first occurence; backward search: find all
+       // occurences and set the cursor on the last one
+       do {
+               textstring = string_copy;
+               int frompos;
+               int topos;
+               if( forward ) {
+                       frompos = *pos + startpos;
+                       topos = textstring.length()-1;
+               } else {
+                       frompos = startpos;
+                       topos = endpos - 1;
+               }
+               if( frompos > topos )
+                       break;
+               textstring.substring(frompos, topos);
+           err_code = regexec( &preg, textstring.c_str(), 1, matches, 0 );
+               if( err_code == 0 && (matches[0].rm_so != -1) ) {
+                       found = true;           
+               } else {
+                       break;
+               }
+               oldmatches[0].rm_so = matches[0].rm_so + startpos;
+               oldmatches[0].rm_eo = matches[0].rm_eo + startpos;
+               startpos += matches[0].rm_eo;
+       } while( found && (!forward) );
+
+       if( found ) {
+               if( forward ) {
+                       *pos = ((int) matches[0].rm_so) + *pos;
+                       iLenSelected = static_cast<int> (matches[0].rm_eo - 
+matches[0].rm_so);
+               } else {
+                       *pos = (int) oldmatches[0].rm_so;       
+                       iLenSelected = static_cast<int> (oldmatches[0].rm_eo - 
+oldmatches[0].rm_so);
+               }
+               return true;
+       } else {
+               return false;
+       }
 }
Only in lyxtest/src/: lyxfr1.C.bck
diff -ur lyx1.0.0/src/lyxfr1.h lyxtest/src/lyxfr1.h
--- lyx1.0.0/src/lyxfr1.h       Tue Jan 12 10:12:13 1999
+++ lyxtest/src/lyxfr1.h        Mon Feb 22 00:34:24 1999
@@ -27,15 +27,17 @@
        virtual void StartSearch();
 
        ///
-       virtual void SearchCB(bool fForward);
+       virtual bool SearchCB(bool fForward);
        ///
        virtual void SearchReplaceCB();
+       ///
+       virtual void SearchReplaceAllCB();
 protected:
-       /// Set by IsSearchStringInText:
+       /// Set by IsSearchStringInText and IsPatternInParagraph:
        int     iLenSelected;
 
-        /// Direction we are searching:
-        bool searchForward;
+       /// Direction we are searching:
+       bool searchForward;
     
        ///
        bool SearchForward(LyXText *lt);
@@ -54,5 +56,7 @@
 
        /// returns true if the specified string is at the specified position 
        bool IsSearchStringInText(LyXParagraph *par, int pos);
+       /// 
+       bool IsPatternInParagraph(LyXParagraph *par, int *pos, bool forward, bool 
+*regex_okay);
 };
 #endif
Only in lyxtest/src/: lyxfr1.h.bck
Only in lyxtest/src/: lyxfr1.o
Only in lyxtest/src/: lyxfunc.C.bck
Only in lyxtest/src/: lyxfunc.C.orig
Only in lyxtest/src/: lyxfunc.o
Only in lyxtest/src/: lyxlex.o
Only in lyxtest/src/: lyxlookup.o
diff -ur lyx1.0.0/src/lyxparagraph.h lyxtest/src/lyxparagraph.h
--- lyx1.0.0/src/lyxparagraph.h Wed Jan 20 15:41:44 1999
+++ lyxtest/src/lyxparagraph.h  Sun Feb 21 23:11:42 1999
@@ -314,7 +314,9 @@
        ///
        char GetChar(int pos);
        ///
-        LString GetWord(int &);
+       LString GetWord(int &);
+       ///
+       LString GetText();
        ///
        void SetFont(int pos, LyXFont const & font);
        /// Returns the height of the highest font in range
Only in lyxtest/src/: lyxparagraph.h.bck
Only in lyxtest/src/: lyxrc.o
Only in lyxtest/src/: lyxserver.o
Only in lyxtest/src/: lyxsum.o
Only in lyxtest/src/: lyxtext.h.bck
Only in lyxtest/src/: lyxtext.h.orig
Only in lyxtest/src/: lyxvc.o
Only in lyxtest/src/: main.o
Only in lyxtest/src/: math_cursor.o
Only in lyxtest/src/: math_delim.o
Only in lyxtest/src/: math_draw.o
diff -ur lyx1.0.0/src/math_forms.h lyxtest/src/math_forms.h
--- lyx1.0.0/src/math_forms.h   Wed Jan 27 19:39:35 1999
+++ lyxtest/src/math_forms.h    Mon Feb 22 00:19:32 1999
@@ -1,4 +1,4 @@
-/** Header file generated with fdesign on Wed Jan 27 15:30:37 1999.**/
+/** Header file generated with fdesign on Sun Feb 21 22:42:46 1999.**/
 
 #ifndef FD_panel_h_
 #define FD_panel_h_
Only in lyxtest/src/: math_forms.o
Only in lyxtest/src/: math_hash.o
Only in lyxtest/src/: math_inset.o
Only in lyxtest/src/: math_iter.o
Only in lyxtest/src/: math_macro.o
Only in lyxtest/src/: math_panel.o
Only in lyxtest/src/: math_parser.o
Only in lyxtest/src/: math_symbols.o
Only in lyxtest/src/: math_utils.o
Only in lyxtest/src/: math_write.o
Only in lyxtest/src/: menus.o
Only in lyxtest/src/: minibuffer.o
diff -ur lyx1.0.0/src/paragraph.C lyxtest/src/paragraph.C
--- lyx1.0.0/src/paragraph.C    Mon Feb  1 19:36:43 1999
+++ lyxtest/src/paragraph.C     Sun Feb 21 23:12:47 1999
@@ -1039,6 +1039,19 @@
 }
 
 
+// dnaber, 1999-02-14
+// used by lyxfr1.C
+LString LyXParagraph::GetText() {
+       LString str;
+       int i = 0;
+       while( GetChar(i) != '\0' ) {
+               str += GetChar(i);
+               i++;
+       }
+       return str;
+}
+
+
 int LyXParagraph::Last()
 {
        if (next && next->footnoteflag == LyXParagraph::CLOSED_FOOTNOTE)
Only in lyxtest/src/: paragraph.C.bck
Only in lyxtest/src/: paragraph.o
Only in lyxtest/src/: pathstack.o
diff -ur lyx1.0.0/src/print_form.h lyxtest/src/print_form.h
--- lyx1.0.0/src/print_form.h   Wed Jan 27 19:39:35 1999
+++ lyxtest/src/print_form.h    Mon Feb 22 00:19:32 1999
@@ -1,4 +1,4 @@
-/** Header file generated with fdesign on Wed Jan 27 15:30:37 1999.**/
+/** Header file generated with fdesign on Sun Feb 21 22:42:46 1999.**/
 
 #ifndef FD_form_print_h_
 #define FD_form_print_h_
Only in lyxtest/src/: print_form.o
Only in lyxtest/src/: screen.o
diff -ur lyx1.0.0/src/sp_form.h lyxtest/src/sp_form.h
--- lyx1.0.0/src/sp_form.h      Wed Jan 27 19:39:35 1999
+++ lyxtest/src/sp_form.h       Mon Feb 22 00:19:32 1999
@@ -1,4 +1,4 @@
-/** Header file generated with fdesign on Wed Jan 27 15:30:37 1999.**/
+/** Header file generated with fdesign on Sun Feb 21 22:42:46 1999.**/
 
 #ifndef FD_form_spell_options_h_
 #define FD_form_spell_options_h_
Only in lyxtest/src/: sp_form.o
Only in lyxtest/src/: spellchecker.o
Only in lyxtest/src/: syscall.o
Only in lyxtest/src/: syscontr.o
Only in lyxtest/src/: syssingleton.o
Only in lyxtest/src/: table.o
Only in lyxtest/src/: tex-accent.o
Only in lyxtest/src/: tex-strings.o
Only in lyxtest/src/: texoptions.o
Only in lyxtest/src/: texrow.o
Only in lyxtest/src/: text.C.bck
Only in lyxtest/src/: text.C.orig
Only in lyxtest/src/: text.o
Only in lyxtest/src/: text2.C.bck
Only in lyxtest/src/: text2.C.orig
Only in lyxtest/src/: text2.o
Only in lyxtest/src/: toolbar.o
Only in lyxtest/src/: trans.o
Only in lyxtest/src/: trans_mgr.o
Only in lyxtest/src/: vspace.o
Magic: 13000

Internal Form Definition File
    (do not change)

Number of forms: 5
Unit of measure: FL_COORD_PIXEL

=============== FORM ===============
Name: KeyMap
Width: 400
Height: 400
Number of Objects: 20

--------------------
class: FL_BOX
type: UP_BOX
box: 0 0 400 400
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_FRAME
type: ENGRAVED_FRAME
box: 200 210 190 140
boxtype: FL_NO_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 210 280 170 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Set Charset|#C
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: AcceptChset
callback: 
argument: 

--------------------
class: FL_TEXT
type: NORMAL_TEXT
box: 210 310 170 30
boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
style: FL_BOLD_STYLE+FL_EMBOSSED_STYLE
size: FL_NORMAL_SIZE
lcol: FL_RED
label: Charset not found!
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: ChsetErr
callback: 
argument: 

--------------------
class: FL_TEXT
type: NORMAL_TEXT
box: 290 60 100 90
boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
style: FL_BOLD_STYLE+FL_EMBOSSED_STYLE
size: FL_NORMAL_SIZE
lcol: FL_RED
label: Error:\n\nKeymap\nnot found
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: KeymapErr
callback: 
argument: 

--------------------
class: FL_INPUT
type: NORMAL_INPUT
box: 210 240 170 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_TOP
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Character set:|#H
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: Charset
callback: 
argument: 

--------------------
class: FL_FRAME
type: ENGRAVED_FRAME
box: 10 210 180 100
boxtype: FL_NO_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_FRAME
type: ENGRAVED_FRAME
box: 10 20 380 170
boxtype: FL_NO_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_TOP
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_NONE
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_BUTTON
type: RETURN_BUTTON
box: 130 360 120 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: OK
shortcut: ^M
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: Accept
callback: 
argument: 

--------------------
class: FL_INPUT
type: NORMAL_INPUT
box: 120 70 160 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Other...|#O
shortcut: 
resize: FL_RESIZE_NONE
gravity: FL_NoGravity FL_NoGravity
name: OtherKeymap
callback: 
argument: 

--------------------
class: FL_INPUT
type: NORMAL_INPUT
box: 120 150 160 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Other...|#T
shortcut: 
resize: FL_RESIZE_NONE
gravity: FL_NoGravity FL_NoGravity
name: OtherKeymap2
callback: 
argument: 

--------------------
class: FL_TEXT
type: NORMAL_TEXT
box: 20 10 90 20
boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
style: FL_BOLD_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Language
shortcut: 
resize: FL_RESIZE_NONE
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_TEXT
type: NORMAL_TEXT
box: 20 200 80 20
boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
style: FL_BOLD_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Mapping
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_BEGIN_GROUP
type: 0
box: 0 0 0 0
boxtype: FL_NO_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: KeyMapOn
callback: 
argument: 

--------------------
class: FL_CHECKBUTTON
type: RADIO_BUTTON
box: 10 250 180 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Primary key map|#r
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: KeyOnBtn
callback: 
argument: 

--------------------
class: FL_CHECKBUTTON
type: RADIO_BUTTON
box: 10 220 180 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: No key mapping|#N
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: KeyOffBtn
callback: 
argument: 

--------------------
class: FL_CHECKBUTTON
type: RADIO_BUTTON
box: 10 280 180 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Secondary key map|#e
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: KeyOnBtn2
callback: 
argument: 

--------------------
class: FL_END_GROUP
type: 0
box: 0 0 0 0
boxtype: FL_NO_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_TEXT
type: NORMAL_TEXT
box: 20 110 100 30
boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_RIGHT|FL_ALIGN_INSIDE
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Secondary
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_TEXT
type: NORMAL_TEXT
box: 20 30 100 30
boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_RIGHT|FL_ALIGN_INSIDE
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Primary
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

=============== FORM ===============
Name: Figure
Width: 420
Height: 390
Number of Objects: 43

--------------------
class: FL_BOX
type: UP_BOX
box: 0 0 420 390
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_FRAME
type: ENGRAVED_FRAME
box: 230 220 180 80
boxtype: FL_NO_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_FRAME
type: ENGRAVED_FRAME
box: 230 60 180 140
boxtype: FL_NO_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_FRAME
type: ENGRAVED_FRAME
box: 10 244 200 56
boxtype: FL_NO_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_FRAME
type: ENGRAVED_FRAME
box: 10 60 200 160
boxtype: FL_NO_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_INPUT
type: NORMAL_INPUT
box: 80 10 230 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: EPS file|#E
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: EpsFile
callback: GraphicsCB
argument: 2

--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 270 350 140 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Full Screen Preview|#v
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: Preview
callback: GraphicsCB
argument: 1

--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 320 10 90 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Browse...|#B
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: Browse
callback: GraphicsCB
argument: 0

--------------------
class: FL_INPUT
type: FLOAT_INPUT
box: 20 180 80 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: Width
callback: GraphicsCB
argument: 2

--------------------
class: FL_INPUT
type: FLOAT_INPUT
box: 120 180 80 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: Height
callback: GraphicsCB
argument: 2

--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 100 350 60 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Apply|#A
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: ApplyBtn
callback: GraphicsCB
argument: 7

--------------------
class: FL_BUTTON
type: RETURN_BUTTON
box: 10 350 70 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: OK
shortcut: ^M
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: OkBtn
callback: GraphicsCB
argument: 8

--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 180 350 70 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Cancel|^[
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: CancelBtn
callback: GraphicsCB
argument: 9

--------------------
class: FL_CHECKBUTTON
type: PUSH_BUTTON
box: 230 230 180 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Display Frame|#F
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: Frame
callback: GraphicsCB
argument: 53

--------------------
class: FL_CHECKBUTTON
type: PUSH_BUTTON
box: 230 260 180 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Do Translations|#r
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: Translations
callback: GraphicsCB
argument: 54

--------------------
class: FL_TEXT
type: NORMAL_TEXT
box: 240 210 70 20
boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
style: FL_BOLD_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Options
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_INPUT
type: FLOAT_INPUT
box: 100 260 80 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Angle:|#L
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: Angle
callback: GraphicsCB
argument: 2

--------------------
class: FL_BEGIN_GROUP
type: 0
box: 0 0 0 0
boxtype: FL_NO_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: HeightGrp
callback: 
argument: 

--------------------
class: FL_CHECKBUTTON
type: RADIO_BUTTON
box: 110 130 110 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: % of Page|#g
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: page2
callback: GraphicsCB
argument: 23

--------------------
class: FL_CHECKBUTTON
type: RADIO_BUTTON
box: 110 70 80 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Default|#t
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: Default2
callback: GraphicsCB
argument: 20

--------------------
class: FL_CHECKBUTTON
type: RADIO_BUTTON
box: 110 90 60 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: cm|#m
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: cm2
callback: GraphicsCB
argument: 21

--------------------
class: FL_CHECKBUTTON
type: RADIO_BUTTON
box: 110 110 80 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: inches|#h
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: in2
callback: GraphicsCB
argument: 22

--------------------
class: FL_END_GROUP
type: 0
box: 0 0 0 0
boxtype: FL_NO_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_TEXT
type: NORMAL_TEXT
box: 237 50 53 20
boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
style: FL_BOLD_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Display
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_TEXT
type: NORMAL_TEXT
box: 120 50 60 20
boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
style: FL_BOLD_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Height
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: HeightLabel
callback: 
argument: 

--------------------
class: FL_TEXT
type: NORMAL_TEXT
box: 20 50 60 20
boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
style: FL_BOLD_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Width
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: WidthLabel
callback: 
argument: 

--------------------
class: FL_TEXT
type: NORMAL_TEXT
box: 20 230 90 30
boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
style: FL_BOLD_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Rotation
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_BEGIN_GROUP
type: 0
box: 0 0 0 0
boxtype: FL_NO_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: DisplayGrp
callback: 
argument: 

--------------------
class: FL_CHECKBUTTON
type: RADIO_BUTTON
box: 230 130 180 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Display in Color|#D
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: Wysiwyg3
callback: GraphicsCB
argument: 63

--------------------
class: FL_CHECKBUTTON
type: RADIO_BUTTON
box: 230 160 180 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Do not display this figure|#y
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: Wysiwyg0
callback: GraphicsCB
argument: 3

--------------------
class: FL_CHECKBUTTON
type: RADIO_BUTTON
box: 230 100 180 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Display as Grayscale|#i
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: Wysiwyg2
callback: GraphicsCB
argument: 43

--------------------
class: FL_CHECKBUTTON
type: RADIO_BUTTON
box: 230 70 180 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Display as Monochrome|#s
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: Wysiwyg1
callback: GraphicsCB
argument: 33

--------------------
class: FL_END_GROUP
type: 0
box: 0 0 0 0
boxtype: FL_NO_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_BEGIN_GROUP
type: 0
box: 0 0 0 0
boxtype: FL_NO_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: WidthGrp
callback: 
argument: 

--------------------
class: FL_CHECKBUTTON
type: RADIO_BUTTON
box: 10 70 80 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Default|#U
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: Default1
callback: GraphicsCB
argument: 10

--------------------
class: FL_CHECKBUTTON
type: RADIO_BUTTON
box: 10 90 60 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: cm|#c
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: cm1
callback: GraphicsCB
argument: 11

--------------------
class: FL_CHECKBUTTON
type: RADIO_BUTTON
box: 10 110 80 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: inches|#n
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: in1
callback: GraphicsCB
argument: 12

--------------------
class: FL_CHECKBUTTON
type: RADIO_BUTTON
box: 10 130 110 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: % of Page|#P
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: page1
callback: GraphicsCB
argument: 13

--------------------
class: FL_CHECKBUTTON
type: RADIO_BUTTON
box: 10 150 110 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: % of Column|#o
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: column1
callback: GraphicsCB
argument: 14

--------------------
class: FL_END_GROUP
type: 0
box: 0 0 0 0
boxtype: FL_NO_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_FRAME
type: ENGRAVED_FRAME
box: 10 310 400 30
boxtype: FL_NO_BOX
colors: FL_BLACK FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_INPUT
type: NORMAL_INPUT
box: 150 310 260 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Caption|#k
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: Subcaption
callback: GraphicsCB
argument: 2

--------------------
class: FL_CHECKBUTTON
type: PUSH_BUTTON
box: 10 310 90 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Subfigure|#q
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: Subfigure
callback: GraphicsCB
argument: 70

=============== FORM ===============
Name: FileDlg
Width: 440
Height: 380
Number of Objects: 13

--------------------
class: FL_BOX
type: UP_BOX
box: 0 0 440 380
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_TEXT
type: NORMAL_TEXT
box: 10 260 420 30
boxtype: FL_SHADOW_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_X
gravity: FL_SouthWest FL_SouthEast
name: FileInfo
callback: 
argument: 

--------------------
class: FL_INPUT
type: NORMAL_INPUT
box: 100 10 330 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Directory:|#D
shortcut: 
resize: FL_RESIZE_X
gravity: FL_NorthWest FL_NorthEast
name: DirBox
callback: 
argument: 

--------------------
class: FL_INPUT
type: NORMAL_INPUT
box: 100 40 330 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Pattern:|#P
shortcut: 
resize: FL_RESIZE_X
gravity: FL_NorthWest FL_NorthEast
name: PatBox
callback: 
argument: 

--------------------
class: FL_BROWSER
type: HOLD_BROWSER
box: 10 80 320 170
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_TOP
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NorthWest FL_SouthEast
name: List
callback: 
argument: 

--------------------
class: FL_INPUT
type: NORMAL_INPUT
box: 100 300 330 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Filename:|#F
shortcut: 
resize: FL_RESIZE_X
gravity: FL_SouthWest FL_SouthEast
name: Filename
callback: 
argument: 

--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 340 80 90 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Rescan|#R#r
shortcut: 
resize: FL_RESIZE_NONE
gravity: FL_NorthEast FL_NorthEast
name: Rescan
callback: 
argument: 

--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 340 120 90 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Home|#H#h
shortcut: 
resize: FL_RESIZE_NONE
gravity: FL_NorthEast FL_NorthEast
name: Home
callback: 
argument: 

--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 340 160 90 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: User1|#1
shortcut: 
resize: FL_RESIZE_NONE
gravity: FL_NorthEast FL_NorthEast
name: User1
callback: 
argument: 

--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 340 200 90 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: User2|#2
shortcut: 
resize: FL_RESIZE_NONE
gravity: FL_NorthEast FL_NorthEast
name: User2
callback: 
argument: 

--------------------
class: FL_BUTTON
type: RETURN_BUTTON
box: 220 340 100 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: OK
shortcut: ^M
resize: FL_RESIZE_NONE
gravity: FL_SouthEast FL_SouthEast
name: Ready
callback: 
argument: 

--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 330 340 100 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Cancel|^[
shortcut: 
resize: FL_RESIZE_NONE
gravity: FL_SouthEast FL_SouthEast
name: Cancel
callback: 
argument: 

--------------------
class: FL_TIMER
type: HIDDEN_TIMER
box: 10 350 20 20
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_RED
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_NONE
gravity: FL_SouthWest FL_SouthWest
name: timer
callback: 
argument: 

=============== FORM ===============
Name: form_table
Width: 310
Height: 130
Number of Objects: 6

--------------------
class: FL_BOX
type: UP_BOX
box: 0 0 310 130
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_BUTTON
type: RETURN_BUTTON
box: 10 90 90 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: OK
shortcut: ^M
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: button_ok
callback: TableOKCB
argument: 0

--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 110 90 90 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Apply|#A
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: button_apply
callback: TableApplyCB
argument: 0

--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 210 90 90 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Cancel|^[
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: button_cancel
callback: TableCancelCB
argument: 0

--------------------
class: FL_VALSLIDER
type: HOR_SLIDER
box: 80 50 220 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_LEFT
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Columns
shortcut: 
resize: FL_RESIZE_X
gravity: FL_NoGravity FL_NoGravity
name: slider_columns
callback: 
argument: 

--------------------
class: FL_VALSLIDER
type: HOR_SLIDER
box: 80 10 220 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_LEFT
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Rows
shortcut: 
resize: FL_RESIZE_X
gravity: FL_NoGravity FL_NoGravity
name: slider_rows
callback: 
argument: 

=============== FORM ===============
Name: form_search
Width: 420
Height: 160
Number of Objects: 12

--------------------
class: FL_BOX
type: UP_BOX
box: 0 0 420 160
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_FRAME
type: ENGRAVED_FRAME
box: 300 10 110 100
boxtype: FL_NO_BOX
colors: FL_BLACK FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: 
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: 
callback: 
argument: 

--------------------
class: FL_INPUT
type: NORMAL_INPUT
box: 110 10 180 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Find|#n
shortcut: 
resize: FL_RESIZE_X
gravity: FL_NorthWest FL_NorthEast
name: input_search
callback: 
argument: 

--------------------
class: FL_INPUT
type: NORMAL_INPUT
box: 110 40 180 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Replace with|#W
shortcut: 
resize: FL_RESIZE_X
gravity: FL_West FL_East
name: input_replace
callback: 
argument: 

--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 210 80 80 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label:  >|#F
shortcut: 
resize: FL_RESIZE_NONE
gravity: FL_SouthEast FL_SouthEast
name: 
callback: SearchForwardCB
argument: 0

--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 110 80 80 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label:  <|#B
shortcut: 
resize: FL_RESIZE_NONE
gravity: FL_SouthEast FL_SouthEast
name: 
callback: SearchBackwardCB
argument: 0

--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 110 120 80 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Replace|#R#r
shortcut: 
resize: FL_RESIZE_NONE
gravity: FL_SouthEast FL_SouthEast
name: replace_button
callback: SearchReplaceCB
argument: 0

--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 330 120 80 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Close|^[
shortcut: 
resize: FL_RESIZE_NONE
gravity: FL_SouthWest FL_SouthWest
name: 
callback: SearchCancelCB
argument: 0

--------------------
class: FL_CHECKBUTTON
type: PUSH_BUTTON
box: 300 10 150 30
boxtype: FL_NO_BOX
colors: FL_MCOL FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: Case sensitive|#s#S
shortcut: 
resize: FL_RESIZE_NONE
gravity: FL_SouthEast FL_SouthEast
name: btnCaseSensitive
callback: 
argument: 0

--------------------
class: FL_CHECKBUTTON
type: PUSH_BUTTON
box: 300 40 150 30
boxtype: FL_NO_BOX
colors: FL_MCOL FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: Match word|#M#m
shortcut: 
resize: FL_RESIZE_NONE
gravity: FL_SouthEast FL_SouthEast
name: btnMatchWord
callback: 
argument: 0

--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 210 120 80 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: Replace All|#A#a
shortcut: 
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: replace_all_button
callback: SearchReplaceAllCB
argument: 0

--------------------
class: FL_CHECKBUTTON
type: PUSH_BUTTON
box: 300 70 140 30
boxtype: FL_NO_BOX
colors: FL_MCOL FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label: Pattern Match|#P#p
shortcut: 
resize: FL_RESIZE_NONE
gravity: FL_SouthEast FL_SouthEast
name: btnMatchPattern
callback: MatchPatternCB
argument: 0

==============================
--------------------

Reply via email to