Fixed hardcoded child frame height + no mouse
This commit is contained in:
parent
30a4d6919d
commit
909b39f519
|
@ -5,6 +5,7 @@ import java.util.ResourceBundle;
|
||||||
import imgui.ImGui;
|
import imgui.ImGui;
|
||||||
import imgui.flag.ImGuiStyleVar;
|
import imgui.flag.ImGuiStyleVar;
|
||||||
import imgui.flag.ImGuiTableFlags;
|
import imgui.flag.ImGuiTableFlags;
|
||||||
|
import imgui.flag.ImGuiWindowFlags;
|
||||||
import imgui.type.ImBoolean;
|
import imgui.type.ImBoolean;
|
||||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4Unicode4DService;
|
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4Unicode4DService;
|
||||||
|
@ -61,13 +62,10 @@ public class DemoUnicodePlaneDeskApp extends AbstractDeskApp implements DeskAppR
|
||||||
ImGui.text(buf.toString());
|
ImGui.text(buf.toString());
|
||||||
} else {
|
} else {
|
||||||
ImGui.pushStyleVar(ImGuiStyleVar.ItemSpacing, 0f, 0f);
|
ImGui.pushStyleVar(ImGuiStyleVar.ItemSpacing, 0f, 0f);
|
||||||
DrawCharacter drawChar2 = unicode4DService.getCharacterForUnicode(' ');
|
|
||||||
if (drawChar2 != null) {
|
|
||||||
ImCharacter.render(drawChar2);
|
|
||||||
ImGui.sameLine(); // print before beginChild to fix row height of table
|
|
||||||
}
|
|
||||||
int offset = 33;
|
int offset = 33;
|
||||||
ImGui.beginChild("row"+plane.name()); // workaround for error; Too many vertices in ImDrawList using 16-bit indices.
|
// workaround for error; Too many vertices in ImDrawList using 16-bit indices.
|
||||||
|
// hard coded height to fix line height and row0 height + no scoll to disable mouse scroll
|
||||||
|
ImGui.beginChild("row"+plane.name(), 0f, ImCharacter.HEIGHT, false, ImGuiWindowFlags.NoScrollWithMouse);
|
||||||
for (int i=plane.getStart()+offset;i<plane.getStart()+33+offset;i++) {
|
for (int i=plane.getStart()+offset;i<plane.getStart()+33+offset;i++) {
|
||||||
DrawCharacter drawChar = unicode4DService.getCharacterForUnicode(i);
|
DrawCharacter drawChar = unicode4DService.getCharacterForUnicode(i);
|
||||||
if (drawChar != null) {
|
if (drawChar != null) {
|
||||||
|
|
|
@ -10,8 +10,10 @@ import love.distributedrebirth.unicode4d.draw.DrawGlyphPath.ImGlyphQuadCurveTo;
|
||||||
|
|
||||||
public class ImCharacter {
|
public class ImCharacter {
|
||||||
|
|
||||||
|
public static final float HEIGHT = 26f;
|
||||||
|
|
||||||
public static void render(DrawCharacter drawChar) {
|
public static void render(DrawCharacter drawChar) {
|
||||||
ImVec2 size = new ImVec2(22f, 26f);
|
ImVec2 size = new ImVec2(22f, HEIGHT);
|
||||||
ImGui.invisibleButton("canvas", size.x, size.y);
|
ImGui.invisibleButton("canvas", size.x, size.y);
|
||||||
ImVec2 p0 = ImGui.getItemRectMin();
|
ImVec2 p0 = ImGui.getItemRectMin();
|
||||||
ImVec2 p1 = ImGui.getItemRectMax(); // p1 = p0 + size
|
ImVec2 p1 = ImGui.getItemRectMax(); // p1 = p0 + size
|
||||||
|
|
|
@ -15,6 +15,7 @@ import imgui.flag.ImGuiBackendFlags;
|
||||||
import imgui.gl3.ImGuiImplGl3;
|
import imgui.gl3.ImGuiImplGl3;
|
||||||
import imgui.glfw.ImGuiImplGlfw;
|
import imgui.glfw.ImGuiImplGlfw;
|
||||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||||
|
import love.distributedrebirth.unicode4d.draw.ImCharacter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create and shutdown of ImGui and font activations.
|
* Create and shutdown of ImGui and font activations.
|
||||||
|
@ -57,10 +58,11 @@ public class ImGuiSetup {
|
||||||
addRangeUnicodePlane0(fontBuilder);
|
addRangeUnicodePlane0(fontBuilder);
|
||||||
final short[] glyphRanges = fontBuilder.buildRanges();
|
final short[] glyphRanges = fontBuilder.buildRanges();
|
||||||
|
|
||||||
|
float fontSize = ImCharacter.HEIGHT;
|
||||||
boolean first = true;
|
boolean first = true;
|
||||||
for (File font: fonts) {
|
for (File font: fonts) {
|
||||||
logger.accept("Load font: "+font);
|
logger.accept("Load font: "+font);
|
||||||
io.getFonts().addFontFromMemoryTTF(Gdx.files.absolute(font.getAbsolutePath()).readBytes(), 22, fontConfig, glyphRanges);
|
io.getFonts().addFontFromMemoryTTF(Gdx.files.absolute(font.getAbsolutePath()).readBytes(), fontSize, fontConfig, glyphRanges);
|
||||||
if (first) {
|
if (first) {
|
||||||
fontConfig.setMergeMode(true);
|
fontConfig.setMergeMode(true);
|
||||||
first = false;
|
first = false;
|
||||||
|
|
|
@ -3,6 +3,7 @@ package love.distributedrebirth.gdxapp4d.vrgem4.view;
|
||||||
import com.badlogic.gdx.InputProcessor;
|
import com.badlogic.gdx.InputProcessor;
|
||||||
|
|
||||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||||
|
import love.distributedrebirth.unicode4d.draw.ImCharacter;
|
||||||
|
|
||||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||||
public class DeskAppInputProcessor implements InputProcessor {
|
public class DeskAppInputProcessor implements InputProcessor {
|
||||||
|
@ -23,8 +24,8 @@ public class DeskAppInputProcessor implements InputProcessor {
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isFilterMenu(int screenY) {
|
private boolean isFilterMenu(int screenY) {
|
||||||
// font22 + margin top-bottom = 26px
|
// font + margin top-bottom = 4px
|
||||||
if (screenY <= 26) {
|
if (screenY <= ImCharacter.HEIGHT+4) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in a new issue