class:: Font summary:: A font object categories:: GUI>Accessories description:: This is the object you pass to other gui objects to set their font name or size. classmethods:: private::key method:: new argument:: name An instance of link::Classes/String::. Must coincide with the name of a font on the system. See link::#*availableFonts::. argument:: size An instance of link::Classes/Float::. argument:: bold A Boolean. argument:: italic A Boolean. argument:: usePointSize A Boolean. Whether to regard the strong::size:: argument as point-size - adapting to the screen resolution. discussion:: Example: code:: g = Font("Helvetica", 12); :: method:: availableFonts returns:: link::Classes/Array:: of the available fonts. method:: antiAliasing argument:: flag An instance of link::Classes/Boolean::. Default value is code::false::. method:: smoothing argument:: flag An instance of link::Classes/Boolean::. Default value is code::false::. method:: defaultSansFace returns:: The default sans serif face Font. method:: defaultSerifFace returns:: The default serif face Font. method:: defaultMonoFace returns:: The default monospace face Font. method:: default The global default Font. Setting this property is equivalent to code::Font.setDefault(font)::. See link::#*setDefault:: for details. method:: setDefault Sets the global default font. Properties of the code::font:: argument will be combined with properties of the default system font, and those of individual views. Optionally, a class can be given, so only views of that class will be affected. Note that this will immediately affect any existing views. argument:: font An instance of Font. argument:: class A Class (either View or one of its subclasses), or code::nil::. method:: sansSerif Create a new sans serif face Font. method:: monospace Create a new monospace face Font. method:: serif Create a new serif face Font. instancemethods:: method:: name Gets/sets the name of the font. argument:: value An instance of link::Classes/String::. method:: size Gets/sets the size of the font. Setting this variable is always considered as setting the link::#-pixelSize::, while getting it will return any size set. See link::#-hasPointSize:: for distinction. argument:: pixelSize A Float. method:: hasPointSize A Boolean variable indicating whether the link::#-size:: is regarded as pixel-size (precise amount of pixels), or point-size (adapting to screen resolution). To change this, you need to set the size via link::#-pixelSize:: or link::#-pointSize::. method:: pixelSize Gets or sets the pixel-size of the font. When getting, returns nil if the font has point-size instead. See link::#-hasPointSize:: for distinction. Argument:: Any number, but note that floats will be rounded to integer values when setting pixel-size. method:: pointSize Gets or sets the point-size of the font. When getting, returns nil if the font has pixel-size instead. See link::#-hasPointSize:: for distinction. Argument:: A Float. method:: setDefault Makes this instance of Font the default. This is equivalent to calling link::#*setDefault:: with this Font and the given class as arguments. method:: storeArgs (?) Returns:: an link::Classes/Array::, code:: [ name, size ] ::. method:: boldVariant note:: On the Cocoa GUI it appends teletype::"-Bold":: to the name. This is only useful for fonts that have bold variants. :: returns:: Bold variant of the Font. examples:: code:: ( w = Window.new.front; t = StaticText(w, w.view.bounds).align_(\center); t.string=" SUPERCOLLIDER"; ) t.font = Font("Monaco", 24); ( var updateFont; w = Window("Fonts", Rect(150, Window.screenBounds.height - 500, 400, 400)).front; w.view.decorator = FlowLayout(w.view.bounds); StaticText.new(w, Rect(5, 0, 30, 20)).string_("Font").align_(\right); m = PopUpMenu(w, Rect(40, 0, 250, 20)); m.items = Font.availableFonts; StaticText.new(w, Rect(290, 0, 28, 20)).string_("Size").align_(\right); y = PopUpMenu(w, Rect(322, 0, 50, 20)); y.items = ["6","7","8","9","10","12","13","14","18","24","36","48","60","72","96"]; t = TextView(w, Rect(10, 40, 380, 150)); t.string = "\nThe quick drowned fox jumped over the lazy blog. \n\n 0 1 2 3 4 5 6 7 8 9 "; a = StaticText(w, 200@20).string_("The quick drowned fox").background_(Color.rand).align_(\center); b = Button(w, 200@20).states_([["The quick drowned fox"]]).background_(Color.rand); c = PopUpMenu(w, 200@20).items_(["The quick drowned fox"]).background_(Color.rand); y.action = { var font; font = Font(m.items[m.value],y.items[y.value].asInteger); a.font_(font).refresh; b.font_(font).refresh; c.font_(font).refresh; t.font_(font).refresh; }; m.action = y.action; m.valueAction = 3; y.valueAction = 5; ) ( var w, f; w = Window("Fonts", Rect(128, 64, 340, 360)); w.view.decorator = f = FlowLayout(w.view.bounds,Point(4, 4),Point(4, 2)); [ "Helvetica-Bold", "Helvetica", "Monaco", "Arial", "Gadget", "MarkerFelt-Thin" ].do({ arg name; var v, s, n, spec, p, height = 16; v = StaticText(w, Rect(0, 0, 110, height + 20)); v.font = Font(name, 13); v.string = name; s = Button(w, Rect(0, 0, 140, height + 20)); s.font = Font(name, 13); s.states = [[name]]; n = NumberBox(w, Rect(0, 0, 56, height + 20)); n.font = Font(name, 13); n.object = pi; f.nextLine; }); w.front; ) ( var w, f, i = 0; w = Window("Fonts", Rect(128, 64, 1024, 768)); b = ScrollView(w, w.view.bounds); b.decorator = f = FlowLayout(b.bounds, Point(4,4), Point(4,2)); Font.availableFonts.do({ arg name; var v, s, n, spec, p, height = 16, font; font = Font(name,13); v = StaticText(b, Rect(0, 0, 120, height + 20)); v.font = font; v.string = name; s = Button(b, Rect(0, 0, 140, height + 20)); s.font = font; s.states = [[name]]; s.action = { font.asCompileString.postln; }; n = NumberBox(b, Rect(0, 0, 56, height + 20)); n.font = font; n.object = pi; if( (i = i + 1) % 3 == 0,{ f.nextLine; }); }); w.front; ) ::