The Birdfont Source Code


All Repositories / birdfont.git / blob – RSS feed

FontName.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

Revisions

View the latest version of libbirdfont/FontName.vala.
Fix selection in overview
1 /* 2 Copyright (C) 2014 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 17 namespace BirdFont { 18 19 public class FontName : Tool { 20 21 public FontName (string? name = null, string tip = "") { 22 base (null , tip); 23 24 if (name != null) { 25 base.name = (!) name; 26 } 27 28 select_action.connect ((tool) => { 29 MenuTab.select_overview (); 30 }); 31 } 32 33 public override void draw (Context cr) { 34 Text font_name; 35 double text_height; 36 double extent; 37 double width = Toolbox.allocation_width * Toolbox.get_scale (); 38 double max_width; 39 40 cr.save (); 41 // tab label 42 font_name = new Text (); 43 font_name.set_text (BirdFont.get_current_font ().get_full_name ()); 44 text_height = 22; 45 46 max_width = (width - 2 * x * Toolbox.get_scale ()); 47 font_name.set_font_size (text_height); 48 extent = font_name.get_extent () * Toolbox.get_scale (); 49 if (extent > max_width) { 50 text_height *= max_width / extent; 51 } 52 53 Theme.text_color (font_name, "Highlighted 1"); 54 font_name.set_font_size (text_height); 55 font_name.draw_at_baseline (cr, x, y + 13 * Toolbox.get_scale ()); 56 cr.restore (); 57 } 58 } 59 60 } 61