]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/xforms/input_validators.C
Introduce LFUN_PRINT.
[lyx.git] / src / frontends / xforms / input_validators.C
index 1e48205e6425db2efc60f7bdd921f9717dfd6587..c4e3389f0b61c0d4a5b6249885d64344330478f6 100644 (file)
@@ -1,23 +1,43 @@
-/* input_validators.C
- * A collection of input filtering and validating functions for use in
- * XForms popups.  Mainly meant for filtering input boxes although may
- * be extended to include other generally useful xforms-specific tools.
+/**
+ * \file input_validators.C
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Allan Rae
+ *
+ * Full author contact details are available in file CREDITS.
  */
 
-#include "config.h"
-#include FORMS_H_LOCATION
-#include "support/lstrings.h"
+#include <config.h>
+
 #include "input_validators.h"
 
+#include "support/lstrings.h"
+
+#include "lyx_forms.h"
+
+namespace support = lyx::support;
+
+
 #if defined(__cplusplus)
 extern "C"
 {
 #endif
 
-int fl_unsigned_int_filter(FL_OBJECT * ob,
-                          char const * not_used,
-                          char const * unused,
-                          int c)
+int fl_int_filter(FL_OBJECT * ob,
+                 char const *, char const *, int c)
+{
+       if (c == 0 /* final test before handing contents to app */
+           || strchr("0123456789+-", c)) {
+               if (support::isStrInt(fl_get_input(ob)))
+                       return FL_VALID;
+       }
+       return FL_INVALID|FL_RINGBELL;
+}
+
+
+int fl_unsigned_int_filter(FL_OBJECT * /*ob*/,
+                          char const *, char const *, int c)
 {
        if (c == 0 /* final test before handing contents to app */
            || strchr("0123456789", c)) {
@@ -28,25 +48,35 @@ int fl_unsigned_int_filter(FL_OBJECT * ob,
 }
 
 
+int fl_float_filter(FL_OBJECT * ob,
+                   char const *, char const *, int c)
+{
+       if (c == 0 /* final test before handing contents to app */
+           || strchr("0123456789.+-", c)) {
+               if (support::isStrDbl(fl_get_input(ob)))
+                       return FL_VALID;
+       }
+       return FL_INVALID|FL_RINGBELL;
+}
+
+
 int fl_unsigned_float_filter(FL_OBJECT * ob,
-                            char const * not_used,
-                            char const * unused,
+                            char const * /*not_used*/,
+                            char const * /*unused*/,
                             int c)
 {
        if (c == 0 /* final test before handing contents to app */
            || strchr("0123456789.", c)) {
-               if ( isStrDbl(fl_get_input(ob)) )
+               if (support::isStrDbl(fl_get_input(ob)))
                        return FL_VALID;
-               else
-                       return FL_INVALID|FL_RINGBELL;
        }
        return FL_INVALID|FL_RINGBELL;
 }
 
 
-int fl_lowercase_filter(FL_OBJECT * ob,
-                       char const * not_used,
-                       char const * unused,
+int fl_lowercase_filter(FL_OBJECT * /*ob*/,
+                       char const * /*not_used*/,
+                       char const * /*unused*/,
                        int c)
 {
        if (c == 0 /* final test before handing contents to app */
@@ -58,64 +88,6 @@ int fl_lowercase_filter(FL_OBJECT * ob,
 }
 
 
-#if 0
-/* I've just moved this code here and written a few comments.
-   still to complete it.  ARRae 20000518 */
-
-void fl_print_range_filter(FL_OBJECT * ob,
-                          char const * not_used,
-                          char const * unused,
-                          int c)
-{
-       /* Started life as changes to PrintApplyCB by Stephan Witt
-          (stephan.witt@beusen.de), 19-Jan-99
-          User may give a page (range) list */
-
-       if (strchr("0123456789", c)) {
-               /* Numerals are always valid */
-               return FL_VALID;
-       } else if (strchr("-,", c)) {
-               /* make sure that the character can go there */
-       } else if (c == 0) {
-               /* final test before handing contents to app
-                  make sure the last char isn't a "-,"
-                  That might be acceptable if there was a "to_page"
-                  entry however if you start making a page range in the "from"
-                  field you can do it all in the "from" field.  That is, a
-                  range in the "from" field immmediately blanks the "to" 
-                  field. */
-       }
-       return FL_INVALID|FL_RINGBELL;
-
-       /* The code above should do the same sort of checking as the
-          code below. */
-
-       string pages = subst(fl_get_input(fd_form_print->input_pages), ';',',');
-       pages = subst(pages, '+',',');
-       pages = frontStrip(strip(pages)) ;
-       while (!pages.empty()) { // a page range was given
-               string piece ;
-               pages = split (pages, piece, ',') ;
-               piece = strip(piece) ;
-               piece = frontStrip(piece) ;
-               if (!stringOnlyContains (piece, "0123456789-")) {
-                       WriteAlert(_("ERROR!  Unable to print!"),
-                                  _("Check 'range of pages'!"));
-                       return;
-               }
-               if (piece.find('-') == string::npos) { // not found
-                       pageflag += lyxrc.print_pagerange_flag + piece + '-' + piece + ' ' ;
-               } else if (suffixIs(piece, "-")) { // missing last page
-                       pageflag += lyxrc.print_pagerange_flag + piece + "1000 ";
-               } else if (prefixIs(piece, "-")) { // missing first page
-                       pageflag += lyxrc.print_pagerange_flag + '1' + piece + ' ' ;
-               } else {
-                       pageflag += lyxrc.print_pagerange_flag + piece + ' ' ;
-               }
-       }
-}
-#endif 
-
 #if defined(__cplusplus)
 }
 #endif