|
Post by ManfredU on Dec 3, 2020 8:06:14 GMT -5
Hi,
I try to map the Ctrl-> key to the line command {>}
The keymap dialog shows the > key above . and the < above the comma. Therefore I could map Shft-Ctrl-, and Shft-Ctrl-. to the line commands {>} and {<}. But this is hard to remember and not what I want...
On my German keyboard Shft-, is equal to a semicolon and Shft-. equal to a colon, whereas I've got a separate key with <, Shft-< = > and AltGr-< = |.
So how can I map Shft-Ctrl-< which is equal to Ctrl-> on my keyboard to {>}?
Thanks, Manfred
|
|
|
Post by George on Dec 3, 2020 10:25:47 GMT -5
Manfred: Robert
Maybe I'm just confused. The keyboard logic will just treat any extra, unknown keys as (Passthru) - i.e. they will become whatever Windows treats them as.
Or is it that you now want to MAP one of these unknown keys using KEYMAP. If so, my answer will be a) right now you can't and b) I will not start fiddling with the KBD logic to start adding extra keys defined in Non-US keyboard layouts.
Sorry, The internal design is simply not easily expandable, it's not just a matter of changing table dimensions from 107 to 108, it's one of those changes that just goes on and on and on. (the KBD tables, the Icon collection, the KEYMAP Dialog, the KEYMAP Callback, the Keyboard and Mouse Callback, the CFG handling, the new CFGMAIN tool, Migration code for the CFG, etc.) It would be a major piece of work.
George
|
|
|
Post by George on Dec 3, 2020 12:29:01 GMT -5
Robert: The problem is mainly trying to figure out how it all works as it is. Have a look at this KB Table Code.bas (19.57 KB) This is just to load the KB tables. The code to then display all this in the KEYMAP GUI and it's Callback routine is much larger, probably 700-800 lines. Throw in the KB Hook and its bits and pieces, and finding the right point to poke in an exception without mucking something up is pretty tough. Add in that it can't be tested as I have no keyboard. It's a non-starter. George
|
|
|
Post by George on Dec 3, 2020 16:07:02 GMT -5
Robert: Manfred:
Let me be honest here. I fully sympathize with users of non-US keyboards, and I would love to be able to do what's necessary to accommodate the various keyboards.
But I'm pushing 80, and frankly, if I'm going to work on something, it has to provide me with some enjoyment. I've watched the effort Robert has put into QKeyboard, I've looked at what it would take to give SPFLite full Unicode support, and all these things leave me cold. From my viewpoint, it's all soul-destroying, grungy type coding and doesn't intrigue me at all. It's all table manipulation, translations etc.
So I'm sorry if this seems curt and dismissive. But SPFLite is now all Open Source, it really is time for somebody to pick up the torch and carry on if changes like this are wanted. I know PowerBasic is an almost unknown language and used by only a very few programmers, but that's what we're stuck with. Porting to some other language is a major effort, I know, I've investigated what it would take.
Manfred - not what you'd want to hear, I'm sorry.
George
|
|
|
Post by George on Dec 4, 2020 11:22:35 GMT -5
Yes, I think for Manfred, just choosing some other key to map is the simplest way. It's similar to the problem that laptop users have when they have an 'abbreviated' keyboard and not the full 104 key style. Compromise is needed. I know that might mean some odd key combinations, but there are over 800 key combinations available, surely there are some acceptable ones that would serve the purpose.
George
|
|
|
Post by George on Dec 4, 2020 12:19:32 GMT -5
You're right, the CFG code makes adding new keywords simple, at startup, when fetching all this stuff each GET request has as it's last operand, what the default is.
The GET function returns whatever is there, if it exists. If it doesn't yet exist, it is created with the default and the default is returned. The calling routine never knows whether it existed or not, only that it received a value.
Removing old obsolete ones? Well, that's the job of the new CFGMaint -REPAIR function. Prior to CFGMaint, they just laid around in the CFG file, dormant and unused.
Now, can the KBD logic be altered to handle alternate keyboards. Yes. Right now the master keyboard table is embedded inside the EXE. It would have to be moved back outside as a normal configuration file. Then all the rigid 107 item code would need changing to accept whatever number is in the external file. Each file could then be customized for individual keyboards. (The KEYMAP GUI layout key positions are already in the master key table) A new table would have to have all the x/y locations altered to 'draw' the keyboard correctly. And of course, some new key Icons created.
All possible, just yucky.
|
|
|
Post by Stefan on Dec 5, 2020 8:29:06 GMT -5
Hallo Manfred, Wie gehts?
As a fellow German, I sympathise with your plight. I have a major advantage in that I live in the UK and can use a UK keyboard. It is still QWERTY but has some differences to the standard US version.
I know you asked about mapping the physical key which performs the '<' and '>' function on a QUERTZ keyboard, but if that's not possible, perhaps one of these alternatives is easy remember
For a single key solution, PF1 is easy to hit including SHFT & CTRL with your left hand. It has no default SHIFT, CTRL or ALT setting. You'd press the same SHFT/CTRL combination just with a different base-key. If you want to be fancy, map the right mouse button! Standard, SHFT, CTRL, ALT, etc.
If you prefer two keys, PF10 and PF11 already "scroll" left & right. SHIFT, CTRL or ALT them to insert {<} and {>} line commands On a full keyboard with a numeric pad, (UK version) the 4 and 6 keys have '<-' and '->' arrows already printed on them.
|
|
|
Post by ManfredU on Dec 5, 2020 12:54:43 GMT -5
Hi,
thanks to all for all the detailed explanations. I do understand now that the keymap dialog is made to work with an us keyboard and it's just not possible what I tried to do. No problem, George, I don't want to cause any work, I don't expect you to change anything.
Using PF10 and PF11 instead as Stefan has suggested is a good idea, thanks.
|
|
|
Post by George on Dec 5, 2020 13:07:08 GMT -5
Manfred: Good, less work is always better. George
|
|
|
Post by ManfredU on Dec 5, 2020 13:16:26 GMT -5
Hallo Manfred, Wie gehts? As a fellow German, I sympathise with your plight. I have a major advantage in that I live in the UK and can use a UK keyboard. It is still QWERTY but has some differences to the standard US version. I live at Basel / Switzerland and regularly switch between de-ch and de-de keyboards. They are much more different than one would expect. Many special characters like $, @, !, %, §, +, \, #, ' are at different positons. For uppercase umlauts you have to use a special key combination. To make things even more complicated you always have to adjust the Windows keyboard layout to the physical keyboard. Get's interesting e.g. when the build-in keyboard is swiss and the external keyboard german. Sometimes I'm to lazy to switch and use the keyboard with the other layout. You have to be careful with passwords though... :-)
|
|
|
Post by Stefan on Dec 5, 2020 17:10:30 GMT -5
I apologise. I've been in the UK since 1972 and completely forgot that a German sounding name might not necessarily belong to a German person. Sounds like the British have well and true assimilated me! Sorry.
Your keyboard setup sounds like a nightmare! But maybe that's because you're in Basel - right on the corner of Switzerland, France and Germany.
Glad you found a solution that works for you.
My 'goto' key for line commands is PF2. It's mostly set to {TS} and {TF} but changes on demand.
And since DIFF came along and marks lines as USER lines, I've re-mapped PF9 to LOC U NEXT, LOC U PREV, {TU} and REVERT ALL. Speeds up report navigation.
|
|
|
Post by ManfredU on Dec 5, 2020 20:08:43 GMT -5
Stefan, don't worry, I'm a German who happens to live at Basel, moved there some year ago. That's why I've got a mixture of swiss-german and german-german keyboards and a company notebook with a swiss-german and a private notebook with german-german keyboard... ;-)
Robert, you are right, the Eszett is not used at all in Switzerland.
I was suprised as well when I came here how different the swiss german layout is. But that's because Switzerland has got four official languages (German, French, Italian and Rhaeto-Romanic). And the German dialect is quite different from what I was used to. In the beginning I didn't understand a word. But the written language is standard German / High German, so the polite swiss people switch to standard German (The first foreign language, they learn at school), when they notice that you are from Germany. Of course still with a swiss accent, so that many Germans believe they understand Schwyzerdütsch... ;-)
The keyboard layout is more or less the same for the whole of Switzerland. There is a swiss-french layout which is also used in the Italian speaking area. But there are only three keys different from the swiss-german layout (ö -> é, ä -> à, ü -> è). On the de-ch keyboard you use the shift key for those, therefore uppercase umlauts are not directly available... So Swiss people can work everywhere in Switzerland with a familiar keyboard layout and type the names of their fellow countrymen containing special characters... And the federal council of Switzerland is also multinational, so it is easier for them to work together with a common work equipment.
|
|
|
Post by ManfredU on Dec 7, 2020 4:41:08 GMT -5
Manfred, when I did some research, it now makes sense why the Swiss keyboard is different from German (like German T2). Switzerland being situated where it is, needs to accommodate French, German and Italian. Since it's not all that far from Spain, I am surprised that it doesn't fully support Spanish. You can do almost all of it except for the inverted ¿ and ¡ symbols. The T2 keyboard can do everything needed in Switzerland, but perhaps the Swiss see the T2 as too complicated and don't like it as much. Hi Robert, since french is an official language in Switzerland and 1/4 of the population speaks french as main language, it requires a keyboard which allows to type both german and french characters effortless. In Germany T1 is used. I never seen a T2 keyboard.
|
|