summaryrefslogtreecommitdiffstats
path: root/src/ui/dialog/font-collections-manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/dialog/font-collections-manager.h')
-rw-r--r--src/ui/dialog/font-collections-manager.h90
1 files changed, 90 insertions, 0 deletions
diff --git a/src/ui/dialog/font-collections-manager.h b/src/ui/dialog/font-collections-manager.h
new file mode 100644
index 0000000..d974e58
--- /dev/null
+++ b/src/ui/dialog/font-collections-manager.h
@@ -0,0 +1,90 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/** @file
+ * @brief Text-edit
+ */
+/* Authors:
+ * Vaihav Malik <vaibhavmalik2018@gmail.com>
+ *
+ * Copyright (C) 1999-2013 Authors
+ * Copyright (C) 2000-2001 Ximian, Inc.
+ *
+ * Released under GNU GPL v2+, read the file 'COPYING' for more information.
+ */
+
+#ifndef INKSCAPE_UI_DIALOG_FONT_COLLECTIONS_MANAGER_H
+#define INKSCAPE_UI_DIALOG_FONT_COLLECTIONS_MANAGER_H
+
+#include "helper/auto-connection.h"
+#include "ui/dialog/dialog-base.h"
+#include "ui/widget/font-selector.h"
+#include "ui/widget/font-collection-selector.h"
+
+namespace Inkscape {
+namespace UI {
+namespace Dialog {
+
+/**
+ * The font collections manager dialog allows the user to:
+ * 1. Create
+ * 2. Read
+ * 3. Update
+ * 4. Delete
+ * the font collections and the fonts associated with each collection.
+ *
+ * User can add new fonts in font collections by dragging the fonts from the
+ * font list and dropping them a user font collection.
+ */
+class FontCollectionsManager : public DialogBase
+{
+public:
+ enum SelectionStates {SYSTEM_COLLECTION = -1, USER_COLLECTION, USER_COLLECTION_FONT};
+
+ FontCollectionsManager();
+
+private:
+ void on_search_entry_changed();
+ void on_create_button_pressed();
+ void on_edit_button_pressed();
+ void on_delete_button_pressed();
+ void on_reset_button_pressed();
+ void change_font_count_label();
+ void on_selection_changed(int state);
+
+ /*
+ * All the dialogs widgets
+ */
+ Gtk::Box *_contents;
+ Gtk::Paned *_paned;
+ Gtk::Box *_collections_box;
+ Gtk::Box *_buttons_box;
+ Gtk::Box *_font_list_box;
+ Gtk::Label *_font_count_label;
+ Gtk::Box *_font_list_filter_box;
+ Gtk::SearchEntry *_search_entry;
+ Gtk::Button *_reset_button;
+ Gtk::Button *_create_button;
+ Gtk::Button *_edit_button;
+ Gtk::Button *_delete_button;
+ Inkscape::UI::Widget::FontSelector _font_selector;
+ Inkscape::UI::Widget::FontCollectionSelector _user_font_collections;
+
+ // Signals
+ auto_connection _font_count_changed_connection;
+};
+
+} // namespace Dialog
+} // namespace UI
+} // namespace Inkscape
+
+#endif // INKSCAPE_UI_DIALOG_FONT_COLLECTIONS_MANAGER_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:fileencoding=utf-8:textwidth=99 :