Skip to content

Commit

Permalink
adds a way to get or set Style
Browse files Browse the repository at this point in the history
  • Loading branch information
ericoporto committed Jun 7, 2020
1 parent ffb5660 commit 60820d8
Show file tree
Hide file tree
Showing 3 changed files with 115 additions and 0 deletions.
41 changes: 41 additions & 0 deletions agsimgui/AgsImGuiStyle.cpp
Expand Up @@ -8,6 +8,47 @@
#include <cmath>
#include "AgsImGuiStyle.h"

void AgsImGuiStyle::SetAgsImGuiStyle(ImGuiStyle &imGuiStyle, AgsImGuiStyle* agsImGuiStyle){
imGuiStyle.Alpha = agsImGuiStyle->Alpha;
imGuiStyle.WindowPadding = agsImGuiStyle->WindowPadding;
imGuiStyle.WindowRounding = agsImGuiStyle->WindowRounding;
imGuiStyle.WindowBorderSize = agsImGuiStyle->WindowBorderSize;
imGuiStyle.WindowMinSize = agsImGuiStyle->WindowMinSize;
imGuiStyle.WindowTitleAlign = agsImGuiStyle->WindowTitleAlign;
imGuiStyle.WindowMenuButtonPosition = agsImGuiStyle->WindowMenuButtonPosition;
imGuiStyle.ChildRounding = agsImGuiStyle->ChildRounding;
imGuiStyle.ChildBorderSize = agsImGuiStyle->ChildBorderSize;
imGuiStyle.PopupRounding = agsImGuiStyle->PopupRounding;
imGuiStyle.PopupBorderSize = agsImGuiStyle->PopupBorderSize;
imGuiStyle.FramePadding = agsImGuiStyle->FramePadding;
imGuiStyle.FrameRounding = agsImGuiStyle->FrameRounding;
imGuiStyle.FrameBorderSize = agsImGuiStyle->FrameBorderSize;
imGuiStyle.ItemSpacing = agsImGuiStyle->ItemSpacing;
imGuiStyle.ItemInnerSpacing = agsImGuiStyle->ItemInnerSpacing;
imGuiStyle.TouchExtraPadding = agsImGuiStyle->TouchExtraPadding;
imGuiStyle.IndentSpacing = agsImGuiStyle->IndentSpacing;
imGuiStyle.ColumnsMinSpacing = agsImGuiStyle->ColumnsMinSpacing;
imGuiStyle.ScrollbarSize = agsImGuiStyle->ScrollbarSize;
imGuiStyle.ScrollbarRounding = agsImGuiStyle->ScrollbarRounding;
imGuiStyle.GrabMinSize = agsImGuiStyle->GrabMinSize;
imGuiStyle.GrabRounding = agsImGuiStyle->GrabRounding;
imGuiStyle.TabRounding = agsImGuiStyle->TabRounding;
imGuiStyle.TabBorderSize = agsImGuiStyle->TabBorderSize;
imGuiStyle.TabMinWidthForUnselectedCloseButton = agsImGuiStyle->TabMinWidthForUnselectedCloseButton;
imGuiStyle.ColorButtonPosition = agsImGuiStyle->ColorButtonPosition;
imGuiStyle.ButtonTextAlign = agsImGuiStyle->ButtonTextAlign;
imGuiStyle.SelectableTextAlign = agsImGuiStyle->SelectableTextAlign;
imGuiStyle.DisplayWindowPadding = agsImGuiStyle->DisplayWindowPadding;
imGuiStyle.DisplaySafeAreaPadding = agsImGuiStyle->DisplaySafeAreaPadding;
imGuiStyle.MouseCursorScale = agsImGuiStyle->MouseCursorScale;
imGuiStyle.AntiAliasedLines = agsImGuiStyle->AntiAliasedLines;
imGuiStyle.AntiAliasedFill = agsImGuiStyle->AntiAliasedFill;
imGuiStyle.CurveTessellationTol = agsImGuiStyle->CurveTessellationTol;
imGuiStyle.CircleSegmentMaxError = agsImGuiStyle->CircleSegmentMaxError;
for(int i=0; i<ImGuiCol_COUNT; i++){
imGuiStyle.Colors[i] = agsImGuiStyle->Colors[i];
}
}

//------------------------------------------------------------------------------

Expand Down
47 changes: 47 additions & 0 deletions agsimgui/AgsImGuiStyle.h
Expand Up @@ -25,6 +25,53 @@ struct AgsImGuiStyle: ImGuiStyle {
: ImGuiStyle(){
id = _id;
}

AgsImGuiStyle(ImGuiStyle imGuiStyle)
: ImGuiStyle(){
id = -1;
Alpha = imGuiStyle.Alpha;
WindowPadding = imGuiStyle.WindowPadding;
WindowRounding = imGuiStyle.WindowRounding;
WindowBorderSize = imGuiStyle.WindowBorderSize;
WindowMinSize = imGuiStyle.WindowMinSize;
WindowTitleAlign = imGuiStyle.WindowTitleAlign;
WindowMenuButtonPosition = imGuiStyle.WindowMenuButtonPosition;
ChildRounding = imGuiStyle.ChildRounding;
ChildBorderSize = imGuiStyle.ChildBorderSize;
PopupRounding = imGuiStyle.PopupRounding;
PopupBorderSize = imGuiStyle.PopupBorderSize;
FramePadding = imGuiStyle.FramePadding;
FrameRounding = imGuiStyle.FrameRounding;
FrameBorderSize = imGuiStyle.FrameBorderSize;
ItemSpacing = imGuiStyle.ItemSpacing;
ItemInnerSpacing = imGuiStyle.ItemInnerSpacing;
TouchExtraPadding = imGuiStyle.TouchExtraPadding;
IndentSpacing = imGuiStyle.IndentSpacing;
ColumnsMinSpacing = imGuiStyle.ColumnsMinSpacing;
ScrollbarSize = imGuiStyle.ScrollbarSize;
ScrollbarRounding = imGuiStyle.ScrollbarRounding;
GrabMinSize = imGuiStyle.GrabMinSize;
GrabRounding = imGuiStyle.GrabRounding;
TabRounding = imGuiStyle.TabRounding;
TabBorderSize = imGuiStyle.TabBorderSize;
TabMinWidthForUnselectedCloseButton = imGuiStyle.TabMinWidthForUnselectedCloseButton;
ColorButtonPosition = imGuiStyle.ColorButtonPosition;
ButtonTextAlign = imGuiStyle.ButtonTextAlign;
SelectableTextAlign = imGuiStyle.SelectableTextAlign;
DisplayWindowPadding = imGuiStyle.DisplayWindowPadding;
DisplaySafeAreaPadding = imGuiStyle.DisplaySafeAreaPadding;
MouseCursorScale = imGuiStyle.MouseCursorScale;
AntiAliasedLines = imGuiStyle.AntiAliasedLines;
AntiAliasedFill = imGuiStyle.AntiAliasedFill;
CurveTessellationTol = imGuiStyle.CurveTessellationTol;
CircleSegmentMaxError = imGuiStyle.CircleSegmentMaxError;
for(int i=0; i<ImGuiCol_COUNT; i++){
Colors[i] = imGuiStyle.Colors[i];
}
}

static void SetAgsImGuiStyle(ImGuiStyle &imGuiStyle, AgsImGuiStyle* agsImGuiStyle);

};

//------------------------------------------------------------------------------
Expand Down
27 changes: 27 additions & 0 deletions agsimgui/agsimgui.cpp
Expand Up @@ -589,6 +589,10 @@ namespace agsimgui {
" }; \r\n"
" \r\n"
"builtin managed struct AgsImGui{ \r\n"
" \r\n"
" /// Gets or Sets the Style customization use in AgsImGui \r\n"
" import static attribute ImGuiStyle* Style; \r\n"
" \r\n"
" // Main \r\n"
" \r\n"
" /// start a new Dear ImGui frame, you can submit any command from this point until Render()/EndFrame(). \r\n"
Expand Down Expand Up @@ -1304,6 +1308,16 @@ void SetAgsImVec4(ImVec4 &imVec4, AgsImVec4* agsImVec4){
imVec4.w = agsImVec4->w;
}

AgsImGuiStyle* NewAgsImGuiStyle(ImGuiStyle &imGuiStyle) {
AgsImGuiStyle *agsImGuiStyle = new AgsImGuiStyle(imGuiStyle);
agsImGuiStyle->id = engine->RegisterManagedObject(agsImGuiStyle, &AgsImGuiStyle_Interface);
return agsImGuiStyle;
}

void SetAgsImGuiStyle(ImGuiStyle &imGuiStyle, AgsImGuiStyle* agsImGuiStyle){
AgsImGuiStyle::SetAgsImGuiStyle(imGuiStyle, agsImGuiStyle);
}

void AgsImGuiStyle_SetAlpha(AgsImGuiStyle* self, uint32_t alpha){
float f_alpha = ToNormalFloat(alpha);
self->Alpha = f_alpha;
Expand Down Expand Up @@ -1667,6 +1681,16 @@ AgsImVec4* AgsImGuiStyle_GetColors(AgsImGuiStyle* self, int i){

// -- end AgsImGuiStyle

AgsImGuiStyle* AgsImGui_GetStyle(){
ImGuiStyle &imGuiStyle = ImGui::GetStyle();
return NewAgsImGuiStyle(imGuiStyle);
}

void AgsImGui_SetStyle(AgsImGuiStyle* agsImGuiStyle){
ImGuiStyle &imGuiStyle = ImGui::GetStyle();
SetAgsImGuiStyle(imGuiStyle, agsImGuiStyle);
}

void AgsImGui_NewFrame(){
if (!screen.initialized) return;

Expand Down Expand Up @@ -2532,6 +2556,9 @@ int AgsImGuiHelper_GetClipboarImage() {
engine->RegisterScriptFunction("ImGuiStyle::seti_Colors", (void*)AgsImGuiStyle_SetColors);
engine->RegisterScriptFunction("ImGuiStyle::geti_Colors", (void*)AgsImGuiStyle_GetColors);

engine->RegisterScriptFunction("AgsImGui::get_Style", (void*)AgsImGui_GetStyle);
engine->RegisterScriptFunction("AgsImGui::set_Style", (void*)AgsImGui_SetStyle);

engine->RegisterScriptFunction("AgsImGui::NewFrame^0", (void*)AgsImGui_NewFrame);
engine->RegisterScriptFunction("AgsImGui::EndFrame^0", (void*)AgsImGui_EndFrame);
engine->RegisterScriptFunction("AgsImGui::Render^0", (void*)AgsImGui_Render);
Expand Down

0 comments on commit 60820d8

Please sign in to comment.