Date: prev next · Thread: first prev next last
2014 Archives by date, by thread · List index


Hello everybody

We are moving from OpenOffice to LibreOffice

We have some macros that uses popup menus that work perfectly in
OpenOffice but they don't work in LibreOffice.

We developed our code starting from examples (thanks Hania and Ermione)
that we found over the internet and that are attached.

Any suggestions to make the macro run fine?
Thanks to everybody 

 

REM  *****  BASIC  *****

 

Dim oDialog As Object

Dim oPopupMenu As Object

 

Sub Main

  sLibName = "Standard"

  sDialogName = "Dialog1"

  DialogLibraries.LoadLibrary(sLibName)

  ' create new dialog

  oDialog = CreateUnoDialog( _

    DialogLibraries.getByName(sLibName).getByName(sDialogName))

  oDialog.execute()

End Sub

 

Sub PopupButton

  ' get the size of the button

  oButton = oDialog.getControl("CommandButton1")

  aPosSize = oButton.PosSize

  ' set the position of the popup menu

  Dim aRect As New com.sun.star.awt.Rectangle

  With aRect

    .X = aPosSize.X

    .Y = aPosSize.Y + aPosSize.Height

    .Width = 0'100

    .Height = 0'100

  End With

  ' menu listener

  oMenuListener = CreateUnoListener( _

    "PopupMenuListener_", "com.sun.star.awt.XMenuListener")

  ' new popupmenu

  oPopupMenu = CreateUnoService("com.sun.star.awt.PopupMenu")

  ' set listener and insert menu items

  With oPopupMenu

    .addMenuListener(oMenuListener)

    .insertItem(1,"Menu 1",0,0) 'id, label, type, position

    .insertItem(2,"Menu 2",0,2)

    .insertSeparator(1)

    .setCommand(1,"item1")

    .setCommand(2,"item2")

  End With

  ' show popup menu

  oPopupMenu.execute(oDialog.Peer,aRect, _

    com.sun.star.awt.PopupMenuDirection.EXECUTE_DEFAULT)

  oPopupMenu.removeMenuListener(oMenuListener)

End Sub

 

Sub PopupMenuListener_select ( oEv )

  sCmd = oEv.Source.getCommand(oEv.MenuId)

  msgbox sCmd

End Sub

Sub PopupMenuListener_highlight ( oEv )

End Sub

Sub PopupMenuListener_activate ( oEv )

End Sub

Sub PopupMenuListener_deactivate ( oEv )

End Sub

Sub PopupMenuListener_disposing( oEv )

End Sub

 

 

 

 

 

 

________________________________

Ferrario Luigi s.r.l.
Ing. Paolo Ferrario
Viale Edison 629 
20099 Sesto S. Giovanni
Tel: +39.02.22.47.48.49
Fax: +39.02.24.40.418
e-mail: paolo.ferrario@ferrarioimpianti.it
<mailto:paolo.ferrario@ferrarioimpianti.it>  

----------------------------------------------------------------
The information transmitted is intended only for the person or entity to
which
it is addressed and may contain confidential and/or privileged material.
Any
review, retransmission, dissemination or other use of, or taking of any
action
in reliance upon, this information by persons or entities other than the
intended recipient is prohibited. If you received this in error, please
contact the sender and delete the material from any computer.

 


-- 
To unsubscribe e-mail to: users+unsubscribe@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.