def notify(self, event): """E.notify (...) -> None Notifies the Entry about an event. """ if not self.sensitive: return if event.signal == SIG_MOUSEDOWN: eventarea = self.rect_to_client() if eventarea.collidepoint(event.data.pos): self.run_signal_handlers(SIG_MOUSEDOWN, event.data) if event.data.button == 1: self._caret_visible = True self._set_caret_position(eventarea, event.data.pos) if not self.focus: self.activate() event.handled = True elif event.signal == SIG_MOUSEMOVE: eventarea = self.rect_to_client() if eventarea.collidepoint(event.data.pos): self.run_signal_handlers(SIG_MOUSEMOVE, event.data) self.entered = True event.handled = True else: self.entered = False Editable.notify(self, event)
def __init__ (self, text=""): Editable.__init__ (self) self.text = text self._padding = 2 self.size = 94, 24 # Default size to use. self._signals[SIG_MOUSEDOWN] = []
def notify (self, event): """E.notify (...) -> None Notifies the Entry about an event. """ if not self.sensitive: return if event.signal == SIG_MOUSEDOWN: eventarea = self.rect_to_client () if eventarea.collidepoint (event.data.pos): self.run_signal_handlers (SIG_MOUSEDOWN, event.data) if event.data.button == 1: self._caret_visible = True self._set_caret_position (eventarea, event.data.pos) if not self.focus: self.activate () event.handled = True elif event.signal == SIG_MOUSEMOVE: eventarea = self.rect_to_client () if eventarea.collidepoint (event.data.pos): self.run_signal_handlers (SIG_MOUSEMOVE, event.data) self.entered = True event.handled = True else: self.entered = False Editable.notify (self, event)
def notify (self, event): """E.notify (...) -> None Notifies the Entry about an event. """ if not self.eventarea or not self.sensitive: return if event.signal == SIG_MOUSEDOWN: if self.eventarea.collidepoint (event.data.pos): self.run_signal_handlers (SIG_MOUSEDOWN) if (event.data.button == 1): self.activate () Editable.notify (self, event)
def draw(self): """E.draw () -> None Draws the Entry surface. """ Editable.draw(self) cls = self.__class__ style = base.GlobalStyle engine = style.engine st = self.style or style.get_style(cls) border = style.get_border_size(cls, st, self.border) text = self.text rect = self.image.get_rect() if self.password: text = '*' * len(self.text) rtext = style.engine.draw_string(text, self.state, cls, st) # The 'inner' surface, which we will use for blitting the text. sf_text = engine.draw_rect(rect.width - 2 * (self.padding + border), rect.height - 2 * (self.padding + border), self.state, cls, st) # Adjust entry offset based on caret location. font = String.create_font \ (style.get_style_entry (cls, st, "font", "name"), style.get_style_entry (cls, st, "font", "size")) rect_sftext = sf_text.get_rect() blit_pos = self._calculate_offset(rect_sftext.width, font) sf_text.blit(rtext, (blit_pos, 0)) # Draw caret. if self.focus and self.caret_visible: # The caret position is at the end of the left overhang. caret_pos = self._get_text_overhang(self.caret)[0][0] engine.draw_caret(sf_text, blit_pos + caret_pos, 1, 2, self.state, cls, st) rect_sftext.center = rect.center self.image.blit(sf_text, rect_sftext)
def draw (self): """E.draw () -> None Draws the Entry surface. """ Editable.draw (self) cls = self.__class__ style = base.GlobalStyle engine = style.engine st = self.style or style.get_style (cls) border = style.get_border_size (cls, st, self.border) text = self.text rect = self.image.get_rect () if self.password: text = '*' * len (self.text) rtext = style.engine.draw_string (text, self.state, cls, st) # The 'inner' surface, which we will use for blitting the text. sf_text = engine.draw_rect (rect.width - 2 * (self.padding + border), rect.height - 2 * (self.padding + border), self.state, cls, st) # Adjust entry offset based on caret location. font = String.create_font \ (style.get_style_entry (cls, st, "font", "name"), style.get_style_entry (cls, st, "font", "size")) rect_sftext = sf_text.get_rect () blit_pos = self._calculate_offset (rect_sftext.width, font) sf_text.blit (rtext, (blit_pos, 0)) # Draw caret. if self.focus and self.caret_visible: # The caret position is at the end of the left overhang. caret_pos = self._get_text_overhang (self.caret)[0][0] engine.draw_caret (sf_text, blit_pos + caret_pos, 1, 2, self.state, cls, st) rect_sftext.center = rect.center self.image.blit (sf_text, rect_sftext)
def __init__(self, text=""): Editable.__init__(self) self._realtext = None self._padding = 2 self._border = BORDER_SUNKEN self._password = False self._offset = 0 # Front offset in pixels. # Pixel sizes of text to the left and right of caret, and char # the caret is at. self._leftsize = (0, 0) self._rightsize = (0, 0) self._cursize = (0, 0) self._font = None self._signals[SIG_MOUSEDOWN] = [] self._signals[SIG_MOUSEMOVE] = [] self.minsize = 94, 24 # Default size to use. self.text = text
def __init__ (self, text=""): Editable.__init__ (self) self._realtext = None self._padding = 2 self._border = BORDER_SUNKEN self._password = False self._offset = 0 # Front offset in pixels. # Pixel sizes of text to the left and right of caret, and char # the caret is at. self._leftsize = (0, 0) self._rightsize = (0, 0) self._cursize = (0, 0) self._font = None self._signals[SIG_MOUSEDOWN] = [] self._signals[SIG_MOUSEMOVE] = [] self.minsize = 94, 24 # Default size to use. self.text = text