class OmniCredits(OmniFrame): def __init__(self, parent): OmniFrame.__init__(self, parent, name="credits") self.__label = OmniLabel(self, name="credits_lbl", text="Made by") self.__link = HyperlinkLabel(self, text="SeldonLabs", url='https://github.com/seldonlabs/OmniScanner', underline=True) theme.register(self.__link) self.__link.pack(anchor=tk.NW, side=tk.LEFT)
class StationFrame(tk.Frame): def __init__(self, parent, station_data, system_name, *args, **options): tk.Frame.__init__(self, parent, *args, **options) self.config(background = bg) self.station_data = station_data if 'Planetary' in station_data['type']: type_abr = '[P]' elif 'outpost' in station_data['type'].lower(): type_abr = '[O]' else: type_abr = '' facilities_abr = type_abr + ['','M'][station_data['haveMarket']] + ['','S'][station_data['haveShipyard']] + ['','O'][station_data['haveOutfitting']] facilities_abr = facilities_abr + '+{}'.format(len(station_data['otherServices'])) try: distance = int(station_data['distanceToArrival']) except: distance = '?' label_text = '{} ({}ls) {}'.format(station_data['name'], distance, facilities_abr) self.name_lbl = HyperlinkLabel(self, compound=tk.RIGHT, url = get_station_url(system_name, station_data['name'], None, station_data['marketId']), text = label_text, background = bg, foreground = hl) self.name_lbl.pack(side = 'left')
class FSDTarget(WaferModule): def __init__(self, parent, *args, **options): WaferModule.__init__(self, parent, *args, **options) #test_stuff() self.system_url = None self.system_string = '' self.system_frm = tk.Frame(self) self.system_frm.pack(fill = tk.Y, anchor = 'w') self.system_lbl = tk.Label(self.system_frm, text = 'Target system: ') self.system_lbl.pack(side = 'left') self.system_hyperlink = HyperlinkLabel(self.system_frm, compound=tk.RIGHT, url = self.system_url, name = 'system', text = '') self.system_hyperlink.pack(side = 'left') self.system_hyperlink.bind("<Button-3>", self.rightclick) this.frame = tk.Frame(self) this.frame.bind('<<FSDData>>', edsm_handler) this.frame.pack(fill=tk.Y, anchor = 'w') this.edsm_button = tk.Button(this.frame, text = 'Request data', command = self.get_data) # this.edsm_button.pack() this.loading = tk.Label(this.frame, text = "Contacting EDSM...") self.menu = tk.Menu(self, tearoff=0) self.menu.add_command(label="Copy", command = self.copy_system) this.system_string = self.system_string # more test stuff #self.system_hyperlink.config(text = 'Shinrarta Dezhra') #self.system_string = 'Shinrarta Dezhra' #self.update_link() def get_data(self): this.edsm_button.forget() get_edsm_data(self.system_string) def journal_entry(self, cmdr, system, station, entry, state): if entry['event'] == 'FSDTarget': if entry['Name'] != self.system_string: try: this.edsm_data_frame.destroy() except: pass self.system_string = entry['Name'] this.system_string = self.system_string self.system_hyperlink.config(text = self.system_string) self.update_link() if self.system_string not in this.edsm_cache: try: this.edsm_button.pack() except: pass else: try: this.edsm_button.forget() except: pass display_results(self.system_string) def update_link(self): self.system_url = get_system_url(self.system_string) self.system_hyperlink.configure(url = self.system_url) def rightclick(self, event): self.menu.post(event.x_root, event.y_root) def copy_system(self): setclipboard(self.system_string)