Bug 38803 - Import keybindings for macros
Summary: Import keybindings for macros
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: BASIC (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Not Assigned
QA Contact:
URL:
Whiteboard: DifficultyInteresting SkillCpp
Keywords:
Depends on:
Blocks:
 
Reported: 2011-06-30 06:13 UTC by Björn Michaelsen
Modified: 2015-01-15 15:48 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Björn Michaelsen 2011-06-30 06:13:09 UTC
Background: VBA macro can have a defined key binding that launches the macro. We don't import that key-binding at the moment. Well actually import all the information be we unfortunately discard it. For example if we had a Macro named 'launchByKey' in and Excel spreadsheet that was bound to the key cntrl-p then this is what you would see in the VBA source code

      Attribute VB_Name = "Module1"
      Sub launchByKey()
         Attribute launchByKey.VB_Description = "cntrl-p launches the macro"
         Attribute launchByKey.VB_ProcData.VB_Invoke_Func = "p\n14"
         MsgBox "launched"
      End Sub

As you can see the special attribute line 'Attribute lauchByKey.VB_ProcData.VB_Invoke_Func = "p\n14"' gives all the necessary info we need ( ok, we also need to recognise which procedure that attribute applies to ). Note: Currently we do at least extract information associated with one type of 'Attribute' statement see

1) legacy filter

  filter/source/msfilter/svxmsbas.cxx ( SvxImportMSVBasic::extractAttribute )

2) oox filter

  source/ole/vbamodule.cxx ( VbaModule::extractOleOverrideFromAttr )

In LibreOffice it is possible to provide a document only key configuration ( see the Tools|Customize|Keyboard dialog ) where a key|macro binding can be created. Finding the source code for that dialog will no doubt show how to create such a binding.
Comment 1 Florian Reisinger 2012-05-18 08:55:56 UTC
Deteted "Easyhack" from summary
Comment 2 Björn Michaelsen 2013-10-04 18:46:31 UTC
adding LibreOffice developer list as CC to unresolved EasyHacks for better visibility.

see e.g. http://nabble.documentfoundation.org/minutes-of-ESC-call-td4076214.html for details
Comment 3 Björn Michaelsen 2015-01-15 15:48:58 UTC
Removing EasyHack for now as its been around since 2011-06 with little interest from newcomers so far.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.