Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/python/casatoolbar.py

    r1826 r1945  
    11import os
    22import matplotlib
     3
    34######################################
    45##    Add CASA custom toolbar       ##
     
    144145        mymask.select_mask(once=True,showmask=False)
    145146
     147    def _mod_note(self,event):
     148        # Do not fire event when in zooming/panning mode
     149        if not self.figmgr.toolbar.mode == '':
     150            return
     151        if event.button ==1:
     152            self.notewin.load_textwindow(event)
     153        elif event.button == 3 and self._note_picked(event):
     154            self.notewin.load_modmenu(event)
     155        return
     156
     157    def _note_picked(self,event):
     158        # just briefly check if any texts are picked
     159        for textobj in self.canvas.figure.texts:
     160            if textobj.contains(event)[0]:
     161                return True
     162        for ax in self.canvas.figure.axes:
     163            for textobj in ax.texts:
     164                if textobj.contains(event)[0]:
     165                    return True
     166        #print "No text picked"
     167        return False
     168
     169    def _new_page(self,next=True):
     170        self.plotter._plotter.hold()
     171        #self.plotter._plotter.clear()
     172        self.plotter._plot(self.plotter._data)
     173        self.plotter._plotter.release()
     174        self.plotter._plotter.tidy()
     175        self.plotter._plotter.show(hardrefresh=False)
     176        pass
     177
    146178#####################################
    147179##    Backend dependent Classes    ##
     
    150182if matplotlib.get_backend() == 'TkAgg':
    151183    import Tkinter as Tk
     184    from notationwindow import NotationWindowTkAgg
    152185
    153186class CustomToolbarTkAgg(CustomToolbarCommon, Tk.Frame):
     
    164197        self.button=True
    165198        self._add_custom_toolbar()
     199        self.notewin=NotationWindowTkAgg(master=self.canvas)
    166200        CustomToolbarCommon.__init__(self,parent)
    167201
     
    174208                                   text='statistics',
    175209                                   command=self.stat_cal)
     210        self.bNote=self._NewButton(master=self,
     211                                   text='notation',
     212                                   command=self.modify_note)
     213        #self.bPrev=self._NewButton(master=self,
     214        #                           text='- page',
     215        #                           command=self.prev_page)
     216        self.bNext=self._NewButton(master=self,
     217                                   text='+ page',
     218                                   command=self.next_page)
     219        if os.uname()[0] != 'Darwin':
     220            #self.bPrev.config(padx=5)
     221            self.bNext.config(padx=5)
    176222        self.bQuit=self._NewButton(master=self,
    177223                                   text='Quit',
     
    198244        self.bStat.config(relief='raised')
    199245        self.bSpec.config(relief='sunken')
     246        self.bNote.config(relief='raised')
    200247        self.mode='spec'
     248        self.notewin.close_widgets()
    201249        self.__disconnect_event()
    202250        #self.canvas.mpl_connect('button_press_event',self._select_spectrum)
     
    209257        self.bSpec.config(relief='raised')
    210258        self.bStat.config(relief='sunken')
     259        self.bNote.config(relief='raised')
    211260        self.mode='stat'
     261        self.notewin.close_widgets()
    212262        self.__disconnect_event()
    213263        self._p.register('button_press',self._single_mask)
     264
     265    def modify_note(self):
     266        if not self.figmgr.toolbar.mode == '': return
     267        self.figmgr.toolbar.set_message('text: select a position/text')
     268        if self.mode == 'note': return
     269        self.bSpec.config(relief='raised')
     270        self.bStat.config(relief='raised')
     271        self.bNote.config(relief='sunken')
     272        self.mode='note'
     273        self.__disconnect_event()
     274        self._p.register('button_press',self._mod_note)
     275
     276    def prev_page(self):
     277        self.figmgr.toolbar.set_message('plotting the previous page')
     278        self._new_page(next=False)
     279
     280    def next_page(self):
     281        self.figmgr.toolbar.set_message('plotting the next page')
     282        self._new_page(next=True)
    214283
    215284    def quit(self):
     
    230299        self.bStat.config(relief='raised', state=Tk.DISABLED)
    231300        self.bSpec.config(relief='raised', state=Tk.DISABLED)
     301        #self.bPrev.config(state=Tk.DISABLED)
     302        #self.bNext.config(state=Tk.DISABLED)
    232303        self.button=False
    233304        self.mode=''
    234305        self.__disconnect_event()
     306
     307    def enable_next(self):
     308        self.bNext.config(state=Tk.NORMAL)
     309
     310    def disable_next(self):
     311        self.bNext.config(state=Tk.DISABLED)
     312
     313    def enable_prev(self):
     314        #self.bPrev.config(state=Tk.NORMAL)
     315        pass
     316
     317    def disable_prev(self):
     318        #self.bPrev.config(state=Tk.DISABLED)
     319        pass
    235320
    236321    def delete_bar(self):
Note: See TracChangeset for help on using the changeset viewer.