LMMS
Loading...
Searching...
No Matches
juce_Font.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
12
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
15
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
18
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 DISCLAIMED.
22
23 ==============================================================================
24*/
25
26namespace juce
27{
28
29//==============================================================================
42{
43public:
44 //==============================================================================
49 {
50 plain = 0,
51 bold = 1,
52 italic = 2,
54 };
55
56 //==============================================================================
65 Font (float fontHeight, int styleFlags = plain);
66
76 Font (const String& typefaceName, float fontHeight, int styleFlags);
77
84 Font (const String& typefaceName, const String& typefaceStyle, float fontHeight);
85
87 Font (const Font& other) noexcept;
88
90 Font (const Typeface::Ptr& typeface);
91
98 Font();
99
101 Font (Font&& other) noexcept;
102
104 Font& operator= (Font&& other) noexcept;
105
107 Font& operator= (const Font& other) noexcept;
108
109 bool operator== (const Font& other) const noexcept;
110 bool operator!= (const Font& other) const noexcept;
111
114
115 //==============================================================================
128 void setTypefaceName (const String& faceName);
129
142
143 //==============================================================================
148
152 void setTypefaceStyle (const String& newStyle);
153
158
161
162 //==============================================================================
174
183
192
200 static const String& getDefaultStyle();
201
204
205 //==============================================================================
208
210 JUCE_NODISCARD Font withPointHeight (float heightInPoints) const;
211
215 void setHeight (float newHeight);
216
220 void setHeightWithoutChangingWidth (float newHeight);
221
228 float getHeight() const noexcept;
229
236 float getHeightInPoints() const;
237
242 float getAscent() const;
243
248 float getAscentInPoints() const;
249
254 float getDescent() const;
255
261
262 //==============================================================================
269
274 JUCE_NODISCARD Font withStyle (int styleFlags) const;
275
280 void setStyleFlags (int newFlags);
281
282 //==============================================================================
284 void setBold (bool shouldBeBold);
285
290
292 bool isBold() const noexcept;
293
295 void setItalic (bool shouldBeItalic);
299 bool isItalic() const noexcept;
300
302 void setUnderline (bool shouldBeUnderlined);
305
306 //==============================================================================
314
320 JUCE_NODISCARD Font withHorizontalScale (float scaleFactor) const;
321
326 void setHorizontalScale (float scaleFactor);
327
333
338 static void setDefaultMinimumHorizontalScaleFactor (float newMinimumScaleFactor) noexcept;
339
349
356 JUCE_NODISCARD Font withExtraKerningFactor (float extraKerning) const;
357
364 void setExtraKerningFactor (float extraKerning);
365
366 //==============================================================================
368 void setSizeAndStyle (float newHeight,
369 int newStyleFlags,
370 float newHorizontalScale,
371 float newKerningAmount);
372
374 void setSizeAndStyle (float newHeight,
375 const String& newStyle,
376 float newHorizontalScale,
377 float newKerningAmount);
378
379 //==============================================================================
384
389
395 void getGlyphPositions (const String& text, Array<int>& glyphs, Array<float>& xOffsets) const;
396
397 //==============================================================================
398 #ifndef DOXYGEN
404 [[deprecated ("This method is unsafe, use getTypefacePtr() instead.")]]
405 Typeface* getTypeface() const;
406 #endif
407
410
418 static void findFonts (Array<Font>& results);
419
428
436 static StringArray findAllTypefaceStyles (const String& family);
437
438 //==============================================================================
442 static const String& getFallbackFontName();
443
447 static void setFallbackFontName (const String& name);
448
452 static const String& getFallbackFontStyle();
453
457 static void setFallbackFontStyle (const String& style);
458
459 //==============================================================================
464 String toString() const;
465
470 static Font fromString (const String& fontDescription);
471
472private:
473 //==============================================================================
474 static bool compare (const Font&, const Font&) noexcept;
475
478 float getHeightToPointsFactor() const;
479
480 friend struct GraphicsFontHelpers;
481
482 class SharedFontInternal;
484
486};
487
488} // namespace juce
#define noexcept
Definition DistrhoDefines.h:72
#define final
Definition DistrhoDefines.h:74
Definition juce_Array.h:56
Definition juce_Font.cpp:187
Definition juce_Font.h:42
JUCE_NODISCARD Font withExtraKerningFactor(float extraKerning) const
Definition juce_Font.cpp:688
void setExtraKerningFactor(float extraKerning)
Definition juce_Font.cpp:695
static const String & getFallbackFontStyle()
Definition juce_Font.cpp:534
JUCE_NODISCARD Font withHeight(float height) const
Definition juce_Font.cpp:549
int getStyleFlags() const noexcept
Definition juce_Font.cpp:593
float getHeightInPoints() const
Definition juce_Font.cpp:738
static const String & getDefaultStyle()
Definition juce_Font.cpp:468
static const String & getFallbackFontName()
Definition juce_Font.cpp:520
void getGlyphPositions(const String &text, Array< int > &glyphs, Array< float > &xOffsets) const
Definition juce_Font.cpp:757
void setUnderline(bool shouldBeUnderlined)
Definition juce_Font.cpp:723
static float getDefaultMinimumHorizontalScaleFactor() noexcept
Definition juce_Font.cpp:45
Font(float fontHeight, int styleFlags=plain)
Definition juce_Font.cpp:381
static Typeface::Ptr getDefaultTypefaceForFont(const Font &font)
Definition juce_linux_Fonts.cpp:215
void setSizeAndStyle(float newHeight, int newStyleFlags, float newHorizontalScale, float newKerningAmount)
Definition juce_Font.cpp:622
static const String & getDefaultSansSerifFontName()
Definition juce_Font.cpp:465
static Font fromString(const String &fontDescription)
Definition juce_Font.cpp:810
float getDescent() const
Definition juce_Font.cpp:736
Typeface::Ptr getTypefacePtr() const
Definition juce_Font.cpp:509
float getHeight() const noexcept
Definition juce_Font.cpp:735
String getTypefaceName() const noexcept
Definition juce_Font.cpp:470
static const String & getDefaultMonospacedFontName()
Definition juce_Font.cpp:467
void setStyleFlags(int newFlags)
Definition juce_Font.cpp:610
String getTypefaceStyle() const noexcept
Definition juce_Font.cpp:471
String toString() const
Definition juce_Font.cpp:795
bool isItalic() const noexcept
Definition juce_Font.cpp:706
static StringArray findAllTypefaceStyles(const String &family)
Definition juce_linux_Fonts.cpp:103
float getStringWidthFloat(const String &text) const
Definition juce_Font.cpp:747
void dupeInternalIfShared()
Definition juce_Font.cpp:431
void setItalic(bool shouldBeItalic)
Definition juce_Font.cpp:716
void setBold(bool shouldBeBold)
Definition juce_Font.cpp:709
int getStringWidth(const String &text) const
Definition juce_Font.cpp:742
StringArray getAvailableStyles() const
Definition juce_Font.cpp:504
void setTypefaceStyle(const String &newStyle)
Definition juce_Font.cpp:486
void setHorizontalScale(float scaleFactor)
Definition juce_Font.cpp:671
void setTypefaceName(const String &faceName)
Definition juce_Font.cpp:473
float getAscent() const
Definition juce_Font.cpp:730
static bool compare(const Font &, const Font &) noexcept
Definition juce_Font.cpp:426
~Font() noexcept
static StringArray findAllTypefaceNames()
Definition juce_linux_Fonts.cpp:98
static void findFonts(Array< Font > &results)
Definition juce_Font.cpp:779
JUCE_NODISCARD Font boldened() const
Definition juce_Font.cpp:702
JUCE_NODISCARD Font withTypefaceStyle(const String &newStyle) const
Definition juce_Font.cpp:497
JUCE_NODISCARD Font withStyle(int styleFlags) const
Definition juce_Font.cpp:603
bool isBold() const noexcept
Definition juce_Font.cpp:705
float getExtraKerningFactor() const noexcept
Definition juce_Font.cpp:683
JUCE_NODISCARD Font italicised() const
Definition juce_Font.cpp:703
FontStyleFlags
Definition juce_Font.h:49
@ bold
Definition juce_Font.h:51
@ underlined
Definition juce_Font.h:53
@ plain
Definition juce_Font.h:50
@ italic
Definition juce_Font.h:52
bool isUnderlined() const noexcept
Definition juce_Font.cpp:707
float getHeightToPointsFactor() const
Definition juce_Font.cpp:556
float getAscentInPoints() const
Definition juce_Font.cpp:739
float getDescentInPoints() const
Definition juce_Font.cpp:740
static const String & getDefaultSerifFontName()
Definition juce_Font.cpp:466
void setHeightWithoutChangingWidth(float newHeight)
Definition juce_Font.cpp:580
ReferenceCountedObjectPtr< SharedFontInternal > font
Definition juce_Font.h:483
void setHeight(float newHeight)
Definition juce_Font.cpp:568
JUCE_NODISCARD Font withHorizontalScale(float scaleFactor) const
Definition juce_Font.cpp:664
friend struct GraphicsFontHelpers
Definition juce_Font.h:480
static void setDefaultMinimumHorizontalScaleFactor(float newMinimumScaleFactor) noexcept
Definition juce_Font.cpp:46
float getHorizontalScale() const noexcept
Definition juce_Font.cpp:678
Typeface * getTypeface() const
Definition juce_Font.cpp:514
JUCE_NODISCARD Font withPointHeight(float heightInPoints) const
Definition juce_Font.cpp:561
static void setFallbackFontName(const String &name)
Definition juce_Font.cpp:525
static void setFallbackFontStyle(const String &style)
Definition juce_Font.cpp:539
void checkTypefaceSuitability()
Definition juce_Font.cpp:437
Definition juce_ReferenceCountedObject.h:247
Definition juce_StringArray.h:35
Definition juce_String.h:53
Definition juce_Typeface.h:47
ReferenceCountedObjectPtr< Typeface > Ptr
Definition juce_Typeface.h:51
static const char * name
Definition pugl.h:1582
static int int height
Definition pugl.h:1594
#define JUCE_NODISCARD
Definition juce_CompilerSupport.h:108
#define JUCE_LEAK_DETECTOR(OwnerClass)
Definition juce_LeakedObjectDetector.h:138
#define JUCE_API
Definition juce_StandardHeader.h:152
static const SerdStyle style
Definition sratom.c:36
Definition carla_juce.cpp:31
const char * text
Definition swell-functions.h:167
#define const
Definition zconf.h:137