[Bf-committers] Configurable keybindings

Ton Roosendaal bf-committers@blender.org
Wed, 26 May 2004 14:43:43 +0200


Hi,


> The current definitions for the above these keys is in BKE_global.h
>
> #define R_SHIFTKEY	1
> #define L_SHIFTKEY	2
> #define LR_SHIFTKEY 3
> #define R_ALTKEY	4
> #define L_ALTKEY	8
> #define LR_ALTKEY	12
> #define R_CTRLKEY	16
> #define L_CTRLKEY	32
> #define LR_CTRLKEY  48

A long long (long) time ago we thought it could be useful to have =20
different left and right shift/alt/control hotkeys. This appeared not =20=

to work, for example:

- for left handed people
- some keyboards don't have all keys
- some OS's (or keyboards, I don't know) have no different events for it

So the distincion can be removed.

> Currently if we can have two modifiers active we do something like
> G.qual =3D=3D (LR_CTRLKEY | LR_ALTKEY)
>
> which is not switch case friendly, so perhaps have something like
>
> #define LR_CTRLKEY_AND_LR_ALTKEY
> #define LR_SHIFTKEY_AND_LR_ALTKEY
> #define LR_SHIFTKEY_AND_LR_CTRLKEY
> #define LR_SHIFTKEY_AND_LR_CTRLKEY_AND_LR_ALTKEY
> #define LR_CTRLKEY_OR_LR_ALTKEY
> #define LR_CTRLKEY_AND_OR_LR_ALTKEY
> etc. (about twenty of them i think?)

The reason for current bitmasks is to enable a detection what modifier =20=

keys are pressed. These are not events, since the events are actually =20=

other keys.
Also when you want configurable keys, the modifier keymask can be just =20=

set separate. Would be even better to devise a small event structure =20
for it, holding all information. Such a struct is there already, but =20
not nicely integrated with the queues yet.

Names also can be simplified into ALTKEY|CTRLKEY etc...

Lastly; case switches work only with constants... user definable keys =20=

therefore have to be coded differently.

-Ton-


> perhaps start at 5000 above whatever the highest event value isis and =20=

> increment by 1000.
>
> Then, the key combination definitions are done like
>
> #define MAKE_PARENT (LR_CTRLKEY_AND_OR_LR_SHIFTKEY + PKEY)
>
> and the switch case would be
>
> case MAKE_PARENT: make_parent(); Handled =3D TRUE; break;
>
> comments?
>
> I'm making changes and seperating out drawipo.c , the toets.c, space.c =
=20
> and other files that have lots of hardcoded values. and mix key =20
> combo/event evaluation with function definitions.
>
> Tom M.
> LetterRip
>
> _________________________________________________________________
> MSN Toolbar provides one-click access to Hotmail from any Web page =96 =
=20
> FREE download! =20
> http://toolbar.msn.click-url.com/go/onm00200413ave/direct/01/
>
> _______________________________________________
> Bf-committers mailing list
> Bf-committers@blender.org
> http://www.blender.org/mailman/listinfo/bf-committers
>
>
------------------------------------------------------------------------=20=

--
Ton Roosendaal  Blender Foundation ton@blender.org =20
http://www.blender.org