diff options
Diffstat (limited to 'kxkb/layoutunit.h')
-rw-r--r-- | kxkb/layoutunit.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/kxkb/layoutunit.h b/kxkb/layoutunit.h new file mode 100644 index 000000000..f4d82f73f --- /dev/null +++ b/kxkb/layoutunit.h @@ -0,0 +1,64 @@ +// +// +// Author: Andriy Rysin <[email protected]>, (C) 2006 +// +// Copyright: See COPYING file that comes with this distribution +// +// + +#ifndef _LAYOUTUNIT_H +#define _LAYOUTUNIT_H + +#include <tqstring.h> + +inline TQString createPair(TQString key, TQString value) +{ + if (value.isEmpty()) return key; + return TQString("%1(%2)").arg(key, value); +} + +struct LayoutUnit { + TQString layout; + TQString variant; + TQString displayName; + + LayoutUnit() {} + + LayoutUnit(TQString layout_, TQString variant_): + layout(layout_), + variant(variant_) + {} + + LayoutUnit(TQString pair) { + setFromPair( pair ); + } + + void setFromPair(const TQString& pair) { + layout = parseLayout(pair); + variant = parseVariant(pair); + } + + TQString toPair() const { + return createPair(layout, variant); + } + + bool operator<(const LayoutUnit& lu) const { + return layout<lu.layout || + (layout==lu.layout && variant<lu.variant); + } + + bool operator!=(const LayoutUnit& lu) const { + return layout!=lu.layout || variant!=lu.variant; + } + + bool operator==(const LayoutUnit& lu) const { +// kdDebug() << layout << "==" << lu.layout << "&&" << variant << "==" << lu.variant << endl; + return layout==lu.layout && variant==lu.variant; + } + +//private: + static const TQString parseLayout(const TQString &layvar); + static const TQString parseVariant(const TQString &layvar); +}; + +#endif // _LAYOUTUNIT_H
\ No newline at end of file |