summaryrefslogtreecommitdiffstats
path: root/khexedit/lib/koffsetformat.h
diff options
context:
space:
mode:
Diffstat (limited to 'khexedit/lib/koffsetformat.h')
-rw-r--r--khexedit/lib/koffsetformat.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/khexedit/lib/koffsetformat.h b/khexedit/lib/koffsetformat.h
new file mode 100644
index 0000000..8bd90e2
--- /dev/null
+++ b/khexedit/lib/koffsetformat.h
@@ -0,0 +1,70 @@
+/***************************************************************************
+ koffsetformat.h - description
+ -------------------
+ begin : Mit Mai 21 2003
+ copyright : (C) 2003 by Friedrich W. H. Kossebau
+ email : Friedrich.W.H@Kossebau.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This library is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU Library General Public *
+ * License version 2 as published by the Free Software Foundation. *
+ * *
+ ***************************************************************************/
+
+
+#ifndef KHE_KOFFSETFORMAT_H
+#define KHE_KOFFSETFORMAT_H
+
+namespace KHE
+{
+
+/**
+ *@author Friedrich W. H. Kossebau
+ */
+
+class KOffsetFormat
+{
+ public:
+ /** */
+ typedef void (*print)( char *Buffer, unsigned int Offset );
+ /** */
+ enum KFormat { Hexadecimal=0, Decimal, None };
+ /** */
+ static const int MaxFormatWidth = 9;
+
+ private:
+ KOffsetFormat();
+ ~KOffsetFormat();
+
+ public:
+ /** */
+ static unsigned int codingWidth( int i );
+ /** */
+ static print printFunction( int i );
+
+ public:
+ static void printHexadecimalOffset( char *Buffer, unsigned int Offset );
+ static void printHexadecimalSmallOffset( char *Buffer, unsigned int Offset );
+ static void printDecimalOffset( char *Buffer, unsigned int Offset );
+
+ protected:
+ /** */
+ static const unsigned int CodingWidth[2]; //TODO: would sizeof(Coding} work?
+ /** */
+ static const print PrintFunction[2];
+};
+
+
+inline unsigned int KOffsetFormat::codingWidth( int i )
+{ return CodingWidth[i]; }
+
+inline KOffsetFormat::print KOffsetFormat::printFunction( int i )
+{ return PrintFunction[i]; }
+
+
+}
+
+#endif