mirror of
https://github.com/keymanapp/keyman.git
synced 2026-09-24 16:47:41 +00:00
Merge pull request #839 from keymanapp/windows-default-hotkey-not-implemented-515
[windows] Implement IKeymanKeyboardFile.DefaultHotkey
This commit is contained in:
commit
a16eab8006
5 changed files with 26 additions and 11 deletions
|
|
@ -305,7 +305,6 @@ begin
|
|||
regWrite.WriteString(SRegValue_KeymanFile, pathname + ExtractFileName(filename));
|
||||
|
||||
CopyValue(SRegValue_Legacy_DefaultLanguageID); // I4220
|
||||
CopyValue(SRegValue_KeymanDefaultHotkey);
|
||||
|
||||
CopyValue(SRegValue_PackageName);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,18 +1,18 @@
|
|||
(*
|
||||
Name: keymankeyboardfile
|
||||
Copyright: Copyright (C) SIL International.
|
||||
Documentation:
|
||||
Description:
|
||||
Documentation:
|
||||
Description:
|
||||
Create Date: 20 Jun 2006
|
||||
|
||||
Modified Date: 29 Mar 2010
|
||||
Authors: mcdurdin
|
||||
Related Files:
|
||||
Dependencies:
|
||||
Related Files:
|
||||
Dependencies:
|
||||
|
||||
Bugs:
|
||||
Todo:
|
||||
Notes:
|
||||
Bugs:
|
||||
Todo:
|
||||
Notes:
|
||||
History: 20 Jun 2006 - mcdurdin - Initial version
|
||||
14 Sep 2006 - mcdurdin - Pass graphics as icons instead of bitmaps
|
||||
04 Dec 2006 - mcdurdin - Add Get_LayoutType, Serialize functions
|
||||
|
|
@ -43,6 +43,8 @@ type
|
|||
FError: Boolean;
|
||||
FKeyboardInfo: TKeyboardInfo;
|
||||
FLanguages: IKeymanKeyboardLanguagesFile;
|
||||
FDefaultHotkey: IKeymanHotkey;
|
||||
procedure CreateDefaultHotkey;
|
||||
protected
|
||||
function Serialize(Flags: TOleEnum; const ImagePath: WideString; References: TStrings): WideString;
|
||||
override;
|
||||
|
|
@ -65,6 +67,8 @@ type
|
|||
function Get_DefaultPrimaryLanguage: Integer; override; safecall;
|
||||
function Get_Version: WideString; override; safecall;
|
||||
function Get_Languages: IKeymanKeyboardLanguagesFile; safecall;
|
||||
function Get_DefaultHotkey: IKeymanHotkey; override; safecall;
|
||||
|
||||
public
|
||||
constructor Create(AContext: TKeymanContext; const Filename: Widestring; pk: TPackageKeyboard);
|
||||
destructor Destroy; override;
|
||||
|
|
@ -75,6 +79,7 @@ implementation
|
|||
uses
|
||||
Graphics,
|
||||
keymanerrorcodes,
|
||||
keymanhotkey,
|
||||
kmxfileusedchars,
|
||||
kpinstallkeyboard,
|
||||
Keyman.System.LanguageCodeUtils,
|
||||
|
|
@ -106,6 +111,13 @@ begin
|
|||
else FLanguages := TKeymanKeyboardLanguagesFile.Create(AContext, Self, nil);
|
||||
end;
|
||||
|
||||
procedure TKeymanKeyboardFile.CreateDefaultHotkey;
|
||||
begin
|
||||
if Assigned(FDefaultHotkey) then
|
||||
Exit;
|
||||
FDefaultHotkey := TKeymanHotkey.Create(Context, FKeyboardInfo.DefaultHotkey, khKeyboard);
|
||||
end;
|
||||
|
||||
destructor TKeymanKeyboardFile.Destroy;
|
||||
begin
|
||||
FreeAndNil(FKeyboardInfo.Bitmap);
|
||||
|
|
@ -200,6 +212,12 @@ begin
|
|||
Result := TLanguageCodeUtils.TranslateMultipleISO6393ToBCP47(FKeyboardInfo.ISO6393Languages);
|
||||
end;
|
||||
|
||||
function TKeymanKeyboardFile.Get_DefaultHotkey: IKeymanHotkey;
|
||||
begin
|
||||
CreateDefaultHotkey;
|
||||
Result := FDefaultHotkey;
|
||||
end;
|
||||
|
||||
function TKeymanKeyboardFile.Get_DefaultPrimaryLanguage: Integer;
|
||||
begin
|
||||
Result := FKeyboardInfo.KeyboardID;
|
||||
|
|
|
|||
|
|
@ -227,7 +227,6 @@ begin
|
|||
|
||||
WriteString(SRegValue_Legacy_DefaultLanguageID, IntToHex(ki.KeyboardID, 8)); // I4220
|
||||
|
||||
WriteString(SRegValue_KeymanDefaultHotkey, IntToStr(ki.DefaultHotkey));
|
||||
if ikPartOfPackage in FInstallOptions
|
||||
then WriteString(SRegValue_PackageName, GetShortPackageName(PackageName))
|
||||
else if ValueExists(SRegValue_PackageName) then DeleteValue(SRegValue_PackageName);
|
||||
|
|
|
|||
|
|
@ -331,7 +331,6 @@ begin
|
|||
|
||||
if OpenKeyReadOnly(GetRegistryKeyboardInstallKey_LM(FName)) then
|
||||
begin
|
||||
FDefaultHotkey := StrToIntDef(ReadString(SRegValue_KeymanDefaultHotkey), 0);
|
||||
FKeymanFile := ReadString(SRegValue_KeymanFile);
|
||||
Legacy_FKeyboardID := StrToIntDef('$'+ReadString(SRegValue_Legacy_KeymanKeyboardID), 0); // I3613
|
||||
FPackageName := ReadString(SRegValue_PackageName);
|
||||
|
|
@ -411,6 +410,7 @@ begin
|
|||
FWindowsLanguages := ki.WindowsLanguages;
|
||||
FISO6393Languages := ki.ISO6393Languages;
|
||||
FKeyboardLanguageID := ki.KeyboardID;
|
||||
FDefaultHotkey := ki.DefaultHotkey;
|
||||
FKeyboardVersion := ki.KeyboardVersion; // I4136
|
||||
|
||||
if ki.Icon <> nil then
|
||||
|
|
|
|||
|
|
@ -206,7 +206,6 @@ const
|
|||
|
||||
SRegValue_KeymanFile_MnemonicOverride = 'keyman file mnemonic override'; // LM // I4169
|
||||
SRegValue_KeymanFile_MnemonicOverride_Deadkey = 'keyman file mnemonic override deadkey'; // LM // I4552
|
||||
SRegValue_KeymanDefaultHotkey = 'keyman default hotkey'; // LM CU
|
||||
SRegValue_KeymanFile = 'keyman file'; // LM CU
|
||||
SRegValue_Legacy_KeymanKeyboardID = 'keyman keyboard id'; // LM CU // I3613
|
||||
SRegValue_PackageName = 'package name'; // LM CU
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue