*/}}
Просмотр исходного кода

Event handling of the lua script

YimingWu 3 месяцев назад
Родитель
Сommit
69c964207e
10 измененных файлов с 252 добавлено и 180 удалено
  1. 18 18
      la_animation.c
  2. 7 1
      la_interface.h
  3. 15 9
      la_kernel.c
  4. 2 0
      la_tns.h
  5. 38 4
      la_tns_kernel.c
  6. 12 12
      resources/la_modelling.c
  7. 46 46
      resources/la_operators.c
  8. 24 0
      resources/la_tnslibs.cpp
  9. 72 72
      resources/la_widgets.c
  10. 18 18
      resources/la_widgets_viewers.c

+ 18 - 18
la_animation.c

@@ -478,34 +478,34 @@ int LAMOD_AnimationActionsCanvas(laOperator *a, laEvent *e){
     int Channels=aa?lstCountElements(&aa->Channels):0;
     int Modal=0; int mid=((W-lr)/2);
     
-    if(e->Type==LA_M_MOUSE_DOWN){
+    if(e->type==LA_M_MOUSE_DOWN){
         ex->UiMode=1; ex->ClickedX=e->x; ex->ClickedY=e->y; Modal=1; ex->Dragging=10;
-    }elif(e->Type==LA_M_MOUSE_UP || e->Type==LA_L_MOUSE_UP){
+    }elif(e->type==LA_M_MOUSE_UP || e->type==LA_L_MOUSE_UP){
         ex->UiMode=0; Modal=1; ex->Dragging=0; ex->TargetIndexVali=0;
     }
     if(ex->UiMode==1){
-        if(e->Type&LA_MOUSE_EVENT){
+        if(e->type&LA_MOUSE_EVENT){
             ex->PanY-=e->y-ex->ClickedY; ex->PanX-=e->x-ex->ClickedX;
             ex->ClickedX=e->x; ex->ClickedY=e->y; Modal=1;
         }
     }elif(ex->UiMode==2){ Modal=1;
-        if(e->Type&LA_MOUSE_EVENT){
+        if(e->type&LA_MOUSE_EVENT){
             ex->LW=e->x-ui->L+LA_SEAM_W; ex->ClickedX=e->x; ex->ClickedY=e->y;
             if(ex->LW<LA_RH*3 && ex->LW>=LA_RH/2){ ex->LW=LA_RH*3; }
             if(ex->LW<LA_RH/2 && ex->Dragging!=12){ ex->ShowLegend=0; ex->LW=0; }
             if(ex->LW<LA_RH*3){ ex->LW=LA_RH*3;}
         }
     }elif(ex->UiMode==3){ Modal=1;
-        if(e->Type&LA_MOUSE_EVENT){ ex->ClickedX=e->x; ex->ClickedY=e->y;
+        if(e->type&LA_MOUSE_EVENT){ ex->ClickedX=e->x; ex->ClickedY=e->y;
             int SetFrame=(real)(e->x-tl+ex->PanX)/ex->ZoomX/FW;
             la_AnimationActionSetOwnFrame(aa,SetFrame);
         }
     }elif(ex->UiMode==4){ Modal=1;
-        if(e->Type==LA_R_MOUSE_DOWN || (e->Type==LA_ESCAPE_DOWN)){ ex->UiMode=0; ex->Dragging=0;
+        if(e->type==LA_R_MOUSE_DOWN || (e->type==LA_ESCAPE_DOWN)){ ex->UiMode=0; ex->Dragging=0;
             la_ActionRestoreKeyOriginalAt(aa); laNotifyUsers("la.animation.current_action");
-        }elif(e->Type==LA_L_MOUSE_DOWN){ la_ActionRemoveDuplicatedFrames(aa);
+        }elif(e->type==LA_L_MOUSE_DOWN){ la_ActionRemoveDuplicatedFrames(aa);
             laNotifyUsers("la.animation.current_action"); ex->UiMode=0; ex->Dragging=0;
-        }elif(e->Type&LA_MOUSE_EVENT){ Modal=1;
+        }elif(e->type&LA_MOUSE_EVENT){ Modal=1;
             int ToFrame=(real)(e->x-tl+ex->PanX)/ex->ZoomX/FW,FromFrame=(real)(ex->ClickedX-tl+ex->PanX)/ex->ZoomX/FW;
             la_ActionMoveSelectedFrames(aa,ToFrame-FromFrame); laNotifyUsers("la.animation.current_action");
         }
@@ -514,34 +514,34 @@ int LAMOD_AnimationActionsCanvas(laOperator *a, laEvent *e){
     int MaxDN=LA_RH*(Channels+1)-H+bt->TP+bt->BP; if(MaxDN<0) MaxDN=0;
     if(!Modal){
         if(e->x<=lr){
-            if(e->Type==LA_MOUSE_WHEEL_DOWN){ ex->PanY+=LA_RH*MAIN.ScrollingSpeed; Modal=1; }
-            if(e->Type==LA_MOUSE_WHEEL_UP){ ex->PanY-=LA_RH*MAIN.ScrollingSpeed; Modal=1; }
+            if(e->type==LA_MOUSE_WHEEL_DOWN){ ex->PanY+=LA_RH*MAIN.ScrollingSpeed; Modal=1; }
+            if(e->type==LA_MOUSE_WHEEL_UP){ ex->PanY-=LA_RH*MAIN.ScrollingSpeed; Modal=1; }
             if(e->x>=lr-LA_SEAM_W*2){ if(!ex->TargetIndexVali){ ex->TargetIndexVali=1; Modal=1; }
-                if(e->Type==LA_L_MOUSE_DOWN){
+                if(e->type==LA_L_MOUSE_DOWN){
                     ex->UiMode=2; ex->ClickedX=e->x; ex->ClickedY=e->y; Modal=1; ex->Dragging=10; Modal=1;
                 }
             }else{ if(ex->TargetIndexVali){ ex->TargetIndexVali=0; Modal=1; } }
         }elif(aa){
             if((!ex->ShowLegend)&&e->x<=ll+LA_SEAM_W*2){
                 if(!ex->TargetIndexVali){ ex->TargetIndexVali=1; Modal=1; }
-                if(e->Type==LA_L_MOUSE_DOWN){ ex->LW=LA_RH*4; ex->Dragging=12; ex->ShowLegend=1; Modal=1; ex->UiMode=2; ex->TargetIndexVali=1; }
+                if(e->type==LA_L_MOUSE_DOWN){ ex->LW=LA_RH*4; ex->Dragging=12; ex->ShowLegend=1; Modal=1; ex->UiMode=2; ex->TargetIndexVali=1; }
             }else{ if(ex->TargetIndexVali){ ex->TargetIndexVali=0; Modal=1; } }
-            if(e->Type==LA_MOUSE_WHEEL_DOWN){ ex->ZoomX*=0.9; ex->PanX+=mid; ex->PanX*=0.9; ex->PanX-=mid; Modal=1; }
-            elif(e->Type==LA_MOUSE_WHEEL_UP){ ex->ZoomX*=1.1; ex->PanX+=mid; ex->PanX*=1.1; ex->PanX-=mid; Modal=1; }
-            elif(e->Type==LA_L_MOUSE_DOWN){
+            if(e->type==LA_MOUSE_WHEEL_DOWN){ ex->ZoomX*=0.9; ex->PanX+=mid; ex->PanX*=0.9; ex->PanX-=mid; Modal=1; }
+            elif(e->type==LA_MOUSE_WHEEL_UP){ ex->ZoomX*=1.1; ex->PanX+=mid; ex->PanX*=1.1; ex->PanX-=mid; Modal=1; }
+            elif(e->type==LA_L_MOUSE_DOWN){
                 ex->UiMode=3; int SetFrame=(real)(e->x-tl+ex->PanX)/ex->ZoomX/FW;
                 la_AnimationActionSetOwnFrame(aa,SetFrame); Modal=1;
-            }elif(e->Type==LA_R_MOUSE_DOWN){
+            }elif(e->type==LA_R_MOUSE_DOWN){
                 int row=(e->y-ui->U-bt->BM-LA_RH)/LA_RH; real at=(real)(e->x-tl+ex->PanX)/ex->ZoomX/FW;
                 if(!(e->SpecialKeyBit&LA_KEY_SHIFT)){ la_ActionDeselectFrames(aa); }
                 la_ActionSelectFrame(aa,row,at,ex->ZoomX);
                 laNotifyUsers("la.animation.current_action");
-            }elif(e->Type==LA_KEY_DOWN&&e->key=='g'){
+            }elif(e->type==LA_KEY_DOWN&&e->key=='g'){
                 int any=la_ActionSaveKeyOriginalAt(aa);
                 if(any){ ex->ClickedX=e->x; ex->ClickedY=e->y; ex->UiMode=4; Modal=1; ex->Dragging=13;
                     laNotifyUsers("la.animation.current_action");
                 }
-            }elif(e->Type==LA_KEY_DOWN&&e->key=='x'){
+            }elif(e->type==LA_KEY_DOWN&&e->key=='x'){
                 int any=la_ActionDeleteSelectedFrames(aa);
                 if(any){
                     laNotifyUsers("la.animation.current_action");

+ 7 - 1
la_interface.h

@@ -191,7 +191,9 @@ typedef void (*laCleanupF)();
 STRUCTURE(laEvent){
     laListItem Item;
 
-    int Type;
+    laWindow* window;
+
+    int type;
     int state;
     int x, y;
     int key;
@@ -206,6 +208,8 @@ STRUCTURE(laEvent){
     void *Localized;
 };
 
+typedef int (*laInputProcessF)(laEvent* e);
+
 NEED_STRUCTURE(laWindow)
 NEED_STRUCTURE(laRoot)
 NEED_STRUCTURE(laPanel)
@@ -323,6 +327,7 @@ STRUCTURE(LA){
     u8bit LastControllerKey, LastControllerKeyDevice, ControllerHasNewKey;
     u8bit LastControllerAxis, LastControllerAxisDevice, ControllerHasNewAxis;
 
+    laInputProcessF InputProcess;
     laListHandle Windows;
     laListHandle WastedPanels;
 
@@ -2134,6 +2139,7 @@ void laAddExtraPreferencePath(const char* path);
 void laAddExtraPreferencePage(const char* name, laUiDefineFunc Func);
 void laSetFrameCallbacks(laPreFrameF PreFrame, laPreDrawF PreDraw, laPostFrameF PostFrame);
 void laSetCleanupCallback(laCleanupF Cleanup);
+void laSetInputProcessCallback(laInputProcessF InputProcess);
 void laSetMenuBarTemplates(laUiDefineFunc MenuButtons, laUiDefineFunc MenuExtras, const char* ProgramName);
 void laSetAboutTemplates(laUiDefineFunc AboutContent, laUiDefineFunc AboutVersion, laUiDefineFunc AboutAuthor);
 void laSetPreferenceTemplates(laUiDefineFunc PreferencePageDisplay, laUiDefineFunc PreferencePageInput, laUiDefineFunc PreferencePageResource, laUiDefineFunc PreferencePageTheme);

+ 15 - 9
la_kernel.c

@@ -1579,6 +1579,7 @@ void la_SaveEvent(SYSWINDOW hwnd, laEvent *e, int use_last_pos){
     la_MakeSpecialKeyBit(hwnd,wnd,e,use_last_pos);
     if(use_last_pos){ e->x=MAIN.evLastX; e->y=MAIN.evLastY; }
 
+    e->window = wnd;
     e->Twist=MAIN.StylusTwist; e->HasTwist = MAIN.StylusHasTwist;
     e->Pressure=MAIN.IsPen?(MAIN.PointerIsEraser?MAIN.EraserPressure:MAIN.StylusPressure):0.5f;
     e->Orientation=MAIN.PointerIsEraser?MAIN.EraserOrientation:MAIN.StylusOrientation;
@@ -1590,19 +1591,19 @@ void la_SaveEvent(SYSWINDOW hwnd, laEvent *e, int use_last_pos){
     laMappingRequestEval();
 };
 void la_SendKeyboardEvent(SYSWINDOW hwnd, int type, int key){
-    laEvent *e = memAcquireSimple(sizeof(laEvent)); e->Type = type; e->key = tolowerGuarded(key);
+    laEvent *e = memAcquireSimple(sizeof(laEvent)); e->type = type; e->key = tolowerGuarded(key);
     la_SaveEvent(hwnd, e, 1);
 };
 void la_SendInputEvent(SYSWINDOW hwnd, uint32_t Input){
     laEvent *e = memAcquireSimple(sizeof(laEvent));
-    e->Type = LA_INPUT; e->Input=Input;
+    e->type = LA_INPUT; e->Input=Input;
 
     la_SaveEvent(hwnd, e, 1);
 }
 void la_SendEmptyEvent(SYSWINDOW hwnd){
     laEvent *e = memAcquireSimple(sizeof(laEvent));
 
-    e->Type = LA_EMPTY;
+    e->type = LA_EMPTY;
 
     la_SaveEvent(hwnd, e, 1);
 }
@@ -1662,13 +1663,13 @@ void la_SendMouseEvent(SYSWINDOW hwnd, int type, int x, int y){
     //}
 
     laEvent *e = memAcquireSimple(sizeof(laEvent));
-    e->Type = type; e->x = x; e->y = y;
+    e->type = type; e->x = x; e->y = y;
     la_SaveEvent(hwnd, e, 0);
     MAIN.evLastX=x; MAIN.evLastY=y;
 };
 void la_SendTimerEvent(SYSWINDOW hwnd, int type){
     laEvent *e = memAcquireSimple(sizeof(laEvent));
-    e->Type = type;
+    e->type = type;
     la_SaveEvent(hwnd, e, 1);
 };
 void laRetriggerOperators(){
@@ -1681,6 +1682,9 @@ void laSetFrameCallbacks(laPreFrameF PreFrame, laPreDrawF PreDraw, laPostFrameF
 void laSetCleanupCallback(laCleanupF Cleanup){
     MAIN.Cleanup=Cleanup;
 }
+void laSetInputProcessCallback(laInputProcessF InputProcess){
+    MAIN.InputProcess=InputProcess;
+}
 
 //====================================================================================================
 
@@ -6538,10 +6542,10 @@ laKeyMapItem *laAssignNewKey(laKeyMapper *km, char *Path, char *Operation, char
 int laKeyMapExecuteEvent(laOperator *from, laKeyMapper *km, laEvent *e){
     laKeyMapItem *kmi; int inv=0;
     char *instructions;
-    if(e->Type==LA_MOUSEMOVE) return 0;
+    if(e->type==LA_MOUSEMOVE) return 0;
     for (kmi = km->Items.pFirst; kmi; kmi = kmi->Item.pNext){
         if (kmi->SpecialKeyBits == e->SpecialKeyBit &&
-            kmi->EventType == e->Type && ((kmi->Key == e->Input) || (kmi->Key == e->key))){
+            kmi->EventType == e->type && ((kmi->Key == e->Input) || (kmi->Key == e->key))){
             instructions = kmi->Instructions ? kmi->Instructions->Ptr : 0;
             if (kmi->Operation)
                 laInvoke(from, kmi->Operation->Ptr, e, 0, instructions, 0);
@@ -6556,10 +6560,10 @@ int laKeyMapExecuteEventEx(laOperator *from, laPropPack *UiExtra, laKeyMapper *k
     laKeyMapItem *kmi;
     char *instructions;
     int inv = 0; int lx = -1, ly = -1;
-    if(e->Type==LA_MOUSEMOVE) return 0;
+    if(e->type==LA_MOUSEMOVE) return 0;
     for (kmi = km->Items.pFirst; kmi; kmi = kmi->Item.pNext){
         if (kmi->SpecialKeyBits == e->SpecialKeyBit &&
-            kmi->EventType == e->Type && ((kmi->Key == e->Input) || (kmi->Key == e->key))){
+            kmi->EventType == e->type && ((kmi->Key == e->Input) || (kmi->Key == e->key))){
             if (e->Localized){
                 lx = e->x;
                 ly = e->y;
@@ -7334,6 +7338,8 @@ int la_HandleSingleEvent(laEvent *e, laListHandle *Operators){
     int Result = 0;
     laConfirmData *ConfirmData = 0, *NextConfirmData = 0;
 
+    if(MAIN.InputProcess){ MAIN.InputProcess(e); }
+
     a = Operators->pFirst;
 
     la_DestroyConfirmData(&MAIN.InvokeConfirmData);

+ 2 - 0
la_tns.h

@@ -1280,6 +1280,8 @@ void tnsFreeEvaluatedArray(tnsEvaluateData* ed);
 void tnsEvaluateThisObject(tnsObject *o, tnsEvaluateData* ed);
 void tnsSetObjectTreeEvaluationArgs(tnsObject* from, tnsObject* Active, int FillOutline, int FillSelectionID, int W, int H);
 void tnsEvaluateObjectTree(tnsObject* from, tnsEvaluateData* UseED, int EvaluatePlay);
+NEED_STRUCTURE(laEvent);
+int tnsEvaluateObjectTreeEvent(tnsEvaluateData* ed_play, tnsEvaluatedNode* en, laEvent* e);
 void tnsAddEvaluatedInstance(tnsEvaluateData* ed, tnsObject* ob, tnsDrawEvaluatedInstanceF Draw, int Layer, 
     int IsActive, int MeshSelectionType, int InstanceSelectionID);
 void tnsDrawLayer(tnsEvaluateData* ed,int Layer,void* CustomData);

+ 38 - 4
la_tns_kernel.c

@@ -4016,12 +4016,17 @@ void tnsFreePlayDuplicate(tnsObject* o){
 
 #ifdef LA_WITH_LUAJIT
 
+void tnsLuaPushTypedPointer(lua_State* L, char* ct, void* data){
+    lua_getglobal(L,"ffi"); lua_getfield(L,-1,"cast"); lua_pushstring(L,ct); lua_pushlightuserdata(L,data);
+    lua_call(L,2,1); lua_remove(L,-2);
+}
 void tnsLuaSetObject(lua_State* L, tnsObject*o){
-    lua_getglobal(L,"ffi"); lua_getfield(L,-1,"cast"); lua_pushstring(L,"struct tnsObject *"); lua_pushlightuserdata(L,o);
-    lua_call(L,2,1); lua_remove(L,-2); lua_setfield(L,-2,"object");
+    tnsLuaPushTypedPointer(L,"struct tnsObject *",o); lua_setfield(L,-2,"object");
 }
 void tnsLuaInit(lua_State* L){
-    if(luaL_loadstring(L, LA_TNS_LIB_COMMON) || lua_pcall(L, 0, 0, 0)){ logPrint("    Error loading tns lua libs\n"); };
+    if(luaL_loadstring(L, LA_TNS_LIB_COMMON) || lua_pcall(L, 0, 0, 0)){ logPrint("    Error loading tns lua libs\n");
+        lua_getglobal(L,"log"); lua_insert(L,-2); if(lua_pcall(L,1,0,0)){ lua_pop(L,1); }
+    };
     lua_settop(L,0);
     lua_newtable(L); lua_setglobal(L,"scene");
     lua_getglobal(L,"scene"); lua_pushstring(L,"nodes"); lua_newtable(L); lua_settable(L,1);
@@ -4079,7 +4084,26 @@ void tnsLuaRunNode(lua_State* L, tnsEvaluatedNode* en, char* func, tnsObject* ro
     lua_pushnil(L); while(lua_next(L,-2)){
         lua_getfield(L,-1,func); if((!lua_isnil(L,-1))&&lua_isfunction(L,-1)){
             lua_pushvalue(L,-2); if(lua_pcall(L,1,0,0)){ lua_getglobal(L,"log"); lua_insert(L,-2); if(lua_pcall(L,1,0,0)){ lua_pop(L,1); } }
-        }
+        }else{ lua_pop(L,1); }
+        lua_pop(L,1);
+    }
+    lua_pop(L,3);
+}
+int tnsLuaRunNodeEvent(lua_State* L, tnsEvaluatedNode* en, tnsObject* object, laEvent* e){ lua_settop(L,0); int index=en->LuaID;
+    if(!en->LuaLoaded){ return 0; }
+    lua_getglobal(L,"scene"); lua_getfield(L,1,"nodes");
+    lua_pushinteger(L,index); lua_gettable(L,-2); lua_setfield(L,1,"node");
+    lua_getfield(L,1,"node"); tnsLuaSetObject(L,object);
+    lua_getfield(L,-1,"scripts");
+    if(lua_isnil(L,-1) || (!lua_istable(L,-1))){ return 0; }
+
+    lua_pushnil(L); while(lua_next(L,-2)){
+        lua_getfield(L,-1,"input"); if((!lua_isnil(L,-1))&&lua_isfunction(L,-1)){
+            lua_pushvalue(L,-2); tnsLuaPushTypedPointer(L,"laEvent*",e);
+            if(lua_pcall(L,2,1,0)){ lua_getglobal(L,"log"); lua_insert(L,-2); if(lua_pcall(L,1,0,0)){ lua_pop(L,1); } lua_pop(L,1); continue; }
+            int result = lua_tonumber(L,-1); lua_pop(L,1);
+            if (result!=0){ lua_settop(L,0); return 1; }
+        }else{ lua_pop(L,1); }
         lua_pop(L,1);
     }
     lua_pop(L,3);
@@ -4239,6 +4263,16 @@ void tnsEvaluateObjectTree(tnsObject* from, tnsEvaluateData* UseED, int Evaluate
         //if(ed->Scene){ tnsPrintEvaluatedNode(ed->Scene->Root,0);}
     }
 }
+int tnsEvaluateObjectTreeEvent(tnsEvaluateData* ed_play, tnsEvaluatedNode* en, laEvent* e){
+    int stop=0;
+    for(tnsEvaluatedNode* lip=en->Children.pFirst;lip;lip=lip->Item.pNext){
+        if(tnsEvaluateObjectTreeEvent(ed_play, lip, e)){ stop=1; }
+    }
+    //tnsRunNode(en,"input",en->Target);
+#ifdef LA_WITH_LUAJIT
+    if(!stop){ return tnsLuaRunNodeEvent(ed_play->L,en,en->Target,e); }
+#endif
+}
 void tnsDrawLayer(tnsEvaluateData* ed,int Layer,void* CustomData){
     tnsEvaluatedInstance* ei; int next=0;
     int No2D=Layer&TNS_EVAL_LAYER_NO_2D; int Do2D=Layer&TNS_EVAL_LAYER_SHOW_2D;

+ 12 - 12
resources/la_modelling.c

@@ -427,9 +427,9 @@ int OPMOD_Select(laOperator *a, laEvent *e){
     tnsObject* o=root->Active; tnsMeshObject* mo=o; tnsShapeObject* so=o;
     MSelectExtra* se=a->CustomData;
 
-    if(e->Type==LA_L_MOUSE_DOWN){ se->InSelect=1; ex->DrawCursor=2; ex->ClickedX=e->x; ex->ClickedY=e->y; laRedrawCurrentPanel(); }
-    if(e->Type&LA_MOUSE_EVENT){ ex->OnX=e->x; ex->OnY=e->y; laRedrawCurrentPanel(); }
-    if(e->Type==LA_R_MOUSE_DOWN || (e->Type == LA_KEY_DOWN && e->key==LA_KEY_ESCAPE)){
+    if(e->type==LA_L_MOUSE_DOWN){ se->InSelect=1; ex->DrawCursor=2; ex->ClickedX=e->x; ex->ClickedY=e->y; laRedrawCurrentPanel(); }
+    if(e->type&LA_MOUSE_EVENT){ ex->OnX=e->x; ex->OnY=e->y; laRedrawCurrentPanel(); }
+    if(e->type==LA_R_MOUSE_DOWN || (e->type == LA_KEY_DOWN && e->key==LA_KEY_ESCAPE)){
         ex->DrawCursor=0; la_FreeSelectData(se->sd); memFree(se); laNotifyUsers("tns.world"); return LA_FINISHED;
     }
 
@@ -438,7 +438,7 @@ int OPMOD_Select(laOperator *a, laEvent *e){
     int Remove=e->SpecialKeyBit&LA_KEY_ALT; if(Remove) DeselectAll=0;
 
     int is_geo=0;
-    if(se->InSelect && e->Type==LA_L_MOUSE_UP){
+    if(se->InSelect && e->type==LA_L_MOUSE_UP){
         if(o && o->Type==TNS_OBJECT_MESH && mo->Mode==TNS_MESH_EDIT_MODE){ is_geo=1;
             la_DoMeshSelect(mo, 0, ex->SelectMode, DeselectAll, 0, 0);
             int len; int* ids=la_SelectGetBox(se->sd, ex->ClickedX-ui->L, ex->ClickedY-ui->U, e->x-ui->L, e->y-ui->U, &len);
@@ -942,7 +942,7 @@ int OPMOD_Transformation(laOperator *a, laEvent *e){
         td->UserDeltaVal=fabs(td->UserDeltaVal); for(char*pc=entered;*pc;pc++){ if(*pc=='-') td->UserDeltaVal=-td->UserDeltaVal; } free(entered); 
     }
 
-    if(e->Type==LA_KEY_DOWN){
+    if(e->type==LA_KEY_DOWN){
         int Other=1; if(e->SpecialKeyBit&LA_KEY_SHIFT){ Other=-1; }
         if(e->key=='x'){ td->LockAxis[0]=Other*((Other<0&&td->LockAxis[0])?td->LockAxis[0]:!td->LockAxis[0]); td->LockAxis[1]=td->LockAxis[2]=0; }
         if(e->key=='y'){ td->LockAxis[1]=Other*((Other<0&&td->LockAxis[1])?td->LockAxis[1]:!td->LockAxis[1]); td->LockAxis[0]=td->LockAxis[2]=0; }
@@ -953,7 +953,7 @@ int OPMOD_Transformation(laOperator *a, laEvent *e){
         if(e->key==' '){ td->UseLocal=!td->UseLocal; }
     }
 
-    if(e->Type==LA_MOUSEMOVE || e->Type==LA_KEY_DOWN){
+    if(e->type==LA_MOUSEMOVE || e->type==LA_KEY_DOWN){
         switch(td->mode){
             case LA_TRANSFORM_MODE_GRAB: la_ApplyTranslation(td,e->x-ex->ClickedX, e->y-ex->ClickedY); break;
             case LA_TRANSFORM_MODE_SCALE: la_ApplyScale(td,e->x-ui->L, e->y-ui->U); break;
@@ -964,11 +964,11 @@ int OPMOD_Transformation(laOperator *a, laEvent *e){
         laNotifyUsers("tns.world");
     }
 
-    if(e->Type==LA_L_MOUSE_DOWN || (e->Type==LA_KEY_DOWN && e->key==LA_KEY_ENTER)){ ex->DrawCursor=0;
+    if(e->type==LA_L_MOUSE_DOWN || (e->type==LA_KEY_DOWN && e->key==LA_KEY_ENTER)){ ex->DrawCursor=0;
         la_RecordTransformDifferences(td);
         laNotifyUsers("tns.world"); la_FreeTransformData(td); return LA_FINISHED;
     }
-    if(e->Type==LA_R_MOUSE_DOWN || e->Type==LA_ESCAPE_DOWN){ ex->DrawCursor=0;
+    if(e->type==LA_R_MOUSE_DOWN || e->type==LA_ESCAPE_DOWN){ ex->DrawCursor=0;
         la_CancelTransformObjects(td); laNotifyUsers("tns.world"); la_FreeTransformData(td); return LA_FINISHED;
     }
 
@@ -1793,11 +1793,11 @@ int OPMOD_Knife(laOperator *a, laEvent *e){
     tnsMeshObject* mo=root->Active;
     int changed=0;
 
-    if(e->Type==LA_R_MOUSE_DOWN || (e->Type == LA_KEY_DOWN && e->key==LA_KEY_ESCAPE)){
+    if(e->type==LA_R_MOUSE_DOWN || (e->type == LA_KEY_DOWN && e->key==LA_KEY_ESCAPE)){
         la_KnifeFinish(se,mo); laNotifyUsers("tns.world"); return LA_FINISHED;
     }
 
-    if(e->Type&LA_MOUSE_EVENT){
+    if(e->type&LA_MOUSE_EVENT){
         int elemtype,id=la_SelectGetClosest(se->sd, e->x-ui->L, e->y-ui->U, LA_RH,&elemtype)-1;
         void* p=la_SelectGetRef(se->sd,id,elemtype);
         if(se->IsLoop){
@@ -1809,11 +1809,11 @@ int OPMOD_Knife(laOperator *a, laEvent *e){
             if(la_KnifeIsDuplicated(se,p)) p=0;
             if(se->PendingElem!=p){ changed=1; }
             se->PendingElem=p; se->PendingElemType=elemtype;
-            if(e->Type==LA_L_MOUSE_DOWN && p){ la_KnifeAppendCut(se); changed=1; }
+            if(e->type==LA_L_MOUSE_DOWN && p){ la_KnifeAppendCut(se); changed=1; }
         }
     }
 
-    if((e->Type==LA_KEY_DOWN && e->key==LA_KEY_ENTER) || (se->IsLoop && e->Type==LA_L_MOUSE_DOWN)){
+    if((e->type==LA_KEY_DOWN && e->key==LA_KEY_ENTER) || (se->IsLoop && e->type==LA_L_MOUSE_DOWN)){
         if(la_KnifeRegisterCuts(se,mo,se->IsLoop)){ tnsMMeshEnsureSelection(mo,ex->SelectMode);
             tnsInvalidateMeshBatch(mo); laNotifyUsers("tns.world");
             laRecordAndPush(0,"tns.world",se->IsLoop?"Loop Cut":"Knife Cut",TNS_HINT_GEOMETRY);

+ 46 - 46
resources/la_operators.c

@@ -471,7 +471,7 @@ int OPMOD_FileBrowser(laOperator *a, laEvent *e){
         }
     }
 
-    if (e->Type == LA_ESCAPE_DOWN){
+    if (e->type == LA_ESCAPE_DOWN){
         laConfirmInt(a, 0, LA_CONFIRM_CANCEL);
         return LA_FINISHED;
     }
@@ -815,11 +815,11 @@ int OPMOD_InputMappingEntrySelectKey(laOperator *a, laEvent *e){
     if(!a->This || !a->This->EndInstance) return LA_CANCELED; laInputMappingEntry* ime=a->This->EndInstance;
     laKeyDetectorData* kdd=a->CustomData; if(!kdd){ return LA_FINISHED; }
     char buf[64],*_next=buf;
-    if(e->Type == LA_KEY_DOWN || e->Type == LA_KEY_UP){
+    if(e->type == LA_KEY_DOWN || e->type == LA_KEY_UP){
         kdd->Key = e->key; laToUTF8(e->key,buf,&_next); *_next=0; strSafeSet(&kdd->Str,buf); kdd->IsController=0;
         laNotifyInstanceUsers(kdd);
         return LA_RUNNING;
-    }elif(e->Type == LA_EMPTY){
+    }elif(e->type == LA_EMPTY){
         if(MAIN.ControllerHasNewAxis){
             kdd->Axis = MAIN.LastControllerAxis; kdd->Device = MAIN.LastControllerAxisDevice; kdd->Button =-1; kdd->IsController=1;
             strSafeSet(&kdd->Str,laControllerIDGetAxisName(kdd->Device,kdd->Axis)); laNotifyInstanceUsers(kdd);
@@ -1219,7 +1219,7 @@ int OPINV_BlockClosePanel(laOperator *a, laEvent *e){
 int OPMOD_BlockClosePanel(laOperator *a, laEvent *e){
     laLayout *l = MAIN.CurrentWindow->CurrentLayout;
     laBlock *b = l->OperatingBlock;
-    if (e->Type == LA_ESCAPE_DOWN) return LA_FINISHED;
+    if (e->type == LA_ESCAPE_DOWN) return LA_FINISHED;
     if (a->ConfirmData){
         if (!b) b = laDetectBlockRecursive(l->FirstBlock, e->x, e->y);
         if (!b) return LA_CANCELED;
@@ -1404,9 +1404,9 @@ int la_ProcessBlockEvent(laOperator *a, laBlock *b, laEvent *e){
         MAIN.CurrentWindow->CurrentLayout->OperatingBlock = b;
 
         if (b->CurrentPanel){
-            if (e->Type == LA_MOUSE_WHEEL_DOWN && b->CurrentPanel->Item.pNext){
+            if (e->type == LA_MOUSE_WHEEL_DOWN && b->CurrentPanel->Item.pNext){
                 b->CurrentPanel = b->CurrentPanel->Item.pNext; Executed = 1;
-            }elif (e->Type == LA_MOUSE_WHEEL_UP && b->CurrentPanel->Item.pPrev){
+            }elif (e->type == LA_MOUSE_WHEEL_UP && b->CurrentPanel->Item.pPrev){
                 b->CurrentPanel = b->CurrentPanel->Item.pPrev; Executed = 1;
             }
         }
@@ -1415,7 +1415,7 @@ int la_ProcessBlockEvent(laOperator *a, laBlock *b, laEvent *e){
             for (p = b->Panels.pFirst; p; p = p->Item.pNext){ tw += (p->TitleWidth + LA_SEAM_W*2); }
             if (tw > b->W - LA_SEAM_W*2 - LA_RH) ratio = (real)(b->W - LA_SEAM_W*2 - LA_RH) / tw;
 
-            if ((e->Type == LA_L_MOUSE_DOWN)){
+            if ((e->type == LA_L_MOUSE_DOWN)){
                 uid->LastX = e->x;
                 uid->LastY = e->y;
                 int LT=0,RT=0;
@@ -1426,7 +1426,7 @@ int la_ProcessBlockEvent(laOperator *a, laBlock *b, laEvent *e){
                     }
                     LT = RT;
                 }
-            }elif (e->Type == LA_MOUSEMOVE){
+            }elif (e->type == LA_MOUSEMOVE){
                 if (abs(e->x - uid->LastX) > LA_RH*3 || abs(e->y - uid->LastY) > LA_RH*3){
                     if (MAIN.CurrentWindow->CurrentLayout->ClickedPanel){
                         l = MAIN.CurrentWindow->CurrentLayout;
@@ -1435,7 +1435,7 @@ int la_ProcessBlockEvent(laOperator *a, laBlock *b, laEvent *e){
                         laRefreshWindow();
                     }
                 }
-            }elif (e->Type == LA_L_MOUSE_UP){
+            }elif (e->type == LA_L_MOUSE_UP){
                 l = MAIN.CurrentWindow->CurrentLayout;
                 if (l->DropToBlock){
                     l->DropToBlock = la_MakeDropBlock(l->DropToBlock,l->DropLocation);
@@ -1468,8 +1468,8 @@ int la_ProcessBlockEvent(laOperator *a, laBlock *b, laEvent *e){
             }
         }else{
             if(!b->OnButton){ b->OnButton=1; laRefreshWindow(); } Ret=0;
-            if(laIsInBlockBotton1(b, e->x, e->y)){ if(b->OnButton!=2){b->OnButton=2;laRefreshWindow();} if(e->Type==LA_L_MOUSE_DOWN){laUnfoldBlockTitle(b);Executed=1;Ret=1;} }
-            elif(laIsInBlockBotton2(b, e->x, e->y)){ if(b->OnButton!=2){b->OnButton=2;laRefreshWindow();}  if(e->Type==LA_L_MOUSE_DOWN){laMaximizeBlock(b);Executed=1;Ret=1;} }
+            if(laIsInBlockBotton1(b, e->x, e->y)){ if(b->OnButton!=2){b->OnButton=2;laRefreshWindow();} if(e->type==LA_L_MOUSE_DOWN){laUnfoldBlockTitle(b);Executed=1;Ret=1;} }
+            elif(laIsInBlockBotton2(b, e->x, e->y)){ if(b->OnButton!=2){b->OnButton=2;laRefreshWindow();}  if(e->type==LA_L_MOUSE_DOWN){laMaximizeBlock(b);Executed=1;Ret=1;} }
         }
 
         if (Executed){
@@ -1477,7 +1477,7 @@ int la_ProcessBlockEvent(laOperator *a, laBlock *b, laEvent *e){
             la_RecalcBlockRecursive(b, b->X, b->Y, b->W, b->H);
         }
 
-        if (!Executed && e->Type == LA_L_MOUSE_DOWN && laIsInBlockBotton1(b, e->x, e->y)){
+        if (!Executed && e->type == LA_L_MOUSE_DOWN && laIsInBlockBotton1(b, e->x, e->y)){
             laui_BlockMenu(a, MAIN.CurrentWindow, MAIN.CurrentWindow->CurrentLayout, b, e);
         }
         return Ret;
@@ -1489,7 +1489,7 @@ int la_ProcessBlockEvent(laOperator *a, laBlock *b, laEvent *e){
 int la_ProcessBlockEdgeEvent(laOperator *WindowAct, laLayout *l, laBlock *b, laEvent *e){
     laBlock *ob = l->MovingBlock;
     laWindow *w = WindowAct->Instance;
-    if (e->Type == LA_MOUSEMOVE && ob && l->MovingBlock && l->IsMoving){
+    if (e->type == LA_MOUSEMOVE && ob && l->MovingBlock && l->IsMoving){
         if (ob->Vertical) ob->SplitRatio = (real)(e->y - ob->Y) / (real)(ob->H);
         else ob->SplitRatio = (real)(e->x - ob->X) / (real)(ob->W);
         la_RecalcBlockRecursive(ob, ob->X, ob->Y, ob->W, ob->H);
@@ -1501,11 +1501,11 @@ int la_ProcessBlockEdgeEvent(laOperator *WindowAct, laLayout *l, laBlock *b, laE
         ob->B1->OnButton=ob->B2->OnButton=0;
         if(l->MovingBlock!=ob){ laRefreshWindow(); }
         l->MovingBlock = ob; laSetWindowCursor(ob->Vertical?LA_UP_AND_DOWN:LA_LEFT_AND_RIGHT);
-        if (e->Type == LA_L_MOUSE_DOWN){
+        if (e->type == LA_L_MOUSE_DOWN){
             l->IsMoving = 1;
-        }elif (e->Type == LA_L_MOUSE_UP){
+        }elif (e->type == LA_L_MOUSE_UP){
             l->IsMoving = 0;
-        }elif (e->Type == LA_R_MOUSE_DOWN){
+        }elif (e->type == LA_R_MOUSE_DOWN){
             l->OnBlockSeperator = ob;
             laui_BlockEdgeMenu(WindowAct, l, ob, e);
         }
@@ -1631,13 +1631,13 @@ int OPMOD_Window(laOperator *a, laEvent *e){
             MAIN.CurrentWindow->CurrentLayout->DropToBlock = 0;
         }
 
-        if(e->Type==LA_L_MOUSE_UP && l->DropToBlock){
+        if(e->type==LA_L_MOUSE_UP && l->DropToBlock){
             l->DropToBlock = la_MakeDropBlock(l->DropToBlock, l->DropLocation);
             laDockPanel(w->DockingFrom, l->DropToBlock, MAIN.DockingPanel);
             la_StopDocking();la_ClearDockingTarget(); return LA_RUNNING;
         }
 
-        if(e->Type==LA_R_MOUSE_DOWN || (e->Type==LA_KEY_DOWN&&e->key==LA_KEY_ESCAPE)){
+        if(e->type==LA_R_MOUSE_DOWN || (e->type==LA_KEY_DOWN&&e->key==LA_KEY_ESCAPE)){
             la_StopDocking();la_ClearDockingTarget(); return LA_RUNNING;
         }
         return LA_RUNNING;
@@ -1651,7 +1651,7 @@ int OPMOD_Window(laOperator *a, laEvent *e){
             return LA_RUNNING;
         }
         if(e->y>LA_2RH && e->x>LA_2RH){ if(!uid->Dragging)laRequestDelayEvent(0.5); uid->Dragging=1; }
-        if(e->Type==LA_TIME_DELAY){ laHideMenuBar(); }
+        if(e->type==LA_TIME_DELAY){ laHideMenuBar(); }
     }else{
         if(MAIN.PendingSplash){
             laSetOperatorLocalizer(MAIN.PendingSplash);
@@ -1694,7 +1694,7 @@ void OPEXT_Panel(laOperator *a, int ExitCode){
 }
 int la_ScrollPanel(laGeneralUiExtraData*ex, laPanel*p, laEvent* e){
     int ret=0;
-    if(ex->TargetIndexVali==4 && e->Type==LA_MOUSEMOVE){
+    if(ex->TargetIndexVali==4 && e->type==LA_MOUSEMOVE){
         laUiList* uuil=ex->Ptr1; laUiItem* upui=ex->Ptr2;
         if(upui){ laPanUiListFree(uuil, ex->LastX-e->x, ex->LastY-e->y);
             //if(uuil->HeightCoeff){
@@ -1708,28 +1708,28 @@ int la_ScrollPanel(laGeneralUiExtraData*ex, laPanel*p, laEvent* e){
         laRedrawCurrentPanel();
         ret= 1;
     }
-    if(ex->TargetIndexVali==5 && e->Type==LA_MOUSEMOVE){
+    if(ex->TargetIndexVali==5 && e->type==LA_MOUSEMOVE){
         laUiList* uuil=ex->Ptr1; laUiItem* upui=ex->Ptr2;
         if(upui)laScaleUiList(uuil, -(ex->LastY-e->y)*0.005+1, upui->L, upui->R, upui->U, upui->B);
         ex->LastX=e->x; ex->LastY=e->y;
         laRecalcCurrentPanel();
         ret= 1;
     }
-    if(e->Type==LA_M_MOUSE_UP){ ex->TargetIndexVali=0; }
-    if (e->Type & LA_KEY_MOUSE_SCROLL || e->Type==LA_M_MOUSE_DOWN){
+    if(e->type==LA_M_MOUSE_UP){ ex->TargetIndexVali=0; }
+    if (e->type & LA_KEY_MOUSE_SCROLL || e->type==LA_M_MOUSE_DOWN){
         laUiItem *pui = 0; laListHandle levels={0}; int dir;
-        if (e->Type & LA_STATE_DOWN) dir=1;
-        elif (e->Type & LA_STATE_UP) dir=-1;
+        if (e->type & LA_STATE_DOWN) dir=1;
+        elif (e->type & LA_STATE_UP) dir=-1;
         laUiList *duil = la_DetectUiListRecursiveDeep(p->MenuRefer?p->MenuRefer:&p->UI, e->x, e->y, 10000, &pui, 0, 0, 0, 0, &levels);
         laUiListRecord* lip=levels.pLast; laUiList* uuil=lip->uil; laUiItem* upui=lip->Item.pPrev?((laUiListRecord*)lip->Item.pPrev)->pui:0; int ran=0;
         if(e->SpecialKeyBit == LA_KEY_CTRL){
-            if(e->Type==LA_M_MOUSE_DOWN){
+            if(e->type==LA_M_MOUSE_DOWN){
                 while (lip && upui && (!uuil->AllowScale)) { lip=lip->Item.pPrev; uuil=lip->uil;  upui=lip->Item.pPrev?((laUiListRecord*)lip->Item.pPrev)->pui:0; } 
                 if(uuil) { ex->TargetIndexVali=5; ex->Ptr1=uuil; ex->Ptr2=upui; ex->LastX=e->x; ex->LastY=e->y; ret= 1;}
             }else{
             }
         }else{
-            if(e->Type==LA_M_MOUSE_DOWN){
+            if(e->type==LA_M_MOUSE_DOWN){
                 while (lip && upui && (!uuil->AllowScale)) { lip=lip->Item.pPrev; uuil=lip->uil;  upui=lip->Item.pPrev?((laUiListRecord*)lip->Item.pPrev)->pui:0; } 
                 if(uuil) { ex->TargetIndexVali=4; ex->Ptr1=uuil; ex->Ptr2=upui; ex->LastX=e->x; ex->LastY=e->y; ret= 1;}
             }else{
@@ -1762,7 +1762,7 @@ int OPMOD_Panel(laOperator *a, laEvent *e){
 
     if (!p->Show || (!laIsInPanel(p, x, y) && !uid->TargetIndexVali)){
         if(p->CloseWhenMovedOut==2){
-            if(e->Type&LA_STATE_DOWN){
+            if(e->type&LA_STATE_DOWN){
                 la_StopUiOperatorService(p); laDestroySinglePanel(p,0); return LA_FINISHED;
             }
             return LA_RUNNING;
@@ -1781,13 +1781,13 @@ int OPMOD_Panel(laOperator *a, laEvent *e){
         dp = laDetectPanel(x, y);
         if (dp->Mode && dp != p){
             return LA_FINISHED;
-        }else if ((e->Type & LA_MOUSEDOWN) == LA_MOUSEDOWN){
+        }else if ((e->type & LA_MOUSEDOWN) == LA_MOUSEDOWN){
             laPopPanel(p); IsTop=1;
         }else if(p->Mode) return LA_RUNNING;
         laWindowToLocal(0, p, &x, &y);
     }
 
-    if (e->Type == LA_L_MOUSE_DOWN && (!NoPrimaryUI) && e->x + e->y < p->W + p->H - LA_SCROLL_W*2){
+    if (e->type == LA_L_MOUSE_DOWN && (!NoPrimaryUI) && e->x + e->y < p->W + p->H - LA_SCROLL_W*2){
         laUiItem *pui = 0; laUiList *suil = 0;laListHandle levels={0};
         laUiList *duil = la_DetectUiListRecursiveDeep(&p->UI, e->x, e->y, 10000, &pui, &suil, 0, 0, 0, &levels);
         while(duil=lstPopPointer(&levels));
@@ -1817,18 +1817,18 @@ int OPMOD_Panel(laOperator *a, laEvent *e){
     }
     lstClearPointer(&Locals);
     
-    if (p->Mode && e->Type&LA_MOUSE_EVENT && !uid->TargetIndexVali && !p->IsMenuPanel){
+    if (p->Mode && e->type&LA_MOUSE_EVENT && !uid->TargetIndexVali && !p->IsMenuPanel){
         if (e->x + e->y > p->W + p->H - LA_SCROLL_W*2){
             if((!a->Item.pPrev) && (!p->ShowCorner)){ p->ShowCorner=1; laSetWindowCursor(LA_CORNER);  laRefreshWindow(); }
-            if(e->Type==LA_L_MOUSE_DOWN){ uid->TargetIndexVali = 2; uid->LastX=e->x;uid->LastY=e->y; }
+            if(e->type==LA_L_MOUSE_DOWN){ uid->TargetIndexVali = 2; uid->LastX=e->x;uid->LastY=e->y; }
             return LA_RUNNING;
         }else{
             if(p->ShowCorner){ p->ShowCorner=0; laSetWindowCursor(LA_ARROW); laRefreshWindow(); }
-            if(e->Type==LA_L_MOUSE_DOWN){  uid->TargetIndexVali = 1; uid->LastX=e->x;uid->LastY=e->y; return LA_RUNNING; }
+            if(e->type==LA_L_MOUSE_DOWN){  uid->TargetIndexVali = 1; uid->LastX=e->x;uid->LastY=e->y; return LA_RUNNING; }
         }
     }
 
-    if (e->Type == LA_MOUSEMOVE){
+    if (e->type == LA_MOUSEMOVE){
         if (uid->TargetIndexVali == 1){
             if (!p->SL && !p->SR) p->TX = p->X + e->x - uid->LastX;
             if (!p->ST && !p->SB) p->TY = p->Y + e->y - uid->LastY;
@@ -1860,12 +1860,12 @@ int OPMOD_Panel(laOperator *a, laEvent *e){
         }
     }
 
-    if (e->Type == LA_L_MOUSE_UP){
+    if (e->type == LA_L_MOUSE_UP){
         uid->TargetIndexVali = 0; laSetWindowCursor(LA_ARROW);
         return LA_RUNNING;
     }
 
-    if(p->Mode&&e->Type&LA_MOUSE_EVENT){ return LA_RUNNING; }
+    if(p->Mode&&e->type&LA_MOUSE_EVENT){ return LA_RUNNING; }
 
     return RET;
 }
@@ -1882,12 +1882,12 @@ int OPMOD_MenuPanel(laOperator *a, laEvent *e){
     int IsClose=laIsCloseToPanel(p,x,y);
     int IsIn=laIsInPanel(p, x, y);
 
-    if(p->CloseWhenMovedOut && ((!IsClose) || (!IsIn && e->Type==LA_TIME_IDLE) || e->Type==LA_L_MOUSE_DOWN||e->Type==LA_R_MOUSE_DOWN)){ 
+    if(p->CloseWhenMovedOut && ((!IsClose) || (!IsIn && e->type==LA_TIME_IDLE) || e->type==LA_L_MOUSE_DOWN||e->type==LA_R_MOUSE_DOWN)){ 
         la_StopUiOperatorService(p);
         laDestroySinglePanel(p,0);
         return LA_FINISHED_PASS;
     }
-    if (e->Type == LA_ESCAPE_DOWN || (e->Type == LA_L_MOUSE_DOWN && !IsIn)){
+    if (e->type == LA_ESCAPE_DOWN || (e->type == LA_L_MOUSE_DOWN && !IsIn)){
         laConfirmInt(a, 1, LA_CONFIRM_DATA);
         la_StopUiOperatorService(p);
         laDestroySinglePanel(p,0);
@@ -1896,7 +1896,7 @@ int OPMOD_MenuPanel(laOperator *a, laEvent *e){
 
     if(p->PanelTemplate && laKeyMapExecuteEvent(a, &p->PanelTemplate->KeyMap, e)) return LA_RUNNING_PASS;
 
-    if (e->Type == LA_L_MOUSE_DOWN && e->y < p->H - LA_SCROLL_W){
+    if (e->type == LA_L_MOUSE_DOWN && e->y < p->H - LA_SCROLL_W){
         laUiItem *pui = 0; laUiList *suil = 0;laListHandle levels={0};
         laUiList *duil = la_DetectUiListRecursiveDeep(p->MenuRefer?p->MenuRefer:&p->UI, e->x, e->y, 10000, &pui, &suil, 0, 0, 0, &levels);
         while(duil=lstPopPointer(&levels));
@@ -1908,14 +1908,14 @@ int OPMOD_MenuPanel(laOperator *a, laEvent *e){
             return LA_RUNNING;
         }
     }
-    if (e->Type == LA_L_MOUSE_UP && uid->TargetIndexVali == 3){
+    if (e->type == LA_L_MOUSE_UP && uid->TargetIndexVali == 3){
         uid->TargetIndexVali = 0;
         return LA_RUNNING;
     }
 
     if(la_ScrollPanel(uid,p,e))return LA_RUNNING;
 
-    if (e->Type == LA_MOUSEMOVE){
+    if (e->type == LA_MOUSEMOVE){
         if (uid->TargetIndexVali == 3){
             laUiList *suil = uid->Ptr1; laUiItem *pui = uid->Ptr2;
             int IsVertical=uid->On;
@@ -1964,7 +1964,7 @@ int OPMOD_ModalPanel(laOperator *a, laEvent *e){
 
     if(MAIN.DockingPanel){return LA_FINISHED; }
 
-    if (e->Type == LA_KEY_DOWN && e->key==LA_KEY_ESCAPE){
+    if (e->type == LA_KEY_DOWN && e->key==LA_KEY_ESCAPE){
         laConfirmInt(a, 0, LA_CONFIRM_CANCEL);
         la_StopUiOperatorService(p);
         laDestroySinglePanel(p,0);
@@ -1987,7 +1987,7 @@ int OPMOD_ModalPanel(laOperator *a, laEvent *e){
 
     if(p->PanelTemplate && laKeyMapExecuteEvent(a, &p->PanelTemplate->KeyMap, e)) return LA_RUNNING_PASS;
 
-    if (e->Type == LA_L_MOUSE_DOWN && e->y < p->H -  LA_SCROLL_W){
+    if (e->type == LA_L_MOUSE_DOWN && e->y < p->H -  LA_SCROLL_W){
         laUiItem *pui = 0; laUiList *suil = 0;laListHandle levels={0};
         laUiList *duil = la_DetectUiListRecursiveDeep(&p->UI, e->x, e->y, 10000, &pui, &suil, 0, 0, 0, &levels);
         while(duil=lstPopPointer(&levels));
@@ -2019,14 +2019,14 @@ int OPMOD_ModalPanel(laOperator *a, laEvent *e){
     int insize=0; if (e->x + e->y > p->W + p->H - LA_SCROLL_W*2){ insize=1;
         if((!a->Item.pPrev) && (!p->ShowCorner)){ p->ShowCorner=1; laSetWindowCursor(LA_CORNER); laRefreshWindow(); }
              }else{ if(p->ShowCorner){ p->ShowCorner=0; laSetWindowCursor(LA_ARROW); laRefreshWindow(); } }
-    if (e->Type == LA_L_MOUSE_DOWN){
+    if (e->type == LA_L_MOUSE_DOWN){
         uid->LastX = e->x;
         uid->LastY = e->y;
         if(insize){ uid->TargetIndexVali = 2; laSetWindowCursor(LA_CORNER); }
         else uid->TargetIndexVali = 1;
         return LA_RUNNING;
     }
-    if (e->Type == LA_MOUSEMOVE){
+    if (e->type == LA_MOUSEMOVE){
         if (uid->TargetIndexVali == 1){
             if (!p->SL && !p->SR) p->TX = p->X + e->x - uid->LastX;
             if (!p->ST && !p->SB) p->TY = p->Y + e->y - uid->LastY;
@@ -2058,7 +2058,7 @@ int OPMOD_ModalPanel(laOperator *a, laEvent *e){
         }
         if(uid->TargetIndexVali==2){laSetWindowCursor(LA_CORNER);}
     }
-    if (e->Type == LA_L_MOUSE_UP){
+    if (e->type == LA_L_MOUSE_UP){
         uid->TargetIndexVali = 0; laSetWindowCursor(LA_ARROW);
         return LA_RUNNING;
     }

+ 24 - 0
resources/la_tnslibs.cpp

@@ -20,6 +20,30 @@
 
 extern "C" const char* LA_TNS_LIB_COMMON=R"(
 ffi.cdef[[
+
+typedef double real;
+
+typedef struct _laListItem laListItem;
+struct _laListItem {
+	void* pPrev;
+	void* pNext;
+};
+typedef struct _laEvent laEvent;
+struct _laEvent{
+    laListItem Item;
+    void* window;
+    int type;
+    int state;
+    int x, y;
+    int key;
+    int SpecialKeyBit;
+    int p1, p2;
+    uint32_t Input;
+    int GoodPressure,IsEraser,HasTwist;
+    real Pressure,Orientation,Deviation,Twist;
+    void *Localized;
+};
+
 typedef struct tnsObject tnsObject;
 int tnsSizeOfObject(tnsObject* o);
 

+ 72 - 72
resources/la_widgets.c

@@ -2198,7 +2198,7 @@ int OPINV_EditStringCopySelection(laOperator *a, laEvent *e){
 int la_ProcessTextEdit(laEvent *e, laStringEdit *se, laUiItem* ui){
     int Select=e->SpecialKeyBit&LA_KEY_SHIFT;
     real _L, MonoWidth;
-    switch (e->Type){
+    switch (e->type){
     case LA_INPUT:
         switch (e->Input){
         case 0x08: if(strHasSelection(se)) strClearSelection(se); else strBackspace(se); return 1;
@@ -2222,7 +2222,7 @@ int la_ProcessTextEdit(laEvent *e, laStringEdit *se, laUiItem* ui){
         if(!ui) return 0;
         MonoWidth=tnsGetMonoFontAdvance(); _L=(*ui->Type->Theme)->LM*2+ui->L;
         int Count=se->TotalLines; while(Count){ Count/=10; _L+=MonoWidth; }
-        if(e->Type==LA_L_MOUSE_DOWN){
+        if(e->type==LA_L_MOUSE_DOWN){
             strSetCursor(se, (e->y-ui->U)/LA_RH+se->ViewStartLine, (real)se->ViewStartCol+((real)e->x-_L)/MonoWidth+0.5); strCancelSelect(se); strLazySelect(se);
             se->MouseSelecting=1; se->CursorPreferBefore=se->CursorBefore; return 1;
         }else{
@@ -2283,7 +2283,7 @@ int OPMOD_IntArrayHorizon(laOperator *a, laEvent *e){
         return LA_FINISHED_PASS;
     }
 
-    if (e->Type == LA_TIME_IDLE && !uit->On && !uit->Edit && !NoTooltip){
+    if (e->type == LA_TIME_IDLE && !uit->On && !uit->Edit && !NoTooltip){
         int GX = e->x, GY = e->y; laLocalToWindow(a, a->ToPanel, &GX, &GY);
         laPanel *p = laEnableIdlePanel(a->ToPanel, a, 0, 0, &ui->PP, GX, GX + 150, GY, 600, 200, e);
         return LA_RUNNING;
@@ -2291,7 +2291,7 @@ int OPMOD_IntArrayHorizon(laOperator *a, laEvent *e){
 
     if(NoEvent){ return LA_RUNNING_PASS; }
 
-    if (e->Type == LA_L_MOUSE_DOWN){
+    if (e->type == LA_L_MOUSE_DOWN){
         if (laIsPropertyReadOnly(&ui->PP)) return LA_RUNNING_PASS;
         if (uit->Edit){
             if (!laIsInUiItem(ui, e->x, e->y)){
@@ -2313,7 +2313,7 @@ int OPMOD_IntArrayHorizon(laOperator *a, laEvent *e){
         laRedrawCurrentPanel();
         return LA_RUNNING;
     }
-    if (e->Type == LA_MOUSEMOVE && ui->Extra->On){
+    if (e->type == LA_MOUSEMOVE && ui->Extra->On){
         if(ui->Extra->Edit){ return LA_RUNNING; }
         int dist=abs(e->x - uit->LastX + uit->LastY - e->y);
         if (dist > MAIN.ValuatorThreshold || uit->Dragging){
@@ -2331,7 +2331,7 @@ int OPMOD_IntArrayHorizon(laOperator *a, laEvent *e){
         }
         return LA_RUNNING;
     }
-    if (e->Type == LA_L_MOUSE_UP){
+    if (e->type == LA_L_MOUSE_UP){
         if (laIsPropertyReadOnly(&ui->PP)) return LA_RUNNING_PASS;
         if (uit->Dragging){
             if (ui->Extra->On){
@@ -2356,7 +2356,7 @@ int OPMOD_IntArrayHorizon(laOperator *a, laEvent *e){
         return LA_RUNNING;
     }
 
-    if(e->Type ==LA_KEY_DOWN){
+    if(e->type ==LA_KEY_DOWN){
         if (e->key == LA_KEY_ENTER && uit->Edit){
             char* buf=strEndEdit(&uit->Edit, 0);
             int Result; sscanf(buf, "%d", &Result); free(buf);
@@ -2370,7 +2370,7 @@ int OPMOD_IntArrayHorizon(laOperator *a, laEvent *e){
         }
     }
     
-    if (e->Type == LA_R_MOUSE_DOWN){
+    if (e->type == LA_R_MOUSE_DOWN){
         int GX = e->x, GY = e->y;
         ui->PP.LastIndex = la_DetectColumn(ui, e->x, Len);
         laLocalToWindow(a, a->ToPanel, &GX, &GY);
@@ -2406,7 +2406,7 @@ int OPMOD_FloatArrayHorizon(laOperator *a, laEvent *e){
         return LA_FINISHED_PASS;
     }
 
-    if (e->Type == LA_TIME_IDLE && !uit->On && !uit->Edit){
+    if (e->type == LA_TIME_IDLE && !uit->On && !uit->Edit){
         int GX = e->x, GY = e->y; laLocalToWindow(a, a->ToPanel, &GX, &GY);
         laPanel *p = laEnableIdlePanel(a->ToPanel, a, 0, 0, &ui->PP, GX, GX + 150, GY, 600, 200, e);
         return LA_RUNNING;
@@ -2414,7 +2414,7 @@ int OPMOD_FloatArrayHorizon(laOperator *a, laEvent *e){
 
     if(NoEvent){ return LA_RUNNING_PASS; }
 
-    if (e->Type == LA_L_MOUSE_DOWN){
+    if (e->type == LA_L_MOUSE_DOWN){
         if (uit->Edit){
             if (!laIsInUiItem(ui, e->x, e->y)){
                 strEndEdit(&uit->Edit, 1);
@@ -2437,7 +2437,7 @@ int OPMOD_FloatArrayHorizon(laOperator *a, laEvent *e){
 
         return LA_RUNNING;
     }
-    if (e->Type == LA_MOUSEMOVE && ui->Extra->On){
+    if (e->type == LA_MOUSEMOVE && ui->Extra->On){
         if(uit->Edit){ return LA_RUNNING; }
         int dist=abs(e->x - uit->LastX - e->y + uit->LastY);
         if (dist > MAIN.ValuatorThreshold || uit->Dragging){
@@ -2455,7 +2455,7 @@ int OPMOD_FloatArrayHorizon(laOperator *a, laEvent *e){
         }
         return LA_RUNNING;
     }
-    if (e->Type == LA_L_MOUSE_UP){
+    if (e->type == LA_L_MOUSE_UP){
         if (laIsPropertyReadOnly(&ui->PP)) return LA_RUNNING_PASS;
         if (uit->Dragging){
             if (ui->Extra->On){
@@ -2480,7 +2480,7 @@ int OPMOD_FloatArrayHorizon(laOperator *a, laEvent *e){
         return LA_RUNNING;
     }
 
-    if(e->Type ==LA_KEY_DOWN){
+    if(e->type ==LA_KEY_DOWN){
         if (e->key == LA_KEY_ENTER && uit->Edit){
             char* buf=strEndEdit(&uit->Edit, 0);
             real Result; sscanf(buf, "%lf", &Result); free(buf);
@@ -2494,7 +2494,7 @@ int OPMOD_FloatArrayHorizon(laOperator *a, laEvent *e){
         }
     }
 
-    if (e->Type == LA_R_MOUSE_DOWN){
+    if (e->type == LA_R_MOUSE_DOWN){
         int GX = e->x, GY = e->y;
         ui->PP.LastIndex = la_DetectColumn(ui, e->x, laGetArrayLength(&ui->PP));
         laLocalToWindow(a, a->ToPanel, &GX, &GY);
@@ -2521,7 +2521,7 @@ int OPMOD_FloatColor(laOperator *a, laEvent *e){
         return LA_FINISHED_PASS;
     }
 
-    if (e->Type == LA_TIME_IDLE && !NoTooltip){
+    if (e->type == LA_TIME_IDLE && !NoTooltip){
         int GX = e->x, GY = e->y; laLocalToWindow(a, a->ToPanel, &GX, &GY);
         laPanel *p = laEnableIdlePanel(a->ToPanel, a, 0, 0, &ui->PP, GX, GX + 150, GY, 600, 200, e);
         return LA_RUNNING;
@@ -2529,7 +2529,7 @@ int OPMOD_FloatColor(laOperator *a, laEvent *e){
     
     if(NoEvent){ return LA_RUNNING_PASS; }
 
-    if (e->Type == LA_L_MOUSE_DOWN){
+    if (e->type == LA_L_MOUSE_DOWN){
         laUiList *uil;
         laColumn *col;
         laPanel *p;
@@ -2545,7 +2545,7 @@ int OPMOD_FloatColor(laOperator *a, laEvent *e){
         }
         return LA_RUNNING;
     }
-    if (e->Type == LA_R_MOUSE_DOWN){
+    if (e->type == LA_R_MOUSE_DOWN){
         int GX = e->x, GY = e->y;
         laLocalToWindow(a, a->ToPanel, &GX, &GY);
         laPanel *p = laEnablePropertyPanel(a->ToPanel, a, 0, 0, 0, &ui->PP, GX, GX + 150, GY, 600, 200, e);
@@ -2569,14 +2569,14 @@ int OPMOD_ColorHCY(laOperator *a, laEvent *e){
         return LA_FINISHED_PASS;
     }
 
-    if(e->Type == LA_L_MOUSE_DOWN && es->HeightCoeff>=0 && e->x>ui->R-bt->RM-LA_RH && e->y>ui->B-bt->BM-LA_RH){
+    if(e->type == LA_L_MOUSE_DOWN && es->HeightCoeff>=0 && e->x>ui->R-bt->RM-LA_RH && e->y>ui->B-bt->BM-LA_RH){
         es->Dragging=3; es->LastX=e->x; es->LastY=e->y; es->TargetIndexVali=es->HeightCoeff; return LA_RUNNING;
     }
     if(es->Dragging==3){
-        if(e->Type==LA_MOUSEMOVE){ es->HeightCoeff=es->TargetIndexVali+((real)e->y-es->LastY+0.5)/LA_RH;
+        if(e->type==LA_MOUSEMOVE){ es->HeightCoeff=es->TargetIndexVali+((real)e->y-es->LastY+0.5)/LA_RH;
             if(es->HeightCoeff<1)es->HeightCoeff=1; laRecalcCurrentPanel();}
-        elif(e->Type==LA_L_MOUSE_UP){ es->Dragging=0; }
-        elif(e->Type==LA_R_MOUSE_DOWN){
+        elif(e->type==LA_L_MOUSE_UP){ es->Dragging=0; }
+        elif(e->type==LA_R_MOUSE_DOWN){
             es->Dragging=0; es->HeightCoeff=es->TargetIndexVali; laRecalcCurrentPanel(); }
         return LA_RUNNING;
     }
@@ -2586,14 +2586,14 @@ int OPMOD_ColorHCY(laOperator *a, laEvent *e){
     real dx = e->x - c, dy = e->y - (ui->U + r + bt->TP);
     real dist = sqrt(dx * dx + dy * dy);
 
-    if (e->Type == LA_L_MOUSE_DOWN){ ui->State = LA_UI_ACTIVE; laRedrawCurrentPanel(); es->Dragging=(dist<=r)?1:2; }
-    if (e->Type == LA_L_MOUSE_UP){
+    if (e->type == LA_L_MOUSE_DOWN){ ui->State = LA_UI_ACTIVE; laRedrawCurrentPanel(); es->Dragging=(dist<=r)?1:2; }
+    if (e->type == LA_L_MOUSE_UP){
         ui->State = LA_UI_NORMAL; es->Dragging=0; laRedrawCurrentPanel();
         laRecordAndPushProp(&ui->PP,0); laMarkPropChanged(&ui->PP);
         return LA_RUNNING_PASS;
     }
 
-    if (e->Type & LA_MOUSE_EVENT && es->Dragging){
+    if (e->type & LA_MOUSE_EVENT && es->Dragging){
         laGetFloatArray(&ui->PP, Color);
         if(ui->PP.LastPs->p->Tag&LA_PROP_IS_LINEAR_SRGB){ tns2LogsRGB(Color); }
         tnsRGB2HCY(Color, hcy);
@@ -2653,7 +2653,7 @@ int OPMOD_EnumSelector(laOperator *a, laEvent *e){
 
     if (!laIsInUiItem(ui, e->x, e->y) && !uit->On){ return LA_FINISHED_PASS; }
     
-    if (e->Type == LA_TIME_IDLE && !NoTooltip && !uit->On){
+    if (e->type == LA_TIME_IDLE && !NoTooltip && !uit->On){
         int GX = e->x, GY = e->y; laLocalToWindow(a, a->ToPanel, &GX, &GY);
         laPanel *p = laEnableIdlePanel(a->ToPanel, a, 0, 0, &ui->PP, GX, GX + 150, GY, 600, 200, e);
         return LA_RUNNING;
@@ -2661,7 +2661,7 @@ int OPMOD_EnumSelector(laOperator *a, laEvent *e){
 
     if(NoEvent){ return LA_RUNNING_PASS; }
 
-    if (e->Type == LA_L_MOUSE_DOWN || (IsMomentary && e->Type == LA_L_MOUSE_UP)){
+    if (e->type == LA_L_MOUSE_DOWN || (IsMomentary && e->type == LA_L_MOUSE_UP)){
         if (laIsPropertyReadOnly(&ui->PP)) return LA_RUNNING_PASS;
 
         int IsVertical = ui->Flags&LA_UI_FLAGS_TRANSPOSE;
@@ -2699,7 +2699,7 @@ int OPMOD_EnumSelector(laOperator *a, laEvent *e){
             laEnumItem* ei=laGetEnumArrayIndexed(&ui->PP, ArrTarget);
             if(!ei){ ei=((laEnumProp*)ui->PP.LastPs->p)->Items.pFirst; }
             ei = ei->Item.pNext?ei->Item.pNext:((laEnumProp*)ui->PP.LastPs->p)->Items.pFirst;
-            if(IsMomentary){  uit->On = 1; if(e->Type==LA_L_MOUSE_UP){ ei = ei=((laEnumProp*)ui->PP.LastPs->p)->Items.pFirst; uit->On = 0;} }
+            if(IsMomentary){  uit->On = 1; if(e->type==LA_L_MOUSE_UP){ ei = ei=((laEnumProp*)ui->PP.LastPs->p)->Items.pFirst; uit->On = 0;} }
             laSetEnumArrayIndexed(&ui->PP, ArrTarget, ei->Index);
             laConfirmInt(a,EnumTarget,LA_CONFIRM_DATA);
             laRecordAndPushProp(&ui->PP,0); laMarkPropChanged(&ui->PP);
@@ -2715,7 +2715,7 @@ int OPMOD_EnumSelector(laOperator *a, laEvent *e){
         return LA_RUNNING;
     }
 
-    if(e->Type==LA_R_MOUSE_DOWN){
+    if(e->type==LA_R_MOUSE_DOWN){
         int GX = e->x, GY = e->y;
         laLocalToWindow(a, a->ToPanel, &GX, &GY);
         laPanel *p = laEnablePropertyPanel(a->ToPanel, a, 0, 0, 0, &ui->PP, GX, GX + 150, GY, 600, 200, e);
@@ -2730,7 +2730,7 @@ int OPMOD_Button(laOperator *a, laEvent *e){
     int lx, ly;
     int Away = 0;
 
-    if (e->Type == LA_TIME_IDLE && !ui->State){
+    if (e->type == LA_TIME_IDLE && !ui->State){
         int GX = e->x, GY = e->y; laLocalToWindow(a, a->ToPanel, &GX, &GY);
         laPanel *p = laEnableIdlePanel(a->ToPanel, a,  &ui->ExtraPP, 0,  &ui->PP, GX, GX + 150, GY, 600, 200, e);
         return LA_RUNNING;
@@ -2738,7 +2738,7 @@ int OPMOD_Button(laOperator *a, laEvent *e){
     
     if (laConfirmSameDataIfAny(a)) return LA_RUNNING_PASS;
 
-    if (e->Type == LA_ESCAPE_DOWN || e->Type == LA_INPUT) return LA_FINISHED; //debug
+    if (e->type == LA_ESCAPE_DOWN || e->type == LA_INPUT) return LA_FINISHED; //debug
 
     if (!laIsInUiItem(ui, e->x, e->y) /*&& ui->State!= LA_UI_ACTIVE*/){
         ui->State = LA_UI_NORMAL;
@@ -2746,7 +2746,7 @@ int OPMOD_Button(laOperator *a, laEvent *e){
         return LA_FINISHED_PASS;
     }
 
-    if (e->Type == LA_L_MOUSE_DOWN){
+    if (e->type == LA_L_MOUSE_DOWN){
         ui->State = LA_UI_ACTIVE;
         laRedrawCurrentPanel();
         return LA_RUNNING;
@@ -2756,7 +2756,7 @@ int OPMOD_Button(laOperator *a, laEvent *e){
 
     int call_ret=0;
 
-    if (e->Type == LA_L_MOUSE_UP && ui->State!=LA_UI_NORMAL){
+    if (e->type == LA_L_MOUSE_UP && ui->State!=LA_UI_NORMAL){
         ui->State = LA_UI_NORMAL;
         if (ui->AT){
             if (!ui->Instructions){
@@ -2841,7 +2841,7 @@ int OPMOD_MenuItem(laOperator *a, laEvent *e){
         return LA_FINISHED_PASS;
     }
 
-    if (e->Type == LA_L_MOUSE_DOWN){
+    if (e->type == LA_L_MOUSE_DOWN){
         int GX = ui->L, GY = ui->B;
         laLocalToWindow(a, a->ToPanel, &GX, &GY);
         ui->State = LA_UI_ACTIVE;
@@ -2863,7 +2863,7 @@ int OPMOD_ConditionToggle(laOperator *a, laEvent *e){
         return LA_FINISHED_PASS;
     }
 
-    if (e->Type == LA_L_MOUSE_DOWN){
+    if (e->type == LA_L_MOUSE_DOWN){
         ui->State = ui->State == LA_UI_ACTIVE ? LA_UI_NORMAL : LA_UI_ACTIVE;
         laRecalcCurrentPanel();
         return LA_RUNNING;
@@ -2889,8 +2889,8 @@ int OPMOD_SingleLineString(laOperator *a, laEvent *e){
             laRedrawCurrentPanel();
             return LA_FINISHED_PASS;
         }else{
-            if(IsTerminal && (e->Type&LA_KEY_MOUSE_SCROLL)){ return LA_RUNNING_PASS; }
-            if ((e->Type & LA_MOUSEDOWN) == LA_MOUSEDOWN){
+            if(IsTerminal && (e->type&LA_KEY_MOUSE_SCROLL)){ return LA_RUNNING_PASS; }
+            if ((e->type & LA_MOUSEDOWN) == LA_MOUSEDOWN){
                 buf=strEndEdit(&uit->Edit, 0);
                 laSetString(&ui->PP, buf); free(buf);
                 laRecordAndPushProp(&ui->PP,0); laMarkPropChanged(&ui->PP);
@@ -2901,7 +2901,7 @@ int OPMOD_SingleLineString(laOperator *a, laEvent *e){
         }
     }
 
-    if (e->Type == LA_TIME_IDLE && !ui->State && !NoTooltip){
+    if (e->type == LA_TIME_IDLE && !ui->State && !NoTooltip){
         int GX = e->x, GY = e->y; laLocalToWindow(a, a->ToPanel, &GX, &GY);
         laPanel *p = laEnableIdlePanel(a->ToPanel, a, 0, 0, &ui->PP, GX, GX + 150, GY, 600, 200, e);
         return LA_RUNNING;
@@ -2909,7 +2909,7 @@ int OPMOD_SingleLineString(laOperator *a, laEvent *e){
     
     if(NoEvent){ return LA_RUNNING_PASS; }
 
-    if(e->Type ==LA_KEY_DOWN){
+    if(e->type ==LA_KEY_DOWN){
         if (e->key == LA_KEY_ENTER){
             buf=IsTerminal?strGetEditString(uit->Edit,0):strEndEdit(&uit->Edit, 0);
             if(IsTerminal){ MAIN.IsTerminalEnter=1; }
@@ -2934,7 +2934,7 @@ int OPMOD_SingleLineString(laOperator *a, laEvent *e){
 
     if(laKeyMapExecuteEventEx(a, &ui->ExtraPP, &ui->Type->KeyMapper, e)) return LA_RUNNING;
 
-    if (e->Type == LA_L_MOUSE_DOWN){
+    if (e->type == LA_L_MOUSE_DOWN){
         if (ui->State == LA_UI_NORMAL){
             if(laIsPropertyReadOnly(&ui->PP)) return LA_RUNNING;
             ui->State = LA_UI_EDITING;
@@ -2949,7 +2949,7 @@ int OPMOD_SingleLineString(laOperator *a, laEvent *e){
         return LA_RUNNING;
     }
 
-    if (e->Type == LA_R_MOUSE_DOWN){
+    if (e->type == LA_R_MOUSE_DOWN){
         int GX = e->x, GY = e->y;
         ui->PP.LastIndex = la_DetectColumn(ui, e->x, laGetArrayLength(&ui->PP));
         laLocalToWindow(a, a->ToPanel, &GX, &GY);
@@ -2987,7 +2987,7 @@ int OPMOD_MultiString(laOperator *a, laEvent *e){
     int NoTooltip=ui->Flags&LA_UI_FLAGS_NO_TOOLTIP;
 
     if (!laIsInUiItem(ui, e->x, e->y) && !es->Dragging){
-        if ((e->Type & LA_MOUSEDOWN) == LA_MOUSEDOWN){
+        if ((e->type & LA_MOUSEDOWN) == LA_MOUSEDOWN){
             buf=strGetEditString(es->Edit, 0); laSetString(&ui->PP, buf); free(buf);
             laRecordAndPushProp(&ui->PP,0); laMarkPropChanged(&ui->PP);
             ui->State = LA_UI_NORMAL;
@@ -2997,7 +2997,7 @@ int OPMOD_MultiString(laOperator *a, laEvent *e){
         if(ui->State!=LA_UI_ACTIVE) return LA_FINISHED_PASS;
     }
 
-    if (e->Type == LA_TIME_IDLE && ui->State!=LA_UI_ACTIVE && !NoTooltip){
+    if (e->type == LA_TIME_IDLE && ui->State!=LA_UI_ACTIVE && !NoTooltip){
         int GX = e->x, GY = e->y; laLocalToWindow(a, a->ToPanel, &GX, &GY);
         laPanel *p = laEnableIdlePanel(a->ToPanel, a, 0, 0, &ui->PP, GX, GX + 150, GY, 600, 200, e);
         return LA_RUNNING;
@@ -3005,7 +3005,7 @@ int OPMOD_MultiString(laOperator *a, laEvent *e){
 
     if(NoEvent){ return LA_RUNNING_PASS; }
 
-    if(e->Type ==LA_KEY_DOWN){
+    if(e->type ==LA_KEY_DOWN){
         if (e->key == LA_KEY_ESCAPE){
             if(ui->State != LA_UI_NORMAL){
                 buf=strGetEditString(es->Edit, 0); laSetString(&ui->PP, buf); free(buf);
@@ -3019,26 +3019,26 @@ int OPMOD_MultiString(laOperator *a, laEvent *e){
 
     if(laKeyMapExecuteEventEx(a, &ui->ExtraPP, &ui->Type->KeyMapper, e)) return LA_RUNNING;
     
-    if(e->Type == LA_L_MOUSE_DOWN && es->HeightCoeff>=0 && e->x>ui->R-bt->RM-LA_RH && e->y>ui->B-bt->BM-LA_RH){
+    if(e->type == LA_L_MOUSE_DOWN && es->HeightCoeff>=0 && e->x>ui->R-bt->RM-LA_RH && e->y>ui->B-bt->BM-LA_RH){
         es->Dragging=1; es->LastX=e->x; es->LastY=e->y; es->TargetIndexVali=es->HeightCoeff;
         return LA_RUNNING;
     }
     if(es->Dragging){
-        if(e->Type==LA_MOUSEMOVE){ es->HeightCoeff=es->TargetIndexVali+((real)e->y-es->LastY+0.5)/LA_RH;
+        if(e->type==LA_MOUSEMOVE){ es->HeightCoeff=es->TargetIndexVali+((real)e->y-es->LastY+0.5)/LA_RH;
             if(es->HeightCoeff<1)es->HeightCoeff=1; laRecalcCurrentPanel(); la_SetMultistringViewRange(ui,es->Edit,bt);}
-        elif(e->Type==LA_L_MOUSE_UP){ es->Dragging=0; }
-        elif(e->Type==LA_R_MOUSE_DOWN){
+        elif(e->type==LA_L_MOUSE_UP){ es->Dragging=0; }
+        elif(e->type==LA_R_MOUSE_DOWN){
             es->Dragging=0; es->HeightCoeff=es->TargetIndexVali; laRecalcCurrentPanel();la_SetMultistringViewRange(ui,se,bt); }
         return LA_RUNNING;
     }
     
     int NoInactiveScroll=ui->Flags&LA_UI_FLAGS_NO_SCROLL_INACTIVE;
     if((!NoInactiveScroll) || (ui->State==LA_UI_ACTIVE)){
-        if(e->Type==LA_MOUSE_WHEEL_DOWN){ strMoveView(se, MAIN.ScrollingSpeed, 0); laRedrawCurrentPanel(); return LA_RUNNING; }
-        elif(e->Type==LA_MOUSE_WHEEL_UP){ strMoveView(se, -MAIN.ScrollingSpeed, 0); laRedrawCurrentPanel(); return LA_RUNNING; }
+        if(e->type==LA_MOUSE_WHEEL_DOWN){ strMoveView(se, MAIN.ScrollingSpeed, 0); laRedrawCurrentPanel(); return LA_RUNNING; }
+        elif(e->type==LA_MOUSE_WHEEL_UP){ strMoveView(se, -MAIN.ScrollingSpeed, 0); laRedrawCurrentPanel(); return LA_RUNNING; }
     }
 
-    if (e->Type == LA_L_MOUSE_DOWN){
+    if (e->type == LA_L_MOUSE_DOWN){
         if (ui->State == LA_UI_NORMAL){
             ui->State = LA_UI_ACTIVE;
             laGetString(&ui->PP, _buf, &buf);
@@ -3048,7 +3048,7 @@ int OPMOD_MultiString(laOperator *a, laEvent *e){
         }
     }
 
-    if (e->Type == LA_R_MOUSE_DOWN){
+    if (e->type == LA_R_MOUSE_DOWN){
         int GX = e->x, GY = e->y;
         ui->PP.LastIndex = la_DetectColumn(ui, e->x, laGetArrayLength(&ui->PP));
         laLocalToWindow(a, a->ToPanel, &GX, &GY);
@@ -3076,7 +3076,7 @@ int OPMOD_TabSelector(laOperator *a, laEvent *e){
 
     if (!laIsInBound(e->x, e->y, ui->L, ui->R, ui->U, ui->U+LA_RH)){ return LA_FINISHED; }
 
-    if (e->Type == LA_L_MOUSE_DOWN){
+    if (e->type == LA_L_MOUSE_DOWN){
         if (ui->Page->HeightCoeff && ui->R - e->x < LA_RH + bt->RM) return LA_RUNNING_PASS;
         for (uil = ui->Subs.pFirst; uil; uil = uil->Item.pNext){ count++; }
         page = la_DetectColumn(ui, e->x, count);
@@ -3116,7 +3116,7 @@ int OPMOD_Collection(laOperator *a, laEvent *e) {
     return LA_FINISHED;
   }
 
-  if (e->Type & LA_MOUSE_EVENT) {
+  if (e->type & LA_MOUSE_EVENT) {
     laUiList *sub;
     laUiItem *tui;
     int LimHeight = 10000;
@@ -3142,7 +3142,7 @@ int OPMOD_Collection(laOperator *a, laEvent *e) {
     ui->PP.EndInstance = Active;
   }
 
-  if (e->Type == LA_L_MOUSE_DOWN && (!laIsPropertyReadOnly(&ui->PP)) &&
+  if (e->type == LA_L_MOUSE_DOWN && (!laIsPropertyReadOnly(&ui->PP)) &&
       ui->Type != _LA_UI_COLLECTION_SINGLE) {
     laUiList *uil;
     for (uil = ui->Subs.pFirst; uil; uil = uil->Item.pNext) {
@@ -3168,7 +3168,7 @@ int OPMOD_Collection(laOperator *a, laEvent *e) {
     }
     return LA_RUNNING;
   }
-  elif (e->Type == LA_R_MOUSE_DOWN) {
+  elif (e->type == LA_R_MOUSE_DOWN) {
     laUiList *uil;
     for (uil = ui->Subs.pFirst; uil; uil = uil->Item.pNext) {
       if (laIsInBound(e->x, e->y, uil->L, uil->R, uil->U, uil->B)) {
@@ -3203,13 +3203,13 @@ int OPMOD_CollectionSelector(laOperator *a, laEvent *e){
         return LA_FINISHED;
     }
 
-    if (e->Type == LA_TIME_IDLE && !ui->State && !NoTooltip){
+    if (e->type == LA_TIME_IDLE && !ui->State && !NoTooltip){
         int GX = e->x, GY = e->y; laLocalToWindow(a, a->ToPanel, &GX, &GY);
         laPanel *p = laEnableIdlePanel(a->ToPanel, a, 0, 0, &ui->PP, GX, GX + 150, GY, 600, 200, e);
         return LA_RUNNING;
     }
 
-    if (e->Type == LA_L_MOUSE_DOWN){
+    if (e->type == LA_L_MOUSE_DOWN){
         laUiList *uil;
         laColumn *col;
         laPanel *p;
@@ -3253,19 +3253,19 @@ int OPMOD_ColumnAdjuster(laOperator *a, laEvent *e){
         return LA_FINISHED_PASS;
     }
 
-    if (e->Type == LA_L_MOUSE_DOWN){
+    if (e->type == LA_L_MOUSE_DOWN){
         uit->Ptr1 = c;
         uit->LastX = e->x;
         uit->Dragging=1;
         return LA_RUNNING;
     }
-    if (uit->Dragging && uit->Ptr1 && e->Type == LA_MOUSEMOVE){
+    if (uit->Dragging && uit->Ptr1 && e->type == LA_MOUSEMOVE){
         la_AdjustColumnSplit(c, e->x - uit->LastX);
         uit->LastX = e->x;
         laRecalcCurrentPanel();
         return LA_RUNNING;
     }
-    if (uit->Dragging && (e->Type == LA_L_MOUSE_UP || e->Type == LA_R_MOUSE_DOWN || e->key == LA_KEY_ESCAPE)){
+    if (uit->Dragging && (e->type == LA_L_MOUSE_UP || e->type == LA_R_MOUSE_DOWN || e->key == LA_KEY_ESCAPE)){
         uit->Ptr1 = 0; uit->Dragging=0;
         return LA_RUNNING;
     }
@@ -3294,8 +3294,8 @@ int OPMOD_NodeSocket(laOperator *a, laEvent *e){
 
     if ((!uit->Dragging) && (!laIsInUiItem(ui, e->x, e->y))){ return LA_FINISHED_PASS; }
 
-    if (e->Type==LA_TIME_IDLE){ return LA_RUNNING_PASS; }
-    if (e->Type == LA_L_MOUSE_DOWN){
+    if (e->type==LA_TIME_IDLE){ return LA_RUNNING_PASS; }
+    if (e->type == LA_L_MOUSE_DOWN){
         uit->Dragging=1; MAIN.NextWireColor+=3;
         if(pc==LA_PC_SOCKET_IN)   {
             laNodeInSocket* s=ui->PP.EndInstance;
@@ -3318,7 +3318,7 @@ int OPMOD_NodeSocket(laOperator *a, laEvent *e){
         laRedrawCurrentPanel();
         return LA_RUNNING;
     }
-    if (uit->Dragging && e->Type == LA_MOUSEMOVE){
+    if (uit->Dragging && e->type == LA_MOUSEMOVE){
         laPanel* p=MAIN.CurrentPanel;
         laLocalToPanel(a, &lx, &ly);
         laUiItem* tui=la_DetectSocketRecursive(&p->UI,lx,ly,100000,uit->Ptr2?LA_PC_SOCKET_IN:PCFind); uit->Ptr1=tui;
@@ -3329,7 +3329,7 @@ int OPMOD_NodeSocket(laOperator *a, laEvent *e){
         laRedrawCurrentPanel();
         return LA_RUNNING;
     }
-    if (uit->Dragging && (e->Type == LA_L_MOUSE_UP || e->Type == LA_R_MOUSE_DOWN || e->key == LA_KEY_ESCAPE)){
+    if (uit->Dragging && (e->type == LA_L_MOUSE_UP || e->type == LA_R_MOUSE_DOWN || e->key == LA_KEY_ESCAPE)){
         uit->Dragging=0; MAIN.tNodeIn->Source=0;
         laRecalcCurrentPanel();
         laUiItem* tui=uit->Ptr1; void* soc=tui?tui->PP.EndInstance:0;
@@ -3370,17 +3370,17 @@ int OPMOD_HeightAdjuster(laOperator *a, laEvent *e){
 
     if ((!uit->Dragging) && (!laIsInUiItem(ui, e->x, e->y))){ return LA_FINISHED_PASS; }
 
-    if (e->Type == LA_L_MOUSE_DOWN || e->Type==LA_R_MOUSE_DOWN){
-        uit->Dragging=1; uit->LastY=e->y; uit->On=0; uit->TargetIndexVali=e->Type==LA_L_MOUSE_DOWN?(ui->State==LA_BT_ACTIVE?2:1):2; uit->HeightCoeff=1;
+    if (e->type == LA_L_MOUSE_DOWN || e->type==LA_R_MOUSE_DOWN){
+        uit->Dragging=1; uit->LastY=e->y; uit->On=0; uit->TargetIndexVali=e->type==LA_L_MOUSE_DOWN?(ui->State==LA_BT_ACTIVE?2:1):2; uit->HeightCoeff=1;
         return LA_RUNNING;
     }
-    if(e->Type==LA_L_MOUSE_UP && uit->HeightCoeff){ ui->State=(ui->State==LA_BT_ACTIVE)?LA_BT_NORMAL:LA_BT_ACTIVE; laRedrawCurrentPanel(); }
-    if (uit->Dragging && e->Type == LA_MOUSEMOVE){
+    if(e->type==LA_L_MOUSE_UP && uit->HeightCoeff){ ui->State=(ui->State==LA_BT_ACTIVE)?LA_BT_NORMAL:LA_BT_ACTIVE; laRedrawCurrentPanel(); }
+    if (uit->Dragging && e->type == LA_MOUSEMOVE){
         int diff=e->y-uit->LastY; diff=((real)diff+0.5)/(ui->B-ui->U); int delta=uit->TargetIndexVali;
         if(diff!=uit->On){ uit->HeightCoeff=0; int d=diff-uit->On; uit->On=diff; while(d){ laSetInt(&ui->PP, d>0?delta:-delta); d-=(d>0?1:-1); }; laRecalcCurrentPanel(); }
         return LA_RUNNING;
     }
-    if (uit->Dragging && (e->Type == LA_L_MOUSE_UP || e->Type == LA_R_MOUSE_UP || e->key == LA_KEY_ESCAPE)){
+    if (uit->Dragging && (e->type == LA_L_MOUSE_UP || e->type == LA_R_MOUSE_UP || e->key == LA_KEY_ESCAPE)){
         uit->Dragging=0; return LA_RUNNING_PASS;
     }
 
@@ -3470,11 +3470,11 @@ int OPMOD_ValueMapper(laOperator *a, laEvent *e){
 
     laValueMapper* vm=ui->PP.EndInstance;
 
-    if (e->Type == LA_L_MOUSE_DOWN){
+    if (e->type == LA_L_MOUSE_DOWN){
         uit->Dragging=1; uit->LastX=e->x; uit->LastY=e->y;
         return LA_RUNNING;
     }
-    if (uit->Dragging && e->Type == LA_MOUSEMOVE){
+    if (uit->Dragging && e->type == LA_MOUSEMOVE){
         laValueMapperPoint* vmp=uit->Ptr1;
         if(uit->Dragging==1 && tnsDistIdv2(e->x,e->y,uit->LastX,uit->LastY)>LA_RH/2){ 
             uit->Ptr1=la_ValueMapperGetPoint(vm,x,y); if(!uit->Ptr1){ uit->Dragging=0; return LA_RUNNING; }
@@ -3487,7 +3487,7 @@ int OPMOD_ValueMapper(laOperator *a, laEvent *e){
         }
         return LA_RUNNING;
     }
-    if (uit->Dragging && (e->Type == LA_L_MOUSE_UP || e->Type == LA_R_MOUSE_UP || e->key == LA_KEY_ESCAPE)){
+    if (uit->Dragging && (e->type == LA_L_MOUSE_UP || e->type == LA_R_MOUSE_UP || e->key == LA_KEY_ESCAPE)){
         uit->Dragging=0; laValueMapperPoint* vmp=uit->Ptr1; if(!vmp) return LA_RUNNING_PASS;
         if(vmp->x>1||vmp->x<0) {
             lstRemoveItem(&vm->Points,vmp); la_ValueMapperEnsureValidPoints(vm);

+ 18 - 18
resources/la_widgets_viewers.c

@@ -784,21 +784,21 @@ int OPMOD_Canvas(laOperator *a, laEvent *e){
     //laLocalToWindow(0, p, &x, &y); if(!p) p=MAIN.CurrentWindow->MaximizedUiPanel;
     //if(dp = laDetectPanel(x,y) && dp!=p){ return LA_RUNNING_PASS; }
 
-    if(e->Type&LA_MOUSE_EVENT){
-        if(e->Type == LA_L_MOUSE_DOWN && ui->Expand>=0 && e->x>ui->R-bt->RM-LA_RH && e->y>ui->B-bt->BM-LA_RH){
+    if(e->type&LA_MOUSE_EVENT){
+        if(e->type == LA_L_MOUSE_DOWN && ui->Expand>=0 && e->x>ui->R-bt->RM-LA_RH && e->y>ui->B-bt->BM-LA_RH){
             ex->Dragging=1; ex->ClickedX=e->x; ex->ClickedY=e->y; ex->TargetIndexVali=ui->Expand;
             return LA_RUNNING;
         }
         if(ex->Dragging==1){
-            if(e->Type==LA_MOUSEMOVE){ ui->Expand=ex->TargetIndexVali+((real)e->y-ex->ClickedY+0.5)/LA_RH;
+            if(e->type==LA_MOUSEMOVE){ ui->Expand=ex->TargetIndexVali+((real)e->y-ex->ClickedY+0.5)/LA_RH;
                 if(ex->HeightCoeff<1) ex->HeightCoeff=1; laRecalcCurrentPanel(); }
-            elif(e->Type==LA_L_MOUSE_UP){ ex->Dragging=0; }
-            elif(e->Type==LA_R_MOUSE_DOWN){ ex->Dragging=0; ui->Expand=ex->TargetIndexVali; laRecalcCurrentPanel(); }
+            elif(e->type==LA_L_MOUSE_UP){ ex->Dragging=0; }
+            elif(e->type==LA_R_MOUSE_DOWN){ ex->Dragging=0; ui->Expand=ex->TargetIndexVali; laRecalcCurrentPanel(); }
             return LA_RUNNING;
         }
 
         int VeryClose=0; int btn=la_CanvasDetectButtons(ui, bt, e->x, e->y, 2, &VeryClose);
-        if(e->Type==LA_L_MOUSE_DOWN){
+        if(e->type==LA_L_MOUSE_DOWN){
             if(btn==2){ if(MAIN.CurrentWindow->MaximizedUi==ui) laRestoreCanvasUI(); else laMaximizeCanvasUI(ui,MAIN.CurrentPanel); return LA_RUNNING; }
             if(btn==1){
                 if(ui->Flags&LA_UI_FLAGS_NO_OVERLAY)ui->Flags&=~LA_UI_FLAGS_NO_OVERLAY; else ui->Flags|=LA_UI_FLAGS_NO_OVERLAY;
@@ -824,8 +824,8 @@ int OPMOD_Canvas(laOperator *a, laEvent *e){
             }
             lstClearPointer(&Locals);
 
-            if(e->Type&LA_KEY_MOUSE_SCROLL){
-                laUiItem *pui = 0; laListHandle levels={0}; int dir=(e->Type&LA_STATE_DOWN)?1:-1;
+            if(e->type&LA_KEY_MOUSE_SCROLL){
+                laUiItem *pui = 0; laListHandle levels={0}; int dir=(e->type&LA_STATE_DOWN)?1:-1;
                 laUiList *duil = la_DetectUiListRecursiveDeep(subu, e->x, e->y, 10000, &pui, 0, 0, 0, 0, &levels);
                 laUiListRecord* lip=levels.pLast; laUiList* uuil=lip->uil; laUiItem* upui=lip->Item.pPrev?((laUiListRecord*)lip->Item.pPrev)->pui:0; int ran=0;
                 while (lip && upui){
@@ -895,12 +895,12 @@ int OPMOD_CanvasZoom(laOperator *a, laEvent *e){
     laCanvasExtra *ex = a->This->EndInstance;
     laGeneralUiExtraData *uex = a->CustomData;
 
-    if (e->Type == LA_L_MOUSE_UP || e->Type == LA_R_MOUSE_DOWN || e->Type==LA_M_MOUSE_UP){
+    if (e->type == LA_L_MOUSE_UP || e->type == LA_R_MOUSE_DOWN || e->type==LA_M_MOUSE_UP){
         laSetWindowCursor(LA_ARROW);
         return LA_FINISHED;
     }
 
-    if (e->Type == LA_MOUSEMOVE){
+    if (e->type == LA_MOUSEMOVE){
         if (strArgumentMatch(a->ExtraInstructionsP, "axis", "x")){
             ex->ZoomX *= (1.0 - (e->x - uex->LastX) * MAIN.ZoomSpeed2D);
         }elif(strArgumentMatch(a->ExtraInstructionsP, "lock", "true")){
@@ -923,13 +923,13 @@ int OPMOD_CanvasMove(laOperator *a, laEvent *e){
     laCanvasExtra *ex = a->This->EndInstance;
     laGeneralUiExtraData *uex = a->CustomData;
 
-    if (e->Type == LA_L_MOUSE_UP || e->Type == LA_R_MOUSE_DOWN || e->Type==LA_M_MOUSE_UP ||
-       (e->Type==LA_KEY_UP && e->key==' ')) {
+    if (e->type == LA_L_MOUSE_UP || e->type == LA_R_MOUSE_DOWN || e->type==LA_M_MOUSE_UP ||
+       (e->type==LA_KEY_UP && e->key==' ')) {
         laSetWindowCursor(LA_ARROW);
         return LA_FINISHED;
     }
 
-    if (e->Type == LA_MOUSEMOVE){
+    if (e->type == LA_MOUSEMOVE){
         if (strArgumentMatch(a->ExtraInstructionsP, "axis", "x")){
             ex->PanX -= (e->x - uex->LastX) * ex->ZoomX;
         }else{
@@ -947,7 +947,7 @@ int OPINV_CanvasClick(laOperator *a, laEvent *e){
     laCanvasExtra *ex = a->This->EndInstance;
     laGeneralUiExtraData *uex = a->CustomData;
 
-    if (e->Type == LA_L_MOUSE_DOWN){
+    if (e->type == LA_L_MOUSE_DOWN){
         ex->ClickedX = (e->x - (ex->ParentUi->R - ex->ParentUi->L) / 2 - ex->ParentUi->L) * ex->ZoomX + ex->PanX;
         ex->ClickedY = ((ex->ParentUi->B - ex->ParentUi->U) / 2 - e->y + ex->ParentUi->U) * ex->ZoomY + ex->PanY;
         laRedrawCurrentPanel();
@@ -999,9 +999,9 @@ int OPMOD_3DViewCameraRotate(laOperator *a, laEvent *e){
         return OPMOD_CanvasMove(a,e);
     }
 
-    if (e->Type == LA_L_MOUSE_UP || e->Type == LA_M_MOUSE_UP || e->Type == LA_R_MOUSE_DOWN) return LA_FINISHED;
+    if (e->type == LA_L_MOUSE_UP || e->type == LA_M_MOUSE_UP || e->type == LA_R_MOUSE_DOWN) return LA_FINISHED;
 
-    if (e->Type == LA_MOUSEMOVE){
+    if (e->type == LA_MOUSEMOVE){
         tnsRotateViewingCamera(ex->ViewingCamera, (real)(uex->LastY - e->y) / 150.0, (real)(uex->LastX - e->x) / 150.0);
         uex->LastX = e->x;
         uex->LastY = e->y;
@@ -1018,11 +1018,11 @@ int OPMOD_3DViewCameraMove(laOperator *a, laEvent *e){
         return OPMOD_CanvasMove(a,e);
     }
 
-    if (e->Type == LA_L_MOUSE_UP || e->Type == LA_M_MOUSE_UP || e->Type == LA_R_MOUSE_DOWN){
+    if (e->type == LA_L_MOUSE_UP || e->type == LA_M_MOUSE_UP || e->type == LA_R_MOUSE_DOWN){
         laSetWindowCursor(LA_ARROW);
         return LA_FINISHED;
     }
-    if (e->Type == LA_MOUSEMOVE){
+    if (e->type == LA_MOUSEMOVE){
         tnsTranslateViewingCamera(ex->ViewingCamera, ex->ParentUi->R - ex->ParentUi->L, ex->ParentUi->B - ex->ParentUi->U, -e->x + uex->LastX, e->y - uex->LastY);
         uex->LastX = e->x; uex->LastY = e->y;
         laRedrawCurrentPanel();