Arch Blackmann
0324a3e3bb
Whiners...
...
svn path=/trunk/; revision=43990
2009-11-06 23:35:28 +00:00
Arch Blackmann
d23204652e
Implement printout the the state tables. It seems to work fine, but the tool doesn't yet generate the modified keys (shift+, ctrl+, etc) for each virtual key. This is the last thing that remains.
...
svn path=/trunk/; revision=43989
2009-11-06 22:42:26 +00:00
Arch Blackmann
4a61562491
Implement support for writing the virtual key to WCHAR translation for different shift states.
...
Only 2 shift states are supported for now, I have to add a lot more output generation code to get at least 3 states up and running.
svn path=/trunk/; revision=43985
2009-11-06 00:38:04 +00:00
Arch Blackmann
374c1a0142
Add table of shift state combinations, and add table of shift state types.
...
svn path=/trunk/; revision=43984
2009-11-06 00:37:06 +00:00
Arch Blackmann
bb5b97e281
Print out more state-related tables and information (still missing one large chunk of data). Print out the key and extended key tables for the layout. Fix up some more code.
...
The C source is almost fully complete for the English US test layout KLC!
svn path=/trunk/; revision=43983
2009-11-05 23:58:38 +00:00
Arch Blackmann
51050d323b
Add more support for shift state output. The tool now updates CharModifiers table based on the shift states present in the layout, building both the modification number and the key name based on the virtual key-> name table.
...
svn path=/trunk/; revision=43978
2009-11-05 19:55:57 +00:00
Arch Blackmann
44487b2614
Generate modifier table. Generate extended scancode table X. Generate extended scancode table Y.
...
svn path=/trunk/; revision=43977
2009-11-05 19:25:41 +00:00
Arch Blackmann
75cba8f7ab
Add table of modifiers.
...
svn path=/trunk/; revision=43976
2009-11-05 19:24:47 +00:00
Arch Blackmann
43ea0e72e4
Create layout entries for built-in non-redefined scancodes as well, based on the 110-key table (mostly things like the extended keys/SpeedRacer/MediaButtons, etc).
...
svn path=/trunk/; revision=43975
2009-11-05 19:24:24 +00:00
Arch Blackmann
9ba6ecc44b
The tool now generates 75% of a typical keyboard layout C file. Lots of stuff still missing, but most of the annoying work is done now... it just has to start filling in the dynamic data.
...
A full-fledged file will have ligature data, up to 8 shift states, dead keys, etc, but that's not stuff we'll have to deal with at first for simple layouts.
By tomorrow we should be able to fully process and generate latin-alphabet-based language keyboard layouts.
svn path=/trunk/; revision=43970
2009-11-05 05:20:01 +00:00
Arch Blackmann
ce3c33cc9f
Now write out the DEF file (okay that was too easy).
...
svn path=/trunk/; revision=43967
2009-11-05 02:04:04 +00:00
Arch Blackmann
e430f44387
Kbdtool can now create the resource (RC) file as well!
...
svn path=/trunk/; revision=43966
2009-11-05 01:57:08 +00:00
Arch Blackmann
6191f04a40
Holy shit Batman! KbdTool can now write out the keyboard layout header file! You should get a Layout01.h if you run it on test.klc (in your current working directory).
...
svn path=/trunk/; revision=43961
2009-11-04 22:48:55 +00:00
Arch Blackmann
7909bd0733
Refactoring and cleanup. Start fleshing out the output phase. Start handling exit correctly. Fix a bug in DoLAYOUT. Nothing new to see here...
...
svn path=/trunk/; revision=43959
2009-11-04 22:07:29 +00:00
Arch Blackmann
66afccbaeb
Add some helpful debug output to LAYOUT parsing, and enable DoLAYOUT code. The tool is able to fully decode/parse the test.klc English US layout file!
...
svn path=/trunk/; revision=43950
2009-11-04 19:52:36 +00:00
Arch Blackmann
7662e72971
Implement getCharacterInfo so the tool can now handle most LAYOUT entries, but not complicated ligature entries (dead keys are fine though). Also cleaned up the parsing loop of DoLAYOUT to avoid a goto, and finally added detection of SGCAP entries (in which case the tool will fail, since these are complex and not needed for now).
...
The main parsing loop is pretty much done, now the tool "just" has to merge the states and perform a check for duplicate entries. Then it'll be ready to generate the output files.
svn path=/trunk/; revision=43949
2009-11-04 19:38:21 +00:00
Arch Blackmann
b8b4a4efec
Started adding support for reading the different character states and the cap data (including detecting SGCAP). Now the tool has to determine the type of each character defined at every stage (dead, valid, invalid, ligature, etc...) and save the character in the appropriate slot. Dead and other keys are currently handled, as are undefined keys.
...
Major work remains to be done...
svn path=/trunk/; revision=43947
2009-11-04 04:49:00 +00:00
Arch Blackmann
420a4f5f4b
Start implementing the long task of DoLAYOUT to process the big "meat" of a KLC file: the keyboard layout. Implement the table of recognized virtual keys (and the translation matrix). Add support for hex-entered keys (0x...).
...
The tool does some minimal error checking for now, and attempts to begin parsing the LAYOUT section, but fails miserably and the code won't execute unless you've enabled verbose mode. I'm just using this commit as a checkpoint for now.
Also fixed SCVK structure to use the last member as a state flag.
Finally, added definitions for LAYOUTENTRY which will keep track of each row's column's values in the LAYOUT.
svn path=/trunk/; revision=43944
2009-11-03 22:57:26 +00:00
Arch Blackmann
5167151ae0
Implement the standard ISO 110-key scancode to virtual key conversion table for decoding the LAYOUT section. God that was tedious...
...
svn path=/trunk/; revision=43903
2009-11-01 19:04:42 +00:00
Arch Blackmann
190498ae3a
Make some printfs DPRINT1s since they are only for debugging, and also mark LIGATURE, MODIFIERS, ATTRIBUTES and DEADKEY as sections that I don't yet intend to support for now (they're not required for most layouts).
...
svn path=/trunk/; revision=43902
2009-11-01 18:30:57 +00:00
Arch Blackmann
0bce60efe8
Implement DoKEYNAME (again, very similar to the previous two). Fixup KEYNAME structure once more to make the field names portable accross different usages (LanguageCode becomes Code). The tool now supports KEYNAME, KEYNAME_EXT and KEYNAME_DEAD sections in the layout file.
...
svn path=/trunk/; revision=43901
2009-11-01 18:26:53 +00:00
Arch Blackmann
2fb987f2cc
Implement LANGUAGENAMES parsing (very similar to DESCRIPTIONS). Make KEYNAME structure portable accross other parsers, not just DESCRIPTIONS.
...
svn path=/trunk/; revision=43900
2009-11-01 18:17:30 +00:00
Arch Blackmann
165528760c
Add support for DESCRIPTIONS section (tested on test.klc). Add KEYNAME structure. Fixup some of the code in the SHIFTSTATES implementation.
...
svn path=/trunk/; revision=43899
2009-11-01 17:43:51 +00:00
Arch Blackmann
2f450d2aa0
Implement support for parsing shift states. Seems to work fine on the test.klc.
...
svn path=/trunk/; revision=43898
2009-11-01 15:46:36 +00:00
Arch Blackmann
3915dba574
Implement DoCOMPANY, DoCOPYRIGHT, DoVERSION and DoLOCALENAME... that was the easy part.
...
Happy Halloween everybody!
svn path=/trunk/; revision=43889
2009-10-31 22:18:28 +00:00
Arch Blackmann
b793fbd5d7
Implement DoKBD. The tool can now handle the KBD section of a .klc layout.
...
svn path=/trunk/; revision=43888
2009-10-31 21:54:26 +00:00
Arch Blackmann
eeeb4634bf
Implement stubs for all the different keyword stub-parsers.
...
svn path=/trunk/; revision=43886
2009-10-31 20:24:33 +00:00
Arch Blackmann
a68c7af143
Start implementing the main parser loop. The tool detects the keywords in the test.klc layout... and that's about all it does for now.
...
svn path=/trunk/; revision=43885
2009-10-31 20:03:43 +00:00
Arch Blackmann
05e5d17012
Add sample US layout keyboard layout file. Generated with MSKLC by loading the US layout in Windows 7.
...
svn path=/trunk/; revision=43884
2009-10-31 19:51:27 +00:00
Arch Blackmann
932d609e6b
Implement opening the layout file and printing out the target DLL architecture. Add missing exit(0).
...
svn path=/trunk/; revision=43882
2009-10-31 18:43:15 +00:00
Arch Blackmann
8a28e9ff5e
Begin implementing Keyboard Layout Compiler Tool, as requested by KJK::Hyperion. This is a UNIX-style (Win32-compatible) command-line tool that will take a standard keyboard layout file (in text) and generate the source, defininition, header and resource data for it. The second part of the tool will spawn off the compiler to build the keyboard DLL, or perhaps generate an .rbuild file to perform the work.
...
svn path=/trunk/; revision=43880
2009-10-31 18:13:26 +00:00