Changeset 765
- Timestamp:
- Sep 28, 2012 9:25:04 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASII.py
r762 r765 99 99 return GSASII(parent) 100 100 101 [wxID_PATTERNTREE,102 ] = [wx.NewId() for _init_ctrls in range(1)]103 104 [wxID_FILECLOSE, wxID_FILEEXIT, wxID_FILEOPEN, wxID_FILESAVE, wxID_FILESAVEAS,105 wxID_REFINE, wxID_MAKEPDFS, wxID_VIEWLSPARMS, wxID_SEQREFINE,106 ] = [wx.NewId() for _init_coll_File_Items in range(9)]107 108 [wxID_PWDRREAD,wxID_SNGLREAD,wxID_ADDPHASE,wxID_DELETEPHASE,109 wxID_DATADELETE,wxID_READPEAKS,wxID_PWDSUM,wxID_IMGREAD,110 wxID_IMSUM, wxID_DATARENAME,111 ] = [wx.NewId() for _init_coll_Data_Items in range(10)]112 113 [wxID_EXPORT, wxID_EXPORTPATTERN, wxID_EXPORTHKL, wxID_EXPORTPHASE,114 wxID_EXPORTCIF, wxID_EXPORTPEAKLIST, wxID_EXPORTPDF,115 ] = [wx.NewId() for _init_coll_Export_Items in range(7)]116 117 101 class GSASII(wx.Frame): 118 102 119 def _init_coll_GSASIIMenu_Menus(self, parent): 120 parent.Append(menu=self.File, title='File') 121 parent.Append(menu=self.Data, title='Data') 122 parent.Append(menu=self.Calculate, title='Calculate') 123 parent.Append(menu=self.Import, title='Import') 124 parent.Append(menu=self.Export, title='Export') 125 self.HelpMenu=G2gd.MyHelp(self,helpType='Data tree', 126 morehelpitems=[('&Tutorials','Tutorials')]) 127 parent.Append(menu=self.HelpMenu,title='&Help') 128 129 def _init_coll_File_Items(self, parent): 130 parent.Append(help='Open a gsasii project file (*.gpx)', id=wxID_FILEOPEN, 131 kind=wx.ITEM_NORMAL,text='Open project...') 132 parent.Append(help='Save project to old file', id=wxID_FILESAVE, 103 def _Add_FileMenuItems(self, parent): 104 item = parent.Append( 105 help='Open a gsasii project file (*.gpx)', id=wx.ID_ANY, 106 kind=wx.ITEM_NORMAL,text='Open project...') 107 self.Bind(wx.EVT_MENU, self.OnFileOpen, id=item.GetId()) 108 item = parent.Append( 109 help='Save project to old file', id=wx.ID_ANY, 133 110 kind=wx.ITEM_NORMAL,text='Save project') 134 parent.Append(help='Save project to new file', id=wxID_FILESAVEAS, 111 self.Bind(wx.EVT_MENU, self.OnFileSave, id=item.GetId()) 112 item = parent.Append( 113 help='Save project to new file', id=wx.ID_ANY, 135 114 kind=wx.ITEM_NORMAL,text='Save As...') 136 parent.Append(help='Close project, saving is optional', id=wxID_FILECLOSE, 115 self.Bind(wx.EVT_MENU, self.OnFileSaveas, id=item.GetId()) 116 item = parent.Append( 117 help='Close project, saving is optional', id=wx.ID_ANY, 137 118 kind=wx.ITEM_NORMAL,text='Close project') 138 parent.Append(help='Exit from gsasii', id=wxID_FILEEXIT, kind=wx.ITEM_NORMAL,139 text='Exit')140 self.Bind(wx.EVT_MENU, self.OnFileOpen, id=wxID_FILEOPEN)141 self.Bind(wx.EVT_MENU, self.OnFileSave, id=wxID_FILESAVE)142 self.Bind(wx.EVT_MENU, self.OnFile Saveas, id=wxID_FILESAVEAS)143 self.Bind(wx.EVT_MENU, self.OnFileClose, id=wxID_FILECLOSE)144 self.Bind(wx.EVT_MENU, self.OnFileExit, id=wxID_FILEEXIT)145 146 def _init_coll_Data_Items(self,parent):147 parent.Append(help='',id=wxID_IMGREAD,kind=wx.ITEM_NORMAL,119 self.Bind(wx.EVT_MENU, self.OnFileClose, id=item.GetId()) 120 item = parent.Append( 121 help='Exit from gsasii', id=wx.ID_ANY, 122 kind=wx.ITEM_NORMAL,text='Exit') 123 self.Bind(wx.EVT_MENU, self.OnFileExit, id=item.GetId()) 124 125 def _Add_DataMenuItems(self,parent): 126 item = parent.Append( 127 help='',id=wx.ID_ANY, 128 kind=wx.ITEM_NORMAL, 148 129 text='Read image data...') 149 parent.Append(help='',id=wxID_READPEAKS, kind=wx.ITEM_NORMAL, 130 self.Bind(wx.EVT_MENU, self.OnImageRead, id=item.GetId()) 131 item = parent.Append( 132 help='',id=wx.ID_ANY, 133 kind=wx.ITEM_NORMAL, 150 134 text='Read Powder Pattern Peaks...') 151 parent.Append(help='', id=wxID_PWDSUM, kind=wx.ITEM_NORMAL, 135 self.Bind(wx.EVT_MENU, self.OnReadPowderPeaks, id=item.GetId()) 136 item = parent.Append( 137 help='',id=wx.ID_ANY, 138 kind=wx.ITEM_NORMAL, 152 139 text='Sum powder data') 153 parent.Append(help='',id=wxID_IMSUM, kind=wx.ITEM_NORMAL, 140 self.Bind(wx.EVT_MENU, self.OnPwdrSum, id=item.GetId()) 141 item = parent.Append( 142 help='',id=wx.ID_ANY, 143 kind=wx.ITEM_NORMAL, 154 144 text='Sum image data') 155 parent.Append(help='', id=wxID_ADDPHASE, kind=wx.ITEM_NORMAL, 145 self.Bind(wx.EVT_MENU, self.OnImageSum, id=item.GetId()) 146 item = parent.Append( 147 help='',id=wx.ID_ANY, 148 kind=wx.ITEM_NORMAL, 156 149 text='Add phase') 157 parent.Append(help='', id=wxID_DELETEPHASE, kind=wx.ITEM_NORMAL, 150 self.Bind(wx.EVT_MENU, self.OnAddPhase, id=item.GetId()) 151 item = parent.Append( 152 help='',id=wx.ID_ANY, 153 kind=wx.ITEM_NORMAL, 158 154 text='Delete phase') 159 parent.Append(help='', id=wxID_DATARENAME, kind=wx.ITEM_NORMAL, 155 self.Bind(wx.EVT_MENU, self.OnDeletePhase, id=item.GetId()) 156 item = parent.Append( 157 help='',id=wx.ID_ANY, 158 kind=wx.ITEM_NORMAL, 160 159 text='Rename data') 161 parent.Append(help='', id=wxID_DATADELETE, kind=wx.ITEM_NORMAL, 160 self.Bind(wx.EVT_MENU, self.OnRenameData, id=item.GetId()) 161 item = parent.Append( 162 help='',id=wx.ID_ANY, 163 kind=wx.ITEM_NORMAL, 162 164 text='Delete data') 163 self.Bind(wx.EVT_MENU, self.OnPwdrSum, id=wxID_PWDSUM) 164 self.Bind(wx.EVT_MENU, self.OnReadPowderPeaks, id=wxID_READPEAKS) 165 self.Bind(wx.EVT_MENU, self.OnImageRead, id=wxID_IMGREAD) 166 self.Bind(wx.EVT_MENU, self.OnImageSum, id=wxID_IMSUM) 167 self.Bind(wx.EVT_MENU, self.OnAddPhase, id=wxID_ADDPHASE) 168 self.Bind(wx.EVT_MENU, self.OnDeletePhase, id=wxID_DELETEPHASE) 169 self.Bind(wx.EVT_MENU, self.OnRenameData, id=wxID_DATARENAME) 170 self.Bind(wx.EVT_MENU, self.OnDataDelete, id=wxID_DATADELETE) 165 self.Bind(wx.EVT_MENU, self.OnDataDelete, id=item.GetId()) 171 166 172 def _init_coll_Calculate_Items(self,parent): 173 self.MakePDF = parent.Append(help='Make new PDFs from selected powder patterns', 174 id=wxID_MAKEPDFS, kind=wx.ITEM_NORMAL,text='Make new PDFs') 175 self.Bind(wx.EVT_MENU, self.OnMakePDFs, id=wxID_MAKEPDFS) 176 self.ViewLSParms = parent.Append(help='View least squares parameters', 177 id=wxID_VIEWLSPARMS, kind=wx.ITEM_NORMAL,text='View LS parms') 178 self.Bind(wx.EVT_MENU, self.OnViewLSParms, id=wxID_VIEWLSPARMS) 179 self.Refine = parent.Append(help='', id=wxID_REFINE, kind=wx.ITEM_NORMAL, 167 def _Add_CalculateMenuItems(self,parent): 168 item = parent.Append(help='Make new PDFs from selected powder patterns', 169 id=wx.ID_ANY, kind=wx.ITEM_NORMAL,text='Make new PDFs') 170 self.MakePDF.append(item) 171 item.Enable(False) 172 self.Bind(wx.EVT_MENU, self.OnMakePDFs, id=item.GetId()) 173 174 item = parent.Append(help='View least squares parameters', 175 id=wx.ID_ANY, kind=wx.ITEM_NORMAL,text='View LS parms') 176 self.Bind(wx.EVT_MENU, self.OnViewLSParms, id=item.GetId()) 177 178 item = parent.Append(help='', id=wx.ID_ANY, kind=wx.ITEM_NORMAL, 180 179 text='Refine') 181 self.Refine.Enable(False) 182 self.Bind(wx.EVT_MENU, self.OnRefine, id=wxID_REFINE) 183 self.SeqRefine = parent.Append(help='', id=wxID_SEQREFINE, kind=wx.ITEM_NORMAL, 180 self.Refine.append(item) 181 item.Enable(False) 182 self.Bind(wx.EVT_MENU, self.OnRefine, id=item.GetId()) 183 184 item = parent.Append(help='', id=wx.ID_ANY, kind=wx.ITEM_NORMAL, 184 185 text='Sequental refine') 185 self.SeqRefine.Enable(False) 186 self.Bind(wx.EVT_MENU, self.OnSeqRefine, id=wxID_SEQREFINE) 187 188 def _init_Import_routines(self,parent,prefix,readerlist,errprefix): 186 self.SeqRefine.append(item) 187 item.Enable(False) 188 self.Bind(wx.EVT_MENU, self.OnSeqRefine, id=item.GetId()) 189 190 def _init_Imports(self): 191 '''import all the G2phase*.py & G2sfact*.py & G2pwd*.py files that 192 are found in the path 193 ''' 194 195 self.ImportPhaseReaderlist = [] 196 self._init_Import_routines('phase',self.ImportPhaseReaderlist,'Phase') 197 self.ImportSfactReaderlist = [] 198 self._init_Import_routines('sfact',self.ImportSfactReaderlist,'Struct_Factor') 199 self.ImportPowderReaderlist = [] 200 self._init_Import_routines('pwd',self.ImportPowderReaderlist,'Powder_Data') 201 self.ImportMenuId = {} 202 203 def _init_Import_routines(self,prefix,readerlist,errprefix): 189 204 '''import all the import readers matching the prefix 190 205 ''' … … 401 416 return rd_list 402 417 403 def _init_Import_Phase(self,parent): 404 '''import all the G2phase*.py files that are found in the 405 path and configure the Import Phase menus accordingly 418 def _Add_ImportMenu_Phase(self,parent): 419 '''configure the Import Phase menus accord to the readers found in _init_Imports 406 420 ''' 407 self.ImportPhaseReaderlist = []408 self._init_Import_routines(parent,'phase',409 self.ImportPhaseReaderlist,410 'Phase')411 421 submenu = wx.Menu() 412 422 item = parent.AppendMenu(wx.ID_ANY, 'Phase', … … 455 465 return # success 456 466 457 def _init_Import_Sfact(self,parent): 458 '''import all the G2sfact*.py files that are found in the 459 path and configure the Import Structure Factor menus accordingly 467 def _Add_ImportMenu_Sfact(self,parent): 468 '''configure the Import Structure Factor menus accord to the readers found in _init_Imports 460 469 ''' 461 self.ImportSfactReaderlist = []462 self._init_Import_routines(parent,'sfact',463 self.ImportSfactReaderlist,464 'Struct_Factor')465 470 submenu = wx.Menu() 466 471 item = parent.AppendMenu(wx.ID_ANY, 'Structure Factor', … … 511 516 return # success 512 517 513 def _init_Import_powder(self,parent): 514 '''import all the G2pwd*.py files that are found in the 515 path and configure the Import Powder Data menus accordingly 518 def _Add_ImportMenu_powder(self,parent): 519 '''configure the Powder Data menus accord to the readers found in _init_Imports 516 520 ''' 517 self.ImportPowderReaderlist = []518 self._init_Import_routines(parent,'pwd',self.ImportPowderReaderlist,519 'Powder_Data')520 521 submenu = wx.Menu() 521 522 item = parent.AppendMenu(wx.ID_ANY, 'Powder Data', … … 842 843 843 844 def _init_Exports(self,parent): 844 ''' 845 '''This is a place holder for when exports are handled in a manner similar to imports 845 846 ''' 846 847 # submenu = wx.Menu() … … 860 861 # G2export.ProjExport(self) 861 862 862 def _init_coll_Export_Items(self,parent): 863 self.ExportPattern = parent.Append(help='Select PWDR item to enable',id=wxID_EXPORTPATTERN, kind=wx.ITEM_NORMAL, 863 def _Add_ExportMenuItems(self,parent): 864 item = parent.Append( 865 help='Select PWDR item to enable',id=wx.ID_ANY, 866 kind=wx.ITEM_NORMAL, 864 867 text='Export Powder Patterns...') 865 self.ExportPeakList = parent.Append(help='',id=wxID_EXPORTPEAKLIST, kind=wx.ITEM_NORMAL, 868 self.ExportPattern.append(item) 869 item.Enable(False) 870 self.Bind(wx.EVT_MENU, self.OnExportPatterns, id=item.GetId()) 871 872 item = parent.Append( 873 help='',id=wx.ID_ANY, 874 kind=wx.ITEM_NORMAL, 866 875 text='Export All Peak Lists...') 867 self.ExportHKL = parent.Append(help='',id=wxID_EXPORTHKL, kind=wx.ITEM_NORMAL, 876 self.ExportPeakList.append(item) 877 item.Enable(True) 878 self.Bind(wx.EVT_MENU, self.OnExportPeakList, id=item.GetId()) 879 880 item = parent.Append( 881 help='',id=wx.ID_ANY, 882 kind=wx.ITEM_NORMAL, 868 883 text='Export HKLs...') 869 self.ExportPDF = parent.Append(help='Select PDF item to enable',id=wxID_EXPORTPDF, kind=wx.ITEM_NORMAL, 884 self.ExportHKL.append(item) 885 item.Enable(False) 886 self.Bind(wx.EVT_MENU, self.OnExportHKL, id=item.GetId()) 887 888 item = parent.Append( 889 help='Select PDF item to enable', 890 id=wx.ID_ANY, 891 kind=wx.ITEM_NORMAL, 870 892 text='Export PDF...') 871 self.ExportPhase = parent.Append(help='',id=wxID_EXPORTPHASE, kind=wx.ITEM_NORMAL, 893 self.ExportPDF.append(item) 894 item.Enable(False) 895 self.Bind(wx.EVT_MENU, self.OnExportPDF, id=item.GetId()) 896 897 item = parent.Append( 898 help='',id=wx.ID_ANY, 899 kind=wx.ITEM_NORMAL, 872 900 text='Export Phase...') 873 self.ExportCIF = parent.Append(help='',id=wxID_EXPORTCIF, kind=wx.ITEM_NORMAL, 901 self.ExportPhase.append(item) 902 item.Enable(False) 903 self.Bind(wx.EVT_MENU, self.OnExportPhase, id=item.GetId()) 904 905 item = parent.Append( 906 help='',id=wx.ID_ANY, 907 kind=wx.ITEM_NORMAL, 874 908 text='Export CIF...') 875 self.ExportPattern.Enable(False) 876 self.ExportPeakList.Enable(True) 877 self.ExportHKL.Enable(False) 878 self.ExportPDF.Enable(False) 879 self.ExportPhase.Enable(False) 880 self.ExportCIF.Enable(False) 881 self.Bind(wx.EVT_MENU, self.OnExportPatterns, id=wxID_EXPORTPATTERN) 882 self.Bind(wx.EVT_MENU, self.OnExportPeakList, id=wxID_EXPORTPEAKLIST) 883 self.Bind(wx.EVT_MENU, self.OnExportHKL, id=wxID_EXPORTHKL) 884 self.Bind(wx.EVT_MENU, self.OnExportPDF, id=wxID_EXPORTPDF) 885 self.Bind(wx.EVT_MENU, self.OnExportPhase, id=wxID_EXPORTPHASE) 886 self.Bind(wx.EVT_MENU, self.OnExportCIF, id=wxID_EXPORTCIF) 909 self.ExportCIF.append(item) 910 item.Enable(False) 911 self.Bind(wx.EVT_MENU, self.OnExportCIF, id=item.GetId()) 887 912 888 def _init_utils(self): 889 self.GSASIIMenu = wx.MenuBar() 890 self.File = wx.Menu(title='') 891 self.Data = wx.Menu(title='') 892 self.Calculate = wx.Menu(title='') 893 self.Import = wx.Menu(title='') 894 self.Export = wx.Menu(title='') 895 896 self._init_coll_GSASIIMenu_Menus(self.GSASIIMenu) 897 self._init_coll_File_Items(self.File) 898 self._init_coll_Data_Items(self.Data) 899 self._init_coll_Calculate_Items(self.Calculate) 900 self.ImportMenuId = {} 901 self._init_Import_Phase(self.Import) 902 self._init_Import_powder(self.Import) 903 self._init_Import_Sfact(self.Import) 904 self._init_coll_Export_Items(self.Export) 905 self._init_Exports(self.Export) 906 913 def FillMainMenu(self,menubar): 914 '''Define contents of the main GSAS-II menu for the (main) data tree window 915 in the mac, used also for the data item windows as well. 916 ''' 917 File = wx.Menu(title='') 918 menubar.Append(menu=File, title='File') 919 self._Add_FileMenuItems(File) 920 Data = wx.Menu(title='') 921 menubar.Append(menu=Data, title='Data') 922 self._Add_DataMenuItems(Data) 923 Calculate = wx.Menu(title='') 924 menubar.Append(menu=Calculate, title='Calculate') 925 self._Add_CalculateMenuItems(Calculate) 926 Import = wx.Menu(title='') 927 menubar.Append(menu=Import, title='Import') 928 self._Add_ImportMenu_Phase(Import) 929 self._Add_ImportMenu_powder(Import) 930 self._Add_ImportMenu_Sfact(Import) 931 Export = wx.Menu(title='') 932 menubar.Append(menu=Export, title='Export') 933 self._Add_ExportMenuItems(Export) 934 #self._init_Exports(Export) 935 HelpMenu=G2gd.MyHelp(self,helpType='Data tree', 936 morehelpitems=[('&Tutorials','Tutorials')]) 937 menubar.Append(menu=HelpMenu,title='&Help') 938 907 939 def _init_ctrls(self, parent): 908 940 wx.Frame.__init__(self, name='GSASII', parent=parent, … … 912 944 xPos = clientSize[2]-Size[0] 913 945 self.SetPosition(wx.Point(xPos,clientSize[1])) 914 self._init_utils() 946 self._init_Imports() 947 #self._init_utils() 948 #initialize Menu item objects (these contain lists of menu items that are enabled or disabled) 949 self.MakePDF = [] 950 self.Refine = [] 951 self.SeqRefine = [] 952 self.ExportPattern = [] 953 self.ExportPeakList = [] 954 self.ExportHKL = [] 955 self.ExportPDF = [] 956 self.ExportPhase = [] 957 self.ExportCIF = [] 958 # 959 self.GSASIIMenu = wx.MenuBar() 960 self.FillMainMenu(self.GSASIIMenu) 915 961 self.SetMenuBar(self.GSASIIMenu) 916 962 self.Bind(wx.EVT_SIZE, self.OnSize) … … 918 964 self.mainPanel = wx.Panel(self,-1) 919 965 966 wxID_PATTERNTREE = wx.NewId() 920 967 self.PatternTree = wx.TreeCtrl(id=wxID_PATTERNTREE, 921 968 parent=self.mainPanel, pos=wx.Point(0, 0),style=wx.TR_DEFAULT_STYLE ) … … 988 1035 G2IO.ProjFileOpen(self) 989 1036 self.PatternTree.Expand(self.root) 990 self.Refine.Enable(True)991 self.SeqRefine.Enable(True)1037 for item in self.Refine: item.Enable(True) 1038 for item in self.SeqRefine: item.Enable(True) 992 1039 993 1040 def OnSize(self,event): … … 1728 1775 data = self.PatternTree.GetItemPyData(item) 1729 1776 if data: 1730 self.Refine.Enable(True)1731 self.SeqRefine.Enable(True)1777 for item in self.Refine: item.Enable(True) 1778 for item in self.SeqRefine: item.Enable(True) 1732 1779 item, cookie = self.PatternTree.GetNextChild(self.root, cookie) 1733 1780 if Id: … … 1922 1969 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='F(Q)'+PWDRname),[]) 1923 1970 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='G(R)'+PWDRname),[]) 1924 self.ExportPDF.Enable(True)1971 for item in self.ExportPDF: item.Enable(True) 1925 1972 finally: 1926 1973 dlg.Destroy() -
trunk/GSASIIgrid.py
r762 r765 144 144 About: opens an About dialog using OnHelpAbout. N.B. on the Mac this 145 145 gets moved to the App menu to be consistent with Apple style. 146 NOTE: the title forthis menu should be '&Help' so the wx handles146 NOTE: the title when appending this menu should be '&Help' so the wx handles 147 147 it correctly. BHT 148 148 ''' 149 def __init__(self,frame, title='',helpType=None,morehelpitems=[]):149 def __init__(self,frame,helpType=None,helpLbl=None,morehelpitems=[],title=''): 150 150 wx.Menu.__init__(self,title) 151 151 self.HelpById = {} … … 153 153 # add a help item only when helpType is specified 154 154 if helpType is not None: 155 helpobj = self.Append(text='Help on '+helpType, 156 id=wx.ID_ANY, kind=wx.ITEM_NORMAL) 155 if helpLbl is None: helpLbl = helpType 156 helpobj = self.Append(text='Help on '+helpLbl, 157 id=wx.ID_ANY, kind=wx.ITEM_NORMAL) 157 158 frame.Bind(wx.EVT_MENU, self.OnHelpById, helpobj) 158 159 self.HelpById[helpobj.GetId()] = helpType … … 242 243 'You have version '+local+ 243 244 ' of GSAS-II installed, but the current version is '+repos+ 244 ' However, you have modified '+str(len(mods))+245 '. However, you have modified '+str(len(mods))+ 245 246 ' file(s) on your local computer have been modified.' 246 247 ' Updating could wipe out your local changes. Press OK to start an update:', … … 282 283 dlg.ShowModal() 283 284 return 284 285 286 class AddHelp(wx.Menu): 287 '''This class a single entry for the help menu (used on the Mac only): 288 'Help on <helpType>': where helpType is a reference to an HTML page to 289 be opened 290 NOTE: the title when appending this menu should be '&Help' so the wx handles 291 it correctly. BHT 292 ''' 293 def __init__(self,frame,helpType,helpLbl=None,title=''): 294 wx.Menu.__init__(self,title) 295 self.frame = frame 296 if helpLbl is None: helpLbl = helpType 297 # add a help item only when helpType is specified 298 helpobj = self.Append(text='Help on '+helpLbl, 299 id=wx.ID_ANY, kind=wx.ITEM_NORMAL) 300 frame.Bind(wx.EVT_MENU, self.OnHelpById, helpobj) 301 self.HelpById = helpType 302 303 def OnHelpById(self,event): 304 '''Called when Help on... is pressed in a menu. Brings up 305 a web page for documentation. 306 ''' 307 ShowHelp(self.HelpById,self.frame) 308 285 309 class MyHtmlPanel(wx.Panel): 286 310 '''Defines a panel to display Help information''' … … 341 365 342 366 class DataFrame(wx.Frame): 367 '''Create the dataframe window and its menus 368 ''' 369 def FillDataMenu(self,menu,helpType,helpLbl=None): 370 '''Create the "standard" part of data frame menus. Note that on Linux and 371 Windows, this is the standard help Menu. On Mac, this menu duplicates the 372 tree menu, but adds an extra help command for the data item and a separator. 373 ''' 374 if sys.platform == "darwin": # mac 375 menu.Append(AddHelp(self.G2frame,helpType=helpType, helpLbl=helpLbl), 376 title='&Help') 377 self.G2frame.FillMainMenu(menu) # add the data tree menu items 378 menu.Append(wx.Menu(title=''),title='|') # add a separator 379 else: # other 380 menu.Append(menu=MyHelp(self,helpType=helpType, helpLbl=helpLbl), 381 title='&Help') 343 382 344 383 def _init_menus(self): 345 384 346 # define all GSAS-II menus 347 385 # define all GSAS-II data frame menus 386 387 # for use where no menu or data frame help is provided 348 388 self.BlankMenu = wx.MenuBar() 349 389 350 390 # Controls 351 391 self.ControlsMenu = wx.MenuBar() 352 self. ControlsMenu.Append(menu=MyHelp(self,helpType='Controls'),title='&Help')392 self.FillDataMenu(self.ControlsMenu,helpType='Controls') 353 393 354 394 # Notebook 355 395 self.DataNotebookMenu = wx.MenuBar() 356 self. DataNotebookMenu.Append(menu=MyHelp(self,helpType='Notebook'),title='&Help')396 self.FillDataMenu(self.DataNotebookMenu,helpType='Notebook') 357 397 358 398 # Comments 359 399 self.DataCommentsMenu = wx.MenuBar() 360 self. DataCommentsMenu.Append(menu=MyHelp(self,helpType='Comments'),title='&Help')400 self.FillDataMenu(self.DataCommentsMenu,helpType='Comments') 361 401 362 402 # Constraints 363 403 self.ConstraintMenu = wx.MenuBar() 404 self.FillDataMenu(self.ConstraintMenu,helpType='Constraints') 364 405 self.ConstraintEdit = wx.Menu(title='') 365 406 self.ConstraintMenu.Append(menu=self.ConstraintEdit, title='Edit') 366 self.ConstraintMenu.Append(menu=MyHelp(self,helpType='Constraints'),title='&Help')367 407 self.ConstraintEdit.Append(id=wxID_HOLDADD, kind=wx.ITEM_NORMAL,text='Add hold', 368 408 help='Add hold on a parameter value') … … 376 416 # Restraints 377 417 self.RestraintMenu = wx.MenuBar() 418 self.FillDataMenu(self.RestraintMenu,helpType='Restraints') 378 419 self.RestraintEdit = wx.Menu(title='') 379 420 self.RestraintMenu.Append(menu=self.RestraintEdit, title='Edit') 380 self.RestraintMenu.Append(menu=MyHelp(self,helpType='Restraints'),title='&Help')381 421 self.RestraintEdit.Append(id=wxID_RESTSELPHASE, kind=wx.ITEM_NORMAL,text='Select phase', 382 422 help='Select phase') … … 392 432 # Sequential results 393 433 self.SequentialMenu = wx.MenuBar() 434 self.FillDataMenu(self.SequentialMenu,helpType='Sequential',helpLbl='Sequential Refinement') 394 435 self.SequentialFile = wx.Menu(title='') 395 436 self.SequentialMenu.Append(menu=self.SequentialFile, title='File') 396 self.SequentialMenu.Append(menu=MyHelp(self,helpType='Sequential'),title='&Help')397 437 self.SequentialFile.Append(id=wxID_SAVESEQSEL, kind=wx.ITEM_NORMAL,text='Save...', 398 438 help='Save selected sequential refinement results') … … 400 440 # PDR 401 441 self.ErrorMenu = wx.MenuBar() 442 self.FillDataMenu(self.ErrorMenu,helpType='PWD Analysis',helpLbl='Powder Fit Error Analysis') 402 443 self.ErrorAnal = wx.Menu(title='') 403 444 self.ErrorMenu.Append(menu=self.ErrorAnal,title='Analysis') 404 self.ErrorMenu.Append(menu=MyHelp(self,helpType='PWD Analysis'),title='&Help')405 445 self.ErrorAnal.Append(id=wxID_PWDANALYSIS,kind=wx.ITEM_NORMAL,text='Analyze', 406 help='Error analysis on p powder pattern')446 help='Error analysis on powder pattern') 407 447 408 448 # PDR / Limits 409 449 self.LimitMenu = wx.MenuBar() 450 self.FillDataMenu(self.LimitMenu,helpType='Limits') 410 451 self.LimitEdit = wx.Menu(title='') 411 452 self.LimitMenu.Append(menu=self.LimitEdit, title='File') 412 self.LimitMenu.Append(menu=MyHelp(self,helpType='Limits'),title='&Help')413 453 self.LimitEdit.Append(id=wxID_LIMITCOPY, kind=wx.ITEM_NORMAL,text='Copy', 414 454 help='Copy limits to other histograms') … … 416 456 # PDR / Background 417 457 self.BackMenu = wx.MenuBar() 458 self.FillDataMenu(self.BackMenu,helpType='Background') 418 459 self.BackEdit = wx.Menu(title='') 419 460 self.BackMenu.Append(menu=self.BackEdit, title='File') 420 self.BackMenu.Append(menu=MyHelp(self,helpType='Background'),title='&Help')421 461 self.BackEdit.Append(id=wxID_BACKCOPY, kind=wx.ITEM_NORMAL,text='Copy', 422 462 help='Copy background parameters to other histograms') … … 426 466 # PDR / Instrument Parameters 427 467 self.InstMenu = wx.MenuBar() 468 self.FillDataMenu(self.InstMenu,helpType='Instrument Parameters') 428 469 self.InstEdit = wx.Menu(title='') 429 470 self.InstMenu.Append(menu=self.InstEdit, title='Operations') 430 self.InstMenu.Append(menu=MyHelp(self,helpType='Instrument Parameters'),title='&Help')431 471 self.InstEdit.Append(help='Reset instrument profile parameters to default', 432 472 id=wxID_INSTLOAD, kind=wx.ITEM_NORMAL,text='Load profile...') … … 444 484 # PDR / Sample Parameters 445 485 self.SampleMenu = wx.MenuBar() 486 self.FillDataMenu(self.SampleMenu,helpType='Sample Parameters') 446 487 self.SampleEdit = wx.Menu(title='') 447 488 self.SampleMenu.Append(menu=self.SampleEdit, title='File') 448 self.SampleMenu.Append(menu=MyHelp(self,helpType='Sample Parameters'),title='&Help')449 489 self.SampleEdit.Append(id=wxID_SAMPLELOAD, kind=wx.ITEM_NORMAL,text='Load', 450 490 help='Load sample parameters from file') … … 458 498 # PDR / Peak List 459 499 self.PeakMenu = wx.MenuBar() 500 self.FillDataMenu(self.PeakMenu,helpType='Peak List') 460 501 self.PeakEdit = wx.Menu(title='') 461 502 self.PeakMenu.Append(menu=self.PeakEdit, title='Peak Fitting') 462 self.PeakMenu.Append(menu=MyHelp(self,helpType='Peak List'),title='&Help')463 503 self.UnDo = self.PeakEdit.Append(help='Undo last least squares refinement', 464 504 id=wxID_UNDO, kind=wx.ITEM_NORMAL,text='UnDo') … … 477 517 # PDR / Index Peak List 478 518 self.IndPeaksMenu = wx.MenuBar() 519 self.FillDataMenu(self.IndPeaksMenu,helpType='Index Peak List') 479 520 self.IndPeaksEdit = wx.Menu(title='') 480 521 self.IndPeaksMenu.Append(menu=self.IndPeaksEdit,title='Operations') 481 self.IndPeaksMenu.Append(menu=MyHelp(self,helpType='Index Peak List'),title='&Help')482 522 self.IndPeaksEdit.Append(help='Load/Reload index peaks from peak list',id=wxID_INDXRELOAD, 483 523 kind=wx.ITEM_NORMAL,text='Load/Reload') … … 485 525 # PDR / Unit Cells List 486 526 self.IndexMenu = wx.MenuBar() 527 self.FillDataMenu(self.IndexMenu,helpType='Unit Cells List') 487 528 self.IndexEdit = wx.Menu(title='') 488 529 self.IndexMenu.Append(menu=self.IndexEdit, title='Cell Index/Refine') 489 self.IndexMenu.Append(menu=MyHelp(self,helpType='Unit Cells List'),title='&Help')490 530 self.IndexPeaks = self.IndexEdit.Append(help='', id=wxID_INDEXPEAKS, kind=wx.ITEM_NORMAL, 491 531 text='Index Cell') … … 503 543 # PDR / Reflection Lists 504 544 self.ReflMenu = wx.MenuBar() 545 self.FillDataMenu(self.ReflMenu,helpType='Reflection List') 505 546 self.ReflEdit = wx.Menu(title='') 506 547 self.ReflMenu.Append(menu=self.ReflEdit, title='Reflection List') 507 self.ReflMenu.Append(menu=MyHelp(self,helpType='Reflection List'),title='&Help')508 548 self.SelectPhase = self.ReflEdit.Append(help='Select phase for reflection list',id=wxID_SELECTPHASE, 509 549 kind=wx.ITEM_NORMAL,text='Select phase') … … 511 551 # IMG / Image Controls 512 552 self.ImageMenu = wx.MenuBar() 553 self.FillDataMenu(self.ImageMenu,helpType='Image Controls') 513 554 self.ImageEdit = wx.Menu(title='') 514 555 self.ImageMenu.Append(menu=self.ImageEdit, title='Operations') 515 self.ImageMenu.Append(menu=MyHelp(self,helpType='Image Controls'),title='&Help')516 556 self.ImageEdit.Append(help='Calibrate detector by fitting to calibrant lines', 517 557 id=wxID_IMCALIBRATE, kind=wx.ITEM_NORMAL,text='Calibrate') … … 533 573 # IMG / Masks 534 574 self.MaskMenu = wx.MenuBar() 575 self.FillDataMenu(self.MaskMenu,helpType='Image Masks') 535 576 self.MaskEdit = wx.Menu(title='') 536 577 self.MaskMenu.Append(menu=self.MaskEdit, title='Operations') 537 self.MaskMenu.Append(menu=MyHelp(self,helpType='Image Masks'),title='&Help')538 578 self.MaskEdit.Append(help='Copy mask to other images', 539 579 id=wxID_MASKCOPY, kind=wx.ITEM_NORMAL,text='Copy mask') … … 546 586 547 587 self.StrStaMenu = wx.MenuBar() 588 self.FillDataMenu(self.StrStaMenu,helpType='Stress/Strain') 548 589 self.StrStaEdit = wx.Menu(title='') 549 590 self.StrStaMenu.Append(menu=self.StrStaEdit, title='Operations') 550 self.StrStaMenu.Append(menu=MyHelp(self,helpType='Stress/Strain'),title='&Help')551 591 self.StrStaEdit.Append(help='Append d-zero for one ring', 552 592 id=wxID_APPENDDZERO, kind=wx.ITEM_NORMAL,text='Append d-zero') … … 562 602 # PDF / PDF Controls 563 603 self.PDFMenu = wx.MenuBar() 604 self.FillDataMenu(self.PDFMenu,helpType='PDF Controls') 564 605 self.PDFEdit = wx.Menu(title='') 565 606 self.PDFMenu.Append(menu=self.PDFEdit, title='PDF Controls') 566 self.PDFMenu.Append(menu=MyHelp(self,helpType='PDF Controls'),title='&Help')567 607 self.PDFEdit.Append(help='Add element to sample composition',id=wxID_PDFADDELEMENT, kind=wx.ITEM_NORMAL, 568 608 text='Add element') … … 581 621 582 622 # Phase / General tab 623 583 624 self.DataGeneral = wx.MenuBar() 625 self.FillDataMenu(self.DataGeneral,helpType='General', helpLbl='Phase/General') 584 626 self.GeneralCalc = wx.Menu(title='') 585 627 self.DataGeneral.Append(menu=self.GeneralCalc,title='Compute') 586 self.DataGeneral.Append(menu=MyHelp(self,helpType='General'),title='&Help')587 628 self.GeneralCalc.Append(help='Compute Fourier map',id=wxID_FOURCALC, kind=wx.ITEM_NORMAL, 588 629 text='Fourier map') … … 596 637 # Phase / Data tab 597 638 self.DataMenu = wx.MenuBar() 639 self.FillDataMenu(self.DataMenu,helpType='Data', helpLbl='Phase/Data') 598 640 self.DataEdit = wx.Menu(title='') 599 641 self.DataMenu.Append(menu=self.DataEdit, title='Edit') 600 self.DataMenu.Append(menu=MyHelp(self,helpType='Data'),title='&Help')601 642 self.DataEdit.Append(id=wxID_PWDRADD, kind=wx.ITEM_NORMAL,text='Add powder histograms', 602 643 help='Select new powder histograms to be used for this phase') … … 608 649 # Phase / Atoms tab 609 650 self.AtomsMenu = wx.MenuBar() 651 self.FillDataMenu(self.AtomsMenu,helpType='Atoms') 610 652 self.AtomEdit = wx.Menu(title='') 611 653 self.AtomCompute = wx.Menu(title='') 612 654 self.AtomsMenu.Append(menu=self.AtomEdit, title='Edit') 613 655 self.AtomsMenu.Append(menu=self.AtomCompute, title='Compute') 614 self.AtomsMenu.Append(menu=MyHelp(self,helpType='Atoms'),title='&Help')615 656 self.AtomEdit.Append(id=wxID_ATOMSEDITADD, kind=wx.ITEM_NORMAL,text='Append atom', 616 657 help='Appended as an H atom') … … 631 672 self.AtomEdit.Append(id=wxID_RELOADDRAWATOMS, kind=wx.ITEM_NORMAL,text='Reload draw atoms', 632 673 help='Reload atom drawing list') 633 self.AtomCompute.Append(id=wxID_ATOMSDISAGL, kind=wx.ITEM_NORMAL,text='Distances & Angles',674 self.AtomCompute.Append(id=wxID_ATOMSDISAGL, kind=wx.ITEM_NORMAL,text='Distances && Angles', 634 675 help='Compute distances & angles for selected atoms') 635 676 636 677 # Phase / Draw Options tab 637 678 self.DataDrawOptions = wx.MenuBar() 638 self. DataDrawOptions.Append(menu=MyHelp(self,helpType='Draw Options'),title='&Help')679 self.FillDataMenu(self.DataDrawOptions,helpType='Draw Options', helpLbl='Phase/Draw Options') 639 680 640 681 # Phase / Draw Atoms tab 641 682 self.DrawAtomsMenu = wx.MenuBar() 683 self.FillDataMenu(self.DrawAtomsMenu,helpType='Draw Atoms') 642 684 self.DrawAtomEdit = wx.Menu(title='') 643 685 self.DrawAtomCompute = wx.Menu(title='') … … 646 688 self.DrawAtomsMenu.Append(menu=self.DrawAtomCompute,title='Compute') 647 689 self.DrawAtomsMenu.Append(menu=self.DrawAtomRestraint, title='Restraints') 648 self.DrawAtomsMenu.Append(menu=MyHelp(self,helpType='Draw Atoms'),title='&Help')649 690 self.DrawAtomEdit.Append(id=wxID_DRAWATOMSTYLE, kind=wx.ITEM_NORMAL,text='Atom style', 650 691 help='Select atoms first') … … 684 725 # Phase / Texture tab 685 726 self.TextureMenu = wx.MenuBar() 727 self.FillDataMenu(self.TextureMenu,helpType='Texture') 686 728 self.TextureEdit = wx.Menu(title='') 687 729 self.TextureMenu.Append(menu=self.TextureEdit, title='Texture') 688 self.TextureMenu.Append(menu=MyHelp(self,helpType='Texture'),title='&Help')689 730 self.TextureEdit.Append(id=wxID_REFINETEXTURE, kind=wx.ITEM_NORMAL,text='Refine texture', 690 731 help='Refine the texture coefficients from sequential Pawley results') … … 694 735 # Phase / Pawley tab 695 736 self.PawleyMenu = wx.MenuBar() 737 self.FillDataMenu(self.PawleyMenu,helpType='Pawley') 696 738 self.PawleyEdit = wx.Menu(title='') 697 739 self.PawleyMenu.Append(menu=self.PawleyEdit,title='Operations') 698 self.PawleyMenu.Append(menu=MyHelp(self,helpType='Pawley'),title='&Help')699 740 self.PawleyEdit.Append(id=wxID_PAWLEYLOAD, kind=wx.ITEM_NORMAL,text='Pawley create', 700 741 help='Initialize Pawley reflection list') … … 708 749 # Phase / Map peaks tab 709 750 self.MapPeaksMenu = wx.MenuBar() 751 self.FillDataMenu(self.MapPeaksMenu,helpType='Map peaks') 710 752 self.MapPeaksEdit = wx.Menu(title='') 711 753 self.MapPeaksMenu.Append(menu=self.MapPeaksEdit, title='Map peaks') 712 self.MapPeaksMenu.Append(menu=MyHelp(self,helpType='Map peaks'),title='&Help')713 754 self.MapPeaksEdit.Append(id=wxID_PEAKSMOVE, kind=wx.ITEM_NORMAL,text='Move peaks', 714 755 help='Move selected peaks to atom list') … … 737 778 self.Show() 738 779 739 def __init__(self,parent,data=None,name=None, size=None,pos=None): 780 def __init__(self,parent,frame,data=None,name=None, size=None,pos=None): 781 self.G2frame = frame 740 782 self._init_ctrls(parent,name,size,pos) 741 783 self.data = data … … 968 1010 data['minF/sig'] = 0 969 1011 #end patch 1012 970 1013 def SeqSizer(): 971 1014 … … 1093 1136 G2frame.dataFrame.SetLabel('Controls') 1094 1137 G2frame.dataDisplay = wx.Panel(G2frame.dataFrame) 1095 G2frame.dataFrame.SetMenuBar(G2frame.dataFrame.ControlsMenu)1138 SetDataMenuBar(G2frame,G2frame.dataFrame.ControlsMenu) 1096 1139 mainSizer = wx.BoxSizer(wx.VERTICAL) 1097 1140 mainSizer.Add((5,5),0) … … 1243 1286 sampleParms = GetSampleParms() 1244 1287 Rwps = GetRwps() 1245 G2frame.dataFrame.SetMenuBar(G2frame.dataFrame.SequentialMenu)1288 SetDataMenuBar(G2frame,G2frame.dataFrame.SequentialMenu) 1246 1289 G2frame.dataFrame.SetLabel('Sequental refinement results') 1247 1290 G2frame.dataFrame.CreateStatusBar() … … 1719 1762 if G2frame.dataDisplay: 1720 1763 G2frame.dataDisplay.Destroy() 1721 G2frame.dataFrame.SetMenuBar(G2frame.dataFrame.ConstraintMenu)1764 SetDataMenuBar(G2frame,G2frame.dataFrame.ConstraintMenu) 1722 1765 G2frame.dataFrame.SetLabel('Constraints') 1723 1766 if not G2frame.dataFrame.GetStatusBar(): … … 1725 1768 SetStatusLine('') 1726 1769 1727 G2frame.dataFrame.SetMenuBar(G2frame.dataFrame.ConstraintMenu)1770 SetDataMenuBar(G2frame,G2frame.dataFrame.ConstraintMenu) 1728 1771 G2frame.dataFrame.Bind(wx.EVT_MENU, OnAddConstraint, id=wxID_CONSTRAINTADD) 1729 1772 G2frame.dataFrame.Bind(wx.EVT_MENU, OnAddFunction, id=wxID_FUNCTADD) … … 2123 2166 text = G2frame.dataDisplay.GetPageText(page) 2124 2167 if text == 'Bond restraints': 2125 G2frame.dataFrame.SetMenuBar(G2frame.dataFrame.RestraintMenu)2168 SetDataMenuBar(G2frame,G2frame.dataFrame.RestraintMenu) 2126 2169 bondRestData = restrData['Bond'] 2127 2170 UpdateBondRestr(bondRestData) 2128 2171 elif text == 'Angle restraints': 2129 G2frame.dataFrame.SetMenuBar(G2frame.dataFrame.RestraintMenu)2172 SetDataMenuBar(G2frame,G2frame.dataFrame.RestraintMenu) 2130 2173 angleRestData = restrData['Angle'] 2131 2174 UpdateAngleRestr(angleRestData) 2132 2175 elif text == 'Plane restraints': 2133 G2frame.dataFrame.SetMenuBar(G2frame.dataFrame.RestraintMenu)2176 SetDataMenuBar(G2frame,G2frame.dataFrame.RestraintMenu) 2134 2177 planeRestData = restrData['Plane'] 2135 2178 UpdatePlaneRestr(planeRestData) 2136 2179 elif text == 'Chiral restraints': 2137 G2frame.dataFrame.SetMenuBar(G2frame.dataFrame.RestraintMenu)2180 SetDataMenuBar(G2frame,G2frame.dataFrame.RestraintMenu) 2138 2181 chiralRestData = restrData['Chiral'] 2139 2182 UpdateChiralRestr(chiralRestData) … … 2143 2186 G2frame.dataDisplay.Destroy() 2144 2187 2145 G2frame.dataFrame.SetMenuBar(G2frame.dataFrame.RestraintMenu)2188 SetDataMenuBar(G2frame,G2frame.dataFrame.RestraintMenu) 2146 2189 G2frame.dataFrame.SetLabel('restraints for '+phaseName) 2147 2190 G2frame.dataFrame.RestraintEdit.Enable(wxID_RESTSELPHASE,False) … … 2186 2229 if G2frame.dataDisplay: 2187 2230 G2frame.dataDisplay.Destroy() 2188 G2frame.dataFrame.SetMenuBar(G2frame.dataFrame.ErrorMenu)2231 SetDataMenuBar(G2frame,G2frame.dataFrame.ErrorMenu) 2189 2232 G2frame.dataFrame.Bind(wx.EVT_MENU,OnErrorAnalysis, id=wxID_PWDANALYSIS) 2190 2233 G2frame.dataDisplay = wx.Panel(G2frame.dataFrame) … … 2251 2294 typeChoices = ['Fosq','Fo'] 2252 2295 G2frame.dataDisplay = wx.Panel(G2frame.dataFrame) 2253 G2frame.dataFrame.SetMenuBar(G2frame.dataFrame.BlankMenu)2296 SetDataMenuBar(G2frame) 2254 2297 G2frame.dataFrame.SetTitle('HKL Plot Controls') 2255 2298 mainSizer = wx.BoxSizer(wx.VERTICAL) … … 2332 2375 oldPage = 0 2333 2376 if G2frame.dataFrame: 2334 G2frame.dataFrame.SetMenuBar(G2frame.dataFrame.BlankMenu)2377 SetDataMenuBar(G2frame) 2335 2378 if G2frame.dataFrame.GetLabel() == 'Comments': 2336 2379 data = [G2frame.dataDisplay.GetValue()] … … 2350 2393 else: 2351 2394 #create the frame for the data item window 2352 G2frame.dataFrame = DataFrame(parent=G2frame.mainPanel )2395 G2frame.dataFrame = DataFrame(parent=G2frame.mainPanel,frame=G2frame) 2353 2396 2354 2397 G2frame.dataFrame.Raise() 2355 2398 G2frame.PickId = 0 2356 2399 parentID = G2frame.root 2357 G2frame.ExportPattern.Enable(False)2400 for i in G2frame.ExportPattern: i.Enable(False) 2358 2401 defWid = [250,150] 2359 2402 if item != G2frame.root: … … 2363 2406 G2frame.PickId = item 2364 2407 if G2frame.PatternTree.GetItemText(item) == 'Notebook': 2365 G2frame.dataFrame.SetMenuBar(G2frame.dataFrame.DataNotebookMenu)2408 SetDataMenuBar(G2frame,G2frame.dataFrame.DataNotebookMenu) 2366 2409 G2frame.PatternId = 0 2367 G2frame.ExportPattern.Enable(False)2410 for i in G2frame.ExportPattern: i.Enable(False) 2368 2411 data = G2frame.PatternTree.GetItemPyData(item) 2369 2412 UpdateNotebook(G2frame,data) 2370 2413 elif G2frame.PatternTree.GetItemText(item) == 'Controls': 2371 2414 G2frame.PatternId = 0 2372 G2frame.ExportPattern.Enable(False)2415 for i in G2frame.ExportPattern: i.Enable(False) 2373 2416 data = G2frame.PatternTree.GetItemPyData(item) 2374 2417 if not data: #fill in defaults … … 2377 2420 'deriv type':'analytic Hessian','min dM/M':0.0001,'shift factor':1.0,'max cyc':3} 2378 2421 G2frame.PatternTree.SetItemPyData(item,data) 2379 G2frame.Refine.Enable(True)2380 G2frame.SeqRefine.Enable(True)2422 for i in G2frame.Refine: i.Enable(True) 2423 for i in G2frame.SeqRefine: i.Enable(True) 2381 2424 UpdateControls(G2frame,data) 2382 2425 elif G2frame.PatternTree.GetItemText(item) == 'Sequental results': … … 2414 2457 G2plt.PlotPowderLines(G2frame) 2415 2458 elif 'PWDR' in G2frame.PatternTree.GetItemText(item): 2416 G2frame.ExportPattern.Enable(True)2459 for i in G2frame.ExportPattern: i.Enable(True) 2417 2460 UpdatePWHKPlot(G2frame,'PWDR',item) 2418 2461 elif 'HKLF' in G2frame.PatternTree.GetItemText(item): … … 2421 2464 elif 'PDF' in G2frame.PatternTree.GetItemText(item): 2422 2465 G2frame.PatternId = item 2423 G2frame.ExportPDF.Enable(True)2466 for i in G2frame.ExportPDF: i.Enable(True) 2424 2467 G2plt.PlotISFG(G2frame,type='S(Q)') 2425 2468 elif G2frame.PatternTree.GetItemText(item) == 'Phases': … … 2448 2491 G2phG.UpdatePhaseData(G2frame,item,data,oldPage) 2449 2492 elif G2frame.PatternTree.GetItemText(item) == 'Comments': 2450 G2frame.dataFrame.SetMenuBar(G2frame.dataFrame.DataCommentsMenu)2493 SetDataMenuBar(G2frame,G2frame.dataFrame.DataCommentsMenu) 2451 2494 G2frame.PatternId = G2frame.PatternTree.GetItemParent(item) 2452 2495 G2frame.PickId = item … … 2484 2527 elif G2frame.PatternTree.GetItemText(item) == 'PDF Controls': 2485 2528 G2frame.PatternId = G2frame.PatternTree.GetItemParent(item) 2486 G2frame.ExportPDF.Enable(True)2529 for i in G2frame.ExportPDF: i.Enable(True) 2487 2530 G2frame.PickId = item 2488 2531 data = G2frame.PatternTree.GetItemPyData(item) … … 2494 2537 elif G2frame.PatternTree.GetItemText(item) == 'Peak List': 2495 2538 G2frame.PatternId = G2frame.PatternTree.GetItemParent(item) 2496 G2frame.ExportPeakList.Enable(True)2539 for i in G2frame.ExportPeakList: i.Enable(True) 2497 2540 G2frame.PickId = item 2498 2541 data = G2frame.PatternTree.GetItemPyData(item) … … 2532 2575 elif G2frame.PatternTree.GetItemText(item) == 'Index Peak List': 2533 2576 G2frame.PatternId = G2frame.PatternTree.GetItemParent(item) 2534 G2frame.ExportPeakList.Enable(True)2577 for i in G2frame.ExportPeakList: i.Enable(True) 2535 2578 G2frame.PickId = item 2536 2579 data = G2frame.PatternTree.GetItemPyData(item) … … 2569 2612 data = G2frame.PatternTree.GetItemPyData(G2frame.PatternId) 2570 2613 G2pdG.UpdateReflectionGrid(G2frame,data,HKLF=True,Name=name) 2614 2615 def SetDataMenuBar(G2frame,menu=None): 2616 '''Set the menu for the data frame. On the Mac put this 2617 menu for the data tree window instead. 2618 2619 Note that data frame items do not have menus, for these (menu=None) 2620 display a blank menu or on the Mac display the standard menu for 2621 the data tree window. 2622 ''' 2623 if sys.platform == "darwin": 2624 if menu is None: 2625 G2frame.SetMenuBar(G2frame.GSASIIMenu) 2626 else: 2627 G2frame.SetMenuBar(menu) 2628 else: 2629 if menu is None: 2630 G2frame.dataFrame.SetMenuBar(G2frame.dataFrame.BlankMenu) 2631 else: 2632 G2frame.dataFrame.SetMenuBar(menu) -
trunk/GSASIIimgGUI.py
r762 r765 55 55 56 56 def OnIntegrate(event): 57 58 57 if data['background image'][0]: 59 58 maskCopy = copy.deepcopy(masks) … … 72 71 G2plt.PlotIntegration(G2frame,newPlot=True) 73 72 G2IO.SaveIntegration(G2frame,G2frame.PickId,data) 74 G2frame.MakePDF.Enable(True)73 for item in G2frame.MakePDF: item.Enable(True) 75 74 76 75 def OnIntegrateAll(event): … … 718 717 if G2frame.dataDisplay: 719 718 G2frame.dataDisplay.Destroy() 720 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.ImageMenu)719 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.ImageMenu) 721 720 if not G2frame.dataFrame.GetStatusBar(): 722 721 G2frame.dataFrame.CreateStatusBar() … … 913 912 if G2frame.dataDisplay: 914 913 G2frame.dataDisplay.Destroy() 915 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.MaskMenu)914 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.MaskMenu) 916 915 G2frame.dataFrame.Bind(wx.EVT_MENU, OnCopyMask, id=G2gd.wxID_MASKCOPY) 917 916 G2frame.dataFrame.Bind(wx.EVT_MENU, OnLoadMask, id=G2gd.wxID_MASKLOAD) … … 1285 1284 if G2frame.dataDisplay: 1286 1285 G2frame.dataDisplay.Destroy() 1287 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.StrStaMenu)1286 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.StrStaMenu) 1288 1287 G2frame.dataFrame.Bind(wx.EVT_MENU, OnAppendDzero, id=G2gd.wxID_APPENDDZERO) 1289 1288 G2frame.dataFrame.Bind(wx.EVT_MENU, OnFitStrSta, id=G2gd.wxID_STRSTAFIT) -
trunk/GSASIIphsGUI.py
r764 r765 381 381 G2frame.dataDisplay.Destroy() 382 382 PhaseName = G2frame.PatternTree.GetItemText(Item) 383 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.BlankMenu)383 G2gd.SetDataMenuBar(G2frame) 384 384 G2frame.dataFrame.SetLabel('Phase Data for '+PhaseName) 385 385 G2frame.dataFrame.CreateStatusBar() … … 2997 2997 if UseList: 2998 2998 G2frame.dataFrame.DataMenu.Enable(G2gd.wxID_DATADELETE,True) 2999 G2frame.Refine.Enable(True)2999 for item in G2frame.Refine: item.Enable(True) 3000 3000 else: 3001 3001 G2frame.dataFrame.DataMenu.Enable(G2gd.wxID_DATADELETE,False) 3002 G2frame.Refine.Enable(False)3002 for item in G2frame.Refine: item.Enable(False) 3003 3003 generalData = data['General'] 3004 3004 SGData = generalData['SGData'] … … 4310 4310 Page = G2frame.dataDisplay.FindPage('Map peaks') 4311 4311 G2frame.dataDisplay.ChangeSelection(Page) 4312 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.MapPeaksMenu)4312 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.MapPeaksMenu) 4313 4313 G2frame.dataFrame.Bind(wx.EVT_MENU, OnPeaksMove, id=G2gd.wxID_PEAKSMOVE) 4314 4314 G2frame.dataFrame.Bind(wx.EVT_MENU, OnPeaksDA, id=G2gd.wxID_PEAKSDA) … … 4372 4372 text = G2frame.dataDisplay.GetPageText(page) 4373 4373 if text == 'Atoms': 4374 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.AtomsMenu)4374 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.AtomsMenu) 4375 4375 G2frame.dataFrame.Bind(wx.EVT_MENU, OnAtomAdd, id=G2gd.wxID_ATOMSEDITADD) 4376 4376 G2frame.dataFrame.Bind(wx.EVT_MENU, OnAtomViewAdd, id=G2gd.wxID_ATOMSVIEWADD) … … 4385 4385 FillAtomsGrid() 4386 4386 elif text == 'General': 4387 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.DataGeneral)4387 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.DataGeneral) 4388 4388 G2frame.dataFrame.Bind(wx.EVT_MENU, OnFourierMaps, id=G2gd.wxID_FOURCALC) 4389 4389 G2frame.dataFrame.Bind(wx.EVT_MENU, OnSearchMaps, id=G2gd.wxID_FOURSEARCH) … … 4392 4392 UpdateGeneral() 4393 4393 elif text == 'Data': 4394 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.DataMenu)4394 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.DataMenu) 4395 4395 G2frame.dataFrame.Bind(wx.EVT_MENU, OnPwdrAdd, id=G2gd.wxID_PWDRADD) 4396 4396 G2frame.dataFrame.Bind(wx.EVT_MENU, OnHklfAdd, id=G2gd.wxID_HKLFADD) … … 4399 4399 G2plt.PlotSizeStrainPO(G2frame,data,Start=True) 4400 4400 elif text == 'Draw Options': 4401 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.DataDrawOptions)4401 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.DataDrawOptions) 4402 4402 UpdateDrawOptions() 4403 4403 G2plt.PlotStructure(G2frame,data) 4404 4404 elif text == 'Draw Atoms': 4405 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.DrawAtomsMenu)4405 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.DrawAtomsMenu) 4406 4406 G2frame.dataFrame.Bind(wx.EVT_MENU, DrawAtomStyle, id=G2gd.wxID_DRAWATOMSTYLE) 4407 4407 G2frame.dataFrame.Bind(wx.EVT_MENU, DrawAtomLabel, id=G2gd.wxID_DRAWATOMLABEL) … … 4424 4424 G2plt.PlotStructure(G2frame,data) 4425 4425 elif text == 'Pawley reflections': 4426 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.PawleyMenu)4426 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.PawleyMenu) 4427 4427 G2frame.dataFrame.Bind(wx.EVT_MENU, OnPawleyLoad, id=G2gd.wxID_PAWLEYLOAD) 4428 4428 G2frame.dataFrame.Bind(wx.EVT_MENU, OnPawleyEstimate, id=G2gd.wxID_PAWLEYESTIMATE) … … 4431 4431 FillPawleyReflectionsGrid() 4432 4432 elif text == 'Texture': 4433 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.TextureMenu)4433 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.TextureMenu) 4434 4434 G2frame.dataFrame.Bind(wx.EVT_MENU, OnTextureRefine, id=G2gd.wxID_REFINETEXTURE) 4435 4435 G2frame.dataFrame.Bind(wx.EVT_MENU, OnTextureClear, id=G2gd.wxID_CLEARTEXTURE) … … 4437 4437 G2plt.PlotTexture(G2frame,data,Start=True) 4438 4438 elif text == 'Map peaks': 4439 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.MapPeaksMenu)4439 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.MapPeaksMenu) 4440 4440 G2frame.dataFrame.Bind(wx.EVT_MENU, OnPeaksMove, id=G2gd.wxID_PEAKSMOVE) 4441 4441 G2frame.dataFrame.Bind(wx.EVT_MENU, OnPeaksViewPoint, id=G2gd.wxID_PEAKSVIEWPT) … … 4449 4449 4450 4450 else: 4451 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.BlankMenu)4451 G2gd.SetDataMenuBar(G2frame) 4452 4452 event.Skip() 4453 4453 4454 4454 General = wx.Window(G2frame.dataDisplay) 4455 4455 G2frame.dataDisplay.AddPage(General,'General') 4456 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.DataGeneral)4456 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.DataGeneral) 4457 4457 G2frame.dataFrame.Bind(wx.EVT_MENU, OnFourierMaps, id=G2gd.wxID_FOURCALC) 4458 4458 G2frame.dataFrame.Bind(wx.EVT_MENU, OnSearchMaps, id=G2gd.wxID_FOURSEARCH) -
trunk/GSASIIpwdGUI.py
r738 r765 236 236 G2plt.PlotPatterns(G2frame) 237 237 238 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.PeakMenu)238 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.PeakMenu) 239 239 if not G2frame.dataFrame.GetStatusBar(): 240 240 Status = G2frame.dataFrame.CreateStatusBar() … … 528 528 G2frame.dataFrame.DestroyChildren() 529 529 G2frame.dataDisplay = wx.Panel(G2frame.dataFrame) 530 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.BackMenu)530 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.BackMenu) 531 531 G2frame.dataFrame.SetLabel('Background') 532 532 if not G2frame.dataFrame.GetStatusBar(): … … 590 590 G2frame.LimitsTable = G2gd.Table(data,rowLabels=rowLabels,colLabels=colLabels,types=Types) 591 591 G2frame.dataFrame.SetLabel('Limits') 592 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.LimitMenu)592 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.LimitMenu) 593 593 if not G2frame.dataFrame.GetStatusBar(): 594 594 Status = G2frame.dataFrame.CreateStatusBar() … … 841 841 except TypeError: #PKS data never used in a phase as data 842 842 ifhisto = False 843 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.BlankMenu)843 G2gd.SetDataMenuBar(G2frame) 844 844 G2frame.dataFrame.SetLabel('Instrument Parameters') 845 845 G2frame.dataDisplay = wx.Panel(G2frame.dataFrame) … … 847 847 instSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,' Histogram Type:'),0,wx.ALIGN_CENTER_VERTICAL) 848 848 if 'P' in insVal['Type']: #powder data 849 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.InstMenu)849 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.InstMenu) 850 850 if not G2frame.dataFrame.GetStatusBar(): 851 851 Status = G2frame.dataFrame.CreateStatusBar() … … 1129 1129 if G2frame.dataDisplay: 1130 1130 G2frame.dataFrame.Clear() 1131 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.SampleMenu)1131 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.SampleMenu) 1132 1132 G2frame.dataFrame.SetLabel('Sample Parameters') 1133 1133 G2frame.Bind(wx.EVT_MENU, OnSampleCopy, id=G2gd.wxID_SAMPLECOPY) … … 1315 1315 Status = G2frame.dataFrame.CreateStatusBar() 1316 1316 if 'PWD' in G2frame.PatternTree.GetItemText(G2frame.PatternId): 1317 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.IndPeaksMenu)1317 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.IndPeaksMenu) 1318 1318 G2frame.Bind(wx.EVT_MENU, OnReload, id=G2gd.wxID_INDXRELOAD) 1319 1319 G2frame.dataFrame.IndexPeaks.Enable(False) … … 1656 1656 if G2frame.dataDisplay: 1657 1657 G2frame.dataFrame.Clear() 1658 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.IndexMenu)1658 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.IndexMenu) 1659 1659 if not G2frame.dataFrame.GetStatusBar(): 1660 1660 Status = G2frame.dataFrame.CreateStatusBar() … … 1864 1864 rowLabels = [] 1865 1865 if HKLF: 1866 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.BlankMenu)1866 G2gd.SetDataMenuBar(G2frame) 1867 1867 refList = [refl[:11] for refl in data[1]] 1868 1868 else: 1869 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.ReflMenu)1869 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.ReflMenu) 1870 1870 if not G2frame.dataFrame.GetStatusBar(): 1871 1871 Status = G2frame.dataFrame.CreateStatusBar() … … 2284 2284 if G2frame.dataDisplay: 2285 2285 G2frame.dataFrame.Clear() 2286 G2 frame.dataFrame.SetMenuBar(G2frame.dataFrame.PDFMenu)2286 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.PDFMenu) 2287 2287 if not G2frame.dataFrame.GetStatusBar(): 2288 2288 Status = G2frame.dataFrame.CreateStatusBar()
Note: See TracChangeset
for help on using the changeset viewer.