-
Notifications
You must be signed in to change notification settings - Fork 11
Reference example
Half People edited this page Oct 21, 2023
·
5 revisions
static std::string DefaultWidgetButton = "Button";
static std::string DefaultWidgetButtonID = "Button";
class Button :public HWidget
{
public:
Button()
{
WidgetName = &DefaultWidgetButton;
WidgetNameID = &DefaultWidgetButtonID;
Text = new HVString("Text","Button",true);
WidgetID = Text->Get().data();
HValues.AddHValue(Text);
//AvailableFlags |= HWidgetFlag::HWidgetFlag_Move;
//AvailableFlags |= HWidgetFlag::HWidgetFlag_Null;
//AvailableFlags |= HWidgetFlag::HWidgetFlag_TurnRight;
}
virtual void DrawIconForControlPanel()override
{
ImGui::Button("Button");
return;
}
virtual std::string Export(std::string Offset) override
{
if (WidgetSize->Get()->x == 0 && WidgetSize->Get()->y == 0)
{
return std::string(Offset).append("ImGui::Button( ").append(Text->AutoGetOutputValue(this)).append(" );");
}
return std::string(Offset).append("ImGui::Button( ").append(Text->AutoGetOutputValue(this))/*.append("##").append(std::to_string(ID_))*/.append(" , ").append(WidgetSize->AutoGetOutputValue(this)).append(");");
}
virtual void Draw()override
{
DrawPreLogic();
ImGui::Button(Text->Get().c_str(), *WidgetSize->Get());
DrawLogicTick();
return;
}
virtual void DetailPanelWidget()override
{
//char Save[200] = {};
//strncpy(Save, Text.c_str(), sizeof(Save));
Text->Draw("Text",this);
//ImGui::InputText("Button Text", Text, 200);
//ImGui::DragFloat2("Button Size", (float*)&WidgetSize, 0.2, 5);
return;
}
virtual HWidget* CreateSelfClass()override {
return new Button();
}
virtual json Copy()override {
json J;
PreCopy(J);
//J["WidgetName"] = Text;
return J;
}
virtual void Paste(json Data)override {
PrePaste(Data);
//std::string Name = Data["WidgetName"];
//strcpy_s(Text, Name.c_str());
return;
}
private:
//std::string Text = "Button";
//char Text[200] = { "Button" };
HVString* Text;
//ImVec2 Size = ImVec2(0, 0);
};
static std::string DefaultWidgetButton = "Button";
static std::string DefaultWidgetButtonID = "Button";
class Button :public HWidget
{
public:
Button()
{
WidgetName = &DefaultWidgetButton;
WidgetNameID = &DefaultWidgetButtonID;
WidgetID = Text;
//AvailableFlags |= HWidgetFlag::HWidgetFlag_Move;
//AvailableFlags |= HWidgetFlag::HWidgetFlag_Null;
//AvailableFlags |= HWidgetFlag::HWidgetFlag_TurnRight;
}
virtual void DrawIconForControlPanel()override
{
ImGui::Button("Button");
return;
}
virtual std::string Export(std::string Offset) override
{
if (WidgetSize.x == 0 && WidgetSize.y == 0)
{
return std::string(Offset).append("ImGui::Button( \"").append(GetID()).append("\" );");
}
return std::string(Offset).append("ImGui::Button( \"").append(GetID())/*.append("##").append(std::to_string(ID_))*/.append("\" , ImVec2( ").append(std::to_string(WidgetSize.x)).append(" , ").append(std::to_string(WidgetSize.y)).append(" ));");
}
virtual void Draw()override
{
DrawPreLogic();
ImGui::Button(GetID().c_str(), WidgetSize);
DrawLogicTick();
return;
}
virtual void DetailPanelWidget()override
{
//char Save[200] = {};
//strncpy(Save, Text.c_str(), sizeof(Save));
ImGui::InputText("Button Text", Text, 200);
//ImGui::DragFloat2("Button Size", (float*)&WidgetSize, 0.2, 5);
return;
}
virtual HWidget* CreateSelfClass()override {
return new Button();
}
virtual json Copy()override {
json J;
PreCopy(J);
J["WidgetName"] = Text;
return J;
}
virtual void Paste(json Data)override {
PrePaste(Data);
std::string Name = Data["WidgetName"];
strcpy_s(Text, Name.c_str());
return;
}
private:
//std::string Text = "Button";
char Text[200] = { "Button" };
//ImVec2 Size = ImVec2(0, 0);
};