summaryrefslogtreecommitdiff
path: root/libcaribou/iscannable-group.vala
blob: 7c5e3f9738a0fb014cda9e086cedae3ab4e64069 (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
namespace Caribou {
    /**
     * Interface implemented by containers of selectable items in scanning mode.
     */
    public interface IScannableGroup : Object {
        public abstract IScannableItem? child_select ();
        public abstract void scan_reset ();
        public abstract IScannableItem[] get_scan_children ();
        public abstract IScannableItem? child_step (int cycles);
        public abstract IScannableItem[] get_step_path ();
        public abstract IScannableItem[] get_selected_path ();

        public abstract ScanGrouping scan_grouping { get; set; }

        public signal void selected_item_changed (IScannableItem? selected_item);
        public signal void step_item_changed (IScannableItem? step_item);
        public signal void scan_cleared ();
    }

    public enum ScanGrouping {
        NONE,
        SUBGROUPS,
        ROWS,
        LINEAR
    }
}