*/}}
Browse Source

change unicode charater literal L to U

YimingWu 1 year ago
parent
commit
7b5e9516d7
11 changed files with 265 additions and 265 deletions
  1. 2 2
      la_controllers.c
  2. 26 26
      la_data.c
  3. 12 12
      la_kernel.c
  4. 5 5
      la_tns_kernel.c
  5. 25 25
      la_util.c
  6. 7 7
      resources/la_nodes_basic.c
  7. 76 76
      resources/la_operators.c
  8. 63 63
      resources/la_properties.c
  9. 1 1
      resources/la_tns_drivers.c
  10. 18 18
      resources/la_widgets.c
  11. 30 30
      resources/la_widgets_viewers.c

+ 2 - 2
la_controllers.c

@@ -167,11 +167,11 @@ void la_RegisterControllerProps(){
     for(int i=0;i<LA_JS_MAX_AXES;i++){ sprintf(LA_JS_AXIS_NAMES[i],"a%d",i); }
     for(int i=0;i<LA_JS_MAX_BUTTONS;i++){ sprintf(LA_JS_BTN_NAMES[i],"b%d",i); }
 
-    laCreateOperatorType("LA_refresh_controllers", "Refresh Controllers", "Look for connected controllers",0,0,0,OPINV_RefreshControllers,0,L'๐Ÿ—˜',0);
+    laCreateOperatorType("LA_refresh_controllers", "Refresh Controllers", "Look for connected controllers",0,0,0,OPINV_RefreshControllers,0,U'๐Ÿ—˜',0);
 
     laPropContainer* pc; laProp* p;
 
-    pc=laAddPropertyContainer("la_controller", "Controller", "A joystick/gamepad controller", L'๐Ÿ•น', 0, sizeof(laController), 0,0,1);
+    pc=laAddPropertyContainer("la_controller", "Controller", "A joystick/gamepad controller", U'๐Ÿ•น', 0, sizeof(laController), 0,0,1);
     LA_PC_JS_GENERIC = pc;
     laAddStringProperty(pc,"name","Name","Name of the controller", LA_WIDGET_STRING_PLAIN,0,0,0,1,offsetof(laController,Name),0,0,0,0,LA_READ_ONLY);
     laAddStringProperty(pc,"path","Path","Device path to the controller", LA_WIDGET_STRING_PLAIN,0,0,0,1,offsetof(laController,Path),0,0,0,0,LA_READ_ONLY);

+ 26 - 26
la_data.c

@@ -183,11 +183,11 @@ void laDataBlockNoLongerExists(void *HyperUserMem, laListHandle* UserList){
 void la_NewPropStep(laPropPack *Self, laProp *P, void *UseInstance, char Type){
     laPropStep *ps = memAcquireSimple(sizeof(laPropStep));
 
-    if (Type == L'.' || Type == L'$'){
+    if (Type == U'.' || Type == U'$'){
         ps->p = P;
         ps->UseInstance = UseInstance;
         ps->Type = Type;
-    }elif (Type == L'@' || Type == L'=' || Type == L'#'){
+    }elif (Type == U'@' || Type == U'=' || Type == U'#'){
         ps->p = CreateNewBuffer(char, strlen(P) + 1);
         strcpy(ps->p, P);
         ps->UseInstance = UseInstance;
@@ -207,7 +207,7 @@ void la_FreePropStepCache(laPropStep *GoTarget){
     if (GoTarget->pNext){
         la_FreePropStepCache(GoTarget->pNext);
     }
-    if (GoTarget->Type == L'@' || GoTarget->Type == L'=' || GoTarget->Type == L'#') FreeMem(GoTarget->p);
+    if (GoTarget->Type == U'@' || GoTarget->Type == U'=' || GoTarget->Type == U'#') FreeMem(GoTarget->p);
     memFree(GoTarget);
 }
 void *la_FindMatchingInstance(void *From, laProp *Sub, laProp *p, laPropStep *Value){
@@ -283,7 +283,7 @@ int la_GetPropFromPath(laPropPack *Self, laPropPack *Base, const char *Path, voi
         }
     }
     while (sp){
-        if (sp->Type == L'.' || sp->Type == L'$'){
+        if (sp->Type == U'.' || sp->Type == U'$'){
             void *inst = 0;
             p = la_PropLookup(lst, sp->Content); 
             if (!p) p = la_PropLookup(lstB, sp->Content);
@@ -293,7 +293,7 @@ int la_GetPropFromPath(laPropPack *Self, laPropPack *Base, const char *Path, voi
                 strDestroyStringSplitor(&ss);
                 return 0; //          |-----------------Here Should Include Dollar Instance
             }             //                      V
-            if (sp->Type == L'$'){
+            if (sp->Type == U'$'){
                 inst = SpecifiedInstance[InstanceNum];
                 InstanceNum++;
             }else
@@ -307,7 +307,7 @@ int la_GetPropFromPath(laPropPack *Self, laPropPack *Base, const char *Path, voi
             lst = p->SubProp ? &p->SubProp->Props : 0;
             lstB = p->SubExtra ? &p->SubExtra->Props : 0;
         }else{
-            if (sp->Type == L'@' || sp->Type == L'=' || sp->Type == L'#'){ // || sp->Type== L'~'
+            if (sp->Type == U'@' || sp->Type == U'=' || sp->Type == U'#'){ // || sp->Type== U'~'
                 la_NewPropStep(Self, sp->Content, 0, sp->Type);
             }
         }
@@ -348,18 +348,18 @@ void la_StepPropPack(laPropPack *pp){
         // sub#identifier
         // TODO: Add sub~index grammar
         if (ps->p->PropertyType == LA_PROP_SUB){
-            if (ps->Type == L'@' || ps->Type == L'#'){
+            if (ps->Type == U'@' || ps->Type == U'#'){
             }
-            if (ps->Type == L'$') UseInstance = ps->UseInstance;
-            elif (ps->pNext && ps->pNext->Type != L'.'){
-                if (ps->pNext->Type == L'@'){
+            if (ps->Type == U'$') UseInstance = ps->UseInstance;
+            elif (ps->pNext && ps->pNext->Type != U'.'){
+                if (ps->pNext->Type == U'@'){
                     Value = ps->pNext->pNext;
                     Lookup = la_PropLookup(&ps->p->SubProp->Props, ps->pNext->p);
-                }elif (ps->pNext->Type == L'#'){
+                }elif (ps->pNext->Type == U'#'){
                     Value = ps->pNext;
                     Lookup = la_PropLookupIdentifierItem(&ps->p->SubProp->Props);
                 }
-                if (Value->Type == L'=' || Value->Type == L'#'){ //MUST!
+                if (Value->Type == U'=' || Value->Type == U'#'){ //MUST!
                     UseInstance = la_FindMatchingInstance(ps->UseInstance, ps->p, Lookup, Value);
                 }
                 Value->UseInstance = UseInstance;
@@ -443,12 +443,12 @@ void la_UsePropPack(laPropPack *pp, int ForceRecalc){
     laPropStep *ps = 0;
     //if(pp->LastPs && pp->LastPs->p)printf("%s\n",pp->LastPs->p->Identifier);
     if((!pp->Go) && pp->LastPs){
-        if (pp->LastPs->Type==L'.'){
+        if (pp->LastPs->Type==U'.'){
             laUseDataBlock(pp->RawThis->LastPs->UseInstance, pp->LastPs->p, MAIN.PropMatcherContextP->FrameDistinguish, MAIN.PropMatcherContextP, la_PropPanelUserRemover, ForceRecalc);
         }
     }
     for (ps = pp->Go; ps; ps = ps->pNext){
-        if (ps->Type==L'.'){
+        if (ps->Type==U'.'){
             laUseDataBlock(ps->UseInstance, ps->p, MAIN.PropMatcherContextP->FrameDistinguish, MAIN.PropMatcherContextP, la_PropPanelUserRemover, ForceRecalc);
         }
     }
@@ -456,12 +456,12 @@ void la_UsePropPack(laPropPack *pp, int ForceRecalc){
 void la_StopUsingPropPack(laPropPack *pp){
     laPropStep *ps;
     if((!pp->Go) && pp->LastPs){
-        if (pp->LastPs->Type==L'.'&&pp->LastPs->p->Container &&pp->LastPs->p->Container->Hyper){
+        if (pp->LastPs->Type==U'.'&&pp->LastPs->p->Container &&pp->LastPs->p->Container->Hyper){
             laStopUsingDataBlock(pp->RawThis->LastPs->UseInstance, pp->LastPs->p, MAIN.PropMatcherContextP);
         }
     }
     for (ps = pp->Go; ps; ps = ps->pNext){
-        if (ps->Type==L'.'&&ps->p->Container&&ps->p->Container->Hyper){
+        if (ps->Type==U'.'&&ps->p->Container&&ps->p->Container->Hyper){
             laStopUsingDataBlock(ps->UseInstance, ps->p, MAIN.PropMatcherContextP);
         }
         //la_RemovePropUserNode(ps);
@@ -667,7 +667,7 @@ laPropContainer *laAddPropertyContainer(const char *Identifier, const char *Name
     pc->Name = Name;
     pc->Description = Description;
     pc->UiDefine = DefaultUiDefine;
-    pc->IconID = IconID ? IconID : L'๐Ÿ“ฆ';
+    pc->IconID = IconID ? IconID : U'๐Ÿ“ฆ';
 
     pc->OtherAlloc = (IsHyper&LA_PROP_OTHER_ALLOC)?1:0;
     pc->Hyper = pc->OtherAlloc?0:(IsHyper&LA_PROP_HYPER_BITS);
@@ -680,7 +680,7 @@ laPropContainer *laAddPropertyContainer(const char *Identifier, const char *Name
             0,LA_WIDGET_COLLECTION_SELECTOR,laui_ManagedUDFItem,-1,laget_InstanceUDF,laget_InstanceActiveUDF,laget_ListNext,laset_InstanceUDF,0,0,0,LA_UDF_REFER|LA_UDF_IGNORE);
         laAddIntProperty(pc, "__hyper", "Hyper", "Hyper level of this data block", 0,0,0,0,0,0,0,0,-1,laget_InstanceHyperLevel,0,0,0,0,0,0,0,0,0,LA_READ_ONLY|LA_UDF_IGNORE);
         laProp* p=laAddEnumProperty(pc, "__modified", "Modified", "Data block is modified", LA_WIDGET_ENUM_ICON_PLAIN,0,0,0,0,-1,laget_InstanceModified,0,0,0,0,0,0,0,0,LA_READ_ONLY|LA_UDF_IGNORE);
-        laAddEnumItemAs(p, "MODIFIED", "Modified", "Data block is modified", 1, L'๐ŸŒ‘');
+        laAddEnumItemAs(p, "MODIFIED", "Modified", "Data block is modified", 1, U'๐ŸŒ‘');
         laAddEnumItemAs(p, "CLEAN", "Clean", "Data block is clean", 0, 0);
         laAddStringProperty(pc, "__uid","UID","UID for shared resoure lookup",0,0,0,0,0,-1,0,laget_InstanceUID,laset_InstanceUID,0,LA_UDF_IGNORE);
     }
@@ -1106,7 +1106,7 @@ int laGetPrefixP(laPropPack *p, char buf[8][64]){
     if (!prefix) return 0;
 
     int len=strlen(prefix);
-    while ((prefix[i] != L'\0') && (i+=1+strGetStringTerminateBy(&prefix[i], L',', &buf[row]))){
+    while ((prefix[i] != U'\0') && (i+=1+strGetStringTerminateBy(&prefix[i], U',', &buf[row]))){
         row++; if(i>=len){break;}
     }
 
@@ -1118,7 +1118,7 @@ int laGetPrefix(laProp *p, char buf[8][64]){
 
     if (!prefix) return 0;
 
-    while ((prefix[i] != L'\0') && (i += 1 + strGetStringTerminateBy(&prefix[i], L',', &buf[row]))) row++;
+    while ((prefix[i] != U'\0') && (i += 1 + strGetStringTerminateBy(&prefix[i], U',', &buf[row]))) row++;
 
     return 1;
 }
@@ -2056,7 +2056,7 @@ void laSetRootInstance(void *root){
 }
 
 laPropContainer *laDefineRoot(){
-    if (!MAIN.DataRoot.Root) MAIN.DataRoot.Root = laAddPropertyContainer("root", "__ROOT__", "Root Node In NUL4.0 Data System", L'๐Ÿžˆ', 0, 0, 0, 0, 2|LA_PROP_OTHER_ALLOC);
+    if (!MAIN.DataRoot.Root) MAIN.DataRoot.Root = laAddPropertyContainer("root", "__ROOT__", "Root Node In NUL4.0 Data System", U'๐Ÿžˆ', 0, 0, 0, 0, 2|LA_PROP_OTHER_ALLOC);
     return MAIN.DataRoot.Root;
 }
 
@@ -2423,7 +2423,7 @@ void la_WriteSingleProperty(laUDF *udf, void *FromInstance, laProp *p){
 void la_GetPropPackFullPath(laPropPack *pp, char *result){
     char buf[1024], upbuf[1024]={0}; if(!pp){result[0]=0; return;}
     laPropStep *ps;
-    buf[0] = L'\0';
+    buf[0] = U'\0';
     upbuf[0] = 0;
 
     if (pp->Go){
@@ -2449,13 +2449,13 @@ void la_GetPropPackFullPath(laPropPack *pp, char *result){
 void la_GetPropPackPath(laPropPack *pp, char *result){
     char buf[1024], upbuf[1024]={0};
     laPropStep *ps;
-    buf[0] = L'\0';
+    buf[0] = U'\0';
     upbuf[0] = 0;
     char Sep[2] = {0};
 
     for (ps = pp->Go; ps; ps = ps->pNext){
         if (!ps->p->Identifier) break;
-        if (ps->Type == L'.' || !ps->Type) strcat(buf, ps->p->Identifier);
+        if (ps->Type == U'.' || !ps->Type) strcat(buf, ps->p->Identifier);
         else
             strcat(buf, ps->p);
         if (ps->pNext) strcat(buf, (Sep[0] = ((laPropStep *)ps->pNext)->Type) ? Sep : ".");
@@ -2861,7 +2861,7 @@ laUDFContentNode *la_AppendUDFContentNode(laUDFContentInstance *Parent, laPropPa
     ucn->PP.Go = &ucn->FakePS;
     ucn->PP.LastPs = &ucn->FakePS;
     ucn->FakePS.p = p;
-    ucn->FakePS.Type = L'.';
+    ucn->FakePS.Type = U'.';
     ucn->PP.RawThis = &Parent->Parent->PP;
     ucn->Parent = Parent;
     ucn->FileSeek = FileSeek;
@@ -3446,7 +3446,7 @@ int laExtractUDF(laUDF *udf, laManagedUDF* mUDF, int Mode, laListHandle *Parent)
             int LastOffset;
             la_ReadString(udf, buf);
             LastOffset = strlen(buf) - 1;
-            buf[LastOffset] = buf[LastOffset] == L'.' ? 0 : buf[LastOffset];
+            buf[LastOffset] = buf[LastOffset] == U'.' ? 0 : buf[LastOffset];
             logPrint("    Prop Segment \"%s\" ...\n", buf);
             la_GetPropFromPath(&SubPP, 0, buf, 0);
             la_StepPropPack(&SubPP);

+ 12 - 12
la_kernel.c

@@ -2079,7 +2079,7 @@ void la_AssignWindowPP(laWindow* w){
     w->PP.LastPs = &w->FakePS;
     w->PP.LastPs->p = _LA_PROP_WINDOW;
     w->PP.LastPs->UseInstance = w;
-    w->PP.LastPs->Type = L'.';
+    w->PP.LastPs->Type = U'.';
 }
 laWindow *laDesignWindow(int X, int Y, int W, int H){
     laWindow *n = memAcquire(sizeof(laWindow));
@@ -2110,7 +2110,7 @@ void la_AssignBlockPP(laBlock* b){
     b->PP.LastPs = &b->FakePS;
     b->PP.LastPs->p = _LA_PROP_BLOCK;
     b->PP.LastPs->UseInstance = b;
-    b->PP.LastPs->Type = L'.';
+    b->PP.LastPs->Type = U'.';
 }
 void laDestroyLayout(laWindow *w, laLayout* l){
     if((!l->Item.pPrev) && (!l->Item.pNext)) return;
@@ -2326,7 +2326,7 @@ void la_EnsurePanelExtras(laPanel *p){
 
     p->PropLinkPP.EndInstance = p;
     p->PropLinkPP.LastPs = &p->PropLinkFakePS;
-    p->PropLinkPP.LastPs->Type = L'.';
+    p->PropLinkPP.LastPs->Type = U'.';
     p->PropLinkFakePS.p = p->PropLinkFakeProp;
 }
 laPanel* la_GivePanelNode(){
@@ -2381,7 +2381,7 @@ laPanel *la_NewPanel(laUiTemplate* uit, int X, int Y, int W, int H, int MaxW, in
     p->PP.LastPs = &p->FakePS;
     p->PP.LastPs->p = _LA_PROP_PANEL;
     p->PP.LastPs->UseInstance = p;
-    p->PP.LastPs->Type = L'.';
+    p->PP.LastPs->Type = U'.';
 
     la_EnsurePanelExtras(p);
 
@@ -2406,7 +2406,7 @@ laPanel *laCreatePanelT(laBlock *b, laUiTemplate* uit){
     p->PP.LastPs = &p->FakePS;
     p->PP.LastPs->p = _LA_PROP_PANEL;
     p->PP.LastPs->UseInstance = p;
-    p->PP.LastPs->Type = L'.';
+    p->PP.LastPs->Type = U'.';
 
     la_EnsurePanelExtras(p);
     
@@ -3343,7 +3343,7 @@ int laCheckAndMergeSubColumnsUiList(laUiList *TopUil, laColumn *c, int DoMerge){
 }
 
 laPropContainer* laUiHasExtraProps(laUiType *ut, int size, int Hyper){
-    ut->ExtraProps = laAddPropertyContainer(ut->Identifier, 0,0,L'โ—ณ',0,size,0,0,Hyper);
+    ut->ExtraProps = laAddPropertyContainer(ut->Identifier, 0,0,U'โ—ณ',0,size,0,0,Hyper);
     ut->FakeProp = memAcquire(sizeof(laSubProp));
     ut->FakeProp->Base.SubProp = ut->ExtraProps;
     ut->FakeProp->Base.Identifier = ut->Identifier;
@@ -3354,7 +3354,7 @@ laPropContainer* laUiHasExtraProps(laUiType *ut, int size, int Hyper){
     return ut->ExtraProps;
 }
 laPropContainer* laCanvasHasExtraProps(laCanvasTemplate *ct, int size, int Hyper){
-    ct->ExtraProps = laAddPropertyContainer(ct->Identifier->Ptr, 0,0,L'โ—ณ',0,size,0,0,Hyper);
+    ct->ExtraProps = laAddPropertyContainer(ct->Identifier->Ptr, 0,0,U'โ—ณ',0,size,0,0,Hyper);
     ct->FakeProp = memAcquire(sizeof(laSubProp));
     ct->FakeProp->Base.SubProp = ct->ExtraProps;
     ct->FakeProp->Base.Identifier = ct->Identifier->Ptr;
@@ -3418,7 +3418,7 @@ laCanvasTemplate *la_GetCanvasTemplate(char* TargetContainerID, char* TemplateID
 void la_AssignPropExtras(laUiItem* ui){
     if(!ui->Type || !ui->Type->FakeProp) return;
     ui->FakePs.p = ui->Type->FakeProp;
-    ui->FakePs.Type = L'.';
+    ui->FakePs.Type = U'.';
     ui->FakePs.UseInstance = ui;
     ui->ExtraPP.LastPs = &ui->FakePs;
 }
@@ -3426,7 +3426,7 @@ void la_AssignCanvasPropExtras(laUiItem* ui){
     if(!ui->CanvasTemplate || !ui->CanvasTemplate->FakeProp) return;
     laCanvasTemplate*ct=ui->CanvasTemplate;
     ui->FakePs.p = ct->FakeProp;
-    ui->FakePs.Type = L'.';
+    ui->FakePs.Type = U'.';
     ui->FakePs.UseInstance = ui;
     ui->ExtraPP.EndInstance = ui->Extra;
     ui->ExtraPP.LastPs = &ui->FakePs;
@@ -5968,7 +5968,7 @@ laOperator *la_CreateOperator(laOperatorType *at){
         a->PP.LastPs->p->SubProp = at->PC;
         a->PP.LastPs->p->PropertyType = LA_PROP_SUB;
         a->PP.LastPs->p->Identifier = at->PC->Identifier;
-        a->PP.LastPs->Type = L'.';
+        a->PP.LastPs->Type = U'.';
     }
 
     return a;
@@ -6159,7 +6159,7 @@ int laInvokeP(laOperator *From, laOperatorType *at, laEvent *e, laPropPack *This
         lstAppendItem(&MAIN.CurrentWindow->PendingOperators, a);
         a->State = rev;
         a->PP.EndInstance = a->CustomData;
-        if (a->PP.LastPs) a->PP.LastPs->Type = L'.';
+        if (a->PP.LastPs) a->PP.LastPs->Type = U'.';
     }else
         la_DestroyOperator(&a, 0, 0);
 
@@ -6719,7 +6719,7 @@ int la_HandleEvents(laWindow *w){
     return 1;
 }
 int la_AllowInput(uint32_t ch){
-    if(ch>=32 || ch==L'\n' || ch==L'\t' || ch==L'\b') return 1;
+    if(ch>=32 || ch==U'\n' || ch==U'\t' || ch==U'\b') return 1;
     return 0;
 }
 int laCopyToClipboard(unsigned char * text){

+ 5 - 5
la_tns_kernel.c

@@ -2652,7 +2652,7 @@ int tnsLoadSystemFontMono(char* from, char* mono){
 
     int full_adv=0,half_adv=0;
     for(int i=0;i<f->NumFaces;i++){
-        if(!FT_Get_Advance(f->ftface[i],L'ๆˆ‘',FT_LOAD_TARGET_NORMAL | FT_LOAD_NO_HINTING | FT_LOAD_NO_BITMAP, &full_adv)) break;
+        if(!FT_Get_Advance(f->ftface[i],U'ๆˆ‘',FT_LOAD_TARGET_NORMAL | FT_LOAD_NO_HINTING | FT_LOAD_NO_BITMAP, &full_adv)) break;
     }
     for(int i=-2;i<11;i++){
         char* option;
@@ -2936,7 +2936,7 @@ int tnsStringGetDimension(char* content, uint32_t* contentU, int Count, int WLim
     for (i = 0; i < len && UC; i+=advance){
         UC = contentU?contentU[i]:laToUnicode(&content[i], &advance);
         tnsFontSingleCharacter *fsc;
-        if (UC == L'\n'){
+        if (UC == U'\n'){
             if(sx>MaxSX) MaxSX=sx;
             sx = 0; sy += LA_RH; rows++;
             continue;
@@ -3033,7 +3033,7 @@ void tnsDrawStringLCD(char *content, uint32_t* contentU, real Color[4], int L, i
     for (i = 0; i < len && UC; i+=advance){
         UC = contentU?contentU[i]:laToUnicode(&content[i], &advance);
 
-        if (UC == L'\n'){ if(!OneLine){sx = L; sy += LA_RH; continue;}else{ UC=' '; } }
+        if (UC == U'\n'){ if(!OneLine){sx = L; sy += LA_RH; continue;}else{ UC=' '; } }
 
         if (sx + dx > R+1){
             if(Flags&LA_TEXT_LINE_WRAP){ sx=L; sy+=LA_RH; }else{ break; }
@@ -3075,7 +3075,7 @@ void tnsDrawStringM(char *content, uint32_t* contentU, real Color[4], int L, int
         tnsFontSingleCharacter *fsc;
         real cx, cy;
 
-        if (UC == L'\n'){ if(!OneLine){sx = L; sy += LA_RH; continue;}else{ UC=' '; } }
+        if (UC == U'\n'){ if(!OneLine){sx = L; sy += LA_RH; continue;}else{ UC=' '; } }
 
         fsc = tfntFetchCharacterW(UC, Flags&LA_TEXT_MONO);
 
@@ -3084,7 +3084,7 @@ void tnsDrawStringM(char *content, uint32_t* contentU, real Color[4], int L, int
             if(Flags&LA_TEXT_LINE_WRAP){
                 sx=L; sy+=LA_RH;
             }else{
-                if(Flags&LA_TEXT_OVERFLOW_ARROW){ fsc = tfntFetchCharacterW(L'โ–ท', 0); sx=R-fsc->advx; BreakNow=1; }
+                if(Flags&LA_TEXT_OVERFLOW_ARROW){ fsc = tfntFetchCharacterW(U'โ–ท', 0); sx=R-fsc->advx; BreakNow=1; }
                 else break;
             }
         }

+ 25 - 25
la_util.c

@@ -1242,14 +1242,14 @@ char *strGetNextString(char **pivot, char *NextMark){
     int FloatArg = 0;
     int i,advance;
 
-    if (**pivot == L'\0') return 0;
+    if (**pivot == U'\0') return 0;
 
-    if (*NextMark == L'~') FloatArg = 1;
+    if (*NextMark == U'~') FloatArg = 1;
 
     //   container@identifier=window  container#window  contianer%
     int UC=1;
     while (!lenth){
-        for (countP; *countP != L'.' && *(*pivot) != L'\0' && UC && *countP && *countP != L'@' && *countP != L'=' && *countP != L'#' && *countP != L'$';){
+        for (countP; *countP != U'.' && *(*pivot) != U'\0' && UC && *countP && *countP != U'@' && *countP != U'=' && *countP != U'#' && *countP != U'$';){
             if((*countP)=='\\'){
                 countP++; lenth++; }
             UC = laToUnicode(countP, &advance);
@@ -1261,7 +1261,7 @@ char *strGetNextString(char **pivot, char *NextMark){
     }
 
     *NextMark = (*pivot)[lenth];
-    if (!(*NextMark)) *NextMark = L'.';
+    if (!(*NextMark)) *NextMark = U'.';
 
     if (lenth){
         result = CreateNewBuffer(char, lenth + 1);
@@ -1271,9 +1271,9 @@ char *strGetNextString(char **pivot, char *NextMark){
             result[pi] = (*pivot)[i]; pi++;
         }
 
-        result[pi] = L'\0';
+        result[pi] = U'\0';
 
-        if ((*pivot)[lenth] == L'\0') *pivot = &((*pivot)[lenth]);
+        if ((*pivot)[lenth] == U'\0') *pivot = &((*pivot)[lenth]);
         else
             (*pivot) += lenth + 1;
 
@@ -1287,10 +1287,10 @@ int strGetStringTerminateBy(char *content, char terminator, char *Out){
     int Skip = 0;
     int i = 0, advance;
 
-    if ((!content) || (*content == L'\0')) return 0;
+    if ((!content) || (*content == U'\0')) return 0;
 
     int UC;
-    for (Ofst; content[Ofst] != terminator && content[Ofst] != L'\0'; ){
+    for (Ofst; content[Ofst] != terminator && content[Ofst] != U'\0'; ){
         UC = laToUnicode(&content[Ofst], &advance);
         for(int a=0;a<advance;a++){
             Out[i] = content[Ofst];
@@ -1307,12 +1307,12 @@ char *strGetNewStringTerminateBy_PivotOver(char *content, char terminator, char
     int i = 0;
     char *NewString;
 
-    if (!content || *content == L'\0') return 0;
+    if (!content || *content == U'\0') return 0;
 
-    if (IgnoreSpace) for (i; content[i] == L' '; i++) ;
+    if (IgnoreSpace) for (i; content[i] == U' '; i++) ;
 
     int UC,advance;
-    for (Ofst; content[Ofst] != terminator && content[Ofst] != L'\0';){
+    for (Ofst; content[Ofst] != terminator && content[Ofst] != U'\0';){
         UC = laToUnicode(&content[Ofst], &advance);
         Ofst+=advance;
     }
@@ -1321,7 +1321,7 @@ char *strGetNewStringTerminateBy_PivotOver(char *content, char terminator, char
 
     memcpy(NewString, &content[i], sizeof(char) * (Ofst - i));
 
-    NewString[Ofst - i] = L'\0';
+    NewString[Ofst - i] = U'\0';
 
     *NewPivot = content[Ofst]?&content[Ofst + 1]:&content[Ofst];
 
@@ -1416,7 +1416,7 @@ void strMakeDifferentName(char *Target){
     int Temp;
     if (!sscanf(p, "%d", &Temp)){
         int l = strlen(p);
-        if (p[l - 1] != L'.') strcat(p, ".");
+        if (p[l - 1] != U'.') strcat(p, ".");
         strPrintIntAfter(Target, 0, 001);
     }else{
         sprintf(p, "%d", Temp + 1);
@@ -1459,20 +1459,20 @@ laStringSplitor *strSplitPath(char *path,char terminator){
     ss = memAcquireSimple(sizeof(laStringSplitor));
 
     while (temp_result = strGetNextString(&pivot, &NextType)){
-        if (*temp_result != L'\0'){
+        if (*temp_result != U'\0'){
             sp = memAcquireSimple(sizeof(laStringPart));
             sp->Content = temp_result;
             lstAppendItem(&ss->parts, sp);
             ss->NumberParts += 1;
-            if (NextType == L'$') sp->Type = L'$';
+            if (NextType == U'$') sp->Type = U'$';
             else
                 sp->Type = Type;
-            if (sp->Type == L'='){
-                if (sp->Content[0] >= L'0' && sp->Content[0] <= 9){
+            if (sp->Type == U'='){
+                if (sp->Content[0] >= U'0' && sp->Content[0] <= 9){
                     sscanf(sp->Content, "%d", &sp->IntValue);
                 }
             }
-            if (NextType == L'$') NextType = L'.';
+            if (NextType == U'$') NextType = U'.';
             Type = NextType;
         }
     }
@@ -1545,7 +1545,7 @@ int strMakeInstructions(laStringSplitor **result, char *content){
     if (!ss) ss = *result = memAcquireSimple(sizeof(laStringSplitor));
 
     while (temp_result = strGetNewStringTerminateBy_PivotOver(pivot, '=', &pivot, 0)){
-        if (*temp_result != L'\0'){
+        if (*temp_result != U'\0'){
             sp = memAcquireSimple(sizeof(laStringPart));
             sp->Content = temp_result;
             lstAppendItem(&ss->parts, sp);
@@ -1553,12 +1553,12 @@ int strMakeInstructions(laStringSplitor **result, char *content){
         }
         temp_result = strGetNewStringTerminateBy_PivotOver(pivot, ';', &pivot, 0);
         if (!temp_result) break;
-        if (*temp_result != L'\0'){
+        if (*temp_result != U'\0'){
             sp = memAcquireSimple(sizeof(laStringPart));
             sp->Content = temp_result;
             lstAppendItem(&ss->parts, sp);
             ss->NumberParts += 1;
-            if (temp_result[0] >= L'0' && temp_result[0] <= L'9' || temp_result[0]>=128){
+            if (temp_result[0] >= U'0' && temp_result[0] <= U'9' || temp_result[0]>=128){
                 sscanf(temp_result, "%d", &sp->IntValue);
                 sscanf(temp_result, "%lf", &sp->FloatValue);
             }
@@ -1924,7 +1924,7 @@ void strClearSelection(laStringEdit *se){
         while (sl){
             NextSl = sl->Item.pNext;
             if (i == se->BeginLine){
-                sl->Buf[se->BeginBefore] = L'\0';
+                sl->Buf[se->BeginBefore] = U'\0';
             }else if (i > se->BeginLine && i < se->EndLine){
                 strRemoveLine(se, sl); RemovedLines++;
             }else if (i == se->EndLine){
@@ -1994,10 +1994,10 @@ void strInsertChar(laStringEdit *se, uint32_t a){
     laStringLine *sl;
     strClearSelection(se);
     sl = strGetCursorLine(se, 0);
-    if(a==L'\n'){
+    if(a==U'\n'){
         laStringLine* nl=memAcquireSimple(sizeof(laStringLine));
-        if(sl->Buf[se->CursorBefore]!=L'\0') strcpyU(nl->Buf, &sl->Buf[se->CursorBefore]);
-        sl->Buf[se->CursorBefore]=L'\0';
+        if(sl->Buf[se->CursorBefore]!=U'\0') strcpyU(nl->Buf, &sl->Buf[se->CursorBefore]);
+        sl->Buf[se->CursorBefore]=U'\0';
         se->CursorLine++; se->CursorBefore=0;
         lstInsertItemAfter(&se->Lines, nl, sl); se->TotalLines++;
     }else{

+ 7 - 7
resources/la_nodes_basic.c

@@ -999,12 +999,12 @@ void la_RegisterInputMapperOperators(){
     laCreateOperatorType("LA_add_rack", "Add Rack", "Add a rack for nodes", 0,0,0,OPINV_AddNodesRack,0,'+',0);
     at=laCreateOperatorType("OPINV_AddNode", "Add Node", "Add a node to the rack",0,0,0,OPINV_AddNode,OPMOD_AddNode,'+',0);
     at->UiDefine=laui_AddNode;
-    laCreateOperatorType("LA_input_mapping_rebuild", "Rebuild Input Mapping", "Rebuild input mapping for evaluation",0,0,0,OPINV_RebuildInputMapping,0,L'โญฎ',0);
+    laCreateOperatorType("LA_input_mapping_rebuild", "Rebuild Input Mapping", "Rebuild input mapping for evaluation",0,0,0,OPINV_RebuildInputMapping,0,U'โญฎ',0);
     laCreateOperatorType("LA_move_node_to_rack", "Move Node", "Move node to another rack",0,0,0,OPINV_MoveNodeToRack,0,0,0);
     laCreateOperatorType("LA_delete_node", "Delete Node", "Delete this node",0,0,0,OPINV_DeleteNode,0,0,0);
     laCreateOperatorType("LA_move_rack", "Move Rack", "Move this rack",0,0,0,OPINV_MoveRack,0,0,0);
     laCreateOperatorType("LA_insert_rack", "Insert Rack", "Insert a new rack",0,0,0,OPINV_InsertRack,0,0,0);
-    at=laCreateOperatorType("LA_delete_rack", "Delete Rack", "Delete a rack",0,0,0,OPINV_DeleteRack,OPMOD_FinishOnData,L'โŒ',0);
+    at=laCreateOperatorType("LA_delete_rack", "Delete Rack", "Delete a rack",0,0,0,OPINV_DeleteRack,OPMOD_FinishOnData,U'โŒ',0);
     at->UiDefine=laui_DeleteRack;
 
     pc=laAddPropertyContainer("la_node_rack", "Input Rack", "Input rack for putting input mapping nodes",0,0,sizeof(laNodeRack),0,0,1);
@@ -1254,11 +1254,11 @@ void la_RegisterInputMapperOperators(){
     laAddSubGroup(pc,"in_l", "L","Brightness","la_in_socket",0,0,0,offsetof(laOKHSL2RGBNode, InL),0,0,0,0,0,0,0,LA_UDF_SINGLE);
    
 typedef laMathNode laSmallMathNode;
-    LA_IDN_REGISTER("Controller",L'๐Ÿ•น',LA_IDN_CONTROLLER,LA_PC_IDN_CONTROLLER, IDN_ControllerInit, IDN_ControllerDestroy, IDN_ControllerVisit, IDN_ControllerEval, laInputControllerNode);
-    LA_IDN_REGISTER("Visualizer",L'๐Ÿ”',LA_IDN_VISUALIZER,LA_PC_IDN_VISUALIZER, IDN_InputVisualizeInit, IDN_InputVisualizeDestroy, IDN_InputVisualizeVisit, IDN_InputVisualizerEval, laInputVisualizerNode);
-    LA_IDN_REGISTER("Split",L'โšŸ',LA_IDN_SPLIT,LA_PC_IDN_SPLIT, IDN_SplitInit, IDN_SplitDestroy, IDN_SplitVisit, IDN_SplitEval, laSplitNode);
-    LA_IDN_REGISTER("Switch",L'๐Ÿšฆ',LA_IDN_SWITCH,LA_PC_IDN_SWITCH, IDN_SwitchInit, IDN_SwitchDestroy, IDN_SwitchVisit, IDN_SwitchEval, laSwitchNode);
-    LA_IDN_REGISTER("Combine",L'โšž',LA_IDN_COMBINE,LA_PC_IDN_COMBINE, IDN_CombineInit, IDN_CombineDestroy, IDN_CombineVisit, IDN_CombineEval, laCombineNode);
+    LA_IDN_REGISTER("Controller",U'๐Ÿ•น',LA_IDN_CONTROLLER,LA_PC_IDN_CONTROLLER, IDN_ControllerInit, IDN_ControllerDestroy, IDN_ControllerVisit, IDN_ControllerEval, laInputControllerNode);
+    LA_IDN_REGISTER("Visualizer",U'๐Ÿ”',LA_IDN_VISUALIZER,LA_PC_IDN_VISUALIZER, IDN_InputVisualizeInit, IDN_InputVisualizeDestroy, IDN_InputVisualizeVisit, IDN_InputVisualizerEval, laInputVisualizerNode);
+    LA_IDN_REGISTER("Split",U'โšŸ',LA_IDN_SPLIT,LA_PC_IDN_SPLIT, IDN_SplitInit, IDN_SplitDestroy, IDN_SplitVisit, IDN_SplitEval, laSplitNode);
+    LA_IDN_REGISTER("Switch",U'๐Ÿšฆ',LA_IDN_SWITCH,LA_PC_IDN_SWITCH, IDN_SwitchInit, IDN_SwitchDestroy, IDN_SwitchVisit, IDN_SwitchEval, laSwitchNode);
+    LA_IDN_REGISTER("Combine",U'โšž',LA_IDN_COMBINE,LA_PC_IDN_COMBINE, IDN_CombineInit, IDN_CombineDestroy, IDN_CombineVisit, IDN_CombineEval, laCombineNode);
     LA_IDN_REGISTER("Values",0,LA_IDN_VALUES,LA_PC_IDN_VALUES, IDN_ValuesInit, IDN_ValuesDestroy, IDN_ValuesVisit, IDN_ValuesEval, laValuesNode);
     LA_IDN_REGISTER("Matrix",0,LA_IDN_MATRIX,LA_PC_IDN_MATRIX, IDN_MatrixInit, IDN_MatrixDestroy, IDN_MatrixVisit, IDN_MatrixEval, laMatrixNode);
     LA_IDN_REGISTER("Math",0,LA_IDN_MATH,LA_PC_IDN_MATH, IDN_MathInit, IDN_MathDestroy, IDN_MathVisit, IDN_MathEval, laMathNode);

+ 76 - 76
resources/la_operators.c

@@ -195,7 +195,7 @@ void la_FileBrowserRebuildList(laFileBrowser *fb){
     real Ratio = 0;
 
 #ifdef __linux__
-    if (fb->Path[len - 1] != L'/') strcat(fb->Path, "/");
+    if (fb->Path[len - 1] != U'/') strcat(fb->Path, "/");
     struct dirent **NameList=0;
     int NumFiles=scandir(fb->Path,&NameList,0,alphasort);
 
@@ -241,7 +241,7 @@ void la_FileBrowserRebuildList(laFileBrowser *fb){
     HANDLE hFind;
     SYSTEMTIME stUTC, stLocal;
     strCopyFull(Lookup, fb->Path);
-    if (Lookup[len - 1] != L'\\') strcat(Lookup, "\\*.*"); else strcat(Lookup, "*.*");
+    if (Lookup[len - 1] != U'\\') strcat(Lookup, "\\*.*"); else strcat(Lookup, "*.*");
     hFind = FindFirstFile(Lookup, &FindFileData);
 
     while (fi = lstPopItem(&fb->FileList)) memFree(fi);
@@ -359,7 +359,7 @@ void laset_FileBrowserSelectFile(laFileBrowser *fb, laFileItem *fi, int State){
 }
 void la_FileBrowserGetFullPath(laFileBrowser *fb,char* buf){
     buf[0]=0; int plen;
-    if (!fb->SelectFolder && fb->FileName[0] == L'\0') return;
+    if (!fb->SelectFolder && fb->FileName[0] == U'\0') return;
     plen = strlen(fb->Path);
     if (fb->Path[plen - 1] != LA_PATH_SEP) strcat(fb->Path, LA_PATH_SEPSTR);
     strCopyFull(buf, fb->Path);
@@ -379,9 +379,9 @@ void *laget_FileBrowserActiveFile(laFileBrowser *fb){
 }
 void laget_FileBrowserDiskID(laDiskItem *di, char *result){
     result[0] = di->ID;
-    result[1] = L':';
+    result[1] = U':';
     result[2] = LA_PATH_SEP;
-    result[3] = L'\0';
+    result[3] = U'\0';
 }
 void *laset_FileBrowserActiveDisk(laFileBrowser *fb, laDiskItem *di, int UNUSED_State){
     fb->RootDisk = di;
@@ -2071,54 +2071,54 @@ void la_RegisterBuiltinOperators(){
     laEnumProp *ep;
 
     laCreateOperatorType("LA_terminate_program", "Quit", "Terminate Program Immediately",
-                          OPCHK_TerminateProgram, 0, 0, OPINV_TerminateProgram, 0, L'โป', LA_ACTUATOR_SYSTEM);
+                          OPCHK_TerminateProgram, 0, 0, OPINV_TerminateProgram, 0, U'โป', LA_ACTUATOR_SYSTEM);
 
-    laCreateOperatorType("LA_undo", "Undo", "Undo from recorded data state", OPCHK_Undo, 0, 0, OPINV_Undo, 0, L'โฎŒ', LA_ACTUATOR_SYSTEM);
-    laCreateOperatorType("LA_redo", "Redo", "Redo using recorded data state", OPCHK_Redo, 0, 0, OPINV_Redo, 0, L'โฎŽ', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_undo", "Undo", "Undo from recorded data state", OPCHK_Undo, 0, 0, OPINV_Undo, 0, U'โฎŒ', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_redo", "Redo", "Redo using recorded data state", OPCHK_Redo, 0, 0, OPINV_Redo, 0, U'โฎŽ', LA_ACTUATOR_SYSTEM);
 
-    laCreateOperatorType("LA_translation_dump", "Dump Untranslated Text", "Dump Untranslated Text To File", 0, 0, 0, OPINV_TranslationDumpMisMatch, 0, L'๐Ÿ“ฅ', LA_ACTUATOR_SYSTEM);
-    laCreateOperatorType("LA_open_internet_link", "Goto", "Open Internet Link", 0, 0, 0, OPINV_OpenInternetLink, 0, L'๐ŸŒ', LA_ACTUATOR_SYSTEM);
-    laCreateOperatorType("LA_system_paste", "SYSWINDOW Paste", "Generate a syetem paste event",  0, 0, 0, OPINV_SystemPaste, 0, L'๐Ÿ“‹', LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
-    laCreateOperatorType("LA_string_copy", "Copy", "Copy string to clip board", 0, 0, 0, OPINV_StringCopy, 0, L'๐Ÿ—', LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+    laCreateOperatorType("LA_translation_dump", "Dump Untranslated Text", "Dump Untranslated Text To File", 0, 0, 0, OPINV_TranslationDumpMisMatch, 0, U'๐Ÿ“ฅ', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_open_internet_link", "Goto", "Open Internet Link", 0, 0, 0, OPINV_OpenInternetLink, 0, U'๐ŸŒ', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_system_paste", "SYSWINDOW Paste", "Generate a syetem paste event",  0, 0, 0, OPINV_SystemPaste, 0, U'๐Ÿ“‹', LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+    laCreateOperatorType("LA_string_copy", "Copy", "Copy string to clip board", 0, 0, 0, OPINV_StringCopy, 0, U'๐Ÿ—', LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
 
-    laCreateOperatorType("LA_window_operator", "SYSWINDOW Operator", "Handle All Unhandled Events",  0, 0, 0, OPINV_Window, OPMOD_Window, L'๐Ÿ–ฆ', LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+    laCreateOperatorType("LA_window_operator", "SYSWINDOW Operator", "Handle All Unhandled Events",  0, 0, 0, OPINV_Window, OPMOD_Window, U'๐Ÿ–ฆ', LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
 
-    at = laCreateOperatorType("LA_switch_layout", "Switch Layout", "Cycle All Layouts In Current SYSWINDOW", 0, 0, 0, OPINV_SwitchLayout, OPMOD_FinishOnData, L'โ†”', LA_ACTUATOR_SYSTEM);
+    at = laCreateOperatorType("LA_switch_layout", "Switch Layout", "Cycle All Layouts In Current SYSWINDOW", 0, 0, 0, OPINV_SwitchLayout, OPMOD_FinishOnData, U'โ†”', LA_ACTUATOR_SYSTEM);
     at->UiDefine=laui_LayoutCycle;
 
-    at = laCreateOperatorType("LA_new_window", "New SYSWINDOW", "Create a new window", 0, 0, 0, OPINV_NewWindow, 0, L'๐Ÿ——', LA_ACTUATOR_SYSTEM);
+    at = laCreateOperatorType("LA_new_window", "New SYSWINDOW", "Create a new window", 0, 0, 0, OPINV_NewWindow, 0, U'๐Ÿ——', LA_ACTUATOR_SYSTEM);
 
     laCreateOperatorType("LA_combine_child_blocks", "Combine Child Block", "If Child Blocks Are Two Panel Blocks, Then Combine Them.",
-                          OPCHK_CombineChildBlocks, 0, 0, OPINV_CombineChildBlocks, 0, L'โ–ก' , LA_ACTUATOR_SYSTEM);
+                          OPCHK_CombineChildBlocks, 0, 0, OPINV_CombineChildBlocks, 0, U'โ–ก' , LA_ACTUATOR_SYSTEM);
     at = laCreateOperatorType("LA_new_panel", "New Panel", "Create a new panel",
-                          0, 0, 0, OPINV_NewPanel, OPMOD_NewPanel, L'๐Ÿž†', LA_ACTUATOR_SYSTEM);
+                          0, 0, 0, OPINV_NewPanel, OPMOD_NewPanel, U'๐Ÿž†', LA_ACTUATOR_SYSTEM);
     pc = laDefineOperatorProps(at, 0);
     p = laAddSubGroup(pc, "template", "Template", "Template selection used to create the new panel", "panel_template", 0, 0, laui_TitleOnly, -1, laget_FirstPanelTemplate, laget_NewPanelGetActiveTemplate, laget_ListNext, 0, 0, laset_NewPanelSetTemplate,0,0);
     laSubGroupExtraFunctions(p,0,0,0,laget_PanelTemplateCategory);
     at->UiDefine=laui_PanelTemplateSelect;
 
-    laCreateOperatorType("LA_block_fold_title", "Fold Title", "Fold the tile bar of the block", 0, 0, 0, OPINV_BlockFoldTitle, 0, L'โฏ…', LA_ACTUATOR_SYSTEM);
-    laCreateOperatorType("LA_block_maximize", "Maximize", "Maximize this block", 0, 0, 0, OPINV_BlockMaximize, 0, L'โฎผ', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_block_fold_title", "Fold Title", "Fold the tile bar of the block", 0, 0, 0, OPINV_BlockFoldTitle, 0, U'โฏ…', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_block_maximize", "Maximize", "Maximize this block", 0, 0, 0, OPINV_BlockMaximize, 0, U'โฎผ', LA_ACTUATOR_SYSTEM);
     laCreateOperatorType("LA_block_tear_off_panel", "Tear Off", "Tear off current panel in the block",
-                          OPCHK_BlockHasMorePanels, 0, 0, OPINV_BlockTearOffPanel, 0, L'๐Ÿ——', LA_ACTUATOR_SYSTEM);
+                          OPCHK_BlockHasMorePanels, 0, 0, OPINV_BlockTearOffPanel, 0, U'๐Ÿ——', LA_ACTUATOR_SYSTEM);
     laCreateOperatorType("LA_block_close_panel", "Close Panel", "Close current panel in the block",
-                          OPCHK_BlockHasMorePanels, 0, 0, OPINV_BlockClosePanel, OPMOD_BlockClosePanel, L'โŒ', LA_ACTUATOR_SYSTEM);
+                          OPCHK_BlockHasMorePanels, 0, 0, OPINV_BlockClosePanel, OPMOD_BlockClosePanel, U'โŒ', LA_ACTUATOR_SYSTEM);
 
-    laCreateOperatorType("LA_canvas_ui_maximize", "Maximize", "Maximize this UI item", 0, 0, 0, OPINV_CanvasUiMaximize, 0, L'โฎผ', LA_ACTUATOR_SYSTEM);
-    laCreateOperatorType("LA_hide_menu_bar", "Hide Menu Bar", "Hide menu bar of the window", 0, 0, 0, OPINV_HideMenuBar, 0, L'โฏ…', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_canvas_ui_maximize", "Maximize", "Maximize this UI item", 0, 0, 0, OPINV_CanvasUiMaximize, 0, U'โฎผ', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_hide_menu_bar", "Hide Menu Bar", "Hide menu bar of the window", 0, 0, 0, OPINV_HideMenuBar, 0, U'โฏ…', LA_ACTUATOR_SYSTEM);
 
     laCreateOperatorType("LA_fullscreen", "Fullscreen", "Switch full screen for the window",
-                          0, 0, 0, OPINV_Fullscreen, 0, L'๐Ÿกต', LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          0, 0, 0, OPINV_Fullscreen, 0, U'๐Ÿกต', LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     laCreateOperatorType("LA_new_layout", "New Layout", "Create a new layout in the window",
-                          0, 0, 0, OPINV_NewLayout, 0, L'๐Ÿžฆ', LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          0, 0, 0, OPINV_NewLayout, 0, U'๐Ÿžฆ', LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     laCreateOperatorType("LA_remove_layout", "Remove Layout", "Remove current layout in the window",
-                          OPCHK_RemoveLayout, 0, 0, OPINV_RemoveLayout, 0, L'โŒ', LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          OPCHK_RemoveLayout, 0, 0, OPINV_RemoveLayout, 0, U'โŒ', LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     laCreateOperatorType("LA_panel_operator", "Panel Operator", "Handle Events On The Panel Level",
-                          0, 0, OPEXT_Panel, OPINV_Panel, OPMOD_Panel, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          0, 0, OPEXT_Panel, OPINV_Panel, OPMOD_Panel, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     laCreateOperatorType("LA_modal_panel_operator", "Modal Panel Operator", "Handle Events On Modal Panels Like Yes-No Boxes",
-                          0, 0, OPEXT_Panel, OPINV_Panel, OPMOD_ModalPanel, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          0, 0, OPEXT_Panel, OPINV_Panel, OPMOD_ModalPanel, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     laCreateOperatorType("LA_menu_panel_operator", "Menu Panel Operator", "Handle Events On Menu Panel,Recieve And Dispatch Confirm Messages,Then Self-destroy.",
-                          0, 0, OPEXT_Panel, OPINV_Panel, OPMOD_MenuPanel, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          0, 0, OPEXT_Panel, OPINV_Panel, OPMOD_MenuPanel, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
 
     laCreateOperatorType("LA_panel_activator", "Panel Activator", "Show A Panel When Invoked.Need An Extra Argument[panel_id]",
                           OPCHK_IsPanel, 0, 0, OPINV_ActivatePanel, 0, 0, LA_ACTUATOR_SYSTEM)
@@ -2128,35 +2128,35 @@ void la_RegisterBuiltinOperators(){
     laCreateOperatorType("LA_dock_panel", "Dock Panel", "Dock a panel",
                           OPCHK_IsPanel, 0, 0, OPINV_DockPanel, 0, 0, LA_ACTUATOR_SYSTEM);
     
-    laCreateOperatorType("LA_int_restore_default", "Restore Default Value", "Restore Int Value To Default", OPCHK_IntSetValue, 0, 0, OPINV_IntSetDefault, 0, L'โญฏ', LA_ACTUATOR_SYSTEM);
-    laCreateOperatorType("LA_real_restore_default", "Restore Default Value", "Restore Float Value To Default", OPCHK_FloatSetValue, 0, 0, OPINV_FloatSetDefault, 0, L'โญฏ', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_int_restore_default", "Restore Default Value", "Restore Int Value To Default", OPCHK_IntSetValue, 0, 0, OPINV_IntSetDefault, 0, U'โญฏ', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_real_restore_default", "Restore Default Value", "Restore Float Value To Default", OPCHK_FloatSetValue, 0, 0, OPINV_FloatSetDefault, 0, U'โญฏ', LA_ACTUATOR_SYSTEM);
     laCreateOperatorType("LA_int_set_max", "Set Max Value", "Set Int Value To Max", OPCHK_IntSetValue, 0, 0, OPINV_IntSetMax, 0, 0, LA_ACTUATOR_SYSTEM);
     laCreateOperatorType("LA_real_set_max", "Set Max Value", "Set Float Value To Max", OPCHK_FloatSetValue, 0, 0, OPINV_FloatSetMax, 0, 0, LA_ACTUATOR_SYSTEM);
     laCreateOperatorType("LA_int_set_min", "Set Min Value", "Set Int Value To Min", OPCHK_IntSetValue, 0, 0, OPINV_IntSetMin, 0, 0, LA_ACTUATOR_SYSTEM);
     laCreateOperatorType("LA_real_set_min", "Set Min Value", "Set Float Value To Min", OPCHK_FloatSetValue, 0, 0, OPINV_FloatSetMin, 0, 0, LA_ACTUATOR_SYSTEM);
-    laCreateOperatorType("LA_int_array_restore_default", "Restore Default Array/Value", "Restore Int Values To Default", OPCHK_IntArraySetValue, 0, 0, OPINV_IntArraySetDefault, 0, L'โญฏ', LA_ACTUATOR_SYSTEM);
-    laCreateOperatorType("LA_real_array_restore_default", "Restore Default Array/Value", "Restore Float Values To Default", OPCHK_FloatArraySetValue, 0, 0, OPINV_FloatArraySetDefault, 0, L'โญฏ', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_int_array_restore_default", "Restore Default Array/Value", "Restore Int Values To Default", OPCHK_IntArraySetValue, 0, 0, OPINV_IntArraySetDefault, 0, U'โญฏ', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_real_array_restore_default", "Restore Default Array/Value", "Restore Float Values To Default", OPCHK_FloatArraySetValue, 0, 0, OPINV_FloatArraySetDefault, 0, U'โญฏ', LA_ACTUATOR_SYSTEM);
     laCreateOperatorType("LA_int_array_set_max", "Set Max Values", "Set Int Values To Max", OPCHK_IntArraySetValue, 0, 0, OPINV_IntArraySetMax, 0, 0, LA_ACTUATOR_SYSTEM);
     laCreateOperatorType("LA_real_array_set_max", "Set Max Values", "Set Float Values To Max", OPCHK_FloatArraySetValue, 0, 0, OPINV_FloatArraySetMax, 0, 0, LA_ACTUATOR_SYSTEM);
     laCreateOperatorType("LA_int_array_set_min", "Set Min Values", "Set Int Values To Min", OPCHK_IntArraySetValue, 0, 0, OPINV_IntArraySetMin, 0, 0, LA_ACTUATOR_SYSTEM);
     laCreateOperatorType("LA_real_array_set_min", "Set Min Values", "Set Float Values To Min", OPCHK_FloatArraySetValue, 0, 0, OPINV_FloatArraySetMin, 0, 0, LA_ACTUATOR_SYSTEM);
-    laCreateOperatorType("LA_enum_restore_default", "Restore Default Value", "Restore enum value to default", OPCHK_EnumSetValue, 0, 0, OPINV_EnumSetDefault, 0, L'โญฏ', LA_ACTUATOR_SYSTEM);
-    laCreateOperatorType("LA_enum_array_restore_default", "Restore Default Array", "Restore enum array values to default", OPCHK_EnumArraySetValue, 0, 0, OPINV_EnumArraySetDefault, 0, L'โญฏ', LA_ACTUATOR_SYSTEM);
-    laCreateOperatorType("LA_string_set_default", "Set Default Value", "Set default string", OPCHK_StringSetValue, 0, 0, OPINV_StringSetDefault, 0, L'โญฏ', LA_ACTUATOR_SYSTEM);
-    laCreateOperatorType("LA_string_get_folder_path", "Get folder Path", "get folder path", OPCHK_StringSetValue, 0, 0, OPINV_StringGetFolderPath, OPMOD_StringGetFolderOrFilePath, L'๐Ÿ“', LA_ACTUATOR_SYSTEM);
-    laCreateOperatorType("LA_string_get_file_path", "Get folder Path", "get file path", OPCHK_StringSetValue, 0, 0, OPINV_StringGetFilePath, OPMOD_StringGetFolderOrFilePath, L'๐Ÿ–น', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_enum_restore_default", "Restore Default Value", "Restore enum value to default", OPCHK_EnumSetValue, 0, 0, OPINV_EnumSetDefault, 0, U'โญฏ', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_enum_array_restore_default", "Restore Default Array", "Restore enum array values to default", OPCHK_EnumArraySetValue, 0, 0, OPINV_EnumArraySetDefault, 0, U'โญฏ', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_string_set_default", "Set Default Value", "Set default string", OPCHK_StringSetValue, 0, 0, OPINV_StringSetDefault, 0, U'โญฏ', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_string_get_folder_path", "Get folder Path", "get folder path", OPCHK_StringSetValue, 0, 0, OPINV_StringGetFolderPath, OPMOD_StringGetFolderOrFilePath, U'๐Ÿ“', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_string_get_file_path", "Get folder Path", "get file path", OPCHK_StringSetValue, 0, 0, OPINV_StringGetFilePath, OPMOD_StringGetFolderOrFilePath, U'๐Ÿ–น', LA_ACTUATOR_SYSTEM);
 
     laCreateOperatorType("LA_sub_put_data_block", "Put Data Block", "Put Pending Data Block Here",
-                          OPCHK_SubPutDataBlock, 0, 0, OPINV_SubPutDataBlock, 0, L'๐Ÿกฎ', LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          OPCHK_SubPutDataBlock, 0, 0, OPINV_SubPutDataBlock, 0, U'๐Ÿกฎ', LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     at = laCreateOperatorType("LA_sub_restore_data_block", "Put Data Block", "Put Pending Data Block Here",
-                               OPCHK_SubRestoreDataBlock, 0, OPEXT_SubRestoreDataBlock, OPINV_SubRestoreDataBlock, 0, L'๐Ÿ”—', LA_ACTUATOR_SYSTEM);
+                               OPCHK_SubRestoreDataBlock, 0, OPEXT_SubRestoreDataBlock, OPINV_SubRestoreDataBlock, 0, U'๐Ÿ”—', LA_ACTUATOR_SYSTEM);
     at->UiDefine = laui_DataRestorePage;
 
-    laCreateOperatorType("LA_view_hyper_data", "View Hyper Data", "Show Properties Of Specific Data Block", OPCHK_IsHyper, 0, 0, OPINV_ViewHyperData, 0, L'๐Ÿ›ˆ', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_view_hyper_data", "View Hyper Data", "Show Properties Of Specific Data Block", OPCHK_IsHyper, 0, 0, OPINV_ViewHyperData, 0, U'๐Ÿ›ˆ', LA_ACTUATOR_SYSTEM);
     
-    laCreateOperatorType("LA_file_dialog_up", "Up", "Select Upper Folder Level", OPCHK_IsFileBrowser, 0, 0, OPINV_FileBrowserUpLevel, 0, L'๐Ÿขฐ', LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
-    laCreateOperatorType("LA_file_dialog_confirm", "Confirm", "Confirm selection", OPCHK_FileBrowserCanConfirm, 0, 0, OPINV_FileBrowserConfirm, OPMOD_FileBrowserConfirm, L'โœ”', LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
-    at = laCreateOperatorType("LA_file_dialog", "File Dialog", "Do File Operations", 0, 0, OPEXT_FileBrowser, OPINV_FileBrowser, OPMOD_FileBrowser, L'๐Ÿ—', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_file_dialog_up", "Up", "Select Upper Folder Level", OPCHK_IsFileBrowser, 0, 0, OPINV_FileBrowserUpLevel, 0, U'๐Ÿขฐ', LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+    laCreateOperatorType("LA_file_dialog_confirm", "Confirm", "Confirm selection", OPCHK_FileBrowserCanConfirm, 0, 0, OPINV_FileBrowserConfirm, OPMOD_FileBrowserConfirm, U'โœ”', LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+    at = laCreateOperatorType("LA_file_dialog", "File Dialog", "Do File Operations", 0, 0, OPEXT_FileBrowser, OPINV_FileBrowser, OPMOD_FileBrowser, U'๐Ÿ—', LA_ACTUATOR_SYSTEM);
     pc = laDefineOperatorProps(at, 2);
     at->UiDefine = laui_FileBrowserFileList;
     _LA_PROP_FILE_BROWSER = pc;
@@ -2169,38 +2169,38 @@ void la_RegisterBuiltinOperators(){
     laAddSubGroup(pc, "available_extensions", "Available Extensions", "List of all available extensions", "la_extension_type",0, 0, 0, 0, laget_FileBrowserAcceptedExtensionsFrist, 0, laget_FileBrowserAcceptedExtensionsNext,laset_FileBrowserExtension,0,0,0,0);
     laAddIntProperty(pc,"use_type","Use Type","Use file type",0,0,0,0,0,0,0,0,offsetof(laFileBrowser,UseType),0,0,0,0,0,0,0,0,0,0,LA_READ_ONLY);
     ep = laAddEnumProperty(pc, "select_what", "Select What", "Select folder or file", 0, 0, 0, 0, 0, offsetof(laFileBrowser, SelectFolder), 0, 0, 0, 0, 0, 0, 0, 0, 0,LA_READ_ONLY);{
-        laAddEnumItemAs(ep, "file", "File", "File", LA_FILE_SELECT_FILE, L'๐Ÿ“');
-        laAddEnumItemAs(ep, "folder", "Folder", "Folder", LA_FILE_SELECT_FOLDER, L'๐Ÿ–น');
+        laAddEnumItemAs(ep, "file", "File", "File", LA_FILE_SELECT_FILE, U'๐Ÿ“');
+        laAddEnumItemAs(ep, "folder", "Folder", "Folder", LA_FILE_SELECT_FOLDER, U'๐Ÿ–น');
     }
-    laAddOperatorProperty(pc, "folder_up", "Up", "Select Upper Folder Level In File Browsers", "LA_file_dialog_up", L'๐Ÿขฐ', 0);
-    laAddOperatorProperty(pc, "confirm", "Confirm", "Confirm selection", "LA_file_dialog_confirm", L'โœ”', 0);
+    laAddOperatorProperty(pc, "folder_up", "Up", "Select Upper Folder Level In File Browsers", "LA_file_dialog_up", U'๐Ÿขฐ', 0);
+    laAddOperatorProperty(pc, "confirm", "Confirm", "Confirm selection", "LA_file_dialog_confirm", U'โœ”', 0);
     p = laAddPropertyContainer("disk_item", "Disk Item", "A Logical Drive (In Windows)", 0, laui_FileBrowserDiskItem, 0, 0, 0, 1);{
         laAddStringProperty(p, "id", "ID", "Disk Identifier", 0, 0, 0, 0, 0, 0, 0, laget_FileBrowserDiskID, 0, 0, 0);
         laAddFloatProperty(p, "total_gb", "Total", "Disk Total Compacity In Gigabytes", 0, 0, "GB", 0, 0, 0, 0, 0, offsetof(laDiskItem, Total_GB), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,LA_READ_ONLY);
         laAddFloatProperty(p, "free_gb", "Free", "Disk Free Space Size In Gigabytes", 0, 0, "GB", 0, 0, 0, 0, 0, offsetof(laDiskItem, Free_GB), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,LA_READ_ONLY);
     }
-    p = laAddPropertyContainer("file_item", "File Item", "A File Item In A List", L'๐Ÿ–น', 0, 0, 0, 0, 0);{
+    p = laAddPropertyContainer("file_item", "File Item", "A File Item In A List", U'๐Ÿ–น', 0, 0, 0, 0, 0);{
         laAddStringProperty(p, "name", "Name", "The Name Of The File (With Extension)", 0, 0, 0, 0, 0, offsetof(laFileItem, Name), 0, 0, 0, 0, LA_UDF_LOCAL);
         laAddIntProperty(p, "is_folder", "Is Folder", "File Is A Folder Or Actual File", 0, 0, 0, 1, 0, 0, 0, 0, offsetof(laFileItem, IsFolder), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,LA_READ_ONLY);
         laAddSubGroup(p, "time_modified", "Time Last Modified", "The Time When The File Was Last Modified", "time_info",0, 0, 0, offsetof(laFileItem, TimeModified), 0, 0, 0, 0, 0, 0, 0, LA_UDF_LOCAL);
         laAddIntProperty(p, "size", "Size", "File Size In Bytes", 0, 0, "Bytes", 0, 0, 0, 0, 0, offsetof(laFileItem, Size), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,LA_READ_ONLY);
         ep = laAddEnumProperty(p, "type", "Type", "General Type Of The File", 0, 0, 0, 0, 0, offsetof(laFileItem, Type), 0, 0, 0, 0, 0, 0, 0, 0, 0,LA_READ_ONLY);{
-            laAddEnumItemAs(ep, "unknown", "Unknown", "Unknown/Uncategorized File Type", LA_FILETYPE_UNKNOWN, L'๐Ÿ–น');
-            laAddEnumItemAs(ep, "udf", "UDF", "Uniform Data Format", LA_FILETYPE_UDF, L'๐Ÿ“ฆ');
-            laAddEnumItemAs(ep, "document", "Document", "Document File", LA_FILETYPE_DOCUMENT, L'๐Ÿ–น');
-            laAddEnumItemAs(ep, "image", "Image", "Image File", LA_FILETYPE_IMAGE, L'๐Ÿ–ป');
-            laAddEnumItemAs(ep, "audio", "Audio", "Audio File", LA_FILETYPE_AUDIO, L'๐„ž');
-            laAddEnumItemAs(ep, "video", "Video", "Video File", LA_FILETYPE_VIDEO, L'๐ŸŽž');
-            laAddEnumItemAs(ep, "compressed", "Compressed", "Compressed File", LA_FILETYPE_COMPRESSED, L'๐Ÿ—œ');
-            laAddEnumItemAs(ep, "font", "Font", "Font File", LA_FILETYPE_FONT, L'๐Ÿ—š');
-            laAddEnumItemAs(ep, "vector", "Vector", "Vector File", LA_FILETYPE_VECTOR, L'๐ŸžŽ');
-            laAddEnumItemAs(ep, "webpage", "Webpage", "Webpage", LA_FILETYPE_WEBPAGE, L'๐ŸŒ');
-            laAddEnumItemAs(ep, "meta", "Meta Data", "Meta Data Package", LA_FILETYPE_META, L'๐Ÿ–น');
-            laAddEnumItemAs(ep, "blend", "Blend", "Blend File", LA_FILETYPE_BLEND, L'๐Ÿ–น');
-            laAddEnumItemAs(ep, "pdf", "PDF", "PDF File", LA_FILETYPE_PDF, L'๐Ÿ–น');
-            laAddEnumItemAs(ep, "exe", "Executable", "SYSWINDOW Executable", LA_FILETYPE_EXEC, L'๐Ÿ–ฆ');
-            laAddEnumItemAs(ep, "sys", "System", "System Files", LA_FILETYPE_SYS, L'๐Ÿ–น');
-            laAddEnumItemAs(ep, "folder", "Folder", "Folder", LA_FILETYPE_FOLDER, L'๐Ÿ“');
+            laAddEnumItemAs(ep, "unknown", "Unknown", "Unknown/Uncategorized File Type", LA_FILETYPE_UNKNOWN, U'๐Ÿ–น');
+            laAddEnumItemAs(ep, "udf", "UDF", "Uniform Data Format", LA_FILETYPE_UDF, U'๐Ÿ“ฆ');
+            laAddEnumItemAs(ep, "document", "Document", "Document File", LA_FILETYPE_DOCUMENT, U'๐Ÿ–น');
+            laAddEnumItemAs(ep, "image", "Image", "Image File", LA_FILETYPE_IMAGE, U'๐Ÿ–ป');
+            laAddEnumItemAs(ep, "audio", "Audio", "Audio File", LA_FILETYPE_AUDIO, U'๐„ž');
+            laAddEnumItemAs(ep, "video", "Video", "Video File", LA_FILETYPE_VIDEO, U'๐ŸŽž');
+            laAddEnumItemAs(ep, "compressed", "Compressed", "Compressed File", LA_FILETYPE_COMPRESSED, U'๐Ÿ—œ');
+            laAddEnumItemAs(ep, "font", "Font", "Font File", LA_FILETYPE_FONT, U'๐Ÿ—š');
+            laAddEnumItemAs(ep, "vector", "Vector", "Vector File", LA_FILETYPE_VECTOR, U'๐ŸžŽ');
+            laAddEnumItemAs(ep, "webpage", "Webpage", "Webpage", LA_FILETYPE_WEBPAGE, U'๐ŸŒ');
+            laAddEnumItemAs(ep, "meta", "Meta Data", "Meta Data Package", LA_FILETYPE_META, U'๐Ÿ–น');
+            laAddEnumItemAs(ep, "blend", "Blend", "Blend File", LA_FILETYPE_BLEND, U'๐Ÿ–น');
+            laAddEnumItemAs(ep, "pdf", "PDF", "PDF File", LA_FILETYPE_PDF, U'๐Ÿ–น');
+            laAddEnumItemAs(ep, "exe", "Executable", "SYSWINDOW Executable", LA_FILETYPE_EXEC, U'๐Ÿ–ฆ');
+            laAddEnumItemAs(ep, "sys", "System", "System Files", LA_FILETYPE_SYS, U'๐Ÿ–น');
+            laAddEnumItemAs(ep, "folder", "Folder", "Folder", LA_FILETYPE_FOLDER, U'๐Ÿ“');
             laAddEnumItemAs(ep, "lasdexchange", "LaSDExchange", "LA Scene Descriptive Exchange File", LA_FILETYPE_LASDEXCHANGE, 0);
         }
     }
@@ -2209,14 +2209,14 @@ void la_RegisterBuiltinOperators(){
         laAddStringProperty(p, "path", "Path", "Bookmark path", 0, 0, 0, 0, 0, offsetof(laBookmarkedFolder, Path), 0, 0, 0, 0, LA_UDF_LOCAL);
     }
     
-    at = laCreateOperatorType("LA_udf_read", "Read", "Read a UDF file", 0, 0, OPEXT_UDFOperation, OPINV_UDFRead, OPMOD_UDFRead, L'๐Ÿ“‘', LA_ACTUATOR_SYSTEM);
+    at = laCreateOperatorType("LA_udf_read", "Read", "Read a UDF file", 0, 0, OPEXT_UDFOperation, OPINV_UDFRead, OPMOD_UDFRead, U'๐Ÿ“‘', LA_ACTUATOR_SYSTEM);
     pc = laDefineOperatorProps(at, 0);
     at->UiDefine = laui_LinkerPanel;
     laAddSubGroup(pc, "root_nodes", "UDF Nodes", "List Of All Linkable/Appendable Nodes In The File", "udf_content_node",0, 0, laui_LinkerSelectionProp, -1, 0, 0, 0, 0, 0, 0, offsetof(laUDFPreviewExtra, ContentNodes), 0);
 
-    at = laCreateOperatorType("LA_udf_save_instance", "Save Instance", "Save a instance as a UDF block", 0, 0, OPEXT_UDFOperation, OPINV_UDFSaveInstance, OPMOD_UDFSaveInstance, L'๐Ÿ“‘', LA_ACTUATOR_SYSTEM);
+    at = laCreateOperatorType("LA_udf_save_instance", "Save Instance", "Save a instance as a UDF block", 0, 0, OPEXT_UDFOperation, OPINV_UDFSaveInstance, OPMOD_UDFSaveInstance, U'๐Ÿ“‘', LA_ACTUATOR_SYSTEM);
 
-    at = laCreateOperatorType("LA_managed_save", "Save as", "Save managed data blocks", 0, 0, OPEXT_ManagedSave, OPINV_ManagedSave, OPMOD_ManagedSave, L'๐Ÿ–ซ', LA_ACTUATOR_SYSTEM);
+    at = laCreateOperatorType("LA_managed_save", "Save as", "Save managed data blocks", 0, 0, OPEXT_ManagedSave, OPINV_ManagedSave, OPMOD_ManagedSave, U'๐Ÿ–ซ', LA_ACTUATOR_SYSTEM);
     pc = laDefineOperatorProps(at, 1);
     ep=laAddEnumProperty(pc, "show_page", "Show Page", "Show whether data blocks or UDF files", 0,0,0,0,0,offsetof(laManagedSaveExtra, ShowPage),0,laset_ManagedSavePage,0,0,0,0,0,0,0,0);
     laAddEnumItemAs(ep, "DATA_BLOCKS", "Data Blocks", "All data blocks", 0, 0);
@@ -2225,22 +2225,22 @@ void la_RegisterBuiltinOperators(){
     
     laCreateOperatorType("LA_udf_propagate", "Propagate", "Propagate this file to all unassigned child nodes", 0, 0, 0, OPINV_UDFPropagate, 0, 0, LA_ACTUATOR_SYSTEM);
     
-    laCreateOperatorType("LA_managed_save_new_file", "New File", "New managed UDF file", 0, 0, OPEXT_ManagedSave, OPINV_ManagedSaveNewFile, OPMOD_ManagedSaveNewFile, L'+', LA_ACTUATOR_SYSTEM);
-    laCreateOperatorType("LA_manage_udf", "UDF Manager", "Operations on all managed UDF files", 0, 0, 0, OPINV_UDFManager, 0, L'๐Ÿ”', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_managed_save_new_file", "New File", "New managed UDF file", 0, 0, OPEXT_ManagedSave, OPINV_ManagedSaveNewFile, OPMOD_ManagedSaveNewFile, U'+', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_manage_udf", "UDF Manager", "Operations on all managed UDF files", 0, 0, 0, OPINV_UDFManager, 0, U'๐Ÿ”', LA_ACTUATOR_SYSTEM);
 
     laCreateOperatorType("LA_add_resource_folder", "Add Resource Folder", "Add a resource folder entry for searching UDF references",
-                               0, 0, 0, OPINV_AddResourceFolder, 0, L'๐Ÿžง', LA_ACTUATOR_SYSTEM);
+                               0, 0, 0, OPINV_AddResourceFolder, 0, U'๐Ÿžง', LA_ACTUATOR_SYSTEM);
     laCreateOperatorType("LA_remove_resource_folder", "Remove Resource Folder", "Remove a resource folder entry",
-                               0, 0, 0, OPINV_RemoveResourceFolder, 0, L'โŒ', LA_ACTUATOR_SYSTEM);
+                               0, 0, 0, OPINV_RemoveResourceFolder, 0, U'โŒ', LA_ACTUATOR_SYSTEM);
 
     laCreateOperatorType("LA_save_user_preferences", "Save Preferences", "Save user preferences", 0, 0, 0, OPINV_SaveUserPreferences, 0, 0, LA_ACTUATOR_SYSTEM);
 
-    laCreateOperatorType("LA_confirm", "Confirm", "Confirm The Statement", 0, 0, 0, OPINV_DoNothing, 0, L'โœ”', LA_ACTUATOR_SYSTEM)
+    laCreateOperatorType("LA_confirm", "Confirm", "Confirm The Statement", 0, 0, 0, OPINV_DoNothing, 0, U'โœ”', LA_ACTUATOR_SYSTEM)
         ->ExtraInstructions = "feedback=CONFIRM;";
-    laCreateOperatorType("LA_cancel", "Cancel", "Ignore The Statement", 0, 0, 0, OPINV_DoNothing, 0, L'โŒ', LA_ACTUATOR_SYSTEM)
+    laCreateOperatorType("LA_cancel", "Cancel", "Ignore The Statement", 0, 0, 0, OPINV_DoNothing, 0, U'โŒ', LA_ACTUATOR_SYSTEM)
         ->ExtraInstructions = "feedback=CANCEL;";
-    laCreateOperatorType("LA_pure_yes_no", "Yes Or No", "Show Yes Or No Box", 0, 0, 0, OPINV_PureYesNo, 0, L'โ“', LA_ACTUATOR_SYSTEM);
+    laCreateOperatorType("LA_pure_yes_no", "Yes Or No", "Show Yes Or No Box", 0, 0, 0, OPINV_PureYesNo, 0, U'โ“', LA_ACTUATOR_SYSTEM);
     
     laCreateOperatorType("LA_delete_theme", "Delete Theme", "Delete a theme",
-                               0, 0, 0, OPINV_DeleteTheme, 0, L'โŒ', LA_ACTUATOR_SYSTEM);
+                               0, 0, 0, OPINV_DeleteTheme, 0, U'โŒ', LA_ACTUATOR_SYSTEM);
 }

+ 63 - 63
resources/la_properties.c

@@ -561,17 +561,17 @@ void laget_UiDataPath(laUiItem *ui, char *result){
     laPropStep *ps = ui->PP.Go;
     if (ui->PP.LastPs || ui->PP.Go){
         for (ps; ps; ps = ps->pNext){
-            if (ps->Type == L'@' || ps->Type == L'#' || ps->Type == L'='){
+            if (ps->Type == U'@' || ps->Type == U'#' || ps->Type == U'='){
                 strcat(result, ps->p);
             }else{
                 strcat(result, ps->p->Identifier);
             }
             if (ps->pNext){
-                if (ps->pNext->Type == L'.') strcat(result, ".");
-                elif (ps->pNext->Type == L'#') strcat(result, "#");
-                elif (ps->pNext->Type == L'@') strcat(result, "@");
-                elif (ps->pNext->Type == L'=') strcat(result, "= ");
-                elif (ps->pNext->Type == L'$') strcat(result, "$");
+                if (ps->pNext->Type == U'.') strcat(result, ".");
+                elif (ps->pNext->Type == U'#') strcat(result, "#");
+                elif (ps->pNext->Type == U'@') strcat(result, "@");
+                elif (ps->pNext->Type == U'=') strcat(result, "= ");
+                elif (ps->pNext->Type == U'$') strcat(result, "$");
             }
         }
     }elif (ui->AT){
@@ -837,46 +837,46 @@ void la_RegisterGeneralProps(){
     laKeyMapper *km;
 
     p = la_SetGeneralRoot(&MAIN.GeneralIntSub, "__general_int__", "Genral Int Operations", "Genral Int Operations");
-    laAddOperatorProperty(p, "restore", "Restore Default", "Restore the property to the original value", "LA_int_restore_default", L'โญฏ', 0);
+    laAddOperatorProperty(p, "restore", "Restore Default", "Restore the property to the original value", "LA_int_restore_default", U'โญฏ', 0);
     laAddOperatorProperty(p, "set_max", "Set Max", "Set The Property To The Max Value", "LA_int_set_max", 0,0);
     laAddOperatorProperty(p, "set_min", "Set Min", "Set The Property To The Min Value", "LA_int_set_min", 0,0);
-    //laAddOperatorProperty(p, "hyper_data", "View Hyper Data", "Show Properties Of Specific Data Block", "LA_view_hyper_data", L'๐Ÿ›ˆ', 0);
+    //laAddOperatorProperty(p, "hyper_data", "View Hyper Data", "Show Properties Of Specific Data Block", "LA_view_hyper_data", U'๐Ÿ›ˆ', 0);
 
     p = la_SetGeneralRoot(&MAIN.GeneralIntArraySub, "__general_int_arr__", "Genral Int Array Operations", "Genral Int Array Operations");
-    laAddOperatorProperty(p, "restore", "Restore Default", "Restore the property to the original value", "LA_int_array_restore_default", L'โญฏ', 0);
+    laAddOperatorProperty(p, "restore", "Restore Default", "Restore the property to the original value", "LA_int_array_restore_default", U'โญฏ', 0);
     laAddOperatorProperty(p, "set_max", "Set Max", "Set The Property To The Max Value", "LA_int_array_set_max", 0,0);
     laAddOperatorProperty(p, "set_min", "Set Min", "Set The Property To The Min Value", "LA_int_array_set_min", 0,0);
-    //laAddOperatorProperty(p, "hyper_data", "View Hyper Data", "Show Properties Of Specific Data Block", "LA_view_hyper_data", L'๐Ÿ›ˆ', 0);
+    //laAddOperatorProperty(p, "hyper_data", "View Hyper Data", "Show Properties Of Specific Data Block", "LA_view_hyper_data", U'๐Ÿ›ˆ', 0);
 
     p = la_SetGeneralRoot(&MAIN.GeneralFloatSub, "__general_real__", "Genral Float Operations", "Genral Float Operations");
-    laAddOperatorProperty(p, "restore", "Restore Default", "Restore the property to the original value", "LA_real_restore_default", L'โญฏ', 0);
+    laAddOperatorProperty(p, "restore", "Restore Default", "Restore the property to the original value", "LA_real_restore_default", U'โญฏ', 0);
     laAddOperatorProperty(p, "set_max", "Set Max", "Set The Property To The Max Value", "LA_real_set_max", 0,0);
     laAddOperatorProperty(p, "set_min", "Set Min", "Set The Property To The Min Value", "LA_real_set_min", 0,0);
-    //laAddOperatorProperty(p, "hyper_data", "View Hyper Data", "Show Properties Of Specific Data Block", "LA_view_hyper_data", L'๐Ÿ›ˆ', 0);
+    //laAddOperatorProperty(p, "hyper_data", "View Hyper Data", "Show Properties Of Specific Data Block", "LA_view_hyper_data", U'๐Ÿ›ˆ', 0);
 
     p = la_SetGeneralRoot(&MAIN.GeneralFloatArraySub, "__general_real_arr__", "Genral Float Array Operations", "Genral Float Array Operations");
-    laAddOperatorProperty(p, "restore", "Restore Default", "Restore the property to the original value", "LA_real_array_restore_default", L'โญฏ', 0);
+    laAddOperatorProperty(p, "restore", "Restore Default", "Restore the property to the original value", "LA_real_array_restore_default", U'โญฏ', 0);
     laAddOperatorProperty(p, "set_max", "Set Max", "Set The Property To The Max Value", "LA_real_array_set_max", 0,0);
     laAddOperatorProperty(p, "set_min", "Set Min", "Set The Property To The Min Value", "LA_real_array_set_min", 0,0);
-    //laAddOperatorProperty(p, "hyper_data", "View Hyper Data", "Show Properties Of Specific Data Block", "LA_view_hyper_data", L'๐Ÿ›ˆ', 0);
+    //laAddOperatorProperty(p, "hyper_data", "View Hyper Data", "Show Properties Of Specific Data Block", "LA_view_hyper_data", U'๐Ÿ›ˆ', 0);
 
     p = la_SetGeneralRoot(&MAIN.GeneralEnumSub, "__general_enum__", "Genral Enum Operations", "Genral Enum Operations");
-    laAddOperatorProperty(p, "restore", "Restore Default", "Restore the property to the original value", "LA_enum_restore_default", L'โญฏ', 0);
+    laAddOperatorProperty(p, "restore", "Restore Default", "Restore the property to the original value", "LA_enum_restore_default", U'โญฏ', 0);
     p = la_SetGeneralRoot(&MAIN.GeneralEnumArraySub, "__general_enum_arr__", "Genral Enum Array Operations", "Genral Enum Array Operations");
-    laAddOperatorProperty(p, "restore", "Restore Default", "Restore the property to the original value", "LA_enum_array_restore_default", L'โญฏ', 0);
+    laAddOperatorProperty(p, "restore", "Restore Default", "Restore the property to the original value", "LA_enum_array_restore_default", U'โญฏ', 0);
     
     p = la_SetGeneralRoot(&MAIN.GeneralStringSub, "__general_string__", "Genral String Operations", "Genral String Operations");
     laAddOperatorProperty(p, "copy", "Copy", "Copy to clipboard", "LA_string_copy", 0,0);
     laAddOperatorProperty(p, "paste", "Paste", "Paste from clipboard", "LA_system_paste", 0,0);
-    laAddOperatorProperty(p, "restore", "Restore Default", "Restore Default Value", "LA_string_set_default", L'โญฏ', 0);
-    laAddOperatorProperty(p, "get_folder_path", "Get Folder Path", "Get a folder path", "LA_string_get_folder_path", L'๐Ÿ“', 0);
-    laAddOperatorProperty(p, "get_file_path", "Get File Path", "Get a file path", "LA_string_get_file_path", L'๐Ÿ–น', 0);
+    laAddOperatorProperty(p, "restore", "Restore Default", "Restore Default Value", "LA_string_set_default", U'โญฏ', 0);
+    laAddOperatorProperty(p, "get_folder_path", "Get Folder Path", "Get a folder path", "LA_string_get_folder_path", U'๐Ÿ“', 0);
+    laAddOperatorProperty(p, "get_file_path", "Get File Path", "Get a file path", "LA_string_get_file_path", U'๐Ÿ–น', 0);
     p->UiDefine=laui_StringPropUiDefine;
 
     p = la_SetGeneralRoot(&MAIN.GeneralOperatorSub, "__general_operator__", "Genral Operator Operations", "Genral Operator Operations");
 
     p = la_SetGeneralRoot(&MAIN.GeneralCollectionSub, "__general_collection__", "Genral Collection Operations", "Genral Collection Operations");
-    laAddOperatorProperty(p, "put_data_block", "Put", "Append Pending Data Block Here", "LA_sub_put_data_block", L'๐Ÿ”—', 0);
+    laAddOperatorProperty(p, "put_data_block", "Put", "Append Pending Data Block Here", "LA_sub_put_data_block", U'๐Ÿ”—', 0);
     laAddOperatorProperty(p, "save_instance", "Save Instance", "Save instance as a udf block", "LA_udf_save_instance", 0,0);
 }
 
@@ -952,7 +952,7 @@ void la_RegisterInternalProps(){
 
         // TIME INFO =========================================================================================
 
-        p = laAddPropertyContainer("time_info", "Time Info", "Time Information Y/M/D/H/M/S", L'๐Ÿ•’', 0,sizeof(laTimeInfo), 0,0,LA_PROP_OTHER_ALLOC);{
+        p = laAddPropertyContainer("time_info", "Time Info", "Time Information Y/M/D/H/M/S", U'๐Ÿ•’', 0,sizeof(laTimeInfo), 0,0,LA_PROP_OTHER_ALLOC);{
             laAddIntProperty(p, "year", "Year", "Year Value", 0,0,0,0,0,0,0,0,0,laget_TimeYear, 0,0,0,0,0,0,0,0,0,0);
             laAddIntProperty(p, "month", "Month", "Month Value", 0,0,0,0,0,0,0,0,0,laget_TimeMonth, 0,0,0,0,0,0,0,0,0,LA_READ_ONLY);
             laAddIntProperty(p, "day", "Day", "Day Value", 0,0,0,0,0,0,0,0,0,laget_TimeDay, 0,0,0,0,0,0,0,0,0,LA_READ_ONLY);
@@ -964,7 +964,7 @@ void la_RegisterInternalProps(){
 
         // LA MAIN =========================================================================================
 
-        p = laAddPropertyContainer("la_main", "LA Root", "LA Root Structure", L'๐Ÿ–ด', 0,sizeof(LA), 0,0,2|LA_PROP_OTHER_ALLOC);{
+        p = laAddPropertyContainer("la_main", "LA Root", "LA Root Structure", U'๐Ÿ–ด', 0,sizeof(LA), 0,0,2|LA_PROP_OTHER_ALLOC);{
             laAddSubGroup(p, "logs", "Logs", "Application logs", "la_log",0,0,laui_LogItem, -1, 0,0,0,0,0,0,offsetof(LA, Logs), LA_UDF_IGNORE|LA_READ_ONLY);
             laAddSubGroup(p, "differences", "Differences", "Difference stack (for undo/redo)", "la_difference",0,0,0,offsetof(LA, HeadDifference), 0,0,0,0,0,0,offsetof(LA, Differences), LA_UDF_IGNORE|LA_READ_ONLY);
             sp=laAddSubGroup(p, "panel_templates", "Panel Templates", "Panel templates used to create new panel", "panel_template",0,0,0,-1, 0,0,0,0,0,0,offsetof(LA, PanelTemplates), 0);
@@ -1043,22 +1043,22 @@ void la_RegisterInternalProps(){
 
         p = laAddPropertyContainer("la_resource_folder", "Resource Folder", "A resource folder to search for UDF references.", 0,laui_ResourceFolderItem, sizeof(laResourceFolder), 0,0,1);{
             laAddStringProperty(p, "path", "Path", "Path", 0,0,0,0,1, offsetof(laResourceFolder, Path), 0,0,laset_ResourcePath, 0,0);
-            laAddOperatorProperty(p, "remove", "Remove", "Remove this resource folder entry", "LA_remove_resource_folder", L'โŒ', 0);
+            laAddOperatorProperty(p, "remove", "Remove", "Remove this resource folder entry", "LA_remove_resource_folder", U'โŒ', 0);
         }
 
-        p = laAddPropertyContainer("managed_udf", "Managed UDF", "Managed UDF files", L'๐Ÿ–น', laui_ManagedUDFItem, sizeof(laManagedUDF), 0,0,0);{
+        p = laAddPropertyContainer("managed_udf", "Managed UDF", "Managed UDF files", U'๐Ÿ–น', laui_ManagedUDFItem, sizeof(laManagedUDF), 0,0,0);{
             laAddStringProperty(p, "basename", "Base Name", "Base name of the file (withiout directory)", 0,0,0,0,1, offsetof(laManagedUDF, BaseName), 0,0,0,0,LA_AS_IDENTIFIER|LA_READ_ONLY);
             laAddSubGroup(p, "udf", "UDF", "Reference to target UDF file", "udf",0,0,0,offsetof(laManagedUDF, udf), 0,0,0,0,0,0,0,LA_UDF_REFER);
         }
-        p = laAddPropertyContainer("udf", "UDF File", "UDF file block", L'๐Ÿ–น', 0,sizeof(laUDF), 0,0,0);{
+        p = laAddPropertyContainer("udf", "UDF File", "UDF file block", U'๐Ÿ–น', 0,sizeof(laUDF), 0,0,0);{
             laAddStringProperty(p, "path", "Path", "File Path", 0,0,0,0,1, offsetof(laUDF, FileName), 0,0,0,0,LA_READ_ONLY);
             ep=laAddEnumProperty(p, "modified", "Modified", "File modified", LA_WIDGET_ENUM_ICON_PLAIN,0,0,0,0,offsetof(laUDF, Modified),0,0,0,0,0,0,0,0,0,LA_READ_ONLY);
-            laAddEnumItemAs(ep, "MODIFIED", "Modified", "There are unsaved changes bound to this file", 1, L'๐ŸŒ‘');
+            laAddEnumItemAs(ep, "MODIFIED", "Modified", "There are unsaved changes bound to this file", 1, U'๐ŸŒ‘');
             laAddEnumItemAs(ep, "CLEAN", "Clean", "File data is untouched", 0,0);
             ep->ElementBytes=2;
         }
 
-        p = laAddPropertyContainer("udf_content_node", "UDF Content Node", "Type Structure For Previewing,Selecting,Linking UDF Contnet", L'๐Ÿ–น', 0,0,0,0,0);{
+        p = laAddPropertyContainer("udf_content_node", "UDF Content Node", "Type Structure For Previewing,Selecting,Linking UDF Contnet", U'๐Ÿ–น', 0,0,0,0,0);{
             laAddStringProperty(p, "full_path", "Full Path", "Full Path", 0,0,0,0,0,0,0,laget_UDFContentNodeFullPath, 0,0,LA_READ_ONLY);
             laAddStringProperty(p, "identifier", "Identifier", "Self Identifier", 0,0,0,0,0,0,0,laget_UDFContentNodeIdentifier, 0,0,LA_AS_IDENTIFIER|LA_READ_ONLY);
             laAddIntProperty(p, "file_seek", "File Seek", "Prop Beginner's Location In The File", 0,0,0,0,0,0,0,0,offsetof(laUDFContentNode, FileSeek), 0,0,0,0,0,0,0,0,0,0,LA_READ_ONLY);
@@ -1067,7 +1067,7 @@ void la_RegisterInternalProps(){
             laAddSubGroup(p, "pc", "Prop Container", "This Property Container", "property_package",0,0,0,offsetof(laUDFContentNode, PP), 0,0,0,0,0,0,0,LA_UDF_LOCAL | LA_UDF_REFER);
         }
 
-        p = laAddPropertyContainer("udf_content_instance", "UDF Content Instance", "Instance/FileSeek Storage For Previewing,Selecting,Linking UDF Contnet", L'๐Ÿ–น', 0,0,0,0,0);{
+        p = laAddPropertyContainer("udf_content_instance", "UDF Content Instance", "Instance/FileSeek Storage For Previewing,Selecting,Linking UDF Contnet", U'๐Ÿ–น', 0,0,0,0,0);{
             laAddStringProperty(p, "identifier", "Identifier", "Self Identifier", 0,0,0,0,0,0,0,laget_UDFContentInstanceIdentifier, 0,0,LA_READ_ONLY);
             laAddIntProperty(p, "file_seek", "File Seek", "Instance's Location In The File", 0,0,0,0,0,0,0,0,offsetof(laUDFContentInstance, FileSeek), 0,0,0,0,0,0,0,0,0,0,LA_AS_IDENTIFIER|LA_READ_ONLY);
             laAddSubGroup(p, "children", "Children", "Child Properties (Only SubProps)", "udf_content_node",0,0,0,-1, 0,0,0,0,0,0,offsetof(laUDFContentInstance, Children), 0);
@@ -1078,14 +1078,14 @@ void la_RegisterInternalProps(){
             laAddStringProperty(p, "path", "Path", "Property path", 0,0,0,0,1, offsetof(laManagedSaveProp, Path), 0,0,0,0,LA_READ_ONLY);
         }
 
-        p = laAddPropertyContainer("int_property", "Int Property", "Int property specific info", L'i', laui_IntPropInfo, sizeof(laIntProp), 0,0,1);{
+        p = laAddPropertyContainer("int_property", "Int Property", "Int property specific info", U'i', laui_IntPropInfo, sizeof(laIntProp), 0,0,1);{
             laAddIntProperty(p, "range", "Range", "Range of the property", 0,"Min,Max", 0,0,0,0,0,0,offsetof(laIntProp, Min), 0,0,2, 0,0,0,0,0,0,0,LA_READ_ONLY);
             laAddIntProperty(p, "default", "Default", "Default value", 0,0,0,0,0,0,0,0,offsetof(laIntProp, DefVal), 0,0,0,0,0,0,0,0,0,0,LA_READ_ONLY);
             laAddIntProperty(p, "step", "Step", "Ui step of the value", 0,0,0,0,0,0,0,0,offsetof(laIntProp, Step), 0,0,0,0,0,0,0,0,0,0,LA_READ_ONLY);
             laAddSubGroup(p, "base", "Base", "Property Base", "property_item", 0,0,0,0,0,0,0,0,0,0,0,LA_UDF_SINGLE|LA_UDF_LOCAL);
         } MAIN.ContainerInt = p;
 
-        p = laAddPropertyContainer("float_property", "Float Property", "Float property specific info", L'i', laui_FloatPropInfo, sizeof(laFloatProp), 0,0,1);{
+        p = laAddPropertyContainer("float_property", "Float Property", "Float property specific info", U'i', laui_FloatPropInfo, sizeof(laFloatProp), 0,0,1);{
             laAddFloatProperty(p, "range", "Range", "Range of the property", 0,"Min,Max", 0,0,0,0,0,0,offsetof(laFloatProp, Min), 0,0,2, 0,0,0,0,0,0,0,LA_READ_ONLY);
             laAddFloatProperty(p, "default", "Default", "Default value", 0,0,0,0,0,0,0,0,offsetof(laFloatProp, DefVal), 0,0,0,0,0,0,0,0,0,0,LA_READ_ONLY);
             laAddFloatProperty(p, "step", "Step", "Ui step of the value", 0,0,0,0,0,0,0,0,offsetof(laFloatProp, Step), 0,0,0,0,0,0,0,0,0,0,LA_READ_ONLY);
@@ -1094,7 +1094,7 @@ void la_RegisterInternalProps(){
 
         // USER PREF ========================================================
 
-        p = laAddPropertyContainer("la_user_preference", "User Preference", "Kernel settings for LA main structure", L'โš™', 0,sizeof(LA), lapost_UserPreferences, 0,2|LA_PROP_OTHER_ALLOC);{
+        p = laAddPropertyContainer("la_user_preference", "User Preference", "Kernel settings for LA main structure", U'โš™', 0,sizeof(LA), lapost_UserPreferences, 0,2|LA_PROP_OTHER_ALLOC);{
             laPropContainerExtraFunctions(p,0,lareset_Main,0,0,0);
             laAddFloatProperty(p, "idle_time", "Idle time", "Time out on no input to show tooltips", 0,0,0,2.0,0.3, 0.05, 0.75, 0,offsetof(LA, IdleTime), 0,0,0,0,0,0,0,0,0,0,0);
             laAddIntProperty(p, "top_framerate", "Top Framerate", "Framerate limiter for drawing the user interface", 0,0,0,60,25, 1, 60,0,offsetof(LA, TopFramerate), 0,0,0,0,0,0,0,0,0,0,0);
@@ -1208,19 +1208,19 @@ void la_RegisterInternalProps(){
             laAddIntProperty(p, "real_xywh", "Real Placemnt", "Placeent Data In Structure", 0,"X,Y,W,H", "px", 0,0,1, 0,0,offsetof(laPanel, TX), 0,0,4, 0,0,0,0,0,0,0,LA_READ_ONLY);
             ep = laAddEnumProperty(p, "snap_enable", "Snap Enable", "Enable Snapping To Edges", 0,"Left,Right,Top,Bottom", 0,0,0,0,0,0,4, 0,laset_PanelSnapEnable, laget_PanelSnapEnable, 0,0,0,0);{
                 laAddEnumItem(ep, "no", "No Snap", "Not Snapped to edge", 0);
-                laAddEnumItem(ep, "yes", "Snap", "Snapped to edge", L'๐Ÿž‰');
+                laAddEnumItem(ep, "yes", "Snap", "Snapped to edge", U'๐Ÿž‰');
             } //don't swap order with the one below
             laAddIntProperty(p, "snap", "Snap Distance", "Snapping Distance To Edges", 0,"Left,Right,Top,Bottom", "px", 0,0,1, 0,0,offsetof(laPanel, SL), 0,0,4, 0,laset_PanelSnapDistance, 0,0,0,0,0,0);
             laAddIntProperty(p, "show", "Show", "The Panel Is Shown Or Not", 0,0,0,0,0,1, 0,0,offsetof(laPanel, Show), 0,0,0,0,0,0,0,0,0,0,0);
             laAddIntProperty(p, "mode", "Mode", "Normal/Floating/Static/Modal etc.", 0,0,0,0,0,1, 0,0,offsetof(laPanel, Mode), 0,0,0,0,0,0,0,0,0,0,LA_READ_ONLY);
             ep = laAddEnumProperty(p, "is_menu_panel", "Is Menu Panel", "Is Menu Panel", 0,0,0,0,0,offsetof(laPanel, IsMenuPanel), 0,0,0,0,0,0,0,0,0,0);{
                 ep->ElementBytes = 1;
-                laAddEnumItem(ep, "false", "False", "Not A Menu Panel", L'โŒ');
-                laAddEnumItem(ep, "true", "IsTrue", "Is A Menu Panel", L'๐Ÿ—ฉ');
+                laAddEnumItem(ep, "false", "False", "Not A Menu Panel", U'โŒ');
+                laAddEnumItem(ep, "true", "IsTrue", "Is A Menu Panel", U'๐Ÿ—ฉ');
             }
-            laAddOperatorProperty(p, "hide", "Hide", "Hide this panel", "LA_hide_panel", L'๐Ÿ—•', 0);
-            laAddOperatorProperty(p, "dock", "Dock", "Dock this panel", "LA_dock_panel", L'๐Ÿ—–', 0);
-            laAddOperatorProperty(p, "close", "Close", "Close this panel", "LA_block_close_panel", L'โŒ', 0);
+            laAddOperatorProperty(p, "hide", "Hide", "Hide this panel", "LA_hide_panel", U'๐Ÿ—•', 0);
+            laAddOperatorProperty(p, "dock", "Dock", "Dock this panel", "LA_dock_panel", U'๐Ÿ—–', 0);
+            laAddOperatorProperty(p, "close", "Close", "Close this panel", "LA_block_close_panel", U'โŒ', 0);
             //laAddSubGroup(p, "Detached Props", "Detached Props", "detached_prop",0,0,0,0,0,0,0,0,0,0,0,0,offsetof(laPanel, PropLinkContainer->Props), 0);
             laAddSubGroup(p, "uil","Ui List", "Panel Main Ui List", "ui_list",0,0,0,offsetof(laPanel, UI), 0,0,0,0,0,0,0,LA_UDF_IGNORE);
             laAddSubGroup(p, "title_uil","Title Ui List", "Panel Title Ui List", "ui_list",0,0,0, offsetof(laPanel, TitleBar), 0,0,0,0,0,0,0,LA_UDF_IGNORE);
@@ -1233,7 +1233,7 @@ void la_RegisterInternalProps(){
 
         // UI ITEM ==========================================================================================
 
-        p = laAddPropertyContainer("ui_list", "Ui List", "Property Container For Ui List Sub Type", L'โฎ‘', 0,sizeof(laUiList), 0,0,0);{
+        p = laAddPropertyContainer("ui_list", "Ui List", "Property Container For Ui List Sub Type", U'โฎ‘', 0,sizeof(laUiList), 0,0,0);{
             laAddStringProperty(p, "tab_name", "Tab Name", "The Name Of A Tab", 0,0,0,0,0,0,0,0,0,0,LA_AS_IDENTIFIER);
             _LA_PROP_UI_ITEM = laAddSubGroup(p, "ui_items", "Ui Items", "Ui Items Listed In Ui List", "ui_item",0,0,0,-1, laget_FirstUiItem, 0,laget_ListNext, 0,0,0,offsetof(laUiList, UiItems), 0);
             la_UDFAppendSharedTypePointer("_LA_PROP_UI_ITEM", _LA_PROP_UI_ITEM);
@@ -1246,18 +1246,18 @@ void la_RegisterInternalProps(){
             laAddIntProperty(p, "icon_id", "Icon ID", "Icon ID For This Ui List", 0,0,"#", 1800,32, 1, 0,0,offsetof(laUiList, IconID), 0,0,0,0,0,0,0,0,0,0,0)
                 ->ElementBytes = 2;
         }
-        p = laAddPropertyContainer("ui_instance", "Instance", "UiList Instance Entry", L'๐Ÿ—‡', 0,sizeof(laColumn), 0,0,0);{
+        p = laAddPropertyContainer("ui_instance", "Instance", "UiList Instance Entry", U'๐Ÿ—‡', 0,sizeof(laColumn), 0,0,0);{
             //nothing needed
         }
-        p = laAddPropertyContainer("ui_column", "Ui Column", "A Column Handles The Aligning Of Ui Items", L'โ—ซ', laui_IdentifierOnly, sizeof(laColumn), 0,0,0);{
+        p = laAddPropertyContainer("ui_column", "Ui Column", "A Column Handles The Aligning Of Ui Items", U'โ—ซ', laui_IdentifierOnly, sizeof(laColumn), 0,0,0);{
             laAddFloatProperty(p, "split_at", "Split At", "Split Width Percentage From Left", 0,0,0,1, 0,0.01, 0.5, 0,0,laget_ColumnSP, laset_ColumnSP, 0,0,0,0,0,0,0,0,LA_UDF_IGNORE);
             laAddFloatProperty(p, "real_split", "Real Split", "Float Value Split Pos In Real Strucutre", 0,0,0,1, 0,0.01, 0.5, 0,offsetof(laColumn, SP), 0,0,0,0,0,0,0,0,0,0,0);
             laAddIntProperty(p, "snap_width", "Snap Width", "Snap Width Of A Column", 0,0,0,200,20,1, 30,0,0,laget_ColumnSnap, laset_ColumnSnap, 0,0,0,0,0,0,0,0,LA_UDF_IGNORE);
             laAddIntProperty(p, "real_snap", "Real Snap", "Int Snap Value In Real Structure", 0,0,0,0,0,0,0,0,offsetof(laColumn, MaxW), 0,0,0,0,0,0,0,0,0,0,0);
             ep = laAddEnumProperty(p, "snap_state", "Sub Snap State", "How To Snap Sub Columns", 0,0,0,0,0,0,laget_SnapState, laset_SnapState, 0,0,0,0,0,0,0,LA_UDF_IGNORE);{
                 laAddEnumItem(ep, "none", "None", "No Snapping", 0);
-                laAddEnumItem(ep, "left", "Left", "Snap At Left", L'โฎ„');
-                laAddEnumItem(ep, "right", "Right", "Snap At Right", L'โฎ†');
+                laAddEnumItem(ep, "left", "Left", "Snap At Left", U'โฎ„');
+                laAddEnumItem(ep, "right", "Right", "Snap At Right", U'โฎ†');
             }
             laAddSubGroup(p, "left", "Left Sub Column", "Left Sub Column", "ui_column",0,0,0,offsetof(laColumn, LS), 0,0,0,0,0,0,0,LA_UDF_REFER);
             laAddSubGroup(p, "right", "Right Sub Column", "Right Sub Column", "ui_column",0,0,0,offsetof(laColumn, RS), 0,0,0,0,0,0,0,LA_UDF_REFER);
@@ -1275,20 +1275,20 @@ void la_RegisterInternalProps(){
             laAddIntProperty(p, "column_layout", "Column Layout", "The Ui's Column Layout", 0,0,0,10,-10,1, 0,0,offsetof(laUiItem, SymbolID), 0,0,0,0,0,0,0,0,0,0,0)
                 ->ElementBytes = sizeof(short);
             //ep = laAddEnumProperty(p, "type", "Type", "The Type Of This Ui Item", 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,LA_UDF_IGNORE);{
-            //    laAddEnumItemAs(ep, "button", "Button", "Button (Pure Operator)", LA_UI_INTERNAL_BUTTON, L'๐Ÿ”จ');
-            //    laAddEnumItemAs(ep, "property_watcher", "Property Watcher", "Property Watcher For Int/Float/Enum", LA_UI_INTERNAL_WATCHER, L'๐Ÿ”‘');
-            //    laAddEnumItemAs(ep, "group", "Group", "A Group That Holds A Sub-UiList", LA_UI_INTERNAL_GROUP, L'๐Ÿ“');
-            //    laAddEnumItemAs(ep, "tab", "Tab", "A Tab Root That Holds Multiple Sub-UiList", LA_UI_INTERNAL_TAB, L'๐Ÿ“‘');
+            //    laAddEnumItemAs(ep, "button", "Button", "Button (Pure Operator)", LA_UI_INTERNAL_BUTTON, U'๐Ÿ”จ');
+            //    laAddEnumItemAs(ep, "property_watcher", "Property Watcher", "Property Watcher For Int/Float/Enum", LA_UI_INTERNAL_WATCHER, U'๐Ÿ”‘');
+            //    laAddEnumItemAs(ep, "group", "Group", "A Group That Holds A Sub-UiList", LA_UI_INTERNAL_GROUP, U'๐Ÿ“');
+            //    laAddEnumItemAs(ep, "tab", "Tab", "A Tab Root That Holds Multiple Sub-UiList", LA_UI_INTERNAL_TAB, U'๐Ÿ“‘');
             //    laAddEnumItemAs(ep, "label", "Label", "A Static Label", LA_UI_INTERNAL_LABEL, 0);
             //    laAddEnumItemAs(ep, "3d_view", "3D View", "Integrated 3D View UI Item", LA_UI_INTERNAL_3D_VIEW, 0);
-            //    laAddEnumItemAs(ep, "2d_view", "2D View", "Integrated 2D View UI Item", LA_UI_INTERNAL_2D_VIEW, L'๐Ÿ–ป');
-            //    laAddEnumItemAs(ep, "column_adjuster", "Column Adjuster", "To Adjust Column Width", LA_UI_INTERNAL_ADJUSTER, L'โ†”');
+            //    laAddEnumItemAs(ep, "2d_view", "2D View", "Integrated 2D View UI Item", LA_UI_INTERNAL_2D_VIEW, U'๐Ÿ–ป');
+            //    laAddEnumItemAs(ep, "column_adjuster", "Column Adjuster", "To Adjust Column Width", LA_UI_INTERNAL_ADJUSTER, U'โ†”');
             //    laAddEnumItemAs(ep, "bracket_begin", "Bracket Begin", "Bracket Beginner Used To Set Ui Conditions", LA_UI_INTERNAL_BRACKET_BEGIN, '{');
             //    laAddEnumItemAs(ep, "bracket_else", "Bracket Else", "Bracket Else Block Beginner", LA_UI_INTERNAL_BRACKET_ELSE, 0);
             //    laAddEnumItemAs(ep, "folder_begin", "Folder Begin", "Folder Beginner Used To Toggle Some Display", LA_UI_INTERNAL_FOLDER_BEGIN, '{');
             //    laAddEnumItemAs(ep, "bracket_end", "Bracket End", "Bracket Closer", LA_UI_INTERNAL_BRACKET_END, '}');
             //    laAddEnumItemAs(ep, "aligner", "Aligner", "Align Column Heights", LA_UI_INTERNAL_ALIGNER, 0);
-            //    laAddEnumItemAs(ep, "menu", "Menu", "Menu Activiator", LA_UI_INTERNAL_MENU, L'๐Ÿ—ฉ');
+            //    laAddEnumItemAs(ep, "menu", "Menu", "Menu Activiator", LA_UI_INTERNAL_MENU, U'๐Ÿ—ฉ');
             //}
             laAddStringProperty(p, "path", "Path", "Data Path", 0,0,0,0,0,0,0,laget_UiDataPath, 0,laread_UiDataPath,LA_READ_ONLY);
             laAddStringProperty(p, "actuator_id", "Operator ID", "Pure Operator With No 'This' Pointer", 0,0,0,0,0,0,0,laget_UiOperatorID, 0,laread_UiOperatorID,LA_READ_ONLY);
@@ -1343,7 +1343,7 @@ void la_RegisterInternalProps(){
 
         // PROPERTIES ==========================================================================================
 
-        p = laAddPropertyContainer("property_item", "Property Item", "Property Item For Data Types Like Int/Float/Enum/String/SubType", L'๐Ÿ”Œ', 0,sizeof(laProp), 0,0,1);{
+        p = laAddPropertyContainer("property_item", "Property Item", "Property Item For Data Types Like Int/Float/Enum/String/SubType", U'๐Ÿ”Œ', 0,sizeof(laProp), 0,0,1);{
             laAddStringProperty(p, "identifier", "Identifier", "Property Unique Identifier", LA_WIDGET_STRING_PLAIN, 0,0,0,0,0,0,laget_PropertyIdentifier, 0,0,LA_AS_IDENTIFIER|LA_READ_ONLY);
             laAddStringProperty(p, "name", "Name", "Property Display Name", 0,0,0,0,0,offsetof(laProp, Name), 0,0,0,0,LA_READ_ONLY);
             laAddStringProperty(p, "description", "Description", "Property Description", 0,0,0,0,0,offsetof(laProp, Description), 0,0,0,0,LA_READ_ONLY);
@@ -1353,7 +1353,7 @@ void la_RegisterInternalProps(){
             laAddSubGroup(p, "sub", "Sub Type", "Sub Type Property Container", "property_container",0,0,0,offsetof(laProp, SubProp), 0,0,0,0,0,0,0,LA_UDF_REFER);
         }
 
-        p = laAddPropertyContainer("property_container", "Property Container", "Property Container For Some Property Items", L'๐Ÿ”Œ', 0,sizeof(laPropContainer), 0,0,1);{
+        p = laAddPropertyContainer("property_container", "Property Container", "Property Container For Some Property Items", U'๐Ÿ”Œ', 0,sizeof(laPropContainer), 0,0,1);{
             laAddStringProperty(p, "identifier", "Identifier", "Property Unique Identifier", LA_WIDGET_STRING_PLAIN, 0,0,0,0,offsetof(laPropContainer, Identifier), 0,0,0,0,LA_AS_IDENTIFIER | LA_UDF_IGNORE|LA_READ_ONLY);
             laAddStringProperty(p, "name", "Name", "Property Display Name", 0,0,0,0,0,offsetof(laPropContainer, Name), 0,0,0,0,LA_UDF_IGNORE|LA_READ_ONLY);
             laAddStringProperty(p, "description", "Description", "Property Description", 0,0,0,0,0,offsetof(laPropContainer, Name), 0,0,0,0,LA_UDF_IGNORE|LA_READ_ONLY);
@@ -1361,22 +1361,22 @@ void la_RegisterInternalProps(){
             laAddSubGroup(p, "properties", "Properties", "Single Property", "property_item", laget_PropertyNodeType, 0,0,-1, laget_PropertyItemFirst, laget_PropertyItemFirst, laget_PropertyItemNext, 0,0,0,0,LA_UDF_IGNORE);
             _LA_PROP_FAILED_ITEM = laAddSubGroup(p, "failed_nodes", "Failed Nodes", "Used To Store UDF Failed Nodes", "property_trash_item",0,0,0,-1, 0,0,0,0,0,0,offsetof(laPropContainer, FailedNodes), LA_UDF_IGNORE);
             _LA_PROP_TRASH_ITEM = laAddSubGroup(p, "trash_bin", "Trash Bin", "Used To Store Unlinked Items", "property_trash_item",0,0,0,-1, 0,0,0,0,0,0,offsetof(laPropContainer, TrashBin), LA_UDF_IGNORE);
-            laAddOperatorProperty(p, "restore_all", "Restore All", "Restore All Trash Items Or Failed Nodes To A User Selected Linkage", "LA_sub_restore_data_block", L'โญฏ', 0);
+            laAddOperatorProperty(p, "restore_all", "Restore All", "Restore All Trash Items Or Failed Nodes To A User Selected Linkage", "LA_sub_restore_data_block", U'โญฏ', 0);
         }
 
         p = laAddPropertyContainer("property_trash_item", "Trash Item", "Single Trash Item", 0,0,0,0,0,0);{
             laAddIntProperty(p, "instance_int", "Instance", "Memory Address Of This Data Block (INT Represent)", 0,0,0,0,0,0,0,0,0,laget_TrashItemInstance, 0,0,0,0,0,0,0,0,0,LA_AS_IDENTIFIER|LA_READ_ONLY);
             laAddSubGroup(p, "instance", "Instance", "Single Memory Address Of This Data Block", "property_trash_item",0,0,0,-1, 0,laget_TrashItemInstance, 0,0,0,0,0,LA_UDF_REFER | LA_UDF_IGNORE);
-            laAddOperatorProperty(p, "restore", "Restore", "Restore Data Block To A User Selected Linkage", "LA_sub_restore_data_block", L'โญฏ', 0);
+            laAddOperatorProperty(p, "restore", "Restore", "Restore Data Block To A User Selected Linkage", "LA_sub_restore_data_block", U'โญฏ', 0);
         }
 
-        p = laAddPropertyContainer("property_package", "Property Package", "Property Package For Data Access (Mainly UI)", L'๐Ÿ”Œ', 0,sizeof(laPropPack), 0,0,0);{
+        p = laAddPropertyContainer("property_package", "Property Package", "Property Package For Data Access (Mainly UI)", U'๐Ÿ”Œ', 0,sizeof(laPropPack), 0,0,0);{
             laAddSubGroup(p, "last_step", "Last Step", "Last Prop Step(Segment)", "property_step",0,0,0,offsetof(laPropPack, LastPs), 0,0,0,0,0,0,0,LA_UDF_REFER | LA_UDF_IGNORE);
         }
         p = laAddPropertyContainer("property_step", "Property Step", "Property Segment Item", 0,0,sizeof(laPropStep), 0,0,0);{
             laAddSubGroup(p, "property", "Property", "Property Reference", "property_item",0,0,0,offsetof(laPropStep, p), 0,0,0,0,0,0,0,LA_UDF_REFER);
         }
-        p = laAddPropertyContainer("detached_prop", "Detached Prop", "Detached Prop", L'๐Ÿ”Œ', 0,sizeof(laSubProp) + 48, lapost_DetachedProp, 0,0);{
+        p = laAddPropertyContainer("detached_prop", "Detached Prop", "Detached Prop", U'๐Ÿ”Œ', 0,sizeof(laSubProp) + 48, lapost_DetachedProp, 0,0);{
             laAddSubGroup(p, "raw_this", "Raw This", "Raw This Pointer", "property_package",0,0,0,offsetof(laProp, DetachedPP.RawThis), 0,0,0,0,0,0,0,LA_UDF_REFER);
             laAddStringProperty(p, "path", "Path", "Data Path", 0,0,0,0,0,0,0,laget_DetachedPropPath, 0,laread_DetachedPropPath, 0);
             laAddStringProperty(p, "rename", "Rename", "Rename", 0,0,0,0,0,offsetof(laProp, Identifier), 0,0,0,laread_DetachedPropRename, 0);
@@ -1432,16 +1432,16 @@ void la_RegisterInternalProps(){
         laAddStringProperty(p, "name", "Object Name", "The Name Of The Object", 0,0,0,0,1, offsetof(tnsObject, Name), 0,0,0,0,LA_AS_IDENTIFIER);
         laAddIntProperty(p,"flags","Flags","Flags",0,0,0,0,0,0,0,0,offsetof(tnsObject,Flags),0,0,0,0,0,0,0,0,0,0,LA_READ_ONLY);
         ep = laAddEnumProperty(p, "show", "Show", "Show object in the viewport", 0,0,0,0,0,offsetof(tnsObject, Show), 0,0,0,0,0,0,0,0,0,0);{
-            laAddEnumItem(ep, "false", "False", "False", L'๐ŸŒ”');
-            laAddEnumItem(ep, "true", "IsTrue", "IsTrue", L'๐ŸŒ‘');
+            laAddEnumItem(ep, "false", "False", "False", U'๐ŸŒ”');
+            laAddEnumItem(ep, "true", "IsTrue", "IsTrue", U'๐ŸŒ‘');
         }
         ep = laAddEnumProperty(p, "show_on_render", "Show On Render", "Show on render", 0,0,0,0,0,offsetof(tnsObject, ShowOnRender), 0,0,0,0,0,0,0,0,0,0);{
-            laAddEnumItem(ep, "false", "False", "False", L'๐Ÿšซ');
-            laAddEnumItem(ep, "true", "IsTrue", "IsTrue", L'๐Ÿ“ท');
+            laAddEnumItem(ep, "false", "False", "False", U'๐Ÿšซ');
+            laAddEnumItem(ep, "true", "IsTrue", "IsTrue", U'๐Ÿ“ท');
         }
         ep = laAddEnumProperty(p, "type", "Type", "Object Type Like Mesh,Camera And Lamp", 0,0,0,0,0,offsetof(tnsObject, Type), 0,0,0,0,0,0,0,0,0,LA_READ_ONLY);{
-            laAddEnumItemAs(ep, "EMPTY", "Empty", "Empty object, not rendered", 0,L'โž•');
-            laAddEnumItemAs(ep, "CAMERA", "Camera", "Camera object, to render a scene", TNS_OBJECT_CAMERA, L'๐Ÿ“ท');
+            laAddEnumItemAs(ep, "EMPTY", "Empty", "Empty object, not rendered", 0,U'โž•');
+            laAddEnumItemAs(ep, "CAMERA", "Camera", "Camera object, to render a scene", TNS_OBJECT_CAMERA, U'๐Ÿ“ท');
             laAddEnumItemAs(ep, "LIGHT", "Lamp", "Lamp object, to illuminate the scene", TNS_OBJECT_LIGHT, 0);
             laAddEnumItemAs(ep, "MESH", "Mesh", "Mesh object, made of verts/edges/faces", TNS_OBJECT_MESH, 0);
         }
@@ -1489,7 +1489,7 @@ void la_RegisterInternalProps(){
         //laAddIntProperty(p, "maxe", "Max Edge", "Max Edge count", 0,0,0,0,0,0,0,0,offsetof(tnsMeshObject, maxe),0,0,0,0,0,0,0,0,0,0,LA_READ_ONLY);
         //laAddIntProperty(p, "maxf", "Max Face", "Max Face count", 0,0,0,0,0,0,0,0,offsetof(tnsMeshObject, maxf),0,0,0,0,0,0,0,0,0,0,LA_READ_ONLY);
     }
-    p = laAddPropertyContainer("tns_camera", "Camera", "Camera object", L'๐Ÿ“ท', 0,sizeof(tnsCamera), 0,0,2);{
+    p = laAddPropertyContainer("tns_camera", "Camera", "Camera object", U'๐Ÿ“ท', 0,sizeof(tnsCamera), 0,0,2);{
         laPropContainerExtraFunctions(p,0,0,0,tnspropagate_Object,0);
         TNS_PC_OBJECT_CAMERA=p;
         laAddStringProperty(p, "name", "Object Name", "The Name Of The Object", 0,0,0,0,1, offsetof(tnsObject, Name), 0,0,0,0,LA_AS_IDENTIFIER);
@@ -1504,7 +1504,7 @@ void la_RegisterInternalProps(){
         laAddFloatProperty(p, "orth_scale", "Scale", "Orthographical Camera Scale", 0,0,"^^", 1000,0.001, 0.1, 1, 0,offsetof(tnsCamera, OrthScale), 0,0,0,0,0,0,0,0,0,0,0);
         laAddOperatorProperty(p, "set_active", "Set Active", "Set this camera as the active one", "TNS_set_active_camera", 0,0);
     }
-    p = laAddPropertyContainer("tns_light", "Light", "Light object", L'๐Ÿ”…', 0,sizeof(tnsLight), 0,0,2);{
+    p = laAddPropertyContainer("tns_light", "Light", "Light object", U'๐Ÿ”…', 0,sizeof(tnsLight), 0,0,2);{
         laPropContainerExtraFunctions(p,0,0,0,tnspropagate_Object,0);
         TNS_PC_OBJECT_LIGHT=p;
         laAddStringProperty(p, "name", "Object Name", "The Name Of The Object", 0,0,0,0,1, offsetof(tnsObject, Name), 0,0,0,0,LA_AS_IDENTIFIER);

+ 1 - 1
resources/la_tns_drivers.c

@@ -155,7 +155,7 @@ void tns_RegisterNodes(){
     laEnumProp *ep;
 
     laCreateOperatorType("LA_add_driver_page", "New Page", "Add a driver page", 0,0,0,OPINV_AddDriverPage,0,'+',0);
-    laCreateOperatorType("LA_driver_rebuild", "Rebuild Drivers", "Rebuild drivers for evaluation",0,0,0,OPINV_RebuildDrivers,0,L'โญฎ',0);
+    laCreateOperatorType("LA_driver_rebuild", "Rebuild Drivers", "Rebuild drivers for evaluation",0,0,0,OPINV_RebuildDrivers,0,U'โญฎ',0);
 
     pc=laAddPropertyContainer("tns_transform_node", "Transform", "Transform objects",0,tnsui_TransformNode,sizeof(tnsTransformNode),lapost_Node,0,1);
     TNS_PC_IDN_TRANSFORM=pc; laPropContainerExtraFunctions(pc,0,0,0,0,laui_DefaultNodeOperationsPropUiDefine);

+ 18 - 18
resources/la_widgets.c

@@ -2997,41 +2997,41 @@ void la_RegisterUiOperatorsBasic(){
     laEnumProp *ep;
 
     laCreateOperatorType("LA_edit_string_copy", "Copy Selection", "Copy selected string to clip board",
-                          OPCHK_EditStringCopySelection, 0, 0, OPINV_EditStringCopySelection, 0, L'๐Ÿ—', LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          OPCHK_EditStringCopySelection, 0, 0, OPINV_EditStringCopySelection, 0, U'๐Ÿ—', LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
 
     laCreateOperatorType("LA_int_array_h_operator", "Int(Horizon) UiItem Operator", "Do Array Valuator Stuff",
-                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_IntArrayHorizon, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_IntArrayHorizon, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     laCreateOperatorType("LA_real_array_h_operator", "Float(Horizon) UiItem Operator", "Do Array Valuator Stuff",
-                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_FloatArrayHorizon, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_FloatArrayHorizon, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     laCreateOperatorType("LA_real_color_operator", "Color(Float) Display UiItem Operator", "Color Display,Click To Set Color",
-                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_FloatColor, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_FloatColor, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     laCreateOperatorType("LA_real_hcy_operator", "HCY Color Picker UiItem Operator", "HCY Color Picker,Click To Set Color",
-                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_ColorHCY, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_ColorHCY, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     laCreateOperatorType("LA_enum_selector_operator", "Enum Selector UiItem Operator", "Do Selector Stuff",
-                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_EnumSelector, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_EnumSelector, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     laCreateOperatorType("LA_button_operator", "Button UiItem Operator", "Execute an Operator",
-                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_Button, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_Button, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     laCreateOperatorType("LA_menu_root_operator", "Menu Root UiItem Operator", "Drop A Menu",
-                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_MenuItem, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_MenuItem, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     laCreateOperatorType("LA_condition_toggle_operator", "Condition +/- Button Operator", "Do Self Condition Function",
-                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_ConditionToggle, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_ConditionToggle, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     laCreateOperatorType("LA_string_operator", "Single Line String Operator", "Do String Modifying Function",
-                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_SingleLineString, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_SingleLineString, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     laCreateOperatorType("LA_string_multi", "Multi Line String Operator", "Do String Modifying Function",
-                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_MultiString, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_MultiString, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     laCreateOperatorType("LA_tab_operator", "Tab Switcher Operator", "Change The Page In The Tab Group",
-                          0, 0, OPEXT_UiItem, OPINV_Tab, OPMOD_TabSelector, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          0, 0, OPEXT_UiItem, OPINV_Tab, OPMOD_TabSelector, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     laCreateOperatorType("LA_collection_operator", "Collection UiItem Operator", "Activate/Deactivate Collection Item(s)",
-                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_Collection, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_Collection, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     laCreateOperatorType("LA_collection_selector_operator", "Collection Dropdown Selector Operator", "Do Selector Stuff",
-                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_CollectionSelector, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_CollectionSelector, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     laCreateOperatorType("LA_column_adjuster", "Column Width Adjuster", "Drag To Set Width of Columns",
-                        0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_ColumnAdjuster, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                        0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_ColumnAdjuster, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     laCreateOperatorType("LA_node_socket", "Node Socket Operator", "Drag to connect node sockets",
-                        0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_NodeSocket, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                        0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_NodeSocket, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     laCreateOperatorType("LA_height_adjuster", "Height Adjuster Operator", "Drag to adjust heights of an instance",
-                        0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_HeightAdjuster, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                        0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_HeightAdjuster, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
     laCreateOperatorType("LA_value_mapper", "Value mapper Operator", "Drag to set value mapping from input to output",
-                        0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_ValueMapper, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                        0, 0, OPEXT_UiItem, OPINV_UiItem, OPMOD_ValueMapper, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
 }
 

+ 30 - 30
resources/la_widgets_viewers.c

@@ -917,21 +917,21 @@ int OPINV_CanvasClick(laOperator *a, laEvent *e){
 
 void la_RegisterViewerOperators(){
     laCreateOperatorType("LA_canvas_operator", "2D View UiItem Operator", "All Visual 2D View Operations Are Called From This Ui",
-                          0, 0, OPEXT_3DOr2DViewUiItem, OPINV_3DOr2DViewUiItem, OPMOD_Canvas, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
+                          0, 0, OPEXT_3DOr2DViewUiItem, OPINV_3DOr2DViewUiItem, OPMOD_Canvas, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL | LA_ACTUATOR_SYSTEM | LA_ACTUATOR_HIDDEN);
 
     laCreateOperatorType("LA_3d_view_camera_zoom", "Camera Zoom", "Let View Camera Zoom In Or Out",
-                          OPCHK_Is3DViewExtra, 0, 0, OPINV_3DViewCameraZoom, 0, L'๐Ÿ”Ž', 0);
+                          OPCHK_Is3DViewExtra, 0, 0, OPINV_3DViewCameraZoom, 0, U'๐Ÿ”Ž', 0);
     laCreateOperatorType("LA_3d_view_camera_rotate", "Camera Rotate", "Let View Camera Rotate Along Local X/Y Axis",
-                          OPCHK_Is3DViewExtra, 0, OPEXT_3DOr2DViewAdjust, OPINV_3DOr2DViewAdjust, OPMOD_3DViewCameraRotate, L'๐Ÿ—˜', LA_EXTRA_TO_PANEL);
+                          OPCHK_Is3DViewExtra, 0, OPEXT_3DOr2DViewAdjust, OPINV_3DOr2DViewAdjust, OPMOD_3DViewCameraRotate, U'๐Ÿ—˜', LA_EXTRA_TO_PANEL);
     laCreateOperatorType("LA_3d_view_camera_move", "Camera Move", "Let View Camera Move Along Local X/Y Axis",
-                          OPCHK_Is3DViewExtra, 0, OPEXT_3DOr2DViewAdjust, OPINV_3DOr2DViewAdjust, OPMOD_3DViewCameraMove, L'๐Ÿคš', LA_EXTRA_TO_PANEL);
+                          OPCHK_Is3DViewExtra, 0, OPEXT_3DOr2DViewAdjust, OPINV_3DOr2DViewAdjust, OPMOD_3DViewCameraMove, U'๐Ÿคš', LA_EXTRA_TO_PANEL);
 
     laCreateOperatorType("LA_2d_view_zoom", "2D Zoom", "Let View 2D Cavans Zoom In Or Out",
-                          OPCHK_Is2DViewExtra, 0, OPEXT_3DOr2DViewAdjust, OPINV_CanvasZoom, OPMOD_CanvasZoom, L'๐Ÿ”Ž', 0);
+                          OPCHK_Is2DViewExtra, 0, OPEXT_3DOr2DViewAdjust, OPINV_CanvasZoom, OPMOD_CanvasZoom, U'๐Ÿ”Ž', 0);
     laCreateOperatorType("LA_2d_view_move", "2D Move", "Let View 2D Cavans Move Along Local X/Y Axis",
-                          OPCHK_Is2DViewExtra, 0, OPEXT_3DOr2DViewAdjust, OPINV_3DOr2DViewAdjust, OPMOD_CanvasMove, L'๐Ÿคš', LA_EXTRA_TO_PANEL);
+                          OPCHK_Is2DViewExtra, 0, OPEXT_3DOr2DViewAdjust, OPINV_3DOr2DViewAdjust, OPMOD_CanvasMove, U'๐Ÿคš', LA_EXTRA_TO_PANEL);
     laCreateOperatorType("LA_2d_view_click", "2D Click", "2D Click",
-                          OPCHK_Is2DViewExtra, 0, OPEXT_3DOr2DViewAdjust, OPINV_CanvasClick, 0, L'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL);
+                          OPCHK_Is2DViewExtra, 0, OPEXT_3DOr2DViewAdjust, OPINV_CanvasClick, 0, U'๐Ÿ–ฆ', LA_EXTRA_TO_PANEL);
 }
 
 
@@ -963,34 +963,34 @@ void la_RegisterUiTypesViewerWidgets(){
         }
         p = laAddEnumProperty(pc, "draw_image_border", "Draw Image Border", "Draw Image Border Using Same Color As Ui Item", 0, 0, 0, 0, 0,
                                offsetof(laCanvasExtra, ImageDrawBorder), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);{
-            laAddEnumItem(p, "no", "No", "Don't Draw Border", L'โ˜');
-            laAddEnumItem(p, "yes", "Yes", "Draw Border", L'โ˜‘');
+            laAddEnumItem(p, "no", "No", "Don't Draw Border", U'โ˜');
+            laAddEnumItem(p, "yes", "Yes", "Draw Border", U'โ˜‘');
         }
         p = laAddEnumProperty(pc, "adaptive_line_width", "Adaptive Line Width", "glLineWith() will follow 2dview zooming", 0, 0, 0, 0, 0,
                                offsetof(laCanvasExtra, AdaptiveLineWidth), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);{
-            laAddEnumItem(p, "constant", "Constant", "Don't change line width", L'โ˜');
-            laAddEnumItem(p, "adaptive", "Adaptive", "Adaptive Line Width", L'โ˜‘');
+            laAddEnumItem(p, "constant", "Constant", "Don't change line width", U'โ˜');
+            laAddEnumItem(p, "adaptive", "Adaptive", "Adaptive Line Width", U'โ˜‘');
         }
         p = laAddEnumProperty(pc, "line_width_warning", "Line Width Warnning", "Show whether line width is acceptable by hardware", 0, 0, 0, 0, 0,
                                offsetof(laCanvasExtra, LineWidthWarning), 0, 0, 0, 0, 0, 0, 0, 0, 0, LA_READ_ONLY);{
-            laAddEnumItem(p, "acceptable", "Acceptable", "Line width is acceptable by graphic hadware", L'โœ”');
-            laAddEnumItem(p, "too_wide", "Too Wide", "Line width is too wide for graphic hadware", L'โŒ');
-            laAddEnumItem(p, "too_thin", "Too Thin", "Line width is too thin for graphic hadware", L'โŒ');
+            laAddEnumItem(p, "acceptable", "Acceptable", "Line width is acceptable by graphic hadware", U'โœ”');
+            laAddEnumItem(p, "too_wide", "Too Wide", "Line width is too wide for graphic hadware", U'โŒ');
+            laAddEnumItem(p, "too_thin", "Too Thin", "Line width is too thin for graphic hadware", U'โŒ');
         }
         p = laAddEnumProperty(pc, "clear_background", "Clear Background", "Clear Background", 0, 0, 0, 0, 0, offsetof(laCanvasExtra, ClearBackground), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);{
-            laAddEnumItem(p, "no", "No", "Don't Clear Background", L'๐ŸŒ”');
-            laAddEnumItem(p, "yes", "Yes", "Clear Background", L'๐ŸŒ‘');
+            laAddEnumItem(p, "no", "No", "Don't Clear Background", U'๐ŸŒ”');
+            laAddEnumItem(p, "yes", "Yes", "Clear Background", U'๐ŸŒ‘');
         }
         p = laAddEnumProperty(pc, "draw_cursor", "Show Cursor", "Show Cursor", 0, 0, 0, 0, 0, offsetof(laCanvasExtra, DrawCursor), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);{
-            laAddEnumItem(p, "no", "No", "Don't draw cursor", L'๐Ÿ–ฆ');
-            laAddEnumItem(p, "yes", "Yes", "Draw cursor", L'โž•');
+            laAddEnumItem(p, "no", "No", "Don't draw cursor", U'๐Ÿ–ฆ');
+            laAddEnumItem(p, "yes", "Yes", "Draw cursor", U'โž•');
         }
         laAddFloatProperty(pc, "pan", "Pan", "Pan On X,Y Axis", 0, "X,Y", "px", 0, 0, 1, 0, 0, offsetof(laCanvasExtra, PanX), 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0);
         laAddFloatProperty(pc, "zoom", "Zoom", "Zoom Factor On X,Y Axis", 0, "X,Y", 0, 0, 0, 0.01, 1, 0, offsetof(laCanvasExtra, ZoomX), 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0);
         //laAddSubGroup(pc, "Template", "Template Used To Draw 2D Stuff", "la_2d_view_template",0, 0, 0, -offsetof(laCanvasExtra, Template), 0, 0, 0, 0, 0, 0, 0, 0, LA_UDF_REFER);
-        laAddOperatorProperty(pc, "zoom", "Zoom", "Zoom 2D Canvans", "LA_2d_view_zoom", L'๐Ÿ”Ž', 0);
-        laAddOperatorProperty(pc, "move", "Move", "Move 2D Canvans", "LA_2d_view_move", L'๐Ÿคš', 0);
-        laAddOperatorProperty(pc, "click", "Click", "Click On 2D Canvans", "LA_2d_view_click", L'๐Ÿคš', 0);
+        laAddOperatorProperty(pc, "zoom", "Zoom", "Zoom 2D Canvans", "LA_2d_view_zoom", U'๐Ÿ”Ž', 0);
+        laAddOperatorProperty(pc, "move", "Move", "Move 2D Canvans", "LA_2d_view_move", U'๐Ÿคš', 0);
+        laAddOperatorProperty(pc, "click", "Click", "Click On 2D Canvans", "LA_2d_view_click", U'๐Ÿคš', 0);
         laAddSubGroup(pc, "parent_ui", "Parent UI", "The Ui That Holds The Viewer", "ui_item",0, 0, 0, offsetof(laCanvasExtra, ParentUi), 0, 0, 0, 0, 0, 0, 0, LA_UDF_REFER);
     }
     km = &ct->KeyMapper;
@@ -1006,12 +1006,12 @@ void la_RegisterUiTypesViewerWidgets(){
         laAddIntProperty(pc, "grid_size", "Grid Size", "Floor Grid Size Per Cell", 0, 0, "Unit", 100, 1, 1, 10, 0, offsetof(laCanvasExtra, GridSize), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
         laAddIntProperty(pc, "grid_span", "Grid Span", "How Many Grids Are Drawn", 0, 0, 0, 25, 1, 1, 10, 0, offsetof(laCanvasExtra, GridSpan), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
         p = laAddEnumProperty(pc, "show_axis", "Show Axis", "Show Global X,Y,Z Axis", LA_WIDGET_ENUM_CYCLE, "X,Y,Z", 0, 0, 0, offsetof(laCanvasExtra, ShowAxis), 0, 0, 3, 0, 0, 0, 0, 0, 0, 0);{
-            laAddEnumItem(p, "HIDDEN", "Hidden", "Current Axis Is Hidden", L'๐ŸŒ”');
-            laAddEnumItem(p, "SHOWN", "Shown", "Current Axis Is Shown", L'๐ŸŒ‘');
+            laAddEnumItem(p, "HIDDEN", "Hidden", "Current Axis Is Hidden", U'๐ŸŒ”');
+            laAddEnumItem(p, "SHOWN", "Shown", "Current Axis Is Shown", U'๐ŸŒ‘');
         }
         p = laAddEnumProperty(pc, "show_floor_grid", "Show Floor Grid", "Show Floor Grid", 0,  0, 0, 0, 0, offsetof(laCanvasExtra, ShowFloorGrid), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);{
-            laAddEnumItem(p, "HIDDEN", "Hidden", "Current Axis Is Hidden", L'๐ŸŒ”');
-            laAddEnumItem(p, "SHOWN", "Shown", "Current Axis Is Shown", L'๐ŸŒ‘');
+            laAddEnumItem(p, "HIDDEN", "Hidden", "Current Axis Is Hidden", U'๐ŸŒ”');
+            laAddEnumItem(p, "SHOWN", "Shown", "Current Axis Is Shown", U'๐ŸŒ‘');
         }
         p = laAddEnumProperty(pc, "select_mode", "Select Mode", "Select by vertices or edges", 0, 0, 0, 0, 0, offsetof(laCanvasExtra, SelectMode), 0, laset_CanvasSelectMode, 0, 0, 0, 0, 0, 0, 0, 0);{
             laAddEnumItemAs(p, "VERTS", "Verts", "Select by vertices", LA_CANVAS_SELECT_MODE_VERTS,0);
@@ -1022,13 +1022,13 @@ void la_RegisterUiTypesViewerWidgets(){
             laAddEnumItemAs(p, "ON", "On", "Select through stuff", LA_CANVAS_SELECT_THROUGH_ON,0);
         }
         laAddIntProperty(pc, "height_coeff", "Ui Height", "Ui Height Coefficiency Entry", 0, 0, "Rows", 100, -100, 1, 0, 0, offsetof(laCanvasExtra, HeightCoeff), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-        laAddOperatorProperty(pc, "zoom", "Zoom", "Zoom Viewing Camera", "LA_3d_view_camera_zoom", L'๐Ÿ”Ž', 0);
-        laAddOperatorProperty(pc, "rotate", "Rotate", "Rotate Viewing Camera", "LA_3d_view_camera_rotate", L'๐Ÿ—˜', 0);
-        laAddOperatorProperty(pc, "move", "Move", "Move Viewing Camera", "LA_3d_view_camera_move", L'๐Ÿคš', 0);
+        laAddOperatorProperty(pc, "zoom", "Zoom", "Zoom Viewing Camera", "LA_3d_view_camera_zoom", U'๐Ÿ”Ž', 0);
+        laAddOperatorProperty(pc, "rotate", "Rotate", "Rotate Viewing Camera", "LA_3d_view_camera_rotate", U'๐Ÿ—˜', 0);
+        laAddOperatorProperty(pc, "move", "Move", "Move Viewing Camera", "LA_3d_view_camera_move", U'๐Ÿคš', 0);
         //laAddSubGroup(pc, "Viewing Camera", "Unique Camera That Is Used To Draw 3D Viewport", "tns_object",0, 0, 0, -offsetof(laCanvasExtra, ViewingCamera), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
         laAddSubGroup(pc, "parent_ui", "Parent Ui", "Parent Ui (Mostly Used To Determin Viewport Size)", "ui_item",0, 0, 0, offsetof(laCanvasExtra, ParentUi), 0, 0, 0, 0, 0, 0, 0, LA_UDF_REFER);
-        laAddOperatorProperty(pc, "align_camera_to_view", "Align Active Camera To View", "Align Active Camera To View", "TNS_align_camera_to_view", L'๐ŸŽฅ', 0);
-        laAddOperatorProperty(pc, "align_view_to_camera", "Align View To Active Camera", "Align View To Active Camera", "TNS_align_view_to_camera", L'๐ŸŽฅ', 0);
+        laAddOperatorProperty(pc, "align_camera_to_view", "Align Active Camera To View", "Align Active Camera To View", "TNS_align_camera_to_view", U'๐ŸŽฅ', 0);
+        laAddOperatorProperty(pc, "align_view_to_camera", "Align View To Active Camera", "Align View To Active Camera", "TNS_align_view_to_camera", U'๐ŸŽฅ', 0);
         laAddOperatorProperty(pc, "_this_M_delete", "Delete", "Delete parts of mesh", "M_delete", 0, 0);
         laAddOperatorProperty(pc, "_this_M_make_parent", "Make parent", "Parent objects to active objects or unparent selected ones", "M_make_parent", 0, 0);
         laAddOperatorProperty(pc, "_this_M_unparent", "Unparent", "Unparent selected objects", "M_unparent", 0, 0);