Пример #1
0
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)
Пример #2
0
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')
Пример #3
0
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)