Files
InfiniTime/src/displayapp/screens/settings/SettingWatchFace.cpp
Jean-François Milants 69e4ab6be1 Manual squash merge of PR #932 (https://github.com/InfiniTimeOrg/InfiniTime/pull/932) from 13werwolf13 (https://github.com/13werwolf13). This PR adds a new Terminal watchface to InfiniTime!
Squashed commit of the following:

commit 23ea840b059c69667c8711265cecaf992791acb6
Author: Jean-François Milants <jf@codingfield.com>
Date:   Sun Feb 20 13:14:27 2022 +0100

    Terminal watch face : fix includes and a few code cleaning.

commit 3c244def25e3ad8e1f56d708fb0864c122059948
Merge: 40790868 138a6552
Author: Jean-François Milants <jf@codingfield.com>
Date:   Sun Feb 20 12:45:54 2022 +0100

    Merge branch 'develop' of https://github.com/13werwolf13/InfiniTime into 13werwolf13-develop

commit 138a65528a86799fd5c37f065023a92f222fe044
Author: Марков Дмитрий <13werwolf13@mail.ru>
Date:   Wed Feb 2 09:13:00 2022 +0500

    Update src/displayapp/screens/WatchFaceTerminal.h

    Co-authored-by: NeroBurner <pyro4hell@gmail.com>

commit 35156166b2f7589bf005ec7c7192a4226578f6d9
Author: Марков Дмитрий <13werwolf13@mail.ru>
Date:   Wed Feb 2 09:12:43 2022 +0500

    Update src/displayapp/screens/WatchFaceTerminal.cpp

    Co-authored-by: NeroBurner <pyro4hell@gmail.com>

commit 757ca2dd438f1f314267a8b81a6034c576f1d6be
Author: Марков Дмитрий <13werwolf13@mail.ru>
Date:   Wed Feb 2 09:12:30 2022 +0500

    Update src/displayapp/screens/WatchFaceTerminal.cpp

    Co-authored-by: NeroBurner <pyro4hell@gmail.com>

commit 60b6b4e5824d04faa3efa45173358d04fa68a368
Author: Марков Дмитрий <13werwolf13@mail.ru>
Date:   Wed Feb 2 09:12:20 2022 +0500

    Update src/displayapp/screens/WatchFaceTerminal.cpp

    Co-authored-by: NeroBurner <pyro4hell@gmail.com>

commit 6959d8c043013550a7a3e4e6588b234d3bb942b5
Author: Марков Дмитрий <13werwolf13@mail.ru>
Date:   Wed Feb 2 09:11:46 2022 +0500

    Update src/displayapp/screens/WatchFaceTerminal.cpp

    Co-authored-by: NeroBurner <pyro4hell@gmail.com>

commit 4d850281bedf342d0856da5eafc22e46d0767c56
Author: Марков Дмитрий <13werwolf13@mail.ru>
Date:   Wed Feb 2 09:11:17 2022 +0500

    Update src/displayapp/screens/WatchFaceTerminal.cpp

    Co-authored-by: NeroBurner <pyro4hell@gmail.com>

commit af483bee33c225fcb03432db1eb14c0453df0ae7
Author: Марков Дмитрий <13werwolf13@mail.ru>
Date:   Wed Feb 2 09:10:57 2022 +0500

    Update src/displayapp/screens/WatchFaceTerminal.cpp

    Co-authored-by: NeroBurner <pyro4hell@gmail.com>

commit 6bc6c1a637be4e514ecd0097d1dc9e4aacdba1db
Author: Марков Дмитрий <13werwolf13@mail.ru>
Date:   Wed Feb 2 09:10:40 2022 +0500

    Update src/displayapp/screens/WatchFaceTerminal.h

    Co-authored-by: NeroBurner <pyro4hell@gmail.com>

commit 25fdafc6aba0d9e0173103501de3802af261e2ae
Author: Марков Дмитрий <13werwolf13@mail.ru>
Date:   Wed Feb 2 09:06:10 2022 +0500

    Update src/displayapp/screens/WatchFaceTerminal.cpp

    Co-authored-by: NeroBurner <pyro4hell@gmail.com>

commit 12e1b0f8c0202a7f62e3e1c297af850ce3526d13
Author: Марков Дмитрий <13werwolf13@mail.ru>
Date:   Wed Feb 2 09:05:44 2022 +0500

    Update src/displayapp/screens/WatchFaceTerminal.cpp

    Co-authored-by: NeroBurner <pyro4hell@gmail.com>

commit e6c0f32056e9fea878d270d761607ac5ddc263b0
Author: Марков Дмитрий <13werwolf13@mail.ru>
Date:   Wed Feb 2 09:05:22 2022 +0500

    Update src/displayapp/screens/WatchFaceTerminal.h

    Co-authored-by: NeroBurner <pyro4hell@gmail.com>

commit 342ce8cd114f4af265078bc0cfa6b2d8831706d7
Author: Марков Дмитрий <13werwolf13@mail.ru>
Date:   Wed Feb 2 09:05:06 2022 +0500

    Update src/displayapp/screens/WatchFaceTerminal.cpp

    Co-authored-by: NeroBurner <pyro4hell@gmail.com>

commit 265fec5eeca27fcc1152a18e4af0273bcf119c46
Author: Марков Дмитрий <13werwolf13@mail.ru>
Date:   Wed Feb 2 09:04:06 2022 +0500

    Update src/displayapp/screens/WatchFaceTerminal.cpp

    Co-authored-by: NeroBurner <pyro4hell@gmail.com>

commit b4669be38be0df2b6a3505d5f7a770c71636be60
Author: Марков Дмитрий <13werwolf13@mail.ru>
Date:   Wed Feb 2 09:03:29 2022 +0500

    Update src/displayapp/screens/WatchFaceTerminal.cpp

    Co-authored-by: NeroBurner <pyro4hell@gmail.com>

commit 471a84390957ded2ac23ebfe1cb99408e3783b0f
Author: Марков Дмитрий <13werwolf13@mail.ru>
Date:   Wed Feb 2 09:03:10 2022 +0500

    Update src/displayapp/screens/WatchFaceTerminal.cpp

    Co-authored-by: NeroBurner <pyro4hell@gmail.com>

commit 6853166cf546a4ce561195eba01f1b1fd6d56420
Author: Марков Дмитрий <13werwolf13@mail.ru>
Date:   Wed Feb 2 09:02:51 2022 +0500

    Update src/displayapp/screens/WatchFaceTerminal.cpp

    Co-authored-by: NeroBurner <pyro4hell@gmail.com>

commit bba34f69bfdd6b44f142c93644f71c9eda007290
Author: Дмитрий Марков <13werwolf13@mail.ru>
Date:   Sat Jan 22 12:32:41 2022 +0500

    some fixes

commit 74eea9f5800f273249846e6e1c887d15ba6eb10b
Author: Дмитрий Марков <13werwolf13@mail.ru>
Date:   Sat Jan 22 12:32:17 2022 +0500

    some fixes

commit 1e4a6763d73c3ba39c680ad25f90813e6a6a36d1
Author: Дмитрий Марков <13werwolf13@mail.ru>
Date:   Fri Jan 21 08:59:44 2022 +0500

    no errors, no warnings, no work..

commit eb8bd4dc4ecbbf61f1e0f725fd2116ee25319fd6
Author: Дмитрий Марков <13werwolf13@mail.ru>
Date:   Thu Jan 20 23:50:04 2022 +0500

    add ble state text output

commit fda1c088becb4a7f9ced451a0291694abe2249dc
Author: Дмитрий Марков <13werwolf13@mail.ru>
Date:   Thu Jan 20 22:25:35 2022 +0500

    add ble state text output

commit 68d3d9b343c0f37830bb640fab10b186faf73067
Author: Дмитрий Марков <13werwolf13@mail.ru>
Date:   Thu Jan 20 22:22:20 2022 +0500

    add ble state text output

commit 0ed45a9916787f68c0aa6bab9c97b090f2eebdd5
Author: Дмитрий Марков <13werwolf13@mail.ru>
Date:   Tue Jan 18 15:48:15 2022 +0500

    typo fix

commit 477a3a7f27c7486be2c8f985afab1f1739608fed
Author: Марков Дмитрий <13werwolf13@mail.ru>
Date:   Tue Jan 18 10:36:19 2022 +0500

    Update src/displayapp/screens/WatchFaceTerminal.cpp

    Co-authored-by: NeroBurner <pyro4hell@gmail.com>

commit d6849888ea5cc152f04c5bf6fe2631e66296c357
Author: Марков Дмитрий <13werwolf13@mail.ru>
Date:   Tue Jan 18 10:36:09 2022 +0500

    Update src/displayapp/screens/WatchFaceTerminal.cpp

    Co-authored-by: NeroBurner <pyro4hell@gmail.com>

commit e2f7e318298b8a6f4d436cbbb1b92a738dacab7f
Author: Дмитрий Марков <13werwolf13@mail.ru>
Date:   Mon Jan 17 13:34:05 2022 +0500

    typo fix

commit fc246beb01d3feac4fd0b2fc9c45b38847e1d950
Author: Дмитрий Марков <13werwolf13@mail.ru>
Date:   Sat Jan 15 15:26:25 2022 +0500

    typo fix

commit ebbb31abf10ad9f61a8a7ecfdf29c2aaeaf33c19
Author: Дмитрий Марков <13werwolf13@mail.ru>
Date:   Fri Jan 14 10:08:29 2022 +0500

    typo fix

commit 3afedcaa28009f59e6960730e9349097ef455ea8
Author: Дмитрий Марков <13werwolf13@mail.ru>
Date:   Thu Jan 13 12:34:39 2022 +0500

    time format

commit 471a4c942f7e3cfd5c52bd61152ede770da5e026
Author: Дмитрий Марков <13werwolf13@mail.ru>
Date:   Thu Jan 13 12:27:10 2022 +0500

    time format

commit d3fd348de4b4a89c216a717de84fcc923cc099fe
Author: Дмитрий Марков <13werwolf13@mail.ru>
Date:   Thu Jan 13 12:26:49 2022 +0500

    time format

commit e540d103e3204649ff585742f8834d16136372d5
Author: Дмитрий Марков <13werwolf13@mail.ru>
Date:   Thu Jan 13 11:28:31 2022 +0500

    add patch

commit 728830178f31f71785c49cdc6b83daea4e0a7df6
Author: Дмитрий Марков <13werwolf13@mail.ru>
Date:   Wed Jan 12 22:08:07 2022 +0500

    add menue item

commit 4c5847669fa083f15ee3fdb404dadfdaef0f82aa
Author: Дмитрий Марков <13werwolf13@mail.ru>
Date:   Wed Jan 12 21:42:22 2022 +0500

    typo fix

commit 79273fe24f9162aca5508f07b17896149ad19839
Author: Дмитрий Марков <13werwolf13@mail.ru>
Date:   Wed Jan 12 20:48:06 2022 +0500

    typo fix

commit 1808a78ad94d0dfe97b6410a93ba30560de22f4b
Author: Дмитрий Марков <13werwolf13@mail.ru>
Date:   Wed Jan 12 20:17:15 2022 +0500

    typo fix

commit 6dfa141dca176789da4e978f008eb842d9ec515a
Author: Дмитрий Марков <markov@promobit.ru>
Date:   Wed Jan 12 20:12:09 2022 +0500

    typo fix

commit 88f01902325505a9206ced4504aae0762042535d
Author: Дмитрий Марков <13werwolf13@mail.ru>
Date:   Wed Jan 12 14:50:54 2022 +0500

    add terminal watchface
2022-02-20 13:20:43 +01:00

76 lines
2.9 KiB
C++

#include "displayapp/screens/settings/SettingWatchFace.h"
#include <lvgl/lvgl.h>
#include "displayapp/DisplayApp.h"
#include "displayapp/screens/Screen.h"
#include "displayapp/screens/Styles.h"
#include "displayapp/screens/Symbols.h"
using namespace Pinetime::Applications::Screens;
namespace {
static void event_handler(lv_obj_t* obj, lv_event_t event) {
SettingWatchFace* screen = static_cast<SettingWatchFace*>(obj->user_data);
screen->UpdateSelected(obj, event);
}
}
constexpr std::array<const char*, 4> SettingWatchFace::options;
SettingWatchFace::SettingWatchFace(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Settings& settingsController)
: Screen(app), settingsController {settingsController} {
lv_obj_t* container1 = lv_cont_create(lv_scr_act(), nullptr);
// lv_obj_set_style_local_bg_color(container1, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x111111));
lv_obj_set_style_local_bg_opa(container1, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP);
lv_obj_set_style_local_pad_all(container1, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 10);
lv_obj_set_style_local_pad_inner(container1, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 5);
lv_obj_set_style_local_border_width(container1, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 0);
lv_obj_set_pos(container1, 10, 60);
lv_obj_set_width(container1, LV_HOR_RES - 20);
lv_obj_set_height(container1, LV_VER_RES - 50);
lv_cont_set_layout(container1, LV_LAYOUT_COLUMN_LEFT);
lv_obj_t* title = lv_label_create(lv_scr_act(), nullptr);
lv_label_set_text_static(title, "Watch face");
lv_label_set_align(title, LV_LABEL_ALIGN_CENTER);
lv_obj_align(title, lv_scr_act(), LV_ALIGN_IN_TOP_MID, 10, 15);
lv_obj_t* icon = lv_label_create(lv_scr_act(), nullptr);
lv_obj_set_style_local_text_color(icon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_ORANGE);
lv_label_set_text_static(icon, Symbols::home);
lv_label_set_align(icon, LV_LABEL_ALIGN_CENTER);
lv_obj_align(icon, title, LV_ALIGN_OUT_LEFT_MID, -10, 0);
for (unsigned int i = 0; i < options.size(); i++) {
cbOption[i] = lv_checkbox_create(container1, nullptr);
lv_checkbox_set_text(cbOption[i], options[i]);
cbOption[i]->user_data = this;
lv_obj_set_event_cb(cbOption[i], event_handler);
SetRadioButtonStyle(cbOption[i]);
if (settingsController.GetClockFace() == i) {
lv_checkbox_set_checked(cbOption[i], true);
}
}
}
SettingWatchFace::~SettingWatchFace() {
lv_obj_clean(lv_scr_act());
settingsController.SaveSettings();
}
void SettingWatchFace::UpdateSelected(lv_obj_t* object, lv_event_t event) {
if (event == LV_EVENT_VALUE_CHANGED) {
for (unsigned int i = 0; i < options.size(); i++) {
if (object == cbOption[i]) {
lv_checkbox_set_checked(cbOption[i], true);
settingsController.SetClockFace(i);
} else {
lv_checkbox_set_checked(cbOption[i], false);
}
}
}
}