|
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. | |
Typedefs | |
| 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 | 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> |
| template<typename T > | |
| using | awaitable_cast_t = awaitable_cast<T>::type |
| Resolve the type that is directly-awaitable. | |
| template<typename T > | |
| using | await_resume_result_t = await_resume_result<T>::type |
| Get the result type of an awaitable. | |
| using | font_family_id = tagged_id<uint16_t, "font_family_id"> |
| using | glyph_id = tagged_id<uint16_t, "glyph_id"> |
| using | ubig128 = bigint<uint64_t, 2, false> |
| using | big128 = bigint<uint64_t, 2, true> |
| using | uuid = bigint<uint64_t, 2, false> |
| using | money = fixed<safe_int<int64_t>, 100> |
| using | finterval = interval<float> |
| using | dinterval = interval<double> |
| using | results1 = hi::results<double, 1> |
| using | results2 = hi::results<double, 2> |
| using | results3 = hi::results<double, 3> |
| using | sint64_t = safe_int<int64_t, on_overflow_t::Saturate> |
| using | sint32_t = safe_int<int32_t, on_overflow_t::Saturate> |
| using | sint16_t = safe_int<int16_t, on_overflow_t::Saturate> |
| using | sint8_t = safe_int<int8_t, on_overflow_t::Saturate> |
| using | suint64_t = safe_int<uint64_t, on_overflow_t::Saturate> |
| using | suint32_t = safe_int<uint32_t, on_overflow_t::Saturate> |
| using | suint16_t = safe_int<uint16_t, on_overflow_t::Saturate> |
| using | suint8_t = safe_int<uint8_t, on_overflow_t::Saturate> |
| using | aint64_t = safe_int<int64_t, on_overflow_t::Assert> |
| using | aint32_t = safe_int<int32_t, on_overflow_t::Assert> |
| using | aint16_t = safe_int<int16_t, on_overflow_t::Assert> |
| using | aint8_t = safe_int<int8_t, on_overflow_t::Assert> |
| using | auint64_t = safe_int<uint64_t, on_overflow_t::Assert> |
| using | auint32_t = safe_int<uint32_t, on_overflow_t::Assert> |
| using | auint16_t = safe_int<uint16_t, on_overflow_t::Assert> |
| using | auint8_t = safe_int<uint8_t, on_overflow_t::Assert> |
| using | tint64_t = safe_int<int64_t, on_overflow_t::Throw> |
| using | tint32_t = safe_int<int32_t, on_overflow_t::Throw> |
| using | tint16_t = safe_int<int16_t, on_overflow_t::Throw> |
| using | tint8_t = safe_int<int8_t, on_overflow_t::Throw> |
| using | tuint64_t = safe_int<uint64_t, on_overflow_t::Throw> |
| using | tuint32_t = safe_int<uint32_t, on_overflow_t::Throw> |
| using | tuint16_t = safe_int<uint16_t, on_overflow_t::Throw> |
| using | tuint8_t = safe_int<uint8_t, on_overflow_t::Throw> |
| using | xint64_t = safe_int<int64_t, on_overflow_t::Axiom> |
| using | xint32_t = safe_int<int32_t, on_overflow_t::Axiom> |
| using | xint16_t = safe_int<int16_t, on_overflow_t::Axiom> |
| using | xint8_t = safe_int<int8_t, on_overflow_t::Axiom> |
| using | xuint64_t = safe_int<uint64_t, on_overflow_t::Axiom> |
| using | xuint32_t = safe_int<uint32_t, on_overflow_t::Axiom> |
| using | xuint16_t = safe_int<uint16_t, on_overflow_t::Axiom> |
| using | xuint8_t = safe_int<uint8_t, on_overflow_t::Axiom> |
| using | longreg_t = int64_t |
| Signed integer twice the size of a standard CPU register. | |
| using | ulongreg_t = uint64_t |
| Unsigned integer twice the size of a standard CPU register. | |
| template<typename T > | |
| using | observer_decay_t = observer_decay<T>::type |
| using | _sip_hash24 = sip_hash<2, 4> |
| using | utc_nanoseconds = std::chrono::utc_time<std::chrono::nanoseconds> |
| using | sys_nanoseconds = std::chrono::sys_time<std::chrono::nanoseconds> |
| using | gstring = std::basic_string<grapheme> |
| using | gstring_view = std::basic_string_view<grapheme> |
| using | unicode_break_vector = std::vector<unicode_break_opportunity> |
| using | unicode_break_iterator = unicode_break_vector::iterator |
| using | unicode_break_const_iterator = unicode_break_vector::const_iterator |
| using | intreg_t = int32_t |
| using | uintreg_t = uint32_t |
| using | int128_t = __int128 |
| Signed 128 bit integer. | |
| using | uint128_t = unsigned __int128 |
| Unsigned 128 bit integer. | |
| using | os_handle = void * |
| using | file_handle = os_handle |
| using | thread_id = uint32_t |
| template<typename T > | |
| using | forward_value_t = typename forward_value<T>::type |
Get the storage type of the forward_value functor. | |
| template<typename T > | |
| using | make_string_t = typename make_string<T>::type |
| type-trait to convert a character to a string type. | |
| template<typename T > | |
| using | make_string_view_t = typename make_string_view<T>::type |
| type-trait to convert a character to a string_view type. | |
| template<typename T , typename U > | |
| using | make_promote_t = typename make_promote<T,U>::type |
| template<typename T > | |
| using | make_intmax_t = typename make_intmax<T>::type |
| template<std::size_t N> | |
| using | make_intxx_t = typename make_intxx<N>::type |
| template<std::size_t N> | |
| using | make_uintxx_t = typename make_uintxx<N>::type |
| template<std::size_t N> | |
| using | make_floatxx_t = typename make_floatxx<N>::type |
| template<std::integral L, std::integral... R> | |
| using | common_integer_t = common_integer<L, R...>::type |
| Get an integer type that will fit all values from all template parameters. | |
| template<typename T > | |
| using | remove_cvptr_t = remove_cvptr<T>::type |
| template<typename To , typename From > | |
| using | copy_cv_t = typename copy_cv<To,From>::type |
| Type-trait to copy const volatile qualifiers from one type to another. | |
| template<typename First , typename Second > | |
| using | use_first_t = use_first<First,Second> |
| template<typename Context > | |
| using | forward_copy_or_ref_t = forward_copy_or_ref<Context>::type |
| template<typename T > | |
| using | variant_decay_t = variant_decay<T>::type |
Enumerations | |
| enum class | callback_flags { synchronous = 0x00 , local = 0x01 , main = 0x02 , timer = 0x03 , once = 0x1'00 } |
| enum class | socket_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 | socket_error : uint8_t { success = 0 , af_not_supported , connection_refused , network_unreachable , no_buffers , timeout , network_down , connection_reset , connection_aborted } |
| enum class | elusive_icon : char32_t { AddressBook = 0xf102 , AddressBookAlt = 0xf101 , Adjust = 0xf104 , AdjustAlt = 0xf103 , Adult = 0xf105 , AlignCenter = 0xf106 , AlignJustify = 0xf107 , AlignLeft = 0xf108 , AlignRight = 0xf109 , ArrowDown = 0xf10a , ArrowLeft = 0xf10b , ArrowRight = 0xf10c , ArrowUp = 0xf10d , Asl = 0xf10e , Asterisk = 0xf10f , Backward = 0xf110 , BanCircle = 0xf111 , Barcode = 0xf112 , Behance = 0xf113 , Bell = 0xf114 , Blind = 0xf115 , Blogger = 0xf116 , Bold = 0xf117 , Book = 0xf118 , Bookmark = 0xf11a , BookmarkEmpty = 0xf119 , Braille = 0xf11b , Briefcase = 0xf11c , Broom = 0xf11d , Brush = 0xf11e , Bulb = 0xf11f , Bullhorn = 0xf120 , Calendar = 0xf122 , CalendarSign = 0xf121 , Camera = 0xf123 , Car = 0xf124 , CaretDown = 0xf125 , CaretLeft = 0xf126 , CaretRight = 0xf127 , CaretUp = 0xf128 , Cc = 0xf129 , Certificate = 0xf12a , Check = 0xf12c , CheckEmpty = 0xf12b , ChevronDown = 0xf12d , ChevronLeft = 0xf12e , ChevronRight = 0xf12f , ChevronUp = 0xf130 , Child = 0xf131 , CircleArrowDown = 0xf132 , CircleArrowLeft = 0xf133 , CircleArrowRight = 0xf134 , CircleArrowUp = 0xf135 , Cloud = 0xf137 , CloudAlt = 0xf136 , Cog = 0xf139 , CogAlt = 0xf138 , Cogs = 0xf13a , Comment = 0xf13c , CommentAlt = 0xf13b , Compass = 0xf13e , CompassAlt = 0xf13d , CreditCard = 0xf13f , Css = 0xf140 , Dashboard = 0xf141 , Delicious = 0xf142 , Deviantart = 0xf143 , Digg = 0xf144 , Download = 0xf146 , DownloadAlt = 0xf145 , Dribbble = 0xf147 , Edit = 0xf148 , Eject = 0xf149 , Envelope = 0xf14b , EnvelopeAlt = 0xf14a , Error = 0xf14d , ErrorAlt = 0xf14c , Eur = 0xf14e , ExclamationSign = 0xf14f , EyeClose = 0xf150 , EyeOpen = 0xf151 , Facebook = 0xf152 , FacetimeVideo = 0xf153 , FastBackward = 0xf154 , FastForward = 0xf155 , Female = 0xf156 , File = 0xf15c , FileAlt = 0xf157 , FileEdit = 0xf159 , FileEditAlt = 0xf158 , FileNew = 0xf15b , FileNewAlt = 0xf15a , Film = 0xf15d , Filter = 0xf15e , Fire = 0xf15f , Flag = 0xf161 , FlagAlt = 0xf160 , Flickr = 0xf162 , Folder = 0xf166 , FolderClose = 0xf163 , FolderOpen = 0xf164 , FolderSign = 0xf165 , font = 0xf167 , fontsize = 0xf168 , Fork = 0xf169 , Forward = 0xf16b , ForwardAlt = 0xf16a , Foursquare = 0xf16c , Friendfeed = 0xf16e , FriendfeedRect = 0xf16d , Fullscreen = 0xf16f , Gbp = 0xf170 , Gift = 0xf171 , Github = 0xf173 , GithubText = 0xf172 , Glass = 0xf174 , Glasses = 0xf175 , Globe = 0xf177 , GlobeAlt = 0xf176 , Googleplus = 0xf178 , Graph = 0xf17a , GraphAlt = 0xf179 , Group = 0xf17c , GroupAlt = 0xf17b , Guidedog = 0xf17d , HandDown = 0xf17e , HandLeft = 0xf17f , HandRight = 0xf180 , HandUp = 0xf181 , Hdd = 0xf182 , Headphones = 0xf183 , HearingImpaired = 0xf184 , Heart = 0xf187 , HeartAlt = 0xf185 , HeartEmpty = 0xf186 , Home = 0xf189 , HomeAlt = 0xf188 , Hourglass = 0xf18a , Idea = 0xf18c , IdeaAlt = 0xf18b , Inbox = 0xf18f , InboxAlt = 0xf18d , InboxBox = 0xf18e , IndentLeft = 0xf190 , IndentRight = 0xf191 , InfoCircle = 0xf192 , Instagram = 0xf193 , IphoneHome = 0xf194 , Italic = 0xf195 , Key = 0xf196 , Laptop = 0xf198 , LaptopAlt = 0xf197 , Lastfm = 0xf199 , Leaf = 0xf19a , Lines = 0xf19b , Link = 0xf19c , Linkedin = 0xf19d , List = 0xf19f , ListAlt = 0xf19e , Livejournal = 0xf1a0 , Lock = 0xf1a2 , LockAlt = 0xf1a1 , Magic = 0xf1a3 , Magnet = 0xf1a4 , Male = 0xf1a5 , MapMarker = 0xf1a7 , MapMarkerAlt = 0xf1a6 , Mic = 0xf1a9 , MicAlt = 0xf1a8 , Minus = 0xf1ab , MinusSign = 0xf1aa , Move = 0xf1ac , Music = 0xf1ad , Myspace = 0xf1ae , Network = 0xf1af , Off = 0xf1b0 , Ok = 0xf1b3 , OkCircle = 0xf1b1 , OkSign = 0xf1b2 , Opensource = 0xf1b4 , PaperClip = 0xf1b6 , PaperClipAlt = 0xf1b5 , Path = 0xf1b7 , Pause = 0xf1b9 , PauseAlt = 0xf1b8 , Pencil = 0xf1bb , PencilAlt = 0xf1ba , Person = 0xf1bc , Phone = 0xf1be , PhoneAlt = 0xf1bd , Photo = 0xf1c0 , PhotoAlt = 0xf1bf , Picasa = 0xf1c1 , Picture = 0xf1c2 , Pinterest = 0xf1c3 , Plane = 0xf1c4 , Play = 0xf1c7 , PlayAlt = 0xf1c5 , PlayCircle = 0xf1c6 , Plurk = 0xf1c9 , PlurkAlt = 0xf1c8 , Plus = 0xf1cb , PlusSign = 0xf1ca , Podcast = 0xf1cc , Print = 0xf1cd , Puzzle = 0xf1ce , Qrcode = 0xf1cf , Question = 0xf1d1 , QuestionSign = 0xf1d0 , QuoteAlt = 0xf1d2 , QuoteRight = 0xf1d4 , QuoteRightAlt = 0xf1d3 , Quotes = 0xf1d5 , Random = 0xf1d6 , Record = 0xf1d7 , Reddit = 0xf1d8 , Redux = 0xf1d9 , Refresh = 0xf1da , Remove = 0xf1dd , RemoveCircle = 0xf1db , RemoveSign = 0xf1dc , Repeat = 0xf1df , RepeatAlt = 0xf1de , ResizeFull = 0xf1e0 , ResizeHorizontal = 0xf1e1 , ResizeSmall = 0xf1e2 , ResizeVertical = 0xf1e3 , ReturnKey = 0xf1e4 , Retweet = 0xf1e5 , ReverseAlt = 0xf1e6 , Road = 0xf1e7 , Rss = 0xf1e8 , Scissors = 0xf1e9 , Screen = 0xf1eb , ScreenAlt = 0xf1ea , Screenshot = 0xf1ec , Search = 0xf1ee , SearchAlt = 0xf1ed , Share = 0xf1f0 , ShareAlt = 0xf1ef , ShoppingCart = 0xf1f2 , ShoppingCartSign = 0xf1f1 , Signal = 0xf1f3 , Skype = 0xf1f4 , Slideshare = 0xf1f5 , Smiley = 0xf1f7 , SmileyAlt = 0xf1f6 , Soundcloud = 0xf1f8 , Speaker = 0xf1f9 , Spotify = 0xf1fa , Stackoverflow = 0xf1fb , Star = 0xf1fe , StarAlt = 0xf1fc , StarEmpty = 0xf1fd , StepBackward = 0xf1ff , StepForward = 0xf200 , Stop = 0xf202 , StopAlt = 0xf201 , Stumbleupon = 0xf203 , Tag = 0xf204 , Tags = 0xf205 , Tasks = 0xf206 , TextHeight = 0xf207 , TextWidth = 0xf208 , Th = 0xf20b , ThLarge = 0xf209 , ThList = 0xf20a , ThumbsDown = 0xf20c , ThumbsUp = 0xf20d , Time = 0xf20f , TimeAlt = 0xf20e , Tint = 0xf210 , Torso = 0xf211 , Trash = 0xf213 , TrashAlt = 0xf212 , Tumblr = 0xf214 , Twitter = 0xf215 , UniversalAccess = 0xf216 , Unlock = 0xf218 , UnlockAlt = 0xf217 , Upload = 0xf219 , Usd = 0xf21a , User = 0xf21b , Viadeo = 0xf21c , Video = 0xf21f , VideoAlt = 0xf21d , VideoChat = 0xf21e , ViewMode = 0xf220 , Vimeo = 0xf221 , Vkontakte = 0xf222 , VolumeDown = 0xf223 , VolumeOff = 0xf224 , VolumeUp = 0xf225 , W3c = 0xf226 , WarningSign = 0xf227 , Website = 0xf229 , WebsiteAlt = 0xf228 , Wheelchair = 0xf22a , Wordpress = 0xf22b , Wrench = 0xf22d , WrenchAlt = 0xf22c , Youtube = 0xf22e , ZoomIn = 0xf22f , ZoomOut = 0xf230 } |
| enum class | font_weight { thin , extra_light , light , regular , medium , semi_bold , bold , extra_bold , black , extra_black } |
| enum class | hikogui_icon : char32_t { MinimizeWindow = 0xf301 , MaximizeWindowMS = 0xf302 , RestoreWindowMS = 0xf303 , CloseWindow = 0xf304 , RestoreWindowMacOS = 0xf305 , MaximizeWindowMacOS = 0xf306 , none_0_0 = 0xf3c0 , mono_1_0 = 0xf3c1 , mono_1_1 = 0xf3c2 , stereo_2_0 = 0xf3c3 , stereo_2_1 = 0xf3c4 , stereo_3_0 = 0xf3c5 , stereo_3_1 = 0xf3c6 , surround_3_0 = 0xf3c7 , surround_3_1 = 0xf3c8 , surround_4_0 = 0xf3c9 , surround_4_1 = 0xf3ca , surround_5_0 = 0xf3cb , surround_5_1 = 0xf3cc , surround_7_0 = 0xf3cd , surround_7_1 = 0xf3ce , surround_9_0 = 0xf3cf , surround_9_1 = 0xf3d0 , surround_11_0 = 0xf3d1 , surround_11_1 = 0xf3d2 , surround_side_5_0 = 0xf3d3 , surround_side_5_1 = 0xf3d4 , surround_side_6_0 = 0xf3d5 , surround_side_6_1 = 0xf3d6 , surround_side_7_0 = 0xf3d7 , surround_side_7_1 = 0xf3d8 , surround_wide_6_0 = 0xf3d9 , surround_wide_6_1 = 0xf3da , surround_wide_7_0 = 0xf3db , surround_wide_7_1 = 0xf3dc , quad_4_0 = 0xf3dd , quad_4_1 = 0xf3de , quad_side_4_0 = 0xf3df , quad_side_4_1 = 0xf3e0 , hexagonal_6_0 = 0xf3e1 , hexagonal_6_1 = 0xf3e2 , octagonal_8_0 = 0xf3e3 , octagonal_8_1 = 0xf3e4 , surround_atmos_5_1_4 = 0xf3e5 , surround_atmos_7_1_4 = 0xf3e6 } |
| enum class | 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 | gui_window_size { normal , minimized , maximized , fullscreen } |
| enum class | hitbox_type : uint8_t { outside , _default , button , scroll_bar , text_edit , move_area , bottom_resize_border , top_resize_border , left_resize_border , right_resize_border , bottom_left_resize_corner , bottom_right_resize_corner , top_left_resize_corner , top_right_resize_corner , application_icon } |
| enum class | keyboard_focus_direction { here , backward , forward } |
| The keyboard focus group used for finding a widget that will accept a particular focus. More... | |
| enum class | keyboard_focus_group { normal = 1 , menu = 2 , toolbar = 4 , mouse = 8 , all = normal | menu | toolbar | mouse } |
| The keyboard focus group used for finding a widget that will accept a particular focus. More... | |
| enum class | keyboard_modifiers : uint8_t { none = 0x00 , shift = 0x01 , control = 0x02 , alt = 0x04 , super = 0x08 } |
| Key modification keys pressed at the same time as another key. More... | |
| enum class | keyboard_state : uint8_t { idle = 0x00 , caps_lock = 0x01 , scroll_lock = 0x02 , num_lock = 0x04 } |
| enum class | keyboard_virtual_key : uint8_t { nul = 0 , A = 'a' , B = 'b' , C = 'c' , D = 'd' , E = 'e' , F = 'f' , G = 'g' , H = 'h' , I = 'i' , J = 'j' , K = 'k' , L = 'l' , M = 'm' , N = 'n' , O = 'o' , P = 'p' , Q = 'q' , R = 'r' , S = 's' , T = 't' , U = 'u' , V = 'v' , W = 'w' , X = 'x' , Y = 'y' , Z = 'z' , _0 = '0' , _1 = '1' , _2 = '2' , _3 = '3' , _4 = '4' , _5 = '5' , _6 = '6' , _7 = '7' , _8 = '8' , _9 = '9' , plus = '+' , minus = '-' , star = '*' , slash = '/' , percent = '' , tilde = '~' , ampersant = '&' , pipe = '|' , caret = '^' , less = '<' , equal = '=' , greater = '>' , open_parentheses = '(' , close_parentheses = ')' , open_bracket = '[' , close_bracket = ']' , open_brace = '{' , close_brace = '}' , period = '.' , comma = ',' , colon = ':' , semi_colon = ';' , bang = '!' , question = '?' , space = ' ' , tab = '\t' , enter = '\n' , backtick = '`' , quote = '\'' , double_quote = '"' , at = '@' , hash = '#' , dollar = '$' , underscore = '_' , backslash = '\\' , F1 = 'A' , F2 = 'B' , F3 = 'C' , F4 = 'D' , F5 = 'E' , F6 = 'F' , F7 = 'G' , F8 = 'H' , F9 = 'I' , F10 = 'J' , F11 = 'K' , F12 = 'L' , F13 = 'M' , F14 = 'N' , F15 = 'O' , F16 = 'P' , F17 = 'Q' , F18 = 'R' , F19 = 'S' , F20 = 'T' , F21 = 'U' , F22 = 'V' , F23 = 'W' , F24 = 'X' , home = 0x02 , end = 0x03 , backspace = 0x08 , clear = 0x0c , insert = 0x1a , escape = 0x1b , _delete = 0x7f , left = 0x80 , right , up , down , page_up , page_down , menu , print_screen , pause_break , sysmenu , media_next_track , media_prev_track , media_stop , media_play_pause , volume_mute , volume_up , volume_down , browser_back , browser_forward , browser_home , browser_refresh , browser_stop , browser_search , browser_favorites } |
| enum class | mouse_cursor { None , Default , TextEdit , Button } |
| enum class | on_overflow_t { Throw , Saturate , Assert , Axiom } |
| 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 | 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 | theme_mode { light , dark } |
| 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 | phrasing : uint8_t { phrasing::regular = 0 , phrasing::emphesis = 1 , phrasing::strong = 2 , phrasing::code = 3 , phrasing::abbreviation = 4 , phrasing::quote = 5 , phrasing::keyboard = 6 , phrasing::highlight = 7 , phrasing::math = 8 , phrasing::example = 9 , phrasing::unarticulated = 10 , phrasing::title = 11 , phrasing::success = 12 , phrasing::warning = 13 , phrasing::error = 14 } |
| Phrasing. More... | |
| enum class | phrasing_mask : uint16_t { regular = 1 << std::to_underlying(phrasing::regular) , emphesis = 1 << std::to_underlying(phrasing::emphesis) , strong = 1 << std::to_underlying(phrasing::strong) , code = 1 << std::to_underlying(phrasing::code) , abbreviation = 1 << std::to_underlying(phrasing::abbreviation) , quote = 1 << std::to_underlying(phrasing::quote) , keyboard = 1 << std::to_underlying(phrasing::keyboard) , highlight = 1 << std::to_underlying(phrasing::highlight) , math = 1 << std::to_underlying(phrasing::math) , example = 1 << std::to_underlying(phrasing::example) , unarticulated = 1 << std::to_underlying(phrasing::unarticulated) , title = 1 << std::to_underlying(phrasing::title) , success = 1 << std::to_underlying(phrasing::success) , warning = 1 << std::to_underlying(phrasing::warning) , error = 1 << std::to_underlying(phrasing::error) , all } |
| enum class | unicode_break_opportunity : uint8_t { no , yes , mandatory , unassigned } |
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. | |
| template<std::endian Endian = std::endian::native, typename T , std::unsigned_integral Key> | |
| constexpr T * | fast_lower_bound (std::span< T > table, Key const &key) noexcept |
| The fast lower bound algorithm. | |
| template<std::endian Endian = std::endian::native, typename T , std::unsigned_integral Key> | |
| constexpr T * | fast_binary_search_eq (std::span< T > table, Key const &key) noexcept |
| Search for the item that is equal to the key. | |
| template<typename Value , typename Range > | |
| constexpr Value | get_first (Range &&range) |
| template<typename Range > | |
| constexpr Range::value_type | get_first (Range &&range) |
| template<typename Value , typename Range > | |
| constexpr std::vector< Value > | make_vector (Range &&range) |
| Make a vector from a view. | |
| template<typename Range > | |
| constexpr std::vector< typename Range::value_type > | make_vector (Range &&range) |
| 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. | |
| constexpr std::string | make_slug (std::string_view str) noexcept |
| Create a slug from a string. | |
| constexpr bool | is_slug (std::string_view str) noexcept |
| std::string | make_title (std::string_view str) noexcept |
| Create a title from a string. | |
|
template<typename T , size_t N> requires (sizeof(T) == 1 and (N == 4 or N == 5)) | |
| constexpr uint32_t | fourcc (T const (&txt)[N]) noexcept |
| constexpr uint32_t | fourcc_from_cstr (char const *txt) noexcept |
| std::string | fourcc_to_string (uint32_t x) noexcept |
| constexpr std::size_t | string_size (sizeable auto str) noexcept |
| constexpr std::size_t | string_size (auto str) noexcept |
| template<typename FirstNeedle , typename... Needles> | |
| std::pair< std::size_t, std::size_t > | string_find_any (std::string_view haystack, std::size_t pos, FirstNeedle const &first_needle, Needles const &...needles) noexcept |
| template<typename StringType , typename... Needles> | |
| std::vector< StringType > | _split (std::string_view haystack, Needles const &...needles) noexcept |
| template<typename... Needles> | |
| std::vector< std::string > | split (std::string_view haystack, Needles const &...needles) noexcept |
| std::vector< std::string > | split (std::string_view haystack) noexcept |
| template<typename... Needles> | |
| std::vector< std::string_view > | split_view (std::string_view haystack, Needles const &...needles) noexcept |
| std::vector< std::string_view > | split_view (std::string_view haystack) noexcept |
| template<typename CharT > | |
| std::basic_string< CharT > | join (std::vector< std::basic_string< CharT > > const &list, std::basic_string_view< CharT > const joiner={}) noexcept |
| template<typename CharT > | |
| std::basic_string< CharT > | join (std::vector< std::basic_string< CharT > > const &list, std::basic_string< CharT > const &joiner) noexcept |
| template<typename CharT > | |
| std::basic_string< CharT > | join (std::vector< std::basic_string< CharT > > const &list, CharT const *joiner) noexcept |
| std::string | join (std::vector< std::string_view > const &list, std::string_view const joiner={}) noexcept |
| template<typename It > | |
| std::pair< int, int > | count_line_and_columns (It begin, It const end) |
| template<typename T , std::size_t N> | |
| constexpr auto | to_array_without_last (T(&rhs)[N]) noexcept |
| Create an std::array from a one dimensional array, without the last element. | |
| template<typename T , std::size_t N> | |
| constexpr auto | to_array_without_last (T(&&rhs)[N]) noexcept |
| Create an std::array from a one dimensional array, without the last element. | |
| std::string | lstrip (std::string_view haystack, std::string needle=" \t\r\n\f") noexcept |
| std::string | rstrip (std::string_view haystack, std::string needle=" \t\r\n\f") noexcept |
| std::string | strip (std::string_view haystack, std::string needle=" \t\r\n\f") noexcept |
| hi_export datum | decode_BON8 (std::span< const std::byte > buffer) |
| Decode BON8 message from buffer. | |
| hi_export datum | decode_BON8 (bstring const &buffer) |
| Decode BON8 message from buffer. | |
| hi_export datum | decode_BON8 (bstring_view buffer) |
| Decode BON8 message from buffer. | |
| hi_export bstring | encode_BON8 (datum const &value) |
| Encode a value to a BON8 message. | |
| template<std::input_iterator It, std::sentinel_for< It > ItEnd> | |
| hi_export constexpr datum | parse_JSON (It it, ItEnd last, std::string_view path=std::string_view{"<none>"}) |
| hi_export constexpr datum | parse_JSON (std::string_view text, std::string_view path=std::string_view{"<none>"}) |
| Parse a JSON string. | |
| hi_export constexpr datum | parse_JSON (std::string const &text, std::string_view path=std::string_view{"<none>"}) |
| Parse a JSON string. | |
| hi_export constexpr datum | parse_JSON (char const *text, std::string_view path=std::string_view{"<none>"}) |
| Parse a JSON string. | |
| hi_export datum | parse_JSON (std::filesystem::path const &path) |
| Parse a JSON string. | |
| hi_export constexpr void | format_JSON_impl (datum const &value, std::string &result, hi::indent indent={}) |
| hi_export constexpr std::string | format_JSON (datum const &root) |
| Dump an datum object into a JSON string. | |
| 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 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 |
| thread_id | current_thread_id () noexcept |
| void | set_thread_name (std::string_view name) noexcept |
| std::vector< bool > | mask_int_to_vec (DWORD_PTR rhs) noexcept |
| DWORD_PTR | mask_vec_to_int (std::vector< bool > const &rhs) noexcept |
| std::vector< bool > | process_affinity_mask () |
| std::vector< bool > | set_thread_affinity_mask (std::vector< bool > const &mask) |
| std::size_t | current_cpu_id () noexcept |
| template<typename... Args> | |
| hi_export void | print (std::format_string< Args... > fmt, Args &&... args) noexcept |
| template<typename... Args> | |
| hi_export void | println (std::format_string< Args... > fmt, Args &&... args) noexcept |
| bstring | to_bstring (std::string_view src) noexcept |
| bstring | to_bstring (std::integral auto... args) noexcept |
| template<typename Proto , typename Func > | |
| auto | make_function (Func &&func) |
| template<typename Proto , typename Func > | |
| auto | make_async_function (Func &&func) |
| template<size_t BitsPerInteger, std::unsigned_integral... Args> | |
| packed_int_array (Args...) -> packed_int_array< BitsPerInteger, sizeof...(Args)> | |
| template<awaitable... Others> | |
| when_any (Others &&...) -> when_any< awaitable_cast_t< std::decay_t< Others > >... > | |
| hi_export void | console_start () noexcept |
| Initialize the console. | |
| 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. | |
| constexpr socket_event | operator| (socket_event const &lhs, socket_event const &rhs) noexcept |
| constexpr socket_event | operator& (socket_event const &lhs, socket_event const &rhs) noexcept |
| constexpr socket_event & | operator|= (socket_event &lhs, socket_event const &rhs) noexcept |
| constexpr bool | to_bool (socket_event const &rhs) noexcept |
| constexpr size_t | bit (socket_event const &rhs) noexcept |
| Get the bit index of the single bit of the socket_event mask. | |
| constexpr socket_event | socket_event_from_win32 (long rhs) noexcept |
| constexpr socket_error | socket_error_from_win32 (int rhs) noexcept |
| constexpr socket_events | socket_events_from_win32 (WSANETWORKEVENTS const &rhs) noexcept |
| hi_export font & | register_font_file (std::filesystem::path const &path) |
| Register a font. | |
| hi_export void | register_font_directory (std::filesystem::path const &path) |
| template<typename Range > | |
| hi_export void | register_font_directories (Range &&range) noexcept |
| hi_export font_family_id | find_font_family (std::string const &family_name) noexcept |
| Find font family id. | |
| hi_export font const & | find_font (font_family_id family_id, font_variant variant=font_variant{}) noexcept |
| Find a font closest to the variant. | |
| hi_export font const * | find_font (std::string const &family_name, font_variant variant=font_variant{}) noexcept |
| Find a font closest to the variant. | |
| hi_export auto | find_glyph (font const &font, grapheme grapheme) noexcept |
| Find a glyph using the given code-point. | |
| hi_export auto | find_glyph (font const &font, char32_t code_point) noexcept |
| Find a glyph using the given code-point. | |
| hi_export auto | find_glyph (elusive_icon rhs) noexcept |
| hi_export auto | find_glyph (hikogui_icon rhs) noexcept |
| hi_export constexpr font_weight & | operator++ (font_weight &rhs) noexcept |
| hi_export constexpr font_weight & | operator-- (font_weight &rhs) noexcept |
| hi_export constexpr font_weight | font_weight_from_int (numeric_integral auto rhs) |
| Convert a font weight value between 50 and 1000 to a font weight. | |
| hi_export constexpr font_weight | font_weight_from_string (std::string_view rhs) |
| hi_export constexpr std::string_view | to_string_view (font_weight const &x) noexcept |
| hi_export constexpr std::string | to_string (font_weight const &x) noexcept |
| hi_export constexpr char | to_char (font_weight const &x) noexcept |
| hi_export constexpr int | to_int (font_weight const &x) noexcept |
| hi_export std::ostream & | operator<< (std::ostream &lhs, font_weight const &rhs) |
| hi_export constexpr bool | almost_equal (font_weight const &lhs, font_weight const &rhs) noexcept |
| hi_export generator< font_weight > | alternatives (font_weight start) noexcept |
| Generate alternatives for the font_weight. | |
| constexpr point3 | operator+ (point2 const &lhs, vector3 const &rhs) noexcept |
| constexpr point3 | operator+ (vector3 const &lhs, point2 const &rhs) noexcept |
| constexpr point3 | operator- (point2 const &lhs, vector3 const &rhs) noexcept |
| std::unique_ptr< gfx_surface > | make_unique_gfx_surface (os_handle instance, void *os_window) |
| vk::Instance | vulkan_instance () noexcept |
| vk::DispatchLoaderDynamic | vulkan_loader () noexcept |
| gfx_device * | find_best_device_for_surface (vk::SurfaceKHR surface) |
| constexpr keyboard_focus_group | operator& (keyboard_focus_group const &lhs, keyboard_focus_group const &rhs) noexcept |
| constexpr keyboard_focus_group | operator| (keyboard_focus_group const &lhs, keyboard_focus_group const &rhs) noexcept |
| constexpr bool | to_bool (keyboard_focus_group group) noexcept |
| constexpr keyboard_modifiers | operator| (keyboard_modifiers const &lhs, keyboard_modifiers const &rhs) noexcept |
| constexpr keyboard_modifiers | operator& (keyboard_modifiers const &lhs, keyboard_modifiers const &rhs) noexcept |
| constexpr keyboard_modifiers & | operator|= (keyboard_modifiers &lhs, keyboard_modifiers const &rhs) noexcept |
| constexpr bool | to_bool (keyboard_modifiers const &rhs) noexcept |
| bool | operator>= (keyboard_modifiers const &lhs, keyboard_modifiers const &rhs)=delete |
| keyboard_modifiers | to_keyboard_modifiers (std::string_view s) |
| Parse a key-binding modifier name. | |
| std::string | to_string (keyboard_modifiers modifiers) |
| std::ostream & | operator<< (std::ostream &lhs, keyboard_modifiers const &rhs) |
| constexpr keyboard_state | operator| (keyboard_state const &lhs, keyboard_state const &rhs) noexcept |
| constexpr keyboard_state | operator& (keyboard_state const &lhs, keyboard_state const &rhs) noexcept |
| constexpr keyboard_state & | operator|= (keyboard_state &lhs, keyboard_state const &rhs) noexcept |
| bool | operator>= (keyboard_state const &lhs, keyboard_state const &rhs)=delete |
| constexpr bool | to_bool (keyboard_state const &rhs) noexcept |
| constexpr keyboard_virtual_key | to_keyboard_virtual_key (std::string_view s) |
| constexpr keyboard_virtual_key | to_keyboard_virtual_key (int key_code, bool extended, keyboard_modifiers modifiers) noexcept |
| 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) |
| void | register_theme_directory (std::filesystem::path const &path) noexcept |
| void | reload_themes () noexcept |
| template<std::ranges::range R> | |
| void | register_theme_directories (R &&r) noexcept |
| theme const & | find_theme (std::string_view name, theme_mode mode) noexcept |
| std::vector< std::string > | theme_names () noexcept |
| theme const & | get_selected_theme () noexcept |
| constexpr void | fill (pixmap_span< sfloat_rgba16 > image, f32x4 color) noexcept |
| void | composit (pixmap_span< sfloat_rgba16 > under, pixmap_span< sfloat_rgba16 const > over) noexcept |
| void | composit (pixmap_span< sfloat_rgba16 > under, color over, pixmap_span< uint8_t const > mask) noexcept |
| constexpr int8_t | make_snorm_r8_value (float rhs) noexcept |
| template<std::input_iterator It, std::sentinel_for< It > ItEnd> | |
| constexpr po_translations | parse_po (It it, ItEnd last, std::string_view path) |
| constexpr po_translations | parse_po (std::string_view text, std::string_view path) |
| po_translations | parse_po (std::filesystem::path const &path) |
| std::tuple< bool, std::size_t, bool, std::size_t > | _parse_spreadsheet_address (std::string_view &address) |
| std::pair< std::size_t, std::size_t > | parse_spreadsheet_address (std::string_view address, std::size_t start_column_nr=0, std::size_t start_row_nr=0) |
| Parse a spreadsheet address. | |
| std::tuple< std::size_t, std::size_t, std::size_t, std::size_t > | parse_spreadsheet_range (std::string_view address, std::size_t start_column_nr=0, std::size_t start_row_nr=0) |
| Parse a spreadsheet range. | |
| std::byte * | locked_memory_allocator_allocate (std::size_t n) noexcept |
| void | locked_memory_allocator_deallocate (std::byte *p, std::size_t n) noexcept |
| std::string const & | get_application_name () |
| std::string const & | get_application_slug () |
| std::string const & | get_application_vendor () |
| semantic_version const & | get_application_version () |
| void | set_application_name (std::string_view name, std::string_view slug) |
| void | set_application_name (std::string_view name) |
| void | set_application_vendor (std::string_view name) |
| void | set_application_version (semantic_version version) noexcept |
| void | set_application_version (int major, int minor=0, int patch=0) 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. | |
| 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 |
| 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) |
| constexpr graphic_character_t | char_to_graphic_character (char x) noexcept |
| constexpr uint64_t | operator_to_int (std::string_view str) noexcept |
| constexpr std::pair< uint8_t, bool > | binary_operator_precedence (std::string_view str) noexcept |
| Binary Operator Precedence according to C++. | |
| constexpr std::pair< uint8_t, bool > | operator_precedence (std::string_view str, bool binary) noexcept |
| Operator Precedence according to C++. | |
| template<typename T > | |
| bool | check_alignment (void const *ptr) noexcept |
| template<typename T , typename Byte > | |
| auto | make_placement_ptr (std::span< Byte > bytes, std::size_t &offset) |
| template<typename T , typename Byte > | |
| auto | make_placement_ptr (std::span< Byte > bytes, std::size_t &&offset=0) |
| template<typename T , byte_like Byte> | |
| auto | make_placement_array (std::span< Byte > bytes, std::size_t &offset, std::size_t n) |
| template<typename T , byte_like Byte> | |
| auto | make_placement_array (std::span< Byte > bytes, std::size_t &&offset, std::size_t n) |
| template<typename T , byte_like Byte> | |
| auto | make_placement_array (std::span< Byte > bytes, std::size_t &offset) |
| template<typename T , byte_like Byte> | |
| auto | make_placement_array (std::span< Byte > bytes, std::size_t &&offset=0) |
| std::filesystem::path | get_path_by_id (const KNOWNFOLDERID &folder_id) noexcept |
| Convenience function for SHGetKnownFolderPath(). | |
| std::filesystem::path | get_module_path (HMODULE module_handle) noexcept |
| std::filesystem::path | get_executable_path () noexcept |
| hi_no_inline std::filesystem::path | get_library_path () noexcept |
| generator< std::filesystem::path > | get_paths (path_location location) |
| void | generate_seed (void *ptr, size_t size) |
| Load a random seed. | |
| 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. | |
| constexpr extent2 | sub_pixel_size (subpixel_orientation orientation) noexcept |
| Get the size of a sub-pixel based on the sub-pixel orientation. | |
| std::string_view | to_string (theme_mode rhs) noexcept |
| std::ostream & | operator<< (std::ostream &lhs, theme_mode rhs) |
| __m128 | _mm_cvtph_ps_sse2 (__m128i value) noexcept |
| __m128i | _mm_cvtps_ph_sse4_1 (__m128 value) noexcept |
| constexpr void | parse_skeleton_hash (skeleton_parse_context &context) |
| constexpr void | parse_skeleton_dollar (skeleton_parse_context &context) |
| constexpr void | parse_skeleton_escape (skeleton_parse_context &context) |
| constexpr 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) |
| detail::counter * | get_global_counter_if (std::string const &name) |
| constexpr int | format_count (std::string_view fmt) noexcept |
| Count arguments of a std::format format string. | |
| std::string_view | to_string (text_decoration const &rhs) noexcept |
| std::ostream & | operator<< (std::ostream &lhs, text_decoration const &rhs) |
| constexpr std::string | format_engineering (std::chrono::nanoseconds duration) |
| constexpr bool | operator== (gstring_view const &lhs, std::string_view const &rhs) noexcept |
| template<std::input_or_output_iterator It, std::sentinel_for< It > ItEnd> | |
| hi_export constexpr void | set_language (It first, ItEnd last, language_tag language) noexcept |
| Set the language for the string. | |
| hi_export constexpr gstring | set_language (gstring str, language_tag language) noexcept |
| template<std::input_or_output_iterator It, std::sentinel_for< It > ItEnd> requires (std::is_same_v<std::iter_value_t<It>, grapheme>) | |
| hi_export constexpr void | fix_language (It first, ItEnd last, language_tag default_language_tag) noexcept |
| Fix the language for the string. | |
| hi_export constexpr gstring | fix_language (gstring str, language_tag default_language_tag) noexcept |
| hi_export constexpr gstring | to_gstring (std::u32string_view rhs, unicode_normalize_config config=unicode_normalize_config::NFC()) noexcept |
| Convert a UTF-32 string-view to a grapheme-string. | |
| hi_export constexpr gstring | to_gstring (std::string_view rhs, unicode_normalize_config config=unicode_normalize_config::NFC()) noexcept |
| Convert a UTF-8 string to a grapheme-string. | |
| hi_export constexpr std::string | to_string (gstring_view rhs) noexcept |
| Convert a grapheme string to UTF-8. | |
| hi_export constexpr std::wstring | to_wstring (gstring_view rhs) noexcept |
| Convert a grapheme string to UTF-8. | |
| hi_export constexpr std::u32string | to_u32string (gstring_view rhs) noexcept |
| Convert a grapheme string to UTF-8. | |
| hi_export constexpr std::string | to_string (gstring const &rhs) noexcept |
| Convert a grapheme string to UTF-8. | |
| constexpr std::optional< phrasing > | to_phrasing (char c) |
| constexpr phrasing_mask | operator& (phrasing_mask const &lhs, phrasing_mask const &rhs) noexcept |
| constexpr phrasing_mask | operator| (phrasing_mask const &lhs, phrasing_mask const &rhs) noexcept |
| constexpr phrasing_mask | to_phrasing_mask (phrasing const &rhs) noexcept |
| constexpr phrasing_mask | to_phrasing_mask (std::string const &str) |
| constexpr bool | all (phrasing_mask const &rhs) noexcept |
| constexpr bool | to_bool (phrasing_mask const &rhs) noexcept |
| constexpr bool | matches (phrasing_mask const &lhs, phrasing const &rhs) noexcept |
| Check if the text-phrasing is included in the text-phrasing-mask. | |
| template<typename It , typename GetCodePoint , typename SetCodePoint , typename SetTextDirection > | |
| constexpr std::pair< It, std::vector< unicode_bidi_class > > | unicode_bidi (It first, It last, GetCodePoint get_code_point, SetCodePoint set_code_point, SetTextDirection set_text_direction, unicode_bidi_context const &context={}) |
| Reorder a given range of characters based on the unicode_bidi algorithm. | |
| template<typename It , typename GetCodePoint > | |
| constexpr unicode_bidi_class | unicode_bidi_direction (It first, It last, GetCodePoint get_code_point, unicode_bidi_context const &context={}) |
| Get the unicode bidi direction for the first paragraph and context. | |
| template<typename It , typename EndIt , typename CodePointFunc > | |
| constexpr It | unicode_bidi_control_filter (It first, EndIt last, CodePointFunc const &code_point_func) |
| Removes control characters which will not survive the bidi-algorithm. | |
| std::ostream & | operator<< (std::ostream &lhs, unicode_break_opportunity const &rhs) |
| template<typename It , typename ItEnd , typename CodePointFunc > | |
| unicode_break_vector | unicode_line_break (It first, ItEnd last, CodePointFunc const &code_point_func) noexcept |
| The unicode line break algorithm UAX #14. | |
| constexpr std::vector< size_t > | unicode_line_break (unicode_break_vector const &opportunities, std::vector< float > const &widths, float maximum_line_width) |
| Unicode break lines. | |
| constexpr std::u32string | unicode_decompose (std::u32string_view text, unicode_normalize_config config=unicode_normalize_config::NFD()) noexcept |
| Convert text to a Unicode decomposed normal form. | |
| constexpr std::u32string | unicode_normalize (std::u32string_view text, unicode_normalize_config config=unicode_normalize_config::NFC()) noexcept |
| Convert text to a Unicode composed normal form. | |
| template<std::input_iterator It, std::sentinel_for< It > ItEnd> | |
| constexpr bool | unicode_is_NFC_grapheme (It it, ItEnd last) noexcept |
| Check if the string of code-points is a single grapheme in NFC normal form. | |
| template<typename It , typename ItEnd , typename CodePointFunc > | |
| unicode_break_vector | unicode_sentence_break (It first, ItEnd last, CodePointFunc const &code_point_func) noexcept |
| The unicode word break algorithm UAX#29. | |
| template<typename It , typename ItEnd , typename CodePointFunc > | |
| unicode_break_vector | unicode_word_break (It first, ItEnd last, CodePointFunc const &code_point_func) noexcept |
| The unicode word break algorithm UAX#29. | |
| void | wrap_lines (auto first, auto last, float max_width, auto get_width, auto get_code_point, auto set_code_point) noexcept |
| Wrap lines in text that are too wide. | |
| constexpr float | cvtsh_ss (uint16_t value) noexcept |
| constexpr uint16_t | cvtss_sh (float value) noexcept |
| constexpr std::size_t | hash_mix_two (std::size_t hash1, std::size_t hash2) noexcept |
| template<typename First , typename Second , typename... Args> | |
| constexpr std::size_t | hash_mix (First &&first, Second &&second, Args &&...args) noexcept |
| template<typename Iterator > | |
| auto | mean (Iterator first, Iterator last) |
| template<typename Iterator , typename T > | |
| auto | stddev (Iterator first, Iterator last, T mean) |
| template<typename T > | |
| constexpr bool | inplace_max (T &a, T const &b) noexcept |
| template<typename T > | |
| constexpr bool | inplace_min (T &a, T const &b) noexcept |
| template<typename T > | |
| constexpr void | inplace_clamp (T &a, T const &lo, T const &hi) noexcept |
| template<typename T > | |
| constexpr T | abs (T a) noexcept |
| template<std::floating_point T> | |
| constexpr bool | almost_equal (T a, T b) noexcept |
| template<std::floating_point T> | |
| constexpr T | to_radian (T degree) noexcept |
| Convert degree to radian. | |
| template<std::unsigned_integral T> | |
| constexpr T | floor (T value, T alignment) noexcept |
| The greatest multiple of alignment less than or equal to value. | |
| template<std::unsigned_integral T> | |
| constexpr T | ceil (T value, T alignment) noexcept |
| The smallest multiple of alignment greater than or equal to value. | |
| template<std::floating_point T> | |
| constexpr bool | isnan (T value) noexcept |
| constexpr uint64_t | pow10 (unsigned int x) noexcept |
| template<std::unsigned_integral T> | |
| constexpr unsigned int | decimal_width (T x) |
| bool | equal_ptr (auto *p1, auto *p2) noexcept |
| template<typename T , typename U > | |
| void | memswap (T &dst, U &src) |
| template<typename InputIt , typename T > | |
| T * | placement_copy (InputIt src, T *dst) |
| Copy an object to another memory locations. | |
| template<typename InputIt , typename T > | |
| void | placement_copy (InputIt src_first, InputIt src_last, T *dst_first) |
| Copy objects into a memory location. | |
| template<typename T > | |
| T * | placement_move (T *src, T *dst) |
| Move an object between two memory locations. | |
| template<typename T > | |
| void | placement_move_within_array (T *src_first, T *src_last, T *dst_first) |
| Move an objects between two memory locations. | |
| template<typename T > | |
| void | placement_move (T *src, T *src_last, T *dst) |
| Move an objects between two memory locations. | |
| template<typename It , typename... Args> | |
| void | construct (It first, It last, Args const &...args) |
| Construct a set of objects. | |
| template<typename T > | |
| constexpr bool | is_aligned (T *p) |
| Check if a pointer is properly aligned for the object it is pointing at. | |
| template<typename T > | |
| constexpr T * | ceil (T *ptr, std::size_t alignment) noexcept |
| template<typename T > | |
| constexpr T * | floor (T *ptr, std::size_t alignment) noexcept |
| void * | advance_bytes (void *ptr, std::ptrdiff_t distance) noexcept |
| Advance a pointer by a number of bytes. | |
| void const * | advance_bytes (void const *ptr, std::ptrdiff_t distance) noexcept |
| Advance a pointer by a number of bytes. | |
| template<typename T > | |
| void | cleanupWeakPointers (std::vector< std::weak_ptr< T > > &v) noexcept |
| template<typename K , typename T > | |
| void | cleanupWeakPointers (std::unordered_map< K, std::weak_ptr< T > > &v) noexcept |
| template<typename K , typename T > | |
| void | cleanupWeakPointers (std::unordered_map< K, std::vector< std::weak_ptr< T > > > &v) noexcept |
| template<typename Value , typename Map , typename Key , typename... Args> | |
| std::shared_ptr< Value > | try_make_shared (Map &map, Key key, Args... args) |
| template<numeric T, byte_like B> | |
| constexpr T | unaligned_load (B const *src) noexcept |
| Make an unaligned load of an unsigned integer. | |
| template<numeric T> | |
| T | unaligned_load (void const *src) noexcept |
| template<numeric T, byte_like B> | |
| constexpr void | unaligned_store (T src, B *dst) noexcept |
| template<numeric T> | |
| void | unaligned_store (T src, void *dst) noexcept |
| template<numeric T> | |
| hi_force_inline constexpr void | store_or (T src, uint8_t *dst) noexcept |
| template<std::floating_point T> | |
| constexpr T | points_to_dp (T x) noexcept |
| Convert points to device independent pixels. | |
| hi_export win32_error | win32_RegDeleteKeyValue (HKEY key, std::string_view path, std::string_view name) noexcept |
| Delete a registry value. | |
| hi_export win32_error | win32_RegDeleteKey (HKEY key, std::string_view path) noexcept |
| Delete all registry values and the last part of the subkey. | |
| hi_export win32_error | win32_RegSetKeyValue (HKEY key, std::string_view path, std::string_view name, uint32_t value) |
| Write a DWORD registry value. | |
| hi_export win32_error | win32_RegSetKeyValue (HKEY key, std::string_view path, std::string_view name, std::string_view value) |
| Write a string registry value. | |
| hi_export std::expected< void, win32_error > | win32_RegGetValue_void (HKEY key, std::string_view path, std::string_view name) |
| Check if a registry entry exists. | |
| hi_export std::expected< uint32_t, win32_error > | win32_RegGetValue_dword (HKEY key, std::string_view path, std::string_view name) noexcept |
| Read a DWORD registry value. | |
| hi_export std::expected< std::string, win32_error > | win32_RegGetValue_string (HKEY key, std::string_view path, std::string_view name) noexcept |
| Read a strings from the registry value. | |
| hi_export std::expected< std::vector< std::string >, win32_error > | win32_RegGetValue_multi_string (HKEY key, std::string_view path, std::string_view name) noexcept |
| Read a list of strings from the registry value. | |
| template<typename T > | |
| hi_export std::expected< T, win32_error > | win32_RegGetValue (HKEY key, std::string_view path, std::string_view name)=delete |
| Read from the registry value. | |
| template<> | |
| hi_export std::expected< void, win32_error > | win32_RegGetValue (HKEY key, std::string_view path, std::string_view name) |
| template<> | |
| hi_export std::expected< std::string, win32_error > | win32_RegGetValue (HKEY key, std::string_view path, std::string_view name) |
| template<> | |
| hi_export std::expected< std::vector< std::string >, win32_error > | win32_RegGetValue (HKEY key, std::string_view path, std::string_view name) |
Variables | |
| os_handle | crt_application_instance |
| The application instance identified by the operating system. | |
| constexpr auto | font_weight_metadata |
| unfair_recursive_mutex | gfx_system_mutex |
| Global mutex for GUI elements, like gfx_system, gfx_device, Windows and Widgets. | |
| constexpr auto | keyboard_virtual_key_metadata |
| std::optional< std::string > | _application_name = std::nullopt |
| std::optional< std::string > | _application_slug = std::nullopt |
| std::optional< std::string > | _application_vendor = std::nullopt |
| std::optional< semantic_version > | _application_version = std::nullopt |
| constexpr auto | bounds_test = interval<longreg_t>{1, 5} |
| constexpr auto | subpixel_orientation_metadata |
| constexpr auto | theme_mode_metadata = enum_metadata{theme_mode::light, "light", theme_mode::dark, "dark"} |
| template<fixed_string Tag> | |
| detail::tagged_counter< Tag > | global_counter |
| constexpr auto | semantic_text_style_metadata |
| constexpr auto | text_decoration_metadata |
| constexpr auto | phrasing_metadata |
| constexpr char32_t | unicode_replacement_character = U'\ufffd' |
| constexpr char32_t | unicode_LF = U'\n' |
| constexpr char32_t | unicode_VT = U'\v' |
| constexpr char32_t | unicode_FF = U'\f' |
| constexpr char32_t | unicode_CR = U'\r' |
| constexpr char32_t | unicode_NEL = U'\u0085' |
| constexpr char32_t | unicode_LS = U'\u2028' |
| constexpr char32_t | unicode_PS = U'\u2029' |
| constexpr std::size_t | hardware_destructive_interference_size = 128 |
| constexpr std::size_t | hardware_constructive_interference_size = 64 |
| constexpr std::size_t | maximum_num_cpus = 64 |
| constexpr uint32_t | float16_bias = 15 |
| constexpr uint32_t | float32_bias = 127 |
| constexpr uint32_t | f32_to_f16_adjustment_exponent = float32_bias - float16_bias |
| constexpr uint32_t | f32_to_f16_lowest_normal_exponent = 0x01 + f32_to_f16_adjustment_exponent |
| constexpr uint32_t | f32_to_f16_infinite_exponent = 0x1f + f32_to_f16_adjustment_exponent |
| constexpr uint32_t | f32_to_f16_adjustment = f32_to_f16_adjustment_exponent << 23 |
| constexpr uint32_t | f32_to_f16_lowest_normal = f32_to_f16_lowest_normal_exponent << 23 |
| constexpr uint32_t | f32_to_f16_infinite = f32_to_f16_infinite_exponent << 23 |
| constexpr unsigned long long | pow10_table [20] |
| template<typename T > | |
| constexpr auto | large_number_v = T{16777215} |
| A large number. | |
| template<std::floating_point T> | |
| constexpr auto | points_per_inch_v = T{72.0} |
| The number of points (typography) per inch. | |
| template<std::floating_point T> | |
| constexpr auto | dp_per_inch_v = T{80.0} |
| The number of device independent pixels per inch. | |
| template<std::floating_point T> | |
| constexpr auto | points_to_dp_scale_v = dp_per_inch_v<T> / points_per_inch_v<T> |
| constexpr double | points_per_inch = points_per_inch_v<double> |
| constexpr double | dp_per_inch = dp_per_inch_v<double> |
| template<typename T > | |
| constexpr bool | is_numeric_signed_integral_v = is_numeric_signed_integral<T>::value |
| template<typename T > | |
| constexpr bool | is_numeric_unsigned_integral_v = is_numeric_unsigned_integral<T>::value |
| template<typename T > | |
| constexpr bool | is_numeric_integral_v = is_numeric_integral<T>::value |
| template<typename T > | |
| constexpr bool | is_numeric_v = is_numeric<T>::value |
| template<typename T > | |
| constexpr bool | is_character_v = is_character<T>::value |
| template<typename T > | |
| constexpr bool | is_byte_like_v = is_byte_like<T>::value |
| An array of this type will implicitly create objects within that array. | |
| template<std::size_t N> | |
| constexpr bool | has_native_intxx_v = has_native_intxx<N>::value |
| template<std::size_t N> | |
| constexpr bool | has_native_uintxx_v = has_native_uintxx<N>::value |
| template<std::size_t N> | |
| constexpr bool | has_native_floatxx_v = has_native_floatxx<N>::value |
| template<std::size_t N> | |
| constexpr bool | has_intxx_v = has_intxx<N>::value |
| template<std::size_t N> | |
| constexpr bool | has_uintxx_v = has_uintxx<N>::value |
| template<std::size_t N> | |
| constexpr bool | has_floatxx_v = has_floatxx<N>::value |
| template<typename T > | |
| constexpr bool | has_value_type_v = has_value_type<T>::value |
| template<typename T > | |
| constexpr bool | has_add_callback_v = has_add_callback<T>::value |
| template<typename BaseType , typename DerivedType > | |
| constexpr bool | is_decayed_base_of_v = is_decayed_base_of<BaseType,DerivedType>::value |
| template<typename DerivedType , typename BaseType > | |
| constexpr bool | is_derived_from_v = is_derived_from<DerivedType,BaseType>::value |
| template<typename DerivedType , typename BaseType > | |
| constexpr bool | is_decayed_derived_from_v = is_decayed_derived_from<DerivedType,BaseType>::value |
| template<typename Context , typename Expected > | |
| constexpr bool | is_different_v = not std::is_same_v<std::decay_t<Context>,std::decay_t<Expected>> |
| If the types are different. | |
| template<typename T > | |
| constexpr bool | is_atomic_v = is_atomic<T>::value |
| template<typename Out , typename In > | |
| constexpr bool | type_in_range_v |
All values of numeric type In can be represented without loss of range by numeric type Out. | |
| template<typename Context , typename Expected , typename... OtherExpected> | |
| constexpr bool | is_forward_of_v = is_forward_of<Context, Expected, OtherExpected...>::value |
| template<typename T > | |
| constexpr bool | default_values_v = default_values<T>::value |
DOXYGEN BUG.
Doxygen can't handle namespace hi::inline v1 {} syntax. All files should be changed to use old-style inline namespace syntax.
| using v1::await_resume_result_t = 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 = 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. |
| using v1::copy_cv_t = typename copy_cv<To,From>::type |
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::int128_t = __int128 |
Signed 128 bit integer.
| using v1::longreg_t = int64_t |
Signed integer twice the size of a standard CPU register.
| using v1::make_string_t = typename make_string<T>::type |
type-trait to convert a character to a string type.
| using v1::make_string_view_t = typename make_string_view<T>::type |
type-trait to convert a character to a string_view type.
| using v1::uint128_t = unsigned __int128 |
Unsigned 128 bit integer.
| using v1::ulongreg_t = uint64_t |
Unsigned integer twice the size of a standard CPU register.
| using v1::variant_decay_t = variant_decay<T>::type |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
The keyboard focus group used for finding a widget that will accept a particular focus.
|
strong |
Key modification keys pressed at the same time as another key.
The Fn key is not always available on larger keyboards and is often under full control of the keyboard, therefor it is not in the list of keyboard modifiers here.
| Enumerator | |
|---|---|
| shift | The shift key is being held. |
| control | The control key is being held. |
| alt | The alt-key, option-key or meta-key is being held. |
| super | The windows-key, key-key or super-key is being held. |
|
strong |
|
strong |
The orientation of the RGB sub-pixels of and LCD/LED panel.
|
strong |
Describes how a grapheme should be underlined when rendering the text.
It is carried with the grapheme and glyphs, so that the text render engine can draw the decoration after the text is shaped and in rendering-order (left to right) and, this makes it easier to correctly render the decoration of multiple glyphs in a single stroke.
|
inlinenoexcept |
Advance a pointer by a number of bytes.
| ptr | The pointer to advance. |
| distance | The number of bytes to advance the pointer, may be negative. |
|
inlinenoexcept |
Advance a pointer by a number of bytes.
| ptr | The pointer to advance. |
| distance | The number of bytes to advance the pointer, may be negative. |
|
inlinenoexcept |
Generate alternatives for the font_weight.
| start | The starting font-weight. |
|
noexcept |
Strip data from the back side.
| data_first | The iterator pointing to the first element of data. |
| data_last | The iterator pointing one beyond the last element of data. |
| value_first | The iterator pointing to the first value to be removed from data. |
| value_last | The iterator pointing one beyond the last value to be removed from data. |
|
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. |
|
constexprnoexcept |
Binary Operator Precedence according to C++.
|
constexprnoexcept |
Get the bit index of the single bit of the socket_event mask.
|
constexprnoexcept |
The smallest multiple of alignment greater than or equal to value.
| value | The unsigned value to round. |
| alignment | The alignment. |
|
noexcept |
Initialize the console.
| void v1::construct | ( | It | first, |
| It | last, | ||
| Args const &... | args ) |
Construct a set of objects.
|
inline |
Return line and column count at the end iterator.
| int v1::crt_finish | ( | int | argc, |
| char ** | argv, | ||
| int | exit_code ) |
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().
|
inline |
Start the hikogui system.
This function will do a minimum amount of setup for the hikogui system.
crt_finish() to free the memory. | std::pair< int, char ** > v1::crt_start | ( | int | argc, |
| char ** | argv, | ||
| void * | instance, | ||
| int | show_cmd ) |
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.
|
inline |
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.
|
inline |
Decode BON8 message from buffer.
| buffer | A buffer to a BON8 encoded message. |
|
inline |
Decode BON8 message from buffer.
| buffer | A buffer to a BON8 encoded message. |
|
inline |
Decode BON8 message from buffer.
| buffer | A buffer to a BON8 encoded message. |
|
inline |
Encode a value to a BON8 message.
| value | The data to encode |
|
constexprnoexcept |
Search for the item that is equal to the key.
|
constexprnoexcept |
The fast lower bound algorithm.
| T | The type of the table element. |
| Key | The type of the key |
| Endian | The endianess of the key in the table. |
| table | A span of elements to search, the key is in the first bytes of each element. |
| key | A unsigned integral to search in the elements. |
|
noexcept |
Lock-free fetch-then-max operation on an atomic.
|
noexcept |
Lock-free fetch-then-min operation on an atomic.
|
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. |
|
inlinenoexcept |
Find a font closest to the variant.
This function will always return a valid font_id.
| family_id | a valid family id. |
| variant | The variant of the font to select. |
|
inlinenoexcept |
Find a font closest to the variant.
This function will always return a valid font_id.
| family_name | a font family name. |
| variant | The variant of the font to select. |
|
inlinenoexcept |
Find font family id.
This function will always return a valid font_family_id by walking the fallback-chain.
|
inlinenoexcept |
Find a glyph using the given code-point.
This function will find a glyph matching the grapheme in the selected font, or find the glyph in the fallback font.
| font | The font to use to find the grapheme in. |
| grapheme | The Unicode grapheme to find in the font. |
Find a glyph using the given code-point.
This function will find a glyph matching the grapheme in the selected font, or find the glyph in the fallback font.
| font | The font to use to find the grapheme in. |
| grapheme | The Unicode grapheme to find in the font. |
|
constexprnoexcept |
Fix the language for the string.
Make sure that every grapheme will have a language assigned. The following rules will be used to assign languages
| first | An iterator pointing to the first grapheme. |
| last | An iterator pointing beyond the last grapheme. |
| default_language_tag | The language to set each grapheme to. |
|
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.
|
inline |
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.
|
constexprnoexcept |
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. |
|
constexpr |
Dump an datum object into a JSON string.
| root | datum-object to serialize |
|
noexcept |
Strip data from the front side.
| data_first | The iterator pointing to the first element of data. |
| data_last | The iterator pointing one beyond the last element of data. |
| value_first | The iterator pointing to the first value to be removed from data. |
| value_last | The iterator pointing one beyond the last value to be removed from data. |
|
constexpr |
Generate data in an array.
| operation | A function to execute for each element in the array. The function accepts a single index argument. |
|
inline |
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. |
|
constexpr |
|
inlinenoexcept |
Convenience function for SHGetKnownFolderPath().
Retrieves a full path of a known folder identified by the folder's KNOWNFOLDERID. See https://docs.microsoft.com/en-us/windows/win32/shell/knownfolderid#constants
| KNOWNFOLDERID | folder_id. |
|
constexpr |
Check if a pointer is properly aligned for the object it is pointing at.
|
inlinenoexcept |
Encode a string to be usable as an id.
An id has the following format: [_a-zA-Z][_a-zA-Z0-9]*
|
constexprnoexcept |
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 |
|
constexprnoexcept |
Check if the text-phrasing is included in the text-phrasing-mask.
| lhs | The text-phrasing-mask, i.e. the pattern. |
| rhs | The text-phrasing. |
|
inlinenoexcept |
Multiply with overflow detection.
|
inlinenoexcept |
Normalize string to use only line-feeds.
|
constexprnoexcept |
Operator Precedence according to C++.
|
constexprnoexcept |
Merge on_overflow_t. Get the on_overflow of two arguments with highest safety.
|
constexpr |
Parse a JSON string.
| text | The text to parse. |
|
inline |
Parse a JSON string.
| path | A path pointing to the file to parse. |
|
constexpr |
Parse a JSON string.
| text | The text to parse. |
|
constexpr |
Parse a JSON string.
| text | The text to parse. |
| T * v1::placement_copy | ( | InputIt | src, |
| T * | dst ) |
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. |
| void v1::placement_copy | ( | InputIt | src_first, |
| InputIt | src_last, | ||
| T * | dst_first ) |
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. |
| void v1::placement_move | ( | T * | src, |
| T * | src_last, | ||
| T * | dst ) |
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.
|
inline |
Register a font.
Duplicate registrations will be ignored.
When a font file is registered the file will be temporarily opened to read and cache a set of properties:
| path | Location of font. |
|
constexpr |
Find the start of the current cluster.
| first | The first iterator, where this function will stop iterating. |
| start | Where to start the search |
| predicate | A function returning the identifier of the cluster. |
|
noexcept |
Handle a potential overflow.
| value | returned by operation; potentially invalid. |
| overflow | true when the operation overflowed. |
| is_positive | true when saturation is at the positive limit. |
|
noexcept |
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. |
|
inlinenoexcept |
Securely clear an object.
This function uses an operating system service for erasing memory securely.
| object | The object to securely clear to zeroes. |
|
inlinenoexcept |
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. |
| void v1::secure_destroy | ( | It | first, |
| It | last ) |
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. |
| void v1::secure_uninitialized_move | ( | It | first, |
| It | last, | ||
| OutIt | d_first ) |
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. |
|
constexprnoexcept |
Set the language for the string.
| first | An iterator pointing to the first grapheme. |
| last | An iterator pointing beyond the last grapheme. |
| language | The language to set each grapheme to. This language will be expanded. The script of the grapheme will never contradict the unicode database. |
|
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. |
|
noexcept |
Shuffle a container based on a list of indices.
It is undefined behavior for an index to point beyond last. It is undefined behavior for an index to repeat.
Complexity is O(n) swaps, where n is the number of indices.
| first | An iterator pointing to the first item in a container to be shuffled (index = 0) |
| last | An iterator pointing beyond the last item in a container to be shuffled. |
| indices_first | An iterator pointing to the first index. |
| indices_last | An iterator pointing beyond the last index. |
| index_op | A function returning the size index from indices. The default returns the index item it self. |
|
noexcept |
Solve cubic function in the form.
![\[t^{3}+pt+q=0\]](form_4_dark.png)
![\[D=\frac{1}{4}q^{2}+\frac{1}{27}p^{3}\]](form_5_dark.png)
![\[U=\frac{1}{3}\arccos(\frac{3q}{2p})\sqrt{-\frac{3}{p}}\]](form_6_dark.png)
![\[V=2\sqrt{-\frac{1}{3}p}\]](form_7_dark.png)
![\[
x=
\begin{cases}
0 & \text{if } p=0 \text{ and }q=0\\
\frac{3q}{p}, -\frac{3q}{2p} & \text{if } D=0\\
\sqrt[3]{-\frac{1}{2}+\sqrt{D}} + \sqrt[3]{-\frac{1}{2}-\sqrt{D}} & \text{if } D>0\\
V\cdot \cos(U), V\cdot\cos(U-\frac{2}{3}\pi),V\cdot\cos(U-\frac{4}{3}\pi) & \text{if } D<0
\end{cases}
\]](form_8_dark.png)
|
noexcept |
Trigonometric solution for three real roots
|
constexprnoexcept |
Solve line function. ax+b=0
![\[
x=
\begin{cases}
\frac{-b}{a}, & \text{if } a\ne0\\
\in\mathbb{R}, & \text{if } a=0,b=0\\
\o & \text{if } a=0,b\ne0
\end{cases}
\]](form_0_dark.png)
|
constexprnoexcept |
Solve quadratic function.
![\[ax^{2}+bx+c=0\]](form_1_dark.png)
![\[D=b^{2}-4ac\]](form_2_dark.png)
![\[
x=
\begin{cases}
\frac{-b}{2a}, & \text{if } D=0\\
\frac{-b -\sqrt{D}}{2a}, \frac{-b +\sqrt{D}}{2a} & \text{if } D>0\\
\o & \text{if } D<0
\end{cases}
\]](form_3_dark.png)
|
constexprnoexcept |
Solve cubic function.
![\[ax^{3}+bx^{2}+cx+d=0\]](form_9_dark.png)
![\[p=\frac{3ac-b^{2}}{3a^{2}}\]](form_10_dark.png)
,
![\[q=\frac{2b^{3}-9abc+27a^{2}d}{27a^{3}}\]](form_11_dark.png)
![\[x=\text{solveDepressedCube}(p,q)-\frac{b}{3a}\]](form_12_dark.png)
|
constexprnoexcept |
Get the size of a sub-pixel based on the sub-pixel orientation.
|
constexprnoexcept |
Create an std::array from a one dimensional array, without the last element.
Useful for copying a string literal without the nul-termination
|
constexprnoexcept |
Create an std::array from a one dimensional array, without the last element.
Useful for copying a string literal without the nul-termination
|
constexprnoexcept |
Convert a UTF-8 string to a grapheme-string.
Before conversion to gstring a string is first normalized using the Unicode normalization algorithm. By default it is normalized using NFC.
| rhs | The UTF-8 string to convert. |
| config | The attributes used for normalizing the input string. |
|
constexprnoexcept |
Convert a UTF-32 string-view to a grapheme-string.
Before conversion to gstring a string is first normalized using the Unicode normalization algorithm. By default it is normalized using NFC.
| rhs | The UTF-32 string to convert. |
| config | The attributes used for normalizing the input string. |
|
inline |
Parse a key-binding modifier name.
| s | The modifier name, with or without the canonical trailing '+' |
|
constexprnoexcept |
Convert degree to radian.
| degree | The number of degrees. |
|
constexprnoexcept |
Convert a grapheme string to UTF-8.
| rhs | The grapheme string to convert to UTF-8 |
|
constexprnoexcept |
Convert a grapheme string to UTF-8.
| rhs | The grapheme string view to convert to UTF-8 |
|
constexprnoexcept |
Convert the current string to using title case.
This function does not do full unicode case conversion; only ASCII letters [a-zA-Z] will be modified.
|
constexprnoexcept |
Convert the current string to using title case.
This function does not do full unicode case conversion; only ASCII letters [a-zA-Z] will be modified.
|
constexprnoexcept |
Convert a grapheme string to UTF-8.
| rhs | The grapheme string view to convert to UTF-8 |
|
constexprnoexcept |
Convert a grapheme string to UTF-8.
| rhs | The grapheme string view to convert to UTF-8 |
|
inline |
Transform an input container to the output container.
| input | Input container. |
| operation | A function to execute on each element in the input |
|
constexprnoexcept |
Make an unaligned load of an unsigned integer.
|
constexpr |
Reorder a given range of characters based on the unicode_bidi algorithm.
This algorithm will:
It is likely that an application has the characters grouped as graphemes and is accompanied with the original index and possible other information. The get_char function returns the first code-point of a grapheme. The set_char function is used when the code-point needs to be replaced with a mirrored version.
The bidirectional algorithm will work correctly with either a list of code points or a list of first-code-point-of-graphemes.
| first | The first iterator |
| last | The last iterator |
| get_code_point | A function to get the character of an item. |
| set_code_point | A function to set the character in an item. |
| set_text_direction | A function to set the text direction in an item. |
| context | The context/configuration to use for the bidi-algorithm. |
|
constexpr |
Removes control characters which will not survive the bidi-algorithm.
All RLE, LRE, RLO, LRO, PDF, and BN characters are removed.
| first | The first character. |
| last | One beyond the last character. |
| code_point_func | A function returning the code-point of the character. |
|
constexpr |
Get the unicode bidi direction for the first paragraph and context.
| first | The first iterator |
| last | The last iterator |
| get_code_point | A function to get the code-point of an item. |
| context | The context/configuration to use for the bidi-algorithm. |
|
constexprnoexcept |
Convert text to a Unicode decomposed normal form.
| text | to normalize, in-place. |
| normalization_mask | Extra features for normalization. |
|
constexprnoexcept |
Check if the string of code-points is a single grapheme in NFC normal form.
| it | An iterator pointing to the first code-point. |
| last | An iterator pointing beyond the last code-point. |
|
inlinenoexcept |
The unicode line break algorithm UAX #14.
| first | An iterator to the first character. |
| last | An iterator to the last character. |
| code_point_func | A function to get the code-point of a character. |
|
constexpr |
Unicode break lines.
| opportunities | The list of break opportunities. |
| widths | The list of character widths |
| maximum_line_width | The maximum line width. |
|
constexprnoexcept |
Convert text to a Unicode composed normal form.
| text | to normalize, in-place. |
| normalization_mask | Extra features for normalization. |
|
inlinenoexcept |
The unicode word break algorithm UAX#29.
| first | An iterator to the first character. |
| last | An iterator to the last character. |
| code_point_func | A function to get a code-point from an dereferenced iterator. |
|
inlinenoexcept |
The unicode word break algorithm UAX#29.
| first | An iterator to the first character. |
| last | An iterator to the last character. |
| code_point_func | A function to code-point from a character. |
|
constexpr |
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. |
|
inlinenoexcept |
Delete all registry values and the last part of the subkey.
| key | The registry's key |
| path | The path to the values. |
|
inlinenoexcept |
Delete a registry value.
| key | The registry's key |
| path | The path to the values. |
| name | The name of the value. |
|
inlinedelete |
Read from the registry value.
| T | The type of the value to read. |
| key | The registry's key |
| path | The path to the values. |
| name | The name of the value. |
| hi::os_error | Unable to read the registry-value, for example when the type was different. |
|
inlinenoexcept |
Read a DWORD registry value.
| key | The registry's key |
| path | The path to the values. |
| name | The name of the value. |
|
inlinenoexcept |
Read a list of strings from the registry value.
| key | The registry's key |
| path | The path to the values. |
| name | The name of the value. |
| hi::os_error | Unable to read the registry-value, for example when the type was different. |
|
inlinenoexcept |
Read a strings from the registry value.
| key | The registry's key |
| path | The path to the values. |
| name | The name of the value. |
|
inline |
Check if a registry entry exists.
|
inline |
Write a string registry value.
| key | The registry's key |
| path | The path to the values. |
| name | The name of the value. |
| value | The value to write |
|
inline |
Write a DWORD registry value.
| key | The registry's key |
| path | The path to the values. |
| name | The name of the value. |
| value | The value to write |
|
noexcept |
Wrap lines in text that are too wide.
This algorithm may modify white-space in text and change them into line separators. Lines are separated using the U+2028 code-point, and paragraphs are separated by the U+2029 code-point.
| first | The first iterator of a text to wrap |
| last | The one beyond the last iterator of a text to wrap |
| max_width | The maximum width of a line. |
| get_width | A function returning the width of an item pointed by the iterator. float get_width(auto const &item) |
| get_code_point | A function returning the code-point of an item pointed by the iterator. char32_t get_code_point(auto const &item) |
| set_code_point | A function changing the code-point of an item pointed by the iterator. void set_code_point(auto &item, char32_t code_point) |
|
inline |
The application instance identified by the operating system.
A handle to the application instance of the operating system:
|
constexpr |
|
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.
|
constexpr |
|
inline |
Global mutex for GUI elements, like gfx_system, gfx_device, Windows and Widgets.
|
inlineconstexpr |
An array of this type will implicitly create objects within that array.
P059R6: Implicit creation of objects for low-level object manipulation.
|
inlineconstexpr |
True is the supplied type is a character integer. This distinguishes between integer characters and integer numbers.
|
constexpr |
If the types are different.
The two types are checked after removing const, volatile and reference qualifiers.
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
constexpr |
A large number.
This number 16777215 (2^24 - 1). Integers beyond this number may not be accurately represented by a float.
|
constexpr |
|
constexpr |
|
constexpr |
The number of points (typography) per inch.
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
All values of numeric type In can be represented without loss of range by numeric type Out.