Changeset 19


Ignore:
Timestamp:
Jan 27, 2010 2:49:22 PM (12 years ago)
Author:
vondreel
Message:

image control fixups

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r8 r19  
    247247        self.HKL = []
    248248        self.Lines = []
    249         self.linePicked = None
     249        self.itemPicked = None
    250250        self.dataFrame = None
    251251        self.Contour = False
     
    12361236        def OnImMotion(event):
    12371237            if event.xdata:
    1238                 if self.linePicked:
     1238                item = self.itemPicked
     1239                if item:
    12391240                    xpos = event.xdata
    12401241                    if xpos:                                        #avoid out of frame mouse position
    12411242                        ypos = event.ydata
    12421243                        xcent,ycent = Data['center']
    1243                         xcent *= scalex
    1244                         ycent *= scaley
    1245                         xpos -= xcent
    1246                         ypos -= ycent
    1247                         radius = math.sqrt(xpos**2+ypos**2)
    1248                         xpos /= radius
    1249                         ypos /= radius
    1250                         ang = int(atan2d(-ypos,xpos))
    1251                         if 'line0' or 'line1' in self.linePicked:
    1252                             self.pdplot.canvas.SetToolTipString('%6d deg'%(ang))
     1244                        xpos -= xcent*scalex
     1245                        ypos -= ycent*scaley
     1246                        if 'Text' in str(item):
     1247                            self.pdplot.canvas.SetToolTipString('%8.3f %8.3fmm'%(event.xdata/scalex,event.ydata/scaley))
    12531248                        else:
    1254                             self.pdplot.canvas.SetToolTipString('%8.3f'%(radius))
     1249#                            xpos /= radius
     1250#                            ypos /= radius
     1251                            if 'line2' in  str(item) or 'line3' in str(item):
     1252                                ang = int(atan2d(-ypos,xpos))
     1253                                self.pdplot.canvas.SetToolTipString('%6d deg'%(ang))
     1254                            else:
     1255                                radius = math.sqrt(xpos**2+ypos**2)
     1256                                self.pdplot.canvas.SetToolTipString('%8.3fmm'%(radius/scalex))
    12551257                           
    12561258                else:
     
    12931295               
    12941296        def OnImPick(event):
    1295             if self.linePicked is not None: return
     1297            if self.itemPicked is not None: return
    12961298            pick = event.artist
    1297             self.linePicked = pick
    1298             mouse = event.mouseevent
    1299             xpos = pick.get_xdata()
    1300             ypos = pick.get_ydata()
    1301             ind = event.ind
    1302             xy = zip(xpos[ind],ypos[ind])
     1299            self.itemPicked = pick
    13031300           
    13041301        def OnImRelease(event):
    1305             if self.linePicked is None: return
     1302            if self.itemPicked is None: return
    13061303            xpos = event.xdata
    13071304            if xpos:                                        #avoid out of frame mouse position
     
    13161313                ypos /= radius
    13171314                ang = int(atan2d(-ypos,xpos))
    1318                 if 'line2' in str(self.linePicked):
    1319                     Data['LRazimuth'][0] = ang
    1320                 elif 'line3' in str(self.linePicked):
    1321                     Data['LRazimuth'][1] = ang
    1322                 elif 'line0' in str(self.linePicked):
    1323                     Data['IOradii'][0] = radius/scalex
    1324                 elif 'line1' in str(self.linePicked):
    1325                     Data['IOradii'][1] = radius/scalex
    1326                 if Data['LRazimuth'][1] < Data['LRazimuth'][0]:
    1327                     Data['LRazimuth'][1] += 360
    1328                 if  Data['IOradii'][0] > Data['IOradii'][1]:
    1329                     Data['IOradii'] = G2cmp.SwapXY(Data['IOradii'][0],Data['IOradii'][1])
    1330                 self.IOradText.SetValue("%8.3f,%8.3f" % (Data['IOradii'][0],Data['IOradii'][1]))
    1331                 self.LRazim.SetValue("%6d,%6d" % (Data['LRazimuth'][0],Data['LRazimuth'][1]))
     1315                if 'Line2D' in str(self.itemPicked):
     1316                    if 'line2' in str(self.itemPicked):
     1317                        Data['LRazimuth'][0] = ang
     1318                    elif 'line3' in str(self.itemPicked):
     1319                        Data['LRazimuth'][1] = ang
     1320                    elif 'line0' in str(self.itemPicked):
     1321                        Data['IOradii'][0] = radius/scalex
     1322                    elif 'line1' in str(self.itemPicked):
     1323                        Data['IOradii'][1] = radius/scalex
     1324                    if Data['LRazimuth'][1] < Data['LRazimuth'][0]:
     1325                        Data['LRazimuth'][1] += 360
     1326                    if  Data['IOradii'][0] > Data['IOradii'][1]:
     1327                        Data['IOradii'] = G2cmp.SwapXY(Data['IOradii'][0],Data['IOradii'][1])
     1328                    self.IOradText.SetValue("%8.3f,%8.3f" % (Data['IOradii'][0],Data['IOradii'][1]))
     1329                    self.LRazim.SetValue("%6d,%6d" % (Data['LRazimuth'][0],Data['LRazimuth'][1]))
     1330                elif 'Text' in str(self.itemPicked):
     1331                    cent = Data['center'] = [event.xdata/scalex,event.ydata/scalex]
     1332                    try:
     1333                        self.centText.SetValue(("%8.3f,%8.3f" % (cent[0],cent[1])))
     1334                    except AttributeError:
     1335                        pass
    13321336                self.PlotImage()
    1333             self.linePicked = None
     1337            self.itemPicked = None
    13341338           
    13351339
     
    13771381            aspect='equal',origin='upper',cmap=acolor, \
    13781382            interpolation='nearest',vmin=Imin,vmax=Imax)
    1379         ax.text(xcent,ycent,'+',ha='center',va='center')
     1383        ax.text(xcent,ycent,'+',ha='center',va='center',picker=3)
    13801384        if Data['showLines']:
    13811385            LRAzim = Data['LRazimuth']
     
    14131417       
    14141418        def OnPick(event):
    1415             if self.linePicked is not None: return
     1419            if self.itemPicked is not None: return
    14161420            PatternId = self.PatternId
    14171421            PickId = self.PickId
     
    14361440                    G2gd.UpdatePeakGrid(self,data)
    14371441                else:                                                   #picked a peak list line
    1438                     self.linePicked = pick
     1442                    self.itemPicked = pick
    14391443            elif self.PatternTree.GetItemText(PickId) == 'Limits':
    14401444                if ind.all() != [0]:                                    #picked a data point
     
    14481452                    G2gd.UpdateLimitsGrid(self,data)
    14491453                else:                                                   #picked a limit line
    1450                     self.linePicked = pick               
     1454                    self.itemPicked = pick               
    14511455            self.PlotPatterns()
    14521456           
     
    14791483                           
    14801484        def OnMotion(event):
    1481             if self.linePicked:
     1485            if self.itemPicked:
    14821486                xpos = event.xdata
    14831487                if xpos:                                        #avoid out of frame mouse position
     
    14851489                       
    14861490        def OnRelease(event):
    1487             if self.linePicked is None: return
     1491            if self.itemPicked is None: return
    14881492            xpos = event.xdata
    14891493            if xpos:                                        #avoid out of frame mouse position
    14901494                lines = []
    14911495                for line in self.Lines: lines.append(line.get_xdata()[0])
    1492                 lineNo = lines.index(self.linePicked.get_xdata()[0])
     1496                lineNo = lines.index(self.itemPicked.get_xdata()[0])
    14931497                if  lineNo in [0,1]:
    14941498                    LimitId = G2gd.GetPatternTreeItemId(self,self.PatternId, 'Limits')
     
    15051509                    G2gd.UpdatePeakGrid(self,data)
    15061510            self.PlotPatterns()
    1507             self.linePicked = None   
     1511            self.itemPicked = None   
    15081512           
    15091513        try:
  • trunk/GSASIIgrid.py

    r11 r19  
    997997    self.dataDisplay.SetSizer(mainSizer)
    998998    self.dataDisplay.SetSize(mainSizer.Fit(self.dataFrame))
    999     self.dataFrame.setSizePosLeft(600,310)
     999    self.dataFrame.setSizePosLeft(550,310)
    10001000   
    10011001def UpdatePhaseData(self,item,data,oldPage):
Note: See TracChangeset for help on using the changeset viewer.