def __init__(self): self.__root = Tkinter.Tk() self.__root.configure(background=__BG__) self.__root.title("iReminder") w, h = self.__root.winfo_screenwidth(), self.__root.winfo_screenheight( ) self.__full_geom = "%dx%d+0+0" % (w, h) self.__root.geometry(self.__full_geom) self.__old_label_image = None self.__pending_jobs = [] self.__tk_obj_ref = None # need keep ref to prevent GC (garbage collection) self.__onscreen_help = False self.__onscreen_info = False self.__pause_slideshow = False self.__fullscreen_mode = True if get_fullscreen_mode2(): self.__root.overrideredirect( self.__fullscreen_mode) # do this b4 ...'-fullscreen' self.__root.attributes("-fullscreen", self.__fullscreen_mode) self.__root.bind("<Escape>", self.toggle_display_mode) self.__root.bind("<BackSpace>", self.delete_image) self.__root.bind("<Button>", lambda e: e.widget.quit()) self.__root.bind("<Right>", lambda e: e.widget.quit()) self.__root.bind("<Left>", self.show_previous_image) self.__root.bind("<h>", self.toggle_onscreen_help) self.__root.bind("<H>", self.toggle_onscreen_help) self.__root.bind("<i>", self.toggle_onscreen_info) self.__root.bind("<I>", self.toggle_onscreen_info) self.__root.bind("<p>", self.toggle_pause_slideshow) self.__root.bind("<P>", self.toggle_pause_slideshow) self.__root.bind("<q>", user_quit) self.__root.bind("<Q>", user_quit) self.__root.bind("<equal>", self.increment_rank) self.__root.bind("<minus>", self.decrement_rank) self.__cur_image_obj = None self.__cur_image_obj_list = [] # image_obj in list self.__cur_image_obj_dict = { } # image_obj in dict (same content as above) self.__phrase_binding = {} # key: pattern, value: list of PhraseGroup self.__cur_phrase_obj_dict = { } # key: phrase group name, value: PhraseGroup self.__cur_graph_file = None self.__graph_history = deque(maxlen=GraphViewer.IMAGE_HISTORY_SIZE) self.__cur_digest = "" self.__arbitrator = None self.__canvas = Tkinter.Canvas(self.__root, bg=__BG__, bd=0, highlightthickness=0) self.__canvas.pack(expand=Tkinter.YES, fill=Tkinter.BOTH) self.__help = self.help_text() self.__info = self.info_text() self.__phrase_var = Tkinter.StringVar() self.__phrase = self.phrase_text()
def set_general_setting(self): # global data_home = get_data_home() if not self.__config.has_option("global", "data_location") else \ self.__config.get("global", "data_location") accessible_pivot = get_accessible_pivot() if not self.__config.has_option("global", "network_accessible_pivot") else \ self.__config.get("global", "network_accessible_pivot") set_data_home(data_home) set_accessible_pivot(accessible_pivot) # search api_key = get_api_key() if not self.__config.has_option("search", "api_key") else \ self.__config.get("search", "api_key") cx = get_cx() if not self.__config.has_option("search", "cx") else \ self.__config.get("search", "cx") latency = get_latency() if not self.__config.has_option("search", "latency") else \ float(self.__config.get("search", "latency")) search_size = get_search_size() if not self.__config.has_option("search", "search_size") else \ int(self.__config.get("search", "search_size")) if self.__config.has_option("search", "img_size"): img_size = list( set(self.__config.get( "search", "img_size").split('|'))) # 'set' to uniquify else: img_size = get_img_size() set_api_key(api_key) set_cx(cx) set_latency(latency) set_search_size(search_size) set_img_size(img_size) # image slideshow_rate = get_slideshow_rate() if not self.__config.has_option("image", "slideshow_rate") else \ float(self.__config.get("image", "slideshow_rate")) fullscreen_mode2 = get_fullscreen_mode2() if not self.__config.has_option("image", "fullscreen_mode2") else \ "True" == self.__config.get("image", "fullscreen_mode2") set_slideshow_rate(slideshow_rate) set_fullscreen_mode2(fullscreen_mode2) # phrase attach_rate = get_attach_rate() if not self.__config.has_option("phrase", "attach_rate") else \ float(self.__config.get("phrase", "attach_rate")) font_size = get_font_size() if not self.__config.has_option("phrase", "font_size") else \ float(self.__config.get("phrase", "font_size")) set_attach_rate(attach_rate) set_font_size(font_size) print("======= iReminder setting =============" ) # currently, we only show selected entries print("data home: ", data_home) print("slideshow rate: ", slideshow_rate) print("attach rate: ", attach_rate) print("latency: ", latency) print("search size: ", search_size) print("========================================")
def __init__(self): self.__root = Tkinter.Tk() self.__root.configure(background=__BG__) self.__root.title("reminder") w, h = self.__root.winfo_screenwidth(), self.__root.winfo_screenheight() self.__full_geom = "%dx%d+0+0" % (w, h) self.__root.geometry(self.__full_geom) self.__old_label_image = None self.__pending_jobs = [] self.__tk_obj_ref = None # need keep ref to prevent GC (garbage collection) self.__onscreen_help = False self.__onscreen_info = False self.__pause_slideshow = False self.__fullscreen_mode = True if get_fullscreen_mode2(): self.__root.overrideredirect(self.__fullscreen_mode) # do this b4 ...'-fullscreen' self.__root.attributes("-fullscreen", self.__fullscreen_mode) self.__root.bind("<Escape>", self.toggle_display_mode) self.__root.bind("<BackSpace>", self.delete_image) self.__root.bind("<Button>", lambda e: e.widget.quit()) self.__root.bind("<Right>", lambda e: e.widget.quit()) self.__root.bind("<Left>", self.show_previous_image) self.__root.bind("<h>", self.toggle_onscreen_help) self.__root.bind("<i>", self.toggle_onscreen_info) self.__root.bind("<p>", self.toggle_pause_slideshow) self.__root.bind("<q>", user_quit) self.__root.bind("<equal>", self.increment_rank) self.__root.bind("<minus>", self.decrement_rank) self.__cur_image_obj = None self.__cur_image_obj_list = [] # image_obj in list self.__cur_image_obj_dict = {} # image_obj in dict (same content as above) self.__phrase_binding = {} # key: pattern, value: list of PhraseGroup self.__cur_phrase_obj_dict = {} # key: phrase group name, value: PhraseGroup self.__cur_graph_file = None self.__graph_history = deque(maxlen=GraphViewer.IMAGE_HISTORY_SIZE) self.__cur_digest = "" self.__arbitrator = None self.__canvas = Tkinter.Canvas(self.__root, bg=__BG__, bd=0, highlightthickness=0) self.__canvas.pack(expand=Tkinter.YES, fill=Tkinter.BOTH) self.__help = self.help_text() self.__info = self.info_text() self.__phrase_var = Tkinter.StringVar() self.__phrase = self.phrase_text()
def set_general_setting(self): lang = get_lang() if not self.__config.has_option("reminder", "lang") else \ self.__config.get("reminder", "lang") if type(lang) is str: lang = EN if "EN" == lang else CHT if "CHT" == lang else None assert lang is not None data_home = get_data_home() if not self.__config.has_option("reminder", "data_location") else \ self.__config.get("reminder", "data_location") slideshow_frequency = get_slideshow_frequency() if not self.__config.has_option("image", "slideshow_frequency") else \ float(self.__config.get("image", "slideshow_frequency")) phrase_appear_ratio = get_phrase_appear_ratio() if not self.__config.has_option("phrase", "ratio") else \ float(self.__config.get("phrase", "ratio")) api_key = get_api_key() if not self.__config.has_option("search", "api_key") else \ self.__config.get("search", "api_key") cx = get_cx() if not self.__config.has_option("search", "cx") else \ self.__config.get("search", "cx") search_latency = get_search_latency() if not self.__config.has_option("search", "search_latency") else \ float(self.__config.get("search", "search_latency")) fullscreen_mode2 = get_fullscreen_mode2() if not self.__config.has_option("reminder", "fullscreen_mode2") else \ "True" == self.__config.get("reminder", "fullscreen_mode2") verbose = get_verbose() if not self.__config.has_option("reminder", "verbose") else \ "True" == self.__config.get("reminder", "verbose") set_lang(lang) set_data_home(data_home) set_slideshow_frequency(slideshow_frequency) set_phrase_appear_ratio(phrase_appear_ratio) set_search_latency(search_latency) set_api_key(api_key) set_cx(cx) set_fullscreen_mode2(fullscreen_mode2) set_verbose(verbose) print("======= reminder setting =============") print("data home: ", data_home) print("slideshow: ", slideshow_frequency) print("phrase ratio: ", phrase_appear_ratio) print("search latency: ", search_latency) print("api key: ", api_key if "" != api_key else "None") print("cx: ", cx if "" != cx else "None") print("========================================")
def toggle_display_mode(self, *unused): self.__fullscreen_mode = not self.__fullscreen_mode self.__root.attributes("-fullscreen", self.__fullscreen_mode) if get_fullscreen_mode2(): self.__root.overrideredirect(self.__fullscreen_mode) self.set_graph_content(self.__cur_graph_file)