diff --git a/AutoCompleter.py b/AutoCompleter.py index a5071ca..3ba536e 100755 --- a/AutoCompleter.py +++ b/AutoCompleter.py @@ -7,35 +7,27 @@ from time import sleep import json import os import requests +from PlaceHolder import PlaceHolder -class AutoCompleter(Entry): +class AutoCompleter(Entry, PlaceHolder): def __init__(self, parent, placeholder, **kw): Entry.__init__(self, parent, **kw) - self.parent = parent - self.placeholder = placeholder - self.placeholder_color = "grey" - self.default_fg_color = self['fg'] + self.var = self["textvariable"] = StringVar() + self.var.trace('w', self.changed) - self.bind("", self.foc_in) - self.bind("", self.foc_out) + self.parent = parent self.lb = Listbox(self.parent) self.lb_up = False self.has_selected = False self.queue = Queue.Queue() - self.var = self["textvariable"] = StringVar() + PlaceHolder.__init__(self, placeholder) - self.var.trace('w', self.changed) - self.put_placeholder() self.bind("", self.keypressed) self.update_me() - def put_placeholder(self): - self['fg'] = self.placeholder_color - self.insert(0, self.placeholder) - def keypressed(self, event): key=event.keysym if key == 'Down': @@ -48,15 +40,6 @@ class AutoCompleter(Entry): elif key == 'Escape' and self.lb_up: self.hide_list() - def foc_in(self, *args): - if self['fg'] == self.placeholder_color or self.get() == self.placeholder: - self.delete('0', 'end') - self['fg'] = self.default_fg_color - - def foc_out(self, *args): - if not self.get(): - self.put_placeholder() - def changed(self, name, index, mode): if self.var.get().__len__() < 3 and self.lb_up or self.has_selected: self.hide_list diff --git a/PlaceHolder.py b/PlaceHolder.py new file mode 100644 index 0000000..c58b92e --- /dev/null +++ b/PlaceHolder.py @@ -0,0 +1,25 @@ +from config import config + +class PlaceHolder(): + def __init__(self, placeholder, **kw): + self.placeholder = placeholder + self.placeholder_color = "grey" + self.default_fg_color = config.get('dark_text') + + self.bind("", self.foc_in) + self.bind("", self.foc_out) + + self.put_placeholder() + + def put_placeholder(self): + self['fg'] = self.placeholder_color + self.insert(0, self.placeholder) + + def foc_in(self, *args): + if self['fg'] == self.placeholder_color or self.get() == self.placeholder: + self.delete('0', 'end') + self['fg'] = self.default_fg_color + + def foc_out(self, *args): + if not self.get(): + self.put_placeholder() diff --git a/PlaceHolderEntry.py b/PlaceHolderEntry.py new file mode 100644 index 0000000..fb58798 --- /dev/null +++ b/PlaceHolderEntry.py @@ -0,0 +1,9 @@ +#!/usr/bin/env python2 + +from Tkinter import * +from PlaceHolder import PlaceHolder + +class PlaceHolderEntry(Entry, PlaceHolder): + def __init__(self, parent, placeholder, **kw): + Entry.__init__(self, parent, **kw) + PlaceHolder.__init__(self, placeholder) \ No newline at end of file