// // C++ Interface: kxkbconfig // // Description: // // // Author: Andriy Rysin , (C) 2006 // // Copyright: See COPYING file that comes with this distribution // // #ifndef KXKBCONFIG_H #define KXKBCONFIG_H #include #include #include #include #include #include /* Utility classes for per-window/per-application layout implementation */ enum SwitchingPolicy { SWITCH_POLICY_GLOBAL = 0, SWITCH_POLICY_WIN_CLASS = 1, SWITCH_POLICY_WINDOW = 2, SWITCH_POLICY_COUNT = 3 }; 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 includeGroup; TQString displayName; int defaultGroup; 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 m_layouts; LayoutUnit getDefaultLayout(); bool load(int loadMode); void save(); void setDefaults(); TQStringList getLayoutStringList(/*bool compact*/); static TQString getDefaultDisplayName(const TQString& code_); static TQString getDefaultDisplayName(const LayoutUnit& layoutUnit, bool single=false); private: static const TQMap parseIncludesMap(const TQStringList& pairList); }; #endif