/* ----------------------------------------------------------------------------- This source file is part of OpenSpace3D For the latest info, see http://www.openspace3d.com Copyright (c) 2012 I-maginer This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA, or go to http://www.gnu.org/copyleft/lesser.txt ----------------------------------------------------------------------------- */ fun getActions(l)= let nil -> ndata in let sizelist l -> size in let 0 -> i in ( while i < size do ( let nth_list l i -> act in set ndata = ["ACTION" strcatn "Set "::act::" mode"::nil]::ndata; set i = i + 1; ); ndata; );; fun cbCloseEdit(p)= let p -> [ctrlmodeName ctrlspecialKey ctrlkeyName ctrlnorepeat] in let getSelectedEdCtrlSelect ctrlmodeName -> modeName in let getSelectedEdCtrlSelectPos ctrlspecialKey -> specialKey in let getSelectedEdCtrlSelect ctrlkeyName -> keyName in let getEdCtrlCheckState ctrlnorepeat -> norepeat in ["mode" modeName]:: ["specialKey" itoa specialKey]:: ["keyname" keyName]:: ["norepeat" itoa norepeat]:: (getActions KEYBgetAvailableKeyboardType);; /*callback : fermeture de la fenetre de selection d'objet*/ fun cbCloseRes(ctrlbtn)= /*rendre la bouton ouvrir enable*/ setEdCtrlButtonEnable ctrlbtn 1; 0;; // reset key list and try to select the same key if exist fun cbSelectMode(ctrlstr, pos, elem, ctrlkeyName)= let getSelectedEdCtrlSelect ctrlkeyName -> keyName in ( fillEdCtrlSelect ctrlkeyName KEYBgetAvailableKeysFromKeyboardType elem; selectEdCtrlSelect ctrlkeyName keyName; ); 0;; fun dynamicedit(winstr, inst, viewstr, applybtn)= // let _GETscreenSize -> [sw sh] in let [450 90] -> [iw ih] in ( setEdWindowSize winstr iw ih; /*implémenter les valeur enregistrés dans les differents composants*/ let getPluginInstanceParam inst "mode" -> mode in let if mode == nil then KEYBgetCurrentKeyboardType else mode -> mode in let atoi(getPluginInstanceParam inst "specialKey") -> specialKey in let if specialKey == nil then 0 else specialKey -> specialKey in let (getPluginInstanceParam inst "keyname") -> keyName in let if keyName == nil then "0" else keyName -> keyName in let atoi (getPluginInstanceParam inst "norepeat") -> norepeat in let if norepeat == nil then 1 else norepeat -> norepeat in /*Création les différents composants*/ let crEdCtrlLabel winstr 10 12 160 20 (strcat (loc "OS3DKEYBOARD_0003") " ") nil -> labelMode in let crEdCtrlSelect winstr 180 10 (iw - 190) 120 CB_AHSCROLL -> ctrlmodeName in let crEdCtrlLabel winstr 10 37 160 20 (strcat (loc "OS3DKEYBOARD_0002") " ") nil -> labelKey in let crEdCtrlSelect winstr 180 35 90 120 CB_AHSCROLL -> ctrlspecialKey in let crEdCtrlLabel winstr 280 35 20 20 "+" nil -> labelPlus in let crEdCtrlSelect winstr 310 35 (iw - 320) 120 CB_AHSCROLL -> ctrlkeyName in let crEdCtrlCheck winstr 10 60 280 20 (loc "OS3DKEYBOARD_0004") EDWIN_RESIZE_MW -> ctrlnorepeat in let inst.INST_plugin.PLUG_sDir -> path in ( fillEdCtrlSelect ctrlmodeName KEYBgetAvailableKeyboardType; fillEdCtrlSelect ctrlspecialKey "None"::"Shift"::"Ctrl"::"Ctrl+Shift"::nil; fillEdCtrlSelect ctrlkeyName KEYBgetAvailableKeysFromKeyboardType mode; setEdCtrlSelectCb ctrlmodeName mkfun4 @cbSelectMode ctrlkeyName; selectEdCtrlSelect ctrlmodeName mode; selectEdCtrlSelectByPos ctrlspecialKey specialKey; selectEdCtrlSelect ctrlkeyName keyName; setEdCtrlCheckState ctrlnorepeat norepeat; [mkfun1 @cbCloseEdit [ctrlmodeName ctrlspecialKey ctrlkeyName ctrlnorepeat] nil]; ); );;