Inkscape
Vector Graphics Editor
Loading...
Searching...
No Matches
canvas-notice.cpp
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-2.0-or-later
2
3#include "canvas-notice.h"
4
5#include <utility>
6#include <glibmm/main.h>
7#include <gtkmm/builder.h>
8#include <gtkmm/button.h>
9#include <gtkmm/image.h>
10#include <gtkmm/label.h>
11
12#include "ui/builder-utils.h"
13
14namespace Inkscape::UI::Widget {
15
16CanvasNotice::CanvasNotice(BaseObjectType *cobject, Glib::RefPtr<Gtk::Builder> const &builder)
17 : Gtk::Revealer(cobject)
18 , _builder(builder)
19 , _icon(get_widget<Gtk::Image>(_builder, "notice-icon"))
20 , _label(get_widget<Gtk::Label>(_builder, "notice-label"))
21{
22 auto &close = get_widget<Gtk::Button>(_builder, "notice-close");
23 close.signal_clicked().connect([this] {
24 hide();
25 });
26}
27
28void CanvasNotice::show(Glib::ustring const &msg, int timeout)
29{
30 _label.set_text(msg);
31 set_reveal_child(true);
32 if (timeout != 0) {
33 _timeout = Glib::signal_timeout().connect([this] {
34 hide();
35 return false;
36 }, timeout);
37 }
38}
39
41{
42 set_reveal_child(false);
43}
44
46{
47 auto builder = create_builder("canvas-notice.glade");
48 auto widget = &get_derived_widget<CanvasNotice>(builder, "canvas-notice");
49 return widget;
50}
51
52} // namespace Inkscape::UI::Widget
53
54/*
55 Local Variables:
56 mode:c++
57 c-file-style:"stroustrup"
58 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
59 indent-tabs-mode:nil
60 fill-column:99
61 End:
62*/
63// vim:filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99:
Gtk builder utilities.
Glib::RefPtr< Gtk::Builder > _builder
CanvasNotice(BaseObjectType *cobject, Glib::RefPtr< Gtk::Builder > const &builder)
sigc::scoped_connection _timeout
void show(Glib::ustring const &msg, int timeout=0)
sigc::scoped_connection timeout
Glib::ustring msg
Definition desktop.h:50
Custom widgets.
Definition desktop.h:126
W & get_widget(const Glib::RefPtr< Gtk::Builder > &builder, const char *id)
Glib::RefPtr< Gtk::Builder > create_builder(const char *filename)
Glib::RefPtr< Gtk::Builder > builder