00001 /*---------------------------------------------------------------------\ 00002 | | 00003 | __ __ ____ _____ ____ | 00004 | \ \ / /_ _/ ___|_ _|___ \ | 00005 | \ V / _` \___ \ | | __) | | 00006 | | | (_| |___) || | / __/ | 00007 | |_|\__,_|____/ |_| |_____| | 00008 | | 00009 | core system | 00010 | (C) SuSE GmbH | 00011 \----------------------------------------------------------------------/ 00012 00013 File: YShortcutManager.h 00014 00015 Author: Stefan Hundhammer <sh@suse.de> 00016 00017 /-*/ 00018 00019 00020 #ifndef YShortcutManager_h 00021 #define YShortcutManager_h 00022 00023 #include "YDialog.h" 00024 #include "YShortcut.h" 00025 00026 00031 class YShortcutManager 00032 { 00033 public: 00037 YShortcutManager( YDialog *dialog ); 00038 00042 virtual ~YShortcutManager(); 00043 00044 00051 void checkShortcuts( bool autoResolve = true ); 00052 00053 00058 int conflictCount(); 00059 00060 00095 void resolveAllConflicts(); 00096 00097 00101 YDialog *dialog() { return _dialog; } 00102 00103 00104 protected: 00105 00109 void clearShortcutList(); 00110 00116 void findShortcutWidgets(); 00117 00122 void resolveConflict( YShortcut * shortcut ); 00123 00128 int findShortestWizardButton( const YShortcutList & conflictList ); 00129 00136 unsigned findShortestWidget( const YShortcutList & conflictList ); 00137 00141 YDialog *_dialog; 00142 00146 YShortcutList _shortcutList; 00147 00151 int _wanted[ sizeof( char ) << 8 ]; 00152 00153 00157 bool _used[ sizeof( char ) << 8 ]; 00158 00159 00163 int _conflictCount; 00164 00165 00166 private: 00167 00168 bool _did_check; 00169 }; 00170 00171 00172 #endif // YShortcutManager_h
1.5.3