blob: 59a0b5686b7b072fc009cb0a2c58cbf767be44a1 [file] [log] [blame]
import uno
import unohelper
from com.sun.star.awt import XActionListener
class MyActionListener( unohelper.Base, XActionListener ):
def __init__(self, labelControl, prefix ):
self.nCount = 0
self.labelControl = labelControl
self.prefix = prefix
def actionPerformed(self, actionEvent):
# increase click counter
self.nCount = self.nCount + 1;
self.labelControl.setText( self.prefix + str( self.nCount ) )
# 'translated' from the developer's guide chapter 11.6
def createDialog():
"""Opens a dialog with a push button and a label, clicking the button increases the label counter."""
try:
ctx = uno.getComponentContext()
smgr = ctx.ServiceManager
# create the dialog model and set the properties
dialogModel = smgr.createInstanceWithContext(
"com.sun.star.awt.UnoControlDialogModel", ctx)
dialogModel.PositionX = 100
dialogModel.PositionY = 100
dialogModel.Width = 150
dialogModel.Height = 100
dialogModel.Title = "Runtime Dialog Demo"
# create the button model and set the properties
buttonModel = dialogModel.createInstance(
"com.sun.star.awt.UnoControlButtonModel" )
buttonModel.PositionX = 50
buttonModel.PositionY = 30
buttonModel.Width = 50;
buttonModel.Height = 14;
buttonModel.Name = "myButtonName";
buttonModel.TabIndex = 0;
buttonModel.Label = "Click Me";
# create the label model and set the properties
labelModel = dialogModel.createInstance(
"com.sun.star.awt.UnoControlFixedTextModel" );
labelModel.PositionX = 40
labelModel.PositionY = 60
labelModel.Width = 100
labelModel.Height = 14
labelModel.Name = "myLabelName"
labelModel.TabIndex = 1
labelModel.Label = "Clicks "
# insert the control models into the dialog model
dialogModel.insertByName( "myButtonName", buttonModel);
dialogModel.insertByName( "myLabelName", labelModel);
# create the dialog control and set the model
controlContainer = smgr.createInstanceWithContext(
"com.sun.star.awt.UnoControlDialog", ctx);
controlContainer.setModel(dialogModel);
# add the action listener
controlContainer.getControl("myButtonName").addActionListener(
MyActionListener( controlContainer.getControl( "myLabelName" ), labelModel.Label ))
# create a peer
toolkit = smgr.createInstanceWithContext(
"com.sun.star.awt.ExtToolkit", ctx);
controlContainer.setVisible(False);
controlContainer.createPeer(toolkit, None);
# execute it
controlContainer.execute()
# dispose the dialog
controlContainer.dispose()
except Exception,e:
print str(e)
g_exportedScripts = createDialog,