Changeset 2875 for trunk/GSASIIctrls.py


Ignore:
Timestamp:
Jun 25, 2017 2:52:51 PM (5 years ago)
Author:
toby
Message:

Allow space group entry by number; move SGMessageBox to GSASIIctrls

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIctrls.py

    r2872 r2875  
    27242724    else:
    27252725        return '.'
     2726################################################################################
     2727class SGMessageBox(wx.Dialog):
     2728    ''' Special version of MessageBox that displays space group & super space group text
     2729    in two blocks
     2730    '''
     2731    def __init__(self,parent,title,text,table,):
     2732        wx.Dialog.__init__(self,parent,wx.ID_ANY,title,pos=wx.DefaultPosition,
     2733            style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER)
     2734        self.text = text
     2735        self.table = table
     2736        self.panel = wx.Panel(self)
     2737        mainSizer = wx.BoxSizer(wx.VERTICAL)
     2738        mainSizer.Add((0,10))
     2739        for line in text:
     2740            mainSizer.Add(wx.StaticText(self.panel,label='     %s     '%(line)),0,WACV)
     2741        ncol = self.table[0].count(',')+1
     2742        tableSizer = wx.FlexGridSizer(0,2*ncol+3,0,0)
     2743        for j,item in enumerate(self.table):
     2744            num,flds = item.split(')')
     2745            tableSizer.Add(wx.StaticText(self.panel,label='     %s  '%(num+')')),0,WACV|wx.ALIGN_LEFT)           
     2746            flds = flds.replace(' ','').split(',')
     2747            for i,fld in enumerate(flds):
     2748                if i < ncol-1:
     2749                    tableSizer.Add(wx.StaticText(self.panel,label='%s, '%(fld)),0,WACV|wx.ALIGN_RIGHT)
     2750                else:
     2751                    tableSizer.Add(wx.StaticText(self.panel,label='%s'%(fld)),0,WACV|wx.ALIGN_RIGHT)
     2752            if not j%2:
     2753                tableSizer.Add((20,0))
     2754        mainSizer.Add(tableSizer,0,wx.ALIGN_LEFT)
     2755        btnsizer = wx.StdDialogButtonSizer()
     2756        OKbtn = wx.Button(self.panel, wx.ID_OK)
     2757        OKbtn.Bind(wx.EVT_BUTTON, self.OnOk)
     2758        OKbtn.SetDefault()
     2759        btnsizer.AddButton(OKbtn)
     2760        btnsizer.Realize()
     2761        mainSizer.Add((0,10))
     2762        mainSizer.Add(btnsizer,0,wx.ALIGN_CENTER)
     2763        self.panel.SetSizer(mainSizer)
     2764        self.panel.Fit()
     2765        self.Fit()
     2766        size = self.GetSize()
     2767        self.SetSize([size[0]+20,size[1]])
     2768
     2769    def Show(self):
     2770        '''Use this method after creating the dialog to post it
     2771        '''
     2772        self.CenterOnParent()
     2773        self.ShowModal()
     2774        return
     2775
     2776    def OnOk(self,event):
     2777        parent = self.GetParent()
     2778        parent.Raise()
     2779        self.EndModal(wx.ID_OK)
    27262780
    27272781################################################################################
Note: See TracChangeset for help on using the changeset viewer.