12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #pragma once
- #include "VideoModel.hpp"
- #include <gtkmm/window.h>
- #include <gtkmm/applicationwindow.h>
- #include <gtkmm/box.h>
- #include <gtkmm/stack.h>
- #include <gtkmm/stackswitcher.h>
- #include <gtkmm/entry.h>
- #include <gtkmm/button.h>
- #include <gtkmm/scrolledwindow.h>
- #include <gtkmm/listview.h>
- #include <gtkmm/singleselection.h>
- #include <giomm/liststore.h>
- #include <gtkmm/listitem.h>
- #include <gtkmm/paned.h>
- #include <gtkmm/menubutton.h>
- namespace components {
- // Главное окно приложения
- class MainWindow : public Gtk::ApplicationWindow
- {
- public:
- MainWindow();
- static MainWindow* create();
- protected:
- Gtk::Box m_layout;
- Gtk::Box m_head;
- Gtk::Stack m_body;
- Gtk::StackSwitcher m_stackswitcher;
- /// ПОИСК ///
- // --Виджеты--
- Gtk::Box m_search_layout;
- // Панель поиска
- Gtk::Box m_search_head;
- // Тело
- Gtk::Paned m_search_body;
- // Поле ввода запроса
- Gtk::Entry m_search_entry;
- // Кнопка поиска
- Gtk::Button m_search_button;
- // Окно прокрутки для видео
- Gtk::ScrolledWindow m_search_scroller;
- // Список видео
- Gtk::ListView m_search_video_list;
- // Список моделей видео
- Glib::RefPtr<Gio::ListStore<components::VideoModel>> m_video_storage;
- // Модель выбора
- Glib::RefPtr<Gtk::SingleSelection> selection_model;
- // --События--
- // Клик кнопки поиска
- void onSearchButtonClicked();
- // При создании элемента в m_video_list
- void onVideoSetup(const Glib::RefPtr<Gtk::ListItem>& list_item);
- // При записи данных в m_video_list
- void onVideoBind(const Glib::RefPtr<Gtk::ListItem>& list_item);
- // При выборе видео из списка
- void onVideoChanged();
- // --Общее--
- // Устанавливает боковую панель просмотра видео в обычный режим
- void searchSidebarRegularMode();
- // Устанавливает боковую панель просмотра видео в режим просмотра
- // информации о видео
- void searchSidebarVideoDetailsMode(
- Glib::ustring title,
- Glib::ustring channel_title,
- Glib::ustring description,
- std::string published_at,
- std::string yt_id);
- // Проигрывает конкретное видео
- void playSingleVideo(std::string yt_id);
- // Открывает страницу видео в YouTube
- void openVideoInWebBrowser(std::string yt_id);
- };
- }
|