[API] Simplify flags API

This commit is contained in:
SpaiR committed 2020-08-30 21:51:04 +03:00
1 parent 9e81399f1e
commit b065d004f7
7 files changed
+130 -11

No files matched your search

@@ -41,6 +41,27 @@ public final class ImDrawList extends ImGuiStruct {
IM_DRAW_LIST->Flags = imDrawListFlags;
*/
/**
* Flags, you may poke into these to adjust anti-aliasing settings per-primitive.
*/
public void addImDrawListFlags(final int flags) {
setImDrawListFlags(getImDrawListFlags() | flags);
}
/**
* Flags, you may poke into these to adjust anti-aliasing settings per-primitive.
*/
public void removeImDrawListFlags(final int flags) {
setImDrawListFlags(getImDrawListFlags() & ~(flags));
}
/**
* Flags, you may poke into these to adjust anti-aliasing settings per-primitive.
*/
public boolean hasImDrawListFlags(final int flags) {
return (getImDrawListFlags() & flags) != 0;
}
/**
* Render-level scissoring.
* This is passed down to your render function but not used for CPU-side coarse clipping.
@@ -506,19 +506,40 @@ public final class ImFontAtlas extends ImGuiStructDestroyable {
*/
/**
* Build flags (see ImFontAtlasFlags_)
* Build flags (see {@link imgui.flag.ImFontAtlasFlags})
*/
public native int getFlags(); /*
return IM_FONT_ATLAS->Flags;
*/
/**
* Build flags (see ImFontAtlasFlags_)
* Build flags (see {@link imgui.flag.ImFontAtlasFlags})
*/
public native void setFlags(int imFontAtlasFlags); /*
IM_FONT_ATLAS->Flags = imFontAtlasFlags;
*/
/**
* Build flags (see {@link imgui.flag.ImFontAtlasFlags})
*/
public void addFlags(final int flags) {
setFlags(getFlags() | flags);
}
/**
* Build flags (see {@link imgui.flag.ImFontAtlasFlags})
*/
public void removeFlags(final int flags) {
setFlags(getFlags() & ~(flags));
}
/**
* Build flags (see {@link imgui.flag.ImFontAtlasFlags})
*/
public boolean hasFlags(final int flags) {
return (getFlags() & flags) != 0;
}
/**
* User data to refer to the texture once it has been uploaded to user's graphic systems.
* It is passed back to you during rendering via the ImDrawCmd structure.
@@ -52,6 +52,13 @@ public final class ImGuiIO {
setConfigFlags(getConfigFlags() & ~(configFlags));
}
/**
* See ImGuiConfigFlags enum. Set by user/application. Gamepad/keyboard navigation options, etc.
*/
public boolean hasConfigFlags(final int flags) {
return (getConfigFlags() & flags) != 0;
}
/**
* See ImGuiBackendFlags enum. Set by back-end to communicate features supported by the back-end.
*/
@@ -80,6 +87,13 @@ public final class ImGuiIO {
setBackendFlags(getBackendFlags() & ~(backendFlags));
}
/**
* See ImGuiBackendFlags enum. Set by back-end to communicate features supported by the back-end.
*/
public boolean hasBackendFlags(final int flags) {
return (getBackendFlags() & flags) != 0;
}
/**
* Minimum time between saving positions/sizes to .ini file, in seconds.
*/
@@ -51,6 +51,27 @@ public final class ImGuiViewport extends ImGuiStruct {
IMGUI_VIEWPORT->Flags = flags;
*/
/**
* See {@link imgui.flag.ImGuiViewportFlags}.
*/
public void addFlags(final int flags) {
setFlags(getFlags() | flags);
}
/**
* See {@link imgui.flag.ImGuiViewportFlags}.
*/
public void removeFlags(final int flags) {
setFlags(getFlags() & ~(flags));
}
/**
* See {@link imgui.flag.ImGuiViewportFlags}.
*/
public boolean hasFlags(final int flags) {
return (getFlags() & flags) != 0;
}
/**
* Main Area: Position of the viewport (the imgui coordinates are the same as OS desktop/native coordinates).
*/
@@ -112,6 +112,27 @@ public final class ImGuiWindowClass extends ImGuiStructDestroyable {
IMGUI_WINDOW_CLASS->DockNodeFlagsOverrideSet = dockNodeFlagsOverrideSet;
*/
/**
* [EXPERIMENTAL] Dock node flags to set when a window of this class is hosted by a dock node (it doesn't have to be selected!)
*/
public void addDockNodeFlagsOverrideSet(final int flags) {
setDockNodeFlagsOverrideSet(getDockNodeFlagsOverrideSet() | flags);
}
/**
* [EXPERIMENTAL] Dock node flags to set when a window of this class is hosted by a dock node (it doesn't have to be selected!)
*/
public void removeDockNodeFlagsOverrideSet(final int flags) {
setDockNodeFlagsOverrideSet(getDockNodeFlagsOverrideSet() & ~(flags));
}
/**
* [EXPERIMENTAL] Dock node flags to set when a window of this class is hosted by a dock node (it doesn't have to be selected!)
*/
public boolean hasDockNodeFlagsOverrideSet(final int flags) {
return (getDockNodeFlagsOverrideSet() & flags) != 0;
}
/**
* [EXPERIMENTAL]
*/
@@ -126,6 +147,27 @@ public final class ImGuiWindowClass extends ImGuiStructDestroyable {
IMGUI_WINDOW_CLASS->DockNodeFlagsOverrideClear = dockNodeFlagsOverrideClear;
*/
/**
* [EXPERIMENTAL]
*/
public void addDockNodeFlagsOverrideClear(final int flags) {
setDockNodeFlagsOverrideClear(getDockNodeFlagsOverrideClear() | flags);
}
/**
* [EXPERIMENTAL]
*/
public void removeDockNodeFlagsOverrideClear(final int flags) {
setDockNodeFlagsOverrideClear(getDockNodeFlagsOverrideClear() & ~(flags));
}
/**
* [EXPERIMENTAL]
*/
public boolean hasDockNodeFlagsOverrideClear(final int flags) {
return (getDockNodeFlagsOverrideClear() & flags) != 0;
}
/**
* Set to true to enforce single floating windows of this class always having their own docking node
* (equivalent of setting the global io.ConfigDockingAlwaysTabBar)