From 0d7bae0a550df2c4ec32b8047b7913ed07c8fba5 Mon Sep 17 00:00:00 2001 From: Tomasz Sobkowiak Date: Tue, 27 Apr 2021 21:17:12 +0200 Subject: [PATCH] [EGD-3109] Use more appropriate type instead of raw types Position and Length used instead of raw ones --- .../widgets/DesktopInputWidget.cpp | 7 +++-- .../widgets/DesktopInputWidget.hpp | 4 +-- .../widgets/SMSInputWidget.cpp | 7 +++-- .../widgets/SMSInputWidget.hpp | 4 +-- .../widgets/SMSOutputWidget.cpp | 5 ++-- .../widgets/SMSOutputWidget.hpp | 4 +-- .../OutputLinesTextWithLabelWidget.cpp | 5 ++-- .../OutputLinesTextWithLabelWidget.hpp | 10 +++---- module-gui/gui/core/BoundingBox.cpp | 25 +++++++----------- module-gui/gui/core/BoundingBox.hpp | 26 ++++++++++--------- module-gui/gui/core/Context.cpp | 20 +++++++------- .../gui/dom/Item2JsonSerializingVisitor.cpp | 4 +-- module-gui/gui/widgets/BoxLayout.cpp | 13 +++++----- module-gui/gui/widgets/BoxLayout.hpp | 9 +++---- module-gui/gui/widgets/Item.cpp | 16 +++++------- module-gui/gui/widgets/Item.hpp | 26 +++++++++---------- module-gui/gui/widgets/ListView.cpp | 4 +-- module-gui/gui/widgets/ListView.hpp | 2 +- module-gui/gui/widgets/Margins.cpp | 6 ++--- module-gui/gui/widgets/Margins.hpp | 11 ++++---- module-gui/gui/widgets/Style.hpp | 2 +- module-gui/gui/widgets/Text.cpp | 2 +- module-gui/gui/widgets/Text.hpp | 2 +- 23 files changed, 101 insertions(+), 113 deletions(-) diff --git a/module-apps/application-desktop/widgets/DesktopInputWidget.cpp b/module-apps/application-desktop/widgets/DesktopInputWidget.cpp index 7e375920945913ef22863a78281ea81e12a0d59e..2b94af06e3838f7c02edc6f562d16a3800ac297d 100644 --- a/module-apps/application-desktop/widgets/DesktopInputWidget.cpp +++ b/module-apps/application-desktop/widgets/DesktopInputWidget.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include "DesktopInputWidget.hpp" @@ -82,9 +82,8 @@ namespace gui }; } - auto DesktopInputWidget::handleRequestResize([[maybe_unused]] const Item *child, - unsigned short request_w, - unsigned short request_h) -> Size + auto DesktopInputWidget::handleRequestResize([[maybe_unused]] const Item *child, Length request_w, Length request_h) + -> Size { request_h = std::clamp( static_cast(request_h), style::desktop::inputWidget::min_h, style::desktop::inputWidget::max_h); diff --git a/module-apps/application-desktop/widgets/DesktopInputWidget.hpp b/module-apps/application-desktop/widgets/DesktopInputWidget.hpp index e2953bc89a48d93c6d3917bb19a0f26f427def24..236095f5ddabf2975f6f90b233deee114a7750a9 100644 --- a/module-apps/application-desktop/widgets/DesktopInputWidget.hpp +++ b/module-apps/application-desktop/widgets/DesktopInputWidget.hpp @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once @@ -27,7 +27,7 @@ namespace gui DesktopInputWidget(app::Application *application, Item *parent, uint32_t x, uint32_t y, uint32_t w, uint32_t h); ~DesktopInputWidget() override = default; - auto handleRequestResize(const Item *, unsigned short request_w, unsigned short request_h) -> Size override; + auto handleRequestResize(const Item *, Length request_w, Length request_h) -> Size override; }; } /* namespace gui */ diff --git a/module-apps/application-messages/widgets/SMSInputWidget.cpp b/module-apps/application-messages/widgets/SMSInputWidget.cpp index 59ed3d1743cbc1ab6c3b9776e7695d2ec3efdf88..0a1c6182ab180f018a8502a040f04787ab87248a 100644 --- a/module-apps/application-messages/widgets/SMSInputWidget.cpp +++ b/module-apps/application-messages/widgets/SMSInputWidget.cpp @@ -30,7 +30,7 @@ namespace gui body->setMaximumSize(style::window::default_body_width, style::messages::smsInput::max_input_h); deleteByList = false; - inputText = new gui::Text(body, 0, 0, 0, 0, "", ExpandMode::Up); + inputText = new gui::Text(body, 0, 0, 0, 0, "", ExpandMode::Up); inputText->setMaximumSize(style::messages::smsInput::default_input_w, style::messages::smsInput::max_input_h); inputText->setMinimumSize(style::messages::smsInput::default_input_w, style::messages::smsInput::default_input_h); @@ -166,9 +166,8 @@ namespace gui } } - auto SMSInputWidget::handleRequestResize([[maybe_unused]] const Item *child, - unsigned short request_w, - unsigned short request_h) -> Size + auto SMSInputWidget::handleRequestResize([[maybe_unused]] const Item *child, Length request_w, Length request_h) + -> Size { request_h = std::clamp((Length)request_h, style::messages::smsInput::min_h, style::messages::smsInput::max_input_h); diff --git a/module-apps/application-messages/widgets/SMSInputWidget.hpp b/module-apps/application-messages/widgets/SMSInputWidget.hpp index 8340e4c8703f97498e9ee2af9b7f9fb5386d3b0b..0a80e538987182fd0d60deaf5a7e192c6c031654 100644 --- a/module-apps/application-messages/widgets/SMSInputWidget.hpp +++ b/module-apps/application-messages/widgets/SMSInputWidget.hpp @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once @@ -33,7 +33,7 @@ namespace gui void updateDraftMessage(const UTF8 &inputText); void displayDraftMessage() const; - auto handleRequestResize(const Item *, unsigned short request_w, unsigned short request_h) -> Size override; + auto handleRequestResize(const Item *, Length request_w, Length request_h) -> Size override; }; } /* namespace gui */ diff --git a/module-apps/application-messages/widgets/SMSOutputWidget.cpp b/module-apps/application-messages/widgets/SMSOutputWidget.cpp index c743cc07eef08f04a0601bc29884de9a78a3bf3e..780d1a401a99e1c5eed62d49835a1244075334c7 100644 --- a/module-apps/application-messages/widgets/SMSOutputWidget.cpp +++ b/module-apps/application-messages/widgets/SMSOutputWidget.cpp @@ -145,9 +145,8 @@ namespace gui body->addWidget(errorIcon); } - auto SMSOutputWidget::handleRequestResize([[maybe_unused]] const Item *child, - unsigned short request_w, - unsigned short request_h) -> Size + auto SMSOutputWidget::handleRequestResize([[maybe_unused]] const Item *child, Length request_w, Length request_h) + -> Size { setMinimumHeight(request_h); return Size(request_w, request_h); diff --git a/module-apps/application-messages/widgets/SMSOutputWidget.hpp b/module-apps/application-messages/widgets/SMSOutputWidget.hpp index 532b3a68f5a584b5199407215382c5d249d6e60e..318f0506e4fc40dbc2d77e9e49747b32428c82fc 100644 --- a/module-apps/application-messages/widgets/SMSOutputWidget.hpp +++ b/module-apps/application-messages/widgets/SMSOutputWidget.hpp @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once @@ -31,7 +31,7 @@ namespace gui SMSOutputWidget(app::Application *application, const std::shared_ptr &record); virtual ~SMSOutputWidget() = default; - auto handleRequestResize(const Item *, unsigned short request_w, unsigned short request_h) -> Size override; + auto handleRequestResize(const Item *, Length request_w, Length request_h) -> Size override; }; } /* namespace gui */ diff --git a/module-apps/application-phonebook/widgets/OutputLinesTextWithLabelWidget.cpp b/module-apps/application-phonebook/widgets/OutputLinesTextWithLabelWidget.cpp index 137d844858911fcd2a80d6fb850d1cef1ed19fe2..88279424abdf8c72b2144b2c72e88f401c56a5b0 100644 --- a/module-apps/application-phonebook/widgets/OutputLinesTextWithLabelWidget.cpp +++ b/module-apps/application-phonebook/widgets/OutputLinesTextWithLabelWidget.cpp @@ -86,9 +86,8 @@ namespace gui onLoadCallback = [&](std::shared_ptr contact) { multilineText->setText(contact->note); }; } - auto OutputLinesTextWithLabelWidget::handleRequestResize(const Item *child, - unsigned short request_w, - unsigned short request_h) -> Size + auto OutputLinesTextWithLabelWidget::handleRequestResize(const Item *child, Length request_w, Length request_h) + -> Size { setMinimumHeight(phonebookStyle::outputLinesTextWithLabelWidget::title_label_h + phonebookStyle::outputLinesTextWithLabelWidget::span_size + request_h); diff --git a/module-apps/application-phonebook/widgets/OutputLinesTextWithLabelWidget.hpp b/module-apps/application-phonebook/widgets/OutputLinesTextWithLabelWidget.hpp index f42d48ec80dcab03c00d85e675291a262529d814..5a1e551206010c09db239bb2656d67e98e6d0c83 100644 --- a/module-apps/application-phonebook/widgets/OutputLinesTextWithLabelWidget.hpp +++ b/module-apps/application-phonebook/widgets/OutputLinesTextWithLabelWidget.hpp @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once @@ -20,11 +20,11 @@ namespace gui OutputLinesTextWithLabelWidget(phonebookInternals::ListItemName listItemName); ~OutputLinesTextWithLabelWidget() override = default; - VBox *vBox = nullptr; - Label *titleLabel = nullptr; - Text *multilineText = nullptr; + VBox *vBox = nullptr; + Label *titleLabel = nullptr; + Text *multilineText = nullptr; - auto handleRequestResize(const Item *, unsigned short request_w, unsigned short request_h) -> Size override; + auto handleRequestResize(const Item *, Length request_w, Length request_h) -> Size override; private: void applyItemNameSpecificSettings(); diff --git a/module-gui/gui/core/BoundingBox.cpp b/module-gui/gui/core/BoundingBox.cpp index 0d2d39d61816b4f9ea66aa13c587ac5772863d20..20f35d3f81516c532f1805a08e78667b601f8969 100644 --- a/module-gui/gui/core/BoundingBox.cpp +++ b/module-gui/gui/core/BoundingBox.cpp @@ -1,22 +1,15 @@ -// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include "BoundingBox.hpp" #include #include #include +#include namespace gui { - const uint16_t BoundingBox::zero_size = 0; - const uint16_t BoundingBox::max_size = std::numeric_limits().max(); - const uint16_t BoundingBox::min_size = std::numeric_limits().min(); - - const int16_t BoundingBox::zero_position = 0; - const int16_t BoundingBox::max_position = std::numeric_limits().max(); - const int16_t BoundingBox::min_position = std::numeric_limits().min(); - - BoundingBox::BoundingBox(int32_t x, int32_t y, uint32_t w, uint32_t h) + BoundingBox::BoundingBox(Position x, Position y, Length w, Length h) { this->x = x; this->y = y; @@ -81,13 +74,13 @@ namespace gui void BoundingBox::clear() { - x = 0; - y = 0; - w = 0; - h = 0; + x = zero_position; + y = zero_position; + w = zero_size; + h = zero_size; } - uint16_t BoundingBox::size(gui::Axis axis) const + Length BoundingBox::size(gui::Axis axis) const { if (axis == Axis::X) return w; @@ -95,7 +88,7 @@ namespace gui return h; } - int16_t BoundingBox::pos(gui::Axis axis) const + Position BoundingBox::pos(gui::Axis axis) const { if (axis == Axis::X) return x; diff --git a/module-gui/gui/core/BoundingBox.hpp b/module-gui/gui/core/BoundingBox.hpp index e33413b3ff31335dcf1af712b180ac3a371c1f2a..35ac86414879abe88c3249e48228ed03a2402d06 100644 --- a/module-gui/gui/core/BoundingBox.hpp +++ b/module-gui/gui/core/BoundingBox.hpp @@ -1,10 +1,12 @@ -// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once #include "Axes.hpp" +#include "gui/Common.hpp" #include +#include #include namespace gui @@ -16,20 +18,20 @@ namespace gui class BoundingBox { public: - static const uint16_t zero_size; - static const uint16_t max_size; - static const uint16_t min_size; + static constexpr Length zero_size = 0; + static constexpr Length max_size = std::numeric_limits().max(); + static constexpr Length min_size = std::numeric_limits().min(); - static const int16_t zero_position; - static const int16_t max_position; - static const int16_t min_position; + static constexpr Position zero_position = 0; + static constexpr Position max_position = std::numeric_limits().max(); + static constexpr Position min_position = std::numeric_limits().min(); struct { - int16_t x = zero_position, y = zero_position; - uint16_t w = zero_size, h = zero_size; + Position x = zero_position, y = zero_position; + Length w = zero_size, h = zero_size; }; - BoundingBox(int32_t x = 0, int32_t y = 0, uint32_t w = 0, uint32_t h = 0); + BoundingBox(Position x = zero_position, Position y = zero_position, Length w = 0, Length h = 0); virtual ~BoundingBox() = default; static bool intersect(const BoundingBox &box1, const BoundingBox &box2, BoundingBox &result); @@ -37,9 +39,9 @@ namespace gui /// set x,y,w,h to zero void clear(); /// get size in axis - in x get width in y get height - uint16_t size(gui::Axis axis) const; + Length size(gui::Axis axis) const; /// get position in axis - in x get x, in y get y - int16_t pos(gui::Axis axis) const; + Position pos(gui::Axis axis) const; std::string str() const; /// logical sum of bounding box by another bounding box values void sum(const BoundingBox &box); diff --git a/module-gui/gui/core/Context.cpp b/module-gui/gui/core/Context.cpp index 8c82884e3f2fff38910e565def9003127eedef70..067219f7f5b4afde1e531e9222969f82c4225318 100644 --- a/module-gui/gui/core/Context.cpp +++ b/module-gui/gui/core/Context.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md /* @@ -45,9 +45,9 @@ namespace gui // if boxes overlap copy part defined by result from current context to the new context. if (BoundingBox::intersect(currentBox, newBox, resultBox)) { - uint32_t sourceOffset = resultBox.y * w + resultBox.x; - uint32_t destOffset = (resultBox.y - gy) * width + (resultBox.x - gx); - for (int32_t h = 0; h < resultBox.h; h++) { + Length sourceOffset = resultBox.y * w + resultBox.x; + Length destOffset = (resultBox.y - gy) * width + (resultBox.x - gx); + for (Length h = 0; h < resultBox.h; h++) { memcpy(retContext->data + destOffset, data + sourceOffset, resultBox.w); sourceOffset += w; destOffset += width; @@ -67,9 +67,9 @@ namespace gui // if boxes overlap copy part defined by result from current context to the new context. if (BoundingBox::intersect(currentBox, insertBox, resultBox)) { - uint32_t sourceOffset = (resultBox.y - iy) * context->w + (resultBox.x - ix); - uint32_t destOffset = (resultBox.y) * w + (resultBox.x); - for (int32_t h = 0; h < resultBox.h; h++) { + Length sourceOffset = (resultBox.y - iy) * context->w + (resultBox.x - ix); + Length destOffset = (resultBox.y) * w + (resultBox.x); + for (Length h = 0; h < resultBox.h; h++) { memcpy(data + destOffset, context->data + sourceOffset, resultBox.w); sourceOffset += context->w; destOffset += w; @@ -93,9 +93,9 @@ namespace gui xBoxOffset = iareaX; if (iareaY < 0) yBoxOffset = iareaY; - uint32_t sourceOffset = (resultBox.y - iy - yBoxOffset) * context->w + (resultBox.x - ix - xBoxOffset); - uint32_t destOffset = (resultBox.y) * w + (resultBox.x); - for (int32_t h = 0; h < resultBox.h; h++) { + Length sourceOffset = (resultBox.y - iy - yBoxOffset) * context->w + (resultBox.x - ix - xBoxOffset); + Length destOffset = (resultBox.y) * w + (resultBox.x); + for (Length h = 0; h < resultBox.h; h++) { memcpy(data + destOffset, context->data + sourceOffset, resultBox.w); sourceOffset += context->w; destOffset += w; diff --git a/module-gui/gui/dom/Item2JsonSerializingVisitor.cpp b/module-gui/gui/dom/Item2JsonSerializingVisitor.cpp index a51d15fd82c2c2bd4b2c2eeca8cc93619f63ddf5..986d6a7ae0507e64da1f0f76a9e84967357bbbc2 100644 --- a/module-gui/gui/dom/Item2JsonSerializingVisitor.cpp +++ b/module-gui/gui/dom/Item2JsonSerializingVisitor.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include "Item2JsonSerializingVisitor.hpp" @@ -104,7 +104,7 @@ void Item2JsonSerializingVisitor::visit(gui::ListItem &item) auto Item2JsonSerializingVisitor::serialize(gui::BoundingBox &box) -> json11::Json::array { - return {box.x, box.y, box.w, box.h}; + return {static_cast(box.x), static_cast(box.y), static_cast(box.w), static_cast(box.h)}; } auto Item2JsonSerializingVisitor::serialize(gui::Color &color) -> json11::Json::array diff --git a/module-gui/gui/widgets/BoxLayout.cpp b/module-gui/gui/widgets/BoxLayout.cpp index 2034f2c1581ea5b1ca10007a0bfda98947a3f75c..c6c615eca4052b07dc14582b8b35853c3efacd69 100644 --- a/module-gui/gui/widgets/BoxLayout.cpp +++ b/module-gui/gui/widgets/BoxLayout.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include "BoxLayout.hpp" @@ -265,7 +265,8 @@ namespace gui { // Get maximum size that element in orthogonal axis can occupy in current layout size. Length maxOrthogonalItemInParentSize = - this->area(Area::Normal).size(orthogonal(axis)) <= el->getMargins().getSumInAxis(orthogonal(axis)) + static_cast(this->area(Area::Normal).size(orthogonal(axis))) <= + el->getMargins().getSumInAxis(orthogonal(axis)) ? 0 : this->area(Area::Normal).size(orthogonal(axis)) - el->getMargins().getSumInAxis(orthogonal(axis)); @@ -288,7 +289,7 @@ namespace gui auto axisItemPosition = 0; // Check if elements in axis can fit with margins in layout free space. - if (((Position)axisItemSize + el->getMargins().getSumInAxis(axis)) <= leftPosition) { + if (((Position)(axisItemSize + el->getMargins().getSumInAxis(axis))) <= leftPosition) { if (reverseOrder) { startingPosition -= el->getMargins().getMarginInAxis(axis, MarginInAxis::Second); @@ -433,7 +434,7 @@ namespace gui } template - auto BoxLayout::handleRequestResize(const Item *child, unsigned short request_w, unsigned short request_h) -> Size + auto BoxLayout::handleRequestResize(const Item *child, Length request_w, Length request_h) -> Size { if (parent != nullptr) { auto [w, h] = requestSize(request_w, request_h); @@ -568,7 +569,7 @@ namespace gui BoxLayout::addWidget(item); } - auto HBox::handleRequestResize(const Item *child, unsigned short request_w, unsigned short request_h) -> Size + auto HBox::handleRequestResize(const Item *child, Length request_w, Length request_h) -> Size { return BoxLayout::handleRequestResize(child, request_w, request_h); } @@ -599,7 +600,7 @@ namespace gui BoxLayout::addWidget(item); } - auto VBox::handleRequestResize(const Item *child, unsigned short request_w, unsigned short request_h) -> Size + auto VBox::handleRequestResize(const Item *child, Length request_w, Length request_h) -> Size { return BoxLayout::handleRequestResize(child, request_w, request_h); } diff --git a/module-gui/gui/widgets/BoxLayout.hpp b/module-gui/gui/widgets/BoxLayout.hpp index ed5e67d4fb3b392b3aa9537b492dac5756af223e..08492e3f56d27c771dbbd180d2e221f5ffd5d2ab 100644 --- a/module-gui/gui/widgets/BoxLayout.hpp +++ b/module-gui/gui/widgets/BoxLayout.hpp @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once @@ -119,8 +119,7 @@ namespace gui // set focus on specified box element bool setFocusOnElement(unsigned int elementNumber); void setFocusOnLastElement(); - template - auto handleRequestResize(const Item *, unsigned short request_w, unsigned short request_h) -> Size; + template auto handleRequestResize(const Item *, Length request_w, Length request_h) -> Size; auto onDimensionChanged(const BoundingBox &oldDim, const BoundingBox &newDim) -> bool override; }; @@ -132,7 +131,7 @@ namespace gui HBox(Item *parent, const uint32_t &x = 0, const uint32_t &y = 0, const uint32_t &w = 0, const uint32_t &h = 0); virtual ~HBox() = default; virtual void addWidget(Item *item) override; - auto handleRequestResize(const Item *, unsigned short request_w, unsigned short request_h) -> Size override; + auto handleRequestResize(const Item *, Length request_w, Length request_h) -> Size override; Length getSizeLeft(); }; @@ -144,7 +143,7 @@ namespace gui VBox(Item *parent, const uint32_t &x = 0, const uint32_t &y = 0, const uint32_t &w = 0, const uint32_t &h = 0); virtual ~VBox() = default; virtual void addWidget(Item *item) override; - auto handleRequestResize(const Item *, unsigned short request_w, unsigned short request_h) -> Size override; + auto handleRequestResize(const Item *, Length request_w, Length request_h) -> Size override; Length getSizeLeft(); }; diff --git a/module-gui/gui/widgets/Item.cpp b/module-gui/gui/widgets/Item.cpp index 59e46e46b4d8d6e02b5460e8d55c03daad9c39cf..593feb6f165b55002cfa6ed66c3b8d118ec9c537 100644 --- a/module-gui/gui/widgets/Item.cpp +++ b/module-gui/gui/widgets/Item.cpp @@ -5,8 +5,8 @@ #include "BoundingBox.hpp" // for BoundingBox, BoundingBox::(anonymous) #include "InputEvent.hpp" // for InputEvent, KeyCode, InputEvent::State #include "Navigation.hpp" // for Navigation -#include // for find -#include // for list<>::iterator, list, operator!=, _List... +#include // for find +#include // for list<>::iterator, list, operator!=, _List... #include #include namespace gui @@ -141,7 +141,7 @@ namespace gui onDimensionChanged(oldArea, widgetArea); } - void Item::setPosition(const short &x, const short &y) + void Item::setPosition(const Position &x, const Position &y) { setArea({x, y, widgetArea.w, widgetArea.h}); } @@ -156,7 +156,7 @@ namespace gui setArea({widgetArea.x, y, widgetArea.w, widgetArea.h}); } - auto Item::requestSize(unsigned short request_w, unsigned short request_h) -> Size + auto Item::requestSize(Length request_w, Length request_h) -> Size { if (parent == nullptr) { setSize(request_w, request_h); @@ -165,7 +165,7 @@ namespace gui return parent->handleRequestResize(this, request_w, request_h); } - auto Item::handleRequestResize(const Item *it, unsigned short request_w, unsigned short request_h) -> Size + auto Item::handleRequestResize(const Item *it, Length request_w, Length request_h) -> Size { if (it == nullptr) { return {0, 0}; @@ -300,7 +300,7 @@ namespace gui return widgetArea.pos(axis); } - void Item::setPosition(const short &val, Axis axis) + void Item::setPosition(const Position &val, Axis axis) { int16_t x = getX(); int16_t y = getY(); @@ -380,9 +380,7 @@ namespace gui void Item::setRadius(int value) { - if (value < 0) - value = 0; - radius = value; + radius = std::abs(value); } void Item::updateDrawArea() diff --git a/module-gui/gui/widgets/Item.hpp b/module-gui/gui/widgets/Item.hpp index 6331bbd171f1535d11c452dc78d4608340abb090..a3b5475fa7b604ab9f37bfed10f33055202fc78c 100644 --- a/module-gui/gui/widgets/Item.hpp +++ b/module-gui/gui/widgets/Item.hpp @@ -3,8 +3,8 @@ #pragma once -#include "Alignment.hpp" // for Alignment -#include "Axes.hpp" // for Axis +#include "Alignment.hpp" // for Alignment +#include "Axes.hpp" // for Axis #include #include "Layout.hpp" // for LayoutHorizontalPolicy, LayoutVertic... #include "Margins.hpp" // for Padding, Margins @@ -231,8 +231,8 @@ namespace gui /// sets position of element - this is sets area().x and area().y of item /// @note calls onDimensionChanged callback & updateDrawArea for item /// @attention should be bind to area - virtual void setPosition(const short &x, const short &y); - virtual void setPosition(const short &val, Axis axis); + virtual void setPosition(const Position &x, const Position &y); + virtual void setPosition(const Position &val, Axis axis); [[nodiscard]] uint16_t getSize(Axis axis) const; [[nodiscard]] uint16_t getPosition(Axis axis) const; virtual void setMargins(const Margins &value); @@ -268,7 +268,7 @@ namespace gui /// requests bigger size from parent if parent available /// if no parent available - sets size /// @return true if handled positively - virtual auto requestSize(unsigned short request_w, unsigned short request_h) -> Size final; + virtual auto requestSize(Length request_w, Length request_h) -> Size final; /// handle for layouts to implement to resize on demand ( i.e. when it needs to expand after /// addition/removal of chars ) /// @@ -282,7 +282,7 @@ namespace gui /// should be handled without infinite loop on resize ( item->setSize -> notify Layout -> layout: item->setSize /// ) /// @return bool requested size granted {w,h} - virtual auto handleRequestResize(const Item *, unsigned short request_w, unsigned short request_h) -> Size; + virtual auto handleRequestResize(const Item *, Length request_w, Length request_h) -> Size; virtual void setSize(const unsigned short w, const unsigned short h); void setSize(uint32_t val, Axis axis); @@ -301,7 +301,7 @@ namespace gui /// pre hook function, if set it is executed before building draw command /// at Item::buildDrawListImplementation() /// @param `commandlist` : commands list of commands for renderer to draw elements on screen - std::function &)> preBuildDrawListHook = nullptr; + std::function &)> preBuildDrawListHook = nullptr; /// post hook function, if set it is executed after building draw command /// at Item::buildDrawListImplementation() /// @param `commandlist` : commands list of commands for renderer to draw elements on screen @@ -333,13 +333,13 @@ namespace gui /// all these elements should be checked for naming/use consistency /// possibly all of that should be handled via area() (and area should have callback pinned from Item on resize /// @{ - void setX(const int32_t x); - void setY(const int32_t y); - [[nodiscard]] int32_t getX() const + void setX(const gui::Position x); + void setY(const gui::Position y); + [[nodiscard]] gui::Position getX() const { return (widgetArea.x); } - [[nodiscard]] int32_t getY() const + [[nodiscard]] gui::Position getY() const { return (widgetArea.y); } @@ -353,13 +353,13 @@ namespace gui } /// helper function to show where widget ends in x axis /// @return item ends position in X axis - [[nodiscard]] int32_t offset_w() const + [[nodiscard]] gui::Position offset_w() const { return getWidth() + widgetArea.x; } /// helper function to show where widget ends in y axis /// @return item ends position in Y axis - [[nodiscard]] int32_t offset_h() const + [[nodiscard]] gui::Position offset_h() const { return getHeight() + widgetArea.y; } diff --git a/module-gui/gui/widgets/ListView.cpp b/module-gui/gui/widgets/ListView.cpp index b58661ce28b28924d88193d3d6c6f83001cf9af2..8a62b347860d68d83312ac3753c9c5c40f059586 100644 --- a/module-gui/gui/widgets/ListView.cpp +++ b/module-gui/gui/widgets/ListView.cpp @@ -634,9 +634,7 @@ namespace gui return true; } - auto ListView::handleRequestResize([[maybe_unused]] const Item *child, - unsigned short request_w, - unsigned short request_h) -> Size + auto ListView::handleRequestResize([[maybe_unused]] const Item *child, Length request_w, Length request_h) -> Size { return Size(request_w, request_h); diff --git a/module-gui/gui/widgets/ListView.hpp b/module-gui/gui/widgets/ListView.hpp index 5108c49cf1065b8e7305777a06cf4955c61674a2..39e465fdf4f199ed0f9dec8c1257bc66cf257805 100644 --- a/module-gui/gui/widgets/ListView.hpp +++ b/module-gui/gui/widgets/ListView.hpp @@ -194,7 +194,7 @@ namespace gui // virtual methods from Item bool onInput(const InputEvent &inputEvent) override; bool onDimensionChanged(const BoundingBox &oldDim, const BoundingBox &newDim) override; - auto handleRequestResize(const Item *, unsigned short request_w, unsigned short request_h) -> Size override; + auto handleRequestResize(const Item *, Length request_w, Length request_h) -> Size override; }; } /* namespace gui */ diff --git a/module-gui/gui/widgets/Margins.cpp b/module-gui/gui/widgets/Margins.cpp index 61a263e8d1375cb0fe42073ce8aa2ec09fc007a2..42362744c165f36285de86d7c5656fb1f8359c3a 100644 --- a/module-gui/gui/widgets/Margins.cpp +++ b/module-gui/gui/widgets/Margins.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md /* @@ -14,7 +14,7 @@ namespace gui { - short Margins::getSumInAxis(gui::Axis axis) const + Position Margins::getSumInAxis(gui::Axis axis) const { switch (axis) { case Axis::X: @@ -26,7 +26,7 @@ namespace gui } } - short Margins::getMarginInAxis(Axis axis, MarginInAxis pos) const + Position Margins::getMarginInAxis(Axis axis, MarginInAxis pos) const { switch (axis) { diff --git a/module-gui/gui/widgets/Margins.hpp b/module-gui/gui/widgets/Margins.hpp index 63206fdabc08e9c5385e615f0ae000116896a84a..566c0c5e4e90c11c912de754ab46b80e065d8a54 100644 --- a/module-gui/gui/widgets/Margins.hpp +++ b/module-gui/gui/widgets/Margins.hpp @@ -1,9 +1,10 @@ -// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once #include "core/Axes.hpp" +#include "gui/Common.hpp" namespace gui { @@ -16,17 +17,17 @@ namespace gui class Margins { public: - short left, top, right, bottom; + Position left, top, right, bottom; constexpr Margins() : left{0}, top{0}, right{0}, bottom{0} {} - constexpr Margins(const short left, const short top, const short right, const short bottom) + constexpr Margins(const Position left, const Position top, const Position right, const Position bottom) : left{left}, top{top}, right{right}, bottom{bottom} {} - [[nodiscard]] short getSumInAxis(Axis axis) const; - [[nodiscard]] short getMarginInAxis(Axis axis, MarginInAxis pos) const; + [[nodiscard]] Position getSumInAxis(Axis axis) const; + [[nodiscard]] Position getMarginInAxis(Axis axis, MarginInAxis pos) const; bool operator==(const Margins &margins); bool operator!=(const Margins &margins); }; diff --git a/module-gui/gui/widgets/Style.hpp b/module-gui/gui/widgets/Style.hpp index e3b7ac856bcdb69ee0b7c3f109899794ddc1121d..674a94a69ec43942c1eb03d98477afade83b2b30 100644 --- a/module-gui/gui/widgets/Style.hpp +++ b/module-gui/gui/widgets/Style.hpp @@ -103,7 +103,7 @@ namespace style inline constexpr auto width = 280U; inline constexpr auto h = 50U; }; // namespace progressBar - }; // namespace window + }; // namespace window namespace settings { diff --git a/module-gui/gui/widgets/Text.cpp b/module-gui/gui/widgets/Text.cpp index e08dc65d0d7a2a7662aa0eb4188461da497907c2..7d0d210d52a8e919db85dbef125278c54900c8dd 100644 --- a/module-gui/gui/widgets/Text.cpp +++ b/module-gui/gui/widgets/Text.cpp @@ -314,7 +314,7 @@ namespace gui auto Text::getSizeMinusPadding(Axis axis, Area val) -> Length { - auto size = area(val).size(axis); + int size = area(val).size(axis); if (size <= padding.getSumInAxis(axis)) { size = 0; diff --git a/module-gui/gui/widgets/Text.hpp b/module-gui/gui/widgets/Text.hpp index 774b5e693f5707c7e0dc8c48ce204565b7eaed61..831879e9f808992c07fe526724dd0849f53ead68 100644 --- a/module-gui/gui/widgets/Text.hpp +++ b/module-gui/gui/widgets/Text.hpp @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once