[DEBUG] update new API of Gale left-right shift ...
This commit is contained in:
parent
3ea06311df
commit
c76ce3b339
@ -350,16 +350,16 @@ void ewol::Widget::shortCutAdd(const std::string& _descriptiveString, const std:
|
|||||||
// parsing of the string:
|
// parsing of the string:
|
||||||
//"ctrl+shift+alt+meta+s"
|
//"ctrl+shift+alt+meta+s"
|
||||||
if(_descriptiveString.find("ctrl") != std::string::npos) {
|
if(_descriptiveString.find("ctrl") != std::string::npos) {
|
||||||
tmpElement.specialKey.setCtrl(true);
|
tmpElement.specialKey.setCtrlLeft(true);
|
||||||
}
|
}
|
||||||
if(_descriptiveString.find("shift") != std::string::npos) {
|
if(_descriptiveString.find("shift") != std::string::npos) {
|
||||||
tmpElement.specialKey.setShift(true);
|
tmpElement.specialKey.setShiftLeft(true);
|
||||||
}
|
}
|
||||||
if(_descriptiveString.find("alt") != std::string::npos) {
|
if(_descriptiveString.find("alt") != std::string::npos) {
|
||||||
tmpElement.specialKey.setAlt(true);
|
tmpElement.specialKey.setAltLeft(true);
|
||||||
}
|
}
|
||||||
if(_descriptiveString.find("meta") != std::string::npos) {
|
if(_descriptiveString.find("meta") != std::string::npos) {
|
||||||
tmpElement.specialKey.setMeta(true);
|
tmpElement.specialKey.setMetaLeft(true);
|
||||||
}
|
}
|
||||||
if(_descriptiveString.find("F12") != std::string::npos) {
|
if(_descriptiveString.find("F12") != std::string::npos) {
|
||||||
tmpElement.keyboardMoveValue = gale::key::keyboard::f12;
|
tmpElement.keyboardMoveValue = gale::key::keyboard::f12;
|
||||||
@ -446,6 +446,25 @@ bool ewol::Widget::onEventShortCut(const gale::key::Special& _special,
|
|||||||
&& _unicodeValue <= 'Z') {
|
&& _unicodeValue <= 'Z') {
|
||||||
_unicodeValue += 'a' - 'A';
|
_unicodeValue += 'a' - 'A';
|
||||||
}
|
}
|
||||||
|
EWOL_VERBOSE("check shortcut...." << _special << " " << _unicodeValue << " " << _kbMove << " " << (_isDown?"DOWN":"UP") << " nb shortcut:" << m_localShortcut.size());
|
||||||
|
// Remove the up event of the shortcut...
|
||||||
|
if (_isDown == false) {
|
||||||
|
for (int32_t iii=m_localShortcut.size()-1; iii >= 0; iii--) {
|
||||||
|
if (m_localShortcut[iii].isActive == false) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ( ( m_localShortcut[iii].keyboardMoveValue == gale::key::keyboard::unknow
|
||||||
|
&& m_localShortcut[iii].unicodeValue == _unicodeValue)
|
||||||
|
|| ( m_localShortcut[iii].keyboardMoveValue == _kbMove
|
||||||
|
&& m_localShortcut[iii].unicodeValue == 0)
|
||||||
|
) {
|
||||||
|
// In this case we grap the event in case of an error can occured ...
|
||||||
|
m_localShortcut[iii].isActive = false;
|
||||||
|
EWOL_VERBOSE("detect up of a shortcut");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
//EWOL_INFO("Try to find generic shortcut ...");
|
//EWOL_INFO("Try to find generic shortcut ...");
|
||||||
for (int32_t iii=m_localShortcut.size()-1; iii >= 0; iii--) {
|
for (int32_t iii=m_localShortcut.size()-1; iii >= 0; iii--) {
|
||||||
if ( m_localShortcut[iii].specialKey.getShift() == _special.getShift()
|
if ( m_localShortcut[iii].specialKey.getShift() == _special.getShift()
|
||||||
@ -458,7 +477,9 @@ bool ewol::Widget::onEventShortCut(const gale::key::Special& _special,
|
|||||||
&& m_localShortcut[iii].unicodeValue == 0)
|
&& m_localShortcut[iii].unicodeValue == 0)
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
if (_isDown) {
|
if (_isDown == true) {
|
||||||
|
m_localShortcut[iii].isActive = true;
|
||||||
|
EWOL_VERBOSE("Generate shortCut: " << m_localShortcut[iii].message);
|
||||||
signalShortcut.emit(m_localShortcut[iii].message);
|
signalShortcut.emit(m_localShortcut[iii].message);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -59,10 +59,14 @@ namespace ewol {
|
|||||||
gale::key::Special specialKey; //!< special board key
|
gale::key::Special specialKey; //!< special board key
|
||||||
char32_t unicodeValue; //!< 0 if not used
|
char32_t unicodeValue; //!< 0 if not used
|
||||||
enum gale::key::keyboard keyboardMoveValue; //!< ewol::EVENT_KB_MOVE_TYPE_NONE if not used
|
enum gale::key::keyboard keyboardMoveValue; //!< ewol::EVENT_KB_MOVE_TYPE_NONE if not used
|
||||||
EventShortCut() {
|
bool isActive; //!< If true, we need to filter the up key of ascii element (not control)
|
||||||
message = "";
|
EventShortCut() :
|
||||||
unicodeValue = 0;
|
message(""),
|
||||||
keyboardMoveValue = gale::key::keyboard::unknow;
|
specialKey(),
|
||||||
|
unicodeValue(0),
|
||||||
|
keyboardMoveValue(gale::key::keyboard::unknow),
|
||||||
|
isActive(false) {
|
||||||
|
// nothing to do
|
||||||
};
|
};
|
||||||
virtual ~EventShortCut() { };
|
virtual ~EventShortCut() { };
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user