sclwindow get_current_focus_window(void);
void process_navigation(SCLHighlightNavigationDirection direction);
+ void set_current_focus(sclwindow window, scl8 index);
+
private:
NEXT_CANDIDATE_INFO get_next_candidate_key(SCLHighlightNavigationDirection direction, SclRectangle cur, sclwindow window);
#include "sclres_manager.h"
#include "scleventhandler.h"
#include "sclanimator.h"
+#include "sclkeyfocushandler.h"
#include <dlog.h>
//#define DIRECTLY_DRAW_ON_EVENTS
button_context->state = BUTTON_STATE_PRESSED;
+ if (context->get_highlight_ui_enabled()) {
+ CSCLKeyFocusHandler* focus_handler = CSCLKeyFocusHandler::get_instance();
+ if (focus_handler) {
+ sclwindow prev_window = focus_handler->get_current_focus_window();
+ scl8 prev_key = focus_handler->get_current_focus_key();
+ const SclLayoutKeyCoordinate *prev_coordinate =
+ cache->get_cur_layout_key_coordinate(prev_window, prev_key);
+
+ focus_handler->set_current_focus(window, key_index);
+
+ if (prev_coordinate) {
+ windows->update_window(prev_window,
+ prev_coordinate->x, prev_coordinate->y, prev_coordinate->width, prev_coordinate->height);
+ }
+ }
+ }
+
redraw = TRUE;
ret = TRUE;