[PyObjC-svn] r2101 - in trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit: DragItemAround FieldGraph HotKeyPython PyInterpreter iClass
[email protected] Sun, 08 Mar 2009 12:14:54 -0500
Newsgroups
gmane.comp.python.pyobjc.cvs
Message-ID
<[email protected] >
Author: ronaldoussoren
Date: Sun Mar 8 12:14:54 2009
New Revision: 2101
Log:
Remove usage of PyObjCTools.NibClassBuilder from
a number of examples.
Patches by Micheal VanLandingHam.
Modified:
trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/DragItemAround/DragItemAround.py
trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/DragItemAround/setup.py
trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/FieldGraph/CGraphController.py
trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/FieldGraph/CGraphModel.py
trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/FieldGraph/CGraphView.py
trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/FieldGraph/Main.py
trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/FieldGraph/setup.py
trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/HotKeyPython/HotKey.py
trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/HotKeyPython/setup.py
trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/PyInterpreter/PyInterpreter.py
trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/PyInterpreter/setup.py
trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/iClass/datasource.py
trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/iClass/main.py
trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/iClass/setup.py
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/DragItemAround/DragItemAround.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/DragItemAround/DragItemAround.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/DragItemAround/DragItemAround.py Sun Mar 8 12:14:54 2009
@@ -1,15 +1,20 @@
-from PyObjCTools import AppHelper, NibClassBuilder
+# Updated by mvl on 2009-02-22 for PyObjC 2
+
+import objc
+from PyObjCTools import AppHelper
from AppKit import *
from Foundation import *
-NibClassBuilder.extractClasses("MainMenu")
-class DraggableItemView(NibClassBuilder.AutoBaseClass):
+class DraggableItemView(NSView):
"""."""
_locationDefault = NSMakePoint(0.0, 0.0)
_itemColorDefault = NSColor.redColor()
_backgroundColorDefault = NSColor.whiteColor()
-
+
+ def awakeFromNib(self):
+ self.dragging = None
+
def initWithFrame_(self, frame):
"""."""
result = super(DraggableItemView, self).initWithFrame_(frame)
@@ -54,13 +59,14 @@
def mouseDragged_(self, event):
"""."""
if self.dragging:
- newDragLocation = \
- self.convertPoint_fromView_(event.locationInWindow(),
- None)
- self.offsetLocationByX_andY_(newDragLocation.x - \
- self.lastDragLocation.x,
- newDragLocation.y - \
- self.lastDragLocation.y)
+ newDragLocation = self.convertPoint_fromView_(
+ event.locationInWindow(),
+ None
+ )
+ self.offsetLocationByX_andY_(
+ newDragLocation.x - self.lastDragLocation.x,
+ newDragLocation.y - self.lastDragLocation.y
+ )
self.lastDragLocation = newDragLocation
self.autoscroll_(event)
@@ -85,6 +91,7 @@
if handled is False:
super(DraggableItemView, self).keyDown_(event)
+ @objc.IBAction
def changeColor_(self, sender):
"""."""
self.setItemColor_(sender.color())
@@ -94,27 +101,32 @@
self.discardCursorRects()
self.addCursorRect_cursor_(self.calculatedItemBounds(),
NSCursor.openHandCursor())
-
+
+ @objc.IBAction
def moveUp_(self, sender):
"""."""
self.offsetLocationByX_andY_(0.0, 10.0)
self.window().invalidateCursorRectsForView_(self)
-
+
+ @objc.IBAction
def moveDown_(self, sender):
"""."""
self.offsetLocationByX_andY_(0.0, -10.0)
self.window().invalidateCursorRectsForView_(self)
-
+
+ @objc.IBAction
def moveLeft_(self, sender):
"""."""
self.offsetLocationByX_andY_(-10.0, 0.0)
self.window().invalidateCursorRectsForView_(self)
-
+
+ @objc.IBAction
def moveRight_(self, sender):
"""."""
self.offsetLocationByX_andY_(10.0, 0.0)
self.window().invalidateCursorRectsForView_(self)
-
+
+ @objc.IBAction
def setItemPropertiesToDefault_(self, sender):
"""."""
self.setLocation_(self._locationDefault)
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/DragItemAround/setup.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/DragItemAround/setup.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/DragItemAround/setup.py Sun Mar 8 12:14:54 2009
@@ -4,10 +4,10 @@
Usage:
python setup.py py2app
"""
-from distutils.core import setup
-import py2app
+from setuptools import setup
setup(
app=["DragItemAround.py"],
data_files=["MainMenu.nib"],
+ setup_requires=["py2app"],
)
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/FieldGraph/CGraphController.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/FieldGraph/CGraphController.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/FieldGraph/CGraphController.py Sun Mar 8 12:14:54 2009
@@ -7,12 +7,28 @@
from fieldMath import *
-NibClassBuilder.extractClasses("MainMenu")
-
-
#____________________________________________________________
-class CGraphController(NibClassBuilder.AutoBaseClass):
-
+class CGraphController(NSObject):
+ graphModel = IBOutlet()
+ graphView = IBOutlet()
+ fieldNormalizeCheck = IBOutlet()
+ settingDrawer = IBOutlet()
+ fieldSlider0 = IBOutlet()
+ fieldSlider1 = IBOutlet()
+ fieldSlider2 = IBOutlet()
+ phaseSlider0 = IBOutlet()
+ phaseSlider1 = IBOutlet()
+ phaseSlider2 = IBOutlet()
+ spacingSlider = IBOutlet()
+ fieldDisplay0 = IBOutlet()
+ fieldDisplay1 = IBOutlet()
+ fieldDisplay2 = IBOutlet()
+ phaseDisplay0 = IBOutlet()
+ phaseDisplay1 = IBOutlet()
+ phaseDisplay2 = IBOutlet()
+ RMSGainDisplay = IBOutlet()
+ spacingDisplay = IBOutlet()
+
#____________________________________________________________
# Update GUI display and control values
@@ -49,27 +65,33 @@
#____________________________________________________________
# Handle GUI values
-
+
+ @IBAction
def fieldDisplay0_(self, sender):
self.setNormalizedField(0, sender.floatValue())
self.drawGraph()
+ @IBAction
def fieldDisplay1_(self, sender):
self.setNormalizedField(1, sender.floatValue())
self.drawGraph()
+ @IBAction
def fieldDisplay2_(self, sender):
self.setNormalizedField(2, sender.floatValue())
self.drawGraph()
+ @IBAction
def fieldSlider0_(self, sender):
self.setNormalizedField(0, sender.floatValue())
self.drawGraph()
+ @IBAction
def fieldSlider1_(self, sender):
self.setNormalizedField(1, sender.floatValue())
self.drawGraph()
+ @IBAction
def fieldSlider2_(self, sender):
self.setNormalizedField(2, sender.floatValue())
self.drawGraph()
@@ -101,38 +123,46 @@
self.graphModel.setField(t, v)
-
+ @IBAction
def phaseDisplay0_(self, sender):
self.graphModel.setPhase(0, degToRad(sender.floatValue()))
self.drawGraph()
+ @IBAction
def phaseDisplay1_(self, sender):
self.graphModel.setPhase(1, degToRad(sender.floatValue()))
self.drawGraph()
+ @IBAction
def phaseDisplay2_(self, sender):
self.graphModel.setPhase(2, degToRad(sender.floatValue()))
self.drawGraph()
+ @IBAction
def phaseSlider0_(self, sender):
self.graphModel.setPhase(0, degToRad(sender.floatValue()))
self.drawGraph()
+ @IBAction
def phaseSlider1_(self, sender):
self.graphModel.setPhase(1, degToRad(sender.floatValue()))
self.drawGraph()
+ @IBAction
def phaseSlider2_(self, sender):
self.graphModel.setPhase(2, degToRad(sender.floatValue()))
self.drawGraph()
+ @IBAction
def spacingDisplay_(self, sender):
self.graphModel.setSpacing(degToRad(sender.floatValue()))
self.drawGraph()
+ @IBAction
def spacingSlider_(self, sender):
self.graphModel.setSpacing(degToRad(sender.floatValue()))
self.drawGraph()
+ @IBAction
def settingDrawerButton_(self, sender):
self.settingDrawer.toggle_(self)
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/FieldGraph/CGraphModel.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/FieldGraph/CGraphModel.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/FieldGraph/CGraphModel.py Sun Mar 8 12:14:54 2009
@@ -1,12 +1,11 @@
from Foundation import NSObject
-from PyObjCTools import NibClassBuilder
from objc import *
from AppKit import NSBezierPath
from fieldMath import *
#____________________________________________________________
-class CGraphModel(NibClassBuilder.AutoBaseClass):
+class CGraphModel(NSObject):
def init(self):
self.field = [1.0, 1.12, 0.567]
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/FieldGraph/CGraphView.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/FieldGraph/CGraphView.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/FieldGraph/CGraphView.py Sun Mar 8 12:14:54 2009
@@ -1,4 +1,4 @@
-from PyObjCTools import NibClassBuilder
+import objc
from Foundation import *
from AppKit import *
from math import pi, sin, cos
@@ -9,8 +9,18 @@
llc, sze = 0, 1 # Left Lower Corner, Size
#____________________________________________________________
-class CGraphView(NibClassBuilder.AutoBaseClass):
-
+class CGraphView(NSView):
+
+ azmuthSlider = objc.IBOutlet()
+ mapOffsetEWSlider = objc.IBOutlet()
+ mapOffsetNSSlider = objc.IBOutlet()
+ mapScaleSlider = objc.IBOutlet()
+ mapVisibleSlider = objc.IBOutlet()
+ azmuthDisplay = objc.IBOutlet()
+ mapOffsetEWDisplay = objc.IBOutlet()
+ mapOffsetNSDisplay = objc.IBOutlet()
+ mapScaleDisplay = objc.IBOutlet()
+
def initWithFrame_(self, frame):
super(CGraphView, self).initWithFrame_(frame)
self.setGridColor()
@@ -154,14 +164,16 @@
#____________________________________________________________
# Handle GUI values
-
+ @objc.IBAction
def mapVisibleSlider_(self, sender):
self.mapVisible = (sender.floatValue())
self.setNeedsDisplay_(1)
+ @objc.IBAction
def azmuthDisplay_(self, sender):
self.setAzmuth(sender.floatValue())
+ @objc.IBAction
def azmuthSlider_(self, sender):
self.setAzmuth(sender.floatValue())
@@ -171,26 +183,32 @@
self.azmuthDisplay.setFloatValue_(value)
self.setNeedsDisplay_(1)
+ @objc.IBAction
def mapScaleDisplay_(self, sender):
self.mapScale = sender.floatValue()
self.setMapRect()
+ @objc.IBAction
def mapScaleSlider_(self, sender):
self.mapScale = sender.floatValue()
self.setMapRect()
+ @objc.IBAction
def mapOffsetNSDisplay_(self, sender):
self.mapOffsetNS = sender.floatValue()
self.setMapRect()
+ @objc.IBAction
def mapOffsetNSSlider_(self, sender):
self.mapOffsetNS = sender.floatValue()
self.setMapRect()
+ @objc.IBAction
def mapOffsetEWDisplay_(self, sender):
self.mapOffsetEW = sender.floatValue()
self.setMapRect()
+ @objc.IBAction
def mapOffsetEWSlider_(self, sender):
self.mapOffsetEW = sender.floatValue()
self.setMapRect()
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/FieldGraph/Main.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/FieldGraph/Main.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/FieldGraph/Main.py Sun Mar 8 12:14:54 2009
@@ -1,7 +1,4 @@
-from PyObjCTools import NibClassBuilder, AppHelper
-
-NibClassBuilder.extractClasses('MainMenu.nib')
-
+from PyObjCTools import AppHelper
import CGraphController
AppHelper.runEventLoop()
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/FieldGraph/setup.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/FieldGraph/setup.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/FieldGraph/setup.py Sun Mar 8 12:14:54 2009
@@ -4,12 +4,12 @@
Usage:
python setup.py py2app
"""
-from distutils.core import setup
-import py2app
+from setuptools import setup
plist = dict(CFBundleName='FieldGraph')
setup(
app=["Main.py"],
+ setup_requires=["py2app"],
data_files=["English.lproj", 'CrossCursor.tiff', 'Map.png'],
options=dict(py2app=dict(plist=plist)),
)
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/HotKeyPython/HotKey.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/HotKeyPython/HotKey.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/HotKeyPython/HotKey.py Sun Mar 8 12:14:54 2009
@@ -13,16 +13,12 @@
sources or nibs.)
"""
-
from AppKit import *
-from PyObjCTools import NibClassBuilder, AppHelper
+from PyObjCTools import AppHelper
from Carbon.CarbonEvt import RegisterEventHotKey, GetApplicationEventTarget
from Carbon.Events import cmdKey, controlKey
import struct
-# create ObjC classes as defined in MainMenu.nib
-NibClassBuilder.extractClasses("MainMenu")
-
kEventHotKeyPressedSubtype = 6
kEventHotKeyReleasedSubtype = 9
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/HotKeyPython/setup.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/HotKeyPython/setup.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/HotKeyPython/setup.py Sun Mar 8 12:14:54 2009
@@ -4,8 +4,7 @@
Usage:
python setup.py py2app
"""
-from distutils.core import setup
-import py2app
+from setuptools import setup
plist = dict(
NSPrincipalClass='HotKeyApp',
@@ -15,5 +14,6 @@
setup(
app=["HotKey.py"],
data_files=["English.lproj"],
+ setup_requires=["py2app"],
options=dict(py2app=dict(plist=plist)),
)
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/PyInterpreter/PyInterpreter.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/PyInterpreter/PyInterpreter.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/PyInterpreter/PyInterpreter.py Sun Mar 8 12:14:54 2009
@@ -5,12 +5,11 @@
import time
from code import InteractiveConsole, softspace
from StringIO import StringIO
-from objc import YES, NO, selector
+from objc import YES, NO, selector, IBAction, IBOutlet
from Foundation import *
from AppKit import *
-from PyObjCTools import NibClassBuilder, AppHelper
+from PyObjCTools import AppHelper
-NibClassBuilder.extractClasses("PyInterpreter.nib")
try:
sys.ps1
@@ -179,12 +178,12 @@
'moveLeft:',
)
-class PyInterpreter(NibClassBuilder.AutoBaseClass):
+class PyInterpreter(NSObject):
"""
PyInterpreter is a delegate/controller for a NSTextView,
turning it into a full featured interactive Python interpreter.
"""
-
+ textView = IBOutlet()
#
# Outlets - for documentation only
#
@@ -248,7 +247,7 @@
})
while True:
event = app.nextEventMatchingMask_untilDate_inMode_dequeue_(
- NSAnyEventMask,
+ NSUIntegerMax,
NSDate.distantFuture(),
NSDefaultRunLoopMode,
True)
@@ -365,7 +364,7 @@
while app.isRunning() and now() - st < 0.01:
event = app.nextEventMatchingMask_untilDate_inMode_dequeue_(
- NSAnyEventMask,
+ NSUIntegerMax,
NSDate.dateWithTimeIntervalSinceNow_(0.01),
NSDefaultRunLoopMode,
True)
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/PyInterpreter/setup.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/PyInterpreter/setup.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/PyInterpreter/setup.py Sun Mar 8 12:14:54 2009
@@ -4,12 +4,12 @@
Usage:
python setup.py py2app
"""
-from distutils.core import setup
-import py2app
+from setuptools import setup
plist = dict(NSMainNibFile='PyInterpreter')
setup(
app=["PyInterpreter.py"],
data_files=["PyInterpreter.nib"],
+ setup_requires=["py2app"],
options=dict(py2app=dict(plist=plist)),
)
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/iClass/datasource.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/iClass/datasource.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/iClass/datasource.py Sun Mar 8 12:14:54 2009
@@ -1,6 +1,5 @@
from Foundation import NSObject, NSBundle
-from PyObjCTools import NibClassBuilder
-from objc import selector, getClassList, objc_object, IBOutlet
+from objc import selector, getClassList, objc_object, IBOutlet, IBAction
import objc
import AppKit
@@ -72,9 +71,16 @@
framework = framework[:-len('.framework')]
return framework
-class ClassesDataSource (NibClassBuilder.AutoBaseClass):
+class ClassesDataSource (NSObject):
__slots__ = ('_classList', '_classTree', '_methodInfo', '_classInfo')
+ classLabel = IBOutlet()
+ classTable = IBOutlet()
+ frameworkLabel = IBOutlet()
+ methodTable = IBOutlet()
+ searchBox = IBOutlet()
+ window = IBOutlet()
+
def clearClassInfo(self):
self._methodInfo = []
self.methodTable.reloadData()
@@ -119,7 +125,6 @@
rowNr = self.classTable.rowForItem_(item)
self.classTable.expandItem_(item)
-
def selectClass(self, cls):
self.showClass(cls)
@@ -129,7 +134,7 @@
self.classTable.scrollRowToVisible_(rowNr)
self.classTable.selectRow_byExtendingSelection_(rowNr, False)
-
+ @IBAction
def searchClass_(self, event):
val = self.searchBox.stringValue()
if not val:
@@ -148,6 +153,9 @@
elif len(cls.__name__) > len(found.__name__):
found = cls
+ # mvl 2009-03-02: fix case where no match is found caused exception:
+ if (found is None): return
+
self.setClassInfo(found)
self.selectClass(found)
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/iClass/main.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/iClass/main.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/iClass/main.py Sun Mar 8 12:14:54 2009
@@ -2,13 +2,11 @@
"""
import time
from AppKit import NSApplicationMain
-from PyObjCTools import NibClassBuilder, AppHelper
+from PyObjCTools import AppHelper
from Foundation import NSBundle
import sys
import os
-NibClassBuilder.extractClasses('MainMenu.nib')
-
import datasource
AppHelper.runEventLoop()
Modified: trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/iClass/setup.py
==============================================================================
--- trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/iClass/setup.py (original)
+++ trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit/iClass/setup.py Sun Mar 8 12:14:54 2009
@@ -4,12 +4,12 @@
Usage:
python setup.py py2app
"""
-from distutils.core import setup
-import py2app
+from setuptools import setup
setup(
app=["main.py"],
data_files=["English.lproj"],
+ setup_requires=["py2app"],
options=dict(py2app=dict(plist=dict(
CFBundleName='iClass',
))),
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H