|
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. | |
Typedefs | |
| using | intreg_t = int32_t |
| using | uintreg_t = uint32_t |
| using | os_handle = void * |
| Minimum offset between two objects to avoid false sharing. | |
| using | file_handle = os_handle |
| 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 | 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 |
| using | money = fixed<safe_int<int64_t>, 100> |
| template<typename T > | |
| using | forward_value_t = typename forward_value<T>::type |
Get the storage type of the forward_value functor. | |
| using | aarectangle = axis_aligned_rectangle |
| using | extent2 = geo::extent<2> |
| using | extent3 = geo::extent<3> |
| using | matrix2 = geo::matrix<2> |
| using | matrix3 = geo::matrix<3> |
| using | point2 = geo::point<2> |
| using | point3 = geo::point<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<2> |
| using | translate3 = geo::translate<3> |
| using | vector2 = geo::vector<2> |
| using | vector3 = geo::vector<3> |
| using | tr = translate |
| using | finterval = interval<float> |
| using | dinterval = interval<double> |
| using | jsonpath_node |
| 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 | i8x1 = numeric_array<int8_t, 1> |
| using | i8x2 = numeric_array<int8_t, 2> |
| using | i8x4 = numeric_array<int8_t, 4> |
| using | i8x8 = numeric_array<int8_t, 8> |
| using | i8x16 = numeric_array<int8_t, 16> |
| using | i8x32 = numeric_array<int8_t, 32> |
| using | i8x64 = numeric_array<int8_t, 64> |
| using | u8x1 = numeric_array<uint8_t, 1> |
| using | u8x2 = numeric_array<uint8_t, 2> |
| using | u8x4 = numeric_array<uint8_t, 4> |
| using | u8x8 = numeric_array<uint8_t, 8> |
| using | u8x16 = numeric_array<uint8_t, 16> |
| using | u8x32 = numeric_array<uint8_t, 32> |
| using | u8x64 = numeric_array<uint8_t, 64> |
| using | i16x1 = numeric_array<int16_t, 1> |
| using | i16x2 = numeric_array<int16_t, 2> |
| using | i16x4 = numeric_array<int16_t, 4> |
| using | i16x8 = numeric_array<int16_t, 8> |
| using | i16x16 = numeric_array<int16_t, 16> |
| using | i16x32 = numeric_array<int16_t, 32> |
| using | u16x1 = numeric_array<uint16_t, 1> |
| using | u16x2 = numeric_array<uint16_t, 2> |
| using | u16x4 = numeric_array<uint16_t, 4> |
| using | u16x8 = numeric_array<uint16_t, 8> |
| using | u16x16 = numeric_array<uint16_t, 16> |
| using | u16x32 = numeric_array<uint16_t, 32> |
| using | f16x4 = numeric_array<float16, 4> |
| using | i32x1 = numeric_array<int32_t, 1> |
| using | i32x2 = numeric_array<int32_t, 2> |
| using | i32x4 = numeric_array<int32_t, 4> |
| using | i32x8 = numeric_array<int32_t, 8> |
| using | i32x16 = numeric_array<int32_t, 16> |
| using | u32x1 = numeric_array<uint32_t, 1> |
| using | u32x2 = numeric_array<uint32_t, 2> |
| using | u32x4 = numeric_array<uint32_t, 4> |
| using | u32x8 = numeric_array<uint32_t, 8> |
| using | u32x16 = numeric_array<uint32_t, 16> |
| using | f32x1 = numeric_array<float, 1> |
| using | f32x2 = numeric_array<float, 2> |
| using | f32x4 = numeric_array<float, 4> |
| using | f32x8 = numeric_array<float, 8> |
| using | f32x16 = numeric_array<float, 16> |
| using | i64x1 = numeric_array<int64_t, 1> |
| using | i64x2 = numeric_array<int64_t, 2> |
| using | i64x4 = numeric_array<int64_t, 4> |
| using | i64x8 = numeric_array<int64_t, 8> |
| using | u64x1 = numeric_array<uint64_t, 1> |
| using | u64x2 = numeric_array<uint64_t, 2> |
| using | u64x4 = numeric_array<uint64_t, 4> |
| using | u64x8 = numeric_array<uint64_t, 8> |
| using | f64x1 = numeric_array<double, 1> |
| using | f64x2 = numeric_array<double, 2> |
| using | f64x4 = numeric_array<double, 4> |
| using | f64x8 = numeric_array<double, 8> |
| 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 | int128_t = __int128_t |
| using | uint128_t = unsigned __int128_t |
| using | longreg_t = int64_t |
| using | ulongreg_t = uint64_t |
| using | agstring = std::basic_string<agrapheme> |
| using | agstring_view = std::basic_string_view<agrapheme> |
| using | font_family_id = tagged_id<uint16_t, "font_family_id"> |
| using | glyph_id = tagged_id<uint16_t, "glyph_id"> |
| using | thread_id = uint32_t |
| using | token_vector = std::vector<hi::token_t> |
| using | token_iterator = typename token_vector::iterator |
| 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 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 T > | |
| using | variant_decay_t = variant_decay<T>::type |
| using | unfair_mutex = unfair_mutex_impl<true> |
| 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 |
Enumerations | |
| enum class | vertical_alignment : uint8_t { top = 0 , middle = 1 , bottom = 2 } |
| Vertical alignment. More... | |
| enum class | horizontal_alignment : uint8_t { flush = 0 , left = 1 , center = 2 , justified = 3 , right = 4 } |
| 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 } |
| 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 | semantic_color : unsigned char { blue , green , indigo , orange , pink , purple , red , teal , yellow , gray , gray2 , gray3 , gray4 , gray5 , gray6 , foreground , border , fill , accent , text_select , primary_cursor , secondary_cursor } |
| enum class | dialog_type { ok , yes_no , yes_no_cancel } |
| enum class | seek_whence { begin , current , end } |
| enum class | access_mode { read = 0x1 , write = 0x2 , rename = 0x4 , read_lock = 0x10 , write_lock = 0x20 , open = 0x100 , create = 0x200 , truncate = 0x400 , random = 0x1000 , sequential = 0x2000 , no_reuse = 0x4000 , write_through = 0x8000 , create_directories = 0x10000 , open_for_read = open | read , open_for_read_and_write = open | read | write , truncate_or_create_for_write = create_directories | open | create | truncate | write } |
| enum class | axis : unsigned char { none = 0 , x = 1 , y = 2 , z = 4 , both = x | y , all = x | y | z , row = x , column = y , horizontal = x , vertical = y } |
| enum class | line_end_cap { flat , round } |
| The way two lines should be joined. More... | |
| enum class | line_join_style { none , bevel , miter , round } |
| The way two lines should be joined. More... | |
| enum class | border_side { on , inside , outside } |
| The side where the border is drawn. 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 | global_state_type : uint64_t { log_debug = 0x01 , log_info = 0x02 , log_statistics = 0x04 , log_trace = 0x08 , log_audit = 0x10 , log_warning = 0x20 , log_error = 0x40 , log_fatal = 0x80 , log_mask = log_debug | log_info | log_statistics | log_trace | log_audit | log_warning | log_error | log_fatal , log_level_default = log_audit | log_error | log_fatal , log_level_fatal = log_audit | log_fatal , log_level_error = log_trace | log_error | log_level_fatal , log_level_warning = log_warning | log_level_error , log_level_info = log_info | log_statistics | log_level_warning , log_level_debug = log_debug | log_level_info , log_is_running = 0x1'00 , time_stamp_utc_is_running = 0x2'00 , system_is_running = 0x1'000000'00 , system_is_shutting_down = 0x2'000000'00 , system_mask = system_is_running | system_is_shutting_down } |
| enum class | gui_window_size { normal , minimized , maximized , fullscreen } |
| enum class | keyboard_focus_direction { 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 | theme_mode { light , dark } |
| 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 | 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 , ExtraLight , Light , Regular , Medium , SemiBold , Bold , ExtraBold , Black , ExtraBlack } |
| 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 | semantic_text_style : unsigned char { label , small_label , warning , error , help , placeholder , link } |
| enum class | text_decoration { None , Underline , WavyUnderline , StrikeThrough } |
| Describes how a grapheme should be underlined when rendering the text. More... | |
| enum class | text_phrasing { regular , emphesis , strong , code , abbreviation , bold , italic , citation , keyboard , mark , math , example , unarticulated } |
| 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) , bold = 1 << to_underlying(text_phrasing::bold) , italic = 1 << to_underlying(text_phrasing::italic) , citation = 1 << to_underlying(text_phrasing::citation) , keyboard = 1 << to_underlying(text_phrasing::keyboard) , mark = 1 << to_underlying(text_phrasing::mark) , math = 1 << to_underlying(text_phrasing::math) , example = 1 << to_underlying(text_phrasing::example) , unarticulated = 1 << to_underlying(text_phrasing::unarticulated) , all } |
| enum class | tokenizer_name_t : uint8_t { NotAssigned , ErrorInvalidCharacter , ErrorEOTInBlockComment , ErrorEOTInString , ErrorLFInString , Name , StringLiteral , IntegerLiteral , DateLiteral , TimeLiteral , FloatLiteral , Operator , End } |
| enum class | unicode_bidi_bracket_type : uint8_t { n , o , c , m } |
| enum class | unicode_bidi_class : uint8_t { unknown = 0 , L = 1 , R = 2 , AL = 3 , EN = 4 , ES = 5 , ET = 6 , AN = 7 , CS = 8 , NSM = 9 , BN = 10 , B = 11 , S = 12 , WS = 13 , ON = 14 , LRE , LRO , RLE , RLO , PDF , LRI , RLI , FSI , PDI } |
| Bidirectional class Unicode Standard Annex #9: https://unicode.org/reports/tr9/. More... | |
| enum class | unicode_break_opportunity : uint8_t { no , yes , mandatory , unassigned } |
| enum class | unicode_decomposition_type : uint8_t { none , canonical , font , noBreak , initial , medial , _final , isolated , circle , super , sub , fraction , vertical , wide , narrow , small , square , compat } |
| enum class | unicode_east_asian_width { A , F , H , N , Na , W } |
| enum class | unicode_general_category : uint8_t { Lu , Ll , Lt , Lm , Lo , Mn , Mc , Me , Nd , Nl , No , Pc , Pd , Ps , Pe , Pi , Pf , Po , Sm , Sc , Sk , So , Zs , Zl , Zp , Cc , Cf , Cs , Co , Cn } |
| enum class | unicode_grapheme_cluster_break : uint8_t { Other , CR , LF , Control , Extend , ZWJ , Regional_Indicator , Prepend , SpacingMark , L , V , T , LV , LVT , Extended_Pictographic } |
| enum class | unicode_line_break_class : uint8_t { BK , CR , LF , CM , NL , SG , WJ , ZW , GL , SP , ZWJ , B2 , BA , BB , HY , CB , CL , CP , EX , IN , NS , OP , QU , IS , NU , PO , PR , SY , AI , AL , CJ , EB , EM , H2 , H3 , HL , ID , JL , L , JV , V , JT , T , RI , SA , XX } |
| Unicode line break class. More... | |
| enum class | unicode_normalization_mask { decompose_canonical = 1 << to_underlying(unicode_decomposition_type::canonical) , decompose_font = 1 << to_underlying(unicode_decomposition_type::font) , decompose_noBreak = 1 << to_underlying(unicode_decomposition_type::noBreak) , decompose_initial = 1 << to_underlying(unicode_decomposition_type::initial) , decompose_medial = 1 << to_underlying(unicode_decomposition_type::medial) , decompose_final = 1 << to_underlying(unicode_decomposition_type::_final) , decompose_isolated = 1 << to_underlying(unicode_decomposition_type::isolated) , decompose_circle = 1 << to_underlying(unicode_decomposition_type::circle) , decompose_super = 1 << to_underlying(unicode_decomposition_type::super) , decompose_sub = 1 << to_underlying(unicode_decomposition_type::sub) , decompose_fraction = 1 << to_underlying(unicode_decomposition_type::fraction) , decompose_vertical = 1 << to_underlying(unicode_decomposition_type::vertical) , decompose_wide = 1 << to_underlying(unicode_decomposition_type::wide) , decompose_narrow = 1 << to_underlying(unicode_decomposition_type::narrow) , decompose_small = 1 << to_underlying(unicode_decomposition_type::small) , decompose_square = 1 << to_underlying(unicode_decomposition_type::square) , decompose_compat = 1 << to_underlying(unicode_decomposition_type::compat) , decompose_control = 1 << 25 , compose_CRLF = 1 << 26 , decompose_newline_to_PS = 1 << 27 , decompose_newline_to_LF = 1 << 28 , decompose_newline_to_CRLF = 1 << 29 , decompose_newline_to_SP = 1 << 30 , decompose_newline = decompose_newline_to_PS | decompose_newline_to_LF | decompose_newline_to_CRLF | decompose_newline_to_SP , NFD = decompose_canonical , NFKD } |
| enum class | unicode_script : uint8_t { Zzzz , Common , Latin , Greek , Cyrillic , Armenian , Hebrew , Arabic , Syriac , Thaana , Devanagari , Bengali , Gurmukhi , Gujarati , Oriya , Tamil , Telugu , Kannada , Malayalam , Sinhala , Thai , Lao , Tibetan , Myanmar , Georgian , Hangul , Ethiopic , Cherokee , Canadian_Aboriginal , Ogham , Runic , Khmer , Mongolian , Hiragana , Katakana , Bopomofo , Han , Yi , Old_Italic , Gothic , Deseret , Inherited , Tagalog , Hanunoo , Buhid , Tagbanwa , Limbu , Tai_Le , Linear_B , Ugaritic , Shavian , Osmanya , Cypriot , Braille , Buginese , Coptic , New_Tai_Lue , Glagolitic , Tifinagh , Syloti_Nagri , Old_Persian , Kharoshthi , Balinese , Cuneiform , Phoenician , Phags_Pa , Nko , Sundanese , Lepcha , Ol_Chiki , Vai , Saurashtra , Kayah_Li , Rejang , Lycian , Carian , Lydian , Cham , Tai_Tham , Tai_Viet , Avestan , Egyptian_Hieroglyphs , Samaritan , Lisu , Bamum , Javanese , Meetei_Mayek , Imperial_Aramaic , Old_South_Arabian , Inscriptional_Parthian , Inscriptional_Pahlavi , Old_Turkic , Kaithi , Batak , Brahmi , Mandaic , Chakma , Meroitic_Cursive , Meroitic_Hieroglyphs , Miao , Sharada , Sora_Sompeng , Takri , Caucasian_Albanian , Bassa_Vah , Duployan , Elbasan , Grantha , Pahawh_Hmong , Khojki , Linear_A , Mahajani , Manichaean , Mende_Kikakui , Modi , Mro , Old_North_Arabian , Nabataean , Palmyrene , Pau_Cin_Hau , Old_Permic , Psalter_Pahlavi , Siddham , Khudawadi , Tirhuta , Warang_Citi , Ahom , Anatolian_Hieroglyphs , Hatran , Multani , Old_Hungarian , SignWriting , Adlam , Bhaiksuki , Marchen , Newa , Osage , Tangut , Masaram_Gondi , Nushu , Soyombo , Zanabazar_Square , Dogra , Gunjala_Gondi , Makasar , Medefaidrin , Hanifi_Rohingya , Sogdian , Old_Sogdian , Elymaic , Nandinagari , Nyiakeng_Puachue_Hmong , Wancho , Chorasmian , Dives_Akuru , Khitan_Small_Script , Yezidi , Cypro_Minoan , Old_Uyghur , Tangsa , Toto , Vithkuqi , Afaka , Arabic_Nastaliq , Blissymbols , Cirth , Cyrillic_Old_Church_Slavonic , Egyptian_Demotic , Egyptian_Hieratic , Han_Bopomofo , Han_Simplified , Han_Traditional , Indus , Jamo , Japanese , Japanese_Syllabaries , Jurchen , Kawi , Khitan_Large_Script , Khutsuri , Korean , Kpelle , Latin_Fraktur , Latin_Gaelic , Leke , Loma , Mayan_Hieroglyphs , Moon , Nag_Mundari , Naxi_Dongba , Nakhi_Geba , Proto_Cuneiform , Proto_Elamite , Book_Pahlavi , Kligon , Proto_Sinaitic , Private_Use_aa , Private_Use_bx , Ranjana , Rongorongo , Sarati , Shuishu , Sunuwar , Symbols , Symbols_Emoji , Syriac_Estrangelo , Syriac_Western , Syriac_Eastern , Tengwar , Unwritten_Documents , Visible_Speech , Woleai , Mathematical_Notation , Byzantine_Music , Music } |
| enum class | unicode_sentence_break_property : uint8_t { Other , CR , LF , Extend , Sep , Format , Sp , Lower , Upper , OLetter , Numeric , ATerm , SContinue , STerm , Close } |
| enum class | unicode_word_break_property : uint8_t { Other , CR , LF , Newline , Extend , ZWJ , Regional_Indicator , Format , Katakana , Hebrew_Letter , ALetter , Single_Quote , Double_Quote , MidNumLet , MidLetter , MidNum , Numeric , ExtendNumLet , WSegSpace } |
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 It , typename S , typename F > | |
| void | for_each_cluster (It first, It last, S IsClusterSeperator, F Function) |
| 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. | |
| 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. | |
| 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 |
| bool | bound_check (std::unsigned_integral auto index, std::unsigned_integral auto upper) noexcept |
| bool | bound_check (std::integral auto index, std::integral auto lower, std::integral auto upper) 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 | any (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 | any (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 | any (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< D > | bezierPointAt (geo::point< D > P1, geo::point< D > P2, float t) noexcept |
| template<int D> | |
| constexpr geo::point< D > | bezierPointAt (geo::point< D > P1, geo::point< D > C, geo::point< D > P2, float t) noexcept |
| template<int D> | |
| constexpr geo::point< D > | bezierPointAt (geo::point< D > P1, geo::point< D > C1, geo::point< D > C2, geo::point< D > P2, float t) noexcept |
| template<int D> | |
| constexpr geo::vector< D > | bezierTangentAt (geo::point< D > P1, geo::point< D > P2, float t) noexcept |
| template<int D> | |
| constexpr geo::vector< D > | bezierTangentAt (geo::point< D > P1, geo::point< D > C, geo::point< D > P2, float t) noexcept |
| template<int D> | |
| constexpr geo::vector< D > | bezierTangentAt (geo::point< D > P1, geo::point< D > C1, geo::point< D > C2, geo::point< 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 (pixel_map< 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 (pixel_map< 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 |
| template<typename T > | |
| constexpr T | copy (T value) noexcept |
| template<typename Out , std::derived_from< std::remove_pointer_t< Out > > In> requires std::is_pointer_v<Out> and (std::is_const_v<std::remove_pointer_t<Out>> == std::is_const_v<In> or std::is_const_v<std::remove_pointer_t<Out>>) | |
| constexpr Out | up_cast (In *rhs) noexcept |
| Cast a pointer to a class to its base class or itself. | |
| template<typename Out > requires std::is_pointer_v<Out> | |
| constexpr Out | up_cast (nullptr_t) noexcept |
| Cast a reference to a class to its base class or itself. | |
| template<typename Out , std::derived_from< std::remove_reference_t< Out > > In> requires std::is_reference_v<Out> and (std::is_const_v<std::remove_reference_t<Out>> == std::is_const_v<In> or std::is_const_v<std::remove_reference_t<Out>>) | |
| constexpr Out | up_cast (In &rhs) noexcept |
| Cast a reference to a class to its base class or itself. | |
| template<typename Out , base_of< std::remove_pointer_t< Out > > In> requires std::is_pointer_v<Out> and (std::is_const_v<std::remove_pointer_t<Out>> == std::is_const_v<In> or std::is_const_v<std::remove_pointer_t<Out>>) | |
| 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 , base_of< std::remove_reference_t< Out > > In> requires std::is_reference_v<Out> and ( std::is_const_v<std::remove_reference_t<Out>> == std::is_const_v<In> or std::is_const_v<std::remove_reference_t<Out>>) | |
| constexpr Out | down_cast (In &rhs) noexcept |
| Cast a reference to a class to its derived class or itself. | |
| template<arithmetic Out, arithmetic In> requires (type_in_range_v<Out, In>) | |
| constexpr Out | wide_cast (In rhs) noexcept |
| Cast a number to a type that will be able to represent all values without loss of precision. | |
| template<arithmetic Out> | |
| constexpr Out | wide_cast (bool rhs) noexcept |
| Cast a number to a type that will be able to represent all values without loss of precision. | |
| template<arithmetic Out, arithmetic In> | |
| constexpr Out | narrow (In rhs) noexcept(type_in_range_v< Out, In >) |
| Cast numeric values without loss of precision. | |
| template<arithmetic Out, arithmetic In> | |
| constexpr Out | narrow_cast (In rhs) noexcept |
| Cast numeric values without loss of precision. | |
| template<std::integral Out, arithmetic In> | |
| constexpr Out | truncate (In rhs) noexcept |
| 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 |
| 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<std::integral T> | |
| std::string | to_string (T const &value) noexcept |
| Convert integer to string. | |
| template<std::integral T> | |
| T | from_string (std::string_view str, int base=10) |
| Convert a string to an integer. | |
| template<std::floating_point T> | |
| T | from_string (std::string_view str) |
| Convert a string to an floating point. | |
| 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) |
| constexpr matrix3 | color_primaries_to_RGBtoXYZ (float wx, float wy, float rx, float ry, float gx, float gy, float bx, float by) noexcept |
| float | Rec2100_linear_to_gamma (float L) noexcept |
| float | Rec2100_gamma_to_linear (float N) noexcept |
| std::string_view | to_string (semantic_color rhs) noexcept |
| semantic_color | semantic_color_from_string (std::string_view str) |
| float | sRGB_linear_to_gamma (float u) noexcept |
| float | sRGB_gamma_to_linear (float u) noexcept |
| auto | sRGB_linear16_to_gamma8_table_generator () noexcept |
| uint8_t | sRGB_linear16_to_gamma8 (float16 u) noexcept |
| auto | sRGB_gamma8_to_linear16_table_generator () noexcept |
| float16 | sRGB_gamma8_to_linear16 (uint8_t u) noexcept |
| color | color_from_sRGB (float r, float g, float b, float a) noexcept |
| color | color_from_sRGB (uint8_t r, uint8_t g, uint8_t b, uint8_t a) noexcept |
| color | color_from_sRGB (std::string_view str) |
| 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) |
| constexpr char32_t | CP1252_to_UTF32 (char inputCharacter) noexcept |
| std::array< uint32_t, 4 > cpu_id_x64_result | cpu_id_x64 (uint32_t cpu_id_leaf) |
| template<int Bit> | |
| bool | cpu_id_leaf1_ecx () |
| template<int Bit> | |
| bool | cpu_id_leaf1_edx () |
| template<int Bit> | |
| bool | cpu_id_leaf7_ebx () |
| template<int Bit> | |
| bool | cpu_id_leaf7_ecx () |
| template<int Bit> | |
| bool | cpu_id_leaf7_edx () |
| bool | cpu_has_fpu () |
| bool | cpu_has_vme () |
| bool | cpu_has_de () |
| bool | cpu_has_pse () |
| bool | cpu_has_tsc () |
| bool | cpu_has_msr () |
| bool | cpu_has_pae () |
| bool | cpu_has_mce () |
| bool | cpu_has_cx8 () |
| bool | cpu_has_apic () |
| bool | cpu_has_sep () |
| bool | cpu_has_mtrr () |
| bool | cpu_has_pge () |
| bool | cpu_has_mca () |
| bool | cpu_has_cmov () |
| bool | cpu_has_pat () |
| bool | cpu_has_pse_36 () |
| bool | cpu_has_psn () |
| bool | cpu_has_clfsh () |
| bool | cpu_has_ds () |
| bool | cpu_has_acpi () |
| bool | cpu_has_mmx () |
| bool | cpu_has_fxsr () |
| bool | cpu_has_sse () |
| bool | cpu_has_sse2 () |
| bool | cpu_has_ss () |
| bool | cpu_has_htt () |
| bool | cpu_has_tm () |
| bool | cpu_has_ia64 () |
| bool | cpu_has_pbe () |
| bool | cpu_has_sse3 () |
| bool | cpu_has_pclmulqdq () |
| bool | cpu_has_dtes64 () |
| bool | cpu_has_monitor () |
| bool | cpu_has_ds_cpl () |
| bool | cpu_has_vmx () |
| bool | cpu_has_smx () |
| bool | cpu_has_est () |
| bool | cpu_has_tm2 () |
| bool | cpu_has_ssse3 () |
| bool | cpu_has_cnxt_id () |
| bool | cpu_has_sdbg () |
| bool | cpu_has_fma () |
| bool | cpu_has_cx16 () |
| bool | cpu_has_xtpr () |
| bool | cpu_has_pdcm () |
| bool | cpu_has_pcid () |
| bool | cpu_has_dca () |
| bool | cpu_has_sse4_1 () |
| bool | cpu_has_sse4_2 () |
| bool | cpu_has_x2apic () |
| bool | cpu_has_movbe () |
| bool | cpu_has_popcnt () |
| bool | cpu_has_tsc_deadline () |
| bool | cpu_has_aes () |
| bool | cpu_has_xsave () |
| bool | cpu_has_osxsave () |
| bool | cpu_has_avx () |
| bool | cpu_has_f16c () |
| bool | cpu_has_rdrnd () |
| bool | cpu_has_hypervisor () |
| bool | cpu_stepping () |
| bool | cpu_model_id () |
| bool | cpu_family_id () |
| bool | cpu_has_fsgsbase () |
| bool | cpu_has_tsc_adjust () |
| bool | cpu_has_sgx () |
| bool | cpu_has_bmi1 () |
| bool | cpu_has_hle () |
| bool | cpu_has_avx2 () |
| bool | cpu_has_smep () |
| bool | cpu_has_bmi2 () |
| bool | cpu_has_erms () |
| bool | cpu_has_invpcid () |
| bool | cpu_has_rtm () |
| bool | cpu_has_pqm () |
| bool | cpu_has_deprecated_fpu_cs_ds () |
| bool | cpu_has_mpx () |
| bool | cpu_has_pqe () |
| bool | cpu_has_avx512_f () |
| bool | cpu_has_avx512_dq () |
| bool | cpu_has_rdseed () |
| bool | cpu_has_adx () |
| bool | cpu_has_smap () |
| bool | cpu_has_avx512_ifma () |
| bool | cpu_has_pcommit () |
| bool | cpu_has_clflushopt () |
| bool | cpu_has_clwb () |
| bool | cpu_has_intelpt () |
| bool | cpu_has_avx512_pf () |
| bool | cpu_has_avx512_er () |
| bool | cpu_has_avx512_cd () |
| bool | cpu_has_sha () |
| bool | cpu_has_avx512_bw () |
| bool | cpu_has_avx512_vl () |
| bool | cpu_has_prefetchwt1 () |
| bool | cpu_has_avx512_vbmi () |
| bool | cpu_has_umip () |
| bool | cpu_has_pku () |
| bool | cpu_has_ospke () |
| bool | cpu_has_waitpkg () |
| bool | cpu_has_avx512_vmbi2 () |
| bool | cpu_has_shstk () |
| bool | cpu_has_gfni () |
| bool | cpu_has_vaes () |
| bool | cpu_has_vpclmulqdq () |
| bool | cpu_has_avx512_vnni () |
| bool | cpu_has_avx512_bitalg () |
| bool | cpu_has_avx512_vpopcntdq () |
| bool | cpu_has_5level_paging () |
| int | cpu_has_mawau () |
| bool | cpu_has_rdpid () |
| bool | cpu_has_cldemote () |
| bool | cpu_has_movdir () |
| bool | cpu_has_movdir64b () |
| bool | cpu_has_sgx_lc () |
| bool | cpu_has_avx512_4vnniw () |
| bool | cpu_has_avx512_4fmaps () |
| bool | cpu_has_fsrm () |
| bool | cpu_has_pconfig () |
| bool | cpu_has_ibt () |
| bool | cpu_has_spec_ctrl () |
| bool | cpu_has_stibp () |
| bool | cpu_has_capabilities () |
| bool | cpu_has_ssbd () |
| 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. | |
| void | prepare_debug_break () noexcept |
| template<std::invocable<> Func> | |
| defer (Func &&) -> defer< std::remove_cvref_t< Func > > | |
| 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) |
| template<std::unsigned_integral T> | |
| T | byte_swap (T x) noexcept |
| template<std::integral T> | |
| T | little_to_native (T x) |
| template<std::integral T> | |
| T | big_to_native (T x) |
| template<std::integral T> | |
| T | native_to_little (T x) |
| template<std::integral T> | |
| T | native_to_big (T x) |
| template<numeric T> | |
| hi_force_inline T | load (void const *src) noexcept |
| Load an integer from unaligned memory in native byte-order. | |
| template<numeric T> | |
| hi_force_inline T | load_le (void const *src) noexcept |
| Load an integer from unaligned memory in little-endian byte-order. | |
| template<numeric T> | |
| hi_force_inline T | load_be (void const *src) noexcept |
| Load an integer from unaligned memory in big-endian byte-order. | |
| template<std::unsigned_integral T> | |
| hi_force_inline void | unaligned_load_le (T &r, void const *src) noexcept |
| Load data from memory. | |
| template<std::unsigned_integral T> | |
| hi_force_inline void | unaligned_load_le (T &r, void const *src, size_t size, size_t offset=0) noexcept |
| Load data from memory. | |
| 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 > | |
| constexpr access_mode | operator| (access_mode const &lhs, access_mode const &rhs) noexcept |
| constexpr access_mode | operator& (access_mode const &lhs, access_mode const &rhs) noexcept |
| bool | operator>= (access_mode const &lhs, access_mode const &rhs)=delete |
| constexpr bool | any (access_mode const &rhs) noexcept |
| bool | operator>= (access_mode lhs, access_mode rhs) noexcept |
| True if all bits on rhs are set in lhs. | |
| template<std::size_t N> | |
| fixed_string (char const (&str)[N]) -> fixed_string< N - 1 > | |
| constexpr float | cvtsh_ss (uint16_t value) noexcept |
| constexpr uint16_t | cvtss_sh (float value) noexcept |
| 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 axis | operator& (axis const &lhs, axis const &rhs) noexcept |
| constexpr axis | operator| (axis const &lhs, axis const &rhs) noexcept |
| constexpr bool | any (axis const &rhs) noexcept |
| 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) |
| 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. | |
| constexpr global_state_type | operator| (global_state_type lhs, global_state_type rhs) noexcept |
| constexpr global_state_type | operator& (global_state_type lhs, global_state_type rhs) noexcept |
| constexpr global_state_type | operator~ (global_state_type rhs) noexcept |
| constexpr bool | to_bool (global_state_type rhs) noexcept |
| constexpr bool | is_system_running (global_state_type rhs) noexcept |
| constexpr bool | is_system_shutting_down (global_state_type rhs) noexcept |
| bool | is_system_running () noexcept |
| bool | is_system_shutting_down () noexcept |
| void | set_log_level (global_state_type log_level) noexcept |
| bool | global_state_disable (global_state_type subsystem, std::memory_order order=std::memory_order::seq_cst) noexcept |
| Disable a subsystem. | |
| bool | global_state_enable (global_state_type subsystem, std::memory_order order=std::memory_order::seq_cst) noexcept |
| Enable a subsystem. | |
| void | composit (pixel_map< sfloat_rgba16 > &dst, hi::color color, graphic_path const &mask) noexcept |
| Composit color onto the destination image where the mask is solid. | |
| void | composit (pixel_map< sfloat_rgba16 > &dst, graphic_path const &mask) noexcept |
| Composit color onto the destination image where the mask is solid. | |
| void | fill (pixel_map< 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 | any (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 | any (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 | any (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::string_view | to_string (theme_mode rhs) noexcept |
| std::ostream & | operator<< (std::ostream &lhs, theme_mode rhs) |
| 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 |
| std::vector< language_tag > | variants (std::vector< language_tag > languages) |
| Add variants to the list of languages. | |
| po_translations | parse_po (URL const &url) |
| std::string_view | get_translation (std::string_view msgid, long long n=0, std::vector< language * > const &languages=os_settings::languages()) noexcept |
| void | add_translation (std::string_view msgid, language const &language, std::vector< std::string > const &plural_forms) noexcept |
| void | add_translation (std::string_view msgid, std::string const &language_tag, std::vector< std::string > const &plural_forms) noexcept |
| void | add_translation (po_translations const &translations, language const &language) 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) |
| 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 long long | pow10ll (int x) 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 void | inplace_max (T &a, T const &b) noexcept |
| template<typename T > | |
| constexpr void | 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 |
| 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<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<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) |
| 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 | any (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 |
| template<std::floating_point T> | |
| constexpr T | points_to_dp (T x) noexcept |
| Convert points to device independent pixels. | |
| 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<typename T > | |
| void | copy (pixel_map< T > const &src, pixel_map< T > &dst) noexcept |
| template<int KERNEL_SIZE, typename KERNEL > | |
| void | horizontalFilterRow (pixel_row< uint8_t > row, KERNEL kernel) noexcept |
| template<int KERNEL_SIZE, typename T , typename KERNEL > | |
| void | horizontalFilter (pixel_map< T > &pixels, KERNEL kernel) noexcept |
| template<typename T > | |
| void | fill (pixel_map< T > &dst) noexcept |
| template<typename T > | |
| void | fill (pixel_map< T > &dst, T color) noexcept |
| template<typename T > | |
| void | rotate90 (pixel_map< T > &dst, pixel_map< T > const &src) noexcept |
| template<typename T > | |
| void | rotate270 (pixel_map< T > &dst, pixel_map< T > const &src) noexcept |
| void | mergeMaximum (pixel_map< uint8_t > &dst, pixel_map< uint8_t > const &src) noexcept |
| template<typename T > | |
| void | makeTransparentBorder (pixel_map< T > &pixel_map) noexcept |
| Make a 1 pixel border on the edge of the pixel_map transparent By copying the pixel value from just beyond the edge and setting the alpha channel to zero. | |
| 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 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) |
| __m128 | _mm_cvtph_ps_sse2 (__m128i value) noexcept |
| __m128i | _mm_cvtps_ph_sse4_1 (__m128 value) noexcept |
| void | fill (pixel_map< sfloat_rgba16 > &image, f32x4 color) noexcept |
| void | composit (pixel_map< sfloat_rgba16 > &under, pixel_map< sfloat_rgba16 > const &over) noexcept |
| void | composit (pixel_map< sfloat_rgba16 > &under, color over, pixel_map< uint8_t > const &mask) noexcept |
| constexpr int8_t | make_snorm_r8_value (float rhs) noexcept |
| void | fill (pixel_map< srgb_abgr8_pack > &dst, pixel_map< sfloat_rgba16 > const &src) noexcept |
| constexpr uint32_t | make_unorm_a2bgr10_pack_value (f32x4 const &rhs) noexcept |
| template<typename Container > | |
| auto | recursive_iterator_begin (Container &rhs) noexcept |
| Get a recursive iterator from the begin of a recursive container. | |
| template<typename Container > | |
| auto | recursive_iterator_end (Container &rhs) noexcept |
| Get a recursive iterator from one beyond the end of a recursive container. | |
| template<typename Container > | |
| auto | recursive_iterator_begin (Container const &rhs) noexcept |
| Get a recursive iterator from the begin of a recursive container. | |
| template<typename Container > | |
| auto | recursive_iterator_end (Container const &rhs) noexcept |
| Get a recursive iterator from one beyond the end of a recursive container. | |
| 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. | |
| std::string_view | as_string_view (resource_view const &rhs) noexcept |
| Get a span to the memory mapping. | |
| bstring_view | as_bstring_view (resource_view const &rhs) noexcept |
|
template<typename T , size_t E = std::dynamic_extent> requires (std::is_const_v<T>) | |
| std::span< T, E > | as_span (resource_view const &rhs) noexcept |
| template<typename T , size_t E = std::dynamic_extent> | |
| std::span< T, E > | as_writable_span (writable_resource_view &rhs) noexcept |
| 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. | |
| 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) |
| std::string | to_string (source_location const &rhs) noexcept |
| 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 |
|
template<typename T > requires (sizeof(T) == 1) | |
| constexpr uint32_t | fourcc_from_cstr (T 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<typename T > requires (is_atomic_v<T>) | |
| T::value_type | start_subsystem (T &check_variable, typename T::value_type off_value, typename T::value_type(*init_function)(), void(*deinit_function)()) |
| Start a sub-system. | |
| bool | start_subsystem (global_state_type state_bit, bool(*init_function)(), void(*deinit_function)()) |
| Start a sub-system. | |
| template<typename T > requires (is_atomic_v<T>) | |
| T::value_type | start_subsystem_or_terminate (T &check_variable, typename T::value_type off_value, typename T::value_type(*init_function)(), void(*deinit_function)()) |
| Start a sub-system. | |
| void | stop_subsystem (void(*deinit_function)()) |
| Stop a sub-system. | |
| void | start_system () noexcept |
| Start the system. | |
| void | shutdown_system () noexcept |
| Shutdown the system. | |
| 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 |
| constexpr font_weight | font_weight_from_int (numeric_integral auto rhs) |
| Convert a font weight value between 50 and 1000 to a font weight. | |
| font_weight | font_weight_from_string (std::string_view rhs) |
| constexpr char const * | to_const_string (font_weight const &x) noexcept |
| std::string | to_string (font_weight const &x) noexcept |
| 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) |
| bool | almost_equal (font_weight const &lhs, font_weight const &rhs) noexcept |
| constexpr auto | font_weight_alternative_table_generator () noexcept |
| constexpr font_weight | font_weight_alterative (font_weight weight, int i) noexcept |
| template<typename It , typename ItEnd > | |
| aarectangle | line_metrics_bounding_rectangle (It first, ItEnd last) |
| Calculate the bounding box around line metrics. | |
| template<typename It , typename ItEnd > | |
| void | update_line_metrics_offset (It first, ItEnd last) noexcept |
| template<typename It , typename ItEnd > | |
| void | update_line_metrics_vertical_alignment (It first, ItEnd last, vertical_alignment alignment) |
| Vertically align the given line metrics. | |
| template<typename It , typename ItEnd , typename CharInfoFunc > | |
| void | replace_line_metrics (It first, ItEnd last, CharInfoFunc const &char_info_func, float max_line_width, float line_spacing, float paragraph_spacing, vertical_alignment alignment, std::vector< line_metrics > &lines) noexcept |
| std::string_view | to_string (text_decoration const &rhs) noexcept |
| std::ostream & | operator<< (std::ostream &lhs, text_decoration const &rhs) |
| constexpr text_phrasing_mask | to_text_phrasing_mask (text_phrasing const &rhs) noexcept |
| 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 bool | all (text_phrasing_mask const &rhs) noexcept |
| constexpr bool | to_bool (text_phrasing_mask const &rhs) noexcept |
| thread_id | current_thread_id () noexcept |
| Get the current thread id. | |
| void | set_thread_name (std::string_view name) noexcept |
| Set the name of the current thread. | |
| std::string | get_thread_name (thread_id id) noexcept |
| Get the thread name of a thread id. | |
| std::vector< bool > | process_affinity_mask () noexcept |
| Get the current process CPU affinity mask. | |
| std::vector< bool > | set_thread_affinity_mask (std::vector< bool > const &mask) |
| Set the current thread CPU affinity mask. | |
| std::vector< bool > | set_thread_affinity (std::size_t cpu_id) |
| Set the current thread CPU affinity to a single CPU. | |
| std::size_t | advance_thread_affinity (std::size_t &cpu) noexcept |
| Advance thread affinity to the next CPU. | |
| std::size_t | current_cpu_id () noexcept |
| Get the current CPU id. | |
| 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 |
| gstring | to_gstring (std::u32string_view rhs, char32_t new_line_char=U'\u2029') noexcept |
| Convert a UTF-32 string to a grapheme-string. | |
| gstring | to_gstring (std::string_view rhs, char32_t new_line_char=U'\u2029') noexcept |
| Convert a UTF-8 string to a grapheme-string. | |
| gstring | to_gstring (std::string const &rhs, char32_t new_line_char=U'\u2029') noexcept |
| Convert a UTF-8 string to a grapheme-string. | |
| std::string | to_string (gstring_view rhs) noexcept |
| std::string | to_string (gstring const &rhs) noexcept |
| template<typename It , typename GetDescription , typename SetCodePoint , typename SetTextDirection > | |
| std::pair< It, std::vector< unicode_bidi_class > > | unicode_bidi (It first, It last, GetDescription get_description, 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 EndIt , typename DescriptionFunc > | |
| It | unicode_bidi_control_filter (It first, EndIt last, DescriptionFunc const &description_func) |
| Removes control characters which will not survive the bidi-algorithm. | |
| constexpr bool | is_isolate_starter (unicode_bidi_class const &rhs) noexcept |
| constexpr bool | is_isolate_formatter (unicode_bidi_class const &rhs) noexcept |
| constexpr bool | is_NI (unicode_bidi_class const &rhs) noexcept |
| constexpr bool | is_control (unicode_bidi_class const &rhs) noexcept |
| constexpr unicode_bidi_class | unicode_bidi_class_from_string (std::string_view str) noexcept |
| std::ostream & | operator<< (std::ostream &lhs, unicode_break_opportunity const &rhs) |
| constexpr bool | is_LC (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_L (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_M (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_Mn_or_Mc (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_N (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_P (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_S (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_Z (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_Zp_or_Zl (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_C (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_visible (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_noncharacter (char32_t rhs) noexcept |
| constexpr float | unicode_line_break_width (std::vector< float >::const_iterator first, std::vector< float >::const_iterator last) noexcept |
| Calculate the width of a line. | |
| template<typename It , typename ItEnd , typename DescriptionFunc > | |
| unicode_break_vector | unicode_line_break (It first, ItEnd last, DescriptionFunc const &description_func) |
| 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 unicode_normalization_mask | decompose_newline_to (char32_t new_line_char) noexcept |
| constexpr bool | any (unicode_normalization_mask const &rhs) noexcept |
| constexpr unicode_normalization_mask | operator| (unicode_normalization_mask const &lhs, unicode_normalization_mask const &rhs) noexcept |
| constexpr unicode_normalization_mask | operator& (unicode_normalization_mask const &lhs, unicode_normalization_mask const &rhs) noexcept |
| constexpr unicode_normalization_mask | operator& (unicode_normalization_mask const &lhs, unicode_decomposition_type const &rhs) noexcept |
| std::u32string | unicode_NFD (std::u32string_view text, unicode_normalization_mask normalization_mask=unicode_normalization_mask::NFD) noexcept |
| Convert text to Unicode-NFD normal form. | |
| std::u32string | unicode_NFC (std::u32string_view text, unicode_normalization_mask normalization_mask=unicode_normalization_mask::NFD) noexcept |
| Convert text to Unicode-NFC normal form. | |
| std::u32string | unicode_NFKD (std::u32string_view text, unicode_normalization_mask normalization_mask=unicode_normalization_mask::NFKD) noexcept |
| Convert text to Unicode-NFKD normal form. | |
| std::u32string | unicode_NFKC (std::u32string_view text, unicode_normalization_mask normalization_mask=unicode_normalization_mask::NFKD) noexcept |
| Convert text to Unicode-NFKC normal form. | |
| template<typename It , typename ItEnd , typename DescriptionFunc > | |
| unicode_break_vector | unicode_sentence_break (It first, ItEnd last, DescriptionFunc const &description_func) |
| The unicode word break algorithm UAX#29. | |
| bool | breaks_grapheme (char32_t code_point, grapheme_break_state &state) noexcept |
| Check if for a grapheme break before the given code-point. | |
| 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 It , typename ItEnd , typename DescriptionFunc > | |
| unicode_break_vector | unicode_word_break (It first, ItEnd last, DescriptionFunc const &description_func) |
| The unicode word break algorithm UAX#29. | |
| constexpr bool | is_urlchar_alpha (char c) |
| constexpr bool | is_urlchar_digit (char c) |
| constexpr bool | is_urlchar_gen_delims (char c) |
| constexpr bool | is_urlchar_sub_delims (char c) |
| constexpr bool | is_urlchar_unreserved (char c) |
| constexpr bool | is_urlchar_reserved (char c) |
| constexpr bool | is_urlchar_pchar (char c) |
| constexpr bool | is_urlchar_pchar_forward (char c) |
| constexpr bool | is_urlchar_pchar_backward (char c) |
| std::string | url_encode_part (std::string_view input, std::function< bool(char)> unreserved_char_check) noexcept |
| std::string | url_encode (std::string_view input) noexcept |
| std::string | url_decode (std::string_view input, bool plus_to_space=false) noexcept |
| url_parts | parse_url (std::string_view url) noexcept |
| url_parts | parse_path (std::string_view path, std::string &encodedPath) noexcept |
| std::string | generate_url (url_parts const &parts) noexcept |
| std::string | generate_path (url_parts const &parts, char sep='/') noexcept |
| std::string | generate_native_path (url_parts const &parts) noexcept |
| void | normalize_url_path (url_parts &parts) noexcept |
| std::string | normalize_url (std::string_view url) noexcept |
| url_parts | concatenate_url_path (url_parts lhs, url_parts const &rhs) noexcept |
| std::string | concatenate_url_path (std::string_view lhs, std::string_view rhs) noexcept |
| std::string | concatenate_url_filename (url_parts lhs, std::string_view rhs) noexcept |
| std::string | concatenate_url_filename (std::string_view lhs, std::string_view rhs) noexcept |
| std::string | filename_from_path (std::string_view path) noexcept |
| template<typename T , typename U > | |
| bool | compare_store (T &lhs, U &&rhs) noexcept |
| Compare then store if there was a change. | |
| template<typename T , typename U > | |
| bool | compare_store (std::atomic< T > &lhs, U &&rhs) noexcept |
| Compare then store if there was a change. | |
| template<awaitable... Others> | |
| when_any (Others &&...) -> when_any< awaitable_cast_t< std::decay_t< Others > >... > | |
Variables | |
| constexpr std::size_t | hardware_destructive_interference_size = 128 |
| constexpr std::size_t | hardware_constructive_interference_size = 64 |
| 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} |
| constexpr matrix3 | Rec2020_to_XYZ = color_primaries_to_RGBtoXYZ(0.3127f, 0.3290f, 0.708f, 0.292f, 0.170f, 0.797f, 0.131f, 0.046f) |
| constexpr matrix3 | XYZ_to_Rec2020 = ~Rec2020_to_XYZ |
| constexpr matrix3 | Rec2100_to_XYZ = Rec2020_to_XYZ |
| constexpr matrix3 | XYZ_to_Rec2100 = XYZ_to_Rec2020 |
| constexpr auto | semantic_color_metadata |
| constexpr matrix3 | sRGB_to_XYZ |
| constexpr matrix3 | XYZ_to_sRGB |
| auto | sRGB_linear16_to_gamma8_table = sRGB_linear16_to_gamma8_table_generator() |
| auto | sRGB_gamma8_to_linear16_table = sRGB_gamma8_to_linear16_table_generator() |
| template<fixed_string Tag> | |
| detail::tagged_counter< Tag > | global_counter |
| std::array< uint32_t, 4 > | cpu_id_leaf1 = cpu_id_x64(1) |
| std::array< uint32_t, 4 > | cpu_id_leaf7 = cpu_id_x64(7) |
| template<typename T > | |
| constexpr bool | is_datum_type_v = is_datum_type<T>::value |
| 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 |
| unfair_recursive_mutex | gfx_system_mutex |
| Global mutex for GUI elements, like gfx_system, gfx_device, Windows and Widgets. | |
| constexpr auto | subpixel_orientation_metadata |
| std::atomic< global_state_type > | global_state = global_state_type::log_level_default |
| The global state of the hikogui framework. | |
| constexpr auto | keyboard_virtual_key_metadata |
| constexpr auto | theme_mode_metadata = enum_metadata{theme_mode::light, "light", theme_mode::dark, "dark"} |
| constexpr long long | pow10_table [20] |
| 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> |
| std::atomic< static_resource_item const * > | static_resource_list = nullptr |
| The start of the list of static resource items. | |
| hilet | font_weight_from_string_table |
| constexpr auto | font_weight_alternative_table = font_weight_alternative_table_generator() |
| constexpr auto | semantic_text_style_metadata |
| constexpr auto | text_decoration_metadata |
| constexpr auto | text_phrasing_metadata |
| constexpr std::size_t | maximum_num_cpus = 64 |
| 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<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 precision by numeric type Out. | |
| template<typename Context , typename Expected , typename... OtherExpected> | |
| constexpr bool | is_forward_of_v = is_forward_of<Context, Expected, OtherExpected...>::value |
| constexpr auto | ucd_compositions |
| constexpr auto | ucd_decompositions |
| constexpr auto | ucd_descriptions |
| constexpr auto | ucd_index |
| constexpr char32_t | unicode_replacement_character = U'\ufffd' |
| constexpr char32_t | unicode_LS = U'\u2028' |
| constexpr char32_t | unicode_PS = U'\u2029' |
| constexpr char | native_path_seperator = (operating_system::current == operating_system::windows) ? '\\' : '/' |
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.
| using v1::jsonpath_node |
| 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.
| using v1::os_handle = void * |
Minimum offset between two objects to avoid false sharing.
Guaranteed to be at least alignof(std::max_align_t) Part of c++17 but never implemented by clang or gcc. Maximum size of contiguous memory to promote true sharing. Guaranteed to be at least alignof(std::max_align_t) Part of c++17 but never implemented by clang or gcc.
| using v1::variant_decay_t = variant_decay<T>::type |
|
strong |
|
strong |
|
strong |
|
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 way two lines should be joined.
|
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.
|
strong |
|
strong |
|
strong |
Bidirectional class Unicode Standard Annex #9: https://unicode.org/reports/tr9/.
|
strong |
|
strong |
Unicode line break class.
See "AUX14: Unicode line break algorithm" http://unicode.org/reports/tr14/
|
strong |
|
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. |
|
noexcept |
Advance thread affinity to the next CPU.
It is possible to detect when advance_thread_affinity() is at the last cpu; in that case the cpu parameter is less than or equal to the return value.
| [in,out] | cpu | On input The cpu to start a search in the available-cpu list. On output the cpu next on the available-cpu list. |
|
inlinenoexcept |
Get a span to the memory mapping.
|
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. |
Binary Operator Precedence according to C++.
Get the bit index of the single bit of the network_event mask.
|
noexcept |
Check if for a grapheme break before the given code-point.
Code points must be tested in order, starting at the beginning of the text.
| code_point | Current code point to test. |
| state | Current state of the grapheme-break algorithm. |
|
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. |
| 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 |
Compare then store if there was a change.
Compare then store if there was a change.
|
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 |
Concatenate a string to the filename of the url.
|
noexcept |
Concatenate a string to the filename of the url.
|
noexcept |
Concatenate the paths of the url. This function retains all other parts of the URL of the lhs.
Concatenate the paths of the url. This function retains all other parts of the URL of the lhs.
|
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.
|
noexcept |
Get the current CPU id.
|
inlinenoexcept |
Get the current thread id.
Get the current thread id quickly.
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". |
|
constexprnoexcept |
Cast a reference to a class to its derived class or itself.
| rhs | A reference to an object that is of type Out. |
|
constexprnoexcept |
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 |
|
noexcept |
Lock-free fetch-then-max operation on an atomic.
|
noexcept |
Lock-free fetch-then-min operation on an atomic.
|
noexcept |
Extract a filename from a path.
|
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. |
Clear the pixels of this (sub)image.
|
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. |
|
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.
For each cluster. func() is executed for each cluster that is found between first-last. A cluster is found between two separators, a separator is detected with IsClusterSeperator(). A cluster does not include the separator itself.
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 |
| T v1::from_string | ( | std::string_view | str | ) |
Convert a string to an floating point.
This function bypasses std::locale
| T | The integer type. |
| str | The string is an integer. |
| T v1::from_string | ( | std::string_view | str, |
| int | base = 10 ) |
Convert a string to an integer.
This function bypasses std::locale
| T | The integer type. |
| str | The string is an integer. |
| base | The base radix of the string encoded integer. |
|
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. |
|
noexcept |
Get the thread name of a thread id.
This function is designed to be reasonably fast, so that it can be used in the logger thread.
| id | The thread id. |
set_hread_name(). Or the numeric thread-id as string.
|
inlinenoexcept |
Find the intersect points between two line segments.
|
inlinenoexcept |
Find the intersect points between two line segments.
|
inlinenoexcept |
Disable a subsystem.
| subsystem | The subsystem to disable. |
| order | Memory order to use on the global_state variable. |
|
inlinenoexcept |
Enable a subsystem.
| subsystem | The subsystem to disable. |
| order | Memory order to use on the global_state variable. |
|
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.
|
inline |
Calculate the bounding box around line metrics.
| first | A iterator to the first line metrics element. |
| last | A iterator one beyond the last line metrics element |
Load an integer from unaligned memory in native byte-order.
Load an integer from unaligned memory in big-endian byte-order.
Load an integer from unaligned memory in little-endian byte-order.
|
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. |
Make a 1 pixel border on the edge of the pixel_map transparent By copying the pixel value from just beyond the edge and setting the alpha channel to zero.
This allows bi-linear interpolation to interpolate color correctly while anti-aliasing the edge.
|
constexprnoexcept |
Return the upper half of the input value.
Merge two image by applying std::max on each pixel.
Multiply with overflow detection.
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. |
| std::bad_cast | when the value could not be casted without loss of precision. |
|
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. |
|
inlinenoexcept |
Normalize string to use only line-feeds.
|
noexcept |
Normalize the parts of an url.
|
inlinenoexcept |
True if all bits on rhs are set in lhs.
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 | URL 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 a filesystem path and return its parts. This will detect the path seperator that is used in the path. On windows this is useful because both forward-slash and back-slash is possible.
Because parse_path() creates a temporary string that is a url_encoded() version of the path, and url_parts will contain views to this temporary string, we need pass this temporary string as a parameter to handle ownership correctly.
| path | A UTF-8 string representing a file. |
| encodedPath | A string that was created in the scope where url_parts is used. |
|
inline |
Parse a spreadsheet address.
| address | The address to parse. |
| start_column_nr | A relative column in the address is added to the start-column. |
| start_row_nr | A relative row in the address is added to the start-row. |
|
noexcept |
Parse a url and return its parts.
| url | The url 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.
|
noexcept |
Get the current process CPU affinity mask.
Get a recursive iterator from the begin of a recursive container.
Get a recursive iterator from the begin of a recursive container.
Get a recursive iterator from one beyond the end of a recursive container.
Get a recursive iterator from one beyond the end of a recursive container.
| 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 |
Rotate an image 270 degrees counter-clockwise.
|
noexcept |
Rotate an image 90 degrees counter-clockwise.
|
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. |
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. |
| std::vector< bool > v1::set_thread_affinity | ( | std::size_t | cpu_id | ) |
Set the current thread CPU affinity to a single CPU.
The given processor index must be a part of the mask returned from process_affinity_mask().
| cpu_id | The index of the CPU the thread should run on. |
| std::os_error | When unable to set the thread affinity to the given index |
| std::vector< bool > v1::set_thread_affinity_mask | ( | std::vector< bool > const & | mask | ) |
Set the current thread CPU affinity mask.
The given mask must be a strict subset of the mask returned from process_affinity_mask().
| mask | A bit mask on which CPUs the thread should run on. |
| std::os_error | When unable to set the thread affinity to the given index |
|
noexcept |
Set the name of the current thread.
This function will set the name of the thread so that it is available by the operating system and debugger.
Every thread should call this function exactly once.
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. |
|
inlinenoexcept |
Shutdown the system.
This will shutdown all the registered deinit functions.
Any attempts at registering deinit functions after this call will fail and the deinit function will be called directly.
|
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)
|
inline |
Start a sub-system.
Initialize a subsystem. The subsystem is not started if the following conditions are true:
This will also register the deinit function to be called on system shutdown.
| state_bit | The global state bit to check if the subsystem is already initialized. |
| init_function | The init function to call to initialize the subsystem |
| deinit_function | the deinit function to call when shutting down the system. |
| T::value_type v1::start_subsystem | ( | T & | check_variable, |
| typename T::value_type | off_value, | ||
| typename T::value_type(*)() | init_function, | ||
| void(*)() | deinit_function ) |
Start a sub-system.
Initialize a subsystem. The subsystem is not started if the following conditions are true:
This will also register the deinit function to be called on system shutdown.
| check_variable | The variable to check before initializing. |
| off_value | The value of the check_variable when the subsystem is off. |
| init_function | The init function to call to initialize the subsystem |
| deinit_function | the deinit function to call when shutting down the system. |
| T::value_type v1::start_subsystem_or_terminate | ( | T & | check_variable, |
| typename T::value_type | off_value, | ||
| typename T::value_type(*)() | init_function, | ||
| void(*)() | deinit_function ) |
Start a sub-system.
Initialize a subsystem. The subsystem is not started if the following conditions are true:
If the subsystem was unable to be started because of the previous conditions then this function will std::terminate() the program.
This will also register the deinit function to be called on system shutdown.
| check_variable | The variable to check before initializing. |
| off_value | The value of the check_variable when the subsystem is off. |
| init_function | The init function to call to initialize the subsystem |
| deinit_function | the deinit function to call when shutting down the system. |
|
inlinenoexcept |
Start the system.
Subsystems will only initialize once the system is started.
Stop a sub-system.
De-initialize a subsystem.
This will unregister and call the deinit function.
| deinit_function | the deinit function to call. |
|
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
|
inlinenoexcept |
Convert a UTF-8 string to a grapheme-string.
| rhs | The UTF-8 string to convert. |
| new_line_char | The new_line_character to use. |
Convert a UTF-8 string to a grapheme-string.
| rhs | The UTF-8 string to convert. |
| new_line_char | The new_line_character to use. |
Convert a UTF-32 string to a grapheme-string.
| rhs | The UTF-32 string to convert. |
| new_line_char | The new_line_character to use. |
|
inline |
Parse a key-binding modifier name.
| s | The modifier name, with or without the canonical trailing '+' |
|
noexcept |
Convert integer to string.
Convert floating point to string.
This function bypasses std::locale.
| value | The signed or unsigned integer value. |
|
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.
|
inline |
Transform an input container to the output container.
| input | Input container. |
| operation | A function to execute on each element in the input |
|
noexcept |
Load data from memory.
| [out] | r | The return value, overwrites all bits in the value at offset. |
| src | The memory location to read the data from. |
|
noexcept |
Load data from memory.
| [in,out] | r | The return value, overwrites the bits in the value at offset. |
| src | The memory location to read the data from. | |
| size | The number of bytes to load. | |
| offset | Byte offset in r where the bits are overwritten |
| std::pair< It, std::vector< unicode_bidi_class > > v1::unicode_bidi | ( | It | first, |
| It | last, | ||
| GetDescription | get_description, | ||
| 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.
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_description | A function to get the unicode description 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. |
| It v1::unicode_bidi_control_filter | ( | It | first, |
| EndIt | last, | ||
| DescriptionFunc const & | description_func ) |
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. |
| description_func | A function returning a unicode_description const& of the character. |
|
inline |
The unicode line break algorithm UAX #14.
| first | An iterator to the first character. |
| last | An iterator to the last character. |
| description_func | A function to get a reference to unicode_description from 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 |
Calculate the width of a line.
| first | Iterator to the first character widths. |
| last | Iterator to one beyond the last character width. |
|
noexcept |
Convert text to Unicode-NFC normal form.
Code point 0x00'ffff is used internally, do not pass in text.
| text | to normalize, in-place. |
| normalization_mask | Extra features for normalization. |
|
noexcept |
Convert text to Unicode-NFD normal form.
Code point 0x00'ffff is used internally, do not pass in text.
| text | to normalize, in-place. |
| normalization_mask | Extra features for normalization. |
|
noexcept |
Convert text to Unicode-NFKC normal form.
Code point 0x00'ffff is used internally, do not pass in text.
| text | to normalize, in-place. |
| normalization_mask | Extra features for normalization. |
|
noexcept |
Convert text to Unicode-NFKD normal form.
Code point 0x00'ffff is used internally, do not pass in text.
| text | to normalize, in-place. |
| normalization_mask | Extra features for normalization. |
|
inline |
The unicode word break algorithm UAX#29.
| first | An iterator to the first character. |
| last | An iterator to the last character. |
| description_func | A function to get a reference to unicode_description from a character. |
|
inline |
The unicode word break algorithm UAX#29.
| first | An iterator to the first character. |
| last | An iterator to the last character. |
| description_func | A function to get a reference to unicode_description 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. |
|
constexprnoexcept |
Cast a reference to a class to its base class or itself.
|
constexprnoexcept |
Cast a pointer to a class to its base class or itself.
Cast a reference to a class to its base class or itself.
|
inline |
Vertically align the given line metrics.
| first | A iterator to the first line metrics element. |
| last | A iterator one beyond the last line metrics element |
| alignment | How to vertically align the lines. |
|
noexcept |
Replace all percent-encoding with actual characters from a part of a URL.
space-to-plus encoding is part of encoding a query string inside application/x-www-form-urlencoded. It is probably safe do url_decode space-to-plus for query strings.
| input | url-encoded string. |
| plus_to_space | Convert '+' character to space ' ' characters. |
|
noexcept |
Replace reserved characters with percent-encoding.
| input | string to potentially encode. |
| unreserved_char_check | a function pointer to check if a character is unreserved. |
| 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 a number to a type that will be able to represent all values without loss of precision.
Cast a number to a type that will be able to represent all values without loss of precision.
|
noexcept |
Wrap lines in text that are too wide.
This algorithm may modify white-space in text and change them into line seperators. 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 |
|
inline |
Global mutex for GUI elements, like gfx_system, gfx_device, Windows and Widgets.
|
inline |
The global state of the hikogui framework.
This variable contains state in use by multiple systems inside hikogui. This is done so that this variable is likely to be in a cache line and may stay in a register.
In many cases using std::memory_order::relaxed loads are enough of a guarantee to read this variable.
|
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 |
|
constexpr |
The number of points (typography) per inch.
|
inline |
The start of the list of static resource items.
The std::atomic pointer constructor is constexpr therefor the variable is initialized at compile time. This is before any of the dynamic initializer is called, which will modify this pointer at run-time.
All values of numeric type In can be represented without loss of precision by numeric type Out.