You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
krusader/krusader/Panel/krselectionmode.h

98 lines
3.3 KiB

#ifndef KR_SELECTION_MODE_H
#define KR_SELECTION_MODE_H
/**
Every selection mode inherits this class, and has to implement init().
Usage:
KrSelectionMode::getSelectionHandler()->whateverFunctionYouNeed()
\note You can call KrSelectionMode::resetSelectionHandler() if you want the
selection mode to be re-read. This is useful after a configuration where you
changed the selection mode. calling resetSelectionHandler() will cause the next
call to getSelectionHandler() to (possibly) select a different mode.
*/
class KrSelectionMode {
public:
static KrSelectionMode * getSelectionHandler();
static void resetSelectionHandler();
virtual void init() = 0; // everyone must implement this in order to be a selection mode
inline bool useTQTSelection() { return _useTQTSelection; }
inline bool spaceMovesDown() { return _spaceMovesDown; }
inline bool insertMovesDown() { return _insertMovesDown; }
inline bool spaceCalculatesDiskSpace() { return _spaceCalculatesDiskSpace; }
inline bool rightButtonSelects() { return _rightButtonSelects; }
inline bool leftButtonSelects() { return _leftButtonSelects; }
inline bool rightButtonPreservesSelection() { return _rightButtonPreservesSelection; }
inline bool leftButtonPreservesSelection() { return _leftButtonPreservesSelection; }
inline bool shiftCtrlRightButtonSelects() { return _shiftCtrlRightButtonSelects; }
inline bool shiftCtrlLeftButtonSelects() { return _shiftCtrlLeftButtonSelects; }
inline int showContextMenu() { return _showContextMenu; } // 0: no, -1: yes, n>0: after n milliseconds
virtual ~KrSelectionMode() {}
protected:
bool _useTQTSelection, _spaceMovesDown, _insertMovesDown, _spaceCalculatesDiskSpace;
bool _rightButtonSelects, _leftButtonSelects, _rightButtonPreservesSelection;
bool _leftButtonPreservesSelection, _shiftCtrlRightButtonSelects, _shiftCtrlLeftButtonSelects;
int _showContextMenu;
};
class KonqSelectionMode : public KrSelectionMode {
public:
void init() {
_useTQTSelection = true;
_spaceMovesDown = false;
_insertMovesDown = true;
_spaceCalculatesDiskSpace = false;
_rightButtonSelects = true;
_leftButtonSelects = true;
_rightButtonPreservesSelection = false;
_leftButtonPreservesSelection = false;
_shiftCtrlRightButtonSelects = false;
_shiftCtrlLeftButtonSelects = false;
_showContextMenu = -1;
}
};
class OriginalSelectionMode : public KrSelectionMode {
public:
void init() {
_useTQTSelection = false;
_spaceMovesDown = true;
_insertMovesDown = true;
_spaceCalculatesDiskSpace = true;
_rightButtonSelects = true;
_leftButtonSelects = true;
_rightButtonPreservesSelection = false;
_leftButtonPreservesSelection = false;
_shiftCtrlRightButtonSelects = false;
_shiftCtrlLeftButtonSelects = false;
_showContextMenu = -1;
}
};
class TCSelectionMode : public KrSelectionMode {
public:
void init() {
_useTQTSelection = false;
_spaceMovesDown = false;
_insertMovesDown = true;
_spaceCalculatesDiskSpace = true;
_rightButtonSelects = true;
_leftButtonSelects = false;
_rightButtonPreservesSelection = true;
_leftButtonPreservesSelection = false;
_shiftCtrlRightButtonSelects = false;
_shiftCtrlLeftButtonSelects = true;
_showContextMenu = 500;
}
};
class UserSelectionMode: public KrSelectionMode {
public:
void init();
};
#endif // KR_SELECTION_MODE_H