Message 1 of 1
function for creating buttons
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Now I have written a tap panel like this, but it needs a lot of code.
So I write a function to do that,
from pyfbsdk import *
from pyfbsdk_additions import *
Name = 'Characters'
def BtnCallBack(control,event):
FBMessageBox(('Look here!'),('Current character is:' + control.Caption),('OK!'),None,None)
# a function for creating layouts
def CreateLayout(Round):
layout = FBLayout()
Round = layout.Caption
x = FBAddRegionParam(8,FBAttachType.kFBAttachLeft,"TabControl")
y = FBAddRegionParam(8,FBAttachType.kFBAttachTop,"TabControl")
w = FBAddRegionParam(-1,FBAttachType.kFBAttachRight,"TabControl")
h = FBAddRegionParam(-1,FBAttachType.kFBAttachBottom,"TabControl")
layout.AddRegion(Round,Name, x, y, w, h)
layout.SetBorder(Round,FBBorderStyle.kFBStandardBorder,True, True,1,0,30,0)
return layout
# a function for creating buttons
def CreateButton(caption,hint,X,Y,W,H,picture,Lyt,callback):
button = FBButton()
button.Caption = caption
button.Hint = hint
x = FBAddRegionParam(X,FBAttachType.kFBAttachLeft,Lyt)
y = FBAddRegionParam(Y,FBAttachType.kFBAttachTop,Lyt)
w = FBAddRegionParam(W,FBAttachType.kFBAttachNone,"")
h = FBAddRegionParam(H,FBAttachType.kFBAttachNone,"")
button.Look = FBButtonLook.kFBLookNormal
button.Style = FBButtonStyle.kFBPushButton
button.SetImageFileNames(picture)
button.OnClick.Add(callback)
return button
def PopulateLayout(mainLyt):
TabControl = FBTabControl()
x = FBAddRegionParam(0,FBAttachType.kFBAttachLeft,"")
y = FBAddRegionParam(0,FBAttachType.kFBAttachTop,"")
w = FBAddRegionParam(-10,FBAttachType.kFBAttachRight,"")
h = FBAddRegionParam(-10,FBAttachType.kFBAttachBottom,"")
mainLyt.AddRegion("TabControl", "TabControl",x,y,w,h)
mainLyt.SetControl("TabControl", TabControl)
# craate first layout
layout1 = CreateLayout('First Tap')
# create a button
btn = CreateButton("picture","On Click!",14,20,30,80,"pictures/picture_01.png","layout1",BtnCallBack)
# show button on layout1
layout1.AddRegion('btn', 'btn',x,y,w,h)
layout1.SetControl('btn', btn)
# craate second layout
layout2 = CreateLayout('Second Tap')
# show layouts on tap panel
TabControl.Add("First Tap",layout1)
TabControl.Add("Second Tap",layout2)
def CreateTool():
t = FBCreateUniqueTool("Tap test")
t.StartSizeX = 400
t.StartSizeY = 400
t.StartPosX = 760
t.StartPosY = 400
PopulateLayout(t)
ShowTool(t)
CreateTool()however, it seems something wrong, when I run this script,I got a button with wrong size and coordinate.
Will anyone give me some advice, please?