Admdraw appears

This commit is contained in:
2026-08-25 22:50:12 +00:00
parent 3526e682a1
commit 2584f4289f
7 changed files with 103 additions and 51 deletions
@@ -138,7 +138,7 @@ public class InputProcessorTest {
byte[] sf = haus.nightmare.lib3270j.graphics.GraphicInputBuilder.buildGraphicInput(100, -50, AID_ENTER, false, false, false);
assertEquals(56, sf.length);
assertEquals(0x00, sf[0]);
assertEquals(0x34, sf[1]); // Length = 52
assertEquals(0x38, sf[1]); // Length = 56 bytes (0x0038)
assertEquals(0x0F, sf[2]); // SF ID = 0x0F
assertEquals(0x0F, sf[3]); // SF ID = 0x0F
@@ -153,6 +153,37 @@ public class InputProcessorTest {
assertEquals(0x07, sf[33]);
assertEquals((byte) 0xFF, sf[34]);
assertEquals((byte) AID_ENTER, sf[35]);
// Mouse Button 1 with picked segment 2 and tag 5
byte[] sfMouse = haus.nightmare.lib3270j.graphics.GraphicInputBuilder.buildGraphicInput(
294, 192, 1, true, false, false, 2, 5
);
assertEquals(56, sfMouse.length);
assertEquals(0x00, sfMouse[0]);
assertEquals(0x38, sfMouse[1]);
int mx = (sfMouse[24] << 8) | (sfMouse[25] & 0xFF);
int my = (sfMouse[26] << 8) | (sfMouse[27] & 0xFF);
assertEquals(294, (short) mx);
assertEquals(192, (short) my);
int segId = ((sfMouse[28] & 0xFF) << 24) | ((sfMouse[29] & 0xFF) << 16) |
((sfMouse[30] & 0xFF) << 8) | (sfMouse[31] & 0xFF);
assertEquals(2, segId);
int tag = ((sfMouse[32] & 0xFF) << 8) | (sfMouse[33] & 0xFF);
assertEquals(5, tag);
assertEquals(0x00, sfMouse[34]);
assertEquals(0x01, sfMouse[35]); // Button 1
// Mouse Button 2 (Action) with no segment (0)
byte[] sfMouse2 = haus.nightmare.lib3270j.graphics.GraphicInputBuilder.buildGraphicInput(
0, 0, 2, true, true, false, 0, 0
);
int segId2 = ((sfMouse2[28] & 0xFF) << 24) | ((sfMouse2[29] & 0xFF) << 16) |
((sfMouse2[30] & 0xFF) << 8) | (sfMouse2[31] & 0xFF);
assertEquals(0, segId2);
int tag2 = ((sfMouse2[32] & 0xFF) << 8) | (sfMouse2[33] & 0xFF);
assertEquals(0, tag2);
assertEquals((byte) 0x80, sfMouse2[34]); // Shift modifier
assertEquals(0x02, sfMouse2[35]); // Button 2
}
@Test