00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef FXDEFS_H
00025 #define FXDEFS_H
00026
00027
00028
00029
00030
00031 #ifndef TRUE
00032 #define TRUE 1
00033 #endif
00034 #ifndef FALSE
00035 #define FALSE 0
00036 #endif
00037 #ifndef MAYBE
00038 #define MAYBE 2
00039 #endif
00040 #ifndef NULL
00041 #define NULL 0
00042 #endif
00043
00044
00045 #ifndef PI
00046 #define PI 3.1415926535897932384626433833
00047 #endif
00048
00049
00050 #define EULER 2.7182818284590452353602874713
00051
00052
00053 #define DTOR 0.0174532925199432957692369077
00054
00055
00056 #define RTOD 57.295779513082320876798154814
00057
00058
00059
00060 #ifdef WIN32
00061 #define PATHSEP '\\'
00062 #define PATHSEPSTRING "\\"
00063 #define PATHLISTSEP ';'
00064 #define PATHLISTSEPSTRING ";"
00065 #define ISPATHSEP(c) ((c)=='/' || (c)=='\\')
00066 #else
00067 #define PATHSEP '/'
00068 #define PATHSEPSTRING "/"
00069 #define PATHLISTSEP ':'
00070 #define PATHLISTSEPSTRING ":"
00071 #define ISPATHSEP(c) ((c)=='/')
00072 #endif
00073
00074
00075 #ifdef WIN32
00076 #define ENDLINE "\r\n"
00077 #else
00078 #define ENDLINE "\n"
00079 #endif
00080
00081
00082
00083 #ifdef _DEBUG
00084 #ifndef DEBUG
00085 #define DEBUG
00086 #endif
00087 #endif
00088 #ifdef _NDEBUG
00089 #ifndef NDEBUG
00090 #define NDEBUG
00091 #endif
00092 #endif
00093
00094
00095
00096 #ifdef WIN32
00097 #define FXLOCAL
00098 #define FXEXPORT __declspec(dllexport)
00099 #define FXIMPORT __declspec(dllimport)
00100 #else
00101 #if defined(__GNUC__) && (__GNUC__ >= 4)
00102 #define FXLOCAL __attribute__ ((visibility("hidden")))
00103 #define FXEXPORT __attribute__ ((visibility("default")))
00104 #define FXIMPORT
00105 #else
00106 #define FXLOCAL
00107 #define FXEXPORT
00108 #define FXIMPORT
00109 #endif
00110 #endif
00111
00112
00113 #ifdef FOXDLL
00114 #ifdef FOXDLL_EXPORTS
00115 #define FXAPI FXEXPORT
00116 #else
00117 #define FXAPI FXIMPORT
00118 #endif
00119 #else
00120 #define FXAPI
00121 #endif
00122
00123
00124 #ifdef WIN32
00125 #ifndef CALLBACK
00126 #define CALLBACK __stdcall
00127 #endif
00128 #endif
00129
00130
00131
00132 #ifdef _MSC_VER
00133 #pragma warning(disable: 4251)
00134 #endif
00135
00136
00137 #if defined(_CC_GNU_) || defined(__GNUG__) || defined(__GNUC__)
00138 #define FX_PRINTF(fmt,arg) __attribute__((format(printf,fmt,arg)))
00139 #define FX_SCANF(fmt,arg) __attribute__((format(scanf,fmt,arg)))
00140 #else
00141 #define FX_PRINTF(fmt,arg)
00142 #define FX_SCANF(fmt,arg)
00143 #endif
00144
00145
00146 #ifndef WIN32
00147 union _XEvent;
00148 #else
00149 struct tagMSG;
00150 #endif
00151
00152
00153 namespace FX {
00154
00155
00156
00157 enum FXSelType {
00158 SEL_NONE,
00159 SEL_KEYPRESS,
00160 SEL_KEYRELEASE,
00161 SEL_LEFTBUTTONPRESS,
00162 SEL_LEFTBUTTONRELEASE,
00163 SEL_MIDDLEBUTTONPRESS,
00164 SEL_MIDDLEBUTTONRELEASE,
00165 SEL_RIGHTBUTTONPRESS,
00166 SEL_RIGHTBUTTONRELEASE,
00167 SEL_MOTION,
00168 SEL_ENTER,
00169 SEL_LEAVE,
00170 SEL_FOCUSIN,
00171 SEL_FOCUSOUT,
00172 SEL_KEYMAP,
00173 SEL_UNGRABBED,
00174 SEL_PAINT,
00175 SEL_CREATE,
00176 SEL_DESTROY,
00177 SEL_UNMAP,
00178 SEL_MAP,
00179 SEL_CONFIGURE,
00180 SEL_SELECTION_LOST,
00181 SEL_SELECTION_GAINED,
00182 SEL_SELECTION_REQUEST,
00183 SEL_RAISED,
00184 SEL_LOWERED,
00185 SEL_CLOSE,
00186 SEL_DELETE,
00187 SEL_MINIMIZE,
00188 SEL_RESTORE,
00189 SEL_MAXIMIZE,
00190 SEL_UPDATE,
00191 SEL_COMMAND,
00192 SEL_CLICKED,
00193 SEL_DOUBLECLICKED,
00194 SEL_TRIPLECLICKED,
00195 SEL_MOUSEWHEEL,
00196 SEL_CHANGED,
00197 SEL_VERIFY,
00198 SEL_DESELECTED,
00199 SEL_SELECTED,
00200 SEL_INSERTED,
00201 SEL_REPLACED,
00202 SEL_DELETED,
00203 SEL_OPENED,
00204 SEL_CLOSED,
00205 SEL_EXPANDED,
00206 SEL_COLLAPSED,
00207 SEL_BEGINDRAG,
00208 SEL_ENDDRAG,
00209 SEL_DRAGGED,
00210 SEL_LASSOED,
00211 SEL_TIMEOUT,
00212 SEL_SIGNAL,
00213 SEL_CLIPBOARD_LOST,
00214 SEL_CLIPBOARD_GAINED,
00215 SEL_CLIPBOARD_REQUEST,
00216 SEL_CHORE,
00217 SEL_FOCUS_SELF,
00218 SEL_FOCUS_RIGHT,
00219 SEL_FOCUS_LEFT,
00220 SEL_FOCUS_DOWN,
00221 SEL_FOCUS_UP,
00222 SEL_FOCUS_NEXT,
00223 SEL_FOCUS_PREV,
00224 SEL_DND_ENTER,
00225 SEL_DND_LEAVE,
00226 SEL_DND_DROP,
00227 SEL_DND_MOTION,
00228 SEL_DND_REQUEST,
00229 SEL_IO_READ,
00230 SEL_IO_WRITE,
00231 SEL_IO_EXCEPT,
00232 SEL_PICKED,
00233 SEL_QUERY_TIP,
00234 SEL_QUERY_HELP,
00235 SEL_DOCKED,
00236 SEL_FLOATED,
00237 SEL_SESSION_NOTIFY,
00238 SEL_SESSION_CLOSED,
00239 SEL_LAST
00240 };
00241
00242
00243
00244 enum {
00245 SHIFTMASK = 0x001,
00246 CAPSLOCKMASK = 0x002,
00247 CONTROLMASK = 0x004,
00248 #ifdef __APPLE__
00249 ALTMASK = 0x2000,
00250 METAMASK = 0x10,
00251 #else
00252 ALTMASK = 0x008,
00253 METAMASK = 0x040,
00254 #endif
00255 NUMLOCKMASK = 0x010,
00256 SCROLLLOCKMASK = 0x0E0,
00257 LEFTBUTTONMASK = 0x100,
00258 MIDDLEBUTTONMASK = 0x200,
00259 RIGHTBUTTONMASK = 0x400
00260 };
00261
00262
00263
00264 enum {
00265 LEFTBUTTON = 1,
00266 MIDDLEBUTTON = 2,
00267 RIGHTBUTTON = 3
00268 };
00269
00270
00271
00272 enum {
00273 CROSSINGNORMAL,
00274 CROSSINGGRAB,
00275 CROSSINGUNGRAB
00276 };
00277
00278
00279
00280 enum {
00281 VISIBILITYTOTAL,
00282 VISIBILITYPARTIAL,
00283 VISIBILITYNONE
00284 };
00285
00286
00287
00288 enum {
00289 FILEMATCH_FILE_NAME = 1,
00290 FILEMATCH_NOESCAPE = 2,
00291 FILEMATCH_PERIOD = 4,
00292 FILEMATCH_LEADING_DIR = 8,
00293 FILEMATCH_CASEFOLD = 16
00294 };
00295
00296
00297
00298 enum FXDragAction {
00299 DRAG_REJECT = 0,
00300 DRAG_ACCEPT = 1,
00301 DRAG_COPY = 2,
00302 DRAG_MOVE = 3,
00303 DRAG_LINK = 4,
00304 DRAG_PRIVATE = 5
00305 };
00306
00307
00308
00309 enum FXDNDOrigin {
00310 FROM_SELECTION = 0,
00311 FROM_CLIPBOARD = 1,
00312 FROM_DRAGNDROP = 2
00313 };
00314
00315
00316
00317 enum FXExponent {
00318 EXP_NEVER=FALSE,
00319 EXP_ALWAYS=TRUE,
00320 EXP_AUTO=MAYBE
00321 };
00322
00323
00324
00325 enum {
00326 SEARCH_FORWARD = 0,
00327 SEARCH_BACKWARD = 1,
00328 SEARCH_NOWRAP = 0,
00329 SEARCH_WRAP = 2,
00330 SEARCH_EXACT = 0,
00331 SEARCH_IGNORECASE = 4,
00332 SEARCH_REGEX = 8,
00333 SEARCH_PREFIX = 16
00334 };
00335
00336
00337
00338
00339
00340 class FXObject;
00341 class FXStream;
00342 class FXString;
00343
00344
00345
00346 typedef char FXchar;
00347 typedef unsigned char FXuchar;
00348 typedef FXuchar FXbool;
00349 typedef unsigned short FXushort;
00350 typedef short FXshort;
00351 typedef unsigned int FXuint;
00352 typedef int FXint;
00353 typedef float FXfloat;
00354 typedef double FXdouble;
00355 typedef FXObject *FXObjectPtr;
00356 #ifdef WIN32
00357 typedef unsigned int FXwchar;
00358 #if defined(_MSC_VER) && !defined(_NATIVE_WCHAR_T_DEFINED)
00359 typedef unsigned short FXnchar;
00360 #elif defined(__WATCOM_INT64__)
00361 typedef long char FXnchar;
00362 #else
00363 typedef wchar_t FXnchar;
00364 #endif
00365 #else
00366 typedef wchar_t FXwchar;
00367 typedef unsigned short FXnchar;
00368 #endif
00369 #if defined(__LP64__) || defined(_LP64) || (_MIPS_SZLONG == 64) || (__WORDSIZE == 64)
00370 typedef unsigned long FXulong;
00371 typedef long FXlong;
00372 #elif defined(_MSC_VER) || (defined(__BCPLUSPLUS__) && __BORLANDC__ > 0x500) || defined(__WATCOM_INT64__)
00373 typedef unsigned __int64 FXulong;
00374 typedef __int64 FXlong;
00375 #elif defined(__GNUG__) || defined(__GNUC__) || defined(__SUNPRO_CC) || defined(__MWERKS__) || defined(__SC__) || defined(_LONGLONG)
00376 typedef unsigned long long FXulong;
00377 typedef long long FXlong;
00378 #else
00379 #error "FXlong and FXulong not defined for this architecture!"
00380 #endif
00381
00382
00383 #if defined(_MSC_VER) && defined(_WIN64)
00384 typedef __int64 FXival;
00385 typedef unsigned __int64 FXuval;
00386 #else
00387 typedef long FXival;
00388 typedef unsigned long FXuval;
00389 #endif
00390
00391
00392
00393 #ifndef WIN32
00394 typedef unsigned long FXID;
00395 #else
00396 typedef void* FXID;
00397 #endif
00398
00399
00400 typedef long FXTime;
00401
00402
00403 typedef unsigned long FXPixel;
00404
00405
00406 typedef FXuint FXColor;
00407
00408
00409 typedef FXuint FXHotKey;
00410
00411
00412 #ifndef WIN32
00413 typedef FXID FXDragType;
00414 #else
00415 typedef FXushort FXDragType;
00416 #endif
00417
00418
00419 #ifndef WIN32
00420 typedef FXint FXInputHandle;
00421 #else
00422 typedef void* FXInputHandle;
00423 #endif
00424
00425
00426 #ifndef WIN32
00427 typedef _XEvent FXRawEvent;
00428 #else
00429 typedef tagMSG FXRawEvent;
00430 #endif
00431
00432
00433
00434
00435
00436
00437 #define FXABS(val) (((val)>=0)?(val):-(val))
00438
00439
00440 #define FXMAX(a,b) (((a)>(b))?(a):(b))
00441
00442
00443 #define FXMIN(a,b) (((a)>(b))?(b):(a))
00444
00445
00446 #define FXMIN3(x,y,z) ((x)<(y)?FXMIN(x,z):FXMIN(y,z))
00447
00448
00449 #define FXMAX3(x,y,z) ((x)>(y)?FXMAX(x,z):FXMAX(y,z))
00450
00451
00452 #define FXMIN4(x,y,z,w) (FXMIN(FXMIN(x,y),FXMIN(z,w)))
00453
00454
00455 #define FXMAX4(x,y,z,w) (FXMAX(FXMAX(x,y),FXMAX(z,w)))
00456
00457
00458 #define FXMINMAX(lo,hi,a,b) ((a)<(b)?((lo)=(a),(hi)=(b)):((lo)=(b),(hi)=(a)))
00459
00460
00461 #define FXCLAMP(lo,x,hi) ((x)<(lo)?(lo):((x)>(hi)?(hi):(x)))
00462
00463
00464 #define FXSWAP(a,b,t) ((t)=(a),(a)=(b),(b)=(t))
00465
00466
00467 #define FXLERP(a,b,f) ((a)+((b)-(a))*(f))
00468
00469
00470 #define STRUCTOFFSET(str,member) (((char *)(&(((str *)0)->member)))-((char *)0))
00471
00472
00473 #define ARRAYNUMBER(array) (sizeof(array)/sizeof(array[0]))
00474
00475
00476 #define CONTAINER(ptr,str,mem) ((str*)(((char*)(ptr))-STRUCTOFFSET(str,mem)))
00477
00478
00479 #define MKUINT(l,h) ((((FX::FXuint)(l))&0xffff) | (((FX::FXuint)(h))<<16))
00480
00481
00482 #define FXSEL(type,id) ((((FX::FXuint)(id))&0xffff) | (((FX::FXuint)(type))<<16))
00483
00484
00485 #define FXSELTYPE(s) ((FX::FXushort)(((s)>>16)&0xffff))
00486
00487
00488 #define FXSELID(s) ((FX::FXushort)((s)&0xffff))
00489
00490
00491 #define FXBITREVERSE(b) (((b&0x01)<<7)|((b&0x02)<<5)|((b&0x04)<<3)|((b&0x08)<<1)|((b&0x10)>>1)|((b&0x20)>>3)|((b&0x40)>>5)|((b&0x80)>>7))
00492
00493
00494 #define FXISUTF(c) (((c)&0xC0)!=0x80)
00495
00496
00497
00498 #if FOX_BIGENDIAN == 1
00499
00500
00501 #define FXRGBA(r,g,b,a) (((FX::FXuint)(FX::FXuchar)(r)<<24) | ((FX::FXuint)(FX::FXuchar)(g)<<16) | ((FX::FXuint)(FX::FXuchar)(b)<<8) | ((FX::FXuint)(FX::FXuchar)(a)))
00502
00503
00504 #define FXRGB(r,g,b) (((FX::FXuint)(FX::FXuchar)(r)<<24) | ((FX::FXuint)(FX::FXuchar)(g)<<16) | ((FX::FXuint)(FX::FXuchar)(b)<<8) | 0x000000ff)
00505
00506
00507 #define FXREDVAL(rgba) ((FX::FXuchar)(((rgba)>>24)&0xff))
00508
00509
00510 #define FXGREENVAL(rgba) ((FX::FXuchar)(((rgba)>>16)&0xff))
00511
00512
00513 #define FXBLUEVAL(rgba) ((FX::FXuchar)(((rgba)>>8)&0xff))
00514
00515
00516 #define FXALPHAVAL(rgba) ((FX::FXuchar)((rgba)&0xff))
00517
00518
00519 #define FXRGBACOMPVAL(rgba,comp) ((FX::FXuchar)(((rgba)>>((3-(comp))<<3))&0xff))
00520
00521 #endif
00522
00523
00524
00525 #if FOX_BIGENDIAN == 0
00526
00527
00528 #define FXRGBA(r,g,b,a) (((FX::FXuint)(FX::FXuchar)(r)) | ((FX::FXuint)(FX::FXuchar)(g)<<8) | ((FX::FXuint)(FX::FXuchar)(b)<<16) | ((FX::FXuint)(FX::FXuchar)(a)<<24))
00529
00530
00531 #define FXRGB(r,g,b) (((FX::FXuint)(FX::FXuchar)(r)) | ((FX::FXuint)(FX::FXuchar)(g)<<8) | ((FX::FXuint)(FX::FXuchar)(b)<<16) | 0xff000000)
00532
00533
00534 #define FXREDVAL(rgba) ((FX::FXuchar)((rgba)&0xff))
00535
00536
00537 #define FXGREENVAL(rgba) ((FX::FXuchar)(((rgba)>>8)&0xff))
00538
00539
00540 #define FXBLUEVAL(rgba) ((FX::FXuchar)(((rgba)>>16)&0xff))
00541
00542
00543 #define FXALPHAVAL(rgba) ((FX::FXuchar)(((rgba)>>24)&0xff))
00544
00545
00546 #define FXRGBACOMPVAL(rgba,comp) ((FX::FXuchar)(((rgba)>>((comp)<<3))&0xff))
00547
00548 #endif
00549
00550
00551
00552
00553
00554
00555
00556
00557
00558 #ifndef NDEBUG
00559 #define FXASSERT(exp) ((exp)?((void)0):(void)FX::fxassert(#exp,__FILE__,__LINE__))
00560 #else
00561 #define FXASSERT(exp) ((void)0)
00562 #endif
00563
00564
00565
00566
00567
00568
00569
00570
00571
00572
00573
00574
00575
00576
00577 #ifndef NDEBUG
00578 #define FXTRACE(arguments) FX::fxtrace arguments
00579 #else
00580 #define FXTRACE(arguments) ((void)0)
00581 #endif
00582
00583
00584
00585
00586
00587
00588
00589
00590 #define FXMALLOC(ptr,type,no) (FX::fxmalloc((void **)(ptr),sizeof(type)*(no)))
00591
00592
00593
00594
00595
00596
00597
00598 #define FXCALLOC(ptr,type,no) (FX::fxcalloc((void **)(ptr),sizeof(type)*(no)))
00599
00600
00601
00602
00603
00604
00605
00606
00607
00608
00609 #define FXRESIZE(ptr,type,no) (FX::fxresize((void **)(ptr),sizeof(type)*(no)))
00610
00611
00612
00613
00614
00615
00616
00617
00618 #define FXMEMDUP(ptr,src,type,no) (FX::fxmemdup((void **)(ptr),(const void*)(src),sizeof(type)*(no)))
00619
00620
00621
00622
00623
00624
00625
00626 #define FXFREE(ptr) (FX::fxfree((void **)(ptr)))
00627
00628
00629
00630
00631
00632
00633
00634
00635
00636
00637 #ifdef __OpenBSD__
00638 #define FLOAT_MATH_FUNCTIONS
00639 #endif
00640 #ifndef FLOAT_MATH_FUNCTIONS
00641 #ifndef __USE_ISOC99
00642 #ifndef __APPLE__
00643 #define fabsf(x) ((float)fabs((double)(x)))
00644 #define ceilf(x) ((float)ceil((double)(x)))
00645 #define floorf(x) ((float)floor((double)(x)))
00646 #define fmodf(x,y) ((float)fmod((double)(x),(double)(y)))
00647 #endif
00648 #define sqrtf(x) ((float)sqrt((double)(x)))
00649 #define sinf(x) ((float)sin((double)(x)))
00650 #define cosf(x) ((float)cos((double)(x)))
00651 #define tanf(x) ((float)tan((double)(x)))
00652 #define asinf(x) ((float)asin((double)(x)))
00653 #define acosf(x) ((float)acos((double)(x)))
00654 #define atanf(x) ((float)atan((double)(x)))
00655 #define atan2f(y,x) ((float)atan2((double)(y),(double)(x)))
00656 #define powf(x,y) ((float)pow((double)(x),(double)(y)))
00657 #define expf(x) ((float)exp((double)(x)))
00658 #define logf(x) ((float)log((double)(x)))
00659 #define log10f(x) ((float)log10((double)(x)))
00660 #endif
00661 #endif
00662
00663
00664
00665
00666
00667 extern FXAPI FXuint fxrandom(FXuint& seed);
00668
00669
00670 extern FXAPI FXint fxmalloc(void** ptr,unsigned long size);
00671
00672
00673 extern FXAPI FXint fxcalloc(void** ptr,unsigned long size);
00674
00675
00676 extern FXAPI FXint fxresize(void** ptr,unsigned long size);
00677
00678
00679 extern FXAPI FXint fxmemdup(void** ptr,const void* src,unsigned long size);
00680
00681
00682 extern FXAPI void fxfree(void** ptr);
00683
00684
00685 extern FXAPI void fxerror(const char* format,...) FX_PRINTF(1,2) ;
00686
00687
00688 extern FXAPI void fxwarning(const char* format,...) FX_PRINTF(1,2) ;
00689
00690
00691 extern FXAPI void fxmessage(const char* format,...) FX_PRINTF(1,2) ;
00692
00693
00694 extern FXAPI void fxassert(const char* expression,const char* filename,unsigned int lineno);
00695
00696
00697 extern FXAPI void fxtrace(unsigned int level,const char* format,...) FX_PRINTF(2,3) ;
00698
00699
00700 extern FXAPI void fxsleep(unsigned int n);
00701
00702
00703 extern FXAPI bool fxfilematch(const char *pattern,const char *string,FXuint flags=(FILEMATCH_NOESCAPE|FILEMATCH_FILE_NAME));
00704
00705
00706 extern FXAPI FXColor makeHiliteColor(FXColor clr);
00707
00708
00709 extern FXAPI FXColor makeShadowColor(FXColor clr);
00710
00711
00712 extern FXAPI FXint fxgetpid();
00713
00714
00715 extern FXAPI bool fxtoDOS(FXchar*& string,FXint& len);
00716
00717
00718 extern FXAPI bool fxfromDOS(FXchar*& string,FXint& len);
00719
00720
00721 extern FXAPI FXchar *fxstrdup(const FXchar* str);
00722
00723
00724 extern FXAPI FXuint fxstrhash(const FXchar* str);
00725
00726
00727 extern FXAPI FXColor fxcolorfromname(const FXchar* colorname);
00728
00729
00730 extern FXAPI FXchar* fxnamefromcolor(FXchar *colorname,FXColor color);
00731
00732
00733 extern FXAPI void fxrgb_to_hsv(FXfloat& h,FXfloat& s,FXfloat& v,FXfloat r,FXfloat g,FXfloat b);
00734
00735
00736 extern FXAPI void fxhsv_to_rgb(FXfloat& r,FXfloat& g,FXfloat& b,FXfloat h,FXfloat s,FXfloat v);
00737
00738
00739 extern FXAPI FXint fxieeefloatclass(FXfloat number);
00740 extern FXAPI FXint fxieeedoubleclass(FXdouble number);
00741
00742
00743 extern FXAPI FXwchar fxkeysym2ucs(FXwchar sym);
00744
00745
00746 extern FXAPI FXwchar fxucs2keysym(FXwchar ucs);
00747
00748
00749 extern FXAPI FXint fxparsegeometry(const FXchar *string,FXint& x,FXint& y,FXint& w,FXint& h);
00750
00751
00752 extern FXAPI FXbool fxisconsole(const FXchar *path);
00753
00754
00755 extern FXAPI const FXuchar fxversion[3];
00756
00757
00758 extern FXAPI unsigned int fxTraceLevel;
00759
00760
00761 extern FXAPI FXwchar wc(const FXchar *ptr);
00762
00763
00764 extern FXAPI FXwchar wc(const FXnchar *ptr);
00765
00766
00767 extern FXAPI FXint wclen(const FXchar *ptr);
00768
00769
00770 extern FXAPI FXint wclen(const FXnchar *ptr);
00771
00772
00773 extern FXAPI FXint wcvalidate(const FXchar* string,FXint pos);
00774
00775
00776 extern FXAPI FXint wcvalidate(const FXnchar *string,FXint pos);
00777
00778
00779 extern FXAPI FXint wcinc(const FXchar* string,FXint pos);
00780
00781
00782 extern FXAPI FXint wcinc(const FXnchar *string,FXint pos);
00783
00784
00785 extern FXAPI FXint wcdec(const FXchar* string,FXint pos);
00786
00787
00788 extern FXAPI FXint wcdec(const FXnchar *string,FXint pos);
00789
00790
00791 extern FXAPI FXint utfslen(const FXwchar *str,FXint n);
00792
00793
00794 extern FXAPI FXint utfslen(const FXwchar *str);
00795
00796
00797 extern FXAPI FXint utfslen(const FXnchar *str,FXint n);
00798
00799
00800 extern FXAPI FXint utfslen(const FXnchar *str);
00801
00802
00803 extern FXAPI FXint wcslen(const FXchar *str,FXint n);
00804
00805
00806 extern FXAPI FXint wcslen(const FXchar *str);
00807
00808
00809 extern FXAPI FXint ncslen(const FXchar *str,FXint n);
00810
00811
00812 extern FXAPI FXint ncslen(const FXchar *str);
00813
00814
00815 extern FXAPI FXint utf2wcs(FXwchar *dst,const FXchar *src,FXint n);
00816
00817
00818 extern FXAPI FXint utf2wcs(FXwchar *dst,const FXchar *src);
00819
00820
00821 extern FXAPI FXint utf2ncs(FXnchar *dst,const FXchar *src,FXint n);
00822
00823
00824 extern FXAPI FXint utf2ncs(FXnchar *dst,const FXchar *src);
00825
00826
00827 extern FXAPI FXint wc2utfs(FXchar* dst,const FXwchar *src,FXint n);
00828
00829
00830 extern FXAPI FXint wc2utfs(FXchar* dst,const FXwchar *src);
00831
00832
00833 extern FXAPI FXint nc2utfs(FXchar* dst,const FXnchar *src,FXint n);
00834
00835
00836 extern FXAPI FXint nc2utfs(FXchar* dst,const FXnchar *src);
00837
00838
00839 }
00840
00841 #endif