Пример #1
0
    def _layout(self):
        self.container_lib = tk.Frame(self)
        self.lbl_lib = tk.Label(self.container_lib)
        self.frm_library = LibraryManagerFrame(self.container_lib)
        self.lbl_lib.grid(row=0, column=0, sticky=tk.NSEW)
        self.frm_library.grid(row=1, column=0, sticky=tk.NSEW)
        self.container_lib.grid_rowconfigure(1, weight=1)
        self.container_lib.grid_columnconfigure(0, weight=1)

        self.container_media = tk.Frame(self)
        self.lbl_media = tk.Label(self.container_media)
        self.frm_media = MediaManagerFrame(self.container_media)
        self.lbl_media.grid(row=0, column=0, sticky=tk.NSEW)
        self.frm_media.grid(row=1, column=0, sticky=tk.NSEW)
        self.container_media.grid_rowconfigure(1, weight=1)
        self.container_media.grid_columnconfigure(0, weight=1)

        self.lbl_lib.config(text='Library')
        self.lbl_media.config(text='Media')
        self.lbl_lib.config(bg='#FFFFFF', fg='#000000')
        self.lbl_media.config(bg='#FFFFFF', fg='#000000')
        self.lbl_lib.config(font=gui.font(16), anchor=tk.W)
        self.lbl_media.config(font=gui.font(16), anchor=tk.W)

        self.container_lib.grid(row=0, column=1, sticky=tk.NSEW)
        self.container_media.grid(row=1, column=1, sticky=tk.NSEW)
        self.container_lib.grid(padx=15, pady=15)
        self.container_media.grid(padx=15, pady=15)

        self.grid_columnconfigure(0, weight=1)
        self.grid_columnconfigure(2, weight=1)
Пример #2
0
    def _layout(self):
        self.container_devices = tk.Frame(self)
        self.lbl_devices = tk.Label(self.container_devices)
        self.frm_devices = DrivesManagerFrame(self.container_devices)
        self.lbl_devices.grid(row=0, column=0, sticky=tk.NSEW)
        self.frm_devices.grid(row=1, column=0, sticky=tk.NSEW)
        self.container_devices.grid_rowconfigure(1, weight=1)
        self.container_devices.grid_columnconfigure(0, weight=1)

        self.container_raspi = tk.Frame(self)
        self.lbl_raspi = tk.Label(self.container_raspi)
        self.frm_raspi = RaspiMediaManagerFrame(self.container_raspi)
        self.lbl_raspi.grid(row=0, column=0, sticky=tk.NSEW)
        self.frm_raspi.grid(row=1, column=0, sticky=tk.NSEW)
        self.container_raspi.grid_rowconfigure(1, weight=1)
        self.container_raspi.grid_columnconfigure(0, weight=1)

        self.lbl_devices.config(text='Drives')
        self.lbl_raspi.config(text='Raspberry Pi')
        self.lbl_devices.config(bg='#FFFFFF', fg='#000000')
        self.lbl_raspi.config(bg='#FFFFFF', fg='#000000')
        self.lbl_devices.config(font=gui.font(16), anchor=tk.W)
        self.lbl_raspi.config(font=gui.font(16), anchor=tk.W)

        self.container_devices.grid(row=0, column=1, sticky=tk.NSEW)
        self.container_raspi.grid(row=1, column=1, sticky=tk.NSEW)

        self.container_devices.grid(padx=15, pady=15)
        self.container_raspi.grid(padx=15, pady=15)

        self.grid_columnconfigure(0, weight=1)
        self.grid_columnconfigure(2, weight=1)
Пример #3
0
    def __init__(self, master):
        BaseManagerFrame.__init__(self, master)

        self.lbl_info_title = BaseManagerLabel(self.frm_west)
        self.lbl_info_path = BaseManagerLabel(self.frm_west)
        self.lbl_info_size = BaseManagerLabel(self.frm_west)
        self.lbl_info_songs = BaseManagerLabel(self.frm_west)

        self.lbl_path = BaseManagerLabel(self.frm_west)
        self.lbl_size = BaseManagerLabel(self.frm_west)
        self.lbl_songs = BaseManagerLabel(self.frm_west)

        self.lbl_info_title.grid(row=0, column=0, sticky=tk.NSEW)
        self.lbl_info_path.grid(row=1, column=0, sticky=tk.NSEW)
        self.lbl_info_size.grid(row=2, column=0, sticky=tk.NSEW)
        self.lbl_info_songs.grid(row=3, column=0, sticky=tk.NSEW)
        self.lbl_info_title.grid(rowspan=1, columnspan=2)
        self.lbl_info_title.grid(padx=0, pady=5)
        self.lbl_info_path.grid(padx=0, pady=2)
        self.lbl_info_songs.grid(padx=0, pady=2)
        self.lbl_info_size.grid(padx=0, pady=2)

        self.lbl_path.grid(row=1, column=1, sticky=tk.NSEW)
        self.lbl_size.grid(row=2, column=1, sticky=tk.NSEW)
        self.lbl_songs.grid(row=3, column=1, sticky=tk.NSEW)
        self.lbl_path.grid(padx=6, pady=0)
        self.lbl_size.grid(padx=6, pady=0)
        self.lbl_songs.grid(padx=6, pady=0)

        self.lbl_files = BaseManagerLabel(self.frm_east)
        self.btn_download = tkit.Mpi3TButton(self.frm_east)
        self.btn_import_songs = tkit.Mpi3TButton(self.frm_east)
        self.btn_import_playlists = tkit.Mpi3TButton(self.frm_east)
        self.btn_download.config(width=16)

        self.lbl_files.grid(row=0, column=0, sticky=tk.NSEW)
        self.btn_download.grid(row=1, column=0, sticky=tk.NSEW)
        self.btn_import_songs.grid(row=2, column=0, sticky=tk.NSEW)
        self.btn_import_playlists.grid(row=3, column=0, sticky=tk.NSEW)
        self.lbl_files.grid(padx=0, pady=5)

        self.lbl_info_title.config(text='Library Media')
        self.lbl_info_path.config(text='Location:')
        self.lbl_info_size.config(text='Total Size:')
        self.lbl_info_songs.config(text='Total Songs:')
        self.lbl_info_title.config(font=gui.font(11, 'bold'))
        self.lbl_info_path.config(font=gui.font(9, 'bold'))
        self.lbl_info_size.config(font=gui.font(9, 'bold'))
        self.lbl_info_songs.config(font=gui.font(9, 'bold'))

        self.lbl_files.config(text='Media Files')
        self.lbl_files.config(font=gui.font(11, 'bold'))
        self.btn_download.config(text='Download Songs')
        self.btn_import_songs.config(text='Import Songs')
        self.btn_import_playlists.config(text='Import Playlists')
Пример #4
0
    def __init__(self, master):
        BaseManagerFrame.__init__(self, master)

        self.lbl_info_title = BaseManagerLabel(self.frm_west)
        self.lbl_info_name = BaseManagerLabel(self.frm_west)
        self.lbl_info_ppid = BaseManagerLabel(self.frm_west)
        self.lbl_info_date = BaseManagerLabel(self.frm_west)

        self.lbl_name = BaseManagerLabel(self.frm_west)
        self.lbl_ppid = BaseManagerLabel(self.frm_west)
        self.lbl_date = BaseManagerLabel(self.frm_west)

        self.lbl_info_title.grid(row=0, column=0, sticky=tk.NSEW)
        self.lbl_info_ppid.grid(row=1, column=0, sticky=tk.NSEW)
        self.lbl_info_date.grid(row=2, column=0, sticky=tk.NSEW)
        self.lbl_info_title.grid(rowspan=1, columnspan=2)
        self.lbl_info_title.grid(padx=0, pady=4)
        self.lbl_info_ppid.grid(padx=0, pady=2)
        self.lbl_info_date.grid(padx=0, pady=2)

        self.lbl_ppid.grid(row=1, column=1, sticky=tk.NSEW)
        self.lbl_date.grid(row=2, column=1, sticky=tk.NSEW)
        self.lbl_ppid.grid(padx=6, pady=1)
        self.lbl_date.grid(padx=6, pady=1)

        self.lbl_file = BaseManagerLabel(self.frm_east)
        self.btn_export = tkit.Mpi3TButton(self.frm_east)
        self.btn_import = tkit.Mpi3TButton(self.frm_east)
        self.btn_cnew = tkit.Mpi3TButton(self.frm_east)
        self.btn_save = tkit.Mpi3TButton(self.frm_east)
        self.btn_export.config(width=16)

        self.lbl_file.grid(row=0, column=0, sticky=tk.NSEW)
        self.btn_export.grid(row=1, column=0, sticky=tk.NSEW)
        self.btn_import.grid(row=2, column=0, sticky=tk.NSEW)
        self.btn_cnew.grid(row=3, column=0, sticky=tk.NSEW)
        self.btn_save.grid(row=4, column=0, sticky=tk.NSEW)
        self.lbl_file.grid(padx=0, pady=5)

        self.lbl_info_ppid.config(text='Unique ID:')
        self.lbl_info_date.config(text='Created:')
        self.lbl_info_title.config(font=gui.font(11, 'bold'))
        self.lbl_info_date.config(font=gui.font(9, 'bold'))
        self.lbl_info_ppid.config(font=gui.font(9, 'bold'))

        self.lbl_file.config(text='Library Files')
        self.lbl_file.config(font=gui.font(11, 'bold'))
        self.btn_export.config(text='Export')
        self.btn_import.config(text='Import')
        self.btn_cnew.config(text='Create New')
        self.btn_save.config(text='Save Current')
Пример #5
0
    def __init__(self, master):
        tk.Toplevel.__init__(self, master)
        self.title('Batch Download')

        self.frm = tk.Frame(self)
        self.lbl_title = tk.Label(self.frm, anchor=tk.W)
        self.box_urls = tk.Text(self.frm)
        self.btn_enter = gui.tkit.Mpi3TButton(self.frm)
        self.btn_cancel = gui.tkit.Mpi3TButton(self.frm)

        self.lbl_title.config(text='Enter batch urls:')
        self.lbl_title.config(font=gui.font(12))
        self.btn_enter.config(text='Download')
        self.btn_cancel.config(text='Cancel')

        self.lbl_title.grid(row=0, column=0, sticky=tk.NSEW)
        self.box_urls.grid(row=1, column=0, sticky=tk.NSEW)
        self.btn_enter.grid(row=2, column=0, sticky=tk.NSEW)
        self.btn_cancel.grid(row=2, column=1, sticky=tk.NSEW)

        self.lbl_title.grid(columnspan=2)
        self.box_urls.grid(columnspan=2)

        self.frm.grid(row=0, column=0, sticky=tk.NSEW)
        self.frm.grid(padx=10, pady=10)

        self.btn_enter.bind('<ButtonRelease-1>', self._on_enter)
        self.btn_cancel.bind('<ButtonRelease-1>', self.destroy)
Пример #6
0
    def __init__(self, master):
        BaseManagerFrame.__init__(self, master)

        self.lbl_info_option = BaseManagerLabel(self.frm_east)
        self.btn_make_volume = tkit.Mpi3TButton(self.frm_east)
        self.btn_load_volume = tkit.Mpi3TButton(self.frm_east)
        self.lbl_make_volume = BaseManagerLabel(self.frm_east)
        self.lbl_load_volume = BaseManagerLabel(self.frm_east)

        self.lbl_info_option.grid(row=0, column=0, sticky=tk.NSEW)
        self.btn_make_volume.grid(row=1, column=0, sticky=tk.NSEW)
        self.btn_load_volume.grid(row=2, column=0, sticky=tk.NSEW)
        self.lbl_make_volume.grid(row=1, column=1, sticky=tk.NSEW)
        self.lbl_load_volume.grid(row=2, column=1, sticky=tk.NSEW)
        self.lbl_info_option.grid(rowspan=1, columnspan=2)
        self.lbl_make_volume.grid(padx=2, pady=0)
        self.lbl_load_volume.grid(padx=2, pady=0)

        self.lbl_tree = BaseManagerLabel(self.frm_west)
        self.frm_drives = tk.Frame(self.frm_west)
        self.tree_drives = RRDTreeview(self.frm_drives)
        self.bar_scroll = tk.Scrollbar(self.frm_drives)

        self.frm_drives.config(bd=1, highlightthickness=1)
        self.frm_drives.config(highlightbackground='#000000')
        self.bar_scroll.config(command=self.tree_drives.yview)
        self.tree_drives.config(yscrollcommand=self.bar_scroll.set)
        self.tree_drives.grid(row=0, column=0, sticky=tk.NSEW)
        self.bar_scroll.grid(row=0, column=1, sticky=tk.NSEW)

        self.lbl_tree.grid(row=0, column=0, sticky=tk.NSEW)
        self.frm_drives.grid(row=1, column=0, sticky=tk.NSEW)
        self.frm_drives.grid_columnconfigure(0, weight=1)
        self.lbl_tree.grid(padx=0, pady=5)

        self.lbl_info_option.config(text='Libraries')
        self.lbl_info_option.config(font=gui.font(9, 'bold'))
        self.lbl_make_volume.config(text='Create a new library')
        self.lbl_load_volume.config(text='Load selected library')
        self.btn_make_volume.config(text='Create')
        self.btn_load_volume.config(text='Load')

        self.lbl_tree.config(text='Removable Drives')
        self.lbl_tree.config(font=gui.font(9, 'bold'))

        self.btn_load_volume.state(['disabled'])
        self.tree_drives.bind('<ButtonRelease-1>', self._on_lclick, add=True)
Пример #7
0
 def __init__(self, master):
     tk.Label.__init__(self, master)
     self.config(font=gui.font(9))
     self.config(state=tk.DISABLED)
     self.config(bg='#FFFFFF', bd=1)
     self.config(highlightthickness=1)
     self.config(highlightbackground='#000000')
     self.config(relief=tk.SOLID)
     self.config(anchor=tk.W)
Пример #8
0
    def __init__(self, master):
        tk.Entry.__init__(self, master)
        self.config(font=gui.font(9))
        self.config(relief=tk.FLAT)

        self.cell = None, None
        self.update_command = lambda *ignore: None

        self.bind('<Tab>', self._on_tab, add=True)
        self.bind('<Return>', self._on_enter)
        self.bind('<Control-a>', self._select_all)
        self.bind('<Escape>', lambda *ignore: self.hide())
Пример #9
0
    def _layout(self):
        w = self.winfo_width() / 20
        h = self.winfo_height() / 20

        w_label, h_label = (w * 3), (h * 3)
        dim_slider = (w * 15), (h * 4)
        pos_slider = ((w * 9), (h * 10))
        pos_label = ((w * 18) + 2, (h * 10))

        self.lbl_volume = tk.Label(self)
        self.lbl_volume.config(font=gui.font(8))

        self.slider = gui.tkit.Slider(self)
        self.slider.draw(dim_slider, '#686868')
        self.slider.set_maximum(100)

        wnd_slide = self.create_window(pos_slider, window=self.slider)
        wnd_label = self.create_window(pos_label, window=self.lbl_volume)

        self.itemconfig(wnd_slide, width=(w * 15), height=(h * 4))
        self.itemconfig(wnd_label, width=w_label, height=h_label)
Пример #10
0
    def _layout(self):
        self.frm_options = tk.Frame(self)
        self.tree_progress = PytubeActionTreeview(self)
        self.bar_scroll = ttk.Scrollbar(self)

        self.tree_progress.config(yscrollcommand=self.bar_scroll.set)
        self.bar_scroll.config(command=self.tree_progress.yview)

        self.lbl_title = tk.Label(self.frm_options, anchor=tk.W)
        self.box_url = tk.Entry(self.frm_options)
        self.btn_download = gui.tkit.Mpi3TButton(self.frm_options)
        self.btn_batch = gui.tkit.Mpi3TButton(self.frm_options)

        self.lbl_title.config(font=gui.font(16))
        self.lbl_title.config(text='Youtube Downloader')
        self.btn_download.config(text='Download')
        self.btn_batch.config(text='Batch')

        self.btn_download.config(width=10)
        self.btn_batch.config(width=10)

        self.lbl_title.grid(row=0, column=0, sticky=tk.NSEW)
        self.box_url.grid(row=1, column=0, sticky=tk.NSEW)
        self.btn_download.grid(row=1, column=1, sticky=tk.NSEW)
        self.btn_batch.grid(row=1, column=2, sticky=tk.NSEW)

        self.frm_options.grid(row=0, column=0, sticky=tk.NSEW)
        self.tree_progress.grid(row=1, column=0, sticky=tk.NSEW)
        self.bar_scroll.grid(row=1, column=1, sticky=tk.NSEW)
        self.frm_options.grid(padx=10, pady=10)

        self.tree_progress.grid_rowconfigure(0, weight=1)
        self.tree_progress.grid_columnconfigure(0, weight=1)

        self.grid_rowconfigure(1, weight=1)
        self.grid_columnconfigure(0, weight=1)
Пример #11
0
    def _layout(self):
        self.pane_window = tk.PanedWindow(self, orient='horizontal')

        self.pane_view = tk.Frame(self.pane_window)
        self.btn_vlibrary = tkit.Mpi3TButton(self.pane_view)
        self.btn_vraspi = tkit.Mpi3TButton(self.pane_view)
        self.sep_buttons = tk.Frame(self.pane_view, bg='#000000', height=1)
        self.btn_vsongs = tkit.Mpi3TButton(self.pane_view)
        self.btn_vartists = tkit.Mpi3TButton(self.pane_view)
        self.btn_vcontain = tkit.Mpi3TButton(self.pane_view)
        self.sep_sidebar = tk.Frame(self.pane_view, bg='#000000', height=1)
        self.tree_sidebar = libtrees.CSidebarTreeview(self.pane_view)

        self.btn_vlibrary.config(text='Library')
        self.btn_vraspi.config(text='Raspi')
        self.btn_vsongs.config(text='Songs')
        self.btn_vartists.config(text='Artists')
        self.btn_vcontain.config(text='Playlists')

        self.btn_vlibrary.grid(row=0, column=0, sticky=tk.NSEW)
        self.btn_vraspi.grid(row=1, column=0, sticky=tk.NSEW)
        self.sep_buttons.grid(row=2, column=0, sticky=tk.NSEW)
        self.btn_vsongs.grid(row=3, column=0, sticky=tk.NSEW)
        self.btn_vartists.grid(row=4, column=0, sticky=tk.NSEW)
        self.btn_vcontain.grid(row=5, column=0, sticky=tk.NSEW)
        self.sep_sidebar.grid(row=6, column=0, sticky=tk.NSEW)
        self.tree_sidebar.grid(row=7, column=0, sticky=tk.NSEW)
        self.sep_buttons.grid(padx=3, pady=4)
        self.sep_sidebar.grid(padx=3, pady=3)

        self.pane_view.config(width=180)
        self.pane_view.grid_propagate(False)
        self.pane_view.grid_rowconfigure(7, weight=1)
        self.pane_view.grid_columnconfigure(0, weight=1)

        self.pane_library = tk.Frame(self.pane_window)
        self.frm_library = libframes.ControlFrame(self.pane_library)
        self.frm_library.grid(row=0, column=0, sticky=tk.NSEW)
        self.pane_library.grid_rowconfigure(0, weight=1)
        self.pane_library.grid_columnconfigure(0, weight=1)

        self.pane_raspi = tk.Frame(self.pane_window)
        self.frm_raspi = libframes.ControlFrame(self.pane_raspi)
        self.frm_raspi.grid(row=0, column=0, sticky=tk.NSEW)
        self.pane_raspi.grid_rowconfigure(0, weight=1)
        self.pane_raspi.grid_columnconfigure(0, weight=1)

        self.pane_tree = tk.Frame(self.pane_window)
        self.tree_songs = libtrees.AllSongTreeview(self.pane_tree)
        self.tree_artists = libtrees.ArtistsTreeview(self.pane_tree)
        self.tree_containers = libtrees.CManagerTreeview(self.pane_tree)
        self.tree_playlist = libtrees.PlaylistTreeview(self.pane_tree)
        self.bar_scroll_tree = tk.Scrollbar(self.pane_tree)

        self.bar_display = tk.Frame(self.pane_tree)
        self.lbl_name = tk.Label(self.bar_display)
        self.lbl_count = tk.Label(self.bar_display)
        self.btn_options = tkit.Mpi3TButton(self.bar_display)

        self.lbl_name.config(font=gui.font(20))
        self.lbl_count.config(font=gui.font(11))
        self.lbl_name.config(background='#FFFFFF')
        self.lbl_count.config(background='#FFFFFF')
        self.btn_options.config(text='...')
        self.btn_options.config(width=8)

        self.lbl_name.grid(row=0, column=0, sticky=tk.NS + tk.W)
        self.lbl_count.grid(row=1, column=0, sticky=tk.NS + tk.W)
        self.btn_options.grid(row=0, column=1, sticky=tk.NS + tk.E)

        self.lbl_name.grid(padx=10, pady=2)
        self.lbl_count.grid(padx=10, pady=0)
        self.btn_options.grid(padx=10, pady=5)
        self.btn_options.grid(rowspan=2)

        self.bar_display.config(height=80, bg='#FFFFFF')
        self.bar_display.grid_propagate(False)
        self.bar_display.grid_columnconfigure(1, weight=1)

        self.sep_tree = tk.Frame(self.pane_tree, bg='#000000', height=1)

        self.bar_display.grid(row=0, column=0, sticky=tk.NSEW)
        self.sep_tree.grid(row=1, column=0, sticky=tk.NSEW)
        self.tree_songs.grid(row=2, column=0, sticky=tk.NSEW)
        self.tree_artists.grid(row=2, column=0, sticky=tk.NSEW)
        self.tree_containers.grid(row=2, column=0, sticky=tk.NSEW)
        self.tree_playlist.grid(row=2, column=0, sticky=tk.NSEW)
        self.bar_scroll_tree.grid(row=2, column=1, sticky=tk.NS + tk.E)
        self.bar_display.grid(columnspan=2)
        self.sep_tree.grid(columnspan=2)

        self.tree_songs.grid_remove()
        self.tree_artists.grid_remove()
        self.tree_containers.grid_remove()
        self.tree_playlist.grid_remove()

        self.pane_tree.grid_rowconfigure(2, weight=1)
        self.pane_tree.grid_columnconfigure(0, weight=1)

        self.pane_window.add(self.pane_view)
        self.pane_window.config(sashwidth=3, bg='#666666')
        self.pane_window.paneconfig(self.pane_view, minsize=100)
        self.pane_window.paneconfig(self.pane_tree, minsize=200)
        self.pane_window.grid(sticky=tk.NSEW)

        self.grid_rowconfigure(0, weight=1)
        self.grid_columnconfigure(0, weight=1)
Пример #12
0
    def _layout(self):
        self.frm = tk.Frame(self)

        self.frm_misc = tk.Frame(self.frm)
        self.btn_close = gui.tkit.Mpi3TButton(self.frm_misc)
        self.lbl_size_prog = tk.Label(self.frm_misc)
        self.lbl_size_prog.grid(row=0, column=0, sticky=tk.NS + tk.W)
        self.btn_close.grid(row=0, column=1, sticky=tk.NS + tk.E)
        self.frm_misc.grid_columnconfigure(0, weight=1)

        self.frm_info = tk.Frame(self.frm)
        self.lbl_title = tk.Label(self.frm_info)
        self.lbl_info = tk.Label(self.frm_info)
        self.lbl_title.grid(row=0, column=0, sticky=tk.NS + tk.W)
        self.lbl_info.grid(row=1, column=0, sticky=tk.NS + tk.W)

        self.frm_progress = tk.Frame(self.frm)
        self.lbl_action = tk.Label(self.frm_progress)
        self.lbl_percent = tk.Label(self.frm_progress)
        self.bar_progress = ttk.Progressbar(self.frm_progress)
        self.lbl_action.grid(row=0, column=0, sticky=tk.NS + tk.W)
        self.bar_progress.grid(row=1, column=0, sticky=tk.NSEW)
        self.lbl_percent.grid(row=1, column=1, sticky=tk.NS + tk.E)
        self.frm_progress.grid_columnconfigure(0, weight=1)

        self.frm_treeview = tk.Frame(self.frm, bg='#FFFFFF')
        self.tree_progress = FileflowActionTreeview(self.frm_treeview)
        self.bar_scroll = ttk.Scrollbar(self.frm_treeview)
        self.tree_progress.grid(row=0, column=0, sticky=tk.NSEW)
        self.bar_scroll.grid(row=0, column=1, sticky=tk.NSEW)

        self.frm_info.grid(row=0, column=0, sticky=tk.NSEW)
        self.frm_progress.grid(row=1, column=0, sticky=tk.NSEW)
        self.frm_treeview.grid(row=2, column=0, sticky=tk.NSEW)
        self.frm_misc.grid(row=3, column=0, sticky=tk.NSEW)

        self.frm_progress.grid(pady=10)
        self.frm_treeview.grid(pady=5)
        self.frm.grid(row=0, column=0, sticky=tk.NSEW)
        self.frm.grid(padx=15, pady=10)

        self.frm_treeview.grid_rowconfigure(0, weight=1)
        self.frm_treeview.grid_columnconfigure(0, weight=1)

        self.frm.grid_rowconfigure(2, weight=1)
        self.frm.grid_columnconfigure(0, weight=1)

        self.grid_rowconfigure(0, weight=1)
        self.grid_columnconfigure(0, weight=1)

        self.lbl_title.config(font=gui.font(16), anchor=tk.W)
        self.lbl_action.config(font=gui.font(9), anchor=tk.W)
        self.lbl_percent.config(font=gui.font(9), anchor=tk.W)
        self.lbl_size_prog.config(font=gui.font(9), anchor=tk.W)
        self.lbl_info.config(font=gui.font(9), anchor=tk.W)

        self.lbl_percent.config(text='0%')
        self.lbl_title.config(text='Making local file copies')
        self.btn_close.config(text='Close', width=20, state=tk.DISABLED)

        self.frm_treeview.config(highlightthickness=1,
                                 highlightbackground='#000000')
        self.bar_progress.config(mode='determinate')
        self.tree_progress.config(yscrollcommand=self.bar_scroll.set)
        self.bar_scroll.config(command=self.tree_progress.yview)
Пример #13
0
    def _layout(self):
        w_unit = self.winfo_width() / 20
        h_unit = self.winfo_height() / 20

        def w_pos(units):
            return int(w_unit * units)

        def h_pos(units):
            return int(h_unit * units)

        def pos(wu, hu):
            return int(w_unit * wu), int(h_unit * hu)

        self.lbl_name = self.create_text(pos(10, 5),
                                         font=(gui.font(10, 'bold')))
        self.lbl_artist = self.create_text(pos(10, 10), font=gui.font(8))
        self.lbl_currpos = self.create_text((w_pos(4) + 2, h_pos(12)),
                                            font=gui.font(9))
        self.lbl_total = self.create_text((w_pos(16) - 2, h_pos(12)),
                                          font=gui.font(9))

        self.slider = gui.tkit.Slider(self)
        self.slider.draw(pos(13, 3), '#BCBCBC')

        self.icn_play = gui.icon('play')
        self.icn_paus = gui.icon('paus')
        self.btn_playpaus = gui.tkit.HoverFadeButton(self)
        self.btn_prev = gui.tkit.Mpi3ButtonIcon(self)
        self.btn_next = gui.tkit.Mpi3ButtonIcon(self)
        self.btn_playpaus.set_icon(self.icn_play)
        self.btn_playpaus.draw(pos(14, 14))
        self.btn_prev.config(width=w_pos(3), height=h_pos(21))
        self.btn_next.config(width=w_pos(3), height=h_pos(21))
        self.btn_prev.set_icon(gui.icon('prev'))
        self.btn_next.set_icon(gui.icon('next'))
        self.btn_prev.set_theme('#D8D8D8', True)
        self.btn_next.set_theme('#D8D8D8', True)

        wnd_play = self.create_window(pos(10, 8), window=self.btn_playpaus)
        wnd_next = self.create_window(pos(20, 0), window=self.btn_next)
        wnd_prev = self.create_window(pos(0, 0), window=self.btn_prev)
        wnd_slid = self.create_window(pos(10, 17), window=self.slider)

        self.wnd_playpaus = wnd_play
        self.itemconfig(wnd_play,
                        anchor=tk.CENTER,
                        width=w_pos(14),
                        height=h_pos(14))
        self.itemconfig(wnd_next,
                        anchor=tk.NE,
                        width=w_pos(3),
                        height=h_pos(21))
        self.itemconfig(wnd_prev,
                        anchor=tk.NW,
                        width=w_pos(3),
                        height=h_pos(21))
        self.itemconfig(wnd_slid,
                        anchor=tk.CENTER,
                        width=w_pos(13),
                        height=h_pos(3))

        self.itemconfig(self.lbl_currpos, text='0:00')
        self.itemconfig(self.lbl_total, text='0:00')
        self.itemconfig(self.wnd_playpaus, state=tk.NORMAL)

        self.btn_playpaus.window_id = self.wnd_playpaus
Пример #14
0
    def __init__(self, master):
        tk.Menu.__init__(self, master)
        self.config(tearoff=False)
        self.config(font=gui.font(9))

        self.event = None
Пример #15
0
def main_menu(frame):
    btn_file = tk.Menubutton(frame, text='File')
    btn_media = tk.Menubutton(frame, text='Media')
    btn_raspi = tk.Menubutton(frame, text='Raspi')

    btn_file.menu = tk.Menu(btn_file, tearoff=False)
    btn_file['menu'] = btn_file.menu
    lib = tk.Menu(btn_file, tearoff=False)
    lib.add_command(label='Export')
    lib.add_command(label='Import')
    lib.add_separator()
    lib.add_command(label='Create New')
    lib.add_command(label='Save Current')
    lib.add_separator()
    lib.add_command(label='Delete')

    lib.entryconfig(0, command=libinter.library_saveas)
    lib.entryconfig(1, command=libinter.library_load)
    lib.entryconfig(3, command=libinter.library_new)
    lib.entryconfig(4, command=libinter.library_save)
    lib.entryconfig(6, command=lambda: print('delete library'))

    proj = tk.Menu(btn_file.menu, tearoff=False)
    proj.add_command(label='Raspi')
    proj.add_command(label='Manager')

    proj.entryconfig(0, command=lambda: print('Raspi'))
    proj.entryconfig(1, command=lambda: print('Manager'))

    btn_file.menu.add_cascade(label='Library')
    btn_file.menu.add_separator()
    btn_file.menu.add_command(label='Audio Settings')
    btn_file.menu.add_separator()
    btn_file.menu.add_cascade(label='Interface')

    btn_file.menu.entryconfig(0, menu=lib)
    btn_file.menu.entryconfig(2, command=lambda: print('audio'))
    btn_file.menu.entryconfig(4, menu=proj)

    btn_media.menu = tk.Menu(btn_media, tearoff=False)
    btn_media['menu'] = btn_media.menu
    btn_media.menu.add_command(label='Download Songs')
    btn_media.menu.add_command(label='Import Songs')
    btn_media.menu.add_command(label='Import Playlists')

    btn_media.menu.entryconfig(0, command=libinter.download_songs)
    btn_media.menu.entryconfig(1, command=libinter.import_songs)
    btn_media.menu.entryconfig(2, command=libinter.import_playlists)

    btn_raspi.menu = tk.Menu(btn_raspi, tearoff=False)
    btn_raspi['menu'] = btn_raspi.menu

    mfont = gui.font(8)
    lib.config(font=mfont)
    proj.config(font=mfont)
    btn_file.config(font=mfont)
    btn_media.config(font=mfont)
    btn_file.menu.config(font=mfont)
    btn_raspi.menu.config(font=mfont)
    btn_media.menu.config(font=mfont)

    btn_file.config(bg='#000000', fg='#FFFFFF')
    btn_media.config(bg='#000000', fg='#FFFFFF')
    btn_raspi.config(bg='#000000', fg='#FFFFFF')

    btn_file.grid(row=0, column=0)
    btn_media.grid(row=0, column=1)
    btn_raspi.grid(row=0, column=2)
Пример #16
0
    def __init__(self, master):
        BaseManagerFrame.__init__(self, master)

        self.frm_north = tk.Frame(self)
        self.frm_north.config(bg='#EFF2FF')
        self.frm_north.config(bd=0, highlightthickness=0)
        self.frm_north.grid(row=0, column=0, sticky=tk.NSEW)
        self.frm_north.grid(padx=20, pady=10)

        self.lbl_info = BaseManagerLabel(self.frm_north)

        self.lbl_info.grid(row=0, column=0, sticky=tk.NSEW)

        self.lbl_info.grid(padx=0, pady=5)

        self.sep_frames = BaseManagerSeparator(self)
        self.sep_frames.grid(row=1, column=0, sticky=tk.NSEW)
        self.sep_frames.grid(rowspan=1, columnspan=2)
        self.sep_frames.grid(padx=20, pady=10)

        self.lbl_info_name = BaseManagerLabel(self.frm_west)
        self.lbl_info_path = BaseManagerLabel(self.frm_west)
        self.lbl_info_date = BaseManagerLabel(self.frm_west)
        self.lbl_info_size = BaseManagerLabel(self.frm_west)

        self.lbl_path = BaseManagerLabel(self.frm_west)
        self.lbl_date = BaseManagerLabel(self.frm_west)
        self.lbl_size = BaseManagerLabel(self.frm_west)

        self.lbl_info_name.grid(row=0, column=0, sticky=tk.NSEW)
        self.lbl_info_path.grid(row=1, column=0, sticky=tk.NSEW)
        self.lbl_info_date.grid(row=2, column=0, sticky=tk.NSEW)
        self.lbl_info_size.grid(row=3, column=0, sticky=tk.NSEW)
        self.lbl_info_name.grid(rowspan=1, columnspan=2)
        self.lbl_info_name.grid(padx=0, pady=5)
        self.lbl_info_path.grid(padx=0, pady=2)
        self.lbl_info_date.grid(padx=0, pady=2)
        self.lbl_info_size.grid(padx=0, pady=2)

        self.lbl_path.grid(row=1, column=1, sticky=tk.NSEW)
        self.lbl_date.grid(row=2, column=1, sticky=tk.NSEW)
        self.lbl_size.grid(row=3, column=1, sticky=tk.NSEW)
        self.lbl_path.grid(padx=5, pady=0)
        self.lbl_date.grid(padx=5, pady=0)
        self.lbl_size.grid(padx=5, pady=0)

        self.lbl_sync = BaseManagerLabel(self.frm_east)
        self.frm_sync = tk.Frame(self.frm_east)
        self.tree_sync = libtrees.CSyncTreeview(self.frm_sync)
        self.bar_scroll = tk.Scrollbar(self.frm_sync)

        self.frm_sync.config(bd=1, highlightthickness=1)
        self.frm_sync.config(highlightbackground='#000000')
        self.bar_scroll.config(command=self.tree_sync.yview)
        self.tree_sync.config(yscrollcommand=self.bar_scroll.set)
        self.tree_sync.grid(row=0, column=0, sticky=tk.NSEW)
        self.bar_scroll.grid(row=0, column=1, sticky=tk.NSEW)

        self.lbl_sync.grid(row=0, column=0, sticky=tk.NSEW)
        self.frm_sync.grid(row=1, column=0, sticky=tk.NSEW)
        self.frm_sync.grid_columnconfigure(0, weight=1)
        self.lbl_sync.grid(padx=0, pady=5)

        self.frm_west.grid(row=2, column=0, sticky=tk.NW)
        self.frm_east.grid(row=2, column=1, sticky=tk.NW)

        self.frm_south = tk.Frame(self)
        self.frm_south.config(bg='#EFF2FF')
        self.frm_south.config(bd=0, highlightthickness=0)
        self.frm_south.grid(row=3, column=0, sticky=tk.NSEW)
        self.frm_south.grid(padx=20, pady=10)
        self.frm_south.grid(rowspan=1, columnspan=2)
        self.frm_south.grid_columnconfigure(0, weight=1)

        self.lbl_drive = BaseManagerLabel(self.frm_south)
        self.btn_sync = tkit.Mpi3TButton(self.frm_south)
        self.disp_storage = tkit.StorageSpaceDisplay(self.frm_south)

        self.lbl_drive.grid(row=0, column=0, sticky=tk.NSEW)
        self.btn_sync.grid(row=1, column=1, sticky=tk.NSEW)
        self.disp_storage.grid(row=1, column=0, sticky=tk.NSEW)
        self.lbl_drive.grid(padx=2, pady=2)

        self.lbl_info.config(text='Raspi Test Library')
        self.lbl_info.config(font=gui.font(16, 'bold'))

        self.lbl_sync.config(text='Sync Media')
        self.lbl_sync.config(font=gui.font(11, 'bold'))

        self.lbl_info_name.config(text='Raspi Test Library')
        self.lbl_info_path.config(text='Location:')
        self.lbl_info_date.config(text='Created:')
        self.lbl_info_size.config(text='Total Size:')
        self.lbl_info_name.config(font=gui.font(11, 'bold'))
        self.lbl_info_path.config(font=gui.font(9, 'bold'))
        self.lbl_info_date.config(font=gui.font(9, 'bold'))
        self.lbl_info_size.config(font=gui.font(9, 'bold'))
        self.btn_sync.config(text='Sync')

        self.lbl_drive.config(text='RASPI (E:)')
        self.lbl_path.config(text='E:\\mpi3pc')
        self.lbl_date.config(text='2017-10-23')
        self.lbl_size.config(text='00.46 GB')

        self.display()
Пример #17
0
 def __init__(self, master):
     tk.Label.__init__(self, master)
     self.config(bd=0, highlightthickness=0)
     self.config(bg='#EFF2FF', anchor=tk.W)
     self.config(font=gui.font(9))