summaryrefslogtreecommitdiffstats
path: root/src/util/document-fonts.h
blob: 40ec30d6147fd12e6dd563ae953f8943a3f4a872 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Header file that defines the singleton DocumentFonts class.
 * This is a singleton class.
 *
 * Authors:
 *   Vaibhav Malik <vaibhavmalik2018@gmail.com>
 *
 * The contents of this file may be used under the GNU General Public License Version 2 or later.
 *
 */

#ifndef INK_DOCUMENT_FONTS_H
#define INK_DOCUMENT_FONTS_H

#include <vector>
#include <map>
#include <set>
#include <sigc++/sigc++.h>

#include "io/resource.h"
#include "io/dir-util.h"

namespace Inkscape {

class DocumentFonts {

public:
    enum What {
        All,
        System,
        User
    };

    static DocumentFonts* get();
    ~DocumentFonts() = default;

    void clear();
    // void print_document_fonts();
    void update_document_fonts(const std::map<Glib::ustring, std::set<Glib::ustring>>& font_data);
    const std::set <Glib::ustring> get_fonts();

    // Signals
    sigc::connection connectUpdate(sigc::slot <void ()> slot) {
        return update_signal.connect(slot);
    }

private:
    DocumentFonts();
    std::set <Glib::ustring> _document_fonts;

    // Signals
    sigc::signal <void ()> update_signal;
};

} // Namespace Inkscape

#endif // INK_DOCUMENT_FONTS_H

/*
  Local Variables:
  mode:c++
  c-file-style:"stroustrup"
  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
  indent-tabs-mode:nil
  fill-column:99
  End:
*/
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :