*/}}
浏览代码

Default signal mapping stuff

YimingWu 3 月之前
父节点
当前提交
1a478807ca
共有 3 个文件被更改,包括 14 次插入1 次删除
  1. 2 0
      la_interface.h
  2. 4 1
      la_kernel.c
  3. 8 0
      resources/la_properties.c

+ 2 - 0
la_interface.h

@@ -1457,6 +1457,8 @@ STRUCTURE(laInputMappingBundle){
 #define LA_SIGNAL_NEW 1
 #define LA_SIGNAL_DELETE 2
 #define LA_SIGNAL_CONFIRM 3
+#define LA_SIGNAL_UNDO 4
+#define LA_SIGNAL_REDO 5
 
 STRUCTURE(laCustomSignal){
     laListItem Item;

+ 4 - 1
la_kernel.c

@@ -1346,7 +1346,9 @@ void laEnsureUserPreferences(){
     laUDFRegistry* r=laFindUDFRegistry(path);
     if(!r){ laSaveUserPreferences(); return; }
     laUDF* udf=laOpenUDF(r->Path->Ptr,1,0,0); if(!udf){ logPrint("Can't read preferences. Using default settings."); return; }
-    laClearUDFRegistries(); while(MAIN.ResourceFolders.pFirst){ laRemoveResourceFolder(MAIN.ResourceFolders.pFirst); }
+    laClearUDFRegistries();
+    while(MAIN.ResourceFolders.pFirst){ laRemoveResourceFolder(MAIN.ResourceFolders.pFirst); }
+    while(MAIN.InputMapping->InputMappings.pFirst){ laRemoveInputMapping(MAIN.InputMapping->InputMappings.pFirst); }
     laExtractUDF(udf,0,LA_UDF_MODE_OVERWRITE,0);
     laCloseUDF(udf);
     laRefreshUDFRegistries();
@@ -1399,6 +1401,7 @@ laInputMapping* laNewInputMapping(char* Name){
     laInputMapping* im=memAcquireHyper(sizeof(laInputMapping)); lstAppendItem(&MAIN.InputMapping->InputMappings,im);
     memAssignRef(MAIN.InputMapping,&MAIN.InputMapping->CurrentInputMapping,im);
     strSafeSet(&im->Name,Name);
+    return im;
 }
 laInputMappingEntry* laNewInputMappingEntry(laInputMapping* im, int DeviceType, int JoystickDevice, char* Key, int SpecialKeyBit, char* Signal){
     laInputMappingEntry* e=memAcquire(sizeof(laInputMappingEntry)); lstAppendItem(&im->Entries,e);

+ 8 - 0
resources/la_properties.c

@@ -2074,4 +2074,12 @@ void la_RegisterDefaultSignals(){
     laNewCustomSignal("la.new",LA_SIGNAL_NEW);
     laNewCustomSignal("la.delete",LA_SIGNAL_DELETE);
     laNewCustomSignal("la.confirm",LA_SIGNAL_CONFIRM);
+    laNewCustomSignal("la.undo",LA_SIGNAL_UNDO);
+    laNewCustomSignal("la.redo",LA_SIGNAL_REDO);
+
+    laInputMapping* im = laNewInputMapping("Default");
+    laNewInputMappingEntry(im,LA_INPUT_DEVICE_KEYBOARD,0,"a",LA_KEY_SHIFT,"la.new");
+    laNewInputMappingEntry(im,LA_INPUT_DEVICE_KEYBOARD,0,"x",0,"la.delete");
+    laNewInputMappingEntry(im,LA_INPUT_DEVICE_KEYBOARD,0,"z",LA_KEY_CTRL,"la.undo");
+    laNewInputMappingEntry(im,LA_INPUT_DEVICE_KEYBOARD,0,"z",LA_KEY_CTRL|LA_KEY_SHIFT,"la.redo");
 }