Skip to content
API Documentation
BastionGuard™
ScanPromptWindow Class Reference

#include <ScanPromptWindow.hpp>

Inheritance diagram for ScanPromptWindow:

Public Member Functions

 ScanPromptWindow (const std::string &devnode)
sigc::signal< void()> signal_scan_requested ()
sigc::signal< void()> signal_cancel_requested ()

Private Attributes

sigc::signal< void()> sig_scan_
sigc::signal< void()> sig_cancel_
Gtk::Box vbox {Gtk::Orientation::VERTICAL, 15}
Gtk::Label titleLabel
Gtk::Label messageLabel
Gtk::Button scanButton
Gtk::Button cancelButton

Detailed Description

Definition at line 24 of file ScanPromptWindow.hpp.

Constructor & Destructor Documentation

◆ ScanPromptWindow()

ScanPromptWindow::ScanPromptWindow ( const std::string & devnode)

Definition at line 43 of file ScanPromptWindow.cpp.

44 : titleLabel(_("Unità USB rilevata")),
45 messageLabel(_("È stata collegata una nuova periferica USB:\n\n") + devnode +
46 _("\n\nVuoi eseguire una scansione antivirus?")),
47 scanButton(_("Scansiona")),
48 cancelButton(_("Annulla"))
49{
50 set_title("");
51 set_default_size(520, 220);
52 set_resizable(false);
53 set_modal(true);
54
55 add_css_class("app-dialog");
56 add_css_class("main-window");
57 add_css_class("app-window");
58
59 try {
60 auto css = Gtk::CssProvider::create();
61 css->load_from_path(resource(usb_prompt_resolve_theme_css()));
62 auto display = Gdk::Display::get_default();
63 Gtk::StyleContext::add_provider_for_display(display, css, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
64 } catch (...) {}
65
66 auto header = Gtk::make_managed<Gtk::HeaderBar>();
67 header->set_show_title_buttons(false);
68 header->set_decoration_layout("");
69 header->add_css_class("custom-headerbar");
70
71 auto close_box = Gtk::make_managed<Gtk::Box>(Gtk::Orientation::HORIZONTAL);
72 close_box->set_margin_end(6);
73
74 try {
75 auto px = Gdk::Pixbuf::create_from_file(resource("icon-close.png"), 28, 28, true);
76 auto btn = Gtk::make_managed<Gtk::Button>();
77 btn->set_child(*Gtk::make_managed<Gtk::Image>(px));
78 btn->add_css_class("header-button");
79
80 btn->signal_clicked().connect([this]() { hide(); });
81
82 close_box->append(*btn);
83 } catch (...) {}
84
85 header->pack_end(*close_box);
86
87 auto header_wrapper = Gtk::make_managed<Gtk::Box>(Gtk::Orientation::VERTICAL);
88 header_wrapper->append(*header);
89 set_titlebar(*header_wrapper);
90
91 titleLabel.get_style_context()->add_class("title");
92 titleLabel.set_halign(Gtk::Align::CENTER);
93
94 messageLabel.set_wrap(true);
95 messageLabel.set_justify(Gtk::Justification::CENTER);
96 messageLabel.set_halign(Gtk::Align::CENTER);
97
98 scanButton.add_css_class("btn-success");
99 cancelButton.add_css_class("btn-danger");
100
101 auto btn_box = Gtk::make_managed<Gtk::Box>(Gtk::Orientation::HORIZONTAL, 20);
102 btn_box->set_halign(Gtk::Align::CENTER);
103 btn_box->append(scanButton);
104 btn_box->append(cancelButton);
105
106 scanButton.signal_clicked().connect([this]() {
107 sig_scan_.emit();
108 hide();
109 });
110
111 cancelButton.signal_clicked().connect([this]() {
112 sig_cancel_.emit();
113 hide();
114 });
115
116
117 set_child(vbox);
118 vbox.set_margin(25);
119 vbox.append(titleLabel);
120 vbox.append(messageLabel);
121 vbox.append(*btn_box);
122
123 present();
124}
#define _(s)
static std::string usb_prompt_resolve_theme_css()
sigc::signal< void()> sig_scan_
sigc::signal< void()> sig_cancel_
std::string resource(const std::string &rel)
Definition Resource.hpp:31

References _, cancelButton, messageLabel, resource(), scanButton, sig_cancel_, sig_scan_, titleLabel, usb_prompt_resolve_theme_css(), and vbox.

Referenced by USBScanPage::start_monitor_thread().

Member Function Documentation

◆ signal_cancel_requested()

sigc::signal< void()> ScanPromptWindow::signal_cancel_requested ( )
inline

Definition at line 29 of file ScanPromptWindow.hpp.

29{ return sig_cancel_; }

References sig_cancel_.

◆ signal_scan_requested()

sigc::signal< void()> ScanPromptWindow::signal_scan_requested ( )
inline

Definition at line 28 of file ScanPromptWindow.hpp.

28{ return sig_scan_; }

References sig_scan_.

Member Data Documentation

◆ cancelButton

Gtk::Button ScanPromptWindow::cancelButton
private

Definition at line 39 of file ScanPromptWindow.hpp.

Referenced by ScanPromptWindow().

◆ messageLabel

Gtk::Label ScanPromptWindow::messageLabel
private

Definition at line 37 of file ScanPromptWindow.hpp.

Referenced by ScanPromptWindow().

◆ scanButton

Gtk::Button ScanPromptWindow::scanButton
private

Definition at line 38 of file ScanPromptWindow.hpp.

Referenced by ScanPromptWindow().

◆ sig_cancel_

sigc::signal<void()> ScanPromptWindow::sig_cancel_
private

Definition at line 33 of file ScanPromptWindow.hpp.

Referenced by ScanPromptWindow(), and signal_cancel_requested().

◆ sig_scan_

sigc::signal<void()> ScanPromptWindow::sig_scan_
private

Definition at line 32 of file ScanPromptWindow.hpp.

Referenced by ScanPromptWindow(), and signal_scan_requested().

◆ titleLabel

Gtk::Label ScanPromptWindow::titleLabel
private

Definition at line 36 of file ScanPromptWindow.hpp.

Referenced by ScanPromptWindow().

◆ vbox

Gtk::Box ScanPromptWindow::vbox {Gtk::Orientation::VERTICAL, 15}
private

Definition at line 35 of file ScanPromptWindow.hpp.

Referenced by ScanPromptWindow().


The documentation for this class was generated from the following files: