// This file Copyright © Mnemosyne LLC. // It may be used under GPLv2 (SPDX: GPL-2.0-only), GPLv3 (SPDX: GPL-3.0-only), // or any future license endorsed by Mnemosyne LLC. // License text can be found in the licenses/ folder. #pragma once #include #include #include #include #include #include #include class Session; struct tr_ctor; class TorrentUrlChooserDialog : public Gtk::Dialog { public: TorrentUrlChooserDialog( BaseObjectType* cast_item, Glib::RefPtr const& builder, Gtk::Window& parent, Glib::RefPtr const& core); TorrentUrlChooserDialog(TorrentUrlChooserDialog&&) = delete; TorrentUrlChooserDialog(TorrentUrlChooserDialog const&) = delete; TorrentUrlChooserDialog& operator=(TorrentUrlChooserDialog&&) = delete; TorrentUrlChooserDialog& operator=(TorrentUrlChooserDialog const&) = delete; ~TorrentUrlChooserDialog() override = default; static std::unique_ptr create(Gtk::Window& parent, Glib::RefPtr const& core); private: void onOpenURLResponse(int response, Gtk::Entry const& entry, Glib::RefPtr const& core); }; class TorrentFileChooserDialog : public Gtk::FileChooserNative { public: TorrentFileChooserDialog(TorrentFileChooserDialog&&) = delete; TorrentFileChooserDialog(TorrentFileChooserDialog const&) = delete; TorrentFileChooserDialog& operator=(TorrentFileChooserDialog&&) = delete; TorrentFileChooserDialog& operator=(TorrentFileChooserDialog const&) = delete; ~TorrentFileChooserDialog() override = default; static std::unique_ptr create(Gtk::Window& parent, Glib::RefPtr const& core); protected: TorrentFileChooserDialog(Gtk::Window& parent, Glib::RefPtr const& core); private: void onOpenDialogResponse(int response, Glib::RefPtr const& core); }; class OptionsDialog : public Gtk::Dialog { public: OptionsDialog( BaseObjectType* cast_item, Glib::RefPtr const& builder, Gtk::Window& parent, Glib::RefPtr const& core, std::unique_ptr ctor); OptionsDialog(OptionsDialog&&) = delete; OptionsDialog(OptionsDialog const&) = delete; OptionsDialog& operator=(OptionsDialog&&) = delete; OptionsDialog& operator=(OptionsDialog const&) = delete; ~OptionsDialog() override; static std::unique_ptr create( Gtk::Window& parent, Glib::RefPtr const& core, std::unique_ptr ctor); private: class Impl; std::unique_ptr const impl_; };