xtd - Reference Guide  0.1.0
Modern c++17/20 framework to create console, GUI and unit test applications on Windows, macOS, Linux, iOS and android.
Loading...
Searching...
No Matches
country.h
Go to the documentation of this file.
1
4#pragma once
5#include "../forms_export.h"
6#include <xtd/object.h>
7#include <xtd/ustring.h>
9#include <xtd/static.h>
10#include <xtd/drawing/bitmap.h>
11
13namespace xtd {
15 namespace forms {
17 class countries;
19
29 class forms_export_ country : public object {
30 public:
32 country() = default;
33 bool operator==(const country& value) const {return name_ == value.name_ && alpha_2_code_ == value.alpha_2_code_ && alpha_3_code_ == value.alpha_3_code_ && numeric_code_ == value.numeric_code_;}
34 bool operator!=(const country& value) const {return !operator==(value);}
36
39 static const country empty();
40
43 virtual const xtd::ustring alpha_2_code() const {return alpha_2_code_;}
44
47 virtual const xtd::ustring alpha_3_code() const {return alpha_3_code_;}
48
51 virtual const xtd::ustring emoticon() const {return emoticon_;}
52
55 virtual const xtd::drawing::image flag() const;
56
59 virtual const xtd::drawing::image flag_squared() const;
60
63 virtual const xtd::ustring name() const {return name_;}
64
67 virtual int numeric_code() const {return numeric_code_;}
68
71 static country from_alpha_2_code(const xtd::ustring& alpha_2_code);
74 static country from_alpha_3_code(const xtd::ustring& alpha_3_code);
77 static country from_name(const xtd::ustring& name);
80 static country from_numeric_code(int numeric_code);
81
84 virtual xtd::ustring to_string() const noexcept override;
85
87 friend std::ostream& operator<<(std::ostream& os, const xtd::forms::country& country) noexcept {
88 return os << country.to_string();
89 }
91
92 private:
93 friend class countries;
94
95 static const std::vector<xtd::ustring> enclosed_letters;
96 country(const xtd::ustring& name, const xtd::ustring& alpha_2_code, const xtd::ustring& alpha_3_code, int numeric_code) : name_(name), alpha_2_code_(alpha_2_code), alpha_3_code_(alpha_3_code), numeric_code_(numeric_code), emoticon_(enclosed_letters[alpha_2_code[0] - 'A'] + enclosed_letters[alpha_2_code[1] - 'A']) {}
97
98 xtd::ustring name_;
99 xtd::ustring alpha_2_code_;
100 xtd::ustring alpha_3_code_;
101 int numeric_code_;
102 xtd::ustring emoticon_;
103 };
104 }
105}
Contains xtd::drawing::bitmap class.
An abstract base class that provides functionality for the bitmap and metafile descended classes.
Definition: image.h:34
Provides a collection of xtd::forms::country for all countries in the world. This class cannot be inh...
Definition: countries.h:20
Represent a country with name, alpha codes, numeric code, emoticon and flag.
Definition: country.h:29
virtual const xtd::ustring name() const
Gets the country name.
Definition: country.h:63
virtual const xtd::drawing::image flag() const
Gets the country flag.
static country from_name(const xtd::ustring &name)
Gets a country from name.
static country from_alpha_3_code(const xtd::ustring &alpha_3_code)
Gets a country from alpha 3 code.
virtual const xtd::ustring emoticon() const
Gets the country emoticon.
Definition: country.h:51
virtual xtd::ustring to_string() const noexcept override
Returns a string containing the name, alpha codes and numeric code of the country.
static country from_numeric_code(int numeric_code)
Gets a country from numeric code.
virtual int numeric_code() const
Gets the country numeric code.
Definition: country.h:67
static const country empty()
Get an empty country.
virtual const xtd::drawing::image flag_squared() const
Gets the country flag.
static country from_alpha_2_code(const xtd::ustring &alpha_2_code)
Gets a country from alpha 2 code.
virtual const xtd::ustring alpha_3_code() const
Gets the country alpha 3 code.
Definition: country.h:47
virtual const xtd::ustring alpha_2_code() const
Gets the country alpha 2 code.
Definition: country.h:43
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition: object.h:26
Represents text as a sequence of UTF-8 code units.
Definition: ustring.h:48
Contains xtd::convert_string class.
#define forms_export_
Define shared library export.
Definition: forms_export.h:13
The xtd::forms namespace contains classes for creating Windows-based applications that take full adva...
Definition: about_box.h:13
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition: system_report.h:17
Contains xtd::object class.
Contains xtd::static_object class.
Contains xtd::ustring class.