summaryrefslogtreecommitdiffstats
path: root/kugar/lib/inputmask.h
diff options
context:
space:
mode:
Diffstat (limited to 'kugar/lib/inputmask.h')
-rw-r--r--kugar/lib/inputmask.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/kugar/lib/inputmask.h b/kugar/lib/inputmask.h
new file mode 100644
index 00000000..2668ba0c
--- /dev/null
+++ b/kugar/lib/inputmask.h
@@ -0,0 +1,61 @@
+/***************************************************************************
+* Copyright (C) 2005 by Adam Treat *
+* treat@kde.org *
+* *
+* Copyright (C) 2000 Trolltech AS. All rights reserved. *
+* info@trolltech.com *
+* *
+* This program is free software; you can redistribute it and/or modify *
+* it under the terms of the GNU Library General Public License as *
+* published by the Free Software Foundation; either version 2 of the *
+* License, or (at your option) any later version. *
+* *
+***************************************************************************/
+
+#ifndef INPUTMASK_H
+#define INPUTMASK_H
+
+#include <qobject.h>
+
+namespace Kugar
+{
+
+class InputMask : public QObject
+{
+ Q_OBJECT
+public:
+ InputMask( QObject *parent = 0, const char *name = 0 );
+
+ ~InputMask();
+
+ QString mask() const;
+ void setMask( const QString &mask );
+
+ QString formatText( const QString &txt );
+
+private:
+ void parseInputMask( const QString &maskFields );
+ bool isValidInput( QChar key, QChar mask ) const;
+ QString maskString( uint pos, const QString &str, bool clear = FALSE ) const;
+ QString clearString( uint pos, uint len ) const;
+ QString stripString( const QString &str ) const;
+ int findInMask( int pos, bool forward, bool findSeparator, QChar searchChar = QChar() ) const;
+
+private:
+ QString m_text;
+ int m_maxLength;
+ QChar m_blank;
+ QString m_mask;
+ struct MaskInputData
+ {
+ enum Casemode { NoCaseMode, Upper, Lower };
+ QChar maskChar; // either the separator char or the inputmask
+ bool separator;
+ Casemode caseMode;
+ };
+ MaskInputData *m_maskData;
+};
+
+}
+
+#endif