lok wrote:
> On Fri, 29 Dec 2006 19:52:31 +0000
> Aleksej Struk <[EMAIL PROTECTED]> wrote:
>
>   
>> Hi Nick,
>>
>> The implementation of the key binding in mixer module is similar to
>> the implementation in language module. iirc, it was taken exactly from
>> that module.
>>
>> The idea is, that module has to define the following things:
>>
>> 1) the action, which will be executed on key press, For example
>> "mixer_mute"
>> 2) the function, which is associated with the action.
>> 3) The 'human readable' name of the action. For example "Mute The
>> Mixer". This name will appear in keybinding dialog.
>> 4) The keybinding that uses the "mixer_mute" action. Actually this is 
>> optional. And has to be
>> done if you want to have default binding.
>> 5) Finally, you have to do reverse actions on module unload.
>>
>> 1) and 2) are done by those several lines of code:
>>
>> E_Actoin *a;
>> a = e_action_add("mixer_mute");
>> if (a) a->func.go = _some_binding_callback_funcition
>>
>> 3) is done basically by calling e_action_predef_name_set function (see
>> e_action.h)
>>
>> 4) You have to define a E_Config_Binding_Key *eb variable and fill it
>> in with the correct values. After doing that, you have to: (i) insert
>> eb into e_config->key_bindings, and (ii) call to e_bindings_key_add to
>> make the binding active. Note, that you have to enclose (i) and (ii)
>> between e_manager_keys_ungrab() and e_managers_keys_grab() after.
>>
>>
>> For further information look into language madule e_mod_keybindigs.c
>> file. 
>>
>> Feel free to contact me on IRC if you need more detailed explanation.
>>
>> sndev
>>
>>
>>
>> On Fri, Dec 29, 2006 at 04:12:15PM +0100, Nikolas Arend wrote:
>>     
>>> Hi,
>>>
>>> the key bindings for "Decrease/Increase Volume" and "Mute mixer" don't 
>>> seem to work for me (SuSE 10.1). Could somebody give me a short 
>>> explanation of how they are implemented? I guess they are supposed to 
>>> work and it's a problem on my side?
>>>
>>>
>>> Thanks a lot,  Nick.
>>>
>>>       
>
>   

Hi,

thanks to all for your elaborate explanations!

> Hi,
> as sndev said, the keybinding code in mixer was taken from the language 
> module.
> The bindings in the mixer modules need at least one gadcon instance of the 
> mixer
> in order to work. The mixer initialize is configuration only if an instance 
> is created.
> Once the configuration is filled with the right mixer then the keybinding can 
> works.
> So you need to put the mixer module in a shelf to have keybindings working.
>
>   

Ah, that of course explains a lot. I don't have the mixer module 
running, in fact I defined the key bindings for volume increase/decrease 
and muting in order to _NOT_ have the need of running the mixer module 
(or any other mixer gui) ;-) Now that I added it to a shelf, it all 
works. But I'd rather like it if one wouldn't have to actually put the 
module into a shelf.

> I could have move a part of the configuration code in order to make it works 
> right 
> after the module is loaded. But at that time I wasn't really seeing the point.
>
>   

As I said above, I'd consider this a good thing. A hint somewhere that 
the module must be enabled/loaded to have the key bindings working maybe 
couldn't hurt either, IMHO.


Thanks again and best regards,   Nick.


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to