/* ActiveGS, Copyright 2004-2016 Olivier Goguel, https://github.com/ogoguel/ActiveGS Based on Kegs, Copyright 2004 Kent Dickey, https://kegs.sourceforge.net This code is covered by the GNU GPL licence */ #include "activegsAppDelegate.h" #include"../ActiveGS_Karateka/KaratekaKBDController.h" #import "UICustomKey.h" @implementation UICustomKey - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // Initialization code } return self; } @end #define CUSTOM_KEY_WIDTH_DEFAULT 64.0f #define CUSTOM_KEY_HEIGHT_DEFAULT 64.0f float CUSTOM_KEY_WIDTH ; float CUSTOM_KEY_HEIGHT ; int nb_custom_keys = 0; key_type custom_keys[MAX_CUSTOM_KEYS]; void init_custom_keys() { custom_keys[0].mode = INPUTMODE_LEFTRIGHTKEY; custom_keys[0].str = @"←"; custom_keys[0].code = 0x3B; custom_keys[0].halign = LEFT_BORDER ; // custom_keys[0].valign = MIDDLE_BOTTOM+ 3 ; custom_keys[0].valign = SAME_LINE + 4 ; custom_keys[0].hfactor = 1 ; custom_keys[1].mode = INPUTMODE_LEFTRIGHTKEY; custom_keys[1].str = @"→"; custom_keys[1].code = 0x3C; custom_keys[1].halign = LEFT_ALIGN + 0; custom_keys[1].valign = SAME_LINE + 0; custom_keys[1].hfactor = 1 ; custom_keys[8].mode = INPUTMODE_LEFTRIGHTKEY; custom_keys[8].str = @"SPC"; custom_keys[8].code = 0x31; custom_keys[8].halign = LEFT_BORDER /*LEFTCENTER_ALIGN*/ + 0; custom_keys[8].valign = TOP_ALIGN + 0; // custom_keys[8].valign = BOTTOM_ALIGN + 0; custom_keys[8].hfactor = 2 ; custom_keys[2].mode = INPUTMODE_PUNCHKEY + INPUTMODE_PUNCHLEFTRIGHT; custom_keys[2].str = @"W"; //@"Q"; custom_keys[2].halign = RIGHT_ALIGN + RIGHT_BORDER; custom_keys[2].valign = TOP_ALIGN + 3; custom_keys[2].code = 0x0D; //0x0C; custom_keys[3].mode = INPUTMODE_PUNCHKEY + INPUTMODE_PUNCHLEFTRIGHT; custom_keys[3].str = @"S"; //@"A"; custom_keys[3].halign = RIGHT_ALIGN + RIGHT_BORDER; custom_keys[3].valign = VERTICAL_CENTER; custom_keys[3].code = 0x01; //0x00; custom_keys[4].mode = INPUTMODE_PUNCHKEY + INPUTMODE_PUNCHLEFTRIGHT; custom_keys[4].str = @"X"; //@"Z"; custom_keys[4].halign = RIGHT_ALIGN + RIGHT_BORDER; custom_keys[4].valign = BOTTOM_ALIGN +3; custom_keys[4].code = 0x07; //0x06; custom_keys[5].mode = INPUTMODE_PUNCHKEY ; custom_keys[5].str = @"Q"; //@"W"; custom_keys[5].code = 0x0C; //0x0D; custom_keys[5].halign = RIGHT_ALIGN + 2; custom_keys[5].valign = SAME_LINE + 2; custom_keys[6].mode = INPUTMODE_PUNCHKEY ; custom_keys[6].str = @"A"; //@"S"; custom_keys[6].code = 0x00; //0x01; custom_keys[6].halign = SAME_COL + 5; custom_keys[6].valign = BOTTOM_ALIGN + 5; custom_keys[7].mode = INPUTMODE_PUNCHKEY ; custom_keys[7].str = @"Z"; //@"X"; custom_keys[7].code = 0x06; //0x07; custom_keys[7].halign = SAME_COL + 6; custom_keys[7].valign = BOTTOM_ALIGN + 6; custom_keys[9].mode = INPUTMODE_SPACEKEY ; custom_keys[9].str = @"SPC"; custom_keys[9].code = 0x31; custom_keys[9].halign = RIGHT_ALIGN + RIGHT_BORDER; custom_keys[9].valign = VERTICAL_CENTER; custom_keys[9].vfactor = 2; custom_keys[9].hfactor = 2; custom_keys[10].mode = INPUTMODE_PUNCHLEFTRIGHT ; custom_keys[10].str = @"W"; custom_keys[10].code = 0x0D; custom_keys[10].halign = LEFT_ALIGN + LEFT_BORDER; custom_keys[10].valign = SAME_LINE + 2; custom_keys[11].mode = INPUTMODE_PUNCHLEFTRIGHT ; custom_keys[11].str = @"S"; custom_keys[11].code = 0x01; custom_keys[11].halign = LEFT_ALIGN + LEFT_BORDER; custom_keys[11].valign = BOTTOM_ALIGN + 5; custom_keys[12].mode = INPUTMODE_PUNCHLEFTRIGHT ; custom_keys[12].str = @"X"; custom_keys[12].code = 0x07; custom_keys[12].halign = LEFT_ALIGN + LEFT_BORDER; custom_keys[12].valign = BOTTOM_ALIGN + 6; nb_custom_keys = 13; float res = [pManager resolutionRatio]; CUSTOM_KEY_HEIGHT = CUSTOM_KEY_HEIGHT_DEFAULT*res; CUSTOM_KEY_WIDTH = CUSTOM_KEY_WIDTH_DEFAULT*res; for (int i=0;ix:%f, y:%f",i,refx,refy); [v setFrame:r]; } done = 0; } } while (!done); }