/* Crafter®.Graphics Copyright (C) 2025 Catcrafts® Catcrafts.net This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3.0 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ module Crafter.Graphics:UiElement_impl; import :UiElement; import :Window; import :Types; import std; using namespace Crafter; UiElement::UiElement(std::int_fast32_t anchorX, std::int_fast32_t anchorY, std::uint_fast32_t relativeWidth, std::uint_fast32_t relativeHeight, std::int_fast32_t anchorOffsetX, std::int_fast32_t anchorOffsetY, std::int_fast32_t z, bool ignoreScaling) : anchorX(anchorX), anchorY(anchorY), relativeWidth(relativeWidth), relativeHeight(relativeHeight), anchorOffsetX(anchorOffsetX), anchorOffsetY(anchorOffsetY), z(z), ignoreScaling(ignoreScaling) { } UiElementBuffer::UiElementBuffer(std::uint_fast32_t width, std::uint_fast32_t height) : width(width), height(height) { } // void UiElement::UpdatePosition(Window& window) { // // scaled.width = relativeWidth; // // scaled.height = relativeHeight; // // scaled.x = anchorX - (anchorOffsetX * scaled.width); // // scaled.y = anchorY - (anchorOffsetY * scaled.height); // // for(UiElement* child : children) { // // UpdatePosition(*child); // // } // } // void UiElement::UpdatePosition(UiElement& parent) { // // scaled.width = parent.scaled.width / relativeWidth; // // scaled.height = parent.scaled.height / relativeHeight; // // scaled.x = (parent.scaled.width / anchorX) - (anchorOffsetX * scaled.width); // // scaled.y = (parent.scaled.height / anchorY) - (anchorOffsetY * scaled.height); // // for(UiElement* child : children) { // // UpdatePosition(*child); // // } // }