[zhoulongyu]:

Modify the names of some of the abstract classes associated with Lvgl
This commit is contained in:
zhoulongyu 2024-08-06 00:36:51 +08:00
parent c5436c077f
commit 45d0acca40
10 changed files with 56 additions and 56 deletions

View File

@ -53,17 +53,17 @@ enum class i_lv_align_t{
typedef void (*i_lv_event_cb_t)(i_lv_event_code_t e, void * userData);
class Widget
class VWidget
{
public:
Widget() = default;
virtual ~Widget() {}
VWidget() = default;
virtual ~VWidget() {}
virtual void ImageSetSrc(const void *src) {}
virtual void SetSize(const int16_t width, const int16_t height) {}
virtual void SetColor(uint32_t color) {}
virtual void Load(void) {}
virtual void SetText(const char *text) {}
virtual void AlignTo(std::shared_ptr<Widget> base, i_lv_align_t align, int16_t posX, int16_t posY) {}
virtual void AlignTo(std::shared_ptr<VWidget> base, i_lv_align_t align, int16_t posX, int16_t posY) {}
virtual void SetPos(int16_t posX, int16_t posY) {}
virtual void Center(void) {}
virtual void SetEventCb(i_lv_event_cb_t eventCb) {}
@ -82,23 +82,23 @@ public:
};
class GuiEngine
class VGuiEngine
{
public:
GuiEngine() = default;
virtual ~GuiEngine() = default;
VGuiEngine() = default;
virtual ~VGuiEngine() = default;
/**
* @brief Get the Instance object
* Return reference for runing faster. Usage : GuiEngine::GetInstance()->Init();
* Don't use GuiEngine like this:
* std::shared_ptr<GuiEngine> &log = GuiEngine::GetInstance();
* or std::shared_ptr<GuiEngine> log = GuiEngine::GetInstance();
* Return reference for runing faster. Usage : VGuiEngine::GetInstance()->Init();
* Don't use VGuiEngine like this:
* std::shared_ptr<VGuiEngine> &log = VGuiEngine::GetInstance();
* or std::shared_ptr<VGuiEngine> log = VGuiEngine::GetInstance();
* @param impl
* @return std::shared_ptr<GuiEngine>&
* @return std::shared_ptr<VGuiEngine>&
*/
static std::shared_ptr<GuiEngine> &GetInstance(std::shared_ptr<GuiEngine> *impl = nullptr)
static std::shared_ptr<VGuiEngine> &GetInstance(std::shared_ptr<VGuiEngine> *impl = nullptr)
{
static auto instance = std::make_shared<GuiEngine>();
static auto instance = std::make_shared<VGuiEngine>();
if (impl)
{
/**
@ -121,13 +121,13 @@ public:
virtual const int16_t GetScreenWidth(void) { return 1;}
virtual const int16_t GetScreenHeight(void) { return 1;}
virtual StatusCode CreateFrameParObject(int16_t widht = 100, int16_t height = 100, int16_t posX = 0, int16_t posY = 0) { return CreateStatusCode(STATUS_CODE_OK); } // 这个界面不应该放出来, 在应用层初始化的时候使用
virtual std::shared_ptr<Widget> GetFrameParObject(void) { return std::make_shared<Widget>(); }
virtual StatusCode SetNowNode(std::shared_ptr<Widget>) { return CreateStatusCode(STATUS_CODE_OK); } // 这个函数不应该放出来, 在切换界面的时候使用
virtual std::shared_ptr<Widget> GetNowNode(void) { return nullptr; }
virtual std::shared_ptr<Widget> NewWidget(void) { return std::make_shared<Widget>(); }
virtual std::shared_ptr<Widget> NewPage(void) { return std::make_shared<Widget>(); }
virtual std::shared_ptr<Widget> NewImage(void) { return std::make_shared<Widget>(); }
virtual std::shared_ptr<Widget> NewButton(void) { return std::make_shared<Widget>(); }
virtual std::shared_ptr<VWidget> GetFrameParObject(void) { return std::make_shared<VWidget>(); }
virtual StatusCode SetNowNode(std::shared_ptr<VWidget>) { return CreateStatusCode(STATUS_CODE_OK); } // 这个函数不应该放出来, 在切换界面的时候使用
virtual std::shared_ptr<VWidget> GetNowNode(void) { return nullptr; }
virtual std::shared_ptr<VWidget> NewWidget(void) { return std::make_shared<VWidget>(); }
virtual std::shared_ptr<VWidget> NewPage(void) { return std::make_shared<VWidget>(); }
virtual std::shared_ptr<VWidget> NewImage(void) { return std::make_shared<VWidget>(); }
virtual std::shared_ptr<VWidget> NewButton(void) { return std::make_shared<VWidget>(); }
};

View File

@ -4,8 +4,8 @@
#include <thread>
bool CreateGuiEngineImpl()
{
std::shared_ptr<GuiEngine> impl = std::move(std::make_shared<LvglLinuxBoard>());
GuiEngine::GetInstance(&impl);
std::shared_ptr<VGuiEngine> impl = std::move(std::make_shared<LvglLinuxBoard>());
VGuiEngine::GetInstance(&impl);
return true;
}
bool LvglLinuxBoard::Init(const unsigned int width, const unsigned int height, void (*appInit)())

View File

@ -44,9 +44,9 @@ const int16_t GuiLvgl::GetScreenHeight(void)
void FrameParObjectCb(i_lv_event_code_t e, void *userData)
{
if(GuiEngine::GetInstance()->GetNowNode() != nullptr)
if(VGuiEngine::GetInstance()->GetNowNode() != nullptr)
{
GuiEngine::GetInstance()->GetNowNode()->EventSend(e, userData);
VGuiEngine::GetInstance()->GetNowNode()->EventSend(e, userData);
}
else
{
@ -69,24 +69,24 @@ StatusCode GuiLvgl::CreateFrameParObject(int16_t widht, int16_t height, int16_t
}
std::shared_ptr<Widget> GuiLvgl::GetFrameParObject(void)
std::shared_ptr<VWidget> GuiLvgl::GetFrameParObject(void)
{
return std::static_pointer_cast<LvglWidget>(_ParWidget);
}
StatusCode GuiLvgl::SetNowNode(std::shared_ptr<Widget> widget)
StatusCode GuiLvgl::SetNowNode(std::shared_ptr<VWidget> widget)
{
_NowNode = widget;
return CreateStatusCode(STATUS_CODE_OK);
}
std::shared_ptr<Widget> GuiLvgl::GetNowNode(void)
std::shared_ptr<VWidget> GuiLvgl::GetNowNode(void)
{
return _NowNode;
}
std::shared_ptr<Widget> GuiLvgl::NewWidget(void)
std::shared_ptr<VWidget> GuiLvgl::NewWidget(void)
{
std::shared_ptr<LvglWidget> widget = std::make_shared<LvglWidget>();
widget->mWidget = lv_obj_create(JudgeParent());
@ -94,13 +94,13 @@ std::shared_ptr<Widget> GuiLvgl::NewWidget(void)
}
std::shared_ptr<Widget> GuiLvgl::NewPage(void)
std::shared_ptr<VWidget> GuiLvgl::NewPage(void)
{
return nullptr;
}
std::shared_ptr<Widget> GuiLvgl::NewImage(void)
std::shared_ptr<VWidget> GuiLvgl::NewImage(void)
{
std::shared_ptr<LvglWidget> widget = std::make_shared<LvglWidget>();
widget->mWidget = lv_img_create(JudgeParent());
@ -108,7 +108,7 @@ std::shared_ptr<Widget> GuiLvgl::NewImage(void)
}
std::shared_ptr<Widget> GuiLvgl::NewButton(void)
std::shared_ptr<VWidget> GuiLvgl::NewButton(void)
{
std::shared_ptr<LvglWidget> widget = std::make_shared<ButtonWidget>();
widget->mWidget = lv_btn_create(JudgeParent());

View File

@ -20,7 +20,7 @@
#include "lvgl.h"
class GuiLvgl : public GuiEngine
class GuiLvgl : public VGuiEngine
{
public:
GuiLvgl();
@ -28,20 +28,20 @@ public:
const int16_t GetScreenWidth(void) override;
const int16_t GetScreenHeight(void) override;
StatusCode CreateFrameParObject(int16_t widht, int16_t height, int16_t posX, int16_t posY) override;
std::shared_ptr<Widget> GetFrameParObject(void) override;
StatusCode SetNowNode(std::shared_ptr<Widget>) override;
std::shared_ptr<Widget> GetNowNode(void) override;
std::shared_ptr<Widget> NewWidget(void) override;
std::shared_ptr<Widget> NewPage(void) override;
std::shared_ptr<Widget> NewImage(void) override;
std::shared_ptr<Widget> NewButton(void) override;
std::shared_ptr<VWidget> GetFrameParObject(void) override;
StatusCode SetNowNode(std::shared_ptr<VWidget>) override;
std::shared_ptr<VWidget> GetNowNode(void) override;
std::shared_ptr<VWidget> NewWidget(void) override;
std::shared_ptr<VWidget> NewPage(void) override;
std::shared_ptr<VWidget> NewImage(void) override;
std::shared_ptr<VWidget> NewButton(void) override;
private:
lv_obj_t* JudgeParent(void);
private:
std::shared_ptr<Widget> _LvglParWidget = nullptr;
std::shared_ptr<Widget> _ParWidget = nullptr;
std::shared_ptr<Widget> _NowNode = nullptr;
std::shared_ptr<VWidget> _LvglParWidget = nullptr;
std::shared_ptr<VWidget> _ParWidget = nullptr;
std::shared_ptr<VWidget> _NowNode = nullptr;
};
#endif // !GUI_LVGL_H

View File

@ -96,7 +96,7 @@ lv_align_t transitionAlignCode_AppMid(i_lv_align_t align)
}
}
void LvglWidget::AlignTo(std::shared_ptr<Widget> base, i_lv_align_t align, int16_t posX, int16_t posY)
void LvglWidget::AlignTo(std::shared_ptr<VWidget> base, i_lv_align_t align, int16_t posX, int16_t posY)
{
if (mWidget)
{

View File

@ -20,7 +20,7 @@
class LvglWidget : public Widget
class LvglWidget : public VWidget
{
public:
LvglWidget()
@ -29,10 +29,10 @@ public:
}
virtual ~LvglWidget() = default;
void SetSize(const int16_t width, const int16_t height) override;
// void Load(void) override; // 好像挺有用的, 但不知道什么意思
// void Load(void) override;
void Center(void) override;
void SetColor(uint32_t color) override;
void AlignTo(std::shared_ptr<Widget> base, i_lv_align_t align, int16_t posX, int16_t posY) override;
void AlignTo(std::shared_ptr<VWidget> base, i_lv_align_t align, int16_t posX, int16_t posY) override;
void SetPos(int16_t posX, int16_t posY) override;
void SetOpa(const uint8_t opaValue) override;
void SetEventCb(i_lv_event_cb_t eventCb) override;

View File

@ -16,8 +16,8 @@ extern "C"
#endif
bool CreateGuiEngineImpl()
{
std::shared_ptr<GuiEngine> impl = std::move(std::make_shared<LvglLinuxX86>());
GuiEngine::GetInstance(&impl);
std::shared_ptr<VGuiEngine> impl = std::move(std::make_shared<LvglLinuxX86>());
VGuiEngine::GetInstance(&impl);
return true;
}
bool LvglLinuxX86::Init(const unsigned int width, const unsigned int height, void (*appInit)())

View File

@ -84,10 +84,10 @@ TEST_F(GuiInterfaceTest, Demo)
{
CreateGuiEngineImpl();
GuiEngine::GetInstance()->Init(LV_SCREEN_WIDTH, LV_SCREEN_HEIGHT, GuiTestMainWindow);
VGuiEngine::GetInstance()->Init(LV_SCREEN_WIDTH, LV_SCREEN_HEIGHT, GuiTestMainWindow);
GuiTest::GetInstance()->GuiTestUninit();
GuiEngine::GetInstance()->UnInit();
VGuiEngine::GetInstance()->UnInit();
}
}; // namespace GuiInterfaceTest

View File

@ -40,13 +40,13 @@ void TestButtonCb(i_lv_event_code_t e, void *userData)
const StatusCode GuiTest::GuiTestInit(const unsigned int width, const unsigned int height)
{
_guiTestPar = GuiEngine::GetInstance()->NewWidget();
_guiTestPar = VGuiEngine::GetInstance()->NewWidget();
_guiTestPar->SetSize(width, height);
_guiTestPar->SetColor(0x077290);
_guiTestPar->SetOpa(127);
_guiTestPar->AlignTo(NULL, i_lv_align_t::I_LV_ALIGN_RIGHT_MID, 0, 0);
_testButton = GuiEngine::GetInstance()->NewButton();
_testButton = VGuiEngine::GetInstance()->NewButton();
_testButton->SetSize(50, 50); /*Set its size*/
_testButton->SetEventCb(TestButtonCb);
_testButton->AlignTo(_guiTestPar, i_lv_align_t::I_LV_ALIGN_CENTER, 0, 0);
@ -62,6 +62,6 @@ const StatusCode GuiTest::GuiTestUninit(void)
void GuiTestMainWindow(void)
{
// Create a parent window for the application layer
GuiEngine::GetInstance()->CreateFrameParObject(LV_SCREEN_WIDTH, LV_SCREEN_HEIGHT, 0, 0);
VGuiEngine::GetInstance()->CreateFrameParObject(LV_SCREEN_WIDTH, LV_SCREEN_HEIGHT, 0, 0);
GuiTest::GetInstance()->GuiTestInit(LV_SCREEN_WIDTH, LV_SCREEN_HEIGHT);
}

View File

@ -28,8 +28,8 @@ public:
static std::shared_ptr<GuiTest> &GetInstance(std::shared_ptr<GuiTest> *impl = nullptr);
private:
std::shared_ptr<Widget> _guiTestPar;
std::shared_ptr<Widget> _testButton;
std::shared_ptr<VWidget> _guiTestPar;
std::shared_ptr<VWidget> _testButton;
};
void GuiTestMainWindow(void);