14 ActionToolID(ActionID a, ToolID t) : action(a), tool(t)
18 ActionToolID(ActionID a);
19 ActionToolID(ToolID t);
23 bool is_action()
const;
24 bool is_valid()
const;
32 return std::tie(action, tool);
36 bool operator<(
const ActionToolID &other)
const
38 return tie() < other.tie();
40 bool operator==(
const ActionToolID &other)
const
42 return tie() == other.tie();
46enum class ActionGroup {
70enum class ActionSource {
75using KeySequenceItem = std::pair<unsigned int, GdkModifierType>;
76using KeySequence = std::vector<KeySequenceItem>;
78std::string key_sequence_item_to_string(
const KeySequenceItem &it);
79std::string key_sequence_to_string(
const KeySequence &keys);
80std::string key_sequence_to_string_short(
const KeySequence &keys);
82std::string key_sequences_to_string(
const std::vector<KeySequence> &seqs);
84enum class KeyMatchResult { NONE, PREFIX, COMPLETE };
85KeyMatchResult key_sequence_match(
const KeySequence &keys_current,
const KeySequence &keys_from_action);
87class ActionConnection {
89 ActionConnection(
ActionToolID atid, std::function<
void(
const ActionConnection &, ActionSource)> c) : id(atid), cb(c)
94 std::vector<KeySequence> key_sequences;
95 std::function<void(
const ActionConnection &, ActionSource)> cb;