Changeset 3056 for trunk/GSASIIctrlGUI.py
- Timestamp:
- Sep 8, 2017 2:17:29 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIctrlGUI.py
r3049 r3056 2581 2581 sizer.Fit(dlg) 2582 2582 dlg.ShowModal() 2583 2584 ################################################################################ 2585 class MultiIntegerDialog(wx.Dialog): 2586 '''Input a series of integers based on prompts 2587 ''' 2588 def __init__(self,parent,title,prompts,values): 2589 wx.Dialog.__init__(self,parent,-1,title, 2590 pos=wx.DefaultPosition,style=wx.DEFAULT_DIALOG_STYLE) 2591 self.panel = wx.Panel(self) #just a dummy - gets destroyed in Draw! 2592 self.values = values 2593 self.prompts = prompts 2594 self.Draw() 2595 2596 def Draw(self): 2597 2598 def OnValItem(event): 2599 event.Skip() 2600 Obj = event.GetEventObject() 2601 ind = Indx[Obj.GetId()] 2602 try: 2603 val = int(Obj.GetValue()) 2604 if val <= 0: 2605 raise ValueError 2606 except ValueError: 2607 val = self.values[ind] 2608 self.values[ind] = val 2609 Obj.SetValue('%d'%(val)) 2610 2611 self.panel.Destroy() 2612 self.panel = wx.Panel(self) 2613 mainSizer = wx.BoxSizer(wx.VERTICAL) 2614 Indx = {} 2615 for ival,[prompt,value] in enumerate(zip(self.prompts,self.values)): 2616 mainSizer.Add(wx.StaticText(self.panel,-1,prompt),0,wx.ALIGN_CENTER) 2617 valItem = wx.TextCtrl(self.panel,-1,value='%d'%(value),style=wx.TE_PROCESS_ENTER) 2618 mainSizer.Add(valItem,0,wx.ALIGN_CENTER) 2619 Indx[valItem.GetId()] = ival 2620 valItem.Bind(wx.EVT_TEXT_ENTER,OnValItem) 2621 valItem.Bind(wx.EVT_KILL_FOCUS,OnValItem) 2622 OkBtn = wx.Button(self.panel,-1,"Ok") 2623 OkBtn.Bind(wx.EVT_BUTTON, self.OnOk) 2624 CancelBtn = wx.Button(self.panel,-1,'Cancel') 2625 CancelBtn.Bind(wx.EVT_BUTTON, self.OnCancel) 2626 btnSizer = wx.BoxSizer(wx.HORIZONTAL) 2627 btnSizer.Add((20,20),1) 2628 btnSizer.Add(OkBtn) 2629 btnSizer.Add(CancelBtn) 2630 btnSizer.Add((20,20),1) 2631 mainSizer.Add(btnSizer,0,wx.EXPAND|wx.BOTTOM|wx.TOP, 10) 2632 self.panel.SetSizer(mainSizer) 2633 self.panel.Fit() 2634 self.Fit() 2635 2636 def GetValues(self): 2637 return self.values 2638 2639 def OnOk(self,event): 2640 parent = self.GetParent() 2641 parent.Raise() 2642 self.EndModal(wx.ID_OK) 2643 2644 def OnCancel(self,event): 2645 parent = self.GetParent() 2646 parent.Raise() 2647 self.EndModal(wx.ID_CANCEL) 2583 2648 2584 2649 ################################################################################
Note: See TracChangeset
for help on using the changeset viewer.