create a lot of GUI source code files.
This commit is contained in:
parent
111f1f8951
commit
2f98b1d08c
2
CMCore
2
CMCore
@ -1 +1 @@
|
|||||||
Subproject commit aa7e9a7effd6c830d52cb0ca043348ee6ffa6224
|
Subproject commit 0c045fb8b1ce2588876c433fbd72e457bd23d2df
|
@ -1 +1 @@
|
|||||||
Subproject commit be71d3b818736b746e8a9ef3b9fa8b9ab15ed5ab
|
Subproject commit 7bceaf2f9c5fbe1630e3a8b0e78eac5f4846f22e
|
21
inc/hgl/gui/Panel.h
Normal file
21
inc/hgl/gui/Panel.h
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#ifndef HGL_GUI_PANEL_INCLUDE
|
||||||
|
#define HGL_GUI_PANEL_INCLUDE
|
||||||
|
|
||||||
|
#include<hgl/gui/Widget.h>
|
||||||
|
namespace hgl
|
||||||
|
{
|
||||||
|
namespace gui
|
||||||
|
{
|
||||||
|
class Panel:public Widget
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
Panel(Widget *p):Widget(p){}
|
||||||
|
|
||||||
|
virtual ~Panel()=default;
|
||||||
|
|
||||||
|
void Draw() override;
|
||||||
|
};//class Panel:public Widget
|
||||||
|
}//namespace gui
|
||||||
|
}//namespace hgl
|
||||||
|
#endif//HGL_GUI_PANEL_INCLUDE
|
28
inc/hgl/gui/ThemeEngine.h
Normal file
28
inc/hgl/gui/ThemeEngine.h
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#ifndef HGL_GUI_THEME_ENGINE_INCLUDE
|
||||||
|
#define HGL_GUI_THEME_ENGINE_INCLUDE
|
||||||
|
|
||||||
|
#include<hgl/type/RectScope.h>
|
||||||
|
namespace hgl
|
||||||
|
{
|
||||||
|
namespace gui
|
||||||
|
{
|
||||||
|
class Widget;
|
||||||
|
|
||||||
|
class ThemeEngine
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
virtual bool Init()=0;
|
||||||
|
virtual void Clear()=0;
|
||||||
|
|
||||||
|
virtual void DrawFrame(const Widget *)=0;
|
||||||
|
//virtual void DrawButton(const Widget *)=0;
|
||||||
|
//virtual void DrawCheckBox(const Widget *)=0;
|
||||||
|
//virtual void DrawRadioBox(const Widget *)=0;
|
||||||
|
};//class ThemeEngine
|
||||||
|
|
||||||
|
// ThemeEngine *CreateThemeEngine();
|
||||||
|
ThemeEngine *GetDefaultThemeEngine(); ///<获取缺省主题引擎
|
||||||
|
}//namespace gui
|
||||||
|
}//namespace hgl
|
||||||
|
#endif//HGL_GUI_THEME_ENGINE_INCLUDE
|
@ -7,6 +7,8 @@ namespace hgl
|
|||||||
{
|
{
|
||||||
namespace gui
|
namespace gui
|
||||||
{
|
{
|
||||||
|
class ThemeEngine;
|
||||||
|
|
||||||
enum Alignment
|
enum Alignment
|
||||||
{
|
{
|
||||||
None =0x00,
|
None =0x00,
|
||||||
@ -27,6 +29,7 @@ namespace hgl
|
|||||||
private:
|
private:
|
||||||
|
|
||||||
Widget *parent_widget;
|
Widget *parent_widget;
|
||||||
|
ThemeEngine *theme_engine;
|
||||||
|
|
||||||
bool visible; ///<控件是否可看见
|
bool visible; ///<控件是否可看见
|
||||||
bool recv_event; ///<控件是否接收事件
|
bool recv_event; ///<控件是否接收事件
|
||||||
@ -46,14 +49,16 @@ namespace hgl
|
|||||||
void SetVisible (const bool);
|
void SetVisible (const bool);
|
||||||
void SetRecvEvent(const bool);
|
void SetRecvEvent(const bool);
|
||||||
void SetAlign (const uint8);
|
void SetAlign (const uint8);
|
||||||
void SetPosition (const Rectscope2i &);
|
void SetPosition (const RectScope2i &);
|
||||||
void SetSize (const Vector2f &);
|
void SetSize (const Vector2f &);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Widget(Widget *parent=nullptr)
|
Widget(Widget *parent=nullptr,ThemeEngine *te=nullptr)
|
||||||
{
|
{
|
||||||
parent_widget=parent;
|
parent_widget=parent;
|
||||||
|
theme_engine=te;
|
||||||
|
|
||||||
//默认值
|
//默认值
|
||||||
visible=false; //不显示
|
visible=false; //不显示
|
||||||
recv_event=false; //不接收事件
|
recv_event=false; //不接收事件
|
||||||
@ -61,6 +66,8 @@ namespace hgl
|
|||||||
position.Clear();
|
position.Clear();
|
||||||
}
|
}
|
||||||
virtual ~Widget();
|
virtual ~Widget();
|
||||||
|
|
||||||
|
virtual void Draw(){}
|
||||||
};//class Widget
|
};//class Widget
|
||||||
}//namespace gui
|
}//namespace gui
|
||||||
}//namespace hgl
|
}//namespace hgl
|
||||||
|
@ -2,3 +2,4 @@
|
|||||||
add_subdirectory(RenderDevice)
|
add_subdirectory(RenderDevice)
|
||||||
add_subdirectory(SceneGraph)
|
add_subdirectory(SceneGraph)
|
||||||
#add_subdirectory(Tools)
|
#add_subdirectory(Tools)
|
||||||
|
add_subdirectory(GUI)
|
13
src/GUI/CMakeLists.txt
Normal file
13
src/GUI/CMakeLists.txt
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
file(GLOB GUI_HEADER ${ROOT_INCLUDE_PATH}/hgl/gui/*.*)
|
||||||
|
|
||||||
|
set(GUI_SOURCE Widget.cpp
|
||||||
|
Panel.cpp
|
||||||
|
ThemeEngine.cpp
|
||||||
|
DefaultThemeEngine.h
|
||||||
|
DefaultThemeEngine.cpp)
|
||||||
|
|
||||||
|
SOURCE_GROUP("Header Files" FILES ${GUI_HEADER})
|
||||||
|
SOURCE_GROUP("Source Files" FILES ${GUI_SOURCE})
|
||||||
|
|
||||||
|
add_cm_library(ULRE.GUI "ULRE" ${GUI_HEADER}
|
||||||
|
${GUI_SOURCE})
|
12
src/GUI/DefaultThemeEngine.cpp
Normal file
12
src/GUI/DefaultThemeEngine.cpp
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#include"DefaultThemeEngine.h"
|
||||||
|
|
||||||
|
namespace hgl
|
||||||
|
{
|
||||||
|
namespace gui
|
||||||
|
{
|
||||||
|
ThemeEngine *CreateDefaultThemeEngine()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}//namespace gui
|
||||||
|
}//namespace hgl
|
23
src/GUI/DefaultThemeEngine.h
Normal file
23
src/GUI/DefaultThemeEngine.h
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include<hgl/gui/ThemeEngine.h>
|
||||||
|
|
||||||
|
namespace hgl
|
||||||
|
{
|
||||||
|
namespace gui
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 缺省GUI主题引擎
|
||||||
|
*/
|
||||||
|
class DefaultThemeEngine:public ThemeEngine
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
bool Init() override;
|
||||||
|
void Clear() override;
|
||||||
|
|
||||||
|
void DrawFrame(const RectScope2f &) override;
|
||||||
|
|
||||||
|
};//class DefaultThemeEngine:public ThemeEngine
|
||||||
|
}//namespace gui
|
||||||
|
}//namespace hgl
|
12
src/GUI/Panel.cpp
Normal file
12
src/GUI/Panel.cpp
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#include<hgl/gui/Panel.h>
|
||||||
|
#include<hgl/gui/GUIRenderEngine.h>
|
||||||
|
|
||||||
|
namespace hgl
|
||||||
|
{
|
||||||
|
namespace gui
|
||||||
|
{
|
||||||
|
void Panel::Draw()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}//namespace gui
|
||||||
|
}//namespace hgl
|
27
src/GUI/ThemeEngine.cpp
Normal file
27
src/GUI/ThemeEngine.cpp
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#include<hgl/gui/ThemeEngine.h>
|
||||||
|
|
||||||
|
namespace hgl
|
||||||
|
{
|
||||||
|
namespace gui
|
||||||
|
{
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
ThemeEngine *default_theme_engine=nullptr;
|
||||||
|
}//namespace
|
||||||
|
|
||||||
|
ThemeEngine *CreateDefaultThemeEngine();
|
||||||
|
|
||||||
|
ThemeEngine *GetDefaultThemeEngine()
|
||||||
|
{
|
||||||
|
if(!default_theme_engine)
|
||||||
|
default_theme_engine=CreateDefaultThemeEngine();
|
||||||
|
|
||||||
|
return default_theme_engine;
|
||||||
|
}
|
||||||
|
|
||||||
|
ThemeEngine *CreateThemeEngine()
|
||||||
|
{
|
||||||
|
return GetDefaultThemeEngine();
|
||||||
|
}
|
||||||
|
}//namespace gui
|
||||||
|
}//namespace hgl
|
24
src/GUI/Widget.cpp
Normal file
24
src/GUI/Widget.cpp
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#include<hgl/gui/Widget.h>
|
||||||
|
#include<hgl/gui/ThemeEngine.h>
|
||||||
|
|
||||||
|
namespace hgl
|
||||||
|
{
|
||||||
|
namespace gui
|
||||||
|
{
|
||||||
|
Widget::Widget(Widget *parent=nullptr,ThemeEngine *te=nullptr)
|
||||||
|
{
|
||||||
|
parent_widget=parent;
|
||||||
|
|
||||||
|
if(te)
|
||||||
|
theme_engine=te;
|
||||||
|
else
|
||||||
|
theme_engine=GetDefaultThemeEngine();
|
||||||
|
|
||||||
|
//默认值
|
||||||
|
visible=false; //不显示
|
||||||
|
recv_event=false; //不接收事件
|
||||||
|
align_bits=0; //不对齐
|
||||||
|
position.Clear();
|
||||||
|
}
|
||||||
|
}//namespace gui
|
||||||
|
}//namespace hgl
|
Loading…
x
Reference in New Issue
Block a user