58 lines
1.1 KiB
C++
Raw Normal View History

2022-05-21 19:58:09 +02:00
#include "stdafx.h"
#include "Panel.h"
namespace Forms
{
Panel::Panel()
: Control()
{
SetStyle(ControlStyles::Selectable | ControlStyles::AllPaintingInWmPaint, false);
SetStyle(ControlStyles::SupportsTransparentBackColor | ControlStyles::ContainerControl, true);
// Setup the container
this->_Controls = std::make_unique<ControlCollection>();
// We are a panel control
this->_RTTI = ControlTypes::Panel;
}
BorderStyle Panel::GetBorderStyle()
{
return this->_BorderStyle;
}
void Panel::SetBorderStyle(BorderStyle Value)
{
this->_BorderStyle = Value;
UpdateStyles();
}
void Panel::AddControl(Control* Ctrl)
{
Control::AddControl(Ctrl);
}
CreateParams Panel::GetCreateParams()
{
auto Cp = Control::GetCreateParams();
Cp.ClassName = "PANEL";
Cp.ExStyle |= WS_EX_CONTROLPARENT;
Cp.ExStyle &= (~WS_EX_CLIENTEDGE);
Cp.Style &= (~WS_BORDER);
switch (_BorderStyle)
{
case BorderStyle::Fixed3D:
Cp.ExStyle |= WS_EX_CLIENTEDGE;
break;
case BorderStyle::FixedSingle:
Cp.Style |= WS_BORDER;
break;
}
return Cp;
}
}