The Birdfont Source Code


All Repositories / birdfont.git / blob – RSS feed

ToolCollection.vala in /libbirdfont

This file is a part of the Birdfont project.

Contributing

Send patches or pull requests to johan.mattsson.m@gmail.com.
Clone this repository: git clone https://github.com/johanmattssonm/birdfont.git
Circle boundaries heads/master
1 /* 2 Copyright (C) 2013 2015 Johan Mattsson 3 4 This library is free software; you can redistribute it and/or modify 5 it under the terms of the GNU Lesser General Public License as 6 published by the Free Software Foundation; either version 3 of the 7 License, or (at your option) any later version. 8 9 This library is distributed in the hope that it will be useful, but 10 WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 Lesser General Public License for more details. 13 */ 14 15 using Cairo; 16 using Math; 17 18 namespace BirdFont { 19 20 public abstract class ToolCollection : GLib.Object { 21 public double scroll = 0; 22 public double content_height = 0; 23 private Tool current_tool = new Tool ("no_icon"); 24 25 public abstract Gee.ArrayList<Expander> get_expanders (); 26 27 public virtual Gee.ArrayList<string> get_displays () { 28 return new Gee.ArrayList<string> (); 29 } 30 31 public void set_current_tool (Tool tool) { 32 current_tool = tool; 33 } 34 35 public Tool get_current_tool () { 36 return current_tool; 37 } 38 39 public void cache () { 40 foreach (Expander e in get_expanders ()) { 41 e.cache (); 42 } 43 } 44 45 public void clear_cache () { 46 foreach (Expander e in get_expanders ()) { 47 e.clear_cache (); 48 } 49 } 50 51 public void redraw () { 52 foreach (Expander e in get_expanders ()) { 53 e.redraw (); 54 } 55 } 56 57 public virtual void selected () { 58 reset_selection (current_tool); 59 current_tool.set_selected (true); 60 } 61 62 public virtual void reset_selection (Tool current_tool) { 63 } 64 } 65 66 } 67