-
-
Notifications
You must be signed in to change notification settings - Fork 103
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(api): add missing ImGui.TableGetSortSpecs API (and related objec…
…ts) (#246) * Add missing GetTableSortSpecs API * Add binding for TreeNodeEx(const char* label, ImGuiTreeNodeFlags flags) * Add generated files * Wrap > character in code block Co-authored-by: SpaiR <[email protected]> * Wrap > character in code block Co-authored-by: SpaiR <[email protected]> --------- Co-authored-by: SpaiR <[email protected]>
- Loading branch information
Showing
6 changed files
with
288 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
66 changes: 66 additions & 0 deletions
66
imgui-binding/src/generated/java/imgui/ImGuiTableColumnSortSpecs.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
package imgui; | ||
|
||
import imgui.binding.ImGuiStruct; | ||
|
||
/** | ||
* Sorting specification for one column of a table. | ||
*/ | ||
public final class ImGuiTableColumnSortSpecs extends ImGuiStruct { | ||
|
||
public ImGuiTableColumnSortSpecs(final long ptr) { | ||
super(ptr); | ||
} | ||
|
||
/*JNI | ||
#include "_common.h" | ||
#define THIS ((ImGuiTableColumnSortSpecs*)STRUCT_PTR) | ||
*/ | ||
|
||
/** | ||
* User id of the column (if specified by a TableSetupColumn() call) | ||
*/ | ||
public int getColumnUserID() { | ||
return nGetColumnUserID(); | ||
} | ||
|
||
private native int nGetColumnUserID(); /* | ||
return THIS->ColumnUserID; | ||
*/ | ||
|
||
/** | ||
* Index of the column | ||
*/ | ||
public int getColumnIndex() { | ||
return nGetColumnIndex(); | ||
} | ||
|
||
private native int nGetColumnIndex(); /* | ||
return THIS->ColumnIndex; | ||
*/ | ||
|
||
/** | ||
* Index within parent ImGuiTableSortSpecs (always stored in order starting from 0, tables sorted on a single criteria will always have a 0 here) | ||
*/ | ||
public int getSortOrder() { | ||
return nGetSortOrder(); | ||
} | ||
|
||
private native int nGetSortOrder(); /* | ||
return THIS->SortOrder; | ||
*/ | ||
|
||
/** | ||
* ImGuiSortDirection_Ascending or ImGuiSortDirection_Descending (you can use this or SortSign, whichever is more convenient for your sort function) | ||
*/ | ||
public int getSortDirection() { | ||
return nGetSortDirection(); | ||
} | ||
|
||
private native int nGetSortDirection(); /* | ||
return THIS->SortDirection; | ||
*/ | ||
|
||
/*JNI | ||
#undef THIS | ||
*/ | ||
} |
83 changes: 83 additions & 0 deletions
83
imgui-binding/src/generated/java/imgui/ImGuiTableSortSpecs.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
package imgui; | ||
|
||
import imgui.binding.ImGuiStruct; | ||
|
||
/** | ||
* Sorting specifications for a table (often handling sort specs for a single column, occasionally more) | ||
* Obtained by calling TableGetSortSpecs(). | ||
* When 'SpecsDirty == true' you can sort your data. It will be true with sorting specs have changed since last call, or the first time. | ||
* Make sure to set 'SpecsDirty = false' after sorting, else you may wastefully sort your data every frame! | ||
*/ | ||
public final class ImGuiTableSortSpecs extends ImGuiStruct { | ||
|
||
public ImGuiTableSortSpecs(final long ptr) { | ||
super(ptr); | ||
} | ||
|
||
/*JNI | ||
#include "_common.h" | ||
#define THIS ((ImGuiTableSortSpecs*)STRUCT_PTR) | ||
*/ | ||
|
||
/** | ||
* Pointer to sort spec array. | ||
*/ | ||
public ImGuiTableColumnSortSpecs[] getSpecs() { | ||
long[] specsPointers = nGetSpecs(); | ||
ImGuiTableColumnSortSpecs[] specs = new ImGuiTableColumnSortSpecs[specsPointers.length]; | ||
for (int i = 0; i < specsPointers.length; i++) { | ||
specs[i] = new ImGuiTableColumnSortSpecs(specsPointers[i]); | ||
} | ||
return specs; | ||
} | ||
|
||
private native long[] nGetSpecs(); /* | ||
const ImGuiTableColumnSortSpecs* specs = THIS->Specs; | ||
int specsCount = THIS->SpecsCount; | ||
jlong jBuf[specsCount]; | ||
for (int i = 0; i < specsCount; i++) { | ||
jBuf[i] = (intptr_t)specs; | ||
specs++; | ||
} | ||
jlongArray result = env->NewLongArray(specsCount); | ||
env->SetLongArrayRegion(result, 0, specsCount, jBuf); | ||
return result; | ||
*/ | ||
|
||
/** | ||
* Sort spec count. Most often 1. May be {@code > } 1 when ImGuiTableFlags_SortMulti is enabled. May be == 0 when ImGuiTableFlags_SortTristate is enabled. | ||
*/ | ||
public int getSpecsCount() { | ||
return nGetSpecsCount(); | ||
} | ||
|
||
private native int nGetSpecsCount(); /* | ||
return THIS->SpecsCount; | ||
*/ | ||
|
||
/** | ||
* Set to true when specs have changed since last time! Use this to sort again, then clear the flag. | ||
*/ | ||
public boolean getSpecsDirty() { | ||
return nGetSpecsDirty(); | ||
} | ||
|
||
/** | ||
* Set to true when specs have changed since last time! Use this to sort again, then clear the flag. | ||
*/ | ||
public void setSpecsDirty(final boolean value) { | ||
nSetSpecsDirty(value); | ||
} | ||
|
||
private native boolean nGetSpecsDirty(); /* | ||
return THIS->SpecsDirty; | ||
*/ | ||
|
||
private native void nSetSpecsDirty(boolean value); /* | ||
THIS->SpecsDirty = value; | ||
*/ | ||
|
||
/*JNI | ||
#undef THIS | ||
*/ | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
50 changes: 50 additions & 0 deletions
50
imgui-binding/src/main/java/imgui/ImGuiTableColumnSortSpecs.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
package imgui; | ||
|
||
import imgui.binding.ImGuiStruct; | ||
import imgui.binding.annotation.BindingField; | ||
import imgui.binding.annotation.BindingField.Accessor; | ||
import imgui.binding.annotation.BindingSource; | ||
|
||
/** | ||
* Sorting specification for one column of a table. | ||
*/ | ||
@BindingSource | ||
public final class ImGuiTableColumnSortSpecs extends ImGuiStruct { | ||
|
||
public ImGuiTableColumnSortSpecs(final long ptr) { | ||
super(ptr); | ||
} | ||
|
||
/*JNI | ||
#include "_common.h" | ||
#define THIS ((ImGuiTableColumnSortSpecs*)STRUCT_PTR) | ||
*/ | ||
|
||
/** | ||
* User id of the column (if specified by a TableSetupColumn() call) | ||
*/ | ||
@BindingField(accessors = { Accessor.GETTER }) | ||
public int ColumnUserID; | ||
|
||
/** | ||
* Index of the column | ||
*/ | ||
@BindingField(accessors = { Accessor.GETTER }) | ||
public int ColumnIndex; | ||
|
||
/** | ||
* Index within parent ImGuiTableSortSpecs (always stored in order starting from 0, tables sorted on a single criteria will always have a 0 here) | ||
*/ | ||
@BindingField(accessors = { Accessor.GETTER }) | ||
public int SortOrder; | ||
|
||
/** | ||
* ImGuiSortDirection_Ascending or ImGuiSortDirection_Descending (you can use this or SortSign, whichever is more convenient for your sort function) | ||
*/ | ||
@BindingField(accessors = { Accessor.GETTER }) | ||
public int SortDirection; | ||
|
||
/*JNI | ||
#undef THIS | ||
*/ | ||
} |
66 changes: 66 additions & 0 deletions
66
imgui-binding/src/main/java/imgui/ImGuiTableSortSpecs.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
package imgui; | ||
|
||
import imgui.binding.ImGuiStruct; | ||
import imgui.binding.annotation.BindingField; | ||
import imgui.binding.annotation.BindingField.Accessor; | ||
import imgui.binding.annotation.BindingSource; | ||
|
||
/** | ||
* Sorting specifications for a table (often handling sort specs for a single column, occasionally more) | ||
* Obtained by calling TableGetSortSpecs(). | ||
* When 'SpecsDirty == true' you can sort your data. It will be true with sorting specs have changed since last call, or the first time. | ||
* Make sure to set 'SpecsDirty = false' after sorting, else you may wastefully sort your data every frame! | ||
*/ | ||
@BindingSource | ||
public final class ImGuiTableSortSpecs extends ImGuiStruct { | ||
|
||
public ImGuiTableSortSpecs(final long ptr) { | ||
super(ptr); | ||
} | ||
|
||
/*JNI | ||
#include "_common.h" | ||
#define THIS ((ImGuiTableSortSpecs*)STRUCT_PTR) | ||
*/ | ||
|
||
/** | ||
* Pointer to sort spec array. | ||
*/ | ||
public ImGuiTableColumnSortSpecs[] getSpecs() { | ||
long[] specsPointers = nGetSpecs(); | ||
ImGuiTableColumnSortSpecs[] specs = new ImGuiTableColumnSortSpecs[specsPointers.length]; | ||
for (int i = 0; i < specsPointers.length; i++) { | ||
specs[i] = new ImGuiTableColumnSortSpecs(specsPointers[i]); | ||
} | ||
return specs; | ||
} | ||
|
||
private native long[] nGetSpecs(); /* | ||
const ImGuiTableColumnSortSpecs* specs = THIS->Specs; | ||
int specsCount = THIS->SpecsCount; | ||
jlong jBuf[specsCount]; | ||
for (int i = 0; i < specsCount; i++) { | ||
jBuf[i] = (intptr_t)specs; | ||
specs++; | ||
} | ||
jlongArray result = env->NewLongArray(specsCount); | ||
env->SetLongArrayRegion(result, 0, specsCount, jBuf); | ||
return result; | ||
*/ | ||
|
||
/** | ||
* Sort spec count. Most often 1. May be {@code > } 1 when ImGuiTableFlags_SortMulti is enabled. May be == 0 when ImGuiTableFlags_SortTristate is enabled. | ||
*/ | ||
@BindingField(accessors = { Accessor.GETTER }) | ||
public int SpecsCount; | ||
|
||
/** | ||
* Set to true when specs have changed since last time! Use this to sort again, then clear the flag. | ||
*/ | ||
@BindingField | ||
public boolean SpecsDirty; | ||
|
||
/*JNI | ||
#undef THIS | ||
*/ | ||
} |