// 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 #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() override = default; TR_DISABLE_COPY_MOVE(TorrentUrlChooserDialog) 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() override = default; TR_DISABLE_COPY_MOVE(TorrentFileChooserDialog) 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() override; TR_DISABLE_COPY_MOVE(OptionsDialog) static std::unique_ptr create( Gtk::Window& parent, Glib::RefPtr const& core, std::unique_ptr ctor); private: class Impl; std::unique_ptr const impl_; };