New class syntax.

This commit is contained in:
Guido van Rossum 1991-12-26 13:06:29 +00:00
parent decc4b99e1
commit ce08448165
29 changed files with 81 additions and 81 deletions

View File

@ -10,7 +10,7 @@
# For historical reasons, button creation methods are called # For historical reasons, button creation methods are called
# define() while split creation methods are called create(). # define() while split creation methods are called create().
class AbstractParent(): class AbstractParent:
# #
# Upcalls from child to parent # Upcalls from child to parent
# #
@ -33,7 +33,7 @@ class AbstractParent():
def scroll(self, (area, (dh, dv))): unimpl() def scroll(self, (area, (dh, dv))): unimpl()
def settimer(self, itimer): unimpl() def settimer(self, itimer): unimpl()
class AbstractChild(): class AbstractChild:
# #
# Downcalls from parent to child # Downcalls from parent to child
# #
@ -59,5 +59,5 @@ class AbstractChild():
# Certain upcalls and downcalls can be handled transparently, but # Certain upcalls and downcalls can be handled transparently, but
# for others (e.g., all geometry related calls) this is not possible. # for others (e.g., all geometry related calls) this is not possible.
class AbstractSplit() = AbstractChild(), AbstractParent(): class AbstractSplit(AbstractChild, AbstractParent):
pass pass

View File

@ -1,6 +1,6 @@
from TransParent import TransParent from TransParent import TransParent
class BoxParent() = TransParent(): class BoxParent(TransParent):
# #
def create(self, (parent, (dh, dv))): def create(self, (parent, (dh, dv))):
self = TransParent.create(self, parent) self = TransParent.create(self, parent)

View File

@ -22,7 +22,7 @@ _MASK = 3
# disabled --> crossed out # disabled --> crossed out
# hilited --> inverted # hilited --> inverted
# #
class LabelAppearance(): class LabelAppearance:
# #
# Initialization # Initialization
# #
@ -143,7 +143,7 @@ class LabelAppearance():
# A Strut is a label with no width of its own. # A Strut is a label with no width of its own.
class StrutAppearance() = LabelAppearance(): class StrutAppearance(LabelAppearance):
# #
def getminsize(self, (m, (width, height))): def getminsize(self, (m, (width, height))):
height = max(height, m.lineheight() + 6) height = max(height, m.lineheight() + 6)
@ -156,7 +156,7 @@ class StrutAppearance() = LabelAppearance():
# disabled --> crossed out # disabled --> crossed out
# hilited --> inverted # hilited --> inverted
# #
class ButtonAppearance() = LabelAppearance(): class ButtonAppearance(LabelAppearance):
# #
def drawpict(self, d): def drawpict(self, d):
d.box(_rect.inset(self.bounds, (1, 1))) d.box(_rect.inset(self.bounds, (1, 1)))
@ -173,7 +173,7 @@ class ButtonAppearance() = LabelAppearance():
# disabled --> whole button crossed out # disabled --> whole button crossed out
# hilited --> box is inverted # hilited --> box is inverted
# #
class CheckAppearance() = LabelAppearance(): class CheckAppearance(LabelAppearance):
# #
def getminsize(self, (m, (width, height))): def getminsize(self, (m, (width, height))):
minwidth = m.textwidth(self.text) + 6 minwidth = m.textwidth(self.text) + 6
@ -207,7 +207,7 @@ class CheckAppearance() = LabelAppearance():
# disabled --> whole button crossed out # disabled --> whole button crossed out
# hilited --> indicator is inverted # hilited --> indicator is inverted
# #
class RadioAppearance() = CheckAppearance(): class RadioAppearance(CheckAppearance):
# #
def drawpict(self, d): def drawpict(self, d):
(left, top), (right, bottom) = self.boxbounds (left, top), (right, bottom) = self.boxbounds
@ -221,7 +221,7 @@ class RadioAppearance() = CheckAppearance():
# NoReactivity ignores mouse events. # NoReactivity ignores mouse events.
# #
class NoReactivity(): class NoReactivity:
def init_reactivity(self): pass def init_reactivity(self): pass
@ -237,7 +237,7 @@ class NoReactivity():
# There are usually extra conditions, e.g., hooks are only called # There are usually extra conditions, e.g., hooks are only called
# when the button is enabled, or active, or selected (on). # when the button is enabled, or active, or selected (on).
# #
class BaseReactivity(): class BaseReactivity:
# #
def init_reactivity(self): def init_reactivity(self):
self.down_hook = self.move_hook = self.up_hook = \ self.down_hook = self.move_hook = self.up_hook = \
@ -279,7 +279,7 @@ class BaseReactivity():
# ToggleReactivity acts like a simple pushbutton. # ToggleReactivity acts like a simple pushbutton.
# It toggles its hilite state on mouse down events. # It toggles its hilite state on mouse down events.
# #
class ToggleReactivity() = BaseReactivity(): class ToggleReactivity(BaseReactivity):
# #
def mouse_down(self, detail): def mouse_down(self, detail):
if self.enabled and self.mousetest(detail[_HV]): if self.enabled and self.mousetest(detail[_HV]):
@ -308,7 +308,7 @@ class ToggleReactivity() = BaseReactivity():
# TriggerReactivity acts like a fancy pushbutton. # TriggerReactivity acts like a fancy pushbutton.
# It hilites itself while the mouse is down within its bounds. # It hilites itself while the mouse is down within its bounds.
# #
class TriggerReactivity() = BaseReactivity(): class TriggerReactivity(BaseReactivity):
# #
def mouse_down(self, detail): def mouse_down(self, detail):
if self.enabled and self.mousetest(detail[_HV]): if self.enabled and self.mousetest(detail[_HV]):
@ -336,7 +336,7 @@ class TriggerReactivity() = BaseReactivity():
# CheckReactivity handles mouse events like TriggerReactivity, # CheckReactivity handles mouse events like TriggerReactivity,
# It overrides the up_trigger method to flip its selected state. # It overrides the up_trigger method to flip its selected state.
# #
class CheckReactivity() = TriggerReactivity(): class CheckReactivity(TriggerReactivity):
# #
def up_trigger(self): def up_trigger(self):
self.select(not self.selected) self.select(not self.selected)
@ -350,7 +350,7 @@ class CheckReactivity() = TriggerReactivity():
# RadioReactivity turns itself on and the other buttons in its group # RadioReactivity turns itself on and the other buttons in its group
# off when its up_trigger method is called. # off when its up_trigger method is called.
# #
class RadioReactivity() = TriggerReactivity(): class RadioReactivity(TriggerReactivity):
# #
def init_reactivity(self): def init_reactivity(self):
TriggerReactivity.init_reactivity(self) TriggerReactivity.init_reactivity(self)
@ -370,7 +370,7 @@ class RadioReactivity() = TriggerReactivity():
# Auxiliary class for 'define' method. # Auxiliary class for 'define' method.
# Call the initializers in the right order. # Call the initializers in the right order.
# #
class Define(): class Define:
# #
def define(self, parent): def define(self, parent):
self.parent = parent self.parent = parent
@ -403,9 +403,9 @@ def _xorcross(d, bounds):
# Ready-made button classes. # Ready-made button classes.
# #
class Label() = NoReactivity(), LabelAppearance(), Define(): pass class Label(NoReactivity, LabelAppearance, Define): pass
class Strut() = NoReactivity(), StrutAppearance(), Define(): pass class Strut(NoReactivity, StrutAppearance, Define): pass
class PushButton() = TriggerReactivity(), ButtonAppearance(), Define(): pass class PushButton(TriggerReactivity, ButtonAppearance, Define): pass
class CheckButton() = CheckReactivity(), CheckAppearance(), Define(): pass class CheckButton(CheckReactivity, CheckAppearance, Define): pass
class RadioButton() = RadioReactivity(), RadioAppearance(), Define(): pass class RadioButton(RadioReactivity, RadioAppearance, Define): pass
class ToggleButton() = ToggleReactivity(), ButtonAppearance(), Define(): pass class ToggleButton(ToggleReactivity, ButtonAppearance, Define): pass

View File

@ -7,7 +7,7 @@
from math import pi, sin, cos from math import pi, sin, cos
from Split import Split from Split import Split
class CSplit() = Split(): class CSplit(Split):
# #
def getminsize(self, (m, (width, height))): def getminsize(self, (m, (width, height))):
# Since things look best if the children are spaced evenly # Since things look best if the children are spaced evenly

View File

@ -13,7 +13,7 @@
from Split import Split from Split import Split
class FormSplit() = Split(): class FormSplit(Split):
# #
def create(self, parent): def create(self, parent):
self.next_left = self.next_top = 0 self.next_left = self.next_top = 0

View File

@ -7,7 +7,7 @@
from Split import Split from Split import Split
class HVSplit() = Split(): class HVSplit(Split):
# #
def create(self, (parent, hv)): def create(self, (parent, hv)):
# hv is 0 for HSplit, 1 for VSplit # hv is 0 for HSplit, 1 for VSplit
@ -53,10 +53,10 @@ class HVSplit() = Split():
# XXX too-small # XXX too-small
# #
class HSplit() = HVSplit(): class HSplit(HVSplit):
def create(self, parent): def create(self, parent):
return HVSplit.create(self, (parent, 0)) return HVSplit.create(self, (parent, 0))
class VSplit() = HVSplit(): class VSplit(HVSplit):
def create(self, parent): def create(self, parent):
return HVSplit.create(self, (parent, 1)) return HVSplit.create(self, (parent, 1))

View File

@ -4,7 +4,7 @@ from Buttons import *
# A Histogram displays a histogram of numeric data. # A Histogram displays a histogram of numeric data.
# #
class HistogramAppearance() = LabelAppearance(), Define(): class HistogramAppearance(LabelAppearance, Define):
# #
def define(self, parent): def define(self, parent):
Define.define(self, (parent, '')) Define.define(self, (parent, ''))
@ -33,4 +33,4 @@ class HistogramAppearance() = LabelAppearance(), Define():
d.paint((h0, v0), (h1, v1)) d.paint((h0, v0), (h1, v1))
# #
class Histogram() = NoReactivity(), HistogramAppearance(): pass class Histogram(NoReactivity, HistogramAppearance): pass

View File

@ -22,7 +22,7 @@ _MASK = 3
# It does not support any of the triggers or hooks defined by Buttons, # It does not support any of the triggers or hooks defined by Buttons,
# but defines its own setval_trigger and setval_hook. # but defines its own setval_trigger and setval_hook.
# #
class DragSliderReactivity() = BaseReactivity(): class DragSliderReactivity(BaseReactivity):
# #
def mouse_down(self, detail): def mouse_down(self, detail):
h, v = hv = detail[_HV] h, v = hv = detail[_HV]
@ -43,7 +43,7 @@ class DragSliderReactivity() = BaseReactivity():
self.active = 0 self.active = 0
# #
class DragSliderAppearance() = ButtonAppearance(): class DragSliderAppearance(ButtonAppearance):
# #
# INVARIANTS maintained by the setval method: # INVARIANTS maintained by the setval method:
# #
@ -94,14 +94,14 @@ class DragSliderAppearance() = ButtonAppearance():
self.settext(self.pretext + `self.val` + self.postext) self.settext(self.pretext + `self.val` + self.postext)
# #
class DragSlider() = DragSliderReactivity(), DragSliderAppearance(), Define(): class DragSlider(DragSliderReactivity, DragSliderAppearance, Define):
def definetext(self, (parent, text)): def definetext(self, (parent, text)):
raise RuntimeError, 'DragSlider.definetext() not supported' raise RuntimeError, 'DragSlider.definetext() not supported'
# Auxiliary class for PushButton incorporated in ComplexSlider # Auxiliary class for PushButton incorporated in ComplexSlider
# #
class _StepButton() = PushButton(): class _StepButton(PushButton):
def define(self, parent): def define(self, parent):
self = PushButton.define(self, parent) self = PushButton.define(self, parent)
self.step = 0 self.step = 0
@ -130,7 +130,7 @@ class _StepButton() = PushButton():
# A complex slider is an HSplit initialized to three buttons: # A complex slider is an HSplit initialized to three buttons:
# one to step down, a dragslider, and one to step up. # one to step down, a dragslider, and one to step up.
# #
class ComplexSlider() = HSplit(): class ComplexSlider(HSplit):
# #
# Override Slider define() method # Override Slider define() method
# #

View File

@ -3,7 +3,7 @@
import audio import audio
from Histogram import Histogram from Histogram import Histogram
class Soundogram() = Histogram(): class Soundogram(Histogram):
# #
def define(self, (win, chunk)): def define(self, (win, chunk)):
width, height = corner = win.getwinsize() width, height = corner = win.getwinsize()

View File

@ -8,7 +8,7 @@ Error = 'Split.Error' # Exception
import rect import rect
from stdwinevents import * from stdwinevents import *
class Split(): class Split:
# #
# Calls from creator # Calls from creator
# NB derived classes may add parameters to create() # NB derived classes may add parameters to create()

View File

@ -6,7 +6,7 @@ from Buttons import LabelAppearance, NoReactivity
# A StripChart doesn't really look like a label but it needs a base class. # A StripChart doesn't really look like a label but it needs a base class.
# LabelAppearance allows it to be disabled and hilited. # LabelAppearance allows it to be disabled and hilited.
class StripChart() = LabelAppearance(), NoReactivity(): class StripChart(LabelAppearance, NoReactivity):
# #
def define(self, (parent, scale)): def define(self, (parent, scale)):
self.parent = parent self.parent = parent

View File

@ -6,7 +6,7 @@ from StripChart import StripChart
K = 1024 K = 1024
Rates = [0, 32*K, 16*K, 8*K] Rates = [0, 32*K, 16*K, 8*K]
class VUMeter() = StripChart(): class VUMeter(StripChart):
# #
# Override define() and timer() methods # Override define() and timer() methods
# #

View File

@ -12,7 +12,7 @@ from TransParent import ManageOneChild
Error = 'WindowParent.Error' # Exception Error = 'WindowParent.Error' # Exception
class WindowParent() = ManageOneChild(): class WindowParent(ManageOneChild):
# #
def create(self, (title, size)): def create(self, (title, size)):
self.title = title self.title = title

View File

@ -11,7 +11,7 @@
# Of course, no multi-threading is implied -- hence the funny interface # Of course, no multi-threading is implied -- hence the funny interface
# for lock, where a function is called once the lock is aquired. # for lock, where a function is called once the lock is aquired.
# #
class mutex(): class mutex:
# #
# Create a new mutex -- initially unlocked # Create a new mutex -- initially unlocked
# #

View File

@ -28,7 +28,7 @@
# XXX instead of having to define a module or class just to hold # XXX instead of having to define a module or class just to hold
# XXX the global state of your particular time and delay functtions. # XXX the global state of your particular time and delay functtions.
class scheduler(): class scheduler:
# #
# Initialize a new instance, passing the time and delay functions # Initialize a new instance, passing the time and delay functions
# #

View File

@ -10,7 +10,7 @@
# For historical reasons, button creation methods are called # For historical reasons, button creation methods are called
# define() while split creation methods are called create(). # define() while split creation methods are called create().
class AbstractParent(): class AbstractParent:
# #
# Upcalls from child to parent # Upcalls from child to parent
# #
@ -33,7 +33,7 @@ class AbstractParent():
def scroll(self, (area, (dh, dv))): unimpl() def scroll(self, (area, (dh, dv))): unimpl()
def settimer(self, itimer): unimpl() def settimer(self, itimer): unimpl()
class AbstractChild(): class AbstractChild:
# #
# Downcalls from parent to child # Downcalls from parent to child
# #
@ -59,5 +59,5 @@ class AbstractChild():
# Certain upcalls and downcalls can be handled transparently, but # Certain upcalls and downcalls can be handled transparently, but
# for others (e.g., all geometry related calls) this is not possible. # for others (e.g., all geometry related calls) this is not possible.
class AbstractSplit() = AbstractChild(), AbstractParent(): class AbstractSplit(AbstractChild, AbstractParent):
pass pass

View File

@ -1,6 +1,6 @@
from TransParent import TransParent from TransParent import TransParent
class BoxParent() = TransParent(): class BoxParent(TransParent):
# #
def create(self, (parent, (dh, dv))): def create(self, (parent, (dh, dv))):
self = TransParent.create(self, parent) self = TransParent.create(self, parent)

View File

@ -22,7 +22,7 @@ _MASK = 3
# disabled --> crossed out # disabled --> crossed out
# hilited --> inverted # hilited --> inverted
# #
class LabelAppearance(): class LabelAppearance:
# #
# Initialization # Initialization
# #
@ -143,7 +143,7 @@ class LabelAppearance():
# A Strut is a label with no width of its own. # A Strut is a label with no width of its own.
class StrutAppearance() = LabelAppearance(): class StrutAppearance(LabelAppearance):
# #
def getminsize(self, (m, (width, height))): def getminsize(self, (m, (width, height))):
height = max(height, m.lineheight() + 6) height = max(height, m.lineheight() + 6)
@ -156,7 +156,7 @@ class StrutAppearance() = LabelAppearance():
# disabled --> crossed out # disabled --> crossed out
# hilited --> inverted # hilited --> inverted
# #
class ButtonAppearance() = LabelAppearance(): class ButtonAppearance(LabelAppearance):
# #
def drawpict(self, d): def drawpict(self, d):
d.box(_rect.inset(self.bounds, (1, 1))) d.box(_rect.inset(self.bounds, (1, 1)))
@ -173,7 +173,7 @@ class ButtonAppearance() = LabelAppearance():
# disabled --> whole button crossed out # disabled --> whole button crossed out
# hilited --> box is inverted # hilited --> box is inverted
# #
class CheckAppearance() = LabelAppearance(): class CheckAppearance(LabelAppearance):
# #
def getminsize(self, (m, (width, height))): def getminsize(self, (m, (width, height))):
minwidth = m.textwidth(self.text) + 6 minwidth = m.textwidth(self.text) + 6
@ -207,7 +207,7 @@ class CheckAppearance() = LabelAppearance():
# disabled --> whole button crossed out # disabled --> whole button crossed out
# hilited --> indicator is inverted # hilited --> indicator is inverted
# #
class RadioAppearance() = CheckAppearance(): class RadioAppearance(CheckAppearance):
# #
def drawpict(self, d): def drawpict(self, d):
(left, top), (right, bottom) = self.boxbounds (left, top), (right, bottom) = self.boxbounds
@ -221,7 +221,7 @@ class RadioAppearance() = CheckAppearance():
# NoReactivity ignores mouse events. # NoReactivity ignores mouse events.
# #
class NoReactivity(): class NoReactivity:
def init_reactivity(self): pass def init_reactivity(self): pass
@ -237,7 +237,7 @@ class NoReactivity():
# There are usually extra conditions, e.g., hooks are only called # There are usually extra conditions, e.g., hooks are only called
# when the button is enabled, or active, or selected (on). # when the button is enabled, or active, or selected (on).
# #
class BaseReactivity(): class BaseReactivity:
# #
def init_reactivity(self): def init_reactivity(self):
self.down_hook = self.move_hook = self.up_hook = \ self.down_hook = self.move_hook = self.up_hook = \
@ -279,7 +279,7 @@ class BaseReactivity():
# ToggleReactivity acts like a simple pushbutton. # ToggleReactivity acts like a simple pushbutton.
# It toggles its hilite state on mouse down events. # It toggles its hilite state on mouse down events.
# #
class ToggleReactivity() = BaseReactivity(): class ToggleReactivity(BaseReactivity):
# #
def mouse_down(self, detail): def mouse_down(self, detail):
if self.enabled and self.mousetest(detail[_HV]): if self.enabled and self.mousetest(detail[_HV]):
@ -308,7 +308,7 @@ class ToggleReactivity() = BaseReactivity():
# TriggerReactivity acts like a fancy pushbutton. # TriggerReactivity acts like a fancy pushbutton.
# It hilites itself while the mouse is down within its bounds. # It hilites itself while the mouse is down within its bounds.
# #
class TriggerReactivity() = BaseReactivity(): class TriggerReactivity(BaseReactivity):
# #
def mouse_down(self, detail): def mouse_down(self, detail):
if self.enabled and self.mousetest(detail[_HV]): if self.enabled and self.mousetest(detail[_HV]):
@ -336,7 +336,7 @@ class TriggerReactivity() = BaseReactivity():
# CheckReactivity handles mouse events like TriggerReactivity, # CheckReactivity handles mouse events like TriggerReactivity,
# It overrides the up_trigger method to flip its selected state. # It overrides the up_trigger method to flip its selected state.
# #
class CheckReactivity() = TriggerReactivity(): class CheckReactivity(TriggerReactivity):
# #
def up_trigger(self): def up_trigger(self):
self.select(not self.selected) self.select(not self.selected)
@ -350,7 +350,7 @@ class CheckReactivity() = TriggerReactivity():
# RadioReactivity turns itself on and the other buttons in its group # RadioReactivity turns itself on and the other buttons in its group
# off when its up_trigger method is called. # off when its up_trigger method is called.
# #
class RadioReactivity() = TriggerReactivity(): class RadioReactivity(TriggerReactivity):
# #
def init_reactivity(self): def init_reactivity(self):
TriggerReactivity.init_reactivity(self) TriggerReactivity.init_reactivity(self)
@ -370,7 +370,7 @@ class RadioReactivity() = TriggerReactivity():
# Auxiliary class for 'define' method. # Auxiliary class for 'define' method.
# Call the initializers in the right order. # Call the initializers in the right order.
# #
class Define(): class Define:
# #
def define(self, parent): def define(self, parent):
self.parent = parent self.parent = parent
@ -403,9 +403,9 @@ def _xorcross(d, bounds):
# Ready-made button classes. # Ready-made button classes.
# #
class Label() = NoReactivity(), LabelAppearance(), Define(): pass class Label(NoReactivity, LabelAppearance, Define): pass
class Strut() = NoReactivity(), StrutAppearance(), Define(): pass class Strut(NoReactivity, StrutAppearance, Define): pass
class PushButton() = TriggerReactivity(), ButtonAppearance(), Define(): pass class PushButton(TriggerReactivity, ButtonAppearance, Define): pass
class CheckButton() = CheckReactivity(), CheckAppearance(), Define(): pass class CheckButton(CheckReactivity, CheckAppearance, Define): pass
class RadioButton() = RadioReactivity(), RadioAppearance(), Define(): pass class RadioButton(RadioReactivity, RadioAppearance, Define): pass
class ToggleButton() = ToggleReactivity(), ButtonAppearance(), Define(): pass class ToggleButton(ToggleReactivity, ButtonAppearance, Define): pass

View File

@ -7,7 +7,7 @@
from math import pi, sin, cos from math import pi, sin, cos
from Split import Split from Split import Split
class CSplit() = Split(): class CSplit(Split):
# #
def getminsize(self, (m, (width, height))): def getminsize(self, (m, (width, height))):
# Since things look best if the children are spaced evenly # Since things look best if the children are spaced evenly

View File

@ -13,7 +13,7 @@
from Split import Split from Split import Split
class FormSplit() = Split(): class FormSplit(Split):
# #
def create(self, parent): def create(self, parent):
self.next_left = self.next_top = 0 self.next_left = self.next_top = 0

View File

@ -7,7 +7,7 @@
from Split import Split from Split import Split
class HVSplit() = Split(): class HVSplit(Split):
# #
def create(self, (parent, hv)): def create(self, (parent, hv)):
# hv is 0 for HSplit, 1 for VSplit # hv is 0 for HSplit, 1 for VSplit
@ -53,10 +53,10 @@ class HVSplit() = Split():
# XXX too-small # XXX too-small
# #
class HSplit() = HVSplit(): class HSplit(HVSplit):
def create(self, parent): def create(self, parent):
return HVSplit.create(self, (parent, 0)) return HVSplit.create(self, (parent, 0))
class VSplit() = HVSplit(): class VSplit(HVSplit):
def create(self, parent): def create(self, parent):
return HVSplit.create(self, (parent, 1)) return HVSplit.create(self, (parent, 1))

View File

@ -4,7 +4,7 @@ from Buttons import *
# A Histogram displays a histogram of numeric data. # A Histogram displays a histogram of numeric data.
# #
class HistogramAppearance() = LabelAppearance(), Define(): class HistogramAppearance(LabelAppearance, Define):
# #
def define(self, parent): def define(self, parent):
Define.define(self, (parent, '')) Define.define(self, (parent, ''))
@ -33,4 +33,4 @@ class HistogramAppearance() = LabelAppearance(), Define():
d.paint((h0, v0), (h1, v1)) d.paint((h0, v0), (h1, v1))
# #
class Histogram() = NoReactivity(), HistogramAppearance(): pass class Histogram(NoReactivity, HistogramAppearance): pass

View File

@ -22,7 +22,7 @@ _MASK = 3
# It does not support any of the triggers or hooks defined by Buttons, # It does not support any of the triggers or hooks defined by Buttons,
# but defines its own setval_trigger and setval_hook. # but defines its own setval_trigger and setval_hook.
# #
class DragSliderReactivity() = BaseReactivity(): class DragSliderReactivity(BaseReactivity):
# #
def mouse_down(self, detail): def mouse_down(self, detail):
h, v = hv = detail[_HV] h, v = hv = detail[_HV]
@ -43,7 +43,7 @@ class DragSliderReactivity() = BaseReactivity():
self.active = 0 self.active = 0
# #
class DragSliderAppearance() = ButtonAppearance(): class DragSliderAppearance(ButtonAppearance):
# #
# INVARIANTS maintained by the setval method: # INVARIANTS maintained by the setval method:
# #
@ -94,14 +94,14 @@ class DragSliderAppearance() = ButtonAppearance():
self.settext(self.pretext + `self.val` + self.postext) self.settext(self.pretext + `self.val` + self.postext)
# #
class DragSlider() = DragSliderReactivity(), DragSliderAppearance(), Define(): class DragSlider(DragSliderReactivity, DragSliderAppearance, Define):
def definetext(self, (parent, text)): def definetext(self, (parent, text)):
raise RuntimeError, 'DragSlider.definetext() not supported' raise RuntimeError, 'DragSlider.definetext() not supported'
# Auxiliary class for PushButton incorporated in ComplexSlider # Auxiliary class for PushButton incorporated in ComplexSlider
# #
class _StepButton() = PushButton(): class _StepButton(PushButton):
def define(self, parent): def define(self, parent):
self = PushButton.define(self, parent) self = PushButton.define(self, parent)
self.step = 0 self.step = 0
@ -130,7 +130,7 @@ class _StepButton() = PushButton():
# A complex slider is an HSplit initialized to three buttons: # A complex slider is an HSplit initialized to three buttons:
# one to step down, a dragslider, and one to step up. # one to step down, a dragslider, and one to step up.
# #
class ComplexSlider() = HSplit(): class ComplexSlider(HSplit):
# #
# Override Slider define() method # Override Slider define() method
# #

View File

@ -3,7 +3,7 @@
import audio import audio
from Histogram import Histogram from Histogram import Histogram
class Soundogram() = Histogram(): class Soundogram(Histogram):
# #
def define(self, (win, chunk)): def define(self, (win, chunk)):
width, height = corner = win.getwinsize() width, height = corner = win.getwinsize()

View File

@ -8,7 +8,7 @@ Error = 'Split.Error' # Exception
import rect import rect
from stdwinevents import * from stdwinevents import *
class Split(): class Split:
# #
# Calls from creator # Calls from creator
# NB derived classes may add parameters to create() # NB derived classes may add parameters to create()

View File

@ -6,7 +6,7 @@ from Buttons import LabelAppearance, NoReactivity
# A StripChart doesn't really look like a label but it needs a base class. # A StripChart doesn't really look like a label but it needs a base class.
# LabelAppearance allows it to be disabled and hilited. # LabelAppearance allows it to be disabled and hilited.
class StripChart() = LabelAppearance(), NoReactivity(): class StripChart(LabelAppearance, NoReactivity):
# #
def define(self, (parent, scale)): def define(self, (parent, scale)):
self.parent = parent self.parent = parent

View File

@ -6,7 +6,7 @@ from StripChart import StripChart
K = 1024 K = 1024
Rates = [0, 32*K, 16*K, 8*K] Rates = [0, 32*K, 16*K, 8*K]
class VUMeter() = StripChart(): class VUMeter(StripChart):
# #
# Override define() and timer() methods # Override define() and timer() methods
# #

View File

@ -12,7 +12,7 @@ from TransParent import ManageOneChild
Error = 'WindowParent.Error' # Exception Error = 'WindowParent.Error' # Exception
class WindowParent() = ManageOneChild(): class WindowParent(ManageOneChild):
# #
def create(self, (title, size)): def create(self, (title, size)):
self.title = title self.title = title

View File

@ -13,7 +13,7 @@ template = '@'
# Kludge to hold mutable state # Kludge to hold mutable state
class Struct(): pass class Struct: pass
G = Struct() G = Struct()
G.i = 0 G.i = 0