Пример #1
0
    def __init__(self, player, vk):
        global PG_NAME, PG_VERSION

        self.stdscr = curses.initscr()
        self.stdscr.clear()

        curses.cbreak()
        curses.noecho()
        self.stdscr.keypad(0)

        #screen.keypad(0);
        curses.curs_set(0)
        curses.start_color()
        curses.use_default_colors()

        # инициализация цветовых схем
        if curses.can_change_color():
            init_color(-1, 0, 0, 0)

        # отмеченный на воспроизмедение трек
        curses.init_pair(1, curses.COLOR_RED, curses.COLOR_YELLOW)
        # невыделенный трек
        curses.init_pair(2, curses.COLOR_GREEN, -1)
        # выделенный трек
        curses.init_pair(3, curses.COLOR_RED, curses.COLOR_GREEN)

        # для прогрессбара
        curses.init_pair(4, curses.COLOR_YELLOW, curses.COLOR_BLUE)
        curses.init_pair(5, curses.COLOR_YELLOW, -1)
        # заголовки окон
        curses.init_pair(6, curses.COLOR_CYAN, -1)
        # Голова и тело пигвина, черные
        curses.init_pair(7, curses.COLOR_BLUE, -1)
        curses.init_pair(8, curses.COLOR_YELLOW, -1)
        curses.init_pair(9, curses.COLOR_WHITE, -1)
        # эквалайзер
        curses.init_pair(10, curses.COLOR_WHITE, curses.COLOR_WHITE)
        curses.init_pair(11, curses.COLOR_CYAN, curses.COLOR_CYAN)
        curses.init_pair(12, curses.COLOR_BLUE, curses.COLOR_BLUE)
        curses.init_pair(13, curses.COLOR_YELLOW, curses.COLOR_YELLOW)
        curses.init_pair(14, curses.COLOR_GREEN, curses.COLOR_GREEN)
        curses.init_pair(15, curses.COLOR_RED, curses.COLOR_RED)

        # slc
        curses.init_pair(16, curses.COLOR_BLACK, curses.COLOR_CYAN)
        curses.init_pair(17, curses.COLOR_WHITE, -1)

        # получаю размеры экрана и оговариваю работу с клавиатурой
        self.stdscr.keypad(1)
        self.rows, self.cols = self.stdscr.getmaxyx()

        # Создаю главное окно. Конечно, можно было и без него обойтись, однако на будующее зазор оставлю
        self.win = curses.newwin(self.rows, self.cols, 0, 0)

        TRACK_PLAY_COLOR = curses.color_pair(1)
        TRAK_ITEM_COLOR = curses.color_pair(2)
        TRACK_SELECT_COLOR = curses.color_pair(3)

        COLOR_CONTENT = curses.color_pair(6)

        COLOR_PGBAR_PLAYNING = curses.color_pair(4)
        COLOR_PGBAR_FREE = curses.color_pair(5)

        TUX_COLOR_BLUE = curses.color_pair(7)
        TUX_COLOR_YELLOW = curses.color_pair(8)
        TUX_COLOR_WHILE = curses.color_pair(9)

        ALBOM_PLAY_COLOR = curses.color_pair(8)
        ALBOM_ITEM_COLOR = curses.color_pair(6)
        ALBOM_SELECT_COLOR = curses.color_pair(9)

        # цвет текса и цвет номера команды
        COLOR_SLC = curses.color_pair(16)
        COLOR_NUMBER = curses.color_pair(17)

        # выбрана левая панель с треками
        self.is_select_trak_list = True
        # отображать список альбомов
        self.is_view_albom_list = True
        self.player = player
        self.vk = vk

        self.__help_f1 = LabelSlk(0, self.win, (
            self.rows,
            self.cols,
        ), u"Help", COLOR_SLC, COLOR_NUMBER)
        self.__edit_f2 = LabelSlk(1, self.win, (
            self.rows,
            self.cols,
        ), u"Edit", COLOR_SLC, COLOR_NUMBER)
        self.__copy_f3 = LabelSlk(2, self.win, (
            self.rows,
            self.cols,
        ), u"Copy", COLOR_SLC, COLOR_NUMBER)
        self.__move_f4 = LabelSlk(3, self.win, (
            self.rows,
            self.cols,
        ), u"Move", COLOR_SLC, COLOR_NUMBER)
        self.__newalbom_f5 = LabelSlk(4, self.win, (
            self.rows,
            self.cols,
        ), u"NewAlbum", COLOR_SLC, COLOR_NUMBER)
        self.__rm_f6 = LabelSlk(5, self.win, (
            self.rows,
            self.cols,
        ), u"Remove", COLOR_SLC, COLOR_NUMBER)
        self.__random_f7 = LabelSlk(6, self.win, (
            self.rows,
            self.cols,
        ), u"Random", COLOR_SLC, COLOR_NUMBER)
        self.__move_exit = LabelSlk(7, self.win, (
            self.rows,
            self.cols,
        ), u"Exit", COLOR_SLC, COLOR_NUMBER)

        # создаю окна
        self.system_info = SystemInfoWin(self.win, 6, self.cols / 5, 0, 0,
                                         PG_NAME, PG_VERSION, COLOR_CONTENT)
        self.track_info = TrackInfoWin(self.win, 6, self.cols / 3, 0,
                                       self.cols / 5, COLOR_CONTENT)
        #self.ekvalayzer = EkvalayzerWin(self.win, 6, self.cols - self.cols/3 - self.cols/5, 0, self.cols/3 + self.cols/5)
        self.track_duration = ProgressBarWin(self.win, 3, self.cols, 6, 0,
                                             COLOR_PGBAR_PLAYNING,
                                             COLOR_PGBAR_FREE)

        self.track_list = TrackListWin(self.win, self.rows - 10,
                                       self.cols - 48, 9, 0,
                                       TRACK_SELECT_COLOR, TRAK_ITEM_COLOR,
                                       TRACK_PLAY_COLOR)

        # 48 символа макс. длина. инфа статичная
        self.navigation = NavigationWin(self.win, self.rows - 10, 48, 9,
                                        self.cols - 48, TUX_COLOR_BLUE,
                                        TUX_COLOR_YELLOW, TUX_COLOR_WHILE)

        self.alboms_win = AlbomsWin(self.win, self.rows - 10, 48, 9,
                                    self.cols - 48, self.cols,
                                    ALBOM_SELECT_COLOR, ALBOM_ITEM_COLOR,
                                    ALBOM_PLAY_COLOR)

        self.system_info.set_sound_volume(self.player.get_sound_volume())

        self.refresh()