void set_string_substitution(const sclchar *original, const sclchar *substitute);
void unset_string_substitution(const sclchar *original);
+ sclint get_caps_mode();
+ void set_caps_mode(sclint caps_mode);
private:
sclboolean m_initialized;
+ sclint m_caps_mode;
};
}
if (ui_event_desc.key_type == KEY_TYPE_MODECHANGE) {
turn_shift_off = FALSE;
}
+ if (uiimpl->get_caps_mode()) {
+ turn_shift_off = FALSE;
+ }
}
/* If we are in ON_PRESSED or ON_KEY_ENTERED mode of shift multi touch state, do not turn it off now */
if (context->get_shift_multi_touch_enabled() && turn_shift_off) {
}
if (turn_shift_off) {
if (uiimpl->get_shift_state() == SCL_SHIFT_STATE_ON) {
- /* If the ISE doesn't care about changing the shift state to off */
- CSCLEventHandler *handler = CSCLEventHandler::get_instance();
- if (handler) {
- if (SCL_EVENT_PASS_ON ==
- handler->on_event_notification(SCL_UINOTITYPE_SHIFT_STATE_CHANGE, SCL_SHIFT_STATE_OFF)) {
- uiimpl->set_shift_state(SCL_SHIFT_STATE_OFF);
- }
- }
+ uiimpl->set_shift_state(SCL_SHIFT_STATE_OFF);
}
}
}
if (context) {
if (ui_event_desc.key_event == MVK_Shift_L) {
if (context->get_shift_multi_touch_state() == SCL_SHIFT_MULTITOUCH_OFF) {
- if (SCL_EVENT_PASS_ON ==
- on_event_notification(SCL_UINOTITYPE_SHIFT_STATE_CHANGE, SCL_SHIFT_STATE_ON)) {
- uiimpl->set_shift_state(SCL_SHIFT_STATE_ON);
- }
+ uiimpl->set_shift_state(SCL_SHIFT_STATE_ON);
context->set_shift_multi_touch_state(SCL_SHIFT_MULTITOUCH_ON_PRESSED);
}
}
m_impl->unset_string_substitution(original);
}
}
+
+void
+CSCLUI::set_caps_mode(sclint mode) {
+ if (m_impl) {
+ m_impl->set_caps_mode(mode);
+ }
+}
+
+sclint
+CSCLUI::get_caps_mode() {
+ sclint mode = 0;
+
+ if (m_impl) {
+ mode = m_impl->get_caps_mode();
+ }
+
+ return mode;
+}
}
}
}
+
+void
+CSCLUIImpl::set_caps_mode(sclint mode) {
+ m_caps_mode = mode;
+ if (get_shift_state() != SCL_SHIFT_STATE_LOCK) {
+ set_shift_state(mode ? SCL_SHIFT_STATE_ON : SCL_SHIFT_STATE_OFF);
+ }
+}
+
+sclint
+CSCLUIImpl::get_caps_mode() {
+ return m_caps_mode;
+}