'Show the calltip, bind events which will close it and reposition it.'

def showtip(self, text, parenleft, parenright):

    self.text = text
    if (self.tipwindow or (not self.text)):
        return
    self.widget.mark_set(MARK_RIGHT, parenright)
    (self.parenline, self.parencol) = map(int, self.widget.index(parenleft).split('.'))
    self.tipwindow = tw = Toplevel(self.widget)
    self.position_window()
    tw.wm_overrideredirect(1)
    try:
        tw.tk.call('::tk::unsupported::MacWindowStyle', 'style', tw._w, 'help', 'noActivates')
    except TclError:
        pass
    self.label = Label(tw, text=self.text, justify=LEFT, background='#ffffe0', relief=SOLID, borderwidth=1, font=self.widget['font'])
    self.label.pack()
    tw.lift()
    self.checkhideid = self.widget.bind(CHECKHIDE_VIRTUAL_EVENT_NAME, self.checkhide_event)
    for seq in CHECKHIDE_SEQUENCES:
        self.widget.event_add(CHECKHIDE_VIRTUAL_EVENT_NAME, seq)
    self.widget.after(CHECKHIDE_TIME, self.checkhide_event)
    self.hideid = self.widget.bind(HIDE_VIRTUAL_EVENT_NAME, self.hide_event)
    for seq in HIDE_SEQUENCES:
        self.widget.event_add(HIDE_VIRTUAL_EVENT_NAME, seq)
