diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-08-16 09:06:37 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-08-16 09:06:37 +0000 |
commit | 39d98386f72c65826e162e3e8fd36752ec469252 (patch) | |
tree | 5cec746207c4c892d064beafca1de94568a3aeb9 /examples/example_dcopext.py | |
download | pytde-39d98386f72c65826e162e3e8fd36752ec469252.tar.gz pytde-39d98386f72c65826e162e3e8fd36752ec469252.zip |
Move python-kde3 to the more correct python-trinity
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/libraries/python-trinity@1247483 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'examples/example_dcopext.py')
-rw-r--r-- | examples/example_dcopext.py | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/examples/example_dcopext.py b/examples/example_dcopext.py new file mode 100644 index 0000000..8f3801a --- /dev/null +++ b/examples/example_dcopext.py @@ -0,0 +1,135 @@ +""" +Copyright 2003 Jim Bublitz + +Terms and Conditions + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Except as contained in this notice, the name of the copyright holder shall +not be used in advertising or otherwise to promote the sale, use or other +dealings in this Software without prior written authorization from the +copyright holder. +""" + +import sys, time +import dcop +import dcopext +from kdecore import KApplication, KCmdLineArgs, KAboutData +from qt import QString, QCString + + + +def getAnyApplication (client, appName): + for qcstring_app in client.registeredApplications (): + app = str (qcstring_app) + if app == appName or app.startswith (appName + "-"): + print app + print + objList, ok = client.remoteObjects (app) + for obj in objList: + print " ", obj + funcs, ok = client.remoteFunctions (app, obj) + for f in funcs: + print " ", " ", f + break + + +#-------------------- main ------------------------------------------------ + +description = "A basic application template" +version = "1.0" +aboutData = KAboutData ("testdcopext", "testdcopext",\ + version, description, KAboutData.License_GPL,\ + "(C) 2003 whoever the author is") + +aboutData.addAuthor ("author1", "whatever they did", "email@somedomain") +aboutData.addAuthor ("author2", "they did something else", "another@email.address") + +KCmdLineArgs.init (sys.argv, aboutData) + +KCmdLineArgs.addCmdLineOptions ([("+files", "File to open")]) + +app = KApplication () +dcop = app.dcopClient () + +#getAnyApplication (dcop, "konqueror") +print "--------------------------" +print "The DCOPObjects for kicker:" +d = dcopext.DCOPApp ("kicker", dcop) +objs = d.objects +if objs: + for obj in objs: + print obj +o = d.object ("Panel") +methods = o.methods +for method in methods: + print method +m = o.method ("addNonKDEAppButton") + +print "--------------------------" +print "The method" +print o.method +print "--------------------------" +print "Find the method:" +print m.findMethod () +print "--------------------------" +print "The return type:" +print m.rtype +print "--------------------------" +print "The argument types:" +print m.argtypes +print "--------------------------" +print "The argument names:" +print m.argnames +print "--------------------------" + +print +print "get kicker panel size via DCOP" +res = d.Panel.panelSize() +print res, d.Panel.panelSize.valid +print "--------------------------" + +print "Call a method that doesn't exist" +res = d.Panel.junk () +print res +print "--------------------------" + +print "See if a non-existent method is valid" +print d.Panel.junk.valid +print +print "--------------------------" + +print +print +print "Start a kwrite instance" +errcode, error, dcopService, pid = KApplication.startServiceByDesktopName ("kwrite", "") +dcopService = "kwrite-" + str (pid) +print "errcode: %i error: %s dcopService: %s pid: %i" % (errcode, error, dcopService, pid) +print "--------------------------" +time.sleep (2) + +o1 = dcopext.DCOPObj (dcopService, dcop, "EditInterface#1") +print "Check if insertLine is a valid function" +print "valid", o1.insertLine.valid +print "--------------------------" +print "insertLine's arg types and names" +print o1.insertLine.argtypes, o1.insertLine.argnames +print "--------------------------" +print "Insert a line into the kwrite instance we launched" +print "call returns:", o1.insertLine (0, "Now is the time for all good men to come to the aid of their party") |