~aleteoryx/muditaos

0d7bae0a550df2c4ec32b8047b7913ed07c8fba5 — Tomasz Sobkowiak 4 years ago 3ed010c
[EGD-3109] Use more appropriate type instead of raw types

Position and Length used instead of raw ones
M module-apps/application-desktop/widgets/DesktopInputWidget.cpp => module-apps/application-desktop/widgets/DesktopInputWidget.cpp +3 -4
@@ 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<Length>(request_h), style::desktop::inputWidget::min_h, style::desktop::inputWidget::max_h);

M module-apps/application-desktop/widgets/DesktopInputWidget.hpp => module-apps/application-desktop/widgets/DesktopInputWidget.hpp +2 -2
@@ 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 */

M module-apps/application-messages/widgets/SMSInputWidget.cpp => module-apps/application-messages/widgets/SMSInputWidget.cpp +3 -4
@@ 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);

M module-apps/application-messages/widgets/SMSInputWidget.hpp => module-apps/application-messages/widgets/SMSInputWidget.hpp +2 -2
@@ 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 */

M module-apps/application-messages/widgets/SMSOutputWidget.cpp => module-apps/application-messages/widgets/SMSOutputWidget.cpp +2 -3
@@ 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);

M module-apps/application-messages/widgets/SMSOutputWidget.hpp => module-apps/application-messages/widgets/SMSOutputWidget.hpp +2 -2
@@ 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<SMSRecord> &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 */

M module-apps/application-phonebook/widgets/OutputLinesTextWithLabelWidget.cpp => module-apps/application-phonebook/widgets/OutputLinesTextWithLabelWidget.cpp +2 -3
@@ 86,9 86,8 @@ namespace gui
        onLoadCallback = [&](std::shared_ptr<ContactRecord> 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);

M module-apps/application-phonebook/widgets/OutputLinesTextWithLabelWidget.hpp => module-apps/application-phonebook/widgets/OutputLinesTextWithLabelWidget.hpp +5 -5
@@ 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();

M module-gui/gui/core/BoundingBox.cpp => module-gui/gui/core/BoundingBox.cpp +9 -16
@@ 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 <limits>
#include <sstream>
#include <limits>
#include <module-gui/gui/Common.hpp>

namespace gui
{
    const uint16_t BoundingBox::zero_size = 0;
    const uint16_t BoundingBox::max_size  = std::numeric_limits<uint16_t>().max();
    const uint16_t BoundingBox::min_size  = std::numeric_limits<uint16_t>().min();

    const int16_t BoundingBox::zero_position = 0;
    const int16_t BoundingBox::max_position  = std::numeric_limits<int16_t>().max();
    const int16_t BoundingBox::min_position  = std::numeric_limits<int16_t>().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;

M module-gui/gui/core/BoundingBox.hpp => module-gui/gui/core/BoundingBox.hpp +14 -12
@@ 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 <cstdint>
#include <limits>
#include <string>

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<Length>().max();
        static constexpr Length min_size  = std::numeric_limits<Length>().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<Position>().max();
        static constexpr Position min_position  = std::numeric_limits<Position>().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);

M module-gui/gui/core/Context.cpp => module-gui/gui/core/Context.cpp +10 -10
@@ 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;

M module-gui/gui/dom/Item2JsonSerializingVisitor.cpp => module-gui/gui/dom/Item2JsonSerializingVisitor.cpp +2 -2
@@ 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<int>(box.x), static_cast<int>(box.y), static_cast<int>(box.w), static_cast<int>(box.h)};
}

auto Item2JsonSerializingVisitor::serialize(gui::Color &color) -> json11::Json::array

M module-gui/gui/widgets/BoxLayout.cpp => module-gui/gui/widgets/BoxLayout.cpp +7 -6
@@ 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<Position>(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 <Axis axis>
    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<Axis::X>(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<Axis::X>(child, request_w, request_h);
    }


@@ 599,7 600,7 @@ namespace gui
        BoxLayout::addWidget<Axis::Y>(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<Axis::Y>(child, request_w, request_h);
    }

M module-gui/gui/widgets/BoxLayout.hpp => module-gui/gui/widgets/BoxLayout.hpp +4 -5
@@ 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 <Axis axis>
        auto handleRequestResize(const Item *, unsigned short request_w, unsigned short request_h) -> Size;
        template <Axis axis> 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();
    };


M module-gui/gui/widgets/Item.cpp => module-gui/gui/widgets/Item.cpp +7 -9
@@ 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 <algorithm> // for find
#include <list>      // for list<>::iterator, list, operator!=, _List...
#include <algorithm>       // for find
#include <list>            // for list<>::iterator, list, operator!=, _List...
#include <memory>
#include <DrawCommand.hpp>
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()

M module-gui/gui/widgets/Item.hpp => module-gui/gui/widgets/Item.hpp +13 -13
@@ 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 <module-gui/gui/Common.hpp>
#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<void(std::list<Command> &)> preBuildDrawListHook  = nullptr;
        std::function<void(std::list<Command> &)> 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;
        }

M module-gui/gui/widgets/ListView.cpp => module-gui/gui/widgets/ListView.cpp +1 -3
@@ 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);

M module-gui/gui/widgets/ListView.hpp => module-gui/gui/widgets/ListView.hpp +1 -1
@@ 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 */

M module-gui/gui/widgets/Margins.cpp => module-gui/gui/widgets/Margins.cpp +3 -3
@@ 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) {


M module-gui/gui/widgets/Margins.hpp => module-gui/gui/widgets/Margins.hpp +6 -5
@@ 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);
    };

M module-gui/gui/widgets/Style.hpp => module-gui/gui/widgets/Style.hpp +1 -1
@@ 103,7 103,7 @@ namespace style
            inline constexpr auto width = 280U;
            inline constexpr auto h     = 50U;
        }; // namespace progressBar
    };    // namespace window
    };     // namespace window

    namespace settings
    {

M module-gui/gui/widgets/Text.cpp => module-gui/gui/widgets/Text.cpp +1 -1
@@ 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;

M module-gui/gui/widgets/Text.hpp => module-gui/gui/widgets/Text.hpp +1 -1
@@ 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