Natively mapped ImGuiStyle class

This commit is contained in:
SpaiR committed 2020-02-14 22:43:37 +03:00
1 parent 1833ab5fe8
commit 7ddf242ab4
2 files changed
+385 -209

No files matched your search

+42 -3
View File
@@ -19,13 +19,13 @@ public final class ImGui {
private static final ImDrawData DRAW_DATA; private static final ImDrawData DRAW_DATA;
private static final ImGuiIO IMGUI_IO; private static final ImGuiIO IMGUI_IO;
private static final ImGuiStyle IMGUI_STYLE;
private static final ImDrawList IM_DRAW_LIST_WINDOW = new ImDrawList(ImDrawList.TYPE_WINDOW); private static final ImDrawList IM_DRAW_LIST_WINDOW = new ImDrawList(ImDrawList.TYPE_WINDOW);
private static final ImDrawList IM_DRAW_LIST_BACKGROUND = new ImDrawList(ImDrawList.TYPE_BACKGROUND); private static final ImDrawList IM_DRAW_LIST_BACKGROUND = new ImDrawList(ImDrawList.TYPE_BACKGROUND);
private static final ImDrawList IM_DRAW_LIST_FOREGROUND = new ImDrawList(ImDrawList.TYPE_FOREGROUND); private static final ImDrawList IM_DRAW_LIST_FOREGROUND = new ImDrawList(ImDrawList.TYPE_FOREGROUND);
private static ImFont font; private static ImFont font;
private static ImGuiStyle style;
static { static {
final String libPath = System.getProperty(LIB_PATH_PROP); final String libPath = System.getProperty(LIB_PATH_PROP);
@@ -44,7 +44,6 @@ public final class ImGui {
DRAW_DATA = new ImDrawData(100_000, 100_000, 1000); DRAW_DATA = new ImDrawData(100_000, 100_000, 1000);
IMGUI_IO = new ImGuiIO(); IMGUI_IO = new ImGuiIO();
IMGUI_STYLE = new ImGuiStyle();
nInitJni(); nInitJni();
ImDrawList.nInit(); ImDrawList.nInit();
@@ -53,6 +52,7 @@ public final class ImGui {
ImFontConfig.nInit(); ImFontConfig.nInit();
ImFontGlyph.nInit(); ImFontGlyph.nInit();
ImFont.nInit(); ImFont.nInit();
ImGuiStyle.nInit();
nInitInputTextData(); nInitInputTextData();
} }
@@ -150,9 +150,16 @@ public final class ImGui {
* Access the Style structure (colors, sizes). Always use PushStyleCol(), PushStyleVar() to modify style mid-frame. * Access the Style structure (colors, sizes). Always use PushStyleCol(), PushStyleVar() to modify style mid-frame.
*/ */
public static ImGuiStyle getStyle() { public static ImGuiStyle getStyle() {
return IMGUI_STYLE; if (style == null) {
style = new ImGuiStyle(nGetStyle());
}
return style;
} }
private static native long nGetStyle(); /*
return (long)(intptr_t)&ImGui::GetStyle();
*/
/** /**
* Start a new Dear ImGui frame, you can submit any command from this point until Render()/EndFrame(). * Start a new Dear ImGui frame, you can submit any command from this point until Render()/EndFrame().
*/ */
@@ -248,6 +255,14 @@ public final class ImGui {
ImGui::ShowStyleEditor(); ImGui::ShowStyleEditor();
*/ */
public static void showStyleEditor(ImGuiStyle ref) {
nShowStyleEditor(ref.ptr);
}
private static native void nShowStyleEditor(long ref); /*
ImGui::ShowStyleEditor((ImGuiStyle*)ref);
*/
/** /**
* Add style selector block (not a window), essentially a combo listing the default styles. * Add style selector block (not a window), essentially a combo listing the default styles.
*/ */
@@ -285,6 +300,14 @@ public final class ImGui {
ImGui::StyleColorsDark(); ImGui::StyleColorsDark();
*/ */
public static void styleColorsDark(ImGuiStyle ref) {
nStyleColorsDark(ref.ptr);
}
private static native void nStyleColorsDark(long ref); /*
ImGui::StyleColorsDark((ImGuiStyle*)ref);
*/
/** /**
* Classic imgui style * Classic imgui style
*/ */
@@ -292,6 +315,14 @@ public final class ImGui {
ImGui::StyleColorsClassic(); ImGui::StyleColorsClassic();
*/ */
public static void styleColorsClassic(ImGuiStyle ref) {
nStyleColorsClassic(ref.ptr);
}
private static native void nStyleColorsClassic(long ref); /*
ImGui::StyleColorsClassic((ImGuiStyle*)ref);
*/
/** /**
* Best used with borders and a custom, thicker font * Best used with borders and a custom, thicker font
*/ */
@@ -299,6 +330,14 @@ public final class ImGui {
ImGui::StyleColorsLight(); ImGui::StyleColorsLight();
*/ */
public static void styleColorsLight(ImGuiStyle ref) {
nStyleColorsLight(ref.ptr);
}
private static native void nStyleColorsLight(long ref); /*
ImGui::StyleColorsLight((ImGuiStyle*)ref);
*/
// Windows // Windows
// - Begin() = push window to the stack and start appending to it. End() = pop window from the stack. // - Begin() = push window to the stack and start appending to it. End() = pop window from the stack.
// - You may append multiple times to the same window during the same frame. // - You may append multiple times to the same window during the same frame.
+343 -206
View File
@@ -4,406 +4,543 @@ package imgui;
* You may modify the ImGui::GetStyle() main instance during initialization and before NewFrame(). * You may modify the ImGui::GetStyle() main instance during initialization and before NewFrame().
* During the frame, use ImGui::PushStyleVar(ImGuiStyleVar_XXXX)/PopStyleVar() to alter the main style values, * During the frame, use ImGui::PushStyleVar(ImGuiStyleVar_XXXX)/PopStyleVar() to alter the main style values,
* and ImGui::PushStyleColor(ImGuiCol_XXX)/PopStyleColor() for colors. * and ImGui::PushStyleColor(ImGuiCol_XXX)/PopStyleColor() for colors.
* <p>
* BINDING NOTICE: This is not a fully featured representation of ImGuiStyle struct from C++.
* Mostly it's a stub which communicates with default ImGuiStyle used by ImGuiIO.
* Still can be used to make your interface look different, since all of the fields from the original header file are represented here.
*/ */
public final class ImGuiStyle { public final class ImGuiStyle implements ImDestroyable {
ImGuiStyle() { final long ptr;
/**
* This class will create a native structure.
* Call {@link #destroy()} method to manually free used memory.
*/
public ImGuiStyle() {
ImGui.touch();
ptr = nCreate();
}
ImGuiStyle(final long ptr) {
this.ptr = ptr;
}
@Override
public void destroy() {
nDestroy(ptr);
} }
/*JNI /*JNI
#include <imgui.h> #include <imgui.h>
#include <stdint.h>
#include "jni_common.h" #include "jni_common.h"
jfieldID imGuiStylePtrID;
#define IMGUI_STYLE ((ImGuiStyle*)env->GetLongField(object, imGuiStylePtrID))
*/ */
// Alpha static native void nInit(); /*
// Global alpha applies to everything in Dear ImGui. jclass jImGuiStyleClass = env->FindClass("imgui/ImGuiStyle");
// imGuiStylePtrID = env->GetFieldID(jImGuiStyleClass, "ptr", "J");
*/
private native long nCreate(); /*
ImGuiStyle* imGuiStyle = new ImGuiStyle();
return (long)(intptr_t)imGuiStyle;
*/
private native void nDestroy(long ptr); /*
delete (ImGuiStyle*)ptr;
*/
/**
* Global alpha applies to everything in Dear ImGui.
*/
public native float getAlpha(); /* public native float getAlpha(); /*
return ImGui::GetStyle().Alpha; return IMGUI_STYLE->Alpha;
*/ */
/**
* Global alpha applies to everything in Dear ImGui.
*/
public native void setAlpha(float alpha); /* public native void setAlpha(float alpha); /*
ImGui::GetStyle().Alpha = alpha; IMGUI_STYLE->Alpha = alpha;
*/ */
// WindowPadding /**
// Padding within a window. * Padding within a window.
// */
public native void getWindowPadding(ImVec2 dstImVec2); /* public native void getWindowPadding(ImVec2 dstImVec2); /*
Jni::ImVec2Cpy(env, &ImGui::GetStyle().WindowPadding, dstImVec2); Jni::ImVec2Cpy(env, &IMGUI_STYLE->WindowPadding, dstImVec2);
*/ */
/**
* Padding within a window.
*/
public native void setWindowPadding(float x, float y); /* public native void setWindowPadding(float x, float y); /*
ImGui::GetStyle().WindowPadding.x = x; IMGUI_STYLE->WindowPadding.x = x;
ImGui::GetStyle().WindowPadding.y = y; IMGUI_STYLE->WindowPadding.y = y;
*/ */
// WindowRounding /**
// Radius of window corners rounding. Set to 0.0f to have rectangular windows. * Radius of window corners rounding. Set to 0.0f to have rectangular windows.
// */
public native float getWindowRounding(); /* public native float getWindowRounding(); /*
return ImGui::GetStyle().WindowRounding; return IMGUI_STYLE->WindowRounding;
*/ */
/**
* Radius of window corners rounding. Set to 0.0f to have rectangular windows.
*/
public native void setWindowRounding(float windowRounding); /* public native void setWindowRounding(float windowRounding); /*
ImGui::GetStyle().WindowRounding = windowRounding; IMGUI_STYLE->WindowRounding = windowRounding;
*/ */
// WindowBorderSize /**
// Thickness of border around windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). * Thickness of border around windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly).
// */
public native float getWindowBorderSize(); /* public native float getWindowBorderSize(); /*
return ImGui::GetStyle().WindowBorderSize; return IMGUI_STYLE->WindowBorderSize;
*/ */
/**
* Thickness of border around windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly).
*/
public native void setWindowBorderSize(float windowBorderSize); /* public native void setWindowBorderSize(float windowBorderSize); /*
ImGui::GetStyle().WindowBorderSize = windowBorderSize; IMGUI_STYLE->WindowBorderSize = windowBorderSize;
*/ */
// WindowMinSize /**
// Minimum window size. This is a global setting. If you want to constraint individual windows, use SetNextWindowSizeConstraints(). * Minimum window size. This is a global setting. If you want to constraint individual windows, use SetNextWindowSizeConstraints().
// */
public native void getWindowMinSize(ImVec2 dstImVec2); /* public native void getWindowMinSize(ImVec2 dstImVec2); /*
Jni::ImVec2Cpy(env, &ImGui::GetStyle().WindowMinSize, dstImVec2); Jni::ImVec2Cpy(env, &IMGUI_STYLE->WindowMinSize, dstImVec2);
*/ */
/**
* Minimum window size. This is a global setting. If you want to constraint individual windows, use SetNextWindowSizeConstraints().
*/
public native void setWindowMinSize(float x, float y); /* public native void setWindowMinSize(float x, float y); /*
ImGui::GetStyle().WindowMinSize.x = x; IMGUI_STYLE->WindowMinSize.x = x;
ImGui::GetStyle().WindowMinSize.y = y; IMGUI_STYLE->WindowMinSize.y = y;
*/ */
// WindowTitleAlign /**
// Alignment for title bar text. Defaults to (0.0f,0.5f) for left-aligned,vertically centered. * Alignment for title bar text. Defaults to (0.0f,0.5f) for left-aligned,vertically centered.
// */
public native void getWindowTitleAlign(ImVec2 dstImVec2); /* public native void getWindowTitleAlign(ImVec2 dstImVec2); /*
Jni::ImVec2Cpy(env, &ImGui::GetStyle().WindowTitleAlign, dstImVec2); Jni::ImVec2Cpy(env, &IMGUI_STYLE->WindowTitleAlign, dstImVec2);
*/ */
/**
* Alignment for title bar text. Defaults to (0.0f,0.5f) for left-aligned,vertically centered.
*/
public native void setWindowTitleAlign(float x, float y); /* public native void setWindowTitleAlign(float x, float y); /*
ImGui::GetStyle().WindowTitleAlign.x = x; IMGUI_STYLE->WindowTitleAlign.x = x;
ImGui::GetStyle().WindowTitleAlign.y = y; IMGUI_STYLE->WindowTitleAlign.y = y;
*/ */
// WindowMenuButtonPosition /**
// Side of the collapsing/docking button in the title bar (None/Left/Right). Defaults to ImGuiDir_Left. * Side of the collapsing/docking button in the title bar (None/Left/Right). Defaults to ImGuiDir_Left.
// */
public native int getWindowMenuButtonPosition(); /* public native int getWindowMenuButtonPosition(); /*
return (int)ImGui::GetStyle().WindowMenuButtonPosition; return (int)IMGUI_STYLE->WindowMenuButtonPosition;
*/ */
/**
* Side of the collapsing/docking button in the title bar (None/Left/Right). Defaults to ImGuiDir_Left.
*/
public native void setWindowMenuButtonPosition(int windowMenuButtonPosition); /* public native void setWindowMenuButtonPosition(int windowMenuButtonPosition); /*
ImGui::GetStyle().WindowMenuButtonPosition = windowMenuButtonPosition; IMGUI_STYLE->WindowMenuButtonPosition = windowMenuButtonPosition;
*/ */
// ChildRounding /**
// Radius of child window corners rounding. Set to 0.0f to have rectangular windows. * Radius of child window corners rounding. Set to 0.0f to have rectangular windows.
// */
public native float getChildRounding(); /* public native float getChildRounding(); /*
return ImGui::GetStyle().ChildRounding; return IMGUI_STYLE->ChildRounding;
*/ */
/**
* Radius of child window corners rounding. Set to 0.0f to have rectangular windows.
*/
public native void setChildRounding(float childRounding); /* public native void setChildRounding(float childRounding); /*
ImGui::GetStyle().ChildRounding = childRounding; IMGUI_STYLE->ChildRounding = childRounding;
*/ */
// ChildBorderSize /**
// Thickness of border around child windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). * Thickness of border around child windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly).
// */
public native float getChildBorderSize(); /* public native float getChildBorderSize(); /*
return ImGui::GetStyle().ChildBorderSize; return IMGUI_STYLE->ChildBorderSize;
*/ */
/**
* Thickness of border around child windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly).
*/
public native void setChildBorderSize(float childBorderSize); /* public native void setChildBorderSize(float childBorderSize); /*
ImGui::GetStyle().ChildBorderSize = childBorderSize; IMGUI_STYLE->ChildBorderSize = childBorderSize;
*/ */
// PopupRounding /**
// Radius of popup window corners rounding. (Note that tooltip windows use WindowRounding) * Radius of popup window corners rounding. (Note that tooltip windows use WindowRounding)
// */
public native float getPopupRounding(); /* public native float getPopupRounding(); /*
return ImGui::GetStyle().PopupRounding; return IMGUI_STYLE->PopupRounding;
*/ */
/**
* Radius of popup window corners rounding. (Note that tooltip windows use WindowRounding)
*/
public native void setPopupRounding(float popupRounding); /* public native void setPopupRounding(float popupRounding); /*
ImGui::GetStyle().PopupRounding = popupRounding; IMGUI_STYLE->PopupRounding = popupRounding;
*/ */
// PopupBorderSize /**
// Thickness of border around popup/tooltip windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). * Thickness of border around popup/tooltip windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly).
// */
public native float getPopupBorderSize(); /* public native float getPopupBorderSize(); /*
return ImGui::GetStyle().PopupBorderSize; return IMGUI_STYLE->PopupBorderSize;
*/ */
/**
* Thickness of border around popup/tooltip windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly).
*/
public native void setPopupBorderSize(float popupBorderSize); /* public native void setPopupBorderSize(float popupBorderSize); /*
ImGui::GetStyle().PopupBorderSize = popupBorderSize; IMGUI_STYLE->PopupBorderSize = popupBorderSize;
*/ */
// FramePadding /**
// Padding within a framed rectangle (used by most widgets). * Padding within a framed rectangle (used by most widgets).
// */
public native void getFramePadding(ImVec2 dstImVec2); /* public native void getFramePadding(ImVec2 dstImVec2); /*
Jni::ImVec2Cpy(env, &ImGui::GetStyle().FramePadding, dstImVec2); Jni::ImVec2Cpy(env, &IMGUI_STYLE->FramePadding, dstImVec2);
*/ */
/**
* Padding within a framed rectangle (used by most widgets).
*/
public native void setFramePadding(float x, float y); /* public native void setFramePadding(float x, float y); /*
ImGui::GetStyle().FramePadding.x = x; IMGUI_STYLE->FramePadding.x = x;
ImGui::GetStyle().FramePadding.y = y; IMGUI_STYLE->FramePadding.y = y;
*/ */
// FrameRounding /**
// Radius of frame corners rounding. Set to 0.0f to have rectangular frame (used by most widgets). * Radius of frame corners rounding. Set to 0.0f to have rectangular frame (used by most widgets).
// */
public native float getFrameRounding(); /* public native float getFrameRounding(); /*
return ImGui::GetStyle().FrameRounding; return IMGUI_STYLE->FrameRounding;
*/ */
/**
* Radius of frame corners rounding. Set to 0.0f to have rectangular frame (used by most widgets).
*/
public native void setFrameRounding(float frameRounding); /* public native void setFrameRounding(float frameRounding); /*
ImGui::GetStyle().FrameRounding = frameRounding; IMGUI_STYLE->FrameRounding = frameRounding;
*/ */
// FrameBorderSize /**
// Thickness of border around frames. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). * Thickness of border around frames. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly).
// */
public native float getFrameBorderSize(); /* public native float getFrameBorderSize(); /*
return ImGui::GetStyle().FrameBorderSize; return IMGUI_STYLE->FrameBorderSize;
*/ */
/**
* Thickness of border around frames. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly).
*/
public native void setFrameBorderSize(float frameBorderSize); /* public native void setFrameBorderSize(float frameBorderSize); /*
ImGui::GetStyle().FrameBorderSize = frameBorderSize; IMGUI_STYLE->FrameBorderSize = frameBorderSize;
*/ */
// ItemSpacing /**
// Horizontal and vertical spacing between widgets/lines. * Horizontal and vertical spacing between widgets/lines.
// */
public native void getItemSpacing(ImVec2 dstImVec2); /* public native void getItemSpacing(ImVec2 dstImVec2); /*
Jni::ImVec2Cpy(env, &ImGui::GetStyle().ItemSpacing, dstImVec2); Jni::ImVec2Cpy(env, &IMGUI_STYLE->ItemSpacing, dstImVec2);
*/ */
/**
* Horizontal and vertical spacing between widgets/lines.
*/
public native void setItemSpacing(float x, float y); /* public native void setItemSpacing(float x, float y); /*
ImGui::GetStyle().ItemSpacing.x = x; IMGUI_STYLE->ItemSpacing.x = x;
ImGui::GetStyle().ItemSpacing.y = y; IMGUI_STYLE->ItemSpacing.y = y;
*/ */
// ItemInnerSpacing /**
// Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label). * Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label).
// */
public native void getItemInnerSpacing(ImVec2 dstImVec2); /* public native void getItemInnerSpacing(ImVec2 dstImVec2); /*
Jni::ImVec2Cpy(env, &ImGui::GetStyle().ItemInnerSpacing, dstImVec2); Jni::ImVec2Cpy(env, &IMGUI_STYLE->ItemInnerSpacing, dstImVec2);
*/ */
/**
* Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label).
*/
public native void setItemInnerSpacing(float x, float y); /* public native void setItemInnerSpacing(float x, float y); /*
ImGui::GetStyle().ItemInnerSpacing.x = x; IMGUI_STYLE->ItemInnerSpacing.x = x;
ImGui::GetStyle().ItemInnerSpacing.y = y; IMGUI_STYLE->ItemInnerSpacing.y = y;
*/ */
// TouchExtraPadding /**
// Expand reactive bounding box for touch-based system where touch position is not accurate enough. * Expand reactive bounding box for touch-based system where touch position is not accurate enough.
// Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much! * Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much!
// */
public native void getTouchExtraPadding(ImVec2 dstImVec2); /* public native void getTouchExtraPadding(ImVec2 dstImVec2); /*
Jni::ImVec2Cpy(env, &ImGui::GetStyle().TouchExtraPadding, dstImVec2); Jni::ImVec2Cpy(env, &IMGUI_STYLE->TouchExtraPadding, dstImVec2);
*/ */
/**
* Expand reactive bounding box for touch-based system where touch position is not accurate enough.
* Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much!
*/
public native void setTouchExtraPadding(float x, float y); /* public native void setTouchExtraPadding(float x, float y); /*
ImGui::GetStyle().TouchExtraPadding.x = x; IMGUI_STYLE->TouchExtraPadding.x = x;
ImGui::GetStyle().TouchExtraPadding.y = y; IMGUI_STYLE->TouchExtraPadding.y = y;
*/ */
// IndentSpacing /**
// Horizontal indentation when e.g. entering a tree node. Generally == (FontSize + FramePadding.x*2). * Horizontal indentation when e.g. entering a tree node. Generally == (FontSize + FramePadding.x*2).
// */
public native float getIndentSpacing(); /* public native float getIndentSpacing(); /*
return ImGui::GetStyle().IndentSpacing; return IMGUI_STYLE->IndentSpacing;
*/ */
/**
* Horizontal indentation when e.g. entering a tree node. Generally == (FontSize + FramePadding.x*2).
*/
public native void setIndentSpacing(float indentSpacing); /* public native void setIndentSpacing(float indentSpacing); /*
ImGui::GetStyle().IndentSpacing = indentSpacing; IMGUI_STYLE->IndentSpacing = indentSpacing;
*/ */
// ColumnsMinSpacing /**
// Minimum horizontal spacing between two columns. Preferably > (FramePadding.x + 1). * Minimum horizontal spacing between two columns. Preferably > (FramePadding.x + 1).
// */
public native float getColumnsMinSpacing(); /* public native float getColumnsMinSpacing(); /*
return ImGui::GetStyle().ColumnsMinSpacing; return IMGUI_STYLE->ColumnsMinSpacing;
*/ */
/**
* Minimum horizontal spacing between two columns. Preferably > (FramePadding.x + 1).
*/
public native void setColumnsMinSpacing(float columnsMinSpacing); /* public native void setColumnsMinSpacing(float columnsMinSpacing); /*
ImGui::GetStyle().ColumnsMinSpacing = columnsMinSpacing; IMGUI_STYLE->ColumnsMinSpacing = columnsMinSpacing;
*/ */
// ScrollbarSize /**
// Width of the vertical scrollbar, Height of the horizontal scrollbar. * Width of the vertical scrollbar, Height of the horizontal scrollbar.
// */
public native float getScrollbarSize(); /* public native float getScrollbarSize(); /*
return ImGui::GetStyle().ScrollbarSize; return IMGUI_STYLE->ScrollbarSize;
*/ */
/**
* Width of the vertical scrollbar, Height of the horizontal scrollbar.
*/
public native void setScrollbarSize(float scrollbarSize); /* public native void setScrollbarSize(float scrollbarSize); /*
ImGui::GetStyle().ScrollbarSize = scrollbarSize; IMGUI_STYLE->ScrollbarSize = scrollbarSize;
*/ */
// ScrollbarRounding /**
// Radius of grab corners for scrollbar. * Radius of grab corners for scrollbar.
// */
public native float getScrollbarRounding(); /* public native float getScrollbarRounding(); /*
return ImGui::GetStyle().ScrollbarRounding; return IMGUI_STYLE->ScrollbarRounding;
*/ */
/**
* Radius of grab corners for scrollbar.
*/
public native void setScrollbarRounding(float scrollbarRounding); /* public native void setScrollbarRounding(float scrollbarRounding); /*
ImGui::GetStyle().ScrollbarRounding = scrollbarRounding; IMGUI_STYLE->ScrollbarRounding = scrollbarRounding;
*/ */
// GrabMinSize /**
// Minimum width/height of a grab box for slider/scrollbar. * Minimum width/height of a grab box for slider/scrollbar.
// */
public native float getGrabMinSize(); /* public native float getGrabMinSize(); /*
return ImGui::GetStyle().GrabMinSize; return IMGUI_STYLE->GrabMinSize;
*/ */
/**
* Minimum width/height of a grab box for slider/scrollbar.
*/
public native void setGrabMinSize(float grabMinSize); /* public native void setGrabMinSize(float grabMinSize); /*
ImGui::GetStyle().GrabMinSize = grabMinSize; IMGUI_STYLE->GrabMinSize = grabMinSize;
*/ */
// GrabRounding /**
// Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs. * Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs.
// */
public native float getGrabRounding(); /* public native float getGrabRounding(); /*
return ImGui::GetStyle().GrabRounding; return IMGUI_STYLE->GrabRounding;
*/ */
/**
* Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs.
*/
public native void setGrabRounding(float grabRounding); /* public native void setGrabRounding(float grabRounding); /*
ImGui::GetStyle().GrabRounding = grabRounding; IMGUI_STYLE->GrabRounding = grabRounding;
*/ */
// TabRounding /**
// Radius of upper corners of a tab. Set to 0.0f to have rectangular tabs. * Radius of upper corners of a tab. Set to 0.0f to have rectangular tabs.
// */
public native float getTabRounding(); /* public native float getTabRounding(); /*
return ImGui::GetStyle().TabRounding; return IMGUI_STYLE->TabRounding;
*/ */
/**
* Radius of upper corners of a tab. Set to 0.0f to have rectangular tabs.
*/
public native void setTabRounding(float tabRounding); /* public native void setTabRounding(float tabRounding); /*
ImGui::GetStyle().TabRounding = tabRounding; IMGUI_STYLE->TabRounding = tabRounding;
*/ */
// TabBorderSize /**
// Thickness of border around tabs. * Thickness of border around tabs.
// */
public native float getTabBorderSize(); /* public native float getTabBorderSize(); /*
return ImGui::GetStyle().TabBorderSize; return IMGUI_STYLE->TabBorderSize;
*/ */
/**
* Thickness of border around tabs.
*/
public native void setTabBorderSize(float tabBorderSize); /* public native void setTabBorderSize(float tabBorderSize); /*
ImGui::GetStyle().TabBorderSize = tabBorderSize; IMGUI_STYLE->TabBorderSize = tabBorderSize;
*/ */
// ColorButtonPosition /**
// Side of the color button in the ColorEdit4 widget (left/right). Defaults to ImGuiDir_Right. * Side of the color button in the ColorEdit4 widget (left/right). Defaults to ImGuiDir_Right.
// */
public native int getColorButtonPosition(); /* public native int getColorButtonPosition(); /*
return ImGui::GetStyle().ColorButtonPosition; return IMGUI_STYLE->ColorButtonPosition;
*/ */
/**
* Side of the color button in the ColorEdit4 widget (left/right). Defaults to ImGuiDir_Right.
*/
public native void setColorButtonPosition(int colorButtonPosition); /* public native void setColorButtonPosition(int colorButtonPosition); /*
ImGui::GetStyle().ColorButtonPosition = colorButtonPosition; IMGUI_STYLE->ColorButtonPosition = colorButtonPosition;
*/ */
// ButtonTextAlign /**
// Alignment of button text when button is larger than text. Defaults to (0.5f, 0.5f) (centered). * Alignment of button text when button is larger than text. Defaults to (0.5f, 0.5f) (centered).
// */
public native void getButtonTextAlign(ImVec2 dstImVec2); /* public native void getButtonTextAlign(ImVec2 dstImVec2); /*
Jni::ImVec2Cpy(env, &ImGui::GetStyle().ButtonTextAlign, dstImVec2); Jni::ImVec2Cpy(env, &IMGUI_STYLE->ButtonTextAlign, dstImVec2);
*/ */
/**
* Alignment of button text when button is larger than text. Defaults to (0.5f, 0.5f) (centered).
*/
public native void setButtonTextAlign(float x, float y); /* public native void setButtonTextAlign(float x, float y); /*
ImGui::GetStyle().ButtonTextAlign.x = x; IMGUI_STYLE->ButtonTextAlign.x = x;
ImGui::GetStyle().ButtonTextAlign.y = y; IMGUI_STYLE->ButtonTextAlign.y = y;
*/ */
// SelectableTextAlign /**
// Alignment of selectable text when selectable is larger than text. Defaults to (0.0f, 0.0f) (top-left aligned). * Alignment of selectable text when selectable is larger than text. Defaults to (0.0f, 0.0f) (top-left aligned).
// */
public native void getSelectableTextAlign(ImVec2 dstImVec2); /* public native void getSelectableTextAlign(ImVec2 dstImVec2); /*
Jni::ImVec2Cpy(env, &ImGui::GetStyle().SelectableTextAlign, dstImVec2); Jni::ImVec2Cpy(env, &IMGUI_STYLE->SelectableTextAlign, dstImVec2);
*/ */
/**
* Alignment of selectable text when selectable is larger than text. Defaults to (0.0f, 0.0f) (top-left aligned).
*/
public native void setSelectableTextAlign(float x, float y); /* public native void setSelectableTextAlign(float x, float y); /*
ImGui::GetStyle().SelectableTextAlign.x = x; IMGUI_STYLE->SelectableTextAlign.x = x;
ImGui::GetStyle().SelectableTextAlign.y = y; IMGUI_STYLE->SelectableTextAlign.y = y;
*/ */
// DisplayWindowPadding /**
// Window position are clamped to be visible within the display area by at least this amount. Only applies to regular windows. * Window position are clamped to be visible within the display area by at least this amount. Only applies to regular windows.
// */
public native void getDisplayWindowPadding(ImVec2 dstImVec2); /* public native void getDisplayWindowPadding(ImVec2 dstImVec2); /*
Jni::ImVec2Cpy(env, &ImGui::GetStyle().DisplayWindowPadding, dstImVec2); Jni::ImVec2Cpy(env, &IMGUI_STYLE->DisplayWindowPadding, dstImVec2);
*/ */
/**
* Window position are clamped to be visible within the display area by at least this amount. Only applies to regular windows.
*/
public native void setDisplayWindowPadding(float x, float y); /* public native void setDisplayWindowPadding(float x, float y); /*
ImGui::GetStyle().DisplayWindowPadding.x = x; IMGUI_STYLE->DisplayWindowPadding.x = x;
ImGui::GetStyle().DisplayWindowPadding.y = y; IMGUI_STYLE->DisplayWindowPadding.y = y;
*/ */
// DisplaySafeAreaPadding /**
// If you cannot see the edges of your screen (e.g. on a TV) increase the safe area padding. * If you cannot see the edges of your screen (e.g. on a TV) increase the safe area padding.
// Apply to popups/tooltips as well regular windows. NB: Prefer configuring your TV sets correctly! * Apply to popups/tooltips as well regular windows. NB: Prefer configuring your TV sets correctly!
// */
public native void getDisplaySafeAreaPadding(ImVec2 dstImVec2); /* public native void getDisplaySafeAreaPadding(ImVec2 dstImVec2); /*
Jni::ImVec2Cpy(env, &ImGui::GetStyle().DisplaySafeAreaPadding, dstImVec2); Jni::ImVec2Cpy(env, &IMGUI_STYLE->DisplaySafeAreaPadding, dstImVec2);
*/ */
/**
* If you cannot see the edges of your screen (e.g. on a TV) increase the safe area padding.
* Apply to popups/tooltips as well regular windows. NB: Prefer configuring your TV sets correctly!
*/
public native void setDisplaySafeAreaPadding(float x, float y); /* public native void setDisplaySafeAreaPadding(float x, float y); /*
ImGui::GetStyle().DisplaySafeAreaPadding.x = x; IMGUI_STYLE->DisplaySafeAreaPadding.x = x;
ImGui::GetStyle().DisplaySafeAreaPadding.y = y; IMGUI_STYLE->DisplaySafeAreaPadding.y = y;
*/ */
// MouseCursorScale /**
// Scale software rendered mouse cursor (when io.MouseDrawCursor is enabled). May be removed later. * Scale software rendered mouse cursor (when io.MouseDrawCursor is enabled). May be removed later.
// */
public native float getMouseCursorScale(); /* public native float getMouseCursorScale(); /*
return ImGui::GetStyle().MouseCursorScale; return IMGUI_STYLE->MouseCursorScale;
*/ */
/**
* Scale software rendered mouse cursor (when io.MouseDrawCursor is enabled). May be removed later.
*/
public native void setMouseCursorScale(float mouseCursorScale); /* public native void setMouseCursorScale(float mouseCursorScale); /*
ImGui::GetStyle().MouseCursorScale = mouseCursorScale; IMGUI_STYLE->MouseCursorScale = mouseCursorScale;
*/ */
// AntiAliasedLines /**
// Enable anti-aliasing on lines/borders. Disable if you are really tight on CPU/GPU. * Enable anti-aliasing on lines/borders. Disable if you are really tight on CPU/GPU.
// */
public native boolean getAntiAliasedLines(); /* public native boolean getAntiAliasedLines(); /*
return ImGui::GetStyle().AntiAliasedLines; return IMGUI_STYLE->AntiAliasedLines;
*/ */
/**
* Enable anti-aliasing on lines/borders. Disable if you are really tight on CPU/GPU.
*/
public native void setAntiAliasedLines(boolean antiAliasedLines); /* public native void setAntiAliasedLines(boolean antiAliasedLines); /*
ImGui::GetStyle().AntiAliasedLines = antiAliasedLines; IMGUI_STYLE->AntiAliasedLines = antiAliasedLines;
*/ */
// AntiAliasedFill /**
// Enable anti-aliasing on filled shapes (rounded rectangles, circles, etc.) * Enable anti-aliasing on filled shapes (rounded rectangles, circles, etc.)
// */
public native boolean getAntiAliasedFill(); /* public native boolean getAntiAliasedFill(); /*
return ImGui::GetStyle().AntiAliasedFill; return IMGUI_STYLE->AntiAliasedFill;
*/ */
/**
* Enable anti-aliasing on filled shapes (rounded rectangles, circles, etc.)
*/
public native void setAntiAliasedFill(boolean antiAliasedFill); /* public native void setAntiAliasedFill(boolean antiAliasedFill); /*
ImGui::GetStyle().AntiAliasedFill = antiAliasedFill; IMGUI_STYLE->AntiAliasedFill = antiAliasedFill;
*/ */
// CurveTessellationTol /**
// Tessellation tolerance when using PathBezierCurveTo() without a specific number of segments. * Tessellation tolerance when using PathBezierCurveTo() without a specific number of segments.
// Decrease for highly tessellated curves (higher quality, more polygons), increase to reduce quality. * Decrease for highly tessellated curves (higher quality, more polygons), increase to reduce quality.
// */
public native float getCurveTessellationTol(); /* public native float getCurveTessellationTol(); /*
return ImGui::GetStyle().CurveTessellationTol; return IMGUI_STYLE->CurveTessellationTol;
*/ */
/**
* Tessellation tolerance when using PathBezierCurveTo() without a specific number of segments.
* Decrease for highly tessellated curves (higher quality, more polygons), increase to reduce quality.
*/
public native void setCurveTessellationTol(float curveTessellationTol); /* public native void setCurveTessellationTol(float curveTessellationTol); /*
ImGui::GetStyle().CurveTessellationTol = curveTessellationTol; IMGUI_STYLE->CurveTessellationTol = curveTessellationTol;
*/ */
/** /**
@@ -411,7 +548,7 @@ public final class ImGuiStyle {
* Decrease for higher quality but more geometry. * Decrease for higher quality but more geometry.
*/ */
public native float getCircleSegmentMaxError(); /* public native float getCircleSegmentMaxError(); /*
return ImGui::GetStyle().CircleSegmentMaxError; return IMGUI_STYLE->CircleSegmentMaxError;
*/ */
/** /**
@@ -419,7 +556,7 @@ public final class ImGuiStyle {
* Decrease for higher quality but more geometry. * Decrease for higher quality but more geometry.
*/ */
public native void setCircleSegmentMaxError(float circleSegmentMaxError); /* public native void setCircleSegmentMaxError(float circleSegmentMaxError); /*
ImGui::GetStyle().CircleSegmentMaxError = circleSegmentMaxError; IMGUI_STYLE->CircleSegmentMaxError = circleSegmentMaxError;
*/ */
/** /**
@@ -430,10 +567,10 @@ public final class ImGuiStyle {
jfloatArray jColors = (jfloatArray)env->GetObjectArrayElement(buff, i); jfloatArray jColors = (jfloatArray)env->GetObjectArrayElement(buff, i);
jfloat* jBuffColor = env->GetFloatArrayElements(jColors, 0); jfloat* jBuffColor = env->GetFloatArrayElements(jColors, 0);
jBuffColor[0] = ImGui::GetStyle().Colors[i].x; jBuffColor[0] = IMGUI_STYLE->Colors[i].x;
jBuffColor[1] = ImGui::GetStyle().Colors[i].y; jBuffColor[1] = IMGUI_STYLE->Colors[i].y;
jBuffColor[2] = ImGui::GetStyle().Colors[i].z; jBuffColor[2] = IMGUI_STYLE->Colors[i].z;
jBuffColor[3] = ImGui::GetStyle().Colors[i].w; jBuffColor[3] = IMGUI_STYLE->Colors[i].w;
env->ReleaseFloatArrayElements(jColors, jBuffColor, 0); env->ReleaseFloatArrayElements(jColors, jBuffColor, 0);
env->DeleteLocalRef(jColors); env->DeleteLocalRef(jColors);
@@ -448,25 +585,25 @@ public final class ImGuiStyle {
jfloatArray jColors = (jfloatArray)env->GetObjectArrayElement(colors, i); jfloatArray jColors = (jfloatArray)env->GetObjectArrayElement(colors, i);
jfloat* jColor = env->GetFloatArrayElements(jColors, 0); jfloat* jColor = env->GetFloatArrayElements(jColors, 0);
ImGui::GetStyle().Colors[i].x = jColor[0]; IMGUI_STYLE->Colors[i].x = jColor[0];
ImGui::GetStyle().Colors[i].y = jColor[1]; IMGUI_STYLE->Colors[i].y = jColor[1];
ImGui::GetStyle().Colors[i].z = jColor[2]; IMGUI_STYLE->Colors[i].z = jColor[2];
ImGui::GetStyle().Colors[i].w = jColor[3]; IMGUI_STYLE->Colors[i].w = jColor[3];
env->ReleaseFloatArrayElements(jColors, jColor, 0); env->ReleaseFloatArrayElements(jColors, jColor, 0);
env->DeleteLocalRef(jColors); env->DeleteLocalRef(jColors);
} }
*/ */
public native void scaleAllSizes(float scaleFactor); /*
ImGui::GetStyle().ScaleAllSizes(scaleFactor);
*/
public native void getColor(int imGuiCol, ImVec4 dstImVec4); /* public native void getColor(int imGuiCol, ImVec4 dstImVec4); /*
Jni::ImVec4Cpy(env, ImGui::GetStyle().Colors[imGuiCol], dstImVec4); Jni::ImVec4Cpy(env, IMGUI_STYLE->Colors[imGuiCol], dstImVec4);
*/ */
public native void setColor(int imGuiCol, float r, float g, float b, float a); /* public native void setColor(int imGuiCol, float r, float g, float b, float a); /*
ImGui::GetStyle().Colors[imGuiCol] = ImVec4(r, g, b, a); IMGUI_STYLE->Colors[imGuiCol] = ImVec4(r, g, b, a);
*/
public native void scaleAllSizes(float scaleFactor); /*
IMGUI_STYLE->ScaleAllSizes(scaleFactor);
*/ */
} }