def createWidgets(self):
# Main window resizer object
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(topPanel(self, self.SIM), 1, wx.ALL|wx.EXPAND, 5)
sizer.Add(bottomPanel(self, self.SIM), 1, wx.ALL|wx.EXPAND, 5)
#buttons = wx.BoxSizer(wx.HORIZONTAL)
#buttons.Add(wx.Button(self, ID_BUTTON_CHANGE_PIN, "Okay"), 1, wx.ALIGN_LEFT | wx.ALL, 20)
#buttons.Add(wx.Button(self, wxID_CANCEL, "Cancel"), 1, wx.ALIGN_RIGHT | wx.ALL, 20)
#sizer.Add(buttons, 1, wx.ALL)
self.SetSizer(sizer)
self.SetAutoLayout(1)
sizer.Fit(self)
self.Layout()
wx.EVT_CLOSE(self, self.closeWindow)
python类ALIGN_LEFT的实例源码
def create_spin(**kwargs):
panel = kwargs.get('panel')
value = kwargs.get('value')
key = kwargs.get('key')
bind = kwargs.get('bind')
gui = kwargs.get('gui')
item_sizer = wx.BoxSizer(wx.HORIZONTAL)
item_name = MODULE_KEY.join(key)
style = wx.ALIGN_LEFT
item_box = wx.SpinCtrl(panel, id=id_renew(item_name, update=True), min=gui['min'], max=gui['max'],
initial=int(value), style=style)
item_text = wx.StaticText(panel, label=translate_key(item_name))
item_box.Bind(wx.EVT_SPINCTRL, bind)
item_box.Bind(wx.EVT_TEXT, bind)
item_sizer.Add(item_text, 0, wx.ALIGN_CENTER)
item_sizer.Add(item_box)
return {'item': item_sizer, 'text_size': item_text.GetSize()[0], 'text_ctrl': item_text}
def OnDrawItem(self, dc, rect, index):
"""OnDrawItem for Layout."""
face = self.faces[index]
dc.DrawBitmap(face.bmp, rect.x + 2,
((rect.height - face.bmp.GetHeight()) / 2) + rect.y)
textx = rect.x + 2 + face.bmp.GetWidth() + 2
label_rect = wx.Rect(textx, rect.y, rect.width - textx, rect.height)
label = util.LABEL_FACE.format(
face.attr.gender,
face.attr.age,
face.attr.hair,
face.attr.facial_hair,
face.attr.makeup,
face.attr.emotion,
face.attr.occlusion,
face.attr.exposure,
face.attr.head_pose,
face.attr.accessories
)
dc.DrawLabel(label, label_rect, wx.ALIGN_LEFT | wx.ALIGN_TOP)
def __init__(self, parent, name, number, minnamelen, maxnamelen):
wxskinDialog.__init__(self, parent, -1, "Phonebook edit entry")
self.SetAutoLayout(True)
self.name = None
self.number = None
nameTextId = wx.NewId()
# Main window resizer object
border = wx.BoxSizer(wx.VERTICAL)
label = wx.StaticText(self, -1, "Enter the phonebook entry name, number and press OK.")
border.Add(label, 1, wx.ALL, 10)
#fgs = wx.FlexGridSizer(2,3,5,20)
fgs = wx.BoxSizer(wx.HORIZONTAL)
label = wx.StaticText(self, -1, "Name (max %d): " % maxnamelen)
fgs.Add(label, 1, wx.ALIGN_LEFT | wx.LEFT, 10)
self.nameCtrl = wx.TextCtrl(self, nameTextId, name, validator = pySIMvalidator(None, minnamelen, maxnamelen))
fgs.Add(self.nameCtrl, 1, wx.ALIGN_RIGHT | wx.RIGHT, 10)
border.Add(fgs, 1, wx.ALL)
fgs = wx.BoxSizer(wx.HORIZONTAL)
label = wx.StaticText(self, -1, "Number (max 20): ")
fgs.Add(label, 1, wx.ALIGN_LEFT | wx.LEFT, 10)
self.numberCtrl = wx.TextCtrl(self, -1, number, validator = pySIMvalidator("+*#pw0123456789", None, 20))
fgs.Add(self.numberCtrl, 1, wx.ALIGN_RIGHT | wx.RIGHT, 10)
border.Add(fgs, 1, wx.ALL)
buttons = wx.BoxSizer(wx.HORIZONTAL)
buttons.Add(wx.Button(self, ID_BUTTON_OK, "Okay"), 1, wx.ALIGN_LEFT | wx.ALL, 20)
buttons.Add(wx.Button(self, wx.ID_CANCEL, "Cancel"), 1, wx.ALIGN_RIGHT | wx.ALL, 20)
border.Add(buttons, 1, wx.ALL)
wx.EVT_BUTTON(self, ID_BUTTON_OK, self.onOK)
wx.EVT_TEXT_ENTER(self, nameTextId, self.onOK)
self.SetAutoLayout(1);
self.SetSizer(border)
border.Fit(self)
self.Layout()
def __init__(self, parent, name):
wxskinDialog.__init__(self, parent, -1, "Phonebook import")
self.SetAutoLayout(True)
self.function = 0
# Main window resizer object
border = wx.BoxSizer(wx.VERTICAL)
label = wx.StaticText(self, -1, "Name '%s' already exists in SIM phonebook.\n\nDo you want to overwrite exisiting, duplicate or skip!?" % (name))
border.Add(label, 1, wx.ALL, 10)
buttons = wx.BoxSizer(wx.HORIZONTAL)
buttons.Add(wx.Button(self, ID_BUTTON_OVERWRITE, "Overwrite"), 1, wx.ALIGN_LEFT | wx.ALL, 20)
buttons.Add(wx.Button(self, ID_BUTTON_COPY, "Duplicate"), 1, wx.ALIGN_RIGHT | wx.ALL, 20)
buttons.Add(wx.Button(self, ID_BUTTON_SKIP, "Skip"), 1, wx.ALIGN_RIGHT | wx.ALL, 20)
buttons.Add(wx.Button(self, wx.ID_CANCEL, "Cancel"), 1, wx.ALIGN_RIGHT | wx.ALL, 20)
border.Add(buttons, 1, wx.ALL)
self.applyAll = wx.CheckBox(self, ID_CHECKBOX_APPLY_ALL, " Apply to all", wx.Point(65, 40), wx.Size(150, 20), wx.NO_BORDER)
border.Add(self.applyAll, 1, wx.ALIGN_CENTER | wx.ALL)
wx.EVT_BUTTON(self, ID_BUTTON_OVERWRITE, self.onOverwrite)
wx.EVT_BUTTON(self, ID_BUTTON_COPY, self.onDuplicate)
wx.EVT_BUTTON(self, ID_BUTTON_SKIP, self.onSkip)
self.SetAutoLayout(1);
self.SetSizer(border)
border.Fit(self)
self.Layout()
def __init__(self, parent, name, number, minnamelen, maxnamelen):
wxskinDialog.__init__(self, parent, -1, "Phonebook edit entry")
self.SetAutoLayout(True)
self.name = None
self.number = None
nameTextId = wx.NewId()
# Main window resizer object
border = wx.BoxSizer(wx.VERTICAL)
label = wx.StaticText(self, -1, "Enter the phonebook entry name, number and press OK.")
border.Add(label, 1, wx.ALL, 10)
#fgs = wx.FlexGridSizer(2,3,5,20)
fgs = wx.BoxSizer(wx.HORIZONTAL)
label = wx.StaticText(self, -1, "Name (max %d): " % maxnamelen)
fgs.Add(label, 1, wx.ALIGN_LEFT | wx.LEFT, 10)
self.nameCtrl = wx.TextCtrl(self, nameTextId, name, validator = pySIMvalidator(None, minnamelen, maxnamelen))
fgs.Add(self.nameCtrl, 1, wx.ALIGN_RIGHT | wx.RIGHT, 10)
border.Add(fgs, 1, wx.ALL)
fgs = wx.BoxSizer(wx.HORIZONTAL)
label = wx.StaticText(self, -1, "Number (max 20): ")
fgs.Add(label, 1, wx.ALIGN_LEFT | wx.LEFT, 10)
self.numberCtrl = wx.TextCtrl(self, -1, number, validator = pySIMvalidator("+*#pw0123456789", None, 20))
fgs.Add(self.numberCtrl, 1, wx.ALIGN_RIGHT | wx.RIGHT, 10)
border.Add(fgs, 1, wx.ALL)
buttons = wx.BoxSizer(wx.HORIZONTAL)
buttons.Add(wx.Button(self, ID_BUTTON_OK, "Okay"), 1, wx.ALIGN_LEFT | wx.ALL, 20)
buttons.Add(wx.Button(self, wx.ID_CANCEL, "Cancel"), 1, wx.ALIGN_RIGHT | wx.ALL, 20)
border.Add(buttons, 1, wx.ALL)
wx.EVT_BUTTON(self, ID_BUTTON_OK, self.onOK)
wx.EVT_TEXT_ENTER(self, nameTextId, self.onOK)
self.SetAutoLayout(1);
self.SetSizer(border)
border.Fit(self)
self.Layout()
def __init__(self, parent, name):
wxskinDialog.__init__(self, parent, -1, "Phonebook import")
self.SetAutoLayout(True)
self.function = 0
# Main window resizer object
border = wx.BoxSizer(wx.VERTICAL)
label = wx.StaticText(self, -1, "Name '%s' already exists in SIM phonebook.\n\nDo you want to overwrite exisiting, duplicate or skip!?" % (name))
border.Add(label, 1, wx.ALL, 10)
buttons = wx.BoxSizer(wx.HORIZONTAL)
buttons.Add(wx.Button(self, ID_BUTTON_OVERWRITE, "Overwrite"), 1, wx.ALIGN_LEFT | wx.ALL, 20)
buttons.Add(wx.Button(self, ID_BUTTON_COPY, "Duplicate"), 1, wx.ALIGN_RIGHT | wx.ALL, 20)
buttons.Add(wx.Button(self, ID_BUTTON_SKIP, "Skip"), 1, wx.ALIGN_RIGHT | wx.ALL, 20)
buttons.Add(wx.Button(self, wx.ID_CANCEL, "Cancel"), 1, wx.ALIGN_RIGHT | wx.ALL, 20)
border.Add(buttons, 1, wx.ALL)
self.applyAll = wx.CheckBox(self, ID_CHECKBOX_APPLY_ALL, " Apply to all", wx.Point(65, 40), wx.Size(150, 20), wx.NO_BORDER)
border.Add(self.applyAll, 1, wx.ALIGN_CENTER | wx.ALL)
wx.EVT_BUTTON(self, ID_BUTTON_OVERWRITE, self.onOverwrite)
wx.EVT_BUTTON(self, ID_BUTTON_COPY, self.onDuplicate)
wx.EVT_BUTTON(self, ID_BUTTON_SKIP, self.onSkip)
self.SetAutoLayout(1);
self.SetSizer(border)
border.Fit(self)
self.Layout()
def __init__(self, parent, date, number):
wxskinDialog.__init__(self, parent, -1, "SMS import")
self.SetAutoLayout(False)
self.function = 0
# Main window resizer object
border = wx.BoxSizer(wx.VERTICAL)
label = wx.StaticText(self, -1, "SMS from '%s' on '%s' already exists in SMS folder.\n\nDo you want to overwrite exisiting, duplicate or skip!?" % (number, date))
border.Add(label, 1, wx.ALL, 10)
buttons = wx.BoxSizer(wx.HORIZONTAL)
buttons.Add(wx.Button(self, ID_BUTTON_OVERWRITE, "Overwrite"), 1, wx.ALIGN_LEFT | wx.ALL, 20)
buttons.Add(wx.Button(self, ID_BUTTON_COPY, "Duplicate"), 1, wx.ALIGN_RIGHT | wx.ALL, 20)
buttons.Add(wx.Button(self, ID_BUTTON_SKIP, "Skip"), 1, wx.ALIGN_RIGHT | wx.ALL, 20)
buttons.Add(wx.Button(self, wx.ID_CANCEL, "Cancel"), 1, wx.ALIGN_RIGHT | wx.ALL, 20)
border.Add(buttons, 1, wx.ALL)
self.applyAll = wx.CheckBox(self, ID_CHECKBOX_APPLY_ALL, " Apply to all", wx.Point(65, 40), wx.Size(150, 20), wx.NO_BORDER)
border.Add(self.applyAll, 1, wx.ALIGN_CENTER | wx.ALL)
wx.EVT_BUTTON(self, ID_BUTTON_OVERWRITE, self.onOverwrite)
wx.EVT_BUTTON(self, ID_BUTTON_COPY, self.onDuplicate)
wx.EVT_BUTTON(self, ID_BUTTON_SKIP, self.onSkip)
#EVT_CHECKBOX(self, ID_CHECKBOX_APPLY_ALL, self.EvtCheckBox)
self.SetAutoLayout(1);
self.SetSizer(border)
border.Fit(self)
self.Layout()
def UpdateCallHistory(self):
history = self.wxapp.dialed_history[:50]
history.reverse()
iterhistory = iter(history)
startrow = 3
startcol = 1
row = 0
col = 0
windows = iter(list(self.recenthistory_panel.GetChildren()))
#dont remove the transparent header.. just skip over it #NEXT IT ;)
next(windows)
for window in windows:
self.recenthistory_sizer.Detach(window)
window.Destroy()
self.recenthistory_sizer.Layout()
#self.recenthistory_sizer.AddSpacer( ( 5, 1 ), wx.GBPosition( 0, startcol + col ), wx.GBSpan( 1, 1 ), wx.FIXED_MINSIZE, 0 )
#self.recenthistory_sizer.AddSpacer( ( 5, 1 ), wx.GBPosition( 0, startcol + col + 2 ), wx.GBSpan( 1, 1 ), wx.FIXED_MINSIZE, 0 )
#self.recenthistory_sizer.AddSpacer( ( 5, 1 ), wx.GBPosition( 0, startcol + col + 4 ), wx.GBSpan( 1, 1 ), wx.FIXED_MINSIZE, 0 )
for row in range(5):
try:
for col in range(3):
call = next(iterhistory)
#print "Adding call to pane;", call
rc1 = LastdialedPanel(call[0], call[1], self.dialRecent, u"images/panel/recentcallbg.png",
self.recenthistory_panel, wx.ID_ANY, )
self.recenthistory_sizer.Add(rc1, wx.GBPosition(startrow + row + 1, startcol + col),
wx.GBSpan(1, 1), wx.ALIGN_LEFT, 0)
if row != 0:
try:
self.recenthistory_sizer.AddSpacer(( 2, 63 ), wx.GBPosition(startrow + row, 0), wx.GBSpan(1, 1),
wx.FIXED_MINSIZE, 0)
except:
pass
except StopIteration:
break
def __init__(self, parent, id=wx.ID_ANY, label="", style=wx.ALIGN_LEFT, size=(-1,-1)):
wx.StaticText.__init__(self, parent, id, label=label, style=style, size=size)
def __init__(self, parent, id=wx.ID_ANY, value="", style=wx.ALIGN_LEFT, size=(-1,-1)):
wx.TextCtrl.__init__(self, parent, id, value=value, style=style, size=size)
def __init__(self, parent, id=wx.ID_ANY, label="", style=wx.ALIGN_LEFT, size=(-1,-1)):
wx.Button.__init__(self, parent, id, label=label, style=style, size=size)
def __init__(self, parent, id=wx.ID_ANY, bitmap=wx.NullBitmap, style=wx.ALIGN_LEFT, size=(-1,-1)):
wx.BitmapButton.__init__(self, parent, id, bitmap=bitmap, style=style, size=size)
def __init__(self, parent, id=wx.ID_ANY, label="", style=wx.ALIGN_LEFT, size=(-1,-1)):
wx.CheckBox.__init__(self, parent, id, label=label, style=style, size=size)
def __init__(self, parent, id=wx.ID_ANY, style=wx.ALIGN_LEFT, size=(-1,-1), spinfunc=None):
wx.Panel.__init__(self, parent)
self.hbox = wx.BoxSizer(wx.HORIZONTAL)
self.buttonP = wx.Button(self, -1, label="+", size=size)
self.buttonM = wx.Button(self, -1, label="-", size=size)
self.buttonP.Bind(wx.EVT_BUTTON, self.OnP)
self.buttonM.Bind(wx.EVT_BUTTON, self.OnM)
self.repeatTimerP = wx.Timer(self)
self.repeatTimerM = wx.Timer(self)
self.Bind(wx.EVT_TIMER, self.RepeatValueP, self.repeatTimerP)
self.Bind(wx.EVT_TIMER, self.RepeatValueM, self.repeatTimerM)
self.buttonP.Bind(wx.EVT_LEFT_DOWN, self.OnButPDown)
self.buttonM.Bind(wx.EVT_LEFT_DOWN, self.OnButMDown)
self.buttonP.Bind(wx.EVT_LEFT_UP, self.OnButPUp)
self.buttonM.Bind(wx.EVT_LEFT_UP, self.OnButMUp)
self.hbox.Add(self.buttonM, 0)
self.hbox.Add(self.buttonP, 0)
self.SetSizer(self.hbox)
self.Fit()
self.Layout()
self.Show()
self.max = 0
self.min = 0
self.range = 0
self.value = 0
self.SpinFunc = spinfunc
self.n = 1
self.t1 = time()
self.t2 = time()
def update_current_search_tab(self):
sizer = self.current_sizer
sizer.Clear(True)
sizer.RemoveGrowableRow(0)
sizer.RemoveGrowableRow(1)
sizer.RemoveGrowableCol(0)
sizer.RemoveGrowableCol(2)
if( len(self.current_search) == 0 ):
sizer.AddGrowableRow(0)
sizer.AddGrowableCol(0)
sizer.Add(wx.StaticText(parent=self.current_tab,label="There are no search items."),flag=wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL,pos=(0,0))
else:
sizer.AddGrowableCol(2)
for i in range(len(self.current_search)):
if i%2 == 0:
not_box = wx.ComboBox(parent=self.current_tab,value=self.current_search[i][0],choices=['','not'],style=wx.CB_READONLY,size=(60,-1),id=i/2)
not_box.Bind(wx.EVT_COMBOBOX,self.not_search_item)
sizer.Add(not_box,pos=(i,0),flag=wx.ALIGN_LEFT|wx.TOP,border=5)
key = self.current_search[i][1]
value = self.current_search[i][2]
sizer.Add(wx.StaticText(parent=self.current_tab,label=key+" = '"+value+"'"),pos=(i,1),flag=wx.TOP|wx.LEFT|wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL,border=5)
removeButton = wx.Button(self.current_tab,label='Remove',id=i/2)
removeButton.Bind(wx.EVT_BUTTON,self.remove_search_item)
sizer.Add(removeButton,pos=(i,2),flag=wx.ALIGN_RIGHT|wx.TOP,border=5)
else:
and_or_box = wx.ComboBox(parent=self.current_tab,value=self.current_search[i],choices=['and','or'],style=wx.CB_READONLY,size=(60,-1),id=(i-1)/2)
and_or_box.Bind(wx.EVT_COMBOBOX,self.and_or_search_item)
sizer.Add(and_or_box,pos=(i,0),flag=wx.ALIGN_LEFT|wx.TOP,border=5)
self.current_tab.EnableScrolling(x_scrolling=True,y_scrolling=True)
self.current_tab.SetScrollbars(20,20,10,10)
self.current_tab.Fit()
def update_current_search_tab(self):
sizer = self.current_sizer
sizer.Clear(True)
sizer.RemoveGrowableRow(0)
sizer.RemoveGrowableRow(1)
sizer.RemoveGrowableCol(0)
sizer.RemoveGrowableCol(2)
if( len(self.current_search) == 0 ):
sizer.AddGrowableRow(0)
sizer.AddGrowableCol(0)
sizer.Add(wx.StaticText(parent=self.current_tab,label="There are no search items."),flag=wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL,pos=(0,0))
else:
sizer.AddGrowableCol(2)
for i in range(len(self.current_search)):
if i%2 == 0:
not_box = wx.ComboBox(parent=self.current_tab,value=self.current_search[i][0],choices=['','not'],style=wx.CB_READONLY,size=(60,-1),id=i/2)
not_box.Bind(wx.EVT_COMBOBOX,self.not_search_item)
sizer.Add(not_box,pos=(i,0),flag=wx.ALIGN_LEFT|wx.TOP,border=5)
key = self.current_search[i][1]
value = self.current_search[i][2]
sizer.Add(wx.StaticText(parent=self.current_tab,label=key+" = '"+value+"'"),pos=(i,1),flag=wx.TOP|wx.LEFT|wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL,border=5)
removeButton = wx.Button(self.current_tab,label='Remove',id=i/2)
removeButton.Bind(wx.EVT_BUTTON,self.remove_search_item)
sizer.Add(removeButton,pos=(i,2),flag=wx.ALIGN_RIGHT|wx.TOP,border=5)
else:
and_or_box = wx.ComboBox(parent=self.current_tab,value=self.current_search[i],choices=['and','or'],style=wx.CB_READONLY,size=(60,-1),id=(i-1)/2)
and_or_box.Bind(wx.EVT_COMBOBOX,self.and_or_search_item)
sizer.Add(and_or_box,pos=(i,0),flag=wx.ALIGN_LEFT|wx.TOP,border=5)
self.current_tab.EnableScrolling(x_scrolling=True,y_scrolling=True)
self.current_tab.SetScrollbars(20,20,10,10)
self.current_tab.Fit()
def __init__(self, *args, **kwargs):
CT.CustomTreeCtrl.__init__(self, *args, **kwargs)
self.BackgroundBitmap = None
self.BackgroundAlign = wx.ALIGN_LEFT | wx.ALIGN_TOP
self.AddMenu = None
self.Enabled = False
self.Bind(wx.EVT_SCROLLWIN, self.OnScroll)
self.Bind(wx.EVT_LEFT_UP, self.OnLeftUp)
def create_checkbox(**kwargs):
panel = kwargs.get('panel')
value = kwargs.get('value')
key = kwargs.get('key')
bind = kwargs.get('bind')
item_sizer = wx.BoxSizer(wx.HORIZONTAL)
style = wx.ALIGN_CENTER_VERTICAL
item_key = MODULE_KEY.join(key)
item_box = wx.CheckBox(panel, id=id_renew(item_key, update=True),
label=translate_key(item_key), style=style)
item_box.SetValue(value)
item_box.Bind(wx.EVT_CHECKBOX, bind)
item_sizer.Add(item_box, 0, wx.ALIGN_LEFT)
return {'item': item_sizer}
def __init__(self, parent, confidence_faces, size=util.MAX_THUMBNAIL_SIZE):
super(WrapCaptionFaceList, self).__init__()
for face, confidence in confidence_faces:
vsizer = wx.BoxSizer(wx.VERTICAL)
bitmap = MyStaticBitmap(parent, face.bmp, size=size)
vsizer.Add(bitmap)
static_text = wx.StaticText(parent, label='%.2f' % confidence)
vsizer.Add(static_text)
self.Add(vsizer, 0, wx.ALIGN_LEFT | wx.EXPAND)
vsizer.Layout()
if len(confidence_faces) == 0:
static_text = wx.StaticText(parent, label='no one')
self.Add(static_text, 0, wx.ALIGN_LEFT | wx.EXPAND)
self.Layout()
def set_data(self, faces, res_tot, size=util.MAX_THUMBNAIL_SIZE):
"""Set the data."""
self.sizer.Clear(True)
static_text_title = wx.StaticText(
self, label='Find {} Similar Candidate Faces Results:'.format(
len(faces)))
self.sizer.Add(static_text_title, 0, wx.EXPAND)
for mode in ('matchPerson', 'matchFace'):
static_text_caption = wx.StaticText(
self, label='{} Mode:'.format(mode))
self.sizer.Add(static_text_caption, 0, wx.EXPAND)
for face_id, face in faces.iteritems():
static_line = wx.StaticLine(self)
self.sizer.Add(static_line, 0, wx.EXPAND)
bitmap = MyStaticBitmap(self, face.bmp, size=size)
self.sizer.Add(bitmap, 0, wx.ALIGN_LEFT)
static_text = wx.StaticText(
self, label='Similar Faces Ranked by Similarity')
self.sizer.Add(static_text, 0, wx.ALIGN_LEFT)
confidence_face_list = WrapCaptionFaceList(
self, res_tot[mode][face_id])
self.sizer.Add(confidence_face_list, 0, wx.EXPAND)
self.SetSizerAndFit(self.sizer)
def __init__(self, parent, faces, size=util.MAX_THUMBNAIL_SIZE):
super(WrapFaceList, self).__init__(parent)
self.sizer = wx.WrapSizer()
self.sizer.SetMinSize((util.MAX_IMAGE_SIZE, -1))
for face in faces:
bitmap = MyStaticBitmap(self, face.bmp, size=size)
self.sizer.Add(bitmap, 0, wx.ALIGN_LEFT | wx.EXPAND)
self.SetSizer(self.sizer)
self.Layout()
def set_data(self, caption_faces_list, size=util.MAX_THUMBNAIL_SIZE):
"""Set the data."""
self.sizer.Clear(True)
for caption, faces in caption_faces_list.iteritems():
static_text = wx.StaticText(self, label=caption)
self.sizer.Add(static_text, 0, wx.ALIGN_LEFT)
wrap_face_list = WrapFaceList(self, faces, size)
self.sizer.Add(wrap_face_list, 0, wx.EXPAND)
self.SetSizerAndFit(self.sizer)
def __init__(self, *args, **kwargs):
wx.Panel.__init__(self, *args, **kwargs)
## add a button:
theButton1 = wx.Button(self, label="Push Me")
theButton1.Bind(wx.EVT_BUTTON, self.onButton)
## add a static text lable:
label1 = wx.StaticText(self, label="Input Box:")
## add a text control:
self.inTextControl = wx.TextCtrl(self)
## add another button:
theButton2 = wx.Button(self, label="GetData")
theButton2.Bind(wx.EVT_BUTTON, self.onGetData)
## add a static text lable:
label2 = wx.StaticText(self, label="Output Box:")
## and another text control:
self.outTextControl = wx.TextCtrl(self, style=wx.TE_READONLY)
## do the layout
buttonSizer = wx.BoxSizer(wx.VERTICAL)
buttonSizer.Add(theButton1, 0, wx.GROW | wx.ALL, 4)
buttonSizer.Add(label1, 0, wx.ALIGN_LEFT | wx.TOP, 4)
buttonSizer.Add(self.inTextControl, 0, wx.GROW | wx.ALL, 4)
buttonSizer.Add((150, 10))
buttonSizer.Add(theButton2, 0, wx.GROW | wx.ALL, 4)
buttonSizer.Add(label2, 0, wx.ALIGN_LEFT | wx.TOP, 4)
buttonSizer.Add(self.outTextControl, 0, wx.GROW | wx.ALL, 4)
## need another sizer to get the horizonal placement right:
mainSizer = wx.BoxSizer(wx.HORIZONTAL)
mainSizer.Add((1,1), 1) # stretchable space
mainSizer.Add(buttonSizer, 0, wx.ALIGN_TOP) # the sizer with the buttons in it
mainSizer.Add((1,1), 1) # stretchable space
self.SetSizer(mainSizer)
def _build(self):
"""
Building widgets and setting static widget data.
"""
parent = wx.Panel(self, -1)
sizer0 = wx.BoxSizer(wx.VERTICAL)
sizer0.Add(self._buildTopBar(parent), 0, wx.ALIGN_LEFT|wx.GROW, 5)
splitter = wx.SplitterWindow(parent, -1)
#- TOP PART --------------------------------------------------------#
topParent = wx.Panel(splitter, -1)
topSizer = wx.BoxSizer(wx.VERTICAL)
self.treeCtrlItems = wx.TreeCtrl(topParent, -1,
style = wx.TR_TWIST_BUTTONS|wx.TR_LINES_AT_ROOT|wx.TR_HAS_BUTTONS|wx.TR_HIDE_ROOT|wx.TR_MULTIPLE)
topSizer.Add(self.treeCtrlItems, 1, wx.EXPAND, 5)
topParent.SetAutoLayout( True )
topParent.SetSizer(topSizer )
topSizer.Fit(topParent)
topSizer.SetSizeHints(topParent)
#-------------------------------------------------------------------#
#- BOTTOM PART -----------------------------------------------------#
bottomParent = wx.Panel(splitter,-1)
bottomSizer = wx.BoxSizer(wx.VERTICAL)
self.txtCtrlLog=wx_StdoutLog(bottomParent, -1, "",
size= wx.Size(-1, 10),
style=wx.TE_MULTILINE|wx.TE_READONLY|wx.TE_RICH)
bottomSizer.Add(self.txtCtrlLog, 1, wx.EXPAND, 5)
bottomParent.SetAutoLayout( True )
bottomParent.SetSizer(bottomSizer )
bottomSizer.Fit(bottomParent)
bottomSizer.SetSizeHints(bottomParent)
#-------------------------------------------------------------------#
splitter.SplitHorizontally(topParent,bottomParent, -100)
sizer0.Add(splitter, 1, wx.EXPAND|wx.ALIGN_CENTRE, 5)
self.buttonClose = wx.Button(parent, -1, 'Close') # buttonClose
sizer0.Add(self.buttonClose, 0, wx.ALIGN_CENTRE|wx.ALL, 5)
parent.SetAutoLayout( True )
parent.SetSizer( sizer0 )
sizer0.Fit( parent)
sizer0.SetSizeHints( parent)
def createWidgets(self):
# Main window resizer object
border = wx.BoxSizer(wx.VERTICAL)
label = wxskinStaticText(self, -1, "Your old and new PIN must be exactly 4 digits in length.")
border.Add(label, 1, wx.ALL, 10)
fgs = wx.BoxSizer(wx.HORIZONTAL)
label = wxskinStaticText(self, -1, "Current PIN: ")
fgs.Add(label, 1, wx.ALIGN_LEFT | wx.LEFT, 10)
if self.SIM.chv1_enabled:
self.textCtrlOldPin = wx.TextCtrl(self, -1, '', validator = pySIMvalidator("0123456789", 4, 4), style=wx.TE_PASSWORD)
else:
self.textCtrlOldPin = wx.TextCtrl(self, -1, '(Not set)', style=wx.TE_READONLY)
fgs.Add(self.textCtrlOldPin, 1, wx.ALIGN_RIGHT | wx.RIGHT, 10)
border.Add(fgs, 1, wx.ALL)
fgs = wx.BoxSizer(wx.HORIZONTAL)
label = wxskinStaticText(self, -1, "New PIN: ")
fgs.Add(label, 1, wx.ALIGN_LEFT | wx.LEFT, 10)
self.textCtrlNewPin1 = wx.TextCtrl(self, -1, '', validator = pySIMvalidator("0123456789", 4, 4), style=wx.TE_PASSWORD)
fgs.Add(self.textCtrlNewPin1, 1, wx.ALIGN_RIGHT | wx.RIGHT, 10)
border.Add(fgs, 1, wx.ALL)
fgs = wx.BoxSizer(wx.HORIZONTAL)
label = wxskinStaticText(self, -1, "New PIN (verify): ")
fgs.Add(label, 1, wx.ALIGN_LEFT | wx.LEFT, 10)
self.textCtrlNewPin2 = wx.TextCtrl(self, -1, '', validator = pySIMvalidator("0123456789", 4, 4), style=wx.TE_PASSWORD)
fgs.Add(self.textCtrlNewPin2, 1, wx.ALIGN_RIGHT | wx.RIGHT, 10)
border.Add(fgs, 1, wx.ALL)
buttons = wx.BoxSizer(wx.HORIZONTAL)
buttons.Add(wx.Button(self, ID_BUTTON_CHANGE_PIN, "Okay"), 1, wx.ALIGN_LEFT | wx.ALL, 20)
buttons.Add(wx.Button(self, wx.ID_CANCEL, "Cancel"), 1, wx.ALIGN_RIGHT | wx.ALL, 20)
border.Add(buttons, 1, wx.ALL)
wx.EVT_BUTTON(self, ID_BUTTON_CHANGE_PIN, self.onOK)
self.SetAutoLayout(1);
self.SetSizer(border)
border.Fit(self)
self.Layout()
def update_my_library_grid(self):
self.my_library.sort(key=self.key_sort,reverse=(True if self.my_library_sort_by[1]=='^' else False))
self.parent.statusbar.SetStatusText('Displaying library...')
vcenter = wx.grid.GridCellAttr()
vcenter.SetAlignment(wx.ALIGN_LEFT,wx.ALIGN_CENTER)
self.my_library_grid.DeleteRows(0,self.my_library_grid.GetNumberRows())
self.my_library_grid.DeleteCols(0,self.my_library_grid.GetNumberCols())
nCols = 0
for colName in self.my_library_fields:
self.my_library_grid.AppendCols()
colLabel = colName if self.my_library_sort_by[0]!=colName else (colName+' '+self.my_library_sort_by[1])
self.my_library_grid.SetColLabelValue(nCols,colLabel)
nCols += 1
self.my_library_grid.Hide()
for card in self.my_library:
r = self.my_library_grid.GetNumberRows()
self.my_library_grid.AppendRows()
nCols = 0
for colName in self.my_library_fields:
self.my_library_grid.SetCellValue(r,nCols,unicode(card[COL_TRANSLATE[colName]]))
nCols += 1
self.my_library_grid.SetRowAttr(r,vcenter)
self.my_library_grid.EnableDragRowSize(False)
self.parent.progressbar.SetValue(int(float(r)/float(len(self.my_library))*100))
self.parent.progressbar.Update()
for i in range(self.my_library_grid.GetNumberCols()):
self.my_library_grid.AutoSizeColumn(i)
self.parent.progressbar.SetValue(0)
self.my_library_grid.Show()
self.my_library_grid.SetRowLabelSize(wx.grid.GRID_AUTOSIZE)
self.my_library_grid.SetColLabelSize(wx.grid.GRID_AUTOSIZE)
if len(self.my_library) > 0:
self.parent.card_info.update_card(self.my_library[0])
self.parent.statusbar.SetStatusText('Ready.')
self.my_library_tab.EnableScrolling(x_scrolling=True,y_scrolling=True)
self.my_library_tab.Fit()
def update_results_grid(self):
self.results.sort(key=self.key_sort,reverse=(True if self.result_sort_by[1]=='^' else False))
self.parent.statusbar.SetStatusText('Displaying results...')
vcenter = wx.grid.GridCellAttr()
vcenter.SetAlignment(wx.ALIGN_LEFT,wx.ALIGN_CENTER)
self.results_grid.DeleteRows(0,self.results_grid.GetNumberRows())
self.results_grid.DeleteCols(0,self.results_grid.GetNumberCols())
nCols = 0
for colName in self.result_fields:
self.results_grid.AppendCols()
colLabel = colName if self.result_sort_by[0]!=colName else (colName+' '+self.result_sort_by[1])
self.results_grid.SetColLabelValue(nCols,colLabel)
nCols += 1
self.results_grid.Hide()
for card in self.results:
r = self.results_grid.GetNumberRows()
self.results_grid.AppendRows()
nCols = 0
for colName in self.result_fields:
self.results_grid.SetCellValue(r,nCols,unicode(card[COL_TRANSLATE[colName]]))
nCols += 1
self.results_grid.SetRowAttr(r,vcenter)
self.results_grid.EnableDragRowSize(False)
self.parent.progressbar.SetValue(int(float(r)/float(len(self.results))*100))
self.parent.progressbar.Update()
self.results_grid.AutoSize()
self.parent.progressbar.SetValue(0)
self.results_grid.Show()
self.results_grid.SetRowLabelSize(wx.grid.GRID_AUTOSIZE)
self.results_grid.SetColLabelSize(wx.grid.GRID_AUTOSIZE)
if len(self.results) > 0:
self.parent.card_info.update_card(self.results[0])
self.parent.statusbar.SetStatusText('Found %d matches.' % len(self.results))
self.results_tab.EnableScrolling(x_scrolling=True,y_scrolling=True)
self.results_tab.Fit()
def __init__(self, parent):
super(DownloaderDialog, self).__init__(parent, title="pyjam Downloader",
style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)
self.parent = parent
self.audio_links = wx.TextCtrl(self)
audio_link_text = wx.StaticText(self, label="URL(s) (Separate with commas)")
self.out_dir = wx.DirPickerCtrl(self, path=os.path.abspath("downloads"))
out_dir_text = wx.StaticText(self, label="Output directory")
warning_text = wx.StaticText(self, style=wx.ALIGN_CENTRE_HORIZONTAL,
label=("Note: The program will freeze for a bit while it processes the URL "
"before downloading"))
warning_text.Wrap(self.GetSize()[0])
search_button = wx.Button(self, label="Search")
top_sizer = wx.BoxSizer(wx.VERTICAL)
control_sizer = wx.BoxSizer(wx.VERTICAL)
text_sizer = wx.BoxSizer(wx.VERTICAL)
button_sizer = self.CreateButtonSizer(wx.OK | wx.CANCEL)
control_sizer.Add(audio_link_text, 0, wx.ALL ^ wx.LEFT | wx.ALIGN_LEFT, 3)
control_sizer.Add(self.audio_links, 0, wx.ALL ^ wx.LEFT ^ wx.TOP | wx.ALIGN_LEFT | wx.EXPAND, 5)
control_sizer.Add(out_dir_text, 0, wx.ALL ^ wx.LEFT | wx.ALIGN_LEFT, 3)
control_sizer.Add(self.out_dir, 0, wx.ALL ^ wx.LEFT ^ wx.TOP | wx.ALIGN_LEFT | wx.EXPAND, 5)
text_sizer.Add(warning_text, 0, wx.ALL | wx.ALIGN_CENTER, 5)
button_sizer.Add(search_button)
top_sizer.Add(control_sizer, 1, wx.ALL | wx.EXPAND | wx.ALIGN_TOP, 5)
top_sizer.Add(text_sizer, 0, wx.ALL | wx.ALIGN_CENTER, 5)
top_sizer.Add(button_sizer, 0, wx.ALL | wx.ALIGN_CENTER, 5)
self.Bind(wx.EVT_BUTTON, handler=self.on_ok, id=wx.ID_OK)
self.Bind(wx.EVT_BUTTON, handler=lambda x: SearchDialog(self), source=search_button)
self.downloader = None
self.progress_dialog = None
self.num_songs = 0
self.SetSizerAndFit(top_sizer)
self.Center()
self.ShowModal()
def __init__(self, *args, **kwargs):
if 'size' not in kwargs:
kwargs['size'] = (640, 480)
super(Dialog, self).__init__(*args, **kwargs)
self._OM = ObjectManager(self)
self.currentwellindex = 0
self.currentrocktableindex = 0
self.tables = []
self.rocktablemap = [rocktable.uid for rocktable in self._OM.list('rocktable')]
work_table = []
for rocktable in self._OM.list('rocktable'):
work_table.append(RockTable(rocktable.uid))
self.tables.append(work_table)
self.grid = wx.grid.Grid(self)
self.grid.SetDefaultColSize(100)
# else:
self.grid.SetTable(self.tables[self.currentwellindex][self.currentrocktableindex])
self.grid.Bind(wx.grid.EVT_GRID_CELL_LEFT_DCLICK, self.on_cell_dlclick)
self.grid.Bind(wx.grid.EVT_GRID_LABEL_LEFT_DCLICK, self.on_label_dlclick)
toolbar_sizer = wx.BoxSizer(wx.HORIZONTAL)
self.rocktable_choice = wx.Choice(self)
self.rocktable_choice.AppendItems([self._OM.get(rocktableuid).name for rocktableuid in self.rocktablemap])
self.rocktable_choice.SetSelection(self.currentrocktableindex)
self.rocktable_choice.Bind(wx.EVT_CHOICE, self.on_rocktable_choice)
add_rocktype_button = wx.Button(self, label='ADD ROCK TYPE')
add_rocktype_button.Bind(wx.EVT_BUTTON, self.on_add_rocktype)
remove_rocktype_button = wx.Button(self, label='REM ROCK TYPE')
remove_rocktype_button.Bind(wx.EVT_BUTTON, self.on_remove_rocktype)
toolbar_sizer.Add(self.rocktable_choice, 1, wx.ALIGN_LEFT)
toolbar_sizer.Add(add_rocktype_button, 0, wx.ALIGN_LEFT)
toolbar_sizer.Add(remove_rocktype_button, 0, wx.ALIGN_LEFT)
main_sizer = wx.BoxSizer(wx.VERTICAL)
main_sizer.Add(toolbar_sizer, proportion=0, flag=wx.EXPAND)
main_sizer.Add(self.grid, proportion=1, flag=wx.EXPAND)
self.SetSizer(main_sizer)