#571 new kbd layout wip
This commit is contained in:
parent
10bbae4822
commit
7dc0311298
2
Makefile
2
Makefile
|
@ -258,7 +258,7 @@ bin/menu.o: src/menu.c $(TIC80_H) $(TIC_H)
|
|||
bin/surf.o: src/surf.c $(TIC80_H) $(TIC_H)
|
||||
$(CC) $< $(OPT) $(INCLUDES) -c -o $@
|
||||
|
||||
bin/system.o: src/system.c src/keycodes.inl src/kbdlayout.inl $(TIC80_H) $(TIC_H)
|
||||
bin/system.o: src/system.c src/keycodes.inl src/kbdlayout.inl src/kbdlabels.inl $(TIC80_H) $(TIC_H)
|
||||
$(CC) $< $(OPT) $(INCLUDES) -c -o $@
|
||||
|
||||
bin/chip.o: src/system/chip.c src/keycodes.c $(TIC80_H) $(TIC_H)
|
||||
|
|
File diff suppressed because one or more lines are too long
BIN
config.tic
BIN
config.tic
Binary file not shown.
|
@ -0,0 +1,72 @@
|
|||
{"ESC", 0*8+3, 0*8+3, true},
|
||||
|
||||
{"F1", 2*8+4, 0*8+3, true},
|
||||
{"F2", 4*8+4, 0*8+3, true},
|
||||
{"F3", 6*8+4, 0*8+3, true},
|
||||
{"F4", 8*8+4, 0*8+3, true},
|
||||
{"F5", 10*8+4, 0*8+3, true},
|
||||
{"F6", 12*8+4, 0*8+3, true},
|
||||
{"F7", 14*8+4, 0*8+3, true},
|
||||
{"F8", 16*8+4, 0*8+3, true},
|
||||
{"F9", 18*8+4, 0*8+3, true},
|
||||
{"F10", 20*8+3, 0*8+3, true},
|
||||
|
||||
{"TAB", 0*8+3, 2*8+4, true},
|
||||
{"`", 2*8+3, 2*8+3},
|
||||
{"[", 4*8+3, 2*8+3},
|
||||
{"]", 6*8+3, 2*8+3},
|
||||
{";", 8*8+3, 2*8+3},
|
||||
{"'", 10*8+3, 2*8+3},
|
||||
{"-", 12*8+3, 2*8+3},
|
||||
{"=", 14*8+3, 2*8+3},
|
||||
{"/", 16*8+3, 2*8+3},
|
||||
{"F11", 18*8+3, 2*8+3, true},
|
||||
{"F12", 20*8+3, 2*8+3, true},
|
||||
|
||||
{"1", 0*8+3, 4*8+3},
|
||||
{"2", 2*8+3, 4*8+3},
|
||||
{"3", 4*8+3, 4*8+3},
|
||||
{"4", 6*8+3, 4*8+3},
|
||||
{"5", 8*8+3, 4*8+3},
|
||||
{"6", 10*8+3, 4*8+3},
|
||||
{"7", 12*8+3, 4*8+3},
|
||||
{"8", 14*8+3, 4*8+3},
|
||||
{"9", 16*8+3, 4*8+3},
|
||||
{"0", 18*8+3, 4*8+3},
|
||||
{"BAC", 20*8+3, 4*8+4, true},
|
||||
|
||||
{"Q", 0*8+3, 6*8+3},
|
||||
{"W", 2*8+3, 6*8+3},
|
||||
{"E", 4*8+3, 6*8+3},
|
||||
{"R", 6*8+3, 6*8+3},
|
||||
{"T", 8*8+3, 6*8+3},
|
||||
{"Y", 10*8+3, 6*8+3},
|
||||
{"U", 12*8+3, 6*8+3},
|
||||
{"I", 14*8+3, 6*8+3},
|
||||
{"O", 16*8+3, 6*8+3},
|
||||
{"P", 18*8+3, 6*8+3},
|
||||
{"\\", 20*8+3, 6*8+3},
|
||||
|
||||
{"A", 1*8+3, 8*8+3},
|
||||
{"S", 3*8+3, 8*8+3},
|
||||
{"D", 5*8+3, 8*8+3},
|
||||
{"F", 7*8+3, 8*8+3},
|
||||
{"G", 9*8+3, 8*8+3},
|
||||
{"H", 11*8+3, 8*8+3},
|
||||
{"J", 13*8+3, 8*8+3},
|
||||
{"K", 15*8+3, 8*8+3},
|
||||
{"L", 17*8+3, 8*8+3},
|
||||
{"ENTER", 19*8+3, 8*8+4, true},
|
||||
|
||||
{"Z", 2*8+3, 10*8+3},
|
||||
{"X", 4*8+3, 10*8+3},
|
||||
{"C", 6*8+3, 10*8+3},
|
||||
{"V", 8*8+3, 10*8+3},
|
||||
{"B", 10*8+3, 10*8+3},
|
||||
{"N", 12*8+3, 10*8+3},
|
||||
{"M", 14*8+3, 10*8+3},
|
||||
{",", 16*8+3, 10*8+3},
|
||||
{".", 18*8+3, 10*8+3, true},
|
||||
|
||||
{"CTRL", 0*8+5, 12*8+4, true},
|
||||
{"ALT", 3*8+6, 12*8+4, true},
|
24
src/system.c
24
src/system.c
|
@ -168,6 +168,26 @@ static void updateGamepadParts()
|
|||
platform.gamepad.part.y = (SDL_Point){rect.w - 2*tileSize, 0*tileSize + offset};
|
||||
}
|
||||
|
||||
static void drawKeyboardLabels(s32 shift)
|
||||
{
|
||||
tic_mem* tic = platform.studio->tic;
|
||||
|
||||
enum{Color = tic_color_dark_gray};
|
||||
|
||||
typedef struct {const char* text; s32 x; s32 y; bool alt;} Label;
|
||||
static const Label Labels[] =
|
||||
{
|
||||
#include "kbdlabels.inl"
|
||||
};
|
||||
|
||||
for(s32 i = 0; i < COUNT_OF(Labels); i++)
|
||||
{
|
||||
const Label* label = Labels + i;
|
||||
if(label->text)
|
||||
tic->api.text(tic, label->text, label->x, label->y + shift, Color, label->alt);
|
||||
}
|
||||
}
|
||||
|
||||
static void initTouchKeyboard()
|
||||
{
|
||||
tic_mem* tic = platform.studio->tic;
|
||||
|
@ -190,7 +210,7 @@ static void initTouchKeyboard()
|
|||
tic->api.map(tic, &platform.studio->config()->cart->bank0.map,
|
||||
&platform.studio->config()->cart->bank0.tiles, 8, 0, Cols, Rows, 0, 0, -1, 1);
|
||||
|
||||
// drawKeyboardLabels(0);
|
||||
drawKeyboardLabels(0);
|
||||
|
||||
tic->api.blit(tic, NULL, NULL, NULL);
|
||||
|
||||
|
@ -210,7 +230,7 @@ static void initTouchKeyboard()
|
|||
tic->api.map(tic, &platform.studio->config()->cart->bank0.map,
|
||||
&platform.studio->config()->cart->bank0.tiles, TIC_MAP_SCREEN_WIDTH+8, 0, Cols, Rows, 0, 0, -1, 1);
|
||||
|
||||
// drawKeyboardLabels(2);
|
||||
drawKeyboardLabels(2);
|
||||
|
||||
tic->api.blit(tic, NULL, NULL, NULL);
|
||||
|
||||
|
|
|
@ -662,7 +662,7 @@ static s32 api_fixed_text(tic_mem* memory, const char* text, s32 x, s32 y, u8 co
|
|||
|
||||
static s32 drawNonFixedChar(tic_mem* memory, u8 symbol, s32 x, s32 y, s32 width, s32 height, u8 color, s32 scale, bool alt)
|
||||
{
|
||||
const u8* ptr = memory->font.data + (symbol)*BITS_IN_BYTE + (alt ? TIC_FONT_CHARS / 2 : 0);
|
||||
const u8* ptr = memory->font.data + (symbol + (alt ? TIC_FONT_CHARS / 2 : 0))*BITS_IN_BYTE;
|
||||
|
||||
const s32 FontWidth = alt ? TIC_ALTFONT_WIDTH : TIC_FONT_WIDTH;
|
||||
|
||||
|
|
Loading…
Reference in New Issue