Simple GUI Library
control.h
Go to the documentation of this file.
1/**
2 * @author Nikita Mochalov (github.com/tralf-strues)
3 * @file control.h
4 * @date 2021-11-06
5 *
6 * @copyright Copyright (c) 2021
7 */
8
9#pragma once
10
11#include "../parent.h"
12#include "../style/skin.h"
13
14namespace Sgl
15{
16 class Control : public Parent, public Skinnable
17 {
18 public:
19 Control() = default;
20 virtual ~Control() override;
21
22 virtual Component* getHitComponent(int32_t x, int32_t y) override;
23
24 protected:
25 Skin* m_DefaultSkin = nullptr; // Supposed to be allocated dynamically.
26
27 virtual void layoutChildren() override final;
28 virtual void prerenderSelf() override final;
29
30 virtual int32_t computeCustomPrefWidth(int32_t height = -1) const override;
31 virtual int32_t computeCustomPrefHeight(int32_t width = -1) const override;
32
33 virtual int32_t computeCustomMinWidth(int32_t height = -1) const override;
34 virtual int32_t computeCustomMinHeight(int32_t width = -1) const override;
35
36 virtual int32_t computeCustomMaxWidth(int32_t height = -1) const override;
37 virtual int32_t computeCustomMaxHeight(int32_t width = -1) const override;
38 };
39}
Definition: skin.h:20