Ignore:
Timestamp:
Mar 9, 2020 4:49:58 PM (3 years ago)
Author:
toby
Message:

expand proxy GUI for more lines

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIctrlGUI.py

    r4345 r4352  
    24462446    :param str values: default input values, if any
    24472447    :param int size: length of the input box in pixels
     2448    :param bool addRows: if True, users can add rows to the table
     2449      (default is False)
     2450    :param str hlp: if supplied, a help button is added to the dialog that
     2451      can be used to display the supplied help text in this variable.
    24482452    '''
    2449     def __init__(self,parent,title,prompts,values=[],size=-1):
    2450        
     2453    def __init__(self,parent,title,prompts,values=[],size=-1,
     2454                     addRows=False,hlp=None):
    24512455        wx.Dialog.__init__(self,parent,wx.ID_ANY,title,
    24522456                           pos=wx.DefaultPosition,
    24532457                           style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER)
    2454         self.values = values
    2455         self.prompts = prompts
     2458        self.values = list(values)
     2459        self.prompts = list(prompts)
     2460        self.addRows = addRows
     2461        self.size = size
     2462        self.hlp = hlp
    24562463        self.CenterOnParent()
     2464        self.Paint()
     2465
     2466    def Paint(self):
     2467        if self.GetSizer():
     2468            self.GetSizer().Clear(True)
    24572469        mainSizer = wx.BoxSizer(wx.VERTICAL)
     2470        if self.hlp:
     2471            btnsizer = wx.BoxSizer(wx.HORIZONTAL)
     2472            hlp = HelpButton(self,self.hlp)
     2473            btnsizer.Add((-1,-1),1, wx.EXPAND, 1)
     2474            btnsizer.Add(hlp,0,wx.ALIGN_RIGHT|wx.ALL)
     2475            mainSizer.Add(btnsizer,0,wx.ALIGN_CENTER|wx.EXPAND)
    24582476        promptSizer = wx.FlexGridSizer(0,2,5,5)
     2477        promptSizer.AddGrowableCol(1,1)
    24592478        self.Indx = {}
    2460         for prompt,value in zip(prompts,values):
    2461             promptSizer.Add(wx.StaticText(self,-1,prompt),0,WACV)
    2462             valItem = wx.TextCtrl(self,-1,value=value,style=wx.TE_PROCESS_ENTER,size=(size,-1))
     2479        for prompt,value in zip(self.prompts,self.values):
     2480            promptSizer.Add(wx.StaticText(self,-1,prompt),0,WACV,0)
     2481            valItem = wx.TextCtrl(self,-1,value=value,style=wx.TE_PROCESS_ENTER,size=(self.size,-1))
    24632482            self.Indx[valItem.GetId()] = prompt
    24642483            valItem.Bind(wx.EVT_TEXT,self.newValue)
    24652484            promptSizer.Add(valItem,1,WACV|wx.EXPAND,1)
    24662485        mainSizer.Add(promptSizer,1,wx.ALL|wx.EXPAND,1)
    2467         btnsizer = wx.StdDialogButtonSizer()
     2486        btnsizer = wx.BoxSizer(wx.HORIZONTAL)
    24682487        OKbtn = wx.Button(self, wx.ID_OK)
    24692488        OKbtn.SetDefault()
    2470         btnsizer.AddButton(OKbtn)
     2489        btnsizer.Add((1,1),1,wx.EXPAND,1)
     2490        btnsizer.Add(OKbtn)
    24712491        btn = wx.Button(self, wx.ID_CANCEL)
    2472         btnsizer.AddButton(btn)
    2473         btnsizer.Realize()
    2474         mainSizer.Add(btnsizer,0,wx.ALIGN_CENTER)
     2492        btnsizer.Add(btn)
     2493        btnsizer.Add((1,1),1,wx.EXPAND,1)
     2494        if self.addRows:
     2495            btn = wx.Button(self, wx.ID_ANY,'+',style=wx.BU_EXACTFIT)
     2496            btn.Bind(wx.EVT_BUTTON,self.onExpand)
     2497            btnsizer.Add(btn,0,wx.ALIGN_RIGHT)
     2498        mainSizer.Add(btnsizer,0,wx.ALIGN_CENTER|wx.EXPAND)
    24752499        self.SetSizer(mainSizer)
    24762500        self.Fit()
     2501
     2502    def onExpand(self,event):
     2503        self.values.append('')
     2504        self.prompts.append('item '+str(len(self.values)))
     2505        self.Paint()
    24772506       
    24782507    def newValue(self,event):
Note: See TracChangeset for help on using the changeset viewer.