740 lines
20 KiB
Python
740 lines
20 KiB
Python
##########################################################
|
|
# This is the Python interface to the pyxforms C module
|
|
#
|
|
|
|
|
|
import sys
|
|
import xforms
|
|
import forms
|
|
import objects
|
|
import bitmaps
|
|
import pixmaps
|
|
import box
|
|
import browser
|
|
import button
|
|
import choice
|
|
import clock
|
|
import counter
|
|
import dial
|
|
import frame
|
|
import input
|
|
import menu
|
|
import positioner
|
|
import slider
|
|
import timer
|
|
|
|
###############################################################################
|
|
# These are function needed to run the XForms library
|
|
# Needs a LOT of work
|
|
|
|
def xfinit (appname,appclass,argv0):
|
|
xforms.init (appname,appclass,argv0)
|
|
|
|
###############################################################################
|
|
# This is the synthetic event-loop to use under python:
|
|
|
|
_objects={}
|
|
|
|
def runforms():
|
|
while 1:
|
|
ob=_objects[str(xforms.do_forms())]
|
|
ob.cb (ob.args)
|
|
|
|
###############################################################################
|
|
# This is the default callback function:
|
|
|
|
def _nocb(args):
|
|
print("This object has no Callback!")
|
|
|
|
##############################################################################
|
|
#This is the Form class
|
|
|
|
|
|
class Form:
|
|
def __init__(self,t=6,w=200,h=200):
|
|
self.id=forms.create (0,w,h)
|
|
self.__box=Box(t,0,0,w,h,"")
|
|
self.Add (self.__box)
|
|
self.__box.c1=11
|
|
self.__box.c2=15
|
|
self.__minx=1 # Reasonable defaults for things that
|
|
self.__miny=1 # I can't get from XForms
|
|
self.__maxx=10000 # Notice that if the C code changes them
|
|
self.__maxy=10000 # They get out of sync!
|
|
self.__title=sys.argv[0] #the "preferred" form title
|
|
self.__placement=16388
|
|
self.__decoration=1
|
|
self.objs=() # A place to store the obj list. Useful?
|
|
|
|
def Show (self):
|
|
self.winid=forms.show (self.id,self.__placement,self.__decoration,self.title)
|
|
def Hide (self):
|
|
forms.hide (self.id)
|
|
def Freeze (self):
|
|
forms.freeze (self.id)
|
|
def Unfreeze (self):
|
|
forms.unfreeze (self.id)
|
|
def Activate (self):
|
|
forms.activate (self.id)
|
|
def Deactivate (self):
|
|
forms.deactivate (self.id)
|
|
def Scale (self,x,y):
|
|
forms.scale (self.id,x,y)
|
|
def Redraw (self):
|
|
forms.redraw (self.id)
|
|
def Add (self,object):
|
|
forms.add_object (self.id,object.id)
|
|
object.parent=self
|
|
def Setminsize (self,x,y):
|
|
forms.set_minsize (self.id,x,y)
|
|
self.__minx=x # The __ is needed to avoid endless looping
|
|
self.__miny=y # on min[xy], which are non-gettable from XForms
|
|
def Setmaxsize (self,x,y):
|
|
forms.set_maxsize (self.id,x,y)
|
|
self.__maxx=x
|
|
self.__maxy=y
|
|
def Settitle (self,title):
|
|
forms.set_title (self.id,title)
|
|
self.__title=title
|
|
def Gettitle (self):
|
|
if self.visible:
|
|
return forms.get_title(self.id)
|
|
else:
|
|
return self.__title
|
|
def Setcolor (c1,c2):
|
|
self.__box.Setcolor (c1,c2)
|
|
|
|
def __setattr__(self,name,value):
|
|
if name=="x":
|
|
(tx,ty,tw,th)=forms.get_geometry (self.id)
|
|
forms.set_geometry (self.id,value,ty,tw,th)
|
|
elif name=="y":
|
|
(tx,ty,tw,th)=forms.get_geometry (self.id)
|
|
forms.set_geometry (self.id,tx,value,tw,th)
|
|
elif name=="w":
|
|
(tx,ty,tw,th)=forms.get_geometry (self.id)
|
|
forms.set_geometry (self.id,tx,ty,value,th)
|
|
elif name=="h":
|
|
(tx,ty,tw,th)=forms.get_geometry (self.id)
|
|
forms.set_geometry (self.id,tx,ty,tw,value)
|
|
elif name=="dblbuffer":
|
|
forms.set_dblbuffer(self.id,value)
|
|
elif name=="frozen":
|
|
if value:
|
|
self.Freeze()
|
|
else:
|
|
self.Unfreeze()
|
|
elif name=="active":
|
|
if value:
|
|
self.Activate()
|
|
else:
|
|
self.Deactivate()
|
|
elif name=="visible":
|
|
if value:
|
|
self.Show()
|
|
else:
|
|
self.Hide()
|
|
elif name=="minx":
|
|
self.Setminsize (value,self.__miny)
|
|
elif name=="miny":
|
|
self.Setminsize (self.__minx,value)
|
|
elif name=="maxx":
|
|
self.Setminsize (value,self.__maxy)
|
|
elif name=="maxy":
|
|
self.Setminsize (self.__maxx,value)
|
|
elif name=="title":
|
|
self.Settitle (value)
|
|
elif name=="c1":
|
|
self.__box.c1=value
|
|
elif name=="c2":
|
|
self.__box.c2=value
|
|
else:
|
|
self.__dict__ [name]=value
|
|
|
|
|
|
def __getattr__(self,name):
|
|
if name=="x":
|
|
(tx,ty,tw,th)=forms.get_geometry (self.id)
|
|
return tx
|
|
elif name=="y":
|
|
(tx,ty,tw,th)=forms.get_geometry (self.id)
|
|
return ty
|
|
elif name=="w":
|
|
(tx,ty,tw,th)=forms.get_geometry (self.id)
|
|
return tw
|
|
elif name=="h":
|
|
(tx,ty,tw,th)=forms.get_geometry (self.id)
|
|
return th
|
|
elif name=="minx":
|
|
return self.__minx
|
|
elif name=="miny":
|
|
return self.__miny
|
|
elif name=="maxx":
|
|
return self.__maxx
|
|
elif name=="maxy":
|
|
return self.__maxy
|
|
elif name=="vmode":
|
|
(vmode,active,dblbuffer,frozen,visible,border,other)=forms.get_attr(self.id)
|
|
return vmode
|
|
elif name=="active":
|
|
(vmode,active,dblbuffer,frozen,visible,border,other)=forms.get_attr(self.id)
|
|
return active
|
|
elif name=="dblbuffer":
|
|
(vmode,active,dblbuffer,frozen,visible,border,other)=forms.get_attr(self.id)
|
|
return dblbuffer
|
|
elif name=="frozen":
|
|
(vmode,active,dblbuffer,frozen,visible,border,other)=forms.get_attr(self.id)
|
|
return frozen
|
|
elif name=="visible":
|
|
(vmode,active,dblbuffer,frozen,visible,border,other)=forms.get_attr(self.id)
|
|
return visible
|
|
elif name=="border":
|
|
(vmode,active,dblbuffer,frozen,visible,border,other)=forms.get_attr(self.id)
|
|
return border
|
|
elif name=="other":
|
|
(vmode,active,dblbuffer,frozen,visible,border,other)=forms.get_attr(self.id)
|
|
return other
|
|
elif name=="title":
|
|
return self.Gettitle ()
|
|
elif name=="c1":
|
|
return self.__box.c1
|
|
elif name=="c2":
|
|
return self.__box.c2
|
|
def __del__(self):
|
|
pass
|
|
#I'm not sure if this is a nice thing to do
|
|
# forms.free (self.id)
|
|
|
|
|
|
###############################################################################
|
|
#This is the XFObject class, for generic XForms objects
|
|
|
|
class XFObject:
|
|
def __init__ (self):
|
|
self.id=0
|
|
self.__c1=11
|
|
self.__c2=15
|
|
def Setgravity (self,a,b):
|
|
objects.set_gravity (self.id,a,b)
|
|
def Redraw (self):
|
|
objects.redraw (self.id)
|
|
def Scale (self,x,y):
|
|
objects.scale (self.id,x,y)
|
|
def Show (self):
|
|
objects.show (self.id)
|
|
self.Setcolor (self.__c1,self.__c2)
|
|
def Hide (self):
|
|
objects.hide (self.id)
|
|
def Delete(self):
|
|
objects.delete (self.id)
|
|
def Setcolor (self,c1,c2):
|
|
self.__c1=c1
|
|
self.__c2=c2
|
|
objects.set_color (self.id,c1,c2)
|
|
def Activate (self):
|
|
objects.activate (self.id)
|
|
def Deactivate (self):
|
|
objects.deactivate (self.id)
|
|
def __setattr__ (self,name,value):
|
|
if name=="boxtype":
|
|
objects.set_boxtype (self.id,value)
|
|
elif name=="bw":
|
|
objects.set_bw (self.id,value)
|
|
elif name=="labelsize":
|
|
objects.set_ls (self.id,value)
|
|
elif name=="labelstyle":
|
|
objects.set_lstyle (self.id,value)
|
|
elif name=="labelcolor":
|
|
objects.set_lcol (self.id,value)
|
|
elif name=="labelalign":
|
|
objects.set_lalign (self.id,value)
|
|
elif name=="label":
|
|
objects.set_label (self.id,value)
|
|
elif name=="shortcut":
|
|
objects.set_shortcut (self.id,value,1)
|
|
elif name=="dblbuffer":
|
|
objects.set_dblbuffer(self.id,value)
|
|
elif name=="x":
|
|
(tx,ty,tw,th)=objects.get_geometry (self.id)
|
|
objects.set_geometry (self.id,value,ty,tw,th)
|
|
elif name=="y":
|
|
(tx,ty,tw,th)=objects.get_geometry (self.id)
|
|
objects.set_geometry (self.id,tx,value,tw,th)
|
|
elif name=="w":
|
|
(tx,ty,tw,th)=objects.get_geometry (self.id)
|
|
objects.set_geometry (self.id,tx,ty,value,th)
|
|
elif name=="h":
|
|
(tx,ty,tw,th)=objects.get_geometry (self.id)
|
|
objects.set_geometry (self.id,tx,ty,tw,value)
|
|
elif name=="resize":
|
|
objects.set_resize (self.id,value)
|
|
elif name=="c1":
|
|
self.Setcolor (value,self.__c2)
|
|
elif name=="c2":
|
|
self.Setcolor (self.__c1,value)
|
|
else:
|
|
self.__dict__ [name]=value
|
|
def __getattr__(self,name):
|
|
if name=="c1":
|
|
return self.__c1
|
|
elif name=="c2":
|
|
return self.__c2
|
|
|
|
def __del__ (self):
|
|
#probably a BAD idea
|
|
objects.free(self.id)
|
|
|
|
|
|
###############################################################################
|
|
# The Bitmap Class
|
|
|
|
class Bitmap(XFObject):
|
|
def __init__(self,t=0,x=10,y=10,w=100,h=100,l="Bitmap"):
|
|
XFObject.__init__ (self)
|
|
self.id=bitmaps.create(t,x,y,w,h,l)
|
|
def Load (self,file):
|
|
bitmaps.set_file (self.id,file)
|
|
def __setattr__ (self,name,value):
|
|
if name=="background":
|
|
objects.set_color(self.id,value,0)
|
|
elif name=="foreground":
|
|
objects.set_lcol(self.id,value)
|
|
else:
|
|
XFObject.__setattr__(self,name,value)
|
|
|
|
|
|
###############################################################################
|
|
# The Pixmap Class
|
|
|
|
class Pixmap(XFObject):
|
|
def __init__(self,t=0,x=10,y=10,w=100,h=100,l="Pixmap"):
|
|
XFObject.__init__ (self)
|
|
self.id=pixmaps.create(t,x,y,w,h,l)
|
|
def Load (self,file):
|
|
pixmaps.set_file (self.id,file)
|
|
def __setattr__ (self,name,value):
|
|
if name=="background":
|
|
objects.set_color(self.id,value,0)
|
|
elif name=="foreground":
|
|
objects.set_lcol(self.id,value)
|
|
else:
|
|
XFObject.__setattr__(self,name,value)
|
|
|
|
|
|
###############################################################################
|
|
# The Box Class
|
|
|
|
class Box(XFObject):
|
|
def __init__(self,t=6,x=10,y=10,w=90,h=90,l="Box"):
|
|
XFObject.__init__ (self)
|
|
self.id=box.create(t,x,y,w,h,l)
|
|
###############################################################################
|
|
# The Browser class
|
|
#
|
|
# I want the Browser class to act just like what it is: a list
|
|
# only with a "few" more methods and stuff
|
|
|
|
class Browser (XFObject):
|
|
def __init__(self,t=1,x=10,y=10,w=90,h=120,l="Browser"):
|
|
XFObject.__init__ (self)
|
|
self.id=browser.create(t,x,y,w,h,l)
|
|
_objects[str(self.id)]=self
|
|
self.cb=_nocb
|
|
self.args=self
|
|
def Add(self,line):
|
|
browser.add_line (self.id,line)
|
|
def Addto(self,line):
|
|
browser.addto (self.id,line)
|
|
def Insert(self,n,line):
|
|
browser.insert_line(self.id,n,line)
|
|
def Delete(self,n):
|
|
browser.delete_line(self.id,n)
|
|
def Replace(self,n,line):
|
|
browser.replace_line(self.id,n,line)
|
|
def Getline(self,n):
|
|
return browser.get_line (self.id,n)
|
|
def Load(self,path):
|
|
return browser.load (self.id,path)
|
|
def Select(self,n):
|
|
browser.select_line (self.id,n)
|
|
def Deselect(self,n):
|
|
browser.deselect_line (self.id,n)
|
|
def Deselectall(self):
|
|
browser.deselect(self.id)
|
|
def Isselected(self,n):
|
|
return browser.isselected_line(self.id,n)
|
|
def Gettopline(self):
|
|
return browser.get_topline(self.id)
|
|
def Get(self):
|
|
return browser.get(self.id)
|
|
def Getmaxline(self):
|
|
return browser.get_maxline(self.id)
|
|
def Screenlines(self):
|
|
return browser.get_screenlines(self.id)
|
|
def Settopline(self,n):
|
|
browser.set_topline(self.id,n)
|
|
def Setfontsize(self,n):
|
|
browser.set_fontsize(self.id,n)
|
|
def Setfontstyle(self,n):
|
|
browser.set_fontstyle(self.id,n)
|
|
def Setspecialkey(self,c):
|
|
browser.set_specialkey(self.id,c)
|
|
def Setleftslider(self,l):
|
|
browser.set_leftslider(self.id,l)
|
|
def __setattr__ (self,name,value):
|
|
if name=="leftslider":
|
|
self.Setleftslider(value)
|
|
elif name=="specialkey":
|
|
self.Setspecialkey(value)
|
|
elif name=="fontstyle":
|
|
self.Setfontstyle(value)
|
|
elif name=="fontsize":
|
|
self.Setfontsize(value)
|
|
elif name=="topline":
|
|
self.Settopline(value)
|
|
else:
|
|
XFObject.__setattr__(self,name,value)
|
|
|
|
|
|
|
|
###############################################################################
|
|
#This is the Button class.
|
|
|
|
class Button(XFObject):
|
|
def __init__(self,t=0,x=10,y=10,w=90,h=30,l="Button"):
|
|
XFObject.__init__ (self)
|
|
self.id=button.create(t,x,y,w,h,l)
|
|
_objects[str(self.id)]=self
|
|
self.cb=_nocb
|
|
self.args=self
|
|
def __call__(self,v=-1):
|
|
# I think this is nice: if you have a button called b,
|
|
# b() returns the button's value
|
|
# b(1) or b(0) SETS the button value.
|
|
# You can also set/get it with b.value, though
|
|
if v==-1:
|
|
return button.get(self.id)
|
|
else:
|
|
button.set (self.id,v)
|
|
|
|
def __setattr__ (self,name,value):
|
|
if name=="value":
|
|
self(value)
|
|
else:
|
|
XFObject.__setattr__(self,name,value)
|
|
|
|
def __getattr__ (self,name):
|
|
if name=="value":
|
|
return self()
|
|
elif name=="numb":
|
|
return button.get_numb (self.id)
|
|
pass
|
|
else:
|
|
return XFObject.__getattr__(self,name)
|
|
|
|
###############################################################################
|
|
# This is the Roundbutton class
|
|
|
|
class Roundbutton (Button):
|
|
def __init__(self,t=0,x=10,y=10,w=90,h=30,l="Roundbutton"):
|
|
XFObject.__init__ (self)
|
|
self.id=button.create_round(t,x,y,w,h,l)
|
|
_objects[str(self.id)]=self
|
|
self.cb=_nocb
|
|
self.args=self
|
|
###############################################################################
|
|
# This is the Lightbutton class
|
|
|
|
class Lightbutton (Button):
|
|
def __init__(self,t=0,x=10,y=10,w=90,h=30,l="Lightbutton"):
|
|
XFObject.__init__ (self)
|
|
self.id=button.create_light(t,x,y,w,h,l)
|
|
_objects[str(self.id)]=self
|
|
self.cb=_nocb
|
|
self.args=self
|
|
###############################################################################
|
|
# This is the Checkbutton class
|
|
|
|
class Checkbutton (Button):
|
|
def __init__(self,t=0,x=10,y=10,w=90,h=30,l="Checkbutton"):
|
|
XFObject.__init__ (self)
|
|
self.id=button.create_check(t,x,y,w,h,l)
|
|
_objects[str(self.id)]=self
|
|
self.cb=_nocb
|
|
self.args=self
|
|
###############################################################################
|
|
# This is the Bitmapbutton class
|
|
|
|
class Bitmapbutton (Button):
|
|
def __init__(self,t=0,x=10,y=10,w=90,h=30,l="Bitmapbutton"):
|
|
XFObject.__init__ (self)
|
|
self.id=button.create_bitmap(t,x,y,w,h,l)
|
|
_objects[str(self.id)]=self
|
|
self.cb=_nocb
|
|
self.args=self
|
|
###############################################################################
|
|
# This is the Pixmapbutton class
|
|
|
|
class Pixmapbutton (Button):
|
|
def __init__(self,t=0,x=10,y=10,w=90,h=30,l="Pixmapbutton"):
|
|
XFObject.__init__ (self)
|
|
self.id=button.create_pixmap(t,x,y,w,h,l)
|
|
_objects[str(self.id)]=self
|
|
self.cb=_nocb
|
|
self.args=self
|
|
###############################################################################
|
|
# This is the Choice Class
|
|
#This one needs a getattr, setattr pair
|
|
|
|
class Choice (XFObject):
|
|
def __init__(self,t=0,x=10,y=10,w=90,h=30,l="Choice"):
|
|
XFObject.__init__ (self)
|
|
self.id=choice.create(t,x,y,w,h,l)
|
|
_objects[str(self.id)]=self
|
|
self.cb=_nocb
|
|
self.args=self
|
|
def Clear (self):
|
|
choice.clear(self.id)
|
|
def Addto (self,s):
|
|
choice.addto(self.id,s)
|
|
def Replace (self,n,s):
|
|
choice.replace(self.id,n,s)
|
|
def Delete (self,n):
|
|
choice.delete(self.id,n)
|
|
def Set (self,n):
|
|
choice.set(self.id,n)
|
|
def Settext (self,s):
|
|
choice.set_text (self.id,s)
|
|
def Get (self):
|
|
return choice.get (self.id)
|
|
def Getmaxitems (self):
|
|
return choice.get_maxitems (self.id)
|
|
def Gettext (self):
|
|
return choice.get_text (self.id)
|
|
def Setfontsize (self,n):
|
|
choice.set_fontsize(self.id,n)
|
|
def Setalign (self,n):
|
|
choice.set_align (self.id,n)
|
|
def Setmode (self,n,m):
|
|
choice.set_item_mode (self.id,n,m)
|
|
|
|
##############################################################################
|
|
# This is the clock class
|
|
|
|
class Clock (XFObject):
|
|
def __init__(self,t=0,x=10,y=10,w=90,h=90,l="Clock"):
|
|
XFObject.__init__ (self)
|
|
self.id=clock.create(t,x,y,w,h,l)
|
|
def Get (self):
|
|
return clock.get (self.id)
|
|
##############################################################################
|
|
# This is the counter class
|
|
|
|
|
|
class Counter (XFObject):
|
|
def __init__(self,t=0,x=10,y=10,w=90,h=30,l="Counter"):
|
|
XFObject.__init__ (self)
|
|
self.id=counter.create(t,x,y,w,h,l)
|
|
_objects[str(self.id)]=self
|
|
self.cb=_nocb
|
|
self.args=self
|
|
def Set (self,v):
|
|
counter.set_value (self.id,v)
|
|
def Setbounds (self,min,max):
|
|
counter.set_bounds (self.id,min,max)
|
|
def Setstep (self,s1,s2):
|
|
counter.set_step (self.id,s1,s2)
|
|
def Setprecision (self,p):
|
|
counter.set_precision (self.id,p)
|
|
def Get (self):
|
|
return counter.get_value (self.id)
|
|
def Setreturn (self,v):
|
|
counter.set_return (self.id,v)
|
|
|
|
##############################################################################
|
|
# This is the Dial class
|
|
|
|
class Dial (XFObject):
|
|
def __init__(self,t=0,x=10,y=10,w=60,h=60,l="Dial"):
|
|
XFObject.__init__ (self)
|
|
self.id=dial.create(t,x,y,w,h,l)
|
|
_objects[str(self.id)]=self
|
|
self.cb=_nocb
|
|
self.args=self
|
|
def Set (self,v):
|
|
dial.set_value(self.id,v)
|
|
def Get (self):
|
|
return dial.get_value (self.id)
|
|
def Setbounds (self,min,max):
|
|
dial.set_bounds (self.id,min,max)
|
|
def Getbounds (self):
|
|
return dial.get_bounds (self.id)
|
|
def Setstep (self,v):
|
|
dial.set_step (self.id,v)
|
|
def Setreturn (self,v):
|
|
dial.set_return (self.id,v)
|
|
|
|
###############################################################################
|
|
# This is the Frame class
|
|
class Frame (XFObject):
|
|
def __init__(self,t=0,x=10,y=10,w=60,h=60,l="Frame"):
|
|
XFObject.__init__ (self)
|
|
self.id=frame.create(t,x,y,w,h,l)
|
|
###############################################################################
|
|
# This is the Input class
|
|
|
|
|
|
class Input (XFObject):
|
|
def __init__(self,t=0,x=10,y=10,w=60,h=30,l="Input"):
|
|
XFObject.__init__ (self)
|
|
self.id=input.create(t,x,y,w,h,l)
|
|
_objects[str(self.id)]=self
|
|
self.cb=_nocb
|
|
self.args=self
|
|
def Set (self,s):
|
|
input.set (self.id,s)
|
|
def Setcolor (self,c1,c2):
|
|
input.set_color (self.id,c1,c2)
|
|
def Get (self):
|
|
return input.get(self.id)
|
|
def Setreturn (self,v):
|
|
input.set_return (self.id,v)
|
|
def Setscroll (self,v):
|
|
input.set_scroll (self.id,v)
|
|
def Setcursorpos (self,x,y=1):
|
|
input.set_cursorpos (self.id,x,y)
|
|
def Setselected (self,v):
|
|
input.set_selected (self.id,v)
|
|
def Setselectedrange (self,x1,x2):
|
|
input.set_selected_range (self.id,x1,x2)
|
|
def __setattr__ (self,name,value):
|
|
if name=="value":
|
|
self.Set(value)
|
|
else:
|
|
XFObject.__setattr__(self,name,value)
|
|
|
|
def __getattr__ (self,name):
|
|
if name=="value":
|
|
return self.Get()
|
|
else:
|
|
return XFObject.__getattr__(self,name)
|
|
|
|
|
|
###############################################################################
|
|
# This is the Menu class
|
|
|
|
class Menu (XFObject):
|
|
def __init__(self,t=0,x=10,y=10,w=60,h=30,l="Menu"):
|
|
XFObject.__init__ (self)
|
|
self.id=menu.create(t,x,y,w,h,l)
|
|
_objects[str(self.id)]=self
|
|
self.cb=_nocb
|
|
self.args=self
|
|
def Clear (self):
|
|
menu.clear (self.id)
|
|
def Set (self,s):
|
|
menu.set (self.id,s)
|
|
def Addto (self,s):
|
|
menu.addto(self.id,s)
|
|
def Replace (self,n,s):
|
|
menu.replace_item (self.id,n,s)
|
|
def Delete (self,n):
|
|
menu.delete_item (self.id,n)
|
|
def Setshortcut (self,n,s):
|
|
menu.set_item_shortcut (self.id,n,s)
|
|
def Setmode (self,n,m):
|
|
menu.set_item_mode (self.id,n,m)
|
|
def Showsymbol (self,n):
|
|
menu.show_symbol (self.id,n)
|
|
def Get (self):
|
|
return menu.get (self.id)
|
|
def Getmaxitems (self):
|
|
return menu.get_maxitems (self.id)
|
|
def Gettext (self):
|
|
return menu.get_text (self.id)
|
|
|
|
###############################################################################
|
|
# This is the Positioner class
|
|
|
|
class Positioner (XFObject):
|
|
def __init__(self,t=0,x=10,y=10,w=60,h=60,l="Positioner"):
|
|
XFObject.__init__ (self)
|
|
self.id=positioner.create(t,x,y,w,h,l)
|
|
_objects[str(self.id)]=self
|
|
self.cb=_nocb
|
|
self.args=self
|
|
def Setx (self,v):
|
|
positioner.set_xvalue (self.id,v)
|
|
def Sety (self,v):
|
|
positioner.set_yvalue (self.id,v)
|
|
def Setxbounds (self,x1,x2):
|
|
positioner.set_xbounds (self.id,x1,x2)
|
|
def Setybounds (self,y1,y2):
|
|
positioner.set_ybounds (self.id,y1,y2)
|
|
def Setxstep (self,v):
|
|
positioner.set_xstep (self.id,v)
|
|
def Setystep (self,v):
|
|
positioner.set_ystep (self.id,v)
|
|
def Getx (self):
|
|
return positioner.get_xvalue (self.id)
|
|
def Gety (self):
|
|
return positioner.get_yvalue (self.id)
|
|
def Getxbounds (self):
|
|
positioner.get_xbounds (self.id)
|
|
def Getybounds (self):
|
|
positioner.get_ybounds (self.id)
|
|
def Setreturn (self,v):
|
|
positioner.set_return (self.id,v)
|
|
###############################################################################
|
|
# This is the Slider class
|
|
|
|
class Slider (XFObject):
|
|
def __init__(self,t=0,x=10,y=10,w=60,h=30,l="Slider"):
|
|
XFObject.__init__ (self)
|
|
self.id=slider.create(t,x,y,w,h,l)
|
|
_objects[str(self.id)]=self
|
|
self.cb=_nocb
|
|
self.args=self
|
|
def Get (self):
|
|
return slider.get_value (self.id)
|
|
def Set (self,v):
|
|
slider.set_value(self.id,v)
|
|
def Getbounds (self):
|
|
return slider.get_bounds (self.id)
|
|
def Setbounds (self,v1,v2):
|
|
slider.set_bounds(self.id,v1,v2)
|
|
def Setreturn (self,v):
|
|
slider.set_return (self.id,v)
|
|
def Setstep (self,v):
|
|
slider.set_step (self.id,v)
|
|
def Setsize (self,v):
|
|
slider.set_size (self.id,v)
|
|
|
|
###############################################################################
|
|
# This is the Valslider class
|
|
|
|
class Valslider (Slider):
|
|
def __init__(self,t=0,x=10,y=10,w=60,h=30,l="Valslider"):
|
|
XFObject.__init__ (self)
|
|
self.id=slider.create_val(t,x,y,w,h,l)
|
|
_objects[str(self.id)]=self
|
|
self.cb=_nocb
|
|
self.args=self
|
|
def Setprecision (self,v):
|
|
slider.set_precision (self.id,v)
|
|
|
|
##############################################################################
|
|
# This is the Timer class
|
|
|
|
class Timer (XFObject):
|
|
def __init__(self,t=1,x=10,y=10,w=60,h=30,l="Timer"):
|
|
XFObject.__init__ (self)
|
|
self.id=timer.create(t,x,y,w,h,l)
|
|
_objects[str(self.id)]=self
|
|
self.cb=_nocb
|
|
self.args=self
|
|
def Set (self,v):
|
|
timer.set(self.id,v)
|
|
def Get (self):
|
|
return timer.get (self.id)
|