Files
imgui-java/imgui-binding/src/main/java/imgui/ImGuiWindowClass.java
T
2020-08-30 21:51:04 +03:00

201 lines
7.2 KiB
Java

package imgui;
import imgui.binding.ImGuiStructDestroyable;
/**
* [ALPHA] Rarely used / very advanced uses only. Use with SetNextWindowClass() and DockSpace() functions.
* Important: the content of this class is still highly WIP and likely to change and be refactored
* before we stabilize Docking features. Please be mindful if using this.
* Provide hints:
* - To the platform back-end via altered viewport flags (enable/disable OS decoration, OS task bar icons, etc.)
* - To the platform back-end for OS level parent/child relationships of viewport.
* - To the docking system for various options and filtering.
*/
public final class ImGuiWindowClass extends ImGuiStructDestroyable {
public ImGuiWindowClass() {
}
public ImGuiWindowClass(final long ptr) {
super(ptr);
}
/*JNI
#include <stdint.h>
#include <imgui.h>
#include "jni_binding_struct.h"
#define IMGUI_WINDOW_CLASS ((ImGuiWindowClass*)STRUCT_PTR)
*/
@Override
protected long create() {
return nCreate();
}
private native long nCreate(); /*
return (intptr_t)(new ImGuiWindowClass());
*/
/**
* User data. 0 = Default class (unclassed). Windows of different classes cannot be docked with each others.
*/
public native int geClassId(); /*
return IMGUI_WINDOW_CLASS->ClassId;
*/
/**
* User data. 0 = Default class (unclassed). Windows of different classes cannot be docked with each others.
*/
public native void setClassId(int classId); /*
IMGUI_WINDOW_CLASS->ClassId = classId;
*/
/**
* Hint for the platform back-end. If non-zero, the platform back-end can create a parent{@code <>}child relationship between the platform windows.
* Not conforming back-ends are free to e.g. parent every viewport to the main viewport or not.
*/
public native int getParentViewportId(); /*
return IMGUI_WINDOW_CLASS->ParentViewportId;
*/
/**
* Hint for the platform back-end. If non-zero, the platform back-end can create a parent{@code <>}child relationship between the platform windows.
* Not conforming back-ends are free to e.g. parent every viewport to the main viewport or not.
*/
public native void setParentViewportId(int parentViewportId); /*
IMGUI_WINDOW_CLASS->ParentViewportId = parentViewportId;
*/
/**
* Viewport flags to set when a window of this class owns a viewport.
* This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis.
*/
public native int getViewportFlagsOverrideSet(); /*
return IMGUI_WINDOW_CLASS->ViewportFlagsOverrideSet;
*/
/**
* Viewport flags to set when a window of this class owns a viewport.
* This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis.
*/
public native void setViewportFlagsOverrideSet(int viewportFlagsOverrideSet); /*
IMGUI_WINDOW_CLASS->ViewportFlagsOverrideSet = viewportFlagsOverrideSet;
*/
/**
* Viewport flags to clear when a window of this class owns a viewport.
* This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis.
*/
public native int getViewportFlagsOverrideClear(); /*
return IMGUI_WINDOW_CLASS->ViewportFlagsOverrideClear;
*/
/**
* Viewport flags to clear when a window of this class owns a viewport.
* This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis.
*/
public native void setViewportFlagsOverrideClear(int viewportFlagsOverrideClear); /*
IMGUI_WINDOW_CLASS->ViewportFlagsOverrideClear = viewportFlagsOverrideClear;
*/
/**
* [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 native int getDockNodeFlagsOverrideSet(); /*
return IMGUI_WINDOW_CLASS->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 native void setDockNodeFlagsOverrideSet(int dockNodeFlagsOverrideSet); /*
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]
*/
public native int getDockNodeFlagsOverrideClear(); /*
return IMGUI_WINDOW_CLASS->DockNodeFlagsOverrideClear;
*/
/**
* [EXPERIMENTAL]
*/
public native void setDockNodeFlagsOverrideClear(int dockNodeFlagsOverrideClear); /*
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)
*/
public native boolean getDockingAlwaysTabBar(); /*
return IMGUI_WINDOW_CLASS->DockingAlwaysTabBar;
*/
/**
* Set to true to enforce single floating windows of this class always having their own docking node
* (equivalent of setting the global io.ConfigDockingAlwaysTabBar)
*/
public native void setDockingAlwaysTabBar(boolean dockingAlwaysTabBar); /*
IMGUI_WINDOW_CLASS->DockingAlwaysTabBar = dockingAlwaysTabBar;
*/
/**
* Set to true to allow windows of this class to be docked/merged with an unclassed window.
*/
public native boolean getDockingAllowUnclassed(); /*
return IMGUI_WINDOW_CLASS->DockingAllowUnclassed;
*/
/**
* Set to true to allow windows of this class to be docked/merged with an unclassed window.
*/
public native void setDockingAllowUnclassed(boolean dockingAllowUnclassed); /*
IMGUI_WINDOW_CLASS->DockingAllowUnclassed = dockingAllowUnclassed;
*/
}