A art/phone/common/arrow_left_32px_W_G.png => art/phone/common/arrow_left_32px_W_G.png +0 -0
A art/phone/common/arrow_right_32px_W_G.png => art/phone/common/arrow_right_32px_W_G.png +0 -0
A art/phone/common/arrow_right_empty_32px_W_G.png => art/phone/common/arrow_right_empty_32px_W_G.png +0 -0
A image/assets/images/arrow_left_32px_W_G.vpi => image/assets/images/arrow_left_32px_W_G.vpi +0 -0
A image/assets/images/arrow_right_32px_W_G.vpi => image/assets/images/arrow_right_32px_W_G.vpi +0 -0
A image/assets/images/arrow_right_empty_32px_W_G.vpi => image/assets/images/arrow_right_empty_32px_W_G.vpi +0 -0
M module-apps/application-settings/ApplicationSettings.cpp => module-apps/application-settings/ApplicationSettings.cpp +23 -19
@@ 30,6 30,10 @@
#include <application-settings/windows/display-keypad/QuotesOptionsWindow.hpp>
#include <application-settings/windows/display-keypad/KeypadLightWindow.hpp>
#include <application-settings/windows/display-keypad/InputLanguageWindow.hpp>
+#include <application-settings/windows/phone-modes/PhoneModesWindow.hpp>
+#include <application-settings/windows/phone-modes/DoNotDisturbWindow.hpp>
+#include <application-settings/windows/phone-modes/OfflineWindow.hpp>
+#include <application-settings/windows/phone-modes/ConnectionFrequencyWindow.hpp>
#include <application-settings/windows/AppsAndToolsWindow.hpp>
#include <application-settings/windows/NightshiftWindow.hpp>
#include <application-settings/windows/PhoneWindow.hpp>
@@ 45,11 49,7 @@
#include <application-settings/windows/DateAndTimeMainWindow.hpp>
#include <application-settings/windows/ChangeTimeZone.hpp>
#include <application-settings/windows/ChangeDateAndTimeWindow.hpp>
-#include <application-settings/windows/PhoneModesWindow.hpp>
#include <application-settings/windows/PINSettingsWindow.hpp>
-#include <application-settings/windows/DoNotDisturbWindow.hpp>
-#include <application-settings/windows/OfflineWindow.hpp>
-#include <application-settings/windows/ConnectionFrequencyWindow.hpp>
#include <application-settings/windows/AboutYourPureWindow.hpp>
#include <application-settings/windows/CertificationWindow.hpp>
#include <application-settings/windows/TechnicalInformationWindow.hpp>
@@ 421,6 421,20 @@ namespace app
return std::make_unique<gui::InputLanguageWindow>(app);
});
+ // Phone modes
+ windowsFactory.attach(gui::window::name::phone_modes, [](Application *app, const std::string &name) {
+ return std::make_unique<gui::PhoneModesWindow>(app, static_cast<ApplicationSettings *>(app));
+ });
+ windowsFactory.attach(gui::window::name::do_not_disturb, [](Application *app, const std::string &name) {
+ return std::make_unique<gui::DoNotDisturbWindow>(app, static_cast<ApplicationSettings *>(app));
+ });
+ windowsFactory.attach(gui::window::name::offline, [](Application *app, const std::string &name) {
+ return std::make_unique<gui::OfflineWindow>(app, static_cast<ApplicationSettings *>(app));
+ });
+ windowsFactory.attach(gui::window::name::connection_frequency, [](Application *app, const std::string &name) {
+ return std::make_unique<gui::ConnectionFrequencyWindow>(app, static_cast<ApplicationSettings *>(app));
+ });
+
windowsFactory.attach(gui::window::name::dialog_settings, [](Application *app, const std::string &name) {
return std::make_unique<gui::Dialog>(app, name);
});
@@ 448,14 462,12 @@ namespace app
windowsFactory.attach(gui::window::name::sound_select, [](Application *app, const std::string &name) {
return std::make_unique<gui::SoundSelectWindow>(app, name);
});
-
windowsFactory.attach(gui::window::name::autolock, [](Application *app, const std::string &name) {
return std::make_unique<gui::AutolockWindow>(app, static_cast<ApplicationSettings *>(app));
});
windowsFactory.attach(gui::window::name::torch, [](Application *app, const std::string &name) {
return std::make_unique<gui::TorchWindow>(app);
});
-
windowsFactory.attach(gui::window::name::quotes_dialog_yes_no, [](Application *app, const std::string &name) {
return std::make_unique<gui::DialogYesNo>(app, name);
});
@@ 508,19 520,6 @@ namespace app
windowsFactory.attach(gui::window::name::dialog_retry, [](Application *app, const std::string &name) {
return std::make_unique<gui::DialogRetry>(app, name);
});
- windowsFactory.attach(gui::window::name::phone_modes, [](Application *app, const std::string &name) {
- return std::make_unique<gui::PhoneModesWindow>(
- app, static_cast<ApplicationSettings *>(app), static_cast<ApplicationSettings *>(app));
- });
- windowsFactory.attach(gui::window::name::do_not_disturb, [](Application *app, const std::string &name) {
- return std::make_unique<gui::DoNotDisturbWindow>(app, static_cast<ApplicationSettings *>(app));
- });
- windowsFactory.attach(gui::window::name::offline, [](Application *app, const std::string &name) {
- return std::make_unique<gui::OfflineWindow>(app, static_cast<ApplicationSettings *>(app));
- });
- windowsFactory.attach(gui::window::name::connection_frequency, [](Application *app, const std::string &name) {
- return std::make_unique<gui::ConnectionFrequencyWindow>(app, static_cast<ApplicationSettings *>(app));
- });
attachPopups({gui::popup::ID::Volume,
gui::popup::ID::Tethering,
@@ 700,6 699,11 @@ namespace app
app::manager::ApplicationManager::ServiceName);
}
+ auto ApplicationSettings::getCurrentPhoneMode() const noexcept -> sys::phone_modes::PhoneMode
+ {
+ return phoneMode;
+ }
+
void ApplicationSettings::setAutoLockTime(std::chrono::seconds lockTime)
{
bus.sendUnicast(std::make_shared<app::manager::SetAutoLockTimeoutRequest>(lockTime),
M module-apps/application-settings/ApplicationSettings.hpp => module-apps/application-settings/ApplicationSettings.hpp +9 -0
@@ 94,6 94,12 @@ namespace app
virtual void setAutoLockTime(std::chrono::seconds lockTime) = 0;
};
+ class PhoneModeSettings
+ {
+ public:
+ virtual auto getCurrentPhoneMode() const noexcept -> sys::phone_modes::PhoneMode = 0;
+ };
+
}; // namespace settingsInterface
class ApplicationSettings : public app::Application,
@@ 105,6 111,7 @@ namespace app
public settingsInterface::OfflineSettings,
public settingsInterface::ConnectionSettings,
public settingsInterface::AutoLockSettings,
+ public settingsInterface::PhoneModeSettings,
public AsyncCallbackReceiver
{
public:
@@ 158,6 165,8 @@ namespace app
void getAutoLockTime() override;
void setAutoLockTime(std::chrono::seconds lockTime) override;
+ auto getCurrentPhoneMode() const noexcept -> sys::phone_modes::PhoneMode override;
+
private:
void attachQuotesWindows();
void switchToAllDevicesViaBtErrorPrompt(std::shared_ptr<sys::DataMessage> msg, const std::string &errorMsg);
M module-apps/application-settings/CMakeLists.txt => module-apps/application-settings/CMakeLists.txt +4 -4
@@ 63,6 63,10 @@ target_sources( ${PROJECT_NAME}
windows/display-keypad/QuoteCategoriesWindow.cpp
windows/display-keypad/KeypadLightWindow.cpp
windows/display-keypad/InputLanguageWindow.cpp
+ windows/phone-modes/PhoneModesWindow.cpp
+ windows/phone-modes/DoNotDisturbWindow.cpp
+ windows/phone-modes/OfflineWindow.cpp
+ windows/phone-modes/ConnectionFrequencyWindow.cpp
windows/BaseSettingsWindow.cpp
windows/AppsAndToolsWindow.cpp
windows/NightshiftWindow.cpp
@@ 82,10 86,6 @@ target_sources( ${PROJECT_NAME}
windows/DateAndTimeMainWindow.cpp
windows/ChangeTimeZone.cpp
windows/ChangeDateAndTimeWindow.cpp
- windows/ConnectionFrequencyWindow.cpp
- windows/DoNotDisturbWindow.cpp
- windows/OfflineWindow.cpp
- windows/PhoneModesWindow.cpp
windows/PINSettingsWindow.cpp
windows/AboutYourPureWindow.cpp
windows/CertificationWindow.cpp
M module-apps/application-settings/widgets/SettingsStyle.hpp => module-apps/application-settings/widgets/SettingsStyle.hpp +7 -13
@@ 102,16 102,15 @@ namespace style
} // namespace passkey
} // namespace bluetooth
- namespace offline
+ namespace phone_modes
{
- inline constexpr auto body_offset = 155;
+ inline constexpr auto body_offset = 155U;
- inline constexpr auto bar_y = 396;
- inline constexpr auto bar_h = 1;
-
- inline constexpr auto description_y = 375;
- inline constexpr auto description_h = 150;
- } // namespace offline
+ inline constexpr auto description_top_padding = 34;
+ inline constexpr auto description_vertical_padding = 10;
+ inline constexpr auto description_y = 363U;
+ inline constexpr auto description_h = 154U;
+ } // namespace phone_modes
namespace sar
{
@@ 144,11 143,6 @@ namespace style
inline constexpr auto Height = style::window_height - Y - style::footer::height;
} // namespace list
- inline constexpr auto cross_x = 48;
- inline constexpr auto cross_y = 55;
- inline constexpr auto arrow_x = 30;
- inline constexpr auto arrow_y = 62;
-
} // namespace quotes::categories
namespace certification
M module-apps/application-settings/windows/WindowNames.hpp => module-apps/application-settings/windows/WindowNames.hpp +7 -8
@@ 38,7 38,11 @@ namespace gui::window::name
inline constexpr auto keypad_light = "KeypadLight";
inline constexpr auto input_language = "InputLanguage";
- inline constexpr auto phone_modes = "PhoneModes";
+ inline constexpr auto phone_modes = "PhoneModes";
+ inline constexpr auto do_not_disturb = "DoNotDisturb";
+ inline constexpr auto offline = "Offline";
+ inline constexpr auto connection_frequency = "ConnectionFrequency";
+
inline constexpr auto apps_and_tools = "AppsAndTools";
inline constexpr auto security = "Security";
inline constexpr auto system = "System";
@@ 56,9 60,8 @@ namespace gui::window::name
inline constexpr auto display_and_keypad = "DisplayAndKeypad";
inline constexpr auto change_settings = "ChangeSettings";
inline constexpr auto pin_settings = "PINSettings";
-
- inline constexpr auto dialog_settings = "DialogSettings";
- inline constexpr auto change_passcode = "ChangePasscode";
+ inline constexpr auto dialog_settings = "DialogSettings";
+ inline constexpr auto change_passcode = "ChangePasscode";
inline constexpr auto languages = "Languages";
inline constexpr auto date_and_time = "DateAndTime";
@@ 71,8 74,4 @@ namespace gui::window::name
inline constexpr auto change_date_and_time = "ChangeDateAndTime";
inline constexpr auto change_time_zone = "ChangeTimeZone";
- inline constexpr auto do_not_disturb = "DoNotDisturb";
- inline constexpr auto offline = "Offline";
- inline constexpr auto connection_frequency = "ConnectionFrequency";
-
} // namespace gui::window::name
R module-apps/application-settings/windows/ConnectionFrequencyWindow.cpp => module-apps/application-settings/windows/phone-modes/ConnectionFrequencyWindow.cpp +10 -5
@@ 2,8 2,9 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "ConnectionFrequencyWindow.hpp"
-#include "application-settings/ApplicationSettings.hpp"
-#include "OptionSetting.hpp"
+
+#include <application-settings/ApplicationSettings.hpp>
+#include <OptionSetting.hpp>
#include <i18n/i18n.hpp>
namespace gui
@@ 11,15 12,19 @@ namespace gui
ConnectionFrequencyWindow::ConnectionFrequencyWindow(app::Application *app,
app::settingsInterface::ConnectionSettings *connectionSettings)
: BaseSettingsWindow(app, gui::window::name::connection_frequency), connectionSettings(connectionSettings)
- {}
+ {
+ setTitle(utils::translate("app_settings_title_connection_frequency"));
+ }
+
void ConnectionFrequencyWindow::onBeforeShow(ShowMode m, SwitchData *d)
{
- rebuild();
+ refreshOptionsList(
+ std::distance(frequency.begin(),
+ std::find(frequency.begin(), frequency.end(), connectionSettings->getConnectionFrequency())));
}
auto ConnectionFrequencyWindow::buildOptionsList() -> std::list<gui::Option>
{
std::list<gui::Option> optList;
- std::vector<uint8_t> frequency{0, 15, 30, 45, 60};
auto intervalText = [](uint8_t value) {
if (value == 0) {
R module-apps/application-settings/windows/ConnectionFrequencyWindow.hpp => module-apps/application-settings/windows/phone-modes/ConnectionFrequencyWindow.hpp +2 -7
@@ 3,7 3,7 @@
#pragma once
-#include "BaseSettingsWindow.hpp"
+#include <application-settings/windows/BaseSettingsWindow.hpp>
namespace app::settingsInterface
{
@@ 12,12 12,6 @@ namespace app::settingsInterface
namespace gui
{
-
- namespace window
- {
- inline constexpr auto connection_frequency_window = "ConnectionFrequency";
- };
-
class ConnectionFrequencyWindow : public BaseSettingsWindow
{
private:
@@ 25,6 19,7 @@ namespace gui
void rebuild() override;
app::settingsInterface::ConnectionSettings *connectionSettings;
void updateInterval(uint8_t value);
+ std::vector<uint8_t> frequency{0, 15, 30, 45, 60};
public:
ConnectionFrequencyWindow(app::Application *app,
R module-apps/application-settings/windows/DoNotDisturbWindow.cpp => module-apps/application-settings/windows/phone-modes/DoNotDisturbWindow.cpp +17 -16
@@ 2,10 2,10 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "DoNotDisturbWindow.hpp"
-#include "application-settings/ApplicationSettings.hpp"
-#include "application-settings/widgets/SettingsStyle.hpp"
-#include "OptionSetting.hpp"
+#include <application-settings/ApplicationSettings.hpp>
+#include <application-settings/widgets/SettingsStyle.hpp>
+#include <OptionSetting.hpp>
#include <i18n/i18n.hpp>
@@ 21,21 21,22 @@ namespace gui
{
setTitle(utils::translate("app_settings_title_do_not_disturb"));
optionsList->setSize(optionsList->getWidth(),
- optionsList->getHeight() - style::settings::window::offline::body_offset);
- bar = new Rect(this,
- style::window::default_left_margin,
- style::settings::window::offline::bar_y,
- style::window::default_body_width,
- style::settings::window::offline::bar_h);
- bar->setVisible(true);
- descriptionText = new Text(this,
- style::window::default_left_margin,
- style::settings::window::offline::description_y,
- style::window::default_body_width,
- style::settings::window::offline::description_h);
+ optionsList->getHeight() - style::settings::window::phone_modes::body_offset);
+
+ descriptionText = new gui::Text(this,
+ style::window::default_left_margin,
+ style::settings::window::phone_modes::description_y,
+ style::window::default_body_width,
+ style::settings::window::phone_modes::description_h);
descriptionText->setFont(style::window::font::medium);
+ descriptionText->setAlignment(gui::Alignment{gui::Alignment::Vertical::Top});
+ descriptionText->setEdges(gui::RectangleEdge::Top);
+ descriptionText->setPenWidth(style::window::default_border_rect_no_focus);
+ descriptionText->setPadding(gui::Padding(style::settings::window::phone_modes::description_vertical_padding,
+ style::settings::window::phone_modes::description_top_padding,
+ style::settings::window::phone_modes::description_vertical_padding,
+ 0));
descriptionText->setText(utils::translate("app_settings_info_dnd"));
- descriptionText->setVisible(true);
}
auto DoNotDisturbWindow::buildOptionsList() -> std::list<gui::Option>
R module-apps/application-settings/windows/DoNotDisturbWindow.hpp => module-apps/application-settings/windows/phone-modes/DoNotDisturbWindow.hpp +1 -9
@@ 3,8 3,7 @@
#pragma once
-#include "BaseSettingsWindow.hpp"
-
+#include <application-settings/windows/BaseSettingsWindow.hpp>
#include <Text.hpp>
namespace app::settingsInterface
@@ 14,12 13,6 @@ namespace app::settingsInterface
namespace gui
{
-
- namespace window
- {
- inline constexpr auto do_not_disturb_window = "DoNotDisturb";
- };
-
class DoNotDisturbWindow : public BaseSettingsWindow
{
public:
@@ 28,7 21,6 @@ namespace gui
private:
app::settingsInterface::DndSettings *dndSettings = nullptr;
- Rect *bar = nullptr;
Text *descriptionText = nullptr;
auto buildOptionsList() -> std::list<Option> override;
};
R module-apps/application-settings/windows/OfflineWindow.cpp => module-apps/application-settings/windows/phone-modes/OfflineWindow.cpp +16 -16
@@ 2,10 2,10 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "OfflineWindow.hpp"
-#include "application-settings/ApplicationSettings.hpp"
-#include "application-settings/widgets/SettingsStyle.hpp"
-#include "OptionSetting.hpp"
+#include <application-settings/ApplicationSettings.hpp>
+#include <application-settings/widgets/SettingsStyle.hpp>
+#include <OptionSetting.hpp>
#include <i18n/i18n.hpp>
@@ 23,23 23,23 @@ namespace gui
{
setTitle(utils::translate("app_settings_title_offline"));
optionsList->setSize(optionsList->getWidth(),
- optionsList->getHeight() - style::settings::window::offline::body_offset);
+ optionsList->getHeight() - style::settings::window::phone_modes::body_offset);
- bar = new Rect(this,
- style::window::default_left_margin,
- style::settings::window::offline::bar_y,
- style::window::default_body_width,
- style::settings::window::offline::bar_h);
- bar->setVisible(true);
- descriptionText = new Text(this,
- style::window::default_left_margin,
- style::settings::window::offline::description_y,
- style::window::default_body_width,
- style::settings::window::offline::description_h);
+ descriptionText = new gui::Text(this,
+ style::window::default_left_margin,
+ style::settings::window::phone_modes::description_y,
+ style::window::default_body_width,
+ style::settings::window::phone_modes::description_h);
descriptionText->setFont(style::window::font::medium);
+ descriptionText->setAlignment(gui::Alignment{gui::Alignment::Vertical::Top});
+ descriptionText->setEdges(gui::RectangleEdge::Top);
+ descriptionText->setPenWidth(style::window::default_border_rect_no_focus);
+ descriptionText->setPadding(gui::Padding(style::settings::window::phone_modes::description_vertical_padding,
+ style::settings::window::phone_modes::description_top_padding,
+ style::settings::window::phone_modes::description_vertical_padding,
+ 0));
descriptionText->setText(utils::translate(isFlightMode ? "app_settings_info_offline_flight_mode"
: "app_settings_info_offline_messages_only"));
- descriptionText->setVisible(true);
}
auto OfflineWindow::buildOptionsList() -> std::list<gui::Option>
R module-apps/application-settings/windows/OfflineWindow.hpp => module-apps/application-settings/windows/phone-modes/OfflineWindow.hpp +1 -2
@@ 3,7 3,7 @@
#pragma once
-#include "BaseSettingsWindow.hpp"
+#include <application-settings/windows/BaseSettingsWindow.hpp>
#include <Text.hpp>
@@ 22,7 22,6 @@ namespace gui
private:
app::settingsInterface::OfflineSettings *offlineSettings;
- Rect *bar = nullptr;
Text *descriptionText = nullptr;
auto buildOptionsList() -> std::list<Option> override;
bool changeFlightMode(bool isFlightMode);
R module-apps/application-settings/windows/PhoneModesWindow.cpp => module-apps/application-settings/windows/phone-modes/PhoneModesWindow.cpp +20 -9
@@ 2,20 2,31 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "PhoneModesWindow.hpp"
-#include "application-settings/ApplicationSettings.hpp"
-
-#include "OptionSetting.hpp"
+#include <application-settings/ApplicationSettings.hpp>
+#include <OptionSetting.hpp>
#include <i18n/i18n.hpp>
namespace gui
{
PhoneModesWindow::PhoneModesWindow(app::Application *app,
- app::settingsInterface::SimParams *simParams,
- app::settingsInterface::OperatorsSettings *operatorsSettings)
- : OptionWindow(app, gui::window::name::phone_modes), simParams(simParams), operatorsSettings(operatorsSettings)
+ app::settingsInterface::PhoneModeSettings *phoneModeSettings)
+ : OptionWindow(app, gui::window::name::phone_modes), phoneModeSettings(phoneModeSettings)
{
addOptions(modesOptList());
+
+ setTitle(utils::translate("app_settings_phone_modes"));
+ }
+
+ void PhoneModesWindow::onBeforeShow(ShowMode m, SwitchData *d)
+ {
+ auto selectedPhoneModeIndex = static_cast<unsigned int>(phoneModeSettings->getCurrentPhoneMode());
+
+ modifiedModesStrings = initialModesStrings;
+ modifiedModesStrings[selectedPhoneModeIndex] =
+ "<text><b>" + modifiedModesStrings[selectedPhoneModeIndex] + " </b></text>";
+
+ refreshOptions(modesOptList(), selectedPhoneModeIndex);
}
auto PhoneModesWindow::modesOptList() -> std::list<gui::Option>
@@ 23,7 34,7 @@ namespace gui
std::list<gui::Option> optList;
optList.emplace_back(std::make_unique<gui::option::OptionSettings>(
- utils::translate("app_settings_connected"),
+ modifiedModesStrings[0],
[=](gui::Item &item) { return true; },
[=](gui::Item &item) {
if (item.focus) {
@@ 34,7 45,7 @@ namespace gui
this));
optList.emplace_back(std::make_unique<gui::option::OptionSettings>(
- utils::translate("app_settings_title_do_not_disturb"),
+ modifiedModesStrings[1],
[=](gui::Item &item) {
this->application->switchWindow(gui::window::name::do_not_disturb, nullptr);
return true;
@@ 49,7 60,7 @@ namespace gui
gui::option::SettingRightItem::ArrowWhite));
optList.emplace_back(std::make_unique<gui::option::OptionSettings>(
- utils::translate("app_settings_title_offline"),
+ modifiedModesStrings[2],
[=](gui::Item &item) {
this->application->switchWindow(gui::window::name::offline, nullptr);
return true;
R module-apps/application-settings/windows/PhoneModesWindow.hpp => module-apps/application-settings/windows/phone-modes/PhoneModesWindow.hpp +10 -15
@@ 3,33 3,28 @@
#pragma once
-#include "OptionWindow.hpp"
-#include "Application.hpp"
+#include <OptionWindow.hpp>
namespace app::settingsInterface
{
- class SimParams;
- class OperatorsSettings;
+ class PhoneModeSettings;
}; // namespace app::settingsInterface
namespace gui
{
-
- namespace window
- {
- inline constexpr auto phone_modes_window = "PhoneModes";
- };
-
class PhoneModesWindow : public OptionWindow
{
private:
auto modesOptList() -> std::list<gui::Option>;
- app::settingsInterface::SimParams *simParams;
- app::settingsInterface::OperatorsSettings *operatorsSettings;
+ void onBeforeShow(ShowMode m, SwitchData *d) override;
+ app::settingsInterface::PhoneModeSettings *phoneModeSettings;
+
+ const std::vector<std::string> initialModesStrings{utils::translate("app_settings_connected"),
+ utils::translate("app_settings_title_do_not_disturb"),
+ utils::translate("app_settings_title_offline")};
+ std::vector<std::string> modifiedModesStrings{initialModesStrings};
public:
- PhoneModesWindow(app::Application *app,
- app::settingsInterface::SimParams *simParams,
- app::settingsInterface::OperatorsSettings *operatorsSettings);
+ PhoneModesWindow(app::Application *app, app::settingsInterface::PhoneModeSettings *phoneModeSettings);
};
} // namespace gui
M module-apps/apps-common/options/type/OptionSetting.cpp => module-apps/apps-common/options/type/OptionSetting.cpp +3 -4
@@ 39,10 39,10 @@ namespace gui::option
switch (rightItem) {
case SettingRightItem::ArrowBlack:
- imageName = "right_label_arrow";
+ imageName = "arrow_right_32px_W_G";
break;
case SettingRightItem::ArrowWhite:
- imageName = "right_label_arrow_border";
+ imageName = "arrow_right_empty_32px_W_G";
break;
case SettingRightItem::On:
button = new ButtonOnOff(optionBodyHBox, ButtonState::On);
@@ 80,8 80,7 @@ namespace gui::option
}
if (!imageName.empty()) {
- auto image = new gui::Image(optionBodyHBox, 0, 0, 0, 0, imageName);
- image->setMargins(Margins(0, 0, window::option_right_margin, 0));
+ new gui::Image(optionBodyHBox, 0, 0, 0, 0, imageName);
}
if (button) {
M module-apps/apps-common/options/type/OptionSimple.cpp => module-apps/apps-common/options/type/OptionSimple.cpp +1 -2
@@ 41,8 41,7 @@ namespace gui::option
optionItem->activatedCallback = activatedCallback;
if (arrow == Arrow::Enabled) {
- auto arrowImage = new gui::Image(optionBodyHBox, 0, 0, 0, 0, "right_label_arrow");
- arrowImage->setMargins(Margins(0, 0, window::option_right_margin, 0));
+ new gui::Image(optionBodyHBox, 0, 0, 0, 0, "arrow_right_empty_32px_W_G");
}
return optionItem;
M module-gui/gui/widgets/Lines.cpp => module-gui/gui/widgets/Lines.cpp +5 -2
@@ 38,6 38,8 @@ namespace gui
auto Lines::draw(BlockCursor &drawCursor, Length w, Length h, Position lineYPosition, Position lineXPosition)
-> void
{
+ Position initialTopPadding = lineYPosition;
+
while (true) {
auto textLine = gui::TextLine(drawCursor, w);
@@ 47,7 49,7 @@ namespace gui
break;
}
- if (lineYPosition + textLine.height() > h) { // no more space for next line
+ if ((lineYPosition + textLine.height()) > (h + initialTopPadding)) { // no more space for next line
debug_text_lines("no more space for next text_line: %d + %" PRIu32 " > %" PRIu32,
lineYPosition,
textLine.height(),
@@ 74,6 76,7 @@ namespace gui
Position lineXPosition,
unsigned int linesCount) -> void
{
+ Position initialTopPadding = lineYPosition;
Length initHeight = text->getTextFormat().getFont()->info.line_height;
while (true) {
@@ 89,7 92,7 @@ namespace gui
break;
}
- if (lineYPosition + initHeight > h) {
+ if ((lineYPosition + initHeight) > (h + initialTopPadding)) {
if ((textLine.length() == 0) && textLine.getLineEnd()) {
stopCondition = LinesDrawStop::OutOfText;
break;