[PyObjC-svn] r2101 - in trunk/pyobjc/pyobjc-framework-Cocoa/Examples/AppKit: DragItemAround FieldGraph HotKeyPython PyInterpreter iClass

[email protected]
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.