flushed out the Base screen and widget classes a bit more

This commit is contained in:
MatthewColvin 2023-09-16 14:46:59 -05:00
parent 64a868a907
commit 5cb4c1408d
4 changed files with 36 additions and 5 deletions

View file

@ -0,0 +1,11 @@
#include "ScreenBase.hpp"
using namespace UI::Screen;
Base::Base(){
}
void Base::AddWidget(Widget::Base::Ptr aWidget){
mWidgets.push_back(std::move(aWidget));
}

View file

@ -1,11 +1,19 @@
#include "lvgl.h"
#include "WidgetBase.hpp"
#include <vector>
namespace UI::Screen{
class Base {
public:
typedef std::unique_ptr<Base> Ptr;
Base();
void AddWidget(Widget::Base::Ptr aWidget);
private:
std::vector<Widget::Base::Ptr> mWidgets;
lv_obj_t *mScreen = lv_obj_create(NULL);
};

View file

@ -0,0 +1,12 @@
#include "WidgetBase.hpp"
namespace UI::Widget{
Base::Base(lv_obj_t* aLvglSelf):
mLvglSelf(aLvglSelf)
{
mLvglSelf->user_data = this;
}
}

View file

@ -1,13 +1,13 @@
#include "lvgl.h"
#include <memory>
namespace UI::Widget{
class Base{
public:
Base(lv_obj_t* aLvglSelf):
mLvglSelf(aLvglSelf)
{
mLvglSelf.user_data = this;
}
typedef std::unique_ptr<Base> Ptr;
Base(lv_obj_t* aLvglSelf);
private:
lv_obj_t* mLvglSelf;