I think you are in for a steep learning curve. Code::Blocks itself uses wxWidgets to implement its GUI. You could also use it if need be. In addition, the Font used to display your Arabic script may well make a difference. A quick look at Unicode Blocks that mention Arabic shows:
Arabic 0600
Arabic Supplement 0750
Arabic Extended-B 0870
Arabic Extended-A 08A0
Arabic Presentation Forms-A FB50
Arabic Presentation Forms-b FE70
Arabic Extended-C 10EC0
Arabic Mathematical Alphabetic Symbols 1EE00
Note that any code points at or above 10000 will force the usage of surrogate pairs when using UTF-16, as Unicode uses 21 bits to denote code points. You might want to look at the following:- wxWidgets Unicode support: https://docs.wxwidgets.org/3.2/overview_unicode.html (https://docs.wxwidgets.org/3.2/overview_unicode.html)
- Unicode Design Principals: https://www.unicode.org/versions/Unicode16.0.0/core-spec/chapter-2/#G128 (https://www.unicode.org/versions/Unicode16.0.0/core-spec/chapter-2/#G128)
- International Components for Unicode: https://icu.unicode.org/ (https://icu.unicode.org/)