Simple SFML GUI  0.2a
HaveFont.hpp
1 /*
2  * HaveFont.hpp
3  *
4  * Created on: 26.05.2017
5  * Author: jakub
6  */
7 
8 #ifndef SSG_HAVEFONT_HPP_
9 #define SSG_HAVEFONT_HPP_
10 
11 #include <memory>
12 #include <set>
13 #include <SFML/Graphics/Color.hpp>
14 #include <SFML/Graphics/Text.hpp>
15 #include "FontManager.hpp"
16 #include "ColorProvider.hpp"
17 #include "Element.hpp"
18 
19 class HaveFont {
20 public:
21  friend Element;
22  friend FontManager;
23  HaveFont(ColorProvider& colorProvider);
24  HaveFont(ColorProvider& colorProvider, const HaveFont& copy);
25  virtual ~HaveFont();
26  virtual void setFont(const sf::String& name);
27  virtual void setFont(const std::shared_ptr<sf::Font>& font);
28  std::shared_ptr<sf::Font> getFont() const;
29  size_t getFontSize() const;
30  virtual void setFontSize(unsigned int fontSize);
31  virtual void setFontOutlineSize(float fontOutlineSize);
32  sf::Uint32 getFontStyle() const;
33  virtual void setFontStyle(sf::Uint32 fontStyle);
34  virtual void fontChangeEvent();
35 
36 protected:
37  sf::Uint32 fontStyle;
38  unsigned int fontSize;
39  float fontOutlineSize;
40  std::shared_ptr<sf::Font> font;
41 
42  static void releaseAllFonts();
43  static std::set<HaveFont*> haveFontSet;
44  static sf::Mutex haveFontSetMutex;
45 };
46 
47 #endif /* SSG_HAVEFONT_HPP_ */
Definition: FontManager.hpp:17
Definition: ColorProvider.hpp:15
Definition: Element.hpp:22
Definition: HaveFont.hpp:19