13 void clear_highlights();
14 void add_highlights(
const UUID &sheet,
const UUIDVec &path);
15 void select_sheet(
const UUID &sheet_uuid);
16 void go_to_instance(
const UUIDVec &path,
const UUID &sheet =
UUID());
17 void go_to_block_symbol(
const UUID &uu);
18 typedef sigc::signal<void, UUID, UUID, UUIDVec> type_signal_select_sheet;
19 type_signal_select_sheet signal_select_sheet()
21 return s_signal_select_sheet;
24 typedef sigc::signal<void> type_signal_edit_more;
25 type_signal_edit_more signal_edit_more()
27 return s_signal_edit_more;
30 typedef sigc::signal<void, UUID> type_signal_place_block;
31 type_signal_place_block signal_place_block()
33 return s_signal_place_block;
37 enum class RowType { SHEET, BLOCK, BLOCK_INSTANCE, SEPARATOR };
39 class TreeColumns :
public Gtk::TreeModelColumnRecord {
43 Gtk::TreeModelColumnRecord::add(name);
44 Gtk::TreeModelColumnRecord::add(sheet);
45 Gtk::TreeModelColumnRecord::add(block);
46 Gtk::TreeModelColumnRecord::add(index);
47 Gtk::TreeModelColumnRecord::add(has_warnings);
48 Gtk::TreeModelColumnRecord::add(has_highlights);
49 Gtk::TreeModelColumnRecord::add(type);
50 Gtk::TreeModelColumnRecord::add(instance_path);
52 Gtk::TreeModelColumn<Glib::ustring> name;
53 Gtk::TreeModelColumn<UUID> sheet;
54 Gtk::TreeModelColumn<UUID> block;
55 Gtk::TreeModelColumn<unsigned int> index;
56 Gtk::TreeModelColumn<bool> has_warnings;
57 Gtk::TreeModelColumn<bool> has_highlights;
58 Gtk::TreeModelColumn<RowType> type;
59 Gtk::TreeModelColumn<UUIDVec> instance_path;
61 TreeColumns tree_columns;
64 Gtk::Button *add_button =
nullptr;
65 Gtk::Button *remove_button =
nullptr;
66 Gtk::Button *move_up_button =
nullptr;
67 Gtk::Button *move_down_button =
nullptr;
70 Glib::RefPtr<Gtk::TreeStore> store;
74 type_signal_select_sheet s_signal_select_sheet;
75 type_signal_edit_more s_signal_edit_more;
76 void selection_changed(
void);
77 void remove_clicked(
void);
78 void name_edited(
const Glib::ustring &path,
const Glib::ustring &new_text);
79 void sheet_move(
int dir);
81 bool updating =
false;
83 void sheets_to_row(std::function<Gtk::TreeModel::Row()> make_row,
const class Schematic &sch,
84 const UUID &block_uuid,
const UUIDVec &instance_path,
bool in_hierarchy);
85 std::optional<Gtk::TreeModel::iterator> last_iter;
87 type_signal_place_block s_signal_place_block;