From 200494f2dcc4e4aa57bbee891bc14b3498cb52b4 Mon Sep 17 00:00:00 2001
From: rc-swag <58423624+rc-swag@users.noreply.github.com>
Date: Tue, 18 Mar 2025 17:02:28 +1000
Subject: [PATCH] fix(windows): update label text add logo
Fixes: #13487
---
...yman.Configuration.UI.UfrmStartInstall.dfm | 148 ++++++++++++++++--
...yman.Configuration.UI.UfrmStartInstall.pas | 7 +-
windows/src/desktop/kmshell/main/initprog.pas | 6 +-
windows/src/desktop/kmshell/xml/strings.xml | 12 +-
4 files changed, 149 insertions(+), 24 deletions(-)
diff --git a/windows/src/desktop/kmshell/main/Keyman.Configuration.UI.UfrmStartInstall.dfm b/windows/src/desktop/kmshell/main/Keyman.Configuration.UI.UfrmStartInstall.dfm
index 0ca96f7123..592245267b 100644
--- a/windows/src/desktop/kmshell/main/Keyman.Configuration.UI.UfrmStartInstall.dfm
+++ b/windows/src/desktop/kmshell/main/Keyman.Configuration.UI.UfrmStartInstall.dfm
@@ -4,8 +4,8 @@ object frmStartInstall: TfrmStartInstall
BorderIcons = [biSystemMenu]
BorderStyle = bsDialog
Caption = 'Keyman Update'
- ClientHeight = 142
- ClientWidth = 322
+ ClientHeight = 201
+ ClientWidth = 393
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
@@ -17,33 +17,149 @@ object frmStartInstall: TfrmStartInstall
PixelsPerInch = 96
TextHeight = 13
object lblInstallUpdate: TLabel
- Left = 72
- Top = 48
- Width = 180
- Height = 19
- Caption = 'Keyman update available.'
- Font.Charset = DEFAULT_CHARSET
+ Left = 87
+ Top = 81
+ Width = 218
+ Height = 65
+ Caption = 'An update to Keyman has been downloaded and is ready to install.'
+ Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
- Font.Height = -16
- Font.Name = 'Tahoma'
+ Font.Height = -13
+ Font.Name = 'Segoe UI'
Font.Style = []
ParentFont = False
+ WordWrap = True
+ end
+ object imgKeymanLogo: TImage
+ Left = 8
+ Top = 8
+ Width = 201
+ Height = 43
+ Picture.Data = {
+ 0954506E67496D61676589504E470D0A1A0A0000000D49484452000000C30000
+ 002E080600000095A5ADF6000000017352474200AECE1CE90000000467414D41
+ 0000B18F0BFC6105000000097048597300000B0F00000B0F0192F903A500000C
+ EE4944415478DAED9D7B6C53D71DC77F76123B0FA893102083B1180AA87450A0
+ ACAF3D5433AD629A2A06ACDA43955A83D43FB656C54C1BDAF64F0D7F22B482A6
+ 6E95260DB307D3A6AD846AEDD4B1AD0EA3A0C158C30AE52106C95268024988F3
+ B41D27DEEF77EFB17B7D7D1ED78E83A372BED2951DDF737FF79C73CFE79CDFEF
+ DC736F5CE9741AB4B4B4005C1A062D2D531A062D2D260D8396169386414B8B49
+ C3A0A5C5A461D0D2629A36189E7FEBDC1AFCA87F65C3CA68B90BA9A5E5442587
+ 0121A8C78F286EABD94F31F6772B6D08C7C09D28D852FFE228EFF72B1DD7020E
+ 8EA5324470AB172489A09DC89D2887D69D534961E080C0531B7C0446C774150C
+ 1B34B760D8885D0E8E6D9794E120DA084E57BEB5CAA792C1C0DCA208C841B0EB
+ 2C9860EC2BF588512C0C781C95E159C16E0DC2C758258101410835D57A7E9448
+ 4DCE1E4AA6AAE9B786EAAAAE39359EA69A4A774D6A320D17FA8665268E200C9B
+ 4A59B06260D020DCDD2A1A06361204700BE1D6525755012E972B3ECC6058D650
+ 07B33C9570BE7728F5C0DC7B2AFBC692F16BB1D16A81B95D0843B894052B1406
+ 0508348205F0D83B12EF68954705C38010500F7E98B76F7E9DB7AFA6B2A2A2CA
+ EDAABF3E1C4F8E8E4F78AADCEED175CDBEDA58621C7A4612E343C989F10A374C
+ 2427D29EC974DA0B6680ED2737E9E89287C3600276E489ABA75E9E4AC10A8101
+ D312D0A2F36910EE121503831FCC20B9C530E082D1FB1A67D5922B8430E4A5A7
+ DF2BDDB9ED8FC0E81A8CC7C6521313F8E78B3FFED2FDBF4110EC90FD048178B1
+ D882398501D305F1E380C08C2310D006D509011580DC988940A7609CE2A288D5
+ 0E9BB16A15980C61DA76C9F96854DE27285F00F7D3BE3522BB2CBF6196DF164B
+ 5EA36417D34439E70BD9D267EAA7951D23AC2356D600CB5380FDEC67B6C8061D
+ DBC1CEDF2AB2C5AE55B0C072918E30BB1190C8390C7B9AD7C0CEEEEC05422828
+ 53BBDD2ED7BCA61A4F1FC60A696CDC0BF17BFF2766791B7DDE2AA5C981F8F8F7
+ BFBDAE65EFD5FD3FF7F7FCF96FA7862F5F9D6B4BF24D04E277CE329857714A18
+ A60A02BBC8D4F044EE9555D4D8C2686F9FE578D1ACD57E4C17929C378C1F2F71
+ 761DC1E336B169E5C739FBD783D9084565CE3B3F036BBB227D276E9BEC005B20
+ 72523FC27A7250EE4CB9E8189FC4761BCB27F79AAA612008887EAFAF05967CF1
+ 1234DEFB2AD0ACD1E7BE6718FCEDF91BC1FEB164E8FA706221F6F84DF41B06CE
+ B062CE2C55A1B77EEBD30B223822D45735F84E54D6D5AE18FBE0437B9A51DCB6
+ 1503840A06DC2F74F7C0390851286CF68C940DC4253076621ABFE4DC2288B652
+ EF2781E120386F98BB70DB5440F90C77D736FA51DB79B7C0FAC9AB278BBD30F0
+ 6128A45C4687C1DBE1048676A89BB71A563F3D06AE8A1A4BC1894282A2837E40
+ 2802576E8FFCA07B24B181FE5EECAB8D23141430C7AA2BDD565AA917092108AD
+ 3822D40FFEE7FDF678CFAD96F1D820247BFB613291B4E7A028206430B08B1405
+ 7E2F329D2064B4837A3E66A743908FB53C5789B902D738E96398BE9EA5A1BCF1
+ 60986EEDC23C846DF9A5F2B514650D6033DA6BB5D822DB2F1569CBAAF5765790
+ 2487614FB379F2475E884165B568F8212AF72114C685A398021BFF3634FDCCCA
+ A6D92D1853F42320F1967B6A4EE3EE561A0D281D8260DC97484F4C2EFFF0F01B
+ 358D9F7D28951A1C9EEC79EB6D0FE71C0503218201B516C42010E46BB0A23A14
+ B6A90CB29E8886633FC81BC1623A8FC416D7559204FBD61187CA570E18F24634
+ 876E96237B2584813B3A8861D8D34C99B806BE45002BBFE1E404D400088A5659
+ 221A0DC0F42369331A64ECECF9CEDEE88996454F6FE9ED6D3BD9C471974863B8
+ AD40203A9D644602430CC47EE5565590A518FAC9B5C80693983600E608CA1B41
+ 8CC62BB1C77595242E52762451C040E5A732521EE95A0441EE6793E8DA46D9F7
+ 00C8415B6CED4C581DBC0DA6474036DAD996D126451EACE50A831C06EA9833E7
+ 269BA2CE283B8A5A2583C1ACD0BA79D8573E038E14EB02484FF440BDFF558422
+ 6CDDC54682102B7C4EC127C6E2C3899BB7DC9EC6C6EACE5F1C724BCED085307C
+ CA49562430C874162B698D2C41113DB91FCC8BCFBBD80D048EC495C87195242E
+ 92BD078D02BFC11208019B4D99AB462AC47727ADE7CD462966C7646EE78E4C30
+ AD386F8E4BA5A807EE143B1F863DCDB943F1633BE2E0AE10DD30B35435C2F0DF
+ A3D7E1C16D0BF1AF3308C467E867044116ACC2E07B17866EFDFDF86CA57D535B
+ 1188882A51913090543339D4A3DA1B4E5EF0683B46E42A181750E2FAE4E44592
+ 6E876D962A0AFC46200256E6CA34D8CBC51AEF6D417AAE3FAE926442231B87A8
+ 66D1383685A3B833184CF728B727A3D161C5E65EF0CE6E929628816DE2DF0712
+ F0582873C3612DC5120883A81059A52726E2375E7BB33A7EA35B556FD30D0329
+ AF976136A96E783D3305DD21893DBA28BC466C5C6849E3B2F7F894A7AF72D2D9
+ 5D9328F06110952B00A62B93572ED148299BBEE58C0C543E6AAC741EBF2D3D81
+ 96719D8A85212F70B79CDBF1CD571E0CA20A3775DFC67E98B3BC51B8FFE4BE04
+ 3CB8D50B5E83A55DE42E210CA2CACED1D0FB97877B8F9D34E66439B34AA44E04
+ C1AFB223AB048B64B103379096349A62650D7A23C077BFD6B21B4A2260F27AC5
+ 421AAAA25C6DA225EF4ECFC11A70363E2C424E60108E46C5C3B0A759EACE1852
+ C510170E77C3C8CD4A70558CA06BF52F78E1FC53F43302C1732F72F4C1A1D760
+ 022158F8F58DC9D4C0A0A7B7ED04246EF565761BFE2EC2D00E0EA480C1B0C536
+ E1320C7BAF380D30641B9BC4B6E1DA48EE49E405FD33050607B36E4E540618F6
+ 34AB022953AAD92572953A8E8D41EF25BA2711839DDD46D48E3048479C742A95
+ FCDFAFFEE0490D0E8177EE1CA8AAF781A7A93131D675DD5BFDC90503F1EBDD1B
+ 3FDF76F81F4E6B50319B147038F362F7D903304D3030FB54FFF640DA7095042E
+ 1277566426C0A0B8BB9FB50FEA29E0B2C020AA905CA96018B90970EEF73148C5
+ 3350ADA5651C0883B27226138958D7A1C33EFC84055F7B3276F32F519FB7A911
+ E23DB79E0F9C39FA5365DE1C5402E4CFD0A83A016B4F270AC8326B900A55AB2D
+ F00D8378B901EFDA709795CF10184453C0B44E28648B71FC608ED2BCF6511618
+ 9CDD3A9FBF6A0C966EA8C9FB3D95C0E670B01F1283F6786207C2B08FD61F812D
+ F84C8D8CF6246FF5253D73E7782AEB6AE78F0F0C76F6BCF9D716728DEEDDFE1C
+ 8C76745123DBB5F2E5DD05AF602D70D52A5D08514790335324B02B9D4D2A20CF
+ 7975C44473F4CAA9578B9D28941F065E3DA99699F08E295BCC100473D51FFF66
+ 45A517E0A1EFF0A7592FB4F640FF95F9BC0A45188C0A4520727A8BCCCD36FA3E
+ FBFEE5306BE9E2710C9CD3B1F72E78166CF94A024788EF2EFBE1F6824684622A
+ 81A5974D2F5A7D7B91BB279CD160C7516713944DDB2AECDB256C58E58601CC19
+ A2770BB427CA439960C8C884822E5AEE30376F25C0B22F0357EFEC05891A1088
+ 01FB14AB150652E3A3EBA0B665D1B0BBDADB3770E66CF491D77F19842255E493
+ 6EB2679F33D3A001108F22FBC15C71695FAA1DB2945BBAF649B180D0AA9C7B0B
+ 361B51282F0C548FCAA9625B1D913D5EDD9719868CCC38229C2DB4285EB8F87A
+ 3FF45D6E34F6D38DB77C6D46185A8F3FBEF90B95B3EB8E791AEA63BEB5AB3CE9
+ D4781261F00D5DBC924DE8F67AA06E89FF8F8FBEF1EBA7600A2A12063F88EF16
+ 672BDDC1DA9F36CB775E3A1510CA9937B0DD5BB01D2FCADF9D749344653097ED
+ 988D7F0DDB8CA72505E59C21306464DE880B63637F3607068A134EFF2C019329
+ 2FAC7B2E06BD17AAA1F3B89763E120C210A42F47973C6C541235FA59CB968C55
+ D454BB6E9F6EB7BA5D079FB87A2AA8CE945C537821009D5B14E81BB101FBDE01
+ C5CF9D938477BA1D2C6E132E4366C747A1FC304460EAD3AAA41906434607020F
+ C0F227B700913C72D3979D355ABAA117E62CF5C23F5F112DA9E84418FCF40561
+ 9055521B82102841054EF55531D23CB2A7C964CBC05592BE5C40124867245D50
+ 384360703655AFD60C8521A377F6D6C3A53FED86DE8B1B818637728F6894A069
+ 55B18C2956842108FC9ED7701D1086923C6B3C4518E842B68378E8B63E8FE0F4
+ 493792F0292E4E1EA220586CC7BBB7E0F0D83B7DD3CD7C304CFD3C4327AB47E1
+ 9215668F3E67180C56A966A03E9231C54A4FB6417E705552105825702BC7C91B
+ F5D8F1C2E78C99B28F0F5A9E81DE24A887CC8BD322571C4EBF3A796E4172ACF4
+ 19E802CADAAE70E594E7601D46906DF600B98DD549449287ECDB0B55CF400BF2
+ 19E5FDCE6B07A57BA39E3DD8CED7398461157D4120A296742507A1DC6270D0D6
+ 5E40E3CF2C56CB2CA40B83E2B905ADD2AAF42F1E366FDEF11F02DFD96D0C4D08
+ 43C6DFA68B1A72BADEE8E32A874B17486D4E4736ADC2357DAFA43767A0088A20
+ 98415417C2E0E8C19CBB4D8AFB1B5615F5AC8096334DFFFF67301700D248D081
+ 307494BBC0334D052CFED3AFB79C66E97F565266B13BCE11904F41D2E2B6A07E
+ ABDFF44AC33003247912AC03CC95ADAD855BD52A541A062D2D260D8396169386
+ 414B8B49C3A0A5C5A461D0D262FA3F82D7F60E256D51F10000000049454E44AE
+ 426082}
end
object cmdInstall: TButton
- Left = 140
- Top = 104
+ Left = 188
+ Top = 168
Width = 75
Height = 25
- Caption = 'Update'
+ Caption = 'Update now'
ModalResult = 1
TabOrder = 0
end
object cmdLater: TButton
- Left = 234
- Top = 104
+ Left = 298
+ Top = 168
Width = 75
Height = 25
- Caption = 'Close'
+ Caption = 'Later'
ModalResult = 8
TabOrder = 1
end
diff --git a/windows/src/desktop/kmshell/main/Keyman.Configuration.UI.UfrmStartInstall.pas b/windows/src/desktop/kmshell/main/Keyman.Configuration.UI.UfrmStartInstall.pas
index b2353bc6fd..f4ca051c32 100644
--- a/windows/src/desktop/kmshell/main/Keyman.Configuration.UI.UfrmStartInstall.pas
+++ b/windows/src/desktop/kmshell/main/Keyman.Configuration.UI.UfrmStartInstall.pas
@@ -19,13 +19,14 @@ uses
Winapi.Messages,
Winapi.Windows,
UfrmKeymanBase,
- UserMessages;
+ UserMessages, Vcl.Imaging.pngimage;
type
TfrmStartInstall = class(TfrmKeymanBase)
cmdInstall: TButton;
cmdLater: TButton;
lblInstallUpdate: TLabel;
+ imgKeymanLogo: TImage;
procedure FormCreate(Sender: TObject);
private
public
@@ -42,8 +43,8 @@ uses
procedure TfrmStartInstall.FormCreate(Sender: TObject);
begin
inherited;
- cmdInstall.Caption := MsgFromId(S_Update);
- cmdLater.Caption := MsgFromId(S_Button_Close);
+ cmdInstall.Caption := MsgFromId(S_Update_Now);
+ cmdLater.Caption := MsgFromId(S_Later);
lblInstallUpdate.Caption := MsgFromId(S_Ready_To_Install);
end;
diff --git a/windows/src/desktop/kmshell/main/initprog.pas b/windows/src/desktop/kmshell/main/initprog.pas
index 829183b8ed..e19a9db358 100644
--- a/windows/src/desktop/kmshell/main/initprog.pas
+++ b/windows/src/desktop/kmshell/main/initprog.pas
@@ -433,6 +433,9 @@ begin
Application.HelpFile := GetCHMPath; // may change if language changes
Application.Title := MsgFromId(SKApplicationTitle);
+ if (FMode in [fmStart, fmBoot]) then FIcon := 'appicon.ico'
+ else FIcon := 'cfgicon.ico';
+
if GetOS in [osOther] then
begin
ShowMessage(MsgFromId(SKOSNotSupported));
@@ -460,9 +463,6 @@ begin
// I1818 - remove start mode change
- if (FMode in [fmStart, fmBoot]) then FIcon := 'appicon.ico'
- else FIcon := 'cfgicon.ico';
-
FIcon := GetDebugPath(FIcon, ExtractFilePath(ParamStr(0)) + FIcon, False);
if FileExists(FIcon) then
Application.Icon.LoadFromFile(FIcon);
diff --git a/windows/src/desktop/kmshell/xml/strings.xml b/windows/src/desktop/kmshell/xml/strings.xml
index 73b9831c3b..a50d161382 100644
--- a/windows/src/desktop/kmshell/xml/strings.xml
+++ b/windows/src/desktop/kmshell/xml/strings.xml
@@ -601,7 +601,7 @@
- Keyman Update ready to install.
+ An update to Keyman has been downloaded and is ready to install.
@@ -732,6 +732,11 @@ keyboard that you use in Windows. Keyman keyboards will adapt automatically to
Update
+
+
+
+ Update Now
+
@@ -820,7 +825,10 @@ keyboard that you use in Windows. Keyman keyboards will adapt automatically to
E&xit online update check
-
+
+
+
+ Later