MaxIDE tweaks : Keyboard shortcut discussion

BlitzMax Forums/BlitzMax Module Tweaks/MaxIDE tweaks : Keyboard shortcut discussion

Mark Tiffany(Posted 2005) [#1]
Some changes have been proposed by Perturbatio for keyboard shortcut changes. This thread is intended to validate what the changes should be, and how they should apply on each platform (win/mac/linux). Please also feel free to raise any other shortcut key changes that you feel need to be made.

Close as Ctrl+W on Win32 only - Ctrl-F4 for others. I think we should try to keep shortcuts the same across platform, unless they're a standard on that platform. So, what is the standard for closing a tab on windows? Linux? Macos? The only examples I've seen on Windows are Ctrl+F4, which ties up with Alt+F4 to close a window. Thoughts on what it should be?

Changing tabs as Ctrl+Tab (not Ctrl+Arrow) on win32 only. I like this one myself, but would rather be consistent cross-platform. What's the standard on each?

Replace as Ctrl-R (not Ctrl-H), again on Windows only. I prefer Ctrl-R, and think it should be cross-platform, but is there a standard for mac / linux?

Build & Run - why different cross-platform? This should consistent. I actually prefer F5 alone for Run, with Ctrl-F5 being Build & Run, and maybe keep Ctrl+B as Build only, and Shift+Ctrl+B for building all modules. Again, thoughts?

Control Up / Down in the textarea to scroll without the cursor moving. Changes are currently win32 only, and rely on DLL calls. I think this functionality needs to be cross-platform, and really should be added to the TextArea BMX code, NOT to the IDE code, and needs to be cross-platform.


Perturbatio(Posted 2005) [#2]
CTRL+W is quite common for closing tabs on windows as well (Homesite for instance) or more specifically, for closing files which is really what it is doing, I really don't like CTRL+F4 as it's not quite as comfortable to use. Besides, the function keys could be used for much better things.

CTRL+TAB/SHIFT+TAB is standard on windows since CTRL+LEFT/RIGHT is the standard for word jumping in a richedit.

I'd have done my changes more cross platform if I had a mac and knew what I was doing on linux.


Mark Tiffany(Posted 2005) [#3]
I'd have done my changes more cross platform if I had a mac and knew what I was doing on linux.

Same here! I really wanted to squeeze yours in, but am wary of anything that doesn't work across all platforms, and / or isn't standard. I want to be able to code in bmx without having to think what platform I'm on...

Hopefully we'll get some linux / mac input though...


Perturbatio(Posted 2005) [#4]
How about allowing the shortcut keys to be modifiable at runtime? (maybe simply through an ini file to begin with)

That way people can do what they want.


Robert Cummings(Posted 2005) [#5]
Far better idea :)


Mark Tiffany(Posted 2005) [#6]
ah yes, now that would be better. Whilst we're hacking these things into the menus, etc, it might be an idea to add localisation support, i.e. load menu names, etc from a text file too.


Perturbatio(Posted 2005) [#7]
Ideally, every control's text would be loaded from a language file, not just the menus. However, the menus would be a good place to start (and test this).


skidracer(Posted 2005) [#8]
I would prefer to see translation done internally to maxgui with a translation list being added before startup, and a call to translate() being done from within maxgui for all relevant label$'s etc. Will investigate...

I like the idea of selecting Windows Hotkeys when using the Mac although it's not that difficult to get used to the command key a lot of the time I find myself with contempt for everything Apple and am thinking a remote access port for MaxIDE would be best solution to distancing myself from their technology.

Linux has wierdities due to the fact I haven't quite got keyboard hooks working b4 FLTK intercepts some keys (hence no ctrl arrow tabbing). Linux dekstops themselves have a habit of stealing the Tab key with various modifiers, it would be interesting to see a table of such data infact.


Mark Tiffany(Posted 2005) [#9]
I would prefer to see translation done internally to maxgui with a translation...

Ooh, nice! But I suspect that while the maxgui module can translate common, core commands (new, open, close save, quit, edit menu, etc.), we'll still need custom translations too (e.g. Build & Run).

it would be interesting to see a table of such data infact

I'm thinking that there are quite a few cross-platform GUI guidelines that we'll stumble across, and need to define. We should start a new page in the BMX help for this (once we've got some clear ideas!).