|
HikoGUI
A low latency retained GUI
|
DOXYGEN BUG. More...
Concepts | |
| concept | awaitable_direct |
| Check if type can be directly co_await on. | |
| concept | awaitable_member |
| Check if type can be indirectly co_await on. | |
| concept | awaitable_non_member |
| Check if type can be indirectly co_await on. | |
| concept | awaitable |
Check if the type can be co_awaited on after conversion with awaitable_cast. | |
| concept | numeric_limited |
| concept | numeric |
| concept | numeric_integral |
| concept | numeric_signed_integral |
| concept | numeric_unsigned_integral |
| concept | arithmetic |
| concept | pointer |
| concept | reference |
| concept | lvalue_reference |
| concept | rvalue_reference |
| concept | trivially_copyable |
| concept | different_from |
| concept | base_of |
| concept | decayed_base_of |
| concept | derived_from |
| concept | decayed_derived_from |
| concept | strict_base_of |
| concept | strict_derived_from |
| concept | pre_incrementable |
| concept | pre_decrementable |
| concept | to_stringable |
| concept | from_stringable |
| concept | static_castableable |
| concept | sizeable |
| concept | scalar |
| concept | scoped_enum |
| Concept for std::is_scoped_enum_v<T>. | |
| concept | forward_of |
| True if T is a forwarded type of Forward. | |
| concept | byte_like |
| An array of this type will implicitly create objects within that array. | |
Typedefs | |
| template<typename T > | |
| using | awaitable_cast_t = hi_typename awaitable_cast<T>::type |
| Resolve the type that is directly-awaitable. | |
| template<typename T > | |
| using | await_resume_result_t = hi_typename await_resume_result<T>::type |
| Get the result type of an awaitable. | |
| using | ubig128 = bigint<uint64_t, 2, false> |
| using | big128 = bigint<uint64_t, 2, true> |
| using | uuid = bigint<uint64_t, 2, false> |
| using | byteptr = std::byte * |
| using | cbyteptr = std::byte const * |
| using | bstring = std::basic_string<std::byte, byte_char_traits> |
| using | bstring_view = std::basic_string_view<std::byte, byte_char_traits> |
| using | utc_nanoseconds = std::chrono::utc_time<std::chrono::nanoseconds> |
| using | sys_nanoseconds = std::chrono::sys_time<std::chrono::nanoseconds> |
| using | base2 = base_n<detail::base2_alphabet, 8, 1> |
| using | base8 = base_n<detail::base8_alphabet, 8, 3> |
| using | base16 = base_n<detail::base16_alphabet, 2, 1> |
| using | base32 = base_n<detail::base32_rfc4648_alphabet, 8, 5> |
| using | base32hex = base_n<detail::base32hex_rfc4648_alphabet, 8, 5> |
| using | base64 = base_n<detail::base64_rfc4648_alphabet, 4, 3> |
| using | base64url = base_n<detail::base64url_rfc4648_alphabet, 4, 3> |
| using | base85 = base_n<detail::base85_rfc1924_alphabet, 5, 4> |
| using | ascii85 = base_n<detail::base85_btoa_alphabet, 5, 4> |
| using | cmdline_option = std::variant<cmline_executable, cmdline_short_option, cmdline_long_option, cmdline_argument> |
| using | money = fixed<safe_int<int64_t>, 100> |
| using | font_family_id = tagged_id<uint16_t, "font_family_id"> |
| using | glyph_id = tagged_id<uint16_t, "glyph_id"> |
| template<typename T > | |
| using | forward_value_t = typename forward_value<T>::type |
Get the storage type of the forward_value functor. | |
| using | point2 = geo::point<float, 2> |
| using | point3 = geo::point<float, 3> |
| using | rotate2 = geo::rotate<2> |
| using | rotate3 = geo::rotate<3> |
| using | scale2 = geo::scale<2> |
| using | scale3 = geo::scale<3> |
| using | translate2 = geo::translate<float, 2> |
| using | translate3 = geo::translate<float, 3> |
| using | vector2 = geo::vector<float, 2> |
| using | vector3 = geo::vector<float, 3> |
| using | vector2i = geo::vector<int, 2> |
| using | vector3i = geo::vector<int, 3> |
| using | finterval = interval<float> |
| using | dinterval = interval<double> |
| using | jsonpath_node |
| using | tr = translate |
| template<typename T > | |
| using | observer_decay_t = observer_decay<T>::type |
| using | results1 = hi::results<double, 1> |
| using | results2 = hi::results<double, 2> |
| using | results3 = hi::results<double, 3> |
| using | sint64_t = safe_int<int64_t, on_overflow_t::Saturate> |
| using | sint32_t = safe_int<int32_t, on_overflow_t::Saturate> |
| using | sint16_t = safe_int<int16_t, on_overflow_t::Saturate> |
| using | sint8_t = safe_int<int8_t, on_overflow_t::Saturate> |
| using | suint64_t = safe_int<uint64_t, on_overflow_t::Saturate> |
| using | suint32_t = safe_int<uint32_t, on_overflow_t::Saturate> |
| using | suint16_t = safe_int<uint16_t, on_overflow_t::Saturate> |
| using | suint8_t = safe_int<uint8_t, on_overflow_t::Saturate> |
| using | aint64_t = safe_int<int64_t, on_overflow_t::Assert> |
| using | aint32_t = safe_int<int32_t, on_overflow_t::Assert> |
| using | aint16_t = safe_int<int16_t, on_overflow_t::Assert> |
| using | aint8_t = safe_int<int8_t, on_overflow_t::Assert> |
| using | auint64_t = safe_int<uint64_t, on_overflow_t::Assert> |
| using | auint32_t = safe_int<uint32_t, on_overflow_t::Assert> |
| using | auint16_t = safe_int<uint16_t, on_overflow_t::Assert> |
| using | auint8_t = safe_int<uint8_t, on_overflow_t::Assert> |
| using | tint64_t = safe_int<int64_t, on_overflow_t::Throw> |
| using | tint32_t = safe_int<int32_t, on_overflow_t::Throw> |
| using | tint16_t = safe_int<int16_t, on_overflow_t::Throw> |
| using | tint8_t = safe_int<int8_t, on_overflow_t::Throw> |
| using | tuint64_t = safe_int<uint64_t, on_overflow_t::Throw> |
| using | tuint32_t = safe_int<uint32_t, on_overflow_t::Throw> |
| using | tuint16_t = safe_int<uint16_t, on_overflow_t::Throw> |
| using | tuint8_t = safe_int<uint8_t, on_overflow_t::Throw> |
| using | xint64_t = safe_int<int64_t, on_overflow_t::Axiom> |
| using | xint32_t = safe_int<int32_t, on_overflow_t::Axiom> |
| using | xint16_t = safe_int<int16_t, on_overflow_t::Axiom> |
| using | xint8_t = safe_int<int8_t, on_overflow_t::Axiom> |
| using | xuint64_t = safe_int<uint64_t, on_overflow_t::Axiom> |
| using | xuint32_t = safe_int<uint32_t, on_overflow_t::Axiom> |
| using | xuint16_t = safe_int<uint16_t, on_overflow_t::Axiom> |
| using | xuint8_t = safe_int<uint8_t, on_overflow_t::Axiom> |
| using | _sip_hash24 = sip_hash<2, 4> |
| using | longreg_t = int64_t |
| Signed integer twice the size of a standard CPU register. | |
| using | ulongreg_t = uint64_t |
| Unsigned integer twice the size of a standard CPU register. | |
| using | token_vector = std::vector<hi::token_t> |
| using | token_iterator = typename token_vector::iterator |
| using | gstring = std::basic_string<grapheme> |
| using | gstring_view = std::basic_string_view<grapheme> |
| using | unicode_break_vector = std::vector<unicode_break_opportunity> |
| using | unicode_break_iterator = unicode_break_vector::iterator |
| using | unicode_break_const_iterator = unicode_break_vector::const_iterator |
| using | intreg_t = int32_t |
| using | uintreg_t = uint32_t |
| using | int128_t = __int128 |
| Signed 128 bit integer. | |
| using | uint128_t = unsigned __int128 |
| Unsigned 128 bit integer. | |
| using | os_handle = void * |
| using | file_handle = os_handle |
| using | big_uint64_buf_t = endian_buf_t<uint64_t, std::endian::big, 1> |
| using | big_uint32_buf_t = endian_buf_t<uint32_t, std::endian::big, 1> |
| using | big_uint16_buf_t = endian_buf_t<uint16_t, std::endian::big, 1> |
| using | big_int64_buf_t = endian_buf_t<int64_t, std::endian::big, 1> |
| using | big_int32_buf_t = endian_buf_t<int32_t, std::endian::big, 1> |
| using | big_int16_buf_t = endian_buf_t<int16_t, std::endian::big, 1> |
| using | little_uint64_buf_t = endian_buf_t<uint64_t, std::endian::little, 1> |
| using | little_uint32_buf_t = endian_buf_t<uint32_t, std::endian::little, 1> |
| using | little_uint16_buf_t = endian_buf_t<uint16_t, std::endian::little, 1> |
| using | little_int64_buf_t = endian_buf_t<int64_t, std::endian::little, 1> |
| using | little_int32_buf_t = endian_buf_t<int32_t, std::endian::little, 1> |
| using | little_int16_buf_t = endian_buf_t<int16_t, std::endian::little, 1> |
| using | native_uint64_buf_t = endian_buf_t<uint64_t, std::endian::native, 1> |
| using | native_uint32_buf_t = endian_buf_t<uint32_t, std::endian::native, 1> |
| using | native_uint16_buf_t = endian_buf_t<uint16_t, std::endian::native, 1> |
| using | native_int64_buf_t = endian_buf_t<int64_t, std::endian::native, 1> |
| using | native_int32_buf_t = endian_buf_t<int32_t, std::endian::native, 1> |
| using | native_int16_buf_t = endian_buf_t<int16_t, std::endian::native, 1> |
| using | big_uint64_buf_at = endian_buf_t<uint64_t, std::endian::big> |
| using | big_uint32_buf_at = endian_buf_t<uint32_t, std::endian::big> |
| using | big_uint16_buf_at = endian_buf_t<uint16_t, std::endian::big> |
| using | big_int64_buf_at = endian_buf_t<int64_t, std::endian::big> |
| using | big_int32_buf_at = endian_buf_t<int32_t, std::endian::big> |
| using | big_int16_buf_at = endian_buf_t<int16_t, std::endian::big> |
| using | little_uint64_buf_at = endian_buf_t<uint64_t, std::endian::little> |
| using | little_uint32_buf_at = endian_buf_t<uint32_t, std::endian::little> |
| using | little_uint16_buf_at = endian_buf_t<uint16_t, std::endian::little> |
| using | little_int64_buf_at = endian_buf_t<int64_t, std::endian::little> |
| using | little_int32_buf_at = endian_buf_t<int32_t, std::endian::little> |
| using | little_int16_buf_at = endian_buf_t<int16_t, std::endian::little> |
| using | native_uint64_buf_at = endian_buf_t<uint64_t, std::endian::native> |
| using | native_uint32_buf_at = endian_buf_t<uint32_t, std::endian::native> |
| using | native_uint16_buf_at = endian_buf_t<uint16_t, std::endian::native> |
| using | native_int64_buf_at = endian_buf_t<int64_t, std::endian::native> |
| using | native_int32_buf_at = endian_buf_t<int32_t, std::endian::native> |
| using | native_int16_buf_at = endian_buf_t<int16_t, std::endian::native> |
| template<typename T > | |
| using | enum_metadata_name_t = enum_metadata_name<T>::type |
| template<typename T > | |
| using | make_string_t = typename make_string<T>::type |
| type-trait to convert a character to a string type. | |
| template<typename T > | |
| using | make_string_view_t = typename make_string_view<T>::type |
| type-trait to convert a character to a string_view type. | |
| template<typename T , typename U > | |
| using | make_promote_t = typename make_promote<T,U>::type |
| template<typename T > | |
| using | make_intmax_t = typename make_intmax<T>::type |
| template<std::size_t N> | |
| using | make_intxx_t = typename make_intxx<N>::type |
| template<std::size_t N> | |
| using | make_uintxx_t = typename make_uintxx<N>::type |
| template<std::size_t N> | |
| using | make_floatxx_t = typename make_floatxx<N>::type |
| template<std::integral L, std::integral... R> | |
| using | common_integer_t = common_integer<L, R...>::type |
| Get an integer type that will fit all values from all template parameters. | |
| template<typename T > | |
| using | remove_cvptr_t = remove_cvptr<T>::type |
| template<typename To , typename From > | |
| using | copy_cv_t = typename copy_cv<To,From>::type |
| Type-trait to copy const volatile qualifiers from one type to another. | |
| template<typename First , typename Second > | |
| using | use_first_t = use_first<First,Second> |
| template<typename Context > | |
| using | forward_copy_or_ref_t = forward_copy_or_ref<Context>::type |
| template<typename T > | |
| using | variant_decay_t = variant_decay<T>::type |
Enumerations | |
| enum class | audio_block_state { normal , silent , corrupt } |
| enum class | audio_device_state { uninitialized , active , disabled , not_present , unplugged } |
| enum class | audio_direction : unsigned char { none = 0b00 , input = 0b01 , output = 0b10 , bidirectional = 0b11 } |
| enum class | speaker_mapping : uint32_t { none = 0 , front_left = 0x0'0001 , front_right = 0x0'0002 , front_center = 0x0'0004 , low_frequency = 0x0'0008 , back_left = 0x0'0010 , back_right = 0x0'0020 , front_left_of_center = 0x0'0040 , front_right_of_center = 0x0'0080 , back_center = 0x0'0100 , side_left = 0x0'0200 , side_right = 0x0'0400 , top_center = 0x0'0800 , top_front_left = 0x0'1000 , top_front_center = 0x0'2000 , top_front_right = 0x0'4000 , top_back_left = 0x0'8000 , top_back_center = 0x1'0000 , top_back_right = 0x2'0000 , mono_1_0 = front_center , stereo_2_0 = front_left | front_right , stereo_2_1 = stereo_2_0 | low_frequency , stereo_3_0 = stereo_2_0 | front_center , stereo_3_1 = stereo_3_0 | low_frequency , quad_4_0 = stereo_2_0 | back_left | back_right , quad_side_4_0 = stereo_2_0 | side_left | side_right , hexagonal_6_0 = quad_4_0 | front_center | back_center , hexagonal_6_1 = hexagonal_6_0 | low_frequency , octagonal_8_0 = hexagonal_6_0 | side_left | side_right , surround_3_0 = stereo_2_0 | back_center , surround_4_0 = surround_3_0 | front_center , surround_4_1 = surround_4_0 | low_frequency , surround_5_0 = quad_4_0 | front_center , surround_5_1 = surround_5_0 | low_frequency , surround_7_0 = surround_5_0 | side_left | side_right , surround_7_1 = surround_7_0 | low_frequency , surround_9_0 = surround_7_0 | top_front_left | top_front_right , surround_9_1 = surround_9_0 | low_frequency , surround_11_0 = surround_9_0 | front_left_of_center | front_right_of_center , surround_11_1 = surround_11_0 | low_frequency , surround_side_5_0 = quad_side_4_0 | front_center , surround_side_5_1 = surround_side_5_0 | low_frequency , surround_side_6_0 = surround_side_5_0 | back_center , surround_side_6_1 = surround_side_6_0 | low_frequency , surround_side_7_0 = surround_side_5_0 | front_left_of_center | front_right_of_center , surround_side_7_1 = surround_side_7_0 | low_frequency , surround_wide_6_0 = surround_4_0 | front_left_of_center | front_right_of_center , surround_wide_6_1 = surround_wide_6_0 | low_frequency , surround_wide_7_0 = surround_5_0 | front_left_of_center | front_right_of_center , surround_wide_7_1 = surround_wide_7_0 | low_frequency , surround_atmos_5_1_4 = surround_5_1 | top_front_left | top_front_right | top_back_left | top_back_right , surround_atmos_7_1_4 = surround_7_1 | top_front_left | top_front_right | top_back_left | top_back_right } |
| enum class | surround_mode : uint64_t { none = 0 , mono_1_0 = uint64_t{1} << 0 , stereo_2_0 = uint64_t{1} << 1 , stereo_2_1 = uint64_t{1} << 2 , stereo_3_0 = uint64_t{1} << 3 , stereo_3_1 = uint64_t{1} << 4 , quad_4_0 = uint64_t{1} << 5 , quad_side_4_0 = uint64_t{1} << 6 , hexagonal_6_0 = uint64_t{1} << 7 , hexagonal_6_1 = uint64_t{1} << 8 , octagonal_8_0 = uint64_t{1} << 9 , surround_3_0 = uint64_t{1} << 10 , surround_4_0 = uint64_t{1} << 11 , surround_4_1 = uint64_t{1} << 12 , surround_5_0 = uint64_t{1} << 13 , surround_5_1 = uint64_t{1} << 14 , surround_7_0 = uint64_t{1} << 15 , surround_7_1 = uint64_t{1} << 16 , surround_9_0 = uint64_t{1} << 17 , surround_9_1 = uint64_t{1} << 18 , surround_11_0 = uint64_t{1} << 19 , surround_11_1 = uint64_t{1} << 20 , surround_side_5_0 = uint64_t{1} << 21 , surround_side_5_1 = uint64_t{1} << 22 , surround_side_6_0 = uint64_t{1} << 23 , surround_side_6_1 = uint64_t{1} << 24 , surround_side_7_0 = uint64_t{1} << 25 , surround_side_7_1 = uint64_t{1} << 26 , surround_wide_6_0 = uint64_t{1} << 27 , surround_wide_6_1 = uint64_t{1} << 28 , surround_wide_7_0 = uint64_t{1} << 29 , surround_wide_7_1 = uint64_t{1} << 30 , surround_atmos_5_1_4 = uint64_t{1} << 31 , surround_atmos_7_1_4 = uint64_t{1} << 32 } |
| enum class | callback_flags { synchronous = 0x00 , local = 0x01 , main = 0x02 , timer = 0x03 , once = 0x1'00 } |
| enum class | dialog_type { ok , yes_no , yes_no_cancel } |
| enum class | elusive_icon : char32_t { AddressBook = 0xf102 , AddressBookAlt = 0xf101 , Adjust = 0xf104 , AdjustAlt = 0xf103 , Adult = 0xf105 , AlignCenter = 0xf106 , AlignJustify = 0xf107 , AlignLeft = 0xf108 , AlignRight = 0xf109 , ArrowDown = 0xf10a , ArrowLeft = 0xf10b , ArrowRight = 0xf10c , ArrowUp = 0xf10d , Asl = 0xf10e , Asterisk = 0xf10f , Backward = 0xf110 , BanCircle = 0xf111 , Barcode = 0xf112 , Behance = 0xf113 , Bell = 0xf114 , Blind = 0xf115 , Blogger = 0xf116 , Bold = 0xf117 , Book = 0xf118 , Bookmark = 0xf11a , BookmarkEmpty = 0xf119 , Braille = 0xf11b , Briefcase = 0xf11c , Broom = 0xf11d , Brush = 0xf11e , Bulb = 0xf11f , Bullhorn = 0xf120 , Calendar = 0xf122 , CalendarSign = 0xf121 , Camera = 0xf123 , Car = 0xf124 , CaretDown = 0xf125 , CaretLeft = 0xf126 , CaretRight = 0xf127 , CaretUp = 0xf128 , Cc = 0xf129 , Certificate = 0xf12a , Check = 0xf12c , CheckEmpty = 0xf12b , ChevronDown = 0xf12d , ChevronLeft = 0xf12e , ChevronRight = 0xf12f , ChevronUp = 0xf130 , Child = 0xf131 , CircleArrowDown = 0xf132 , CircleArrowLeft = 0xf133 , CircleArrowRight = 0xf134 , CircleArrowUp = 0xf135 , Cloud = 0xf137 , CloudAlt = 0xf136 , Cog = 0xf139 , CogAlt = 0xf138 , Cogs = 0xf13a , Comment = 0xf13c , CommentAlt = 0xf13b , Compass = 0xf13e , CompassAlt = 0xf13d , CreditCard = 0xf13f , Css = 0xf140 , Dashboard = 0xf141 , Delicious = 0xf142 , Deviantart = 0xf143 , Digg = 0xf144 , Download = 0xf146 , DownloadAlt = 0xf145 , Dribbble = 0xf147 , Edit = 0xf148 , Eject = 0xf149 , Envelope = 0xf14b , EnvelopeAlt = 0xf14a , Error = 0xf14d , ErrorAlt = 0xf14c , Eur = 0xf14e , ExclamationSign = 0xf14f , EyeClose = 0xf150 , EyeOpen = 0xf151 , Facebook = 0xf152 , FacetimeVideo = 0xf153 , FastBackward = 0xf154 , FastForward = 0xf155 , Female = 0xf156 , File = 0xf15c , FileAlt = 0xf157 , FileEdit = 0xf159 , FileEditAlt = 0xf158 , FileNew = 0xf15b , FileNewAlt = 0xf15a , Film = 0xf15d , Filter = 0xf15e , Fire = 0xf15f , Flag = 0xf161 , FlagAlt = 0xf160 , Flickr = 0xf162 , Folder = 0xf166 , FolderClose = 0xf163 , FolderOpen = 0xf164 , FolderSign = 0xf165 , font = 0xf167 , fontsize = 0xf168 , Fork = 0xf169 , Forward = 0xf16b , ForwardAlt = 0xf16a , Foursquare = 0xf16c , Friendfeed = 0xf16e , FriendfeedRect = 0xf16d , Fullscreen = 0xf16f , Gbp = 0xf170 , Gift = 0xf171 , Github = 0xf173 , GithubText = 0xf172 , Glass = 0xf174 , Glasses = 0xf175 , Globe = 0xf177 , GlobeAlt = 0xf176 , Googleplus = 0xf178 , Graph = 0xf17a , GraphAlt = 0xf179 , Group = 0xf17c , GroupAlt = 0xf17b , Guidedog = 0xf17d , HandDown = 0xf17e , HandLeft = 0xf17f , HandRight = 0xf180 , HandUp = 0xf181 , Hdd = 0xf182 , Headphones = 0xf183 , HearingImpaired = 0xf184 , Heart = 0xf187 , HeartAlt = 0xf185 , HeartEmpty = 0xf186 , Home = 0xf189 , HomeAlt = 0xf188 , Hourglass = 0xf18a , Idea = 0xf18c , IdeaAlt = 0xf18b , Inbox = 0xf18f , InboxAlt = 0xf18d , InboxBox = 0xf18e , IndentLeft = 0xf190 , IndentRight = 0xf191 , InfoCircle = 0xf192 , Instagram = 0xf193 , IphoneHome = 0xf194 , Italic = 0xf195 , Key = 0xf196 , Laptop = 0xf198 , LaptopAlt = 0xf197 , Lastfm = 0xf199 , Leaf = 0xf19a , Lines = 0xf19b , Link = 0xf19c , Linkedin = 0xf19d , List = 0xf19f , ListAlt = 0xf19e , Livejournal = 0xf1a0 , Lock = 0xf1a2 , LockAlt = 0xf1a1 , Magic = 0xf1a3 , Magnet = 0xf1a4 , Male = 0xf1a5 , MapMarker = 0xf1a7 , MapMarkerAlt = 0xf1a6 , Mic = 0xf1a9 , MicAlt = 0xf1a8 , Minus = 0xf1ab , MinusSign = 0xf1aa , Move = 0xf1ac , Music = 0xf1ad , Myspace = 0xf1ae , Network = 0xf1af , Off = 0xf1b0 , Ok = 0xf1b3 , OkCircle = 0xf1b1 , OkSign = 0xf1b2 , Opensource = 0xf1b4 , PaperClip = 0xf1b6 , PaperClipAlt = 0xf1b5 , Path = 0xf1b7 , Pause = 0xf1b9 , PauseAlt = 0xf1b8 , Pencil = 0xf1bb , PencilAlt = 0xf1ba , Person = 0xf1bc , Phone = 0xf1be , PhoneAlt = 0xf1bd , Photo = 0xf1c0 , PhotoAlt = 0xf1bf , Picasa = 0xf1c1 , Picture = 0xf1c2 , Pinterest = 0xf1c3 , Plane = 0xf1c4 , Play = 0xf1c7 , PlayAlt = 0xf1c5 , PlayCircle = 0xf1c6 , Plurk = 0xf1c9 , PlurkAlt = 0xf1c8 , Plus = 0xf1cb , PlusSign = 0xf1ca , Podcast = 0xf1cc , Print = 0xf1cd , Puzzle = 0xf1ce , Qrcode = 0xf1cf , Question = 0xf1d1 , QuestionSign = 0xf1d0 , QuoteAlt = 0xf1d2 , QuoteRight = 0xf1d4 , QuoteRightAlt = 0xf1d3 , Quotes = 0xf1d5 , Random = 0xf1d6 , Record = 0xf1d7 , Reddit = 0xf1d8 , Redux = 0xf1d9 , Refresh = 0xf1da , Remove = 0xf1dd , RemoveCircle = 0xf1db , RemoveSign = 0xf1dc , Repeat = 0xf1df , RepeatAlt = 0xf1de , ResizeFull = 0xf1e0 , ResizeHorizontal = 0xf1e1 , ResizeSmall = 0xf1e2 , ResizeVertical = 0xf1e3 , ReturnKey = 0xf1e4 , Retweet = 0xf1e5 , ReverseAlt = 0xf1e6 , Road = 0xf1e7 , Rss = 0xf1e8 , Scissors = 0xf1e9 , Screen = 0xf1eb , ScreenAlt = 0xf1ea , Screenshot = 0xf1ec , Search = 0xf1ee , SearchAlt = 0xf1ed , Share = 0xf1f0 , ShareAlt = 0xf1ef , ShoppingCart = 0xf1f2 , ShoppingCartSign = 0xf1f1 , Signal = 0xf1f3 , Skype = 0xf1f4 , Slideshare = 0xf1f5 , Smiley = 0xf1f7 , SmileyAlt = 0xf1f6 , Soundcloud = 0xf1f8 , Speaker = 0xf1f9 , Spotify = 0xf1fa , Stackoverflow = 0xf1fb , Star = 0xf1fe , StarAlt = 0xf1fc , StarEmpty = 0xf1fd , StepBackward = 0xf1ff , StepForward = 0xf200 , Stop = 0xf202 , StopAlt = 0xf201 , Stumbleupon = 0xf203 , Tag = 0xf204 , Tags = 0xf205 , Tasks = 0xf206 , TextHeight = 0xf207 , TextWidth = 0xf208 , Th = 0xf20b , ThLarge = 0xf209 , ThList = 0xf20a , ThumbsDown = 0xf20c , ThumbsUp = 0xf20d , Time = 0xf20f , TimeAlt = 0xf20e , Tint = 0xf210 , Torso = 0xf211 , Trash = 0xf213 , TrashAlt = 0xf212 , Tumblr = 0xf214 , Twitter = 0xf215 , UniversalAccess = 0xf216 , Unlock = 0xf218 , UnlockAlt = 0xf217 , Upload = 0xf219 , Usd = 0xf21a , User = 0xf21b , Viadeo = 0xf21c , Video = 0xf21f , VideoAlt = 0xf21d , VideoChat = 0xf21e , ViewMode = 0xf220 , Vimeo = 0xf221 , Vkontakte = 0xf222 , VolumeDown = 0xf223 , VolumeOff = 0xf224 , VolumeUp = 0xf225 , W3c = 0xf226 , WarningSign = 0xf227 , Website = 0xf229 , WebsiteAlt = 0xf228 , Wheelchair = 0xf22a , Wordpress = 0xf22b , Wrench = 0xf22d , WrenchAlt = 0xf22c , Youtube = 0xf22e , ZoomIn = 0xf22f , ZoomOut = 0xf230 } |
| enum class | font_weight { thin , extra_light , light , regular , medium , semi_bold , bold , extra_bold , black , extra_black } |
| enum class | hikogui_icon : char32_t { MinimizeWindow = 0xf301 , MaximizeWindowMS = 0xf302 , RestoreWindowMS = 0xf303 , CloseWindow = 0xf304 , RestoreWindowMacOS = 0xf305 , MaximizeWindowMacOS = 0xf306 , none_0_0 = 0xf3c0 , mono_1_0 = 0xf3c1 , mono_1_1 = 0xf3c2 , stereo_2_0 = 0xf3c3 , stereo_2_1 = 0xf3c4 , stereo_3_0 = 0xf3c5 , stereo_3_1 = 0xf3c6 , surround_3_0 = 0xf3c7 , surround_3_1 = 0xf3c8 , surround_4_0 = 0xf3c9 , surround_4_1 = 0xf3ca , surround_5_0 = 0xf3cb , surround_5_1 = 0xf3cc , surround_7_0 = 0xf3cd , surround_7_1 = 0xf3ce , surround_9_0 = 0xf3cf , surround_9_1 = 0xf3d0 , surround_11_0 = 0xf3d1 , surround_11_1 = 0xf3d2 , surround_side_5_0 = 0xf3d3 , surround_side_5_1 = 0xf3d4 , surround_side_6_0 = 0xf3d5 , surround_side_6_1 = 0xf3d6 , surround_side_7_0 = 0xf3d7 , surround_side_7_1 = 0xf3d8 , surround_wide_6_0 = 0xf3d9 , surround_wide_6_1 = 0xf3da , surround_wide_7_0 = 0xf3db , surround_wide_7_1 = 0xf3dc , quad_4_0 = 0xf3dd , quad_4_1 = 0xf3de , quad_side_4_0 = 0xf3df , quad_side_4_1 = 0xf3e0 , hexagonal_6_0 = 0xf3e1 , hexagonal_6_1 = 0xf3e2 , octagonal_8_0 = 0xf3e3 , octagonal_8_1 = 0xf3e4 , surround_atmos_5_1_4 = 0xf3e5 , surround_atmos_7_1_4 = 0xf3e6 } |
| enum class | vertical_alignment : uint8_t { vertical_alignment::none = 0 , vertical_alignment::top = 1 , vertical_alignment::middle = 2 , vertical_alignment::bottom = 3 } |
| Vertical alignment. More... | |
| enum class | horizontal_alignment : uint8_t { horizontal_alignment::none = 0 , horizontal_alignment::flush = 1 , horizontal_alignment::left = 2 , horizontal_alignment::center = 3 , horizontal_alignment::justified = 4 , horizontal_alignment::right = 5 } |
| Horizontal alignment. More... | |
| enum class | gfx_surface_state { no_window , has_window , has_device , has_swapchain } |
| enum class | gfx_surface_loss { none , swapchain_lost , device_lost , window_lost } |
| enum class | subpixel_orientation { unknown , horizontal_rgb , horizontal_bgr , vertical_rgb , vertical_bgr } |
| The orientation of the RGB sub-pixels of and LCD/LED panel. More... | |
| enum class | gui_window_size { normal , minimized , maximized , fullscreen } |
| enum class | hitbox_type : uint8_t { outside , _default , button , scroll_bar , text_edit , move_area , bottom_resize_border , top_resize_border , left_resize_border , right_resize_border , bottom_left_resize_corner , bottom_right_resize_corner , top_left_resize_corner , top_right_resize_corner , application_icon } |
| enum class | keyboard_focus_direction { here , backward , forward } |
| The keyboard focus group used for finding a widget that will accept a particular focus. More... | |
| enum class | keyboard_focus_group { normal = 1 , menu = 2 , toolbar = 4 , mouse = 8 , all = normal | menu | toolbar | mouse } |
| The keyboard focus group used for finding a widget that will accept a particular focus. More... | |
| enum class | keyboard_modifiers : uint8_t { none = 0x00 , shift = 0x01 , control = 0x02 , alt = 0x04 , super = 0x08 } |
| Key modification keys pressed at the same time as another key. More... | |
| enum class | keyboard_state : uint8_t { idle = 0x00 , caps_lock = 0x01 , scroll_lock = 0x02 , num_lock = 0x04 } |
| enum class | keyboard_virtual_key : uint8_t { nul = 0 , A = 'a' , B = 'b' , C = 'c' , D = 'd' , E = 'e' , F = 'f' , G = 'g' , H = 'h' , I = 'i' , J = 'j' , K = 'k' , L = 'l' , M = 'm' , N = 'n' , O = 'o' , P = 'p' , Q = 'q' , R = 'r' , S = 's' , T = 't' , U = 'u' , V = 'v' , W = 'w' , X = 'x' , Y = 'y' , Z = 'z' , _0 = '0' , _1 = '1' , _2 = '2' , _3 = '3' , _4 = '4' , _5 = '5' , _6 = '6' , _7 = '7' , _8 = '8' , _9 = '9' , plus = '+' , minus = '-' , star = '*' , slash = '/' , percent = '' , tilde = '~' , ampersant = '&' , pipe = '|' , caret = '^' , less = '<' , equal = '=' , greater = '>' , open_parentheses = '(' , close_parentheses = ')' , open_bracket = '[' , close_bracket = ']' , open_brace = '{' , close_brace = '}' , period = '.' , comma = ',' , colon = ':' , semi_colon = ';' , bang = '!' , question = '?' , space = ' ' , tab = '\t' , enter = '\n' , backtick = '`' , quote = '\'' , double_quote = '"' , at = '@' , hash = '#' , dollar = '$' , underscore = '_' , backslash = '\\' , F1 = 'A' , F2 = 'B' , F3 = 'C' , F4 = 'D' , F5 = 'E' , F6 = 'F' , F7 = 'G' , F8 = 'H' , F9 = 'I' , F10 = 'J' , F11 = 'K' , F12 = 'L' , F13 = 'M' , F14 = 'N' , F15 = 'O' , F16 = 'P' , F17 = 'Q' , F18 = 'R' , F19 = 'S' , F20 = 'T' , F21 = 'U' , F22 = 'V' , F23 = 'W' , F24 = 'X' , home = 0x02 , end = 0x03 , backspace = 0x08 , clear = 0x0c , insert = 0x1a , escape = 0x1b , _delete = 0x7f , left = 0x80 , right , up , down , page_up , page_down , menu , print_screen , pause_break , sysmenu , media_next_track , media_prev_track , media_stop , media_play_pause , volume_mute , volume_up , volume_down , browser_back , browser_forward , browser_home , browser_refresh , browser_stop , browser_search , browser_favorites } |
| enum class | mouse_cursor { None , Default , TextEdit , Button } |
| enum class | network_event : uint16_t { none = 0 , read = 0x0001 , write = 0x0002 , close = 0x0004 , connect = 0x0008 , accept = 0x0010 , out_of_band = 0x0020 , qos = 0x0040 , group_qos = 0x0080 , address_list_change = 0x0100 , routing_interface_changed = 0x0200 } |
| enum class | network_error : uint8_t { success = 0 , af_not_supported , connection_refused , network_unreachable , no_buffers , timeout , network_down , connection_reset , connection_aborted } |
| enum class | graphic_character_t { none = 0x00 , exclamation_mark = 0x01 , double_quote = 0x02 , hash = 0x03 , dollar = 0x04 , percent = 0x05 , ampersand = 0x06 , single_quote = 0x07 , open_paren = 0x08 , close_paren = 0x09 , star = 0x0a , plus = 0x0b , comma = 0x0c , minus = 0x0d , dot = 0x0e , slash = 0x0f , colon = 0x10 , semi_colon = 0x11 , less_than = 0x12 , equal = 0x13 , greater_than = 0x14 , question_mark = 0x15 , open_bracket = 0x16 , back_slash = 0x17 , close_bracket = 0x18 , carret = 0x19 , underscore = 0x1a , back_quote = 0x1b , open_brace = 0x1c , pipe = 0x1d , close_brace = 0x1e , tilde = 0x1f } |
| enum class | on_overflow_t { Throw , Saturate , Assert , Axiom } |
| enum class | text_decoration { None , Underline , WavyUnderline , StrikeThrough } |
| Describes how a grapheme should be underlined when rendering the text. More... | |
| enum class | text_phrasing : uint8_t { text_phrasing::regular = 0 , text_phrasing::emphesis = 1 , text_phrasing::strong = 2 , text_phrasing::code = 3 , text_phrasing::abbreviation = 4 , text_phrasing::quote = 5 , text_phrasing::keyboard = 6 , text_phrasing::highlight = 7 , text_phrasing::math = 8 , text_phrasing::example = 9 , text_phrasing::unarticulated = 10 , text_phrasing::title = 11 , text_phrasing::success = 12 , text_phrasing::warning = 13 , text_phrasing::error = 14 } |
| Text phrasing. More... | |
| enum class | text_phrasing_mask : uint16_t { regular = 1 << to_underlying(text_phrasing::regular) , emphesis = 1 << to_underlying(text_phrasing::emphesis) , strong = 1 << to_underlying(text_phrasing::strong) , code = 1 << to_underlying(text_phrasing::code) , abbreviation = 1 << to_underlying(text_phrasing::abbreviation) , quote = 1 << to_underlying(text_phrasing::quote) , keyboard = 1 << to_underlying(text_phrasing::keyboard) , highlight = 1 << to_underlying(text_phrasing::highlight) , math = 1 << to_underlying(text_phrasing::math) , example = 1 << to_underlying(text_phrasing::example) , unarticulated = 1 << to_underlying(text_phrasing::unarticulated) , title = 1 << to_underlying(text_phrasing::title) , success = 1 << to_underlying(text_phrasing::success) , warning = 1 << to_underlying(text_phrasing::warning) , error = 1 << to_underlying(text_phrasing::error) , all } |
| enum class | theme_mode { light , dark } |
| enum class | tokenizer_name_t : uint8_t { NotAssigned , ErrorInvalidCharacter , ErrorEOTInBlockComment , ErrorEOTInString , ErrorLFInString , Name , StringLiteral , IntegerLiteral , DateLiteral , TimeLiteral , FloatLiteral , Operator , End } |
| enum class | unicode_break_opportunity : uint8_t { no , yes , mandatory , unassigned } |
| enum class | operating_system { windows = HI_OS_WINDOWS , macos = HI_OS_MACOS , mobile = HI_OS_MOBILE , other = HI_OS_OTHER , current = HI_OPERATING_SYSTEM } |
| enum class | compiler { msvc = HI_CC_MSVC , gcc = HI_CC_GCC , clang = HI_CC_CLANG , current = HI_COMPILER } |
| enum class | processor { x86 = HI_CPU_X86 , x64 = HI_CPU_X64 , arm = HI_CPU_ARM , arm64 = HI_CPU_ARM64 , unknown = HI_CPU_UNKNOWN , current = HI_PROCESSOR } |
Functions | |
| template<typename T , typename U , typename F > | |
| T | transform (const U &input, F operation) |
| Transform an input container to the output container. | |
| template<typename T , std::size_t N, typename F > | |
| constexpr std::array< T, N > | generate_array (F operation) |
| Generate data in an array. | |
| template<typename It > | |
| constexpr It | unordered_remove (It first, It last, It element) |
| Remove element from a container. | |
| template<typename It , typename UnaryPredicate > | |
| constexpr It | rfind_if (It const first, It const last, UnaryPredicate predicate) |
| template<typename It , typename UnaryPredicate > | |
| constexpr It | rfind_if_not (It const first, It const last, UnaryPredicate predicate) |
| template<typename It , typename T > | |
| constexpr It | rfind (It const first, It const last, T const &value) |
| template<typename It , typename ItAny > | |
| constexpr It | find_any (It data_first, It data_last, ItAny value_first, ItAny value_last) noexcept |
| Find the first occurrence of an value in a data. | |
| template<typename ConstIt , typename It , typename UnaryPredicate > | |
| constexpr It | find_cluster (ConstIt last, It start, UnaryPredicate predicate) |
| Find the start of the current cluster. | |
| template<typename ConstIt , typename It , typename UnaryPredicate > | |
| constexpr It | rfind_cluster (ConstIt first, It start, UnaryPredicate predicate) |
| Find the start of the current cluster. | |
| template<typename ConstIt , typename It , typename UnaryPredicate > | |
| constexpr std::pair< It, It > | bifind_cluster (ConstIt first, ConstIt last, It start, UnaryPredicate predicate) |
| Find the begin and end of the current cluster. | |
| template<typename InputIt1 , typename InputIt2 , typename BinaryPredicate > | |
| std::pair< InputIt1, InputIt2 > | rmismatch (InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2, BinaryPredicate predicate) noexcept |
| template<typename InputIt1 , typename InputIt2 > | |
| std::pair< InputIt1, InputIt2 > | rmismatch (InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2) noexcept |
| template<typename T > | |
| T | smoothstep (T x) noexcept |
| template<typename T > | |
| T | inverse_smoothstep (T x) |
| auto | shuffle_by_index (auto first, auto last, auto indices_first, auto indices_last, auto index_op) noexcept |
| Shuffle a container based on a list of indices. | |
| auto | shuffle_by_index (auto first, auto last, auto indices_first, auto indices_last) noexcept |
| Shuffle a container based on a list of indices. | |
| template<typename DataIt , typename ValueIt > | |
| DataIt | front_strip (DataIt data_first, DataIt data_last, ValueIt value_first, ValueIt value_last) noexcept |
| Strip data from the front side. | |
| template<typename DataIt , typename ValueIt > | |
| DataIt | back_strip (DataIt data_first, DataIt data_last, ValueIt value_first, ValueIt value_last) noexcept |
| Strip data from the back side. | |
| template<std::endian Endian = std::endian::native, typename T , std::unsigned_integral Key> | |
| constexpr T * | fast_lower_bound (std::span< T > table, Key const &key) noexcept |
| The fast lower bound algorithm. | |
| template<std::endian Endian = std::endian::native, typename T , std::unsigned_integral Key> | |
| constexpr T * | fast_binary_search_eq (std::span< T > table, Key const &key) noexcept |
| Search for the item that is equal to the key. | |
| template<std::size_t I, typename FirstArg , typename... Args> | |
| constexpr decltype(auto) | get_argument_impl (FirstArg &&first_arg, Args &&...args) noexcept |
| template<std::size_t I, typename... Args> | |
| constexpr decltype(auto) | get_argument (Args &&...args) noexcept |
| template<typename... Args> | |
| constexpr decltype(auto) | get_last_argument (Args &&...args) noexcept |
| template<typename T > | |
| T | fetch_max (std::atomic< T > &lhs, T rhs, std::memory_order order) noexcept |
| Lock-free fetch-then-max operation on an atomic. | |
| template<typename T > | |
| T | fetch_min (std::atomic< T > &lhs, T rhs, std::memory_order order) noexcept |
| Lock-free fetch-then-min operation on an atomic. | |
| constexpr std::string_view | to_string (audio_device_state const &rhs) noexcept |
| constexpr audio_direction | operator& (audio_direction const &lhs, audio_direction const &rhs) noexcept |
| constexpr audio_direction | operator| (audio_direction const &lhs, audio_direction const &rhs) noexcept |
| constexpr bool | to_bool (audio_direction const &rhs) noexcept |
| bool | win32_use_extensible (audio_stream_format x) noexcept |
| WAVEFORMATEXTENSIBLE | audio_stream_format_to_win32 (audio_stream_format stream_format, bool extensible) noexcept |
| audio_stream_format | audio_stream_format_from_win32 (WAVEFORMATEXTENSIBLE const &wave_format) |
| audio_stream_format | audio_stream_format_from_win32 (WAVEFORMATEX const &wave_format) |
| constexpr bool | to_bool (speaker_mapping const &rhs) noexcept |
| constexpr unsigned int | popcount (speaker_mapping const &rhs) noexcept |
| constexpr speaker_mapping | operator| (speaker_mapping const &lhs, speaker_mapping const &rhs) noexcept |
| constexpr speaker_mapping | operator& (speaker_mapping const &lhs, speaker_mapping const &rhs) noexcept |
| constexpr speaker_mapping & | operator|= (speaker_mapping &lhs, speaker_mapping const &rhs) noexcept |
| constexpr speaker_mapping & | operator&= (speaker_mapping &lhs, speaker_mapping const &rhs) noexcept |
| std::string | to_string (speaker_mapping rhs) noexcept |
| speaker_mapping | speaker_mapping_from_win32 (DWORD from) |
| DWORD | speaker_mapping_to_win32 (speaker_mapping from) noexcept |
| constexpr surround_mode | operator& (surround_mode const &lhs, surround_mode const &rhs) noexcept |
| constexpr surround_mode | operator| (surround_mode const &lhs, surround_mode const &rhs) noexcept |
| constexpr surround_mode & | operator|= (surround_mode &lhs, surround_mode const &rhs) noexcept |
| constexpr bool | to_bool (surround_mode const &rhs) noexcept |
| constexpr speaker_mapping | to_speaker_mapping (surround_mode const &rhs) noexcept |
| generator< surround_mode > | enumerate_surround_modes () noexcept |
| constexpr std::string_view | to_string_view_one (surround_mode const &mode) noexcept |
| constexpr std::string | to_string (surround_mode const &mask) noexcept |
| template<typename T > | |
| constexpr std::array< T, 2 > | bezierToPolynomial (T P1, T P2) noexcept |
| template<typename T > | |
| constexpr std::array< T, 3 > | bezierToPolynomial (T P1, T C, T P2) noexcept |
| template<typename T > | |
| constexpr std::array< T, 4 > | bezierToPolynomial (T P1, T C1, T C2, T P2) noexcept |
| template<int D> | |
| constexpr geo::point< float, D > | bezierPointAt (geo::point< float, D > P1, geo::point< float, D > P2, float t) noexcept |
| template<int D> | |
| constexpr geo::point< float, D > | bezierPointAt (geo::point< float, D > P1, geo::point< float, D > C, geo::point< float, D > P2, float t) noexcept |
| template<int D> | |
| constexpr geo::point< float, D > | bezierPointAt (geo::point< float, D > P1, geo::point< float, D > C1, geo::point< float, D > C2, geo::point< float, D > P2, float t) noexcept |
| template<int D> | |
| constexpr geo::vector< float, D > | bezierTangentAt (geo::point< float, D > P1, geo::point< float, D > P2, float t) noexcept |
| template<int D> | |
| constexpr geo::vector< float, D > | bezierTangentAt (geo::point< float, D > P1, geo::point< float, D > C, geo::point< float, D > P2, float t) noexcept |
| template<int D> | |
| constexpr geo::vector< float, D > | bezierTangentAt (geo::point< float, D > P1, geo::point< float, D > C1, geo::point< float, D > C2, geo::point< float, D > P2, float t) noexcept |
| constexpr results< float, 1 > | bezierFindT (float P1, float P2, float x) noexcept |
| constexpr results< float, 2 > | bezierFindT (float P1, float C, float P2, float x) noexcept |
| hi_force_inline constexpr results< float, 3 > | bezierFindT (float P1, float C1, float C2, float P2, float x) noexcept |
| hi_force_inline constexpr results< float, 1 > | bezierFindTForNormalsIntersectingPoint (point2 P1, point2 P2, point2 P) noexcept |
| Find t on the line P1->P2 which is closest to P. | |
| hi_force_inline constexpr results< float, 3 > | bezierFindTForNormalsIntersectingPoint (point2 P1, point2 C, point2 P2, point2 P) noexcept |
| Find t on the curve P1->C->P2 which is closest to P. | |
| constexpr results< float, 1 > | bezierFindX (point2 P1, point2 P2, float y) noexcept |
| constexpr results< float, 2 > | bezierFindX (point2 P1, point2 C, point2 P2, float y) noexcept |
| constexpr results< float, 3 > | bezierFindX (point2 P1, point2 C1, point2 C2, point2 P2, float y) noexcept |
| float | bezierFlatness (point2 P1, point2 P2) noexcept |
| float | bezierFlatness (point2 P1, point2 C, point2 P2) noexcept |
| float | bezierFlatness (point2 P1, point2 C1, point2 C2, point2 P2) noexcept |
| std::pair< point2, point2 > | parallelLine (point2 P1, point2 P2, float distance) noexcept |
| std::optional< point2 > | getIntersectionPoint (point2 A1, point2 A2, point2 B1, point2 B2) noexcept |
| std::optional< point2 > | getExtrapolatedIntersectionPoint (point2 A1, point2 A2, point2 B1, point2 B2) noexcept |
| std::vector< bezier_curve > | makeContourFromPoints (std::vector< bezier_point >::const_iterator first, std::vector< bezier_point >::const_iterator last) noexcept |
| std::vector< bezier_curve > | makeInverseContour (std::vector< bezier_curve > const &contour) noexcept |
| std::vector< bezier_curve > | makeParallelContour (std::vector< bezier_curve > const &contour, float offset, hi::line_join_style line_join_style, float tolerance) noexcept |
| void | fill (pixmap_span< uint8_t > image, std::vector< bezier_curve > const &curves) noexcept |
| Fill a linear gray scale image by filling a curve with anti-aliasing. | |
| void | fill (pixmap_span< sdf_r8 > image, std::vector< bezier_curve > const &curves) noexcept |
| Fill a signed distance field image from the given contour. | |
| bool | get_bit (std::span< std::byte const > buffer, std::size_t &index) noexcept |
| Read a single bit from span of bytes Bits are ordered LSB first. | |
| std::size_t | get_bits (std::span< std::byte const > buffer, std::size_t &index, std::size_t length) noexcept |
| Read a bits from of span of bytes Bits are ordered LSB first. | |
| bstring | to_bstring (std::string_view src) noexcept |
| bstring | to_bstring (std::integral auto... args) noexcept |
| constexpr callback_flags | operator| (callback_flags const &lhs, callback_flags const &rhs) noexcept |
| constexpr bool | is_once (callback_flags const &rhs) noexcept |
| constexpr bool | is_synchronous (callback_flags const &rhs) noexcept |
| constexpr bool | is_local (callback_flags const &rhs) noexcept |
| constexpr bool | is_main (callback_flags const &rhs) noexcept |
| constexpr bool | is_timer (callback_flags const &rhs) noexcept |
| datum | decode_BON8 (std::span< const std::byte > buffer) |
| Decode BON8 message from buffer. | |
| datum | decode_BON8 (bstring const &buffer) |
| Decode BON8 message from buffer. | |
| datum | decode_BON8 (bstring_view buffer) |
| Decode BON8 message from buffer. | |
| bstring | encode_BON8 (datum const &value) |
| Encode a value to a BON8 message. | |
| bstring | gzip_decompress (std::span< std::byte const > bytes, std::size_t max_size=0x01000000) |
| bstring | gzip_decompress (std::filesystem::path const &path, std::size_t max_size=0x01000000) |
| bstring | inflate (std::span< std::byte const > bytes, std::size_t &offset, std::size_t max_size=0x0100 '0000) |
Inflate compressed data using the deflate algorithm bytes should include at least 32 bit of trailer, for the overflow check which will slightly overrun the actual compressed data for performance reasons. | |
| datum | parse_JSON (std::string_view text) |
| Parse a JSON string. | |
| datum | parse_JSON (std::string const &text) |
| datum | parse_JSON (char const *text) |
| datum | parse_JSON (std::filesystem::path const &path) |
| Parse a JSON string. | |
| std::string | format_JSON (datum const &root) |
| Dump an datum object into a JSON string. | |
| bstring | zlib_decompress (std::span< std::byte const > bytes, std::size_t max_size=0x01000000) |
| bstring | zlib_decompress (std::filesystem::path const &path, std::size_t max_size=0x01000000) |
| template<typename It > | |
| generator< cmdln_option > | command_line_parser (It first, It last, std::string_view options_with_arguments) |
| A POSIX command line parser. | |
| void | console_start () noexcept |
| Initialize the console. | |
| void | console_output (std::string_view text, std::ostream &output=std::cout) noexcept |
| Output text to the console. | |
| detail::counter * | get_global_counter_if (std::string const &name) |
| std::pair< int, char ** > | crt_start (int argc, char **argv, void *instance, int show_cmd) |
| Start the hikogui system. | |
| std::pair< int, char ** > | crt_start (void *instance, int show_cmd) |
| Start the hikogui system. | |
| std::pair< int, char ** > | crt_start (int argc, char **argv) |
| Start the hikogui system. | |
| int | crt_finish (int argc, char **argv, int exit_code) |
| Finish the hikogui system. | |
| bool | dialog (dialog_type type, std::string_view title, std::string_view text) |
| Display a modal dialog. | |
| void | dialog_ok (std::string_view title, std::string_view message) noexcept |
| bool | dialog_yes_no (std::string_view title, std::string_view message) noexcept |
| bool | dialog_yes_no_cancel (std::string_view title, std::string_view message) |
| font & | register_font_file (std::filesystem::path const &path) |
| Register a font. | |
| void | register_font_directory (std::filesystem::path const &path) |
| template<typename Range > | |
| void | register_font_directories (Range &&range) noexcept |
| font_family_id | find_font_family (std::string const &family_name) noexcept |
| Find font family id. | |
| font const & | find_font (font_family_id family_id, font_variant variant=font_variant{}) noexcept |
| Find a font closest to the variant. | |
| font const * | find_font (std::string const &family_name, font_variant variant=font_variant{}) noexcept |
| Find a font closest to the variant. | |
| auto | find_glyph (font const &font, grapheme grapheme) noexcept |
| Find a glyph using the given code-point. | |
| auto | find_glyph (font const &font, char32_t code_point) noexcept |
| Find a glyph using the given code-point. | |
| auto | find_glyph (elusive_icon rhs) noexcept |
| auto | find_glyph (hikogui_icon rhs) noexcept |
| constexpr font_weight & | operator++ (font_weight &rhs) noexcept |
| constexpr font_weight & | operator-- (font_weight &rhs) noexcept |
| constexpr font_weight | font_weight_from_int (numeric_integral auto rhs) |
| Convert a font weight value between 50 and 1000 to a font weight. | |
| constexpr font_weight | font_weight_from_string (std::string_view rhs) |
| constexpr std::string_view | to_string_view (font_weight const &x) noexcept |
| constexpr std::string | to_string (font_weight const &x) noexcept |
| constexpr char | to_char (font_weight const &x) noexcept |
| constexpr int | to_int (font_weight const &x) noexcept |
| std::ostream & | operator<< (std::ostream &lhs, font_weight const &rhs) |
| constexpr bool | almost_equal (font_weight const &lhs, font_weight const &rhs) noexcept |
| generator< font_weight > | alternatives (font_weight start) noexcept |
| Generate alternatives for the font_weight. | |
| constexpr int | format_count (std::string_view fmt) noexcept |
| Count arguments of a std::format format string. | |
| std::unique_ptr< formula_node > | parse_formula (formula_parse_context &context) |
| Parse an formula. | |
| std::unique_ptr< formula_node > | parse_formula (std::string_view::const_iterator first, std::string_view::const_iterator last) |
| Parse an formula. | |
| std::unique_ptr< formula_node > | parse_formula (std::string_view text) |
| Parse an formula. | |
| std::string_view::const_iterator | find_end_of_formula (std::string_view::const_iterator first, std::string_view::const_iterator last, std::string_view terminating_string) |
| Find the end of an formula. | |
| template<typename Proto , typename Func > | |
| auto | make_function (Func &&func) |
| template<typename Proto , typename Func > | |
| auto | make_async_function (Func &&func) |
| constexpr std::optional< float > | make_guideline (vertical_alignment alignment, float bottom, float top, float guideline_width) |
| Create a guideline between two points. | |
| constexpr std::optional< float > | make_guideline (horizontal_alignment alignment, float left, float right, float guideline_width=0.0f) |
| Create a guideline between two points. | |
| constexpr horizontal_alignment | mirror (horizontal_alignment const &rhs) noexcept |
| Mirror the horizontal alignment. | |
| constexpr horizontal_alignment | mirror (horizontal_alignment const &rhs, bool left_to_right) noexcept |
| Mirror the horizontal alignment. | |
| constexpr horizontal_alignment | resolve (horizontal_alignment const &rhs, bool left_to_right) noexcept |
| constexpr horizontal_alignment | resolve_mirror (horizontal_alignment const &rhs, bool left_to_right) noexcept |
| constexpr alignment | operator| (horizontal_alignment lhs, vertical_alignment rhs) noexcept |
| Combine vertical and horizontal alignment. | |
| constexpr alignment | operator| (vertical_alignment lhs, horizontal_alignment rhs) noexcept |
| Combine vertical and horizontal alignment. | |
| constexpr translate3 | translate_z (float z) noexcept |
| constexpr extent2 | sub_pixel_size (subpixel_orientation orientation) noexcept |
| Get the size of a sub-pixel based on the sub-pixel orientation. | |
| void | composit (pixmap_span< sfloat_rgba16 > dst, hi::color color, graphic_path const &mask) noexcept |
| Composit color onto the destination image where the mask is solid. | |
| void | composit (pixmap_span< sfloat_rgba16 > dst, graphic_path const &mask) noexcept |
| Composit color onto the destination image where the mask is solid. | |
| void | fill (pixmap_span< sdf_r8 > dst, graphic_path const &path) noexcept |
| Fill a signed distance field image from the given path. | |
| constexpr keyboard_focus_group | operator& (keyboard_focus_group const &lhs, keyboard_focus_group const &rhs) noexcept |
| constexpr keyboard_focus_group | operator| (keyboard_focus_group const &lhs, keyboard_focus_group const &rhs) noexcept |
| constexpr bool | to_bool (keyboard_focus_group group) noexcept |
| constexpr keyboard_modifiers | operator| (keyboard_modifiers const &lhs, keyboard_modifiers const &rhs) noexcept |
| constexpr keyboard_modifiers | operator& (keyboard_modifiers const &lhs, keyboard_modifiers const &rhs) noexcept |
| constexpr keyboard_modifiers & | operator|= (keyboard_modifiers &lhs, keyboard_modifiers const &rhs) noexcept |
| constexpr bool | to_bool (keyboard_modifiers const &rhs) noexcept |
| bool | operator>= (keyboard_modifiers const &lhs, keyboard_modifiers const &rhs)=delete |
| keyboard_modifiers | to_keyboard_modifiers (std::string_view s) |
| Parse a key-binding modifier name. | |
| std::string | to_string (keyboard_modifiers modifiers) |
| std::ostream & | operator<< (std::ostream &lhs, keyboard_modifiers const &rhs) |
| constexpr keyboard_state | operator| (keyboard_state const &lhs, keyboard_state const &rhs) noexcept |
| constexpr keyboard_state | operator& (keyboard_state const &lhs, keyboard_state const &rhs) noexcept |
| constexpr keyboard_state & | operator|= (keyboard_state &lhs, keyboard_state const &rhs) noexcept |
| bool | operator>= (keyboard_state const &lhs, keyboard_state const &rhs)=delete |
| constexpr bool | to_bool (keyboard_state const &rhs) noexcept |
| constexpr keyboard_virtual_key | to_keyboard_virtual_key (std::string_view s) |
| keyboard_virtual_key | to_keyboard_virtual_key (int key_code, bool extended, keyboard_modifiers modifiers) |
| constexpr std::string_view | to_string_view (keyboard_virtual_key key) noexcept |
| std::string | to_string (keyboard_virtual_key key) noexcept |
| std::ostream & | operator<< (std::ostream &lhs, keyboard_virtual_key const &rhs) |
| std::vector< language_tag > | variants (std::vector< language_tag > languages) |
| Add variants to the list of languages. | |
| constexpr void | fill (pixmap_span< sfloat_rgba16 > image, f32x4 color) noexcept |
| void | composit (pixmap_span< sfloat_rgba16 > under, pixmap_span< sfloat_rgba16 const > over) noexcept |
| void | composit (pixmap_span< sfloat_rgba16 > under, color over, pixmap_span< uint8_t const > mask) noexcept |
| constexpr int8_t | make_snorm_r8_value (float rhs) noexcept |
| template<typename T , typename U > | |
| bool | convert_overflow (T x, U *r) |
| template<typename T > | |
| bool | add_overflow (T lhs, T rhs, T *r) |
| template<typename T > | |
| bool | sub_overflow (T lhs, T rhs, T *r) |
| template<typename T > | |
| bool | mul_overflow (T lhs, T rhs, T *r) noexcept |
| Multiply with overflow detection. | |
| jsonpath_node | parse_jsonpath_slicing_operator (auto &it, auto it_end, ssize_t first) |
| jsonpath_node | parse_jsonpath_integer_indexing_operator (auto &it, auto it_end, ssize_t first) |
| jsonpath_node | parse_jsonpath_name_indexing_operator (auto &it, auto it_end, std::string first) |
| jsonpath_node | parse_jsonpath_indexing_operator (auto &it, auto it_end) |
| jsonpath_node | parse_jsonpath_child_operator (auto &it, auto it_end) |
| po_translations | parse_po (std::filesystem::path const &path) |
| std::tuple< bool, std::size_t, bool, std::size_t > | _parse_spreadsheet_address (std::string_view &address) |
| std::pair< std::size_t, std::size_t > | parse_spreadsheet_address (std::string_view address, std::size_t start_column_nr=0, std::size_t start_row_nr=0) |
| Parse a spreadsheet address. | |
| std::tuple< std::size_t, std::size_t, std::size_t, std::size_t > | parse_spreadsheet_range (std::string_view address, std::size_t start_column_nr=0, std::size_t start_row_nr=0) |
| Parse a spreadsheet range. | |
| std::byte * | locked_memory_allocator_allocate (std::size_t n) noexcept |
| void | locked_memory_allocator_deallocate (std::byte *p, std::size_t n) noexcept |
| constexpr network_event | operator| (network_event const &lhs, network_event const &rhs) noexcept |
| constexpr network_event | operator& (network_event const &lhs, network_event const &rhs) noexcept |
| constexpr network_event & | operator|= (network_event &lhs, network_event const &rhs) noexcept |
| constexpr bool | to_bool (network_event const &rhs) noexcept |
| constexpr size_t | bit (network_event const &rhs) noexcept |
| Get the bit index of the single bit of the network_event mask. | |
| constexpr network_event | network_event_from_win32 (long rhs) noexcept |
| constexpr network_error | network_error_from_win32 (int rhs) noexcept |
| constexpr network_events | network_events_from_win32 (WSANETWORKEVENTS const &rhs) noexcept |
| constexpr graphic_character_t | char_to_graphic_character (char x) noexcept |
| constexpr uint64_t | operator_to_int (char const *s) noexcept |
| std::pair< uint8_t, bool > | binary_operator_precedence (char const *str) noexcept |
| Binary Operator Precedence according to C++. | |
| std::pair< uint8_t, bool > | operator_precedence (char const *str, bool binary) noexcept |
| Operator Precedence according to C++. | |
| template<size_t BitsPerInteger, std::unsigned_integral... Args> | |
| packed_int_array (Args...) -> packed_int_array< BitsPerInteger, sizeof...(Args)> | |
| template<typename T > | |
| bool | check_alignment (void const *ptr) noexcept |
| template<typename T , typename Byte > | |
| auto | make_placement_ptr (std::span< Byte > bytes, std::size_t &offset) |
| template<typename T , typename Byte > | |
| auto | make_placement_ptr (std::span< Byte > bytes, std::size_t &&offset=0) |
| template<typename T , byte_like Byte> | |
| auto | make_placement_array (std::span< Byte > bytes, std::size_t &offset, std::size_t n) |
| template<typename T , byte_like Byte> | |
| auto | make_placement_array (std::span< Byte > bytes, std::size_t &&offset, std::size_t n) |
| template<typename T , byte_like Byte> | |
| auto | make_placement_array (std::span< Byte > bytes, std::size_t &offset) |
| template<typename T , byte_like Byte> | |
| auto | make_placement_array (std::span< Byte > bytes, std::size_t &&offset=0) |
| template<typename T , std::size_t N> | |
| std::ostream & | operator<< (std::ostream &os, results< T, N > const &r) |
| template<typename T > | |
| hi_force_inline constexpr results< T, 1 > | solvePolynomial (T const &a, T const &b) noexcept |
| template<typename T > | |
| hi_force_inline constexpr results< T, 2 > | solvePolynomial (T const &a, T const &b, T const &c) noexcept |
| template<typename T > | |
| hi_force_inline results< T, 3 > | solveDepressedCubicTrig (T const &p, T const &q) noexcept |
| template<typename T > | |
| hi_force_inline results< T, 3 > | solveDepressedCubicCardano (T const &p, T const &q, T const &D) noexcept |
| template<typename T > | |
| hi_force_inline results< T, 3 > | solveDepressedCubic (T const &p, T const &q) noexcept |
| template<typename T > | |
| hi_force_inline constexpr results< T, 3 > | solvePolynomial (T const &a, T const &b, T const &c, T const &d) noexcept |
| void | generate_seed (void *ptr, size_t size) |
| Load a random seed. | |
| template<typename Value , typename Range > | |
| constexpr Value | get_first (Range &&range) |
| template<typename Range > | |
| constexpr Range::value_type | get_first (Range &&range) |
| template<typename Value , typename Range > | |
| constexpr std::vector< Value > | make_vector (Range &&range) |
| Make a vector from a view. | |
| template<typename Range > | |
| constexpr std::vector< typename Range::value_type > | make_vector (Range &&range) |
| uint32_t | registry_read_current_user_dword (std::string_view path, std::string_view name) |
| Read a DWORD registry value from the HKEY_CURRENT_USER. | |
| std::vector< std::string > | registry_read_current_user_multi_string (std::string_view path, std::string_view name) |
| Read a list of strings from the registry value from the HKEY_CURRENT_USER. | |
| constexpr on_overflow_t | operator| (on_overflow_t lhs, on_overflow_t rhs) noexcept |
| template<typename T , on_overflow_t OnOverflow> | |
| T | safe_handle_overflow (T value, bool overflow, bool is_positive) noexcept(OnOverflow !=on_overflow_t::Throw) |
| template<typename T , on_overflow_t OnOverflow, typename U > | |
| T | safe_convert (U const &rhs) noexcept(OnOverflow !=on_overflow_t::Throw) |
| template<on_overflow_t OnOverflow, typename T , typename U > | |
| make_promote_t< T, U > | safe_add (T const &lhs, U const &rhs) noexcept(OnOverflow !=on_overflow_t::Throw) |
| template<on_overflow_t OnOverflow, typename T , typename U > | |
| make_promote_t< T, U > | safe_sub (T const &lhs, U const &rhs) noexcept(OnOverflow !=on_overflow_t::Throw) |
| template<on_overflow_t OnOverflow, typename T , typename U > | |
| make_promote_t< T, U > | safe_mul (T const &lhs, U const &rhs) noexcept(OnOverflow !=on_overflow_t::Throw) |
| void | secure_clear (void *ptr, size_t size) noexcept |
| Securely clear memory. | |
| void | secure_clear (trivially_copyable auto &object) noexcept |
| Securely clear an object. | |
| template<typename It > | |
| void | secure_clear (It first, It last) noexcept |
| Securely clear a set of objects. | |
| void | secure_destroy_at (auto *p) |
| template<typename It > | |
| void | secure_destroy (It first, It last) |
| Securely destroy objects. | |
| template<typename It , typename OutIt > | |
| void | secure_uninitialized_move (It first, It last, OutIt d_first) |
| Securely move objects. | |
| __m128 | _mm_cvtph_ps_sse2 (__m128i value) noexcept |
| __m128i | _mm_cvtps_ph_sse4_1 (__m128 value) noexcept |
| std::unique_ptr< skeleton_node > | parse_skeleton (skeleton_parse_context &context) |
| std::unique_ptr< skeleton_node > | parse_skeleton (std::filesystem::path path, std::string_view::const_iterator first, std::string_view::const_iterator last) |
| std::unique_ptr< skeleton_node > | parse_skeleton (std::filesystem::path path, std::string_view text) |
| std::unique_ptr< skeleton_node > | parse_skeleton (std::filesystem::path path) |
| constexpr bool | is_upper (char c) noexcept |
| constexpr bool | is_lower (char c) noexcept |
| constexpr bool | is_alpha (char c) noexcept |
| constexpr bool | is_digit (char c) noexcept |
| constexpr bool | is_alpha_num (char c) noexcept |
| constexpr bool | is_line_feed (char c) noexcept |
| constexpr bool | is_white_space (char c) noexcept |
| constexpr bool | is_number_first (char c) noexcept |
| constexpr bool | is_name_first (char c) noexcept |
| constexpr bool | is_name_next (char c) noexcept |
| constexpr bool | is_quote (char c) noexcept |
| constexpr bool | is_open_bracket (char c) noexcept |
| constexpr bool | is_close_bracket (char c) noexcept |
| constexpr bool | is_operator (char c) noexcept |
| constexpr bool | is_digit (std::string_view str) noexcept |
| constexpr bool | is_alpha (std::string_view str) noexcept |
| constexpr char | to_lower (char c) noexcept |
| constexpr char | to_upper (char c) noexcept |
| std::string | to_lower (std::string_view str) noexcept |
| std::string | to_upper (std::string_view str) noexcept |
| constexpr std::string | to_title (std::string_view rhs) noexcept |
| Convert the current string to using title case. | |
| template<size_t N> | |
| constexpr fixed_string< N > | to_title (fixed_string< N > const &rhs) noexcept |
| Convert the current string to using title case. | |
| std::string | normalize_lf (std::string_view str) noexcept |
| Normalize string to use only line-feeds. | |
| std::string | make_identifier (std::string_view str) noexcept |
| Encode a string to be usable as an id. | |
| std::string | make_slug (std::string_view str) noexcept |
| Create a slug from a string. | |
| std::string | make_title (std::string_view str) noexcept |
| Create a title from a string. | |
|
template<typename T , size_t N> requires (sizeof(T) == 1 and (N == 4 or N == 5)) | |
| constexpr uint32_t | fourcc (T const (&txt)[N]) noexcept |
| constexpr uint32_t | fourcc_from_cstr (char const *txt) noexcept |
| std::string | fourcc_to_string (uint32_t x) noexcept |
| constexpr std::size_t | string_size (sizeable auto str) noexcept |
| constexpr std::size_t | string_size (auto str) noexcept |
| template<typename FirstNeedle , typename... Needles> | |
| std::pair< std::size_t, std::size_t > | string_find_any (std::string_view haystack, std::size_t pos, FirstNeedle const &first_needle, Needles const &...needles) noexcept |
| template<typename StringType , typename... Needles> | |
| std::vector< StringType > | _split (std::string_view haystack, Needles const &...needles) noexcept |
| template<typename... Needles> | |
| std::vector< std::string > | split (std::string_view haystack, Needles const &...needles) noexcept |
| std::vector< std::string > | split (std::string_view haystack) noexcept |
| template<typename... Needles> | |
| std::vector< std::string_view > | split_view (std::string_view haystack, Needles const &...needles) noexcept |
| std::vector< std::string_view > | split_view (std::string_view haystack) noexcept |
| template<typename CharT > | |
| std::basic_string< CharT > | join (std::vector< std::basic_string< CharT > > const &list, std::basic_string_view< CharT > const joiner={}) noexcept |
| template<typename CharT > | |
| std::basic_string< CharT > | join (std::vector< std::basic_string< CharT > > const &list, std::basic_string< CharT > const &joiner) noexcept |
| template<typename CharT > | |
| std::basic_string< CharT > | join (std::vector< std::basic_string< CharT > > const &list, CharT const *joiner) noexcept |
| std::string | join (std::vector< std::string_view > const &list, std::string_view const joiner={}) noexcept |
| template<typename It > | |
| std::pair< int, int > | count_line_and_columns (It begin, It const end) |
| template<typename T , std::size_t N> | |
| constexpr auto | to_array_without_last (T(&rhs)[N]) noexcept |
| Create an std::array from a one dimensional array, without the last element. | |
| template<typename T , std::size_t N> | |
| constexpr auto | to_array_without_last (T(&&rhs)[N]) noexcept |
| Create an std::array from a one dimensional array, without the last element. | |
| std::string | lstrip (std::string_view haystack, std::string needle=" \t\r\n\f") noexcept |
| std::string | rstrip (std::string_view haystack, std::string needle=" \t\r\n\f") noexcept |
| std::string | strip (std::string_view haystack, std::string needle=" \t\r\n\f") noexcept |
| std::vector< std::string > | ZZWSTR_to_string (wchar_t *first, wchar_t *last, ssize_t nr_strings=-1) |
| Convert a win32 zero terminated list of zero terminated strings. | |
| char * | make_cstr (char const *c_str, std::size_t size=-1) noexcept |
| Copy a std::string to new memory. | |
| char * | make_cstr (std::string const &s) noexcept |
| Copy a std::string to new memory. | |
| template<fixed_string Head, fixed_string... Tail> | |
| std::string | tag_at_index_impl (std::size_t index) noexcept |
| template<fixed_string... Tags> | |
| std::string | tag_at_index (std::size_t index) noexcept |
| template<fixed_string Head, fixed_string... Tail> | |
| std::size_t | index_of_tag_impl (std::string tag, std::size_t index) noexcept |
| template<fixed_string... Tags> | |
| std::size_t | index_of_tag (std::string tag) noexcept |
| template<fixed_string Needle, fixed_string Head, fixed_string... Tail> | |
| constexpr std::size_t | index_of_tag_impl (std::size_t index) noexcept |
| template<fixed_string Needle, fixed_string... Haystack> | |
| constexpr std::size_t | index_of_tag () noexcept |
| template<fixed_string Needle, fixed_string... Haystack> | |
| constexpr bool | has_tag () noexcept |
| template<fixed_string... Haystack> | |
| bool | has_tag (std::string needle) noexcept |
| std::string_view | to_string (text_decoration const &rhs) noexcept |
| std::ostream & | operator<< (std::ostream &lhs, text_decoration const &rhs) |
| constexpr std::optional< text_phrasing > | to_text_phrasing (char c) |
| constexpr text_phrasing_mask | operator& (text_phrasing_mask const &lhs, text_phrasing_mask const &rhs) noexcept |
| constexpr text_phrasing_mask | operator| (text_phrasing_mask const &lhs, text_phrasing_mask const &rhs) noexcept |
| constexpr text_phrasing_mask | to_text_phrasing_mask (text_phrasing const &rhs) noexcept |
| constexpr text_phrasing_mask | to_text_phrasing_mask (std::string const &str) |
| constexpr bool | all (text_phrasing_mask const &rhs) noexcept |
| constexpr bool | to_bool (text_phrasing_mask const &rhs) noexcept |
| constexpr bool | matches (text_phrasing_mask const &lhs, text_phrasing const &rhs) noexcept |
| Check if the text-phrasing is included in the text-phrasing-mask. | |
| std::string_view | to_string (theme_mode rhs) noexcept |
| std::ostream & | operator<< (std::ostream &lhs, theme_mode rhs) |
| std::string | format_engineering (std::chrono::nanoseconds duration) |
| constexpr char const * | to_const_string (tokenizer_name_t name) noexcept |
| std::ostream & | operator<< (std::ostream &lhs, tokenizer_name_t rhs) |
| std::vector< token_t > | parseTokens (std::string_view text) noexcept |
| std::vector< token_t > | parseTokens (std::string_view::const_iterator first, std::string_view::const_iterator last) noexcept |
| constexpr gstring | to_gstring (std::u32string_view rhs, unicode_normalize_config config=unicode_normalize_config::NFC()) noexcept |
| Convert a UTF-32 string-view to a grapheme-string. | |
| constexpr gstring | to_gstring (std::string_view rhs, unicode_normalize_config config=unicode_normalize_config::NFC()) noexcept |
| Convert a UTF-8 string to a grapheme-string. | |
| constexpr gstring | to_gstring (std::string const &rhs, unicode_normalize_config config=unicode_normalize_config::NFC()) noexcept |
| Convert a UTF-8 string to a grapheme-string. | |
| constexpr std::string | to_string (gstring_view rhs) noexcept |
| Convert a grapheme string to UTF-8. | |
| constexpr std::wstring | to_wstring (gstring_view rhs) noexcept |
| Convert a grapheme string to UTF-8. | |
| constexpr std::u32string | to_u32string (gstring_view rhs) noexcept |
| Convert a grapheme string to UTF-8. | |
| constexpr std::string | to_string (gstring const &rhs) noexcept |
| Convert a grapheme string to UTF-8. | |
| template<typename It , typename GetCodePoint , typename SetCodePoint , typename SetTextDirection > | |
| constexpr std::pair< It, std::vector< unicode_bidi_class > > | unicode_bidi (It first, It last, GetCodePoint get_code_point, SetCodePoint set_code_point, SetTextDirection set_text_direction, unicode_bidi_context const &context={}) |
| Reorder a given range of characters based on the unicode_bidi algorithm. | |
| template<typename It , typename GetCodePoint > | |
| constexpr unicode_bidi_class | unicode_bidi_direction (It first, It last, GetCodePoint get_code_point, unicode_bidi_context const &context={}) |
| Get the unicode bidi direction for the first paragraph and context. | |
| template<typename It , typename EndIt , typename CodePointFunc > | |
| constexpr It | unicode_bidi_control_filter (It first, EndIt last, CodePointFunc const &code_point_func) |
| Removes control characters which will not survive the bidi-algorithm. | |
| std::ostream & | operator<< (std::ostream &lhs, unicode_break_opportunity const &rhs) |
| template<typename It , typename ItEnd , typename CodePointFunc > | |
| unicode_break_vector | unicode_line_break (It first, ItEnd last, CodePointFunc const &code_point_func) noexcept |
| The unicode line break algorithm UAX #14. | |
| constexpr std::vector< size_t > | unicode_line_break (unicode_break_vector const &opportunities, std::vector< float > const &widths, float maximum_line_width) |
| Unicode break lines. | |
| constexpr std::u32string | unicode_decompose (std::u32string_view text, unicode_normalize_config config=unicode_normalize_config::NFD()) noexcept |
| Convert text to a Unicode decomposed normal form. | |
| constexpr std::u32string | unicode_normalize (std::u32string_view text, unicode_normalize_config config=unicode_normalize_config::NFC()) noexcept |
| Convert text to a Unicode composed normal form. | |
| template<typename It , typename ItEnd , typename CodePointFunc > | |
| unicode_break_vector | unicode_sentence_break (It first, ItEnd last, CodePointFunc const &code_point_func) noexcept |
| The unicode word break algorithm UAX#29. | |
| template<typename It , typename ItEnd , typename CodePointFunc > | |
| unicode_break_vector | unicode_word_break (It first, ItEnd last, CodePointFunc const &code_point_func) noexcept |
| The unicode word break algorithm UAX#29. | |
| void | wrap_lines (auto first, auto last, float max_width, auto get_width, auto get_code_point, auto set_code_point) noexcept |
| Wrap lines in text that are too wide. | |
| template<typename T > | |
| constexpr T | copy (T value) noexcept |
| template<typename Out , typename In > | |
| constexpr Out | up_cast (In *rhs) noexcept |
| Cast a pointer to a class to its base class or itself. | |
| template<typename Out > | |
| constexpr Out | up_cast (nullptr_t) noexcept |
| Cast a nullptr to a class. | |
| template<typename Out , typename In > | |
| constexpr Out | up_cast (In &rhs) noexcept |
| Cast a reference to a class to its base class or itself. | |
| template<typename Out , typename In > | |
| constexpr Out | down_cast (In *rhs) noexcept |
| Cast a pointer to a class to its derived class or itself. | |
| template<typename Out > requires std::is_pointer_v<Out> | |
| constexpr Out | down_cast (nullptr_t) noexcept |
| Cast a pointer to a class to its derived class or itself. | |
| template<typename Out , typename In > | |
| constexpr Out | down_cast (In &rhs) noexcept |
| Cast a reference to a class to its derived class or itself. | |
| template<typename Out , std::same_as< Out > In> | |
| constexpr Out | wide_cast (In const &rhs) noexcept |
| Cast to a type which can hold all values from the input type. | |
| template<std::floating_point Out, std::floating_point In> requires (not std::same_as<In, Out>) | |
| constexpr Out | wide_cast (In const &rhs) noexcept |
| Cast a floating point number to a floating point type that is wider. | |
| template<std::integral Out, std::integral In> requires (not std::same_as<In, Out>) | |
| constexpr Out | wide_cast (In rhs) noexcept |
| Cast a integer to an integer type which is wider. | |
| template<std::floating_point Out, std::integral In> | |
| constexpr Out | wide_cast (In rhs) noexcept |
| Cast a integer to an float type which is wider. | |
| template<std::integral Out, arithmetic In> | |
| constexpr Out | saturate_cast (In rhs) noexcept |
| Cast a numeric value to an integer saturating on overflow. | |
| template<typename Out , std::same_as< Out > In> | |
| constexpr bool | can_narrow_cast (In const &rhs) noexcept |
| Check if a value can be casted to a narrow type. | |
| template<std::floating_point Out, std::floating_point In> requires (not std::same_as<In, Out>) | |
| constexpr bool | can_narrow_cast (In const &rhs) noexcept |
| Check if a value can be casted to a narrow type. | |
| template<typename Out , std::same_as< Out > In> | |
| constexpr Out | narrow_cast (In const &rhs) noexcept |
| Cast numeric values without loss of precision. | |
| template<std::floating_point Out, std::floating_point In> requires (not std::same_as<In, Out>) | |
| constexpr Out | narrow_cast (In const &rhs) noexcept |
| Cast numeric values without loss of precision. | |
| template<std::integral Out, std::floating_point In> | |
| constexpr bool | can_round_cast (In rhs) noexcept |
| template<std::integral Out, std::floating_point In> | |
| constexpr bool | can_floor_cast (In rhs) noexcept |
| template<std::integral Out, std::floating_point In> | |
| constexpr bool | can_ceil_cast (In rhs) noexcept |
| template<std::integral Out, std::floating_point In> | |
| constexpr Out | round_cast (In rhs) noexcept |
| template<std::integral Out, std::floating_point In> | |
| constexpr Out | floor_cast (In rhs) noexcept |
| template<std::integral Out, std::floating_point In> | |
| constexpr Out | ceil_cast (In rhs) noexcept |
| template<std::integral In> | |
| constexpr std::make_unsigned_t< In > | to_unsigned (In rhs) noexcept |
| Cast an integral to an unsigned integral of the same size. | |
| template<std::integral In> | |
| constexpr std::make_signed_t< In > | to_signed (In rhs) noexcept |
| Cast an integral to an signed integral of the same size. | |
| template<std::integral Out, std::integral In> | |
| constexpr Out | truncate (In rhs) noexcept |
| Cast between integral types truncating or zero-extending the result. | |
| template<std::integral Out, std::integral In> | |
| constexpr Out | char_cast (In rhs) noexcept |
| Cast a character. | |
| template<std::integral Out> | |
| constexpr Out | char_cast (std::byte rhs) noexcept |
| Cast a character. | |
| template<std::unsigned_integral OutType, std::unsigned_integral InType> | |
| constexpr OutType | low_bit_cast (InType value) noexcept |
| Return the low half of the input value. | |
| template<std::unsigned_integral OutType, std::unsigned_integral InType> | |
| constexpr OutType | high_bit_cast (InType value) noexcept |
| Return the upper half of the input value. | |
| template<std::unsigned_integral OutType, std::unsigned_integral InType> | |
| constexpr OutType | merge_bit_cast (InType hi, InType lo) noexcept |
| Return the upper half of the input value. | |
| constexpr auto | to_underlying (scoped_enum auto rhs) noexcept |
|
template<typename T > requires (requires(T&& x) { static_cast<bool>(std::forward<T>(x)); }) | |
| constexpr bool | to_bool (T &&rhs) noexcept |
|
template<typename T > requires std::is_pointer_v<T> | |
| T | to_ptr (std::intptr_t value) noexcept |
| template<typename T > | |
| std::intptr_t | to_int (T *ptr) noexcept |
| template<typename T , byte_like Byte> | |
| copy_cv_t< T, Byte > & | implicit_cast (std::span< Byte > bytes) |
| template<typename T , byte_like Byte> | |
| std::span< copy_cv_t< T, Byte > > | implicit_cast (std::span< Byte > bytes, size_t n) |
| template<typename T , byte_like Byte> | |
| copy_cv_t< T, Byte > & | implicit_cast (size_t &offset, std::span< Byte > bytes) |
| template<typename T , byte_like Byte> | |
| std::span< copy_cv_t< T, Byte > > | implicit_cast (size_t &offset, std::span< Byte > bytes, size_t n) |
| template<std::unsigned_integral T> | |
| constexpr T | byte_swap (T x) noexcept |
| template<std::integral T> | |
| constexpr T | little_to_native (T x) |
| Convert an integral from little-to-native endian. | |
| template<std::integral T> | |
| constexpr T | big_to_native (T x) |
| Convert an integral from big-to-native endian. | |
| template<std::integral T> | |
| constexpr T | native_to_little (T x) |
| Convert an integral from native-to-little endian. | |
| template<std::integral T> | |
| constexpr T | native_to_big (T x) |
| Convert an integral from native-to-big endian. | |
| template<numeric T, std::endian Endian = std::endian::native> | |
| constexpr T | load (T const *src) noexcept |
| Load a numeric value from memory. | |
| template<numeric T, std::endian Endian = std::endian::native, byte_like B> | |
| constexpr T | load (B const *src) noexcept |
| Unaligned Load of a numeric value from a byte-like array. | |
| template<numeric T, std::endian Endian = std::endian::native> | |
| T | load (void const *src) noexcept |
| Unaligned Load of a numeric value from a byte-like array. | |
| template<numeric T> | |
| constexpr T | load_le (T const *src) noexcept |
| Load of a numeric value encoded in little-endian format. | |
| template<numeric T, byte_like B> | |
| constexpr T | load_le (B const *src) noexcept |
| Unaligned load of a numeric value encoded in little-endian format. | |
| template<numeric T> | |
| T | load_le (void const *src) noexcept |
| Unaligned load of a numeric value encoded in little-endian format. | |
| template<numeric T> | |
| constexpr T | load_be (T const *src) noexcept |
| Load of a numeric value encoded in big-endian format. | |
| template<numeric T, byte_like B> | |
| constexpr T | load_be (B const *src) noexcept |
| Unaligned load of a numeric value encoded in byte-endian format. | |
| template<numeric T> | |
| T | load_be (void const *src) noexcept |
| Unaligned load of a numeric value encoded in byte-endian format. | |
| template<unsigned int NumBits, byte_like B> | |
| constexpr auto | load_bits_be (B const *src, size_t bit_index) noexcept |
| Unaligned load bits from a big-endian buffer at a bit-offset. | |
| template<std::endian Endian = std::endian::native, numeric T, byte_like B> | |
| constexpr void | store (T value, B const *dst) noexcept |
| template<std::endian Endian = std::endian::native, numeric T> | |
| constexpr void | store (T value, void const *dst) noexcept |
| template<numeric T, byte_like B> | |
| constexpr void | store_le (T value, B const *dst) noexcept |
| template<numeric T> | |
| void | store_le (T value, void const *dst) noexcept |
| template<numeric T, byte_like B> | |
| constexpr void | store_be (T value, B const *dst) noexcept |
| template<numeric T> | |
| void | store_be (T value, void const *dst) noexcept |
| template<typename ValueType , typename NameType , typename... Rest> | |
| enum_metadata (ValueType const &, NameType const &, Rest const &...) -> enum_metadata< ValueType, enum_metadata_name_t< NameType >,(sizeof...(Rest)+2)/2 > | |
| template<fixed_string Tag> | |
| consteval uint32_t | fourcc () noexcept |
| template<fixed_string Tag> | |
| consteval uint32_t | operator""_fcc () |
| template<std::size_t N> | |
| fixed_string (char const (&str)[N]) -> fixed_string< N - 1 > | |
| template<std::invocable F> | |
| fixed_string (F const &f) -> fixed_string< std::ranges::size(F{}())> | |
| constexpr float | cvtsh_ss (uint16_t value) noexcept |
| constexpr uint16_t | cvtss_sh (float value) noexcept |
| constexpr std::size_t | hash_mix_two (std::size_t hash1, std::size_t hash2) noexcept |
| template<typename First , typename Second , typename... Args> | |
| constexpr std::size_t | hash_mix (First &&first, Second &&second, Args &&...args) noexcept |
| template<typename Iterator > | |
| auto | mean (Iterator first, Iterator last) |
| template<typename Iterator , typename T > | |
| auto | stddev (Iterator first, Iterator last, T mean) |
| template<typename T > | |
| constexpr bool | inplace_max (T &a, T const &b) noexcept |
| template<typename T > | |
| constexpr bool | inplace_min (T &a, T const &b) noexcept |
| template<typename T > | |
| constexpr void | inplace_clamp (T &a, T const &lo, T const &hi) noexcept |
| template<typename T > | |
| constexpr T | abs (T a) noexcept |
| template<std::floating_point T> | |
| constexpr bool | almost_equal (T a, T b) noexcept |
| template<std::floating_point T> | |
| constexpr T | to_radian (T degree) noexcept |
| Convert degree to radian. | |
| template<std::unsigned_integral T> | |
| constexpr T | floor (T value, T alignment) noexcept |
| The greatest multiple of alignment less than or equal to value. | |
| template<std::unsigned_integral T> | |
| constexpr T | ceil (T value, T alignment) noexcept |
| The smallest multiple of alignment greater than or equal to value. | |
| template<std::floating_point T> | |
| constexpr bool | isnan (T value) noexcept |
| constexpr uint64_t | pow10 (unsigned int x) noexcept |
| template<std::unsigned_integral T> | |
| constexpr unsigned int | decimal_width (T x) |
| bool | equal_ptr (auto *p1, auto *p2) noexcept |
| template<typename T , typename U > | |
| void | memswap (T &dst, U &src) |
| template<typename InputIt , typename T > | |
| T * | placement_copy (InputIt src, T *dst) |
| Copy an object to another memory locations. | |
| template<typename InputIt , typename T > | |
| void | placement_copy (InputIt src_first, InputIt src_last, T *dst_first) |
| Copy objects into a memory location. | |
| template<typename T > | |
| T * | placement_move (T *src, T *dst) |
| Move an object between two memory locations. | |
| template<typename T > | |
| void | placement_move_within_array (T *src_first, T *src_last, T *dst_first) |
| Move an objects between two memory locations. | |
| template<typename T > | |
| void | placement_move (T *src, T *src_last, T *dst) |
| Move an objects between two memory locations. | |
| template<typename It , typename... Args> | |
| void | construct (It first, It last, Args const &...args) |
| Construct a set of objects. | |
| template<typename T > | |
| constexpr bool | is_aligned (T *p) |
| Check if a pointer is properly aligned for the object it is pointing at. | |
| template<typename T > | |
| constexpr T * | ceil (T *ptr, std::size_t alignment) noexcept |
| template<typename T > | |
| constexpr T * | floor (T *ptr, std::size_t alignment) noexcept |
| void * | advance_bytes (void *ptr, std::ptrdiff_t distance) noexcept |
| Advance a pointer by a number of bytes. | |
| void const * | advance_bytes (void const *ptr, std::ptrdiff_t distance) noexcept |
| Advance a pointer by a number of bytes. | |
| template<typename T > | |
| void | cleanupWeakPointers (std::vector< std::weak_ptr< T > > &v) noexcept |
| template<typename K , typename T > | |
| void | cleanupWeakPointers (std::unordered_map< K, std::weak_ptr< T > > &v) noexcept |
| template<typename K , typename T > | |
| void | cleanupWeakPointers (std::unordered_map< K, std::vector< std::weak_ptr< T > > > &v) noexcept |
| template<typename Value , typename Map , typename Key , typename... Args> | |
| std::shared_ptr< Value > | try_make_shared (Map &map, Key key, Args... args) |
| template<numeric T, byte_like B> | |
| constexpr T | unaligned_load (B const *src) noexcept |
| Make an unaligned load of an unsigned integer. | |
| template<numeric T> | |
| T | unaligned_load (void const *src) noexcept |
| template<numeric T, byte_like B> | |
| constexpr void | unaligned_store (T src, B *dst) noexcept |
| template<numeric T> | |
| void | unaligned_store (T src, void *dst) noexcept |
| template<numeric T> | |
| hi_force_inline constexpr void | store_or (T src, uint8_t *dst) noexcept |
| template<std::floating_point T> | |
| constexpr T | points_to_dp (T x) noexcept |
| Convert points to device independent pixels. | |
| template<awaitable... Others> | |
| when_any (Others &&...) -> when_any< awaitable_cast_t< std::decay_t< Others > >... > | |
Variables | |
| constexpr auto | audio_device_state_metadata |
| constexpr auto | audio_direction_metadata |
| constexpr auto | surround_mode_icons |
| constexpr auto | surround_mode_names |
| constexpr auto | surround_mode_short_names |
| constexpr auto | surround_mode_speaker_mappings |
| constexpr auto | bounds_test = interval<longreg_t>{1, 5} |
| template<fixed_string Tag> | |
| detail::tagged_counter< Tag > | global_counter |
| template<typename T > | |
| constexpr bool | is_datum_type_v = is_datum_type<T>::value |
| constexpr auto | font_weight_metadata |
| unfair_recursive_mutex | gfx_system_mutex |
| Global mutex for GUI elements, like gfx_system, gfx_device. | |
| constexpr auto | subpixel_orientation_metadata |
| constexpr auto | keyboard_virtual_key_metadata |
| constexpr auto | text_decoration_metadata |
| constexpr auto | text_phrasing_metadata |
| constexpr auto | theme_mode_metadata = enum_metadata{theme_mode::light, "light", theme_mode::dark, "dark"} |
| constexpr char32_t | unicode_replacement_character = U'\ufffd' |
| constexpr char32_t | unicode_LF = U'\n' |
| constexpr char32_t | unicode_VT = U'\v' |
| constexpr char32_t | unicode_FF = U'\f' |
| constexpr char32_t | unicode_CR = U'\r' |
| constexpr char32_t | unicode_NEL = U'\u0085' |
| constexpr char32_t | unicode_LS = U'\u2028' |
| constexpr char32_t | unicode_PS = U'\u2029' |
| constexpr std::size_t | hardware_destructive_interference_size = 128 |
| constexpr std::size_t | hardware_constructive_interference_size = 64 |
| constexpr uint32_t | float16_bias = 15 |
| constexpr uint32_t | float32_bias = 127 |
| constexpr uint32_t | f32_to_f16_adjustment_exponent = float32_bias - float16_bias |
| constexpr uint32_t | f32_to_f16_lowest_normal_exponent = 0x01 + f32_to_f16_adjustment_exponent |
| constexpr uint32_t | f32_to_f16_infinite_exponent = 0x1f + f32_to_f16_adjustment_exponent |
| constexpr uint32_t | f32_to_f16_adjustment = f32_to_f16_adjustment_exponent << 23 |
| constexpr uint32_t | f32_to_f16_lowest_normal = f32_to_f16_lowest_normal_exponent << 23 |
| constexpr uint32_t | f32_to_f16_infinite = f32_to_f16_infinite_exponent << 23 |
| constexpr unsigned long long | pow10_table [20] |
| template<typename T > | |
| constexpr auto | large_number_v = T{16777215} |
| A large number. | |
| template<std::floating_point T> | |
| constexpr auto | points_per_inch_v = T{72.0} |
| The number of points (typography) per inch. | |
| template<std::floating_point T> | |
| constexpr auto | dp_per_inch_v = T{80.0} |
| The number of device independent pixels per inch. | |
| template<std::floating_point T> | |
| constexpr auto | points_to_dp_scale_v = dp_per_inch_v<T> / points_per_inch_v<T> |
| constexpr double | points_per_inch = points_per_inch_v<double> |
| constexpr double | dp_per_inch = dp_per_inch_v<double> |
| template<typename T > | |
| constexpr bool | is_numeric_signed_integral_v = is_numeric_signed_integral<T>::value |
| template<typename T > | |
| constexpr bool | is_numeric_unsigned_integral_v = is_numeric_unsigned_integral<T>::value |
| template<typename T > | |
| constexpr bool | is_numeric_integral_v = is_numeric_integral<T>::value |
| template<typename T > | |
| constexpr bool | is_numeric_v = is_numeric<T>::value |
| template<typename T > | |
| constexpr bool | is_character_v = is_character<T>::value |
| template<typename T > | |
| constexpr bool | is_byte_like_v = is_byte_like<T>::value |
| An array of this type will implicitly create objects within that array. | |
| template<std::size_t N> | |
| constexpr bool | has_native_intxx_v = has_native_intxx<N>::value |
| template<std::size_t N> | |
| constexpr bool | has_native_uintxx_v = has_native_uintxx<N>::value |
| template<std::size_t N> | |
| constexpr bool | has_native_floatxx_v = has_native_floatxx<N>::value |
| template<std::size_t N> | |
| constexpr bool | has_intxx_v = has_intxx<N>::value |
| template<std::size_t N> | |
| constexpr bool | has_uintxx_v = has_uintxx<N>::value |
| template<std::size_t N> | |
| constexpr bool | has_floatxx_v = has_floatxx<N>::value |
| template<typename T > | |
| constexpr bool | has_value_type_v = has_value_type<T>::value |
| template<typename T > | |
| constexpr bool | has_add_callback_v = has_add_callback<T>::value |
| template<typename BaseType , typename DerivedType > | |
| constexpr bool | is_decayed_base_of_v = is_decayed_base_of<BaseType,DerivedType>::value |
| template<typename DerivedType , typename BaseType > | |
| constexpr bool | is_derived_from_v = is_derived_from<DerivedType,BaseType>::value |
| template<typename DerivedType , typename BaseType > | |
| constexpr bool | is_decayed_derived_from_v = is_decayed_derived_from<DerivedType,BaseType>::value |
| template<typename Context , typename Expected > | |
| constexpr bool | is_different_v = not std::is_same_v<std::decay_t<Context>,std::decay_t<Expected>> |
| If the types are different. | |
| template<typename T > | |
| constexpr bool | is_atomic_v = is_atomic<T>::value |
| template<typename Out , typename In > | |
| constexpr bool | type_in_range_v |
All values of numeric type In can be represented without loss of range by numeric type Out. | |
| template<typename Context , typename Expected , typename... OtherExpected> | |
| constexpr bool | is_forward_of_v = is_forward_of<Context, Expected, OtherExpected...>::value |
| template<typename T > | |
| constexpr bool | default_values_v = default_values<T>::value |
DOXYGEN BUG.
Doxygen can't handle namespace hi::inline v1 {} syntax. All files should be changed to use old-style inline namespace syntax.
| using v1::await_resume_result_t = hi_typename await_resume_result<T>::type |
Get the result type of an awaitable.
This is type return type of the await_resume() member function.
| using v1::awaitable_cast_t = hi_typename awaitable_cast<T>::type |
Resolve the type that is directly-awaitable.
This function may use operator co_await() to retrieve the actual awaitable type.
| using v1::common_integer_t = common_integer<L, R...>::type |
Get an integer type that will fit all values from all template parameters.
If there is a mix of signed and unsigned integer types, then:
If all integers are unsigned or all integers are signed, then:
| L | An integer type. |
| R | Other integer types. |
Type-trait to copy const volatile qualifiers from one type to another.
| using v1::forward_value_t = typename forward_value<T>::type |
Get the storage type of the forward_value functor.
Use this type for the variables that are assigned with the return value of the forward_value functor.
Signed 128 bit integer.
| using v1::jsonpath_node |
| using v1::longreg_t = int64_t |
Signed integer twice the size of a standard CPU register.
| using v1::make_string_t = typename make_string<T>::type |
type-trait to convert a character to a string type.
| using v1::make_string_view_t = typename make_string_view<T>::type |
type-trait to convert a character to a string_view type.
Unsigned 128 bit integer.
| using v1::ulongreg_t = uint64_t |
Unsigned integer twice the size of a standard CPU register.
| using v1::variant_decay_t = variant_decay<T>::type |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
The keyboard focus group used for finding a widget that will accept a particular focus.
|
strong |
Key modification keys pressed at the same time as another key.
The Fn key is not always available on larger keyboards and is often under full control of the keyboard, therefor it is not in the list of keyboard modifiers here.
| Enumerator | |
|---|---|
| shift | The shift key is being held. |
| control | The control key is being held. |
| alt | The alt-key, option-key or meta-key is being held. |
| super | The windows-key, key-key or super-key is being held. |
|
strong |
|
strong |
The orientation of the RGB sub-pixels of and LCD/LED panel.
|
strong |
Describes how a grapheme should be underlined when rendering the text.
It is carried with the grapheme and glyphs, so that the text render engine can draw the decoration after the text is shaped and in rendering-order (left to right) and, this makes it easier to correctly render the decoration of multiple glyphs in a single stroke.
|
inlinenoexcept |
Advance a pointer by a number of bytes.
| ptr | The pointer to advance. |
| distance | The number of bytes to advance the pointer, may be negative. |
|
inlinenoexcept |
Advance a pointer by a number of bytes.
| ptr | The pointer to advance. |
| distance | The number of bytes to advance the pointer, may be negative. |
|
inlinenoexcept |
Generate alternatives for the font_weight.
| start | The starting font-weight. |
|
noexcept |
Strip data from the back side.
| data_first | The iterator pointing to the first element of data. |
| data_last | The iterator pointing one beyond the last element of data. |
| value_first | The iterator pointing to the first value to be removed from data. |
| value_last | The iterator pointing one beyond the last value to be removed from data. |
|
constexprnoexcept |
Find t on the curve P1->C->P2 which is closest to P.
Used for finding the shortest distance from a point to a curve. The shortest vector from a curve to a point is a normal.
|
constexprnoexcept |
Find t on the line P1->P2 which is closest to P.
Used for finding the shortest distance from a point to a curve. The shortest vector from a curve to a point is a normal.
|
constexprnoexcept |
Find x for y on a bezier curve. In a contour, multiple bezier curves are attached to each other on the anchor point. We don't want duplicate results when passing y that is at the same height as an anchor point. So we compare with less than to the end-anchor point to remove it from the result.
|
constexprnoexcept |
Find x for y on a bezier curve. In a contour, multiple bezier curves are attached to each other on the anchor point. We don't want duplicate results when passing y that is at the same height as an anchor point. So we compare with less than to the end-anchor point to remove it from the result.
Find x for y on a bezier curve. In a contour, multiple bezier curves are attached to each other on the anchor point. We don't want duplicate results when passing y that is at the same height as an anchor point. So we compare with less than to the end-anchor point to remove it from the result.
Return the flatness of a curve.
Return the flatness of a curve.
Return the flatness of a curve.
|
constexpr |
Find the begin and end of the current cluster.
| first | The first iterator, where this function will stop iterating. |
| last | The last iterator, where this function will stop iterating. |
| start | Where to start the search |
| predicate | A function returning the identifier of the cluster. |
|
constexpr |
Convert an integral from big-to-native endian.
Binary Operator Precedence according to C++.
Get the bit index of the single bit of the network_event mask.
Check if a value can be casted to a narrow type.
| Out | The output type. |
| rhs | The input value to cast. |
Check if a value can be casted to a narrow type.
| Out | The output type. |
| rhs | The input value to cast. |
|
constexprnoexcept |
The smallest multiple of alignment greater than or equal to value.
| value | The unsigned value to round. |
| alignment | The alignment. |
|
constexprnoexcept |
Cast a character.
Both the input and output types are interpreted as unsigned values, even if they are signed values. For example char may be either signed or unsigned, but you have to treat those as unsigned values.
| rhs | The value of the character. |
Cast a character.
Both the input and output types are interpreted as unsigned values, even if they are signed values. For example char may be either signed or unsigned, but you have to treat those as unsigned values.
| rhs | The value of the character. |
| generator< cmdln_option > v1::command_line_parser | ( | It | first, |
| It | last, | ||
| std::string_view | options_with_arguments ) |
A POSIX command line parser.
The command line tokens passed to this function are the strings passed in via main, or pre-processed by the windows command line pre-processor.
Posix commad line argument syntax:
-ofoo or -o foo. Any character may be used in the argument, including a single hyphen, which by convention is either the stdin or stdout stream.This function will properly handle UTF-8 encoded strings. Including single character options where the character is represented with multiple UTF-8 code units.
| It | A forward iterator |
| first | Iterator to the first command line token |
| last | Iterator one beyond the last command line token |
| options_with_arguments | A list of single character options that accept an argument. |
|
noexcept |
Composit color onto the destination image where the mask is solid.
| dst | destination image. |
| mask | mask where the color will be composited on the destination. |
|
noexcept |
Composit color onto the destination image where the mask is solid.
| dst | destination image. |
| color | color to composit. |
| mask | mask where the color will be composited on the destination. |
|
noexcept |
|
noexcept |
Initialize the console.
Return line and column count at the end iterator.
Finish the hikogui system.
This function will cleanly shutdown the hikogui system.
| argc | The normalized number of arguments received from crt_start(). |
| argv | The normalized arguments received from crt_start(). |
| exit_code | The exit code of the application |
main(). Start the hikogui system.
This function will do a minimum amount of setup for the hikogui system.
crt_finish() to free the memory. Start the hikogui system.
This function will do a minimum amount of setup for the hikogui system.
| argc | Number of arguments received from main(). |
| argv | The argument received from main(). |
| instance | A handle to the GUI instance of the operating system |
| show_cmd | Information on how to open the first window. |
crt_finish() to free the memory. Start the hikogui system.
This function will do a minimum amount of setup for the hikogui system.
| instance | A handle to the GUI instance of the operating system |
| show_cmd | Information on how to open the first window. |
crt_finish() to free the memory. Decode BON8 message from buffer.
| buffer | A buffer to a BON8 encoded message. |
| datum v1::decode_BON8 | ( | bstring_view | buffer | ) |
Decode BON8 message from buffer.
| buffer | A buffer to a BON8 encoded message. |
Decode BON8 message from buffer.
| buffer | A buffer to a BON8 encoded message. |
| bool v1::dialog | ( | dialog_type | type, |
| std::string_view | title, | ||
| std::string_view | text ) |
Display a modal dialog.
You should never display a modal dialog unless it is absolutely necessary for the user to respond right now, or on a catastrophic failure.
| cancel_error | When the user presses "cancel". |
Cast a reference to a class to its derived class or itself.
| rhs | A reference to an object that is of type Out. |
Cast a pointer to a class to its derived class or itself.
| rhs | A pointer to an object that is of type Out. Or a nullptr which will be passed through. |
Cast a pointer to a class to its derived class or itself.
Encode a value to a BON8 message.
| value | The data to encode |
|
constexprnoexcept |
Search for the item that is equal to the key.
|
constexprnoexcept |
The fast lower bound algorithm.
| T | The type of the table element. |
| Key | The type of the key |
| Endian | The endianess of the key in the table. |
| table | A span of elements to search, the key is in the first bytes of each element. |
| key | A unsigned integral to search in the elements. |
|
noexcept |
Lock-free fetch-then-max operation on an atomic.
|
noexcept |
Lock-free fetch-then-min operation on an atomic.
|
noexcept |
Fill a signed distance field image from the given path.
| dst | An signed-distance-field which show distance toward the closest curve |
| path | A path. |
|
noexcept |
Fill a signed distance field image from the given contour.
| image | An signed-distance-field which show distance toward the closest curve |
| curves | All curves of path, in no particular order. |
|
noexcept |
Fill a linear gray scale image by filling a curve with anti-aliasing.
| image | An alpha-channel image to make opaque where pixel is inside the contours |
| curves | All curves of path, in no particular order. |
|
constexprnoexcept |
Find the first occurrence of an value in a data.
| data_first | An iterator pointing to the first item of data. |
| data_last | An iterator pointing one beyond the last item of data. |
| value_first | An iterator pointing to a value to find in data. |
| value_last | An iterator pointing on beyond the last value to find in data. |
|
constexpr |
Find the start of the current cluster.
| last | The last iterator, where this function will stop iterating. |
| start | Where to start the search |
| predicate | A function returning the identifier of the cluster. |
| std::string_view::const_iterator v1::find_end_of_formula | ( | std::string_view::const_iterator | first, |
| std::string_view::const_iterator | last, | ||
| std::string_view | terminating_string ) |
Find the end of an formula.
This function will track nested brackets and strings, until the terminating_character is found.
| first | Iterator to the first character of the formula. |
| last | Iterator to beyond the last character of the text. |
| terminating_string | The string to find, which is not part of the formula. |
|
inlinenoexcept |
Find a font closest to the variant.
This function will always return a valid font_id.
| family_id | a valid family id. |
| variant | The variant of the font to select. |
|
inlinenoexcept |
Find a font closest to the variant.
This function will always return a valid font_id.
| family_name | a font family name. |
| variant | The variant of the font to select. |
|
inlinenoexcept |
Find font family id.
This function will always return a valid font_family_id by walking the fallback-chain.
Find a glyph using the given code-point.
This function will find a glyph matching the grapheme in the selected font, or find the glyph in the fallback font.
| font | The font to use to find the grapheme in. |
| grapheme | The Unicode grapheme to find in the font. |
Find a glyph using the given code-point.
This function will find a glyph matching the grapheme in the selected font, or find the glyph in the fallback font.
| font | The font to use to find the grapheme in. |
| grapheme | The Unicode grapheme to find in the font. |
|
constexprnoexcept |
The greatest multiple of alignment less than or equal to value.
| value | The unsigned value to round. |
| alignment | The alignment. |
|
constexpr |
Convert a font weight value between 50 and 1000 to a font weight.
Count arguments of a std::format format string.
| fmt | The format string. |
| -1 | Invalid open-brace inside format argument. |
| -2 | Invalid close-brace outside format argument. |
| -3 | Missing close-brace at end-of-string. |
| std::string v1::format_JSON | ( | datum const & | root | ) |
Dump an datum object into a JSON string.
| root | datum-object to serialize |
|
noexcept |
Strip data from the front side.
| data_first | The iterator pointing to the first element of data. |
| data_last | The iterator pointing one beyond the last element of data. |
| value_first | The iterator pointing to the first value to be removed from data. |
| value_last | The iterator pointing one beyond the last value to be removed from data. |
|
constexpr |
Generate data in an array.
| operation | A function to execute for each element in the array. The function accepts a single index argument. |
Load a random seed.
| [out] | ptr | The pointer to the buffer bytes where to generate the seed. |
| size | The number of bytes to generate. |
| os_error | on failure. |
|
inlinenoexcept |
Read a single bit from span of bytes Bits are ordered LSB first.
| buffer | The buffer of bytes to extract the bit from. |
| index | The index of the bit in the byte span. |
|
inlinenoexcept |
Read a bits from of span of bytes Bits are ordered LSB first.
Bits are copied as if the byte array is layed out from right to left, example:
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | byte 1 | byte 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : : index=6 +-+-+-+-+-+ length=5 | Return | +-+-+-+-+-+ 4 3 2 1 0
| buffer | The buffer of bytes to extract bits from. |
| index | The index of the bit in the byte span. |
| length | the number of bits to return. |
|
inlinenoexcept |
Find the intersect points between two line segments.
|
inlinenoexcept |
Find the intersect points between two line segments.
|
constexprnoexcept |
Return the upper half of the input value.
|
constexprnoexcept |
Return the index of the tag in the template arguments. If the tag is not found it returns the index 1 beyond the template arguments.
|
noexcept |
Return the index of the tag in the template arguments. If the tag is not found it returns the index 1 beyond the template arguments.
| bstring v1::inflate | ( | std::span< std::byte const > | bytes, |
| std::size_t & | offset, | ||
| std::size_t | max_size = 0x0100 '0000 ) |
Inflate compressed data using the deflate algorithm bytes should include at least 32 bit of trailer, for the overflow check which will slightly overrun the actual compressed data for performance reasons.
Check if a pointer is properly aligned for the object it is pointing at.
|
constexpr |
Convert an integral from little-to-native endian.
|
constexprnoexcept |
Unaligned Load of a numeric value from a byte-like array.
| T | The type of the integer or floating point value to load. |
| Endian | The endiances of the data. |
| src | A pointer to byte-like array. |
|
constexprnoexcept |
Load a numeric value from memory.
| T | The type of the integer or floating point value to load. |
| Endian | The endiances of the data. |
| src | A pointer to the numeric value. |
|
inlinenoexcept |
Unaligned Load of a numeric value from a byte-like array.
| T | The type of the integer or floating point value to load. |
| Endian | The endiances of the data. |
| src | A pointer to memory. |
Unaligned load of a numeric value encoded in byte-endian format.
| T | The type of the integer or floating point value to load. |
| src | A pointer to a byte like buffer. |
Load of a numeric value encoded in big-endian format.
| T | The type of the integer or floating point value to load. |
| src | A pointer to a byte like memory. |
Unaligned load of a numeric value encoded in byte-endian format.
| T | The type of the integer or floating point value to load. |
| src | A pointer to memory. |
Unaligned load bits from a big-endian buffer at a bit-offset.
To create the packed byte array from values.
| NumBits | the number of bits to read. |
| src | A byte-like buffer to load bits from. |
| bit_index | The bit offset into the buffer. 0 is the 7th bit of the 1st byte in src. |
Unaligned load of a numeric value encoded in little-endian format.
| T | The type of the integer or floating point value to load. |
| src | A pointer to a byte like memory. |
Load of a numeric value encoded in little-endian format.
| T | The type of the integer or floating point value to load. |
| src | A pointer to the numeric value. |
Unaligned load of a numeric value encoded in little-endian format.
| T | The type of the integer or floating point value to load. |
| src | A pointer to memory. |
|
constexprnoexcept |
Return the low half of the input value.
|
inlinenoexcept |
Copy a std::string to new memory.
The caller will have to delete [] return value.
|
inlinenoexcept |
Copy a std::string to new memory.
The caller will have to delete [] return value.
|
inlinenoexcept |
Encode a string to be usable as an id.
An id has the following format: [_a-zA-Z][_a-zA-Z0-9]*
|
inlinenoexcept |
Create a slug from a string.
A slug contains only lower case letters, digits and dashes. Duplicated dashes are eliminated.
|
inlinenoexcept |
Create a title from a string.
A title contains words separated by a single space, where each word starts with a capital letter followed by lower case letters. Digits may be part of a word or form a separate word, digits are not counted as the start of a word for capitalization.
|
constexpr |
Make a vector from a view.
This function will make a vector with a copy of the elements of a view.
|
constexpr |
|
noexcept |
Make a contour of Bezier curves from a list of points. The contour is also colorized to be used for creating multichannel-signed-distance-fields.
| first | Iterator to the first point in a list |
| last | Iterator one beyond the last point in a list |
|
noexcept |
Inverse a contour. Reverse the direction of the whole contour, turning it inside out. This is useful for creating a stroke, by inverting the inner offset contour.
| contour | contour to reverse. |
|
noexcept |
Make a contour of Bezier curves from another contour of Bezier curves at a offset. Make a new contour made out of line-segments offset from the original curve. After offsetting the line segment the line segments are properly cut or extended to cover all intersections and gaps.
| contour | a list of bezier curve segments forming a closed contour. |
| offset | positive means the parallel contour will be on the starboard side of the given contour. |
| line_join_style | how the gaps between line segments are joined together. |
| tolerance | to how curved the new contour should look. |
|
constexprnoexcept |
Check if the text-phrasing is included in the text-phrasing-mask.
| lhs | The text-phrasing-mask, i.e. the pattern. |
| rhs | The text-phrasing. |
|
constexprnoexcept |
Return the upper half of the input value.
|
constexprnoexcept |
Mirror the horizontal alignment.
|
constexprnoexcept |
Mirror the horizontal alignment.
Multiply with overflow detection.
|
constexprnoexcept |
Cast numeric values without loss of precision.
| Out | The numeric type to cast to |
| In | The numeric type to cast from |
| rhs | The value to cast. |
|
constexprnoexcept |
Cast numeric values without loss of precision.
| Out | The numeric type to cast to |
| In | The numeric type to cast from |
| rhs | The value to cast. |
|
constexpr |
Convert an integral from native-to-big endian.
|
constexpr |
Convert an integral from native-to-little endian.
|
inlinenoexcept |
Normalize string to use only line-feeds.
Operator Precedence according to C++.
|
constexprnoexcept |
Combine vertical and horizontal alignment.
| lhs | A text alignment. |
| rhs | A vertical alignment. |
|
constexprnoexcept |
Merge on_overflow_t. Get the on_overflow of two arguments with highest safety.
|
constexprnoexcept |
Combine vertical and horizontal alignment.
| lhs | A text alignment. |
| rhs | A vertical alignment. |
| std::unique_ptr< formula_node > v1::parse_formula | ( | formula_parse_context & | context | ) |
Parse an formula.
Parses an formula until EOF, ')', ',', '}'
|
inline |
Parse an formula.
Parses an formula until EOF, ')', ',', '}'
|
inline |
Parse an formula.
Parses an formula until EOF, ')', ',', '}'
Parse a JSON string.
| path | A path pointing to the file to parse. |
| datum v1::parse_JSON | ( | std::string_view | text | ) |
Parse a JSON string.
| text | The text to parse. |
|
noexcept |
parse tokens from a text. This parsing tokens from most programming languages. It will recognize:
Errors will be returned as tokens which will point back into the text.
Copy an object to another memory locations.
This function will copy an object located in one memory location to another through the use of placement-new.
If you want to access the object in dst, you should use the return value.
| src | An interator to an object. |
| dst | A pointer to allocated memory. |
Copy objects into a memory location.
This function will placement_copy an array of objects to a memory location.
| T * v1::placement_move | ( | T * | src, |
| T * | dst ) |
Move an object between two memory locations.
This function will move an object from one memory location to another through the use of placement-new. The object in the source memory location is destroyed.
If you want to access the object in dst, you should use the return value. It is undefined behavior when src and dst point to the same object. It is undefined behavior if either or both src and dst are nullptr.
| src | A pointer to an object. |
| dst | A pointer to allocated memory. |
Move an objects between two memory locations.
This function will placement_move an array of objects between two memory locations.
WARNING: if moving objects within an array use placement_move_within_array to handle overlapping regions.
| void v1::placement_move_within_array | ( | T * | src_first, |
| T * | src_last, | ||
| T * | dst_first ) |
Move an objects between two memory locations.
This function will placement_move an array of objects between two memory locations.
It is undefined behavior when src_first and dst_first are not part of the same array.
The objects may overlap: copying takes place as if the objects were copied to a temporary object array and then the objects were copied from the array to dst.
|
constexprnoexcept |
Convert points to device independent pixels.
Register a font.
Duplicate registrations will be ignored.
When a font file is registered the file will be temporarily opened to read and cache a set of properties:
| path | Location of font. |
| uint32_t v1::registry_read_current_user_dword | ( | std::string_view | path, |
| std::string_view | name ) |
Read a DWORD registry value from the HKEY_CURRENT_USER.
| hi::os_error | when the path/name is not found in the registry. |
| std::vector< std::string > v1::registry_read_current_user_multi_string | ( | std::string_view | path, |
| std::string_view | name ) |
Read a list of strings from the registry value from the HKEY_CURRENT_USER.
| hi::os_error | when the path/name is not found in the registry. |
|
constexpr |
Find the start of the current cluster.
| first | The first iterator, where this function will stop iterating. |
| start | Where to start the search |
| predicate | A function returning the identifier of the cluster. |
|
noexcept |
Handle a potential overflow.
| value | returned by operation; potentially invalid. |
| overflow | true when the operation overflowed. |
| is_positive | true when saturation is at the positive limit. |
|
constexprnoexcept |
Cast a numeric value to an integer saturating on overflow.
| Out | the signed- or unsigned-integer type to cast to. |
| rhs | The value to convert. |
Securely clear a set of objects.
This function uses an operating system service for erasing memory securely.
| first | An iterator pointing to the first object to clear. |
| last | An iterator pointing to one beyond to clear. |
Securely clear an object.
This function uses an operating system service for erasing memory securely.
| object | The object to securely clear to zeroes. |
Securely clear memory.
This function uses an operating system service for erasing memory securely.
| ptr | The pointer to the memory to clear. |
| size | The number of bytes to clear. |
Securely destroy objects.
Destroy objects and overwrite its memory with all '1' followed by all '0'.
| first | An iterator to the first object. |
| last | An iterator to beyond the last object. |
Securely move objects.
First calls std::uinitialized_move() then overwrites memory with all '1' followed by all '0'.
| first | An iterator to the first object to move |
| last | An iterator to beyond the last object to move |
| d_first | An destination iterator to uninitialized memory. |
Shuffle a container based on a list of indices.
It is undefined behavior for an index to point beyond last. It is undefined behavior for an index to repeat.
Complexity is O(n) swaps, where n is the number of indices.
| first | An iterator pointing to the first item in a container to be shuffled (index = 0) |
| last | An iterator pointing beyond the last item in a container to be shuffled. |
| indices_first | An iterator pointing to the first index. |
| indices_last | An iterator pointing beyond the last index. |
|
noexcept |
Shuffle a container based on a list of indices.
It is undefined behavior for an index to point beyond last. It is undefined behavior for an index to repeat.
Complexity is O(n) swaps, where n is the number of indices.
| first | An iterator pointing to the first item in a container to be shuffled (index = 0) |
| last | An iterator pointing beyond the last item in a container to be shuffled. |
| indices_first | An iterator pointing to the first index. |
| indices_last | An iterator pointing beyond the last index. |
| index_op | A function returning the size index from indices. The default returns the index item it self. |
|
noexcept |
Solve cubic function in the form.
![\[t^{3}+pt+q=0\]](form_4_dark.png)
![\[D=\frac{1}{4}q^{2}+\frac{1}{27}p^{3}\]](form_5_dark.png)
![\[U=\frac{1}{3}\arccos(\frac{3q}{2p})\sqrt{-\frac{3}{p}}\]](form_6_dark.png)
![\[V=2\sqrt{-\frac{1}{3}p}\]](form_7_dark.png)
![\[
x=
\begin{cases}
0 & \text{if } p=0 \text{ and }q=0\\
\frac{3q}{p}, -\frac{3q}{2p} & \text{if } D=0\\
\sqrt[3]{-\frac{1}{2}+\sqrt{D}} + \sqrt[3]{-\frac{1}{2}-\sqrt{D}} & \text{if } D>0\\
V\cdot \cos(U), V\cdot\cos(U-\frac{2}{3}\pi),V\cdot\cos(U-\frac{4}{3}\pi) & \text{if } D<0
\end{cases}
\]](form_8_dark.png)
|
noexcept |
Trigonometric solution for three real roots
|
constexprnoexcept |
Solve line function. ax+b=0
![\[
x=
\begin{cases}
\frac{-b}{a}, & \text{if } a\ne0\\
\in\mathbb{R}, & \text{if } a=0,b=0\\
\o & \text{if } a=0,b\ne0
\end{cases}
\]](form_0_dark.png)
|
constexprnoexcept |
Solve quadratic function.
![\[ax^{2}+bx+c=0\]](form_1_dark.png)
![\[D=b^{2}-4ac\]](form_2_dark.png)
![\[
x=
\begin{cases}
\frac{-b}{2a}, & \text{if } D=0\\
\frac{-b -\sqrt{D}}{2a}, \frac{-b +\sqrt{D}}{2a} & \text{if } D>0\\
\o & \text{if } D<0
\end{cases}
\]](form_3_dark.png)
|
constexprnoexcept |
Solve cubic function.
![\[ax^{3}+bx^{2}+cx+d=0\]](form_9_dark.png)
![\[p=\frac{3ac-b^{2}}{3a^{2}}\]](form_10_dark.png)
,
![\[q=\frac{2b^{3}-9abc+27a^{2}d}{27a^{3}}\]](form_11_dark.png)
![\[x=\text{solveDepressedCube}(p,q)-\frac{b}{3a}\]](form_12_dark.png)
|
constexprnoexcept |
Get the size of a sub-pixel based on the sub-pixel orientation.
|
noexcept |
Return the tag in the template arguments at the index. If the index points beyond the template arguments it will return the 0-tag.
|
constexprnoexcept |
Create an std::array from a one dimensional array, without the last element.
Useful for copying a string literal without the nul-termination
|
constexprnoexcept |
Create an std::array from a one dimensional array, without the last element.
Useful for copying a string literal without the nul-termination
|
constexprnoexcept |
Convert a UTF-8 string to a grapheme-string.
Before conversion to gstring a string is first normalized using the Unicode normalization algorithm. By default it is normalized using NFC.
| rhs | The UTF-8 string to convert. |
| config | The attributes used for normalizing the input string. |
|
constexprnoexcept |
Convert a UTF-8 string to a grapheme-string.
Before conversion to gstring a string is first normalized using the Unicode normalization algorithm. By default it is normalized using NFC.
| rhs | The UTF-8 string to convert. |
| config | The attributes used for normalizing the input string. |
|
constexprnoexcept |
Convert a UTF-32 string-view to a grapheme-string.
Before conversion to gstring a string is first normalized using the Unicode normalization algorithm. By default it is normalized using NFC.
| rhs | The UTF-32 string to convert. |
| config | The attributes used for normalizing the input string. |
|
inline |
Parse a key-binding modifier name.
| s | The modifier name, with or without the canonical trailing '+' |
|
constexprnoexcept |
Convert degree to radian.
| degree | The number of degrees. |
|
constexprnoexcept |
Cast an integral to an signed integral of the same size.
|
constexprnoexcept |
Convert a grapheme string to UTF-8.
| rhs | The grapheme string to convert to UTF-8 |
|
constexprnoexcept |
Convert a grapheme string to UTF-8.
| rhs | The grapheme string view to convert to UTF-8 |
|
constexprnoexcept |
Convert the current string to using title case.
This function does not do full unicode case conversion; only ASCII letters [a-zA-Z] will be modified.
|
constexprnoexcept |
Convert the current string to using title case.
This function does not do full unicode case conversion; only ASCII letters [a-zA-Z] will be modified.
|
constexprnoexcept |
Convert a grapheme string to UTF-8.
| rhs | The grapheme string view to convert to UTF-8 |
|
constexprnoexcept |
Cast an integral to an unsigned integral of the same size.
|
constexprnoexcept |
Convert a grapheme string to UTF-8.
| rhs | The grapheme string view to convert to UTF-8 |
|
inline |
Transform an input container to the output container.
| input | Input container. |
| operation | A function to execute on each element in the input |
|
constexprnoexcept |
Cast between integral types truncating or zero-extending the result.
Make an unaligned load of an unsigned integer.
|
constexpr |
Reorder a given range of characters based on the unicode_bidi algorithm.
This algorithm will:
It is likely that an application has the characters grouped as graphemes and is accompanied with the original index and possible other information. The get_char function returns the first code-point of a grapheme. The set_char function is used when the code-point needs to be replaced with a mirrored version.
The bidirectional algorithm will work correctly with either a list of code points or a list of first-code-point-of-graphemes.
| first | The first iterator |
| last | The last iterator |
| get_code_point | A function to get the character of an item. |
| set_code_point | A function to set the character in an item. |
| set_text_direction | A function to set the text direction in an item. |
| context | The context/configuration to use for the bidi-algorithm. |
|
constexpr |
Removes control characters which will not survive the bidi-algorithm.
All RLE, LRE, RLO, LRO, PDF, and BN characters are removed.
| first | The first character. |
| last | One beyond the last character. |
| code_point_func | A function returning the code-point of the character. |
|
constexpr |
Get the unicode bidi direction for the first paragraph and context.
| first | The first iterator |
| last | The last iterator |
| get_code_point | A function to get the code-point of an item. |
| context | The context/configuration to use for the bidi-algorithm. |
|
constexprnoexcept |
Convert text to a Unicode decomposed normal form.
| text | to normalize, in-place. |
| normalization_mask | Extra features for normalization. |
|
inlinenoexcept |
The unicode line break algorithm UAX #14.
| first | An iterator to the first character. |
| last | An iterator to the last character. |
| code_point_func | A function to get the code-point of a character. |
|
constexpr |
Unicode break lines.
| opportunities | The list of break opportunities. |
| widths | The list of character widths |
| maximum_line_width | The maximum line width. |
|
constexprnoexcept |
Convert text to a Unicode composed normal form.
| text | to normalize, in-place. |
| normalization_mask | Extra features for normalization. |
|
inlinenoexcept |
The unicode word break algorithm UAX#29.
| first | An iterator to the first character. |
| last | An iterator to the last character. |
| code_point_func | A function to get a code-point from an dereferenced iterator. |
|
inlinenoexcept |
The unicode word break algorithm UAX#29.
| first | An iterator to the first character. |
| last | An iterator to the last character. |
| code_point_func | A function to code-point from a character. |
Remove element from a container.
| first | The iterator pointing to the first element of the container |
| last | The iterator pointing one beyond the last element of the container. |
| element | The iterator that points to the element to be removed. |
Cast a reference to a class to its base class or itself.
| Out | The output type; a base-class of the input. |
| rhs | A reference to a object to cast. |
Cast a pointer to a class to its base class or itself.
| Out | The output type; a base-class of the input. |
| rhs | A pointer to a object to cast. |
Cast a nullptr to a class.
| Out | The output type. |
| rhs | A nullptr. |
| std::vector< language_tag > v1::variants | ( | std::vector< language_tag > | languages | ) |
Add variants to the list of languages.
This function is mostly used to add languages to a list of preferred languages to search for translations in the translation catalog.
| languages | A list of languages ordered by preference. |
Cast to a type which can hold all values from the input type.
| Out | The same type as the input. |
| rhs | The value of the input type. |
Cast a floating point number to a floating point type that is wider.
| Out | A floating point type larger than the input type. |
| rhs | The floating point input value. |
Cast a integer to an integer type which is wider.
| Out | An integer type that can hold all values of the input type. |
| rhs | The integer input value. |
|
constexprnoexcept |
Cast a integer to an float type which is wider.
Since wide_cast() must be perfect the integers must be perfectly representable by a floating point number. Integers that have number of binary digits less or equal to the size of the mantissa of a floating point number can be perfectly represented.
| Out | An float type that can hold all values of the input type without loss of precission. |
| rhs | The integer input value. |
|
noexcept |
Wrap lines in text that are too wide.
This algorithm may modify white-space in text and change them into line separators. Lines are separated using the U+2028 code-point, and paragraphs are separated by the U+2029 code-point.
| first | The first iterator of a text to wrap |
| last | The one beyond the last iterator of a text to wrap |
| max_width | The maximum width of a line. |
| get_width | A function returning the width of an item pointed by the iterator. float get_width(auto const &item) |
| get_code_point | A function returning the code-point of an item pointed by the iterator. char32_t get_code_point(auto const &item) |
| set_code_point | A function changing the code-point of an item pointed by the iterator. void set_code_point(auto &item, char32_t code_point) |
|
inline |
Convert a win32 zero terminated list of zero terminated strings.
| first | A pointer to a buffer of a zero terminated list of zero terminated string. |
| last | A pointer one beyond the buffer. |
| nr_strings | The number of string in the buffer. |
| parse_error | when the list does not terminate with a zero. |
|
constexpr |
The number of device independent pixels per inch.
device independent pixels per platform:
The Android dp size is almost halfway between win32 and MacOS, which we will use for hikogui.
|
inline |
Global mutex for GUI elements, like gfx_system, gfx_device.
|
inlineconstexpr |
An array of this type will implicitly create objects within that array.
P059R6: Implicit creation of objects for low-level object manipulation.
|
inlineconstexpr |
True is the supplied type is a character integer. This distinguishes between integer characters and integer numbers.
|
constexpr |
If the types are different.
The two types are checked after removing const, volatile and reference qualifiers.
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
A large number.
This number 16777215 (2^24 - 1). Integers beyond this number may not be accurately represented by a float.
|
constexpr |
The number of points (typography) per inch.
All values of numeric type In can be represented without loss of range by numeric type Out.