Horizon
Loading...
Searching...
No Matches
rule_editor.hpp
1#pragma once
2#include "common/common.hpp"
3#include "rules/rule.hpp"
4#include "util/uuid.hpp"
5#include <array>
6#include <gtkmm.h>
7#include <set>
8namespace horizon {
9class RuleEditor : public Gtk::Box {
10public:
11 enum class HasEnable { YES, NO };
12 RuleEditor(Rule &r, class IDocument &c, HasEnable has_enable = HasEnable::YES);
13 Rule &get_rule()
14 {
15 return rule;
16 }
17 virtual void populate();
18 typedef sigc::signal<void> type_signal_updated;
19 type_signal_updated signal_updated()
20 {
21 return s_signal_updated;
22 }
23
24private:
25 Gtk::CheckButton *enable_cb = nullptr;
26
27protected:
28 Rule &rule;
29 class IDocument &core;
30 Glib::RefPtr<Gtk::Builder> builder;
31 class SpinButtonDim *create_spinbutton(const char *box);
32 class RuleMatchEditor *create_rule_match_editor(const char *box, class RuleMatch &match);
33 class LayerComboBox *create_layer_combo(int &layer, bool show_any);
34 type_signal_updated s_signal_updated;
35};
36
38public:
39 RuleEditorWithoutEnable(Rule &r, class IDocument &c) : RuleEditor(r, c, HasEnable::NO)
40 {
41 }
42};
43
44} // namespace horizon
Definition idocument.hpp:5
Definition layer_combo_box.hpp:5
Definition rule_editor.hpp:37
Definition rule_editor.hpp:9
Definition rule_match_editor.hpp:5
Definition rule_match.hpp:9
Definition rule.hpp:58
Definition spin_button_dim.hpp:5