mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-13 06:38:35 -07:00
Left handed mode
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
enum VarItemListIndex {
|
enum VarItemListIndex {
|
||||||
VarItemListIndexSortDirsFirst,
|
VarItemListIndexSortDirsFirst,
|
||||||
VarItemListIndexDarkMode,
|
VarItemListIndexDarkMode,
|
||||||
|
VarItemListIndexLeftHanded,
|
||||||
VarItemListIndexChangeDeviceName,
|
VarItemListIndexChangeDeviceName,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -27,6 +28,14 @@ static void xtreme_app_scene_misc_dark_mode_changed(VariableItem* item) {
|
|||||||
app->save_settings = true;
|
app->save_settings = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void xtreme_app_scene_misc_left_handed_changed(VariableItem* item) {
|
||||||
|
XtremeApp* app = variable_item_get_context(item);
|
||||||
|
bool value = variable_item_get_current_value_index(item);
|
||||||
|
variable_item_set_current_value_text(item, value ? "ON" : "OFF");
|
||||||
|
XTREME_SETTINGS()->left_handed = value;
|
||||||
|
app->save_settings = true;
|
||||||
|
}
|
||||||
|
|
||||||
void xtreme_app_scene_misc_on_enter(void* context) {
|
void xtreme_app_scene_misc_on_enter(void* context) {
|
||||||
XtremeApp* app = context;
|
XtremeApp* app = context;
|
||||||
XtremeSettings* xtreme_settings = XTREME_SETTINGS();
|
XtremeSettings* xtreme_settings = XTREME_SETTINGS();
|
||||||
@@ -43,6 +52,11 @@ void xtreme_app_scene_misc_on_enter(void* context) {
|
|||||||
variable_item_set_current_value_index(item, xtreme_settings->dark_mode);
|
variable_item_set_current_value_index(item, xtreme_settings->dark_mode);
|
||||||
variable_item_set_current_value_text(item, xtreme_settings->dark_mode ? "ON" : "OFF");
|
variable_item_set_current_value_text(item, xtreme_settings->dark_mode ? "ON" : "OFF");
|
||||||
|
|
||||||
|
item = variable_item_list_add(
|
||||||
|
var_item_list, "Exp. Left Handed", 2, xtreme_app_scene_misc_left_handed_changed, app);
|
||||||
|
variable_item_set_current_value_index(item, xtreme_settings->left_handed);
|
||||||
|
variable_item_set_current_value_text(item, xtreme_settings->left_handed ? "ON" : "OFF");
|
||||||
|
|
||||||
variable_item_list_add(var_item_list, "Change Device Name", 0, NULL, app);
|
variable_item_list_add(var_item_list, "Change Device Name", 0, NULL, app);
|
||||||
|
|
||||||
variable_item_list_set_enter_callback(
|
variable_item_list_set_enter_callback(
|
||||||
|
|||||||
@@ -27,6 +27,8 @@ Canvas* canvas_init() {
|
|||||||
// Wake up display
|
// Wake up display
|
||||||
u8g2_SetPowerSave(&canvas->fb, 0);
|
u8g2_SetPowerSave(&canvas->fb, 0);
|
||||||
|
|
||||||
|
canvas_set_orientation(canvas, CanvasOrientationHorizontal);
|
||||||
|
|
||||||
// Clear buffer and send to device
|
// Clear buffer and send to device
|
||||||
canvas_clear(canvas);
|
canvas_clear(canvas);
|
||||||
canvas_commit(canvas);
|
canvas_commit(canvas);
|
||||||
@@ -408,6 +410,13 @@ void canvas_set_bitmap_mode(Canvas* canvas, bool alpha) {
|
|||||||
|
|
||||||
void canvas_set_orientation(Canvas* canvas, CanvasOrientation orientation) {
|
void canvas_set_orientation(Canvas* canvas, CanvasOrientation orientation) {
|
||||||
furi_assert(canvas);
|
furi_assert(canvas);
|
||||||
|
if(XTREME_SETTINGS()->left_handed) {
|
||||||
|
if(orientation == CanvasOrientationHorizontal) {
|
||||||
|
orientation = CanvasOrientationHorizontalFlip;
|
||||||
|
} else if(orientation == CanvasOrientationHorizontalFlip) {
|
||||||
|
orientation = CanvasOrientationHorizontal;
|
||||||
|
}
|
||||||
|
}
|
||||||
if(canvas->orientation != orientation) {
|
if(canvas->orientation != orientation) {
|
||||||
switch(orientation) {
|
switch(orientation) {
|
||||||
case CanvasOrientationHorizontal:
|
case CanvasOrientationHorizontal:
|
||||||
|
|||||||
@@ -326,6 +326,25 @@ static void gui_input(Gui* gui, InputEvent* input_event) {
|
|||||||
gui->ongoing_input_view_port = view_port;
|
gui->ongoing_input_view_port = view_port;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(XTREME_SETTINGS()->left_handed) {
|
||||||
|
switch(input_event->key) {
|
||||||
|
case InputKeyUp:
|
||||||
|
input_event->key = InputKeyDown;
|
||||||
|
break;
|
||||||
|
case InputKeyDown:
|
||||||
|
input_event->key = InputKeyUp;
|
||||||
|
break;
|
||||||
|
case InputKeyLeft:
|
||||||
|
input_event->key = InputKeyRight;
|
||||||
|
break;
|
||||||
|
case InputKeyRight:
|
||||||
|
input_event->key = InputKeyLeft;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(view_port && view_port == gui->ongoing_input_view_port) {
|
if(view_port && view_port == gui->ongoing_input_view_port) {
|
||||||
view_port_input(view_port, input_event);
|
view_port_input(view_port, input_event);
|
||||||
} else if(gui->ongoing_input_view_port && input_event->type == InputTypeRelease) {
|
} else if(gui->ongoing_input_view_port && input_event->type == InputTypeRelease) {
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ void XTREME_SETTINGS_LOAD() {
|
|||||||
xtreme_settings->butthurt_timer = 43200; // 12 H
|
xtreme_settings->butthurt_timer = 43200; // 12 H
|
||||||
xtreme_settings->sort_dirs_first = true; // ON
|
xtreme_settings->sort_dirs_first = true; // ON
|
||||||
xtreme_settings->dark_mode = false; // OFF
|
xtreme_settings->dark_mode = false; // OFF
|
||||||
|
xtreme_settings->left_handed = false; // OFF
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ typedef struct {
|
|||||||
int32_t butthurt_timer;
|
int32_t butthurt_timer;
|
||||||
bool sort_dirs_first;
|
bool sort_dirs_first;
|
||||||
bool dark_mode;
|
bool dark_mode;
|
||||||
|
bool left_handed;
|
||||||
} XtremeSettings;
|
} XtremeSettings;
|
||||||
|
|
||||||
XtremeSettings* XTREME_SETTINGS();
|
XtremeSettings* XTREME_SETTINGS();
|
||||||
|
|||||||
Reference in New Issue
Block a user