Changeset 776


Ignore:
Timestamp:
Oct 3, 2012 4:49:39 PM (9 years ago)
Author:
toby
Message:

revise menu creation to add 2nd separator on mac and put Help as final menu in Win/Linux?

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r765 r776  
    945945        self.SetPosition(wx.Point(xPos,clientSize[1]))
    946946        self._init_Imports()
    947         #self._init_utils()
    948947        #initialize Menu item objects (these contain lists of menu items that are enabled or disabled)
    949948        self.MakePDF = []
  • trunk/GSASIIgrid.py

    r774 r776  
    151151        self.HelpById = {}
    152152        self.frame = frame
    153         # add a help item only when helpType is specified
    154         if helpType is not None:
    155             if helpLbl is None: helpLbl = helpType
    156             helpobj = self.Append(text='Help on '+helpLbl,
    157                                   id=wx.ID_ANY, kind=wx.ITEM_NORMAL)
    158             frame.Bind(wx.EVT_MENU, self.OnHelpById, helpobj)
    159             self.HelpById[helpobj.GetId()] = helpType
    160         for lbl,indx in morehelpitems:
    161             helpobj = self.Append(text=lbl,
    162                 id=wx.ID_ANY, kind=wx.ITEM_NORMAL)
    163             frame.Bind(wx.EVT_MENU, self.OnHelpById, helpobj)
    164             self.HelpById[helpobj.GetId()] = indx
    165153        self.Append(help='', id=wx.ID_ABOUT, kind=wx.ITEM_NORMAL,
    166154            text='&About GSAS-II')
     
    171159                text='&Check for updates')
    172160            frame.Bind(wx.EVT_MENU, self.OnCheckUpdates, helpobj)
     161        for lbl,indx in morehelpitems:
     162            helpobj = self.Append(text=lbl,
     163                id=wx.ID_ANY, kind=wx.ITEM_NORMAL)
     164            frame.Bind(wx.EVT_MENU, self.OnHelpById, helpobj)
     165            self.HelpById[helpobj.GetId()] = indx
     166        # add a help item only when helpType is specified
     167        if helpType is not None:
     168            if helpLbl is None: helpLbl = helpType
     169            helpobj = self.Append(text='Help on '+helpLbl,
     170                                  id=wx.ID_ANY, kind=wx.ITEM_NORMAL)
     171            frame.Bind(wx.EVT_MENU, self.OnHelpById, helpobj)
     172            self.HelpById[helpobj.GetId()] = helpType
    173173       
    174174    def OnHelpById(self,event):
     
    367367    '''Create the dataframe window and its menus
    368368    '''
    369     def FillDataMenu(self,menu,helpType,helpLbl=None):
     369    def PrefillDataMenu(self,menu,helpType,helpLbl=None,empty=False):
    370370        '''Create the "standard" part of data frame menus. Note that on Linux and
    371371        Windows, this is the standard help Menu. On Mac, this menu duplicates the
    372372        tree menu, but adds an extra help command for the data item and a separator.
    373373        '''
     374        self.datamenu = menu
     375        self.helpType = helpType
     376        self.helpLbl = helpLbl
    374377        if sys.platform == "darwin": # mac                         
     378            self.G2frame.FillMainMenu(menu) # add the data tree menu items
     379            if not empty:
     380                menu.Append(wx.Menu(title=''),title='|') # add a separator
     381        #    menu.Append(AddHelp(self.G2frame,helpType=helpType, helpLbl=helpLbl),
     382        #                title='&Help')
     383        #else: # other
     384        #    menu.Append(menu=MyHelp(self,helpType=helpType, helpLbl=helpLbl),
     385        #                title='&Help')
     386       
     387    def PostfillDataMenu(self,empty=False):
     388        '''Create the "standard" part of data frame menus. Note that on Linux and
     389        Windows, this is the standard help Menu. On Mac, this menu duplicates the
     390        tree menu, but adds an extra help command for the data item and a separator.
     391        '''
     392        menu = self.datamenu
     393        helpType = self.helpType
     394        helpLbl = self.helpLbl
     395        if sys.platform == "darwin": # mac
     396            if not empty:
     397                menu.Append(wx.Menu(title=''),title='|') # add another separator
    375398            menu.Append(AddHelp(self.G2frame,helpType=helpType, helpLbl=helpLbl),
    376399                        title='&Help')
    377             self.G2frame.FillMainMenu(menu) # add the data tree menu items
    378             menu.Append(wx.Menu(title=''),title='|') # add a separator
    379400        else: # other
    380401            menu.Append(menu=MyHelp(self,helpType=helpType, helpLbl=helpLbl),
     
    390411# Controls
    391412        self.ControlsMenu = wx.MenuBar()
    392         self.FillDataMenu(self.ControlsMenu,helpType='Controls')
     413        self.PrefillDataMenu(self.ControlsMenu,helpType='Controls',empty=True)
     414        self.PostfillDataMenu(empty=True)
    393415       
    394416# Notebook
    395         self.DataNotebookMenu = wx.MenuBar()
    396         self.FillDataMenu(self.DataNotebookMenu,helpType='Notebook')
     417        self.DataNotebookMenu = wx.MenuBar()
     418        self.PrefillDataMenu(self.DataNotebookMenu,helpType='Notebook',empty=True)
     419        self.PostfillDataMenu(empty=True)
    397420       
    398421# Comments
    399422        self.DataCommentsMenu = wx.MenuBar()
    400         self.FillDataMenu(self.DataCommentsMenu,helpType='Comments')
     423        self.PrefillDataMenu(self.DataCommentsMenu,helpType='Comments',empty=True)
     424        self.PostfillDataMenu(empty=True)
    401425       
    402426# Constraints
    403427        self.ConstraintMenu = wx.MenuBar()
    404         self.FillDataMenu(self.ConstraintMenu,helpType='Constraints')
     428        self.PrefillDataMenu(self.ConstraintMenu,helpType='Constraints')
    405429        self.ConstraintEdit = wx.Menu(title='')
    406430        self.ConstraintMenu.Append(menu=self.ConstraintEdit, title='Edit')
     
    413437        self.ConstraintEdit.Append(id=wxID_FUNCTADD, kind=wx.ITEM_NORMAL,text='Add New Var',
    414438            help='Add variable composed of existing parameter')
     439        self.PostfillDataMenu()
    415440           
    416441# Restraints
    417442        self.RestraintMenu = wx.MenuBar()
    418         self.FillDataMenu(self.RestraintMenu,helpType='Restraints')
     443        self.PrefillDataMenu(self.RestraintMenu,helpType='Restraints')
    419444        self.RestraintEdit = wx.Menu(title='')
    420445        self.RestraintMenu.Append(menu=self.RestraintEdit, title='Edit')
     
    429454        self.RestraintEdit.Append(id=wxID_RESTDELETE, kind=wx.ITEM_NORMAL,text='Delete restraints',
    430455            help='Delete selected restraints')
     456        self.PostfillDataMenu()
    431457           
    432458# Sequential results
    433459        self.SequentialMenu = wx.MenuBar()
    434         self.FillDataMenu(self.SequentialMenu,helpType='Sequential',helpLbl='Sequential Refinement')
     460        self.PrefillDataMenu(self.SequentialMenu,helpType='Sequential',helpLbl='Sequential Refinement')
    435461        self.SequentialFile = wx.Menu(title='')
    436462        self.SequentialMenu.Append(menu=self.SequentialFile, title='File')
    437463        self.SequentialFile.Append(id=wxID_SAVESEQSEL, kind=wx.ITEM_NORMAL,text='Save...',
    438464            help='Save selected sequential refinement results')
     465        self.PostfillDataMenu()
    439466           
    440467# PDR
    441468        self.ErrorMenu = wx.MenuBar()
    442         self.FillDataMenu(self.ErrorMenu,helpType='PWD Analysis',helpLbl='Powder Fit Error Analysis')
     469        self.PrefillDataMenu(self.ErrorMenu,helpType='PWD Analysis',helpLbl='Powder Fit Error Analysis')
    443470        self.ErrorAnal = wx.Menu(title='')
    444471        self.ErrorMenu.Append(menu=self.ErrorAnal,title='Analysis')
    445472        self.ErrorAnal.Append(id=wxID_PWDANALYSIS,kind=wx.ITEM_NORMAL,text='Analyze',
    446473            help='Error analysis on powder pattern')
     474        self.PostfillDataMenu()
    447475           
    448476# PDR / Limits
    449477        self.LimitMenu = wx.MenuBar()
    450         self.FillDataMenu(self.LimitMenu,helpType='Limits')
     478        self.PrefillDataMenu(self.LimitMenu,helpType='Limits')
    451479        self.LimitEdit = wx.Menu(title='')
    452480        self.LimitMenu.Append(menu=self.LimitEdit, title='File')
    453481        self.LimitEdit.Append(id=wxID_LIMITCOPY, kind=wx.ITEM_NORMAL,text='Copy',
    454482            help='Copy limits to other histograms')
     483        self.PostfillDataMenu()
    455484           
    456485# PDR / Background
    457486        self.BackMenu = wx.MenuBar()
    458         self.FillDataMenu(self.BackMenu,helpType='Background')
     487        self.PrefillDataMenu(self.BackMenu,helpType='Background')
    459488        self.BackEdit = wx.Menu(title='')
    460489        self.BackMenu.Append(menu=self.BackEdit, title='File')
     
    463492        self.BackEdit.Append(id=wxID_BACKFLAGCOPY, kind=wx.ITEM_NORMAL,text='Copy flags',
    464493            help='Copy background refinement flags to other histograms')
     494        self.PostfillDataMenu()
    465495           
    466496# PDR / Instrument Parameters
    467497        self.InstMenu = wx.MenuBar()
    468         self.FillDataMenu(self.InstMenu,helpType='Instrument Parameters')
     498        self.PrefillDataMenu(self.InstMenu,helpType='Instrument Parameters')
    469499        self.InstEdit = wx.Menu(title='')
    470500        self.InstMenu.Append(menu=self.InstEdit, title='Operations')
     
    481511        self.InstEdit.Append(help='Change radiation type (Ka12 - synch)',
    482512            id=wxID_CHANGEWAVETYPE, kind=wx.ITEM_NORMAL,text='Change radiation')
     513        self.PostfillDataMenu()
    483514       
    484515# PDR / Sample Parameters
    485516        self.SampleMenu = wx.MenuBar()
    486         self.FillDataMenu(self.SampleMenu,helpType='Sample Parameters')
     517        self.PrefillDataMenu(self.SampleMenu,helpType='Sample Parameters')
    487518        self.SampleEdit = wx.Menu(title='')
    488519        self.SampleMenu.Append(menu=self.SampleEdit, title='File')
     
    495526        self.SampleEdit.Append(id=wxID_SAMPLEFLAGCOPY, kind=wx.ITEM_NORMAL,text='Copy flags',
    496527            help='Copy sample parameter refinement flags to other histograms')
     528        self.PostfillDataMenu()
    497529
    498530# PDR / Peak List
    499531        self.PeakMenu = wx.MenuBar()
    500         self.FillDataMenu(self.PeakMenu,helpType='Peak List')
     532        self.PrefillDataMenu(self.PeakMenu,helpType='Peak List')
    501533        self.PeakEdit = wx.Menu(title='')
    502534        self.PeakMenu.Append(menu=self.PeakEdit, title='Peak Fitting')
     
    511543        self.PeakEdit.Append(id=wxID_CLEARPEAKS, kind=wx.ITEM_NORMAL,text='Clear peaks',
    512544            help='Clear the peak list' )
     545        self.PostfillDataMenu()
    513546        self.UnDo.Enable(False)
    514547        self.PeakFit.Enable(False)
     
    517550# PDR / Index Peak List
    518551        self.IndPeaksMenu = wx.MenuBar()
    519         self.FillDataMenu(self.IndPeaksMenu,helpType='Index Peak List')
     552        self.PrefillDataMenu(self.IndPeaksMenu,helpType='Index Peak List')
    520553        self.IndPeaksEdit = wx.Menu(title='')
    521554        self.IndPeaksMenu.Append(menu=self.IndPeaksEdit,title='Operations')
    522555        self.IndPeaksEdit.Append(help='Load/Reload index peaks from peak list',id=wxID_INDXRELOAD,
    523556            kind=wx.ITEM_NORMAL,text='Load/Reload')
     557        self.PostfillDataMenu()
    524558       
    525559# PDR / Unit Cells List
    526560        self.IndexMenu = wx.MenuBar()
    527         self.FillDataMenu(self.IndexMenu,helpType='Unit Cells List')
     561        self.PrefillDataMenu(self.IndexMenu,helpType='Unit Cells List')
    528562        self.IndexEdit = wx.Menu(title='')
    529563        self.IndexMenu.Append(menu=self.IndexEdit, title='Cell Index/Refine')
     
    536570        self.MakeNewPhase = self.IndexEdit.Append( id=wxID_MAKENEWPHASE, kind=wx.ITEM_NORMAL,
    537571            text='Make new phase',help='Make new phase from selected unit cell')
     572        self.PostfillDataMenu()
    538573        self.IndexPeaks.Enable(False)
    539574        self.CopyCell.Enable(False)
     
    543578# PDR / Reflection Lists
    544579        self.ReflMenu = wx.MenuBar()
    545         self.FillDataMenu(self.ReflMenu,helpType='Reflection List')
     580        self.PrefillDataMenu(self.ReflMenu,helpType='Reflection List')
    546581        self.ReflEdit = wx.Menu(title='')
    547582        self.ReflMenu.Append(menu=self.ReflEdit, title='Reflection List')
    548583        self.SelectPhase = self.ReflEdit.Append(help='Select phase for reflection list',id=wxID_SELECTPHASE,
    549584            kind=wx.ITEM_NORMAL,text='Select phase')
     585        self.PostfillDataMenu()
    550586       
    551587# IMG / Image Controls
    552588        self.ImageMenu = wx.MenuBar()
    553         self.FillDataMenu(self.ImageMenu,helpType='Image Controls')
     589        self.PrefillDataMenu(self.ImageMenu,helpType='Image Controls')
    554590        self.ImageEdit = wx.Menu(title='')
    555591        self.ImageMenu.Append(menu=self.ImageEdit, title='Operations')
     
    570606        self.ImageEdit.Append(help='Load image controls from file',
    571607            id=wxID_IMLOADCONTROLS, kind=wx.ITEM_NORMAL,text='Load Controls')
     608        self.PostfillDataMenu()
    572609           
    573610# IMG / Masks
    574611        self.MaskMenu = wx.MenuBar()
    575         self.FillDataMenu(self.MaskMenu,helpType='Image Masks')
     612        self.PrefillDataMenu(self.MaskMenu,helpType='Image Masks')
    576613        self.MaskEdit = wx.Menu(title='')
    577614        self.MaskMenu.Append(menu=self.MaskEdit, title='Operations')
     
    582619        self.MaskEdit.Append(help='Load mask from file',
    583620            id=wxID_MASKLOAD, kind=wx.ITEM_NORMAL,text='Load mask')
     621        self.PostfillDataMenu()
    584622           
    585623# IMG / Stress/Strain
    586624
    587625        self.StrStaMenu = wx.MenuBar()
    588         self.FillDataMenu(self.StrStaMenu,helpType='Stress/Strain')
     626        self.PrefillDataMenu(self.StrStaMenu,helpType='Stress/Strain')
    589627        self.StrStaEdit = wx.Menu(title='')
    590628        self.StrStaMenu.Append(menu=self.StrStaEdit, title='Operations')
     
    599637        self.StrStaEdit.Append(help='Load stress/strain data from file',
    600638            id=wxID_STRSTALOAD, kind=wx.ITEM_NORMAL,text='Load stress/strain')
     639        self.PostfillDataMenu()
    601640           
    602641# PDF / PDF Controls
    603642        self.PDFMenu = wx.MenuBar()
    604         self.FillDataMenu(self.PDFMenu,helpType='PDF Controls')
     643        self.PrefillDataMenu(self.PDFMenu,helpType='PDF Controls')
    605644        self.PDFEdit = wx.Menu(title='')
    606645        self.PDFMenu.Append(menu=self.PDFEdit, title='PDF Controls')
     
    619658        self.PDFEdit.Append(help='Compute all PDFs', id=wxID_PDFCOMPUTEALL, kind=wx.ITEM_NORMAL,
    620659            text='Compute all PDFs')
     660        self.PostfillDataMenu()
    621661           
    622662# Phase / General tab
    623663
    624664        self.DataGeneral = wx.MenuBar()
    625         self.FillDataMenu(self.DataGeneral,helpType='General', helpLbl='Phase/General')
     665        self.PrefillDataMenu(self.DataGeneral,helpType='General', helpLbl='Phase/General')
    626666        self.GeneralCalc = wx.Menu(title='')
    627667        self.DataGeneral.Append(menu=self.GeneralCalc,title='Compute')
     
    634674        self.GeneralCalc.Append(help='Clear map',id=wxID_FOURCLEAR, kind=wx.ITEM_NORMAL,
    635675            text='Clear map')
     676        self.PostfillDataMenu()
    636677       
    637678# Phase / Data tab
    638679        self.DataMenu = wx.MenuBar()
    639         self.FillDataMenu(self.DataMenu,helpType='Data', helpLbl='Phase/Data')
     680        self.PrefillDataMenu(self.DataMenu,helpType='Data', helpLbl='Phase/Data')
    640681        self.DataEdit = wx.Menu(title='')
    641682        self.DataMenu.Append(menu=self.DataEdit, title='Edit')
     
    646687        self.DataEdit.Append(id=wxID_DATADELETE, kind=wx.ITEM_NORMAL,text='Delete histograms',
    647688            help='Delete histograms from use for this phase')
     689        self.PostfillDataMenu()
    648690           
    649691# Phase / Atoms tab
    650692        self.AtomsMenu = wx.MenuBar()
    651         self.FillDataMenu(self.AtomsMenu,helpType='Atoms')
     693        self.PrefillDataMenu(self.AtomsMenu,helpType='Atoms')
    652694        self.AtomEdit = wx.Menu(title='')
    653695        self.AtomCompute = wx.Menu(title='')
     
    674716        self.AtomCompute.Append(id=wxID_ATOMSDISAGL, kind=wx.ITEM_NORMAL,text='Distances && Angles',
    675717            help='Compute distances & angles for selected atoms')
     718        self.PostfillDataMenu()
    676719                 
    677720# Phase / Draw Options tab
    678721        self.DataDrawOptions = wx.MenuBar()
    679         self.FillDataMenu(self.DataDrawOptions,helpType='Draw Options', helpLbl='Phase/Draw Options')
     722        self.PrefillDataMenu(self.DataDrawOptions,helpType='Draw Options', helpLbl='Phase/Draw Options',empty=True)
     723        self.PostfillDataMenu(empty=True)
    680724       
    681725# Phase / Draw Atoms tab
    682726        self.DrawAtomsMenu = wx.MenuBar()
    683         self.FillDataMenu(self.DrawAtomsMenu,helpType='Draw Atoms')
     727        self.PrefillDataMenu(self.DrawAtomsMenu,helpType='Draw Atoms')
    684728        self.DrawAtomEdit = wx.Menu(title='')
    685729        self.DrawAtomCompute = wx.Menu(title='')
     
    722766        self.DrawAtomRestraint.Append(id=wxID_DRAWRESTRCHIRAL, kind=wx.ITEM_NORMAL,text='Add chiral restraint',
    723767            help='Add chiral restraint for selected atoms (4: center atom 1st)')
     768        self.PostfillDataMenu()
    724769           
    725770# Phase / Texture tab
    726771        self.TextureMenu = wx.MenuBar()
    727         self.FillDataMenu(self.TextureMenu,helpType='Texture')
     772        self.PrefillDataMenu(self.TextureMenu,helpType='Texture')
    728773        self.TextureEdit = wx.Menu(title='')
    729774        self.TextureMenu.Append(menu=self.TextureEdit, title='Texture')
     
    732777        self.TextureEdit.Append(id=wxID_CLEARTEXTURE, kind=wx.ITEM_NORMAL,text='Clear texture',
    733778            help='Clear the texture coefficients' )
     779        self.PostfillDataMenu()
    734780           
    735781# Phase / Pawley tab
    736782        self.PawleyMenu = wx.MenuBar()
    737         self.FillDataMenu(self.PawleyMenu,helpType='Pawley')
     783        self.PrefillDataMenu(self.PawleyMenu,helpType='Pawley')
    738784        self.PawleyEdit = wx.Menu(title='')
    739785        self.PawleyMenu.Append(menu=self.PawleyEdit,title='Operations')
     
    746792#        self.PawleyEdit.Append(id=wxID_PAWLEYDELETE, kind=wx.ITEM_NORMAL,text='Pawley delete',
    747793#            help='Delete selected Pawley reflection')
     794        self.PostfillDataMenu()
    748795           
    749796# Phase / Map peaks tab
    750797        self.MapPeaksMenu = wx.MenuBar()
    751         self.FillDataMenu(self.MapPeaksMenu,helpType='Map peaks')
     798        self.PrefillDataMenu(self.MapPeaksMenu,helpType='Map peaks')
    752799        self.MapPeaksEdit = wx.Menu(title='')
    753800        self.MapPeaksMenu.Append(menu=self.MapPeaksEdit, title='Map peaks')
     
    768815        self.MapPeaksEdit.Append(id=wxID_PEAKSCLEAR, kind=wx.ITEM_NORMAL,text='Clear peaks',
    769816            help='Clear the map peak list')
     817        self.PostfillDataMenu()
    770818           
    771819# end of GSAS-II menu definitions
Note: See TracChangeset for help on using the changeset viewer.