From d808eb5bc29a41a7edd821681da76073c4bbb900 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Sat, 12 Jan 2013 13:39:26 +0000 Subject: - iceit icon patcher sources added git-svn-id: http://svn.miranda-ng.org/main/trunk@3069 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- tools/iceit/Project1.bdsproj | 175 ++++++++++ tools/iceit/Project1.bdsproj.local | 8 + tools/iceit/Project1.cfg | 38 ++ tools/iceit/Project1.dpr | 13 + tools/iceit/Project1.exe | Bin 0 -> 493568 bytes tools/iceit/Project1.identcache | Bin 0 -> 91 bytes tools/iceit/Project1.res | Bin 0 -> 5572 bytes tools/iceit/Unit1.dcu | Bin 0 -> 23639 bytes tools/iceit/Unit1.dfm | 697 +++++++++++++++++++++++++++++++++++++ tools/iceit/Unit1.pas | 595 +++++++++++++++++++++++++++++++ tools/iceit/Utils.dcu | Bin 0 -> 2004 bytes tools/iceit/iceit.log | 0 tools/iceit/upx.exe | Bin 0 -> 271872 bytes tools/iceit/utils.pas | 66 ++++ tools/iceit/x.ico | Bin 0 -> 5430 bytes 15 files changed, 1592 insertions(+) create mode 100644 tools/iceit/Project1.bdsproj create mode 100644 tools/iceit/Project1.bdsproj.local create mode 100644 tools/iceit/Project1.cfg create mode 100644 tools/iceit/Project1.dpr create mode 100644 tools/iceit/Project1.exe create mode 100644 tools/iceit/Project1.identcache create mode 100644 tools/iceit/Project1.res create mode 100644 tools/iceit/Unit1.dcu create mode 100644 tools/iceit/Unit1.dfm create mode 100644 tools/iceit/Unit1.pas create mode 100644 tools/iceit/Utils.dcu create mode 100644 tools/iceit/iceit.log create mode 100644 tools/iceit/upx.exe create mode 100644 tools/iceit/utils.pas create mode 100644 tools/iceit/x.ico diff --git a/tools/iceit/Project1.bdsproj b/tools/iceit/Project1.bdsproj new file mode 100644 index 0000000000..90f6d50082 --- /dev/null +++ b/tools/iceit/Project1.bdsproj @@ -0,0 +1,175 @@ + + + + + + + + + + + + Project1.dpr + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + + + + + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + False + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 1049 + 1251 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + diff --git a/tools/iceit/Project1.bdsproj.local b/tools/iceit/Project1.bdsproj.local new file mode 100644 index 0000000000..5153b9a118 --- /dev/null +++ b/tools/iceit/Project1.bdsproj.local @@ -0,0 +1,8 @@ + + + + 2007.08.24 16:31:46.093.pas,C:\Documents and Settings\induction\Мои документы\Borland Studio Projects\Unit1.pas=C:\ARHIV\PROG\ICERES\Unit1.pas + 2007.08.24 16:31:46.093.dfm,C:\Documents and Settings\induction\Мои документы\Borland Studio Projects\Unit1.dfm=C:\ARHIV\PROG\ICERES\Unit1.dfm + 2007.08.24 16:31:50.359.bdsproj,C:\Documents and Settings\induction\Мои документы\Borland Studio Projects\Project1.bdsproj=C:\ARHIV\PROG\ICERES\Project1.bdsproj + + diff --git a/tools/iceit/Project1.cfg b/tools/iceit/Project1.cfg new file mode 100644 index 0000000000..367c22269e --- /dev/null +++ b/tools/iceit/Project1.cfg @@ -0,0 +1,38 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-LE"C:\Users\Administrator\Documents\Borland Studio Projects\Bpl" +-LN"C:\Users\Administrator\Documents\Borland Studio Projects\Bpl" +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/tools/iceit/Project1.dpr b/tools/iceit/Project1.dpr new file mode 100644 index 0000000000..08b344c5f1 --- /dev/null +++ b/tools/iceit/Project1.dpr @@ -0,0 +1,13 @@ +program Project1; + +uses + Forms, + Unit1 in 'Unit1.pas' {Form1}; + +{$R *.res} + +begin + Application.Initialize; + Application.CreateForm(TForm1, Form1); + Application.Run; +end. diff --git a/tools/iceit/Project1.exe b/tools/iceit/Project1.exe new file mode 100644 index 0000000000..aee17f3773 Binary files /dev/null and b/tools/iceit/Project1.exe differ diff --git a/tools/iceit/Project1.identcache b/tools/iceit/Project1.identcache new file mode 100644 index 0000000000..db63ec0c60 Binary files /dev/null and b/tools/iceit/Project1.identcache differ diff --git a/tools/iceit/Project1.res b/tools/iceit/Project1.res new file mode 100644 index 0000000000..20b614bff8 Binary files /dev/null and b/tools/iceit/Project1.res differ diff --git a/tools/iceit/Unit1.dcu b/tools/iceit/Unit1.dcu new file mode 100644 index 0000000000..1761f10055 Binary files /dev/null and b/tools/iceit/Unit1.dcu differ diff --git a/tools/iceit/Unit1.dfm b/tools/iceit/Unit1.dfm new file mode 100644 index 0000000000..668d8cab85 --- /dev/null +++ b/tools/iceit/Unit1.dfm @@ -0,0 +1,697 @@ +object Form1: TForm1 + Left = 0 + Top = 0 + BorderIcons = [biSystemMenu, biMinimize] + BorderStyle = bsSingle + Caption = 'Miranda ICE Icon pack patcher | v.0.2.b' + ClientHeight = 320 + ClientWidth = 336 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + Icon.Data = { + 000001000200101000000100200068040000260000002020000001002000A810 + 00008E0400002800000010000000200000000100200000000000400400000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000A0000001F292929354343433D232323360000 + 00300000002E0000001F0000000A000000000000000000000000000000000000 + 00000000000085672D69896E39D8907540FF957B49FFDAD2C1FF957B49FF9075 + 40FF7E6433EB56431CA30000001F000000000000000000000000000000000000 + F902000000008B6F38D2E7E2D7FFFBFAF9FFFFFFFFFFFFFFFFFFFFFFFFFFFAFA + F8FFE2DDD4FF7D6332EB0000002E00000000000000000000FC020000FF5F0045 + FF9E00C1FF09886B33FFE3DBCCFFEBE6DBFFA99266FFFBFAF9FF9E885FFFE6E2 + D8FFD8D0C1FF886B33FF00000030000000000000FF010000FF9200AEFFF800CB + FF6E000000007F6023FFB89D68FFFAF8F5FFB49B6AFFB09666FFAD9465FFF9F7 + F4FF9F8659FF7F6023FF00000030000000000000FF6100B0FFFF00CBFFCE00EF + FF050000FF03785717FFBD9D60FFE3D7C0FFD0C3ACFFFCFBF9FFD0C3ACFFDDD2 + BBFFA68951FF785717FF000000300000FF080063FFF000F1FFFF00D4FF520000 + 00000035FF95785717FFC4A15DFFCAAD74FFFDFCFAFFCAB07DFFFDFCFAFFBEA2 + 6CFFAE8D4EFF785717FF000019330000FF4F00D6FFFF00F7FFFF009BFF900058 + FFA500DCFFFF785717FFCCA65EFFD0AE6DFFEBDFC6FFFFFFFFFFE9DDC4FFC4A4 + 66FFBA9652FF785717FF00069C500009FF9F0CF9FFFF0CFCFFFF09F9FFFF0CF9 + FFFF01E6FFFF607445FEBE9951FFD0AB64FFD8B97DFFFDFCFAFFD4B57AFFCAA6 + 60FFB6924DFF61703FFF0010EC8A0000FFE41CF1FFFF24FFFFFF24FFFFFF00A5 + FFFF0060FFFF44BDA4FF605F45FF785717FF806226FF876A31FF806226FF7857 + 17FF677845FF3AABA4FF0000FFC00000FFE30032FFFF0088FFFF0042FFFF0000 + FFFF0022FFFF3AFFFFFF3AFFFFFF3AFFFFFF35F9FFFF0001FFFF0000FFFF004D + FFFF0088FFFF0027FFFF0000FFBC0000FF880000FFC50000FFC50000FFC50000 + FFC50000FFC63ADCFFFD55FFFFFF55FFFFFF1FB0FFF60000FFC60000FFC50000 + FFC50000FFC50000FFC50000FF65000000000000000000000000000000000000 + 0000000000000163FF774AD6FFFD3FC6FFF5076EFF3E00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000001FF090001FF050000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FE000000FC000000F4000000C00000008400 + 000080000000080000000000000000000000000000000000000000000000FC3F + 0000FE7F0000FFFF0000FFFF0000280000002000000040000000010020000000 + 0000801000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000A0000000A0000001F0000001F2626 + 2635262626354242423D4242423D212121362121213600000030000000300000 + 002E0000002E0000001F0000001F0000000A0000000A00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000A0000000A0000001F0000001F2626 + 2635262626354242423D4242423D212121362121213600000030000000300000 + 002E0000002E0000001F0000001F0000000A0000000A00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000083662A6983662A69886D38D8886D38D8907540FF907540FF957B + 49FF957B49FFDAD2C1FFDAD2C1FF957B49FF957B49FF907540FF907540FF7D63 + 33EB7D6333EB54411AA354411AA30000001F0000001F00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000083662A6983662A69886D38D8886D38D8907540FF907540FF957B + 49FF957B49FFDAD2C1FFDAD2C1FF957B49FF957B49FF907540FF907540FF7D63 + 33EB7D6333EB54411AA354411AA30000001F0000001F00000000000000000000 + 0000000000000000000000000000000000000000000000007F0200007F020000 + 0000000000008A6E37D28A6E37D2E7E2D7FFE7E2D7FFFBFAF9FFFBFAF9FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAF8FFFAFAF8FFE2DD + D4FFE2DDD4FF7C6231EB7C6231EB0000002E0000002E00000000000000000000 + 0000000000000000000000000000000000000000000000007F0200007F020000 + 0000000000008A6E37D28A6E37D2E7E2D7FFE7E2D7FFFBFAF9FFFBFAF9FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAF8FFFAFAF8FFE2DD + D4FFE2DDD4FF7C6231EB7C6231EB0000002E0000002E00000000000000000000 + 00000000000000007F0200007F020000FF5F0000FF5F0043FF9E0043FF9E00AA + FF0900AAFF09886B33FF886B33FFE3DBCCFFE3DBCCFFEBE6DBFFEBE6DBFFA992 + 66FFA99266FFFBFAF9FFFBFAF9FF9E885FFF9E885FFFE6E2D8FFE6E2D8FFD8D0 + C1FFD8D0C1FF886B33FF886B33FF000000300000003000000000000000000000 + 00000000000000007F0200007F020000FF5F0000FF5F0043FF9E0043FF9E00AA + FF0900AAFF09886B33FF886B33FFE3DBCCFFE3DBCCFFEBE6DBFFEBE6DBFFA992 + 66FFA99266FFFBFAF9FFFBFAF9FF9E885FFF9E885FFFE6E2D8FFE6E2D8FFD8D0 + C1FFD8D0C1FF886B33FF886B33FF000000300000003000000000000000000000 + FF010000FF010000FF920000FF9200ADFFF800ADFFF800C8FF6E00C8FF6E0000 + 0000000000007F6023FF7F6023FFB89D68FFB89D68FFFAF8F5FFFAF8F5FFB49B + 6AFFB49B6AFFB09666FFB09666FFAD9465FFAD9465FFF9F7F4FFF9F7F4FF9F86 + 59FF9F8659FF7F6023FF7F6023FF000000300000003000000000000000000000 + FF010000FF010000FF920000FF9200ADFFF800ADFFF800C8FF6E00C8FF6E0000 + 0000000000007F6023FF7F6023FFB89D68FFB89D68FFFAF8F5FFFAF8F5FFB49B + 6AFFB49B6AFFB09666FFB09666FFAD9465FFAD9465FFF9F7F4FFF9F7F4FF9F86 + 59FF9F8659FF7F6023FF7F6023FF000000300000003000000000000000000000 + FF610000FF6100B0FFFF00B0FFFF00C9FFCE00C9FFCE00CCFF0500CCFF050000 + FF030000FF03785717FF785717FFBD9D60FFBD9D60FFE3D7C0FFE3D7C0FFD0C3 + ACFFD0C3ACFFFCFBF9FFFCFBF9FFD0C3ACFFD0C3ACFFDDD2BBFFDDD2BBFFA689 + 51FFA68951FF785717FF785717FF000000300000003000000000000000000000 + FF610000FF6100B0FFFF00B0FFFF00C9FFCE00C9FFCE00CCFF0500CCFF050000 + FF030000FF03785717FF785717FFBD9D60FFBD9D60FFE3D7C0FFE3D7C0FFD0C3 + ACFFD0C3ACFFFCFBF9FFFCFBF9FFD0C3ACFFD0C3ACFFDDD2BBFFDDD2BBFFA689 + 51FFA68951FF785717FF785717FF00000030000000300000FF080000FF080062 + FFF00062FFF000F1FFFF00F1FFFF00D3FE5200D3FE5200000000000000000033 + FE950033FE95785717FF785717FFC4A15DFFC4A15DFFCAAD74FFCAAD74FFFDFC + FAFFFDFCFAFFCAB07DFFCAB07DFFFDFCFAFFFDFCFAFFBEA26CFFBEA26CFFAE8D + 4EFFAE8D4EFF785717FF785717FF00001933000019330000FF080000FF080062 + FFF00062FFF000F1FFFF00F1FFFF00D3FE5200D3FE5200000000000000000033 + FE950033FE95785717FF785717FFC4A15DFFC4A15DFFCAAD74FFCAAD74FFFDFC + FAFFFDFCFAFFCAB07DFFCAB07DFFFDFCFAFFFDFCFAFFBEA26CFFBEA26CFFAE8D + 4EFFAE8D4EFF785717FF785717FF00001933000019330000FF4F0000FF4F00D6 + FFFF00D6FFFF00F7FFFF00F7FFFF009AFF90009AFF900056FFA50056FFA500DC + FFFF00DCFFFF785717FF785717FFCCA65EFFCCA65EFFD0AE6DFFD0AE6DFFEBDF + C6FFEBDFC6FFFFFFFFFFFFFFFFFFE9DDC4FFE9DDC4FFC4A466FFC4A466FFBA96 + 52FFBA9652FF785717FF785717FF00039950000399500000FF4F0000FF4F00D6 + FFFF00D6FFFF00F7FFFF00F7FFFF009AFF90009AFF900056FFA50056FFA500DC + FFFF00DCFFFF785717FF785717FFCCA65EFFCCA65EFFD0AE6DFFD0AE6DFFEBDF + C6FFEBDFC6FFFFFFFFFFFFFFFFFFE9DDC4FFE9DDC4FFC4A466FFC4A466FFBA96 + 52FFBA9652FF785717FF785717FF00039950000399500008FF9F0008FF9F0CF9 + FFFF0CF9FFFF0CFCFFFF0CFCFFFF09F9FFFF09F9FFFF0CF9FFFF0CF9FFFF01E6 + FFFF01E6FFFF5F7344FE5F7344FEBE9951FFBE9951FFD0AB64FFD0AB64FFD8B9 + 7DFFD8B97DFFFDFCFAFFFDFCFAFFD4B57AFFD4B57AFFCAA660FFCAA660FFB692 + 4DFFB6924DFF61703FFF61703FFF000EEA8A000EEA8A0008FF9F0008FF9F0CF9 + FFFF0CF9FFFF0CFCFFFF0CFCFFFF09F9FFFF09F9FFFF0CF9FFFF0CF9FFFF01E6 + FFFF01E6FFFF5F7344FE5F7344FEBE9951FFBE9951FFD0AB64FFD0AB64FFD8B9 + 7DFFD8B97DFFFDFCFAFFFDFCFAFFD4B57AFFD4B57AFFCAA660FFCAA660FFB692 + 4DFFB6924DFF61703FFF61703FFF000EEA8A000EEA8A0000FFE40000FFE41CF1 + FFFF1CF1FFFF24FFFFFF24FFFFFF24FFFFFF24FFFFFF00A5FFFF00A5FFFF0060 + FFFF0060FFFF44BDA4FF44BDA4FF605F45FF605F45FF785717FF785717FF8062 + 26FF806226FF876A31FF876A31FF806226FF806226FF785717FF785717FF6778 + 45FF677845FF3AABA4FF3AABA4FF0000FFC00000FFC00000FFE40000FFE41CF1 + FFFF1CF1FFFF24FFFFFF24FFFFFF24FFFFFF24FFFFFF00A5FFFF00A5FFFF0060 + FFFF0060FFFF44BDA4FF44BDA4FF605F45FF605F45FF785717FF785717FF8062 + 26FF806226FF876A31FF876A31FF806226FF806226FF785717FF785717FF6778 + 45FF677845FF3AABA4FF3AABA4FF0000FFC00000FFC00000FFE30000FFE30032 + FFFF0032FFFF0088FFFF0088FFFF0042FFFF0042FFFF0000FFFF0000FFFF0022 + FFFF0022FFFF3AFFFFFF3AFFFFFF3AFFFFFF3AFFFFFF3AFFFFFF3AFFFFFF35F9 + FFFF35F9FFFF0001FFFF0001FFFF0000FFFF0000FFFF004DFFFF004DFFFF0088 + FFFF0088FFFF0027FFFF0027FFFF0000FEBC0000FEBC0000FFE30000FFE30032 + FFFF0032FFFF0088FFFF0088FFFF0042FFFF0042FFFF0000FFFF0000FFFF0022 + FFFF0022FFFF3AFFFFFF3AFFFFFF3AFFFFFF3AFFFFFF3AFFFFFF3AFFFFFF35F9 + FFFF35F9FFFF0001FFFF0001FFFF0000FFFF0000FFFF004DFFFF004DFFFF0088 + FFFF0088FFFF0027FFFF0027FFFF0000FEBC0000FEBC0000FF880000FF880000 + FFC50000FFC50000FFC50000FFC50000FFC50000FFC50000FFC50000FFC50000 + FFC60000FFC639DBFFFD39DBFFFD55FFFFFF55FFFFFF55FFFFFF55FFFFFF1EAF + FFF61EAFFFF60000FFC60000FFC60000FFC50000FFC50000FFC50000FFC50000 + FFC50000FFC50000FFC50000FFC50000FF650000FF650000FF880000FF880000 + FFC50000FFC50000FFC50000FFC50000FFC50000FFC50000FFC50000FFC50000 + FFC60000FFC639DBFFFD39DBFFFD55FFFFFF55FFFFFF55FFFFFF55FFFFFF1EAF + FFF61EAFFFF60000FFC60000FFC60000FFC50000FFC50000FFC50000FFC50000 + FFC50000FFC50000FFC50000FFC50000FF650000FF6500000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000062FF770062FF7749D5FFFD49D5FFFD3EC5FFF53EC5FFF5046A + FF3E046AFF3E0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000062FF770062FF7749D5FFFD49D5FFFD3EC5FFF53EC5FFF5046A + FF3E046AFF3E0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000FF090000FF090000FF050000FF050000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000FF090000FF090000FF050000FF050000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000FFFC0000FFFC0000FFF0 + 0000FFF00000FF300000FF300000F0000000F0000000C0300000C0300000C000 + 0000C000000000C0000000C00000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000FFF00FFFFFF00FFFFFFC + 3FFFFFFC3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF} + OldCreateOrder = False + Position = poDesktopCenter + OnCreate = FormCreate + OnDestroy = FormDestroy + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 8 + Top = 51 + Width = 120 + Height = 13 + Caption = 'Available ICE Resources:' + end + object Label2: TLabel + Left = 8 + Top = 8 + Width = 114 + Height = 13 + Caption = 'Path to Miranda32.exe:' + end + object CheckListBox1: TCheckListBox + Left = 8 + Top = 68 + Width = 319 + Height = 196 + Flat = False + IntegralHeight = True + ItemHeight = 16 + Style = lbOwnerDrawFixed + TabOrder = 0 + OnDrawItem = CheckListBox1DrawItem + end + object Button1: TButton + Left = 8 + Top = 270 + Width = 75 + Height = 25 + Caption = 'Select All' + TabOrder = 1 + OnClick = Button1Click + end + object Button2: TButton + Left = 89 + Top = 270 + Width = 75 + Height = 25 + Caption = 'Nothing' + TabOrder = 2 + OnClick = Button2Click + end + object Button3: TButton + Left = 253 + Top = 270 + Width = 75 + Height = 25 + Caption = 'ICE It...' + TabOrder = 3 + OnClick = Button3Click + end + object StatusBar1: TStatusBar + Left = 0 + Top = 301 + Width = 336 + Height = 19 + Panels = < + item + Text = ' Ready' + Width = 50 + end> + end + object ProgressBar1: TProgressBar + Left = 178 + Top = 306 + Width = 153 + Height = 10 + TabOrder = 5 + end + object Edit1: TEdit + Left = 8 + Top = 24 + Width = 298 + Height = 21 + TabOrder = 6 + end + object Button4: TButton + Left = 307 + Top = 23 + Width = 20 + Height = 22 + Caption = '...' + TabOrder = 7 + OnClick = Button4Click + end + object XPManifest1: TXPManifest + Left = 54 + Top = 226 + end + object ImageList1: TImageList + Left = 22 + Top = 226 + Bitmap = { + 494C010104000900040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 0000000000003600000028000000400000003000000001002000000000000030 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000F3F3F3FFDBDB + DBFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCF + CFFFCFCFCFFFDBDBDBFFF3F3F3FF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000002678A6FF2678 + A6FF2678A6FF2678A6FF2678A6FF2678A6FF2678A6FF2678A6FF2678A6FF2678 + A6FF2678A6FF949494FFDBDBDBFF000000000000000000000000000000000000 + 00000000000000000000F8F8F8FFE4E4E4FFD4D4D4FFCFCFCFFFD1D1D1FFE0E0 + E0FFF5F5F5FF0000000000000000000000000000000000000000808080FF8080 + 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 + 80FF808080FF0000000000000000000000000000000000000000808080FF8080 + 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 + 80FF808080FF00000000000000000000000000000000268EC3FF96DEFCFF92DA + FCFF92DAFCFF8ED6FCFF8AD2FBFF8AD2FBFF8AD2FBFF8AD2FBFF82C9FAFF82C9 + FAFF2678A6FF2678A6FFCFCFCFFF000000000000000000000000000000000000 + 000000000000C4D5F0FF5786D5FF125CD7FF125CD7FF125CD7FF2560C2FF637F + AFFFC0C0C0FFCFCFCFFFDBDBDBFFF3F3F3FF0000000000000000808080FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF808080FF0000000000000000000000000000000000000000808080FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF808080FF00000000000000000000000000000000268EC3FF9AE2FCFF9AE2 + FCFF9AE2FCFF96DEFCFF92DAFCFF92DAFCFF8ED6FCFF8ED6FCFF82C9FAFF82C9 + FAFF2678A6FF2678A6FFCFCFCFFF000000000000000000000000000000000000 + 0000C9D9F5FF5D8DDBFF1CB7EFFF19CDF8FF17BEF5FF19B9F3FF20C1F2FF1B55 + B6FF746858FF8E7F6BFF9F9589FFE7E7E7FF0000000000000000808080FFFFFF + FFFFDBDBDBFFDFDFDFFFE3E1E0FFF69157FFECEAE9FFF0F0F0FFF4F4F4FFFFFF + FFFF808080FF0000000000000000000000000000000000000000808080FFFFFF + FFFFDBDBDBFFDFDFDFFFE3E3E3FFE8E8E8FFECECECFFF0F0F0FFF4F4F4FFFFFF + FFFF808080FF00000000000000000000000000000000268EC3FFA2EAFDFFA2EA + FDFFA2EAFDFFA2EAFDFF9AE2FCFF9AE2FCFF96DEFCFF92DAFCFF8AD2FBFF92DA + FCFF2678A6FF2678A6FFCFCFCFFF000000000000000000000000000000000000 + 00006796E5FF1CBBF0FF10D1FAFF09B8F6FF09A9F2FF0A9CEEFF18BBF4FF125C + D7FFCFCFCFFFFFFFFFFF8E7F6BFFF3F3F3FF0000000000000000808080FFFFFF + FFFFD6D6D6FFEAEAEAFFF5AD83FFFF5600FFF8B58FFFF7F7F7FFF0F0F0FFFFFF + FFFF808080FF0000000000000000000000000000000000000000808080FFFFFF + FFFFD6D6D6FFEAEAEAFFEDEDEDFFF1F1F1FFF3F3F3FFF7F7F7FFF0F0F0FFFFFF + FFFF808080FF000000000000000000000000268EC3FFA6EEFEFFA2EAFDFFA2EA + FDFFA2EAFDFFA2EAFDFF9AE2FCFF9AE2FCFF96DEFCFF92DAFCFF8AD2FBFF2678 + A6FF82C9FAFF2678A6FFCFCFCFFF000000000000000000000000BCDDE2FF7D96 + 99FF125CD7FF17E9FFFF08D2FDFF08C6FAFF08BAF7FF08ACF3FF17C2F5FF125C + D7FF736757FF8E7F6BFFBCB3A7FF000000000000000000000000808080FFFFFF + FFFFD2D2D2FFEAD7CCFFFE640BFFF05000FFFE6711FFF4E8E2FFECECECFFFFFF + FFFF808080FF0000000000000000000000000000000000000000808080FFFFFF + FFFFD2D2D2FFE7E7E7FFEAEAEAFFEDEDEDFFF1F1F1FFF3F3F3FFECECECFFFFFF + FFFF808080FF000000000000000000000000268EC3FF9EE6FDFF9EE6FDFF9EE6 + FDFF9EE6FDFF9EE6FDFF9EE6FDFF9EE6FDFF9EE6FDFF9EE6FDFF9EE6FDFF2678 + A6FF82C9FAFF2678A6FFCFCFCFFF000000000000000000000000ABBBBDFF7A7A + 7AFF125CD7FF15E7FFFF07D9FFFF07D2FDFF08C8FBFF08BDF8FF16CEF8FF125C + D7FFB2B2B2FFCFCFCFFFDBDBDBFFF3F3F3FF0000000000000000808080FFFFFF + FFFFCECECEFFF78543FFBE3F00FFFFA16EFFD04600FFFA9155FFE8E8E8FFFFFF + FFFF808080FF0000000000000000000000000000000000000000808080FFFFFF + FFFFCECECEFFE5E5E5FFE7E7E7FFEAEAEAFFEDEDEDFFF1F1F1FFE8E8E8FFFFFF + FFFF808080FF000000000000000000000000268EC3FFB2FAFFFFB2FAFFFFB2FA + FFFFB2FAFFFFB2FAFFFFB2FAFFFFB2FAFFFFA6EEFEFFA6EEFEFFA6EEFEFF2678 + A6FF82C9FAFF2678A6FFCFCFCFFF000000000000000000000000BCDDE2FF7D96 + 99FF125CD7FF17EAFFFF08DAFFFF07D9FFFF07D4FEFF07CBFBFF16D8FBFF125C + D7FF746858FF8E7F6BFF9F9589FFE7E7E7FF0000000000000000808080FFFFFF + FFFFDCA585FFAC3900FFCF784CFFE0CDC4FFC86A3AFFF85300FFEAC3AEFFFFFF + FFFF808080FF0000000000000000000000000000000000000000808080FFFFFF + FFFFCACACAFFE2E2E2FFE5E5E5FFE7E7E7FFEAEAEAFFEDEDEDFFE3E3E3FFFFFF + FFFF808080FF0000000000000000000000002678A6FF2678A6FF2678A6FF2678 + A6FF2678A6FF2678A6FF2678A6FF2678A6FF2678A6FF2678A6FF2678A6FFA6EE + FEFF82C9FAFF2678A6FFDBDBDBFF000000000000000000000000000000000000 + 00006796E5FF1CBEF1FF0FE2FFFF08DAFFFF07D9FFFF08D7FEFF16E2FDFF125C + D7FFE0E0E0FFFFFFFFFF8E7F6BFFF3F3F3FF0000000000000000808080FFFEFB + F9FFB05223FFCB6C3CFFD9CAC2FFE5E5E5FFD0AD9BFFAB4B1BFFF9752AFFFFFD + FCFF808080FF0000000000000000000000000000000000000000808080FFFFFF + FFFFC7C7C7FFE0E0E0FFE2E2E2FFE5E5E5FFE7E7E7FFEAEAEAFFDFDFDFFFFFFF + FFFF808080FF00000000000000000000000000000000268EC3FFAEF6FFFFAEF6 + FFFFAEF6FFFFAEF6FFFFAAF2FEFFAAF2FEFFAAF2FEFFA6EEFEFFA6EEFEFFA2EA + FDFFA2EAFDFF2678A6FFF3F3F3FF000000000000000000000000000000000000 + 0000C9D9F5FF6796E5FF1CBEF1FF17EAFFFF15E7FFFF16E9FFFF1ED6F7FF2760 + BFFF887A67FF8E7F6BFFBCB3A7FF000000000000000000000000808080FFFFFF + FFFFC4C4C4FFC7C5C3FFCACACAFFCECECEFFD2D2D2FFBD7551FF933100FFFFB7 + 8DFF808080FF0000000000000000000000000000000000000000808080FFFFFF + FFFFC4C4C4FFC7C7C7FFCACACAFFCECECEFFD2D2D2FFD6D6D6FFDBDBDBFFFFFF + FFFF808080FF00000000000000000000000000000000268EC3FF9EE6FDFF9AE2 + FCFF9AE2FCFF96DEFCFF96DEFCFF96DEFCFF96DEFCFF8AD2FBFF268EC3FF268E + C3FF268EC3FF0000000000000000000000000000000000000000000000000000 + 000000000000C9D9F5FF6796E5FF125CD7FF125CD7FF125CD7FF417CDFFFA2BF + EFFF000000000000000000000000000000000000000000000000808080FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF6F3FFB25221FFFF62 + 0CFF8D7C72FF0000000000000000000000000000000000000000808080FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF808080FF0000000000000000000000000000000000000000268EC3FFAAF2 + FEFFAAF2FEFFAAF2FEFFA6EEFEFFA6EEFEFF8AD2FBFF268EC3FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000808080FF8080 + 80FF808080FF808080FF808080FF808080FF808080FF808080FF8B7062FFBB57 + 25FFD2692DFF0000000000000000000000000000000000000000808080FF8080 + 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 + 80FF808080FF000000000000000000000000000000000000000000000000268E + C3FF268EC3FF268EC3FF268EC3FF268EC3FF268EC3FFF3F3F3FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C992 + 76FF933100FFF5CDB6FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D6875FFFB05323FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 2800000040000000300000000100010000000000800100000000000000000000 + 000000000000000000000000FFFFFF0000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFC001 + FFFFFFFFFFFFC001FC07C007C0078001F800C007C0078001F000C007C0078001 + F000C007C0070001C001C007C0070001C000C007C0070001C000C007C0070001 + F000C007C0078001F001C007C0078007F80FC007C007C03FFFFFC007C007E03F + FFFFFFE3FFFFFFFFFFFFFFF3FFFFFFFF00000000000000000000000000000000 + 000000000000} + end + object OpenDialog1: TOpenDialog + Filter = 'Miranda32.exe|Miranda32.exe' + InitialDir = '.' + Title = 'Path to Miranda32.exe' + Left = 86 + Top = 226 + end +end diff --git a/tools/iceit/Unit1.pas b/tools/iceit/Unit1.pas new file mode 100644 index 0000000000..db51542ebf --- /dev/null +++ b/tools/iceit/Unit1.pas @@ -0,0 +1,595 @@ +unit Unit1; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, CheckLst, XPMan, ImgList, ComCtrls, Utils; + +type + TForm1 = class(TForm) + XPManifest1: TXPManifest; + ImageList1: TImageList; + CheckListBox1: TCheckListBox; + Label1: TLabel; + Button1: TButton; + Button2: TButton; + Button3: TButton; + StatusBar1: TStatusBar; + ProgressBar1: TProgressBar; + Edit1: TEdit; + Label2: TLabel; + Button4: TButton; + OpenDialog1: TOpenDialog; + procedure CheckListBox1DrawItem(Control: TWinControl; Index: Integer; + Rect: TRect; State: TOwnerDrawState); + procedure FormCreate(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure Button4Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure FormDestroy(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + procedure Error(const Msg: String); + procedure ErrorWithLastError(const Msg: String); + procedure ClearIconGroups(const FileName: String; IconGroups: TStringList); + function AddIcons(const FileName, IcoName: String; IconGroups: TStringList): Boolean; + function GetIconGroups(const FileName: String; var IconGroups: TStringList): Boolean; + function ProgressUpdate(const Filename, IcoName: String): Boolean; + end; + + PIcoItemHeader = ^TIcoItemHeader; + TIcoItemHeader = packed record + Width: Byte; + Height: Byte; + Colors: Byte; + Reserved: Byte; + Planes: Word; + BitCount: Word; + ImageSize: DWORD; + end; + PIcoItem = ^TIcoItem; + TIcoItem = packed record + Header: TIcoItemHeader; + Offset: DWORD; + end; + PIcoHeader = ^TIcoHeader; + TIcoHeader = packed record + Reserved: Word; + Typ: Word; + ItemCount: Word; + Items: array [0..MaxInt shr 4 - 1] of TIcoItem; + end; + PGroupIconDirItem = ^TGroupIconDirItem; + TGroupIconDirItem = packed record + Header: TIcoItemHeader; + Id: Word; + end; + PGroupIconDir = ^TGroupIconDir; + TGroupIconDir = packed record + Reserved: Word; + Typ: Word; + ItemCount: Word; + Items: array [0..MaxInt shr 4 - 1] of TGroupIconDirItem; + end; + + function EnumResNamesProc(module: HMODULE; ResType, ResName: PChar; List: TStrings): Integer; stdcall; + function StockResourceType(ResType: PChar): string; + function EnumResTypesProc(module: HMODULE; ResType: PChar; List: TStrings): Integer; stdcall; + function EnumLangsFunc(hModule: Cardinal; lpType, lpName: PAnsiChar; wLanguage: Word; lParam: Integer): Boolean; stdcall; + function GetResourceLanguage(hModule: Cardinal; lpType, lpName: PAnsiChar; var wLanguage: Word): Boolean; + function IsValidIcon(P: Pointer; Size: Cardinal): Boolean; + +var + Form1: TForm1; + IconsItem, PluginsItem: Integer; + IcePath: String; + MirandaPath: String; + +implementation + +{$R *.dfm} + +var + Log: TextFile; + +procedure TForm1.Error(const Msg: String); +begin + StatusBar1.Panels[0].Text := 'Error: ' + Msg; + WriteLn(Log, 'Error: ' + Msg); + // raise Exception.Create('Error: ' + Msg); +end; + +procedure TForm1.ErrorWithLastError(const Msg: String); +begin + Error(Msg + '(' + IntToStr(GetLastError) + ')'); +end; + +function EnumResNamesProc(module: HMODULE; ResType, ResName: PChar; + List: TStrings): Integer; stdcall; +begin +{ + if HiWord(Cardinal(ResName)) <> 0 then + List.Add(' ' + ResName) + else + List.Add(Format(' #%d', [LoWord(Cardinal(ResName))])); +} + List.Add(Format('%d', [LoWord(Cardinal(ResName))])); + Result := 1; +end; + +function StockResourceType(ResType: PChar): string; +const + ResTypeNames: Array [1..22] of String = + ('RT_CURSOR', // = MakeIntResource(1); + 'RT_BITMAP', // = MakeIntResource(2); + 'RT_ICON', // = MakeIntResource(3); + 'RT_MENU', // = MakeIntResource(4); + 'RT_DIALOG', // = MakeIntResource(5); + 'RT_STRING', // = MakeIntResource(6); + 'RT_FONTDIR', // = MakeIntResource(7); + 'RT_FONT', // = MakeIntResource(8); + 'RT_ACCELERATOR', // = MakeIntResource(9); + 'RT_RCDATA', // = MakeIntResource(10); + 'RT_MESSAGETABLE', // = MakeIntResource(11); + // DIFFERENCE = 11; + 'RT_GROUP_CURSOR', // = MakeIntResource(DWORD(RT_CURSOR +7DIFFERENCE)); + 'UNKNOWN', // 13 not used + 'RT_GROUP_ICON', // = MakeIntResource(DWORD(RT_ICON +DIFFERENCE)); + 'UNKNOWN', // 15 not used + 'RT_VERSION', // = MakeIntResource(16); + 'RT_DLGINCLUDE', // = MakeIntResource(17); + 'UNKNOWN', + 'RT_PLUGPLAY', // = MakeIntResource(19); + 'RT_VXD', // = MakeIntResource(20); + 'RT_ANICURSOR', // = MakeIntResource(21); + 'RT_ANIICON' // = MakeIntResource(22); + ); +var + ResId: Cardinal absolute ResType; +begin + if ResId in [1..22] then + Result := ResTypeNames[ResId] + else + Result := 'UNKNOWN'; +end; + +function EnumResTypesProc(module: HMODULE; ResType: PChar; List: TStrings): Integer; stdcall; +begin +{ + if HiWord(Cardinal(restype)) <> 0 then + List.Add(restype) + else + List.Add(Format('Stock type %d: %s', [LoWord(Cardinal(ResType)), + StockResourcetype(ResType)])); + EnumResourceNames(module, restype, @EnumResNamesProc, Integer(List)); +} + if StockResourcetype(ResType) = 'RT_GROUP_ICON' then + EnumResourceNames(module, restype, @EnumResNamesProc, Integer(List)); + Result := 1; +end; + +function EnumLangsFunc(hModule: Cardinal; lpType, lpName: PAnsiChar; wLanguage: Word; lParam: Integer): Boolean; stdcall; +begin + PWord(lParam)^ := wLanguage; + Result := False; +end; + +function GetResourceLanguage(hModule: Cardinal; lpType, lpName: PAnsiChar; var wLanguage: Word): Boolean; +begin + wLanguage := 0; + EnumResourceLanguages(hModule, lpType, lpName, @EnumLangsFunc, Integer(@wLanguage)); + Result := True; +end; + +procedure TForm1.ClearIconGroups(const FileName: String; IconGroups: TStringList); +var + H: THandle; + M: HMODULE; + R: HRSRC; + Res: HGLOBAL; + GroupIconDir: PGroupIconDir; + n, I: Integer; + wLanguage: Word; + ResName: PAnsiChar; +begin + { Update the resources } + H := BeginUpdateResource(PChar(FileName), False); + if H = 0 then + ErrorWithLastError('BeginUpdateResource failed (' + FileName + ')'); + try + M := LoadLibraryEx(PChar(FileName), 0, LOAD_LIBRARY_AS_DATAFILE); + if M = 0 then + ErrorWithLastError('LoadLibraryEx failed [1] (' + FileName + ')'); + try + for n := 0 to IconGroups.Count-1 do + begin + { Load the 'MAINICON' group icon resource } + ResName := MakeIntResource(StrToInt(IconGroups[n])); + R := FindResource(M, ResName, RT_GROUP_ICON); + if R = 0 then + ErrorWithLastError('FindResource failed [1] ' + FileName + ')'); + Res := LoadResource(M, R); + if Res = 0 then + ErrorWithLastError('LoadResource failed [1] (' + FileName + ')'); + GroupIconDir := LockResource(Res); + if GroupIconDir = nil then + ErrorWithLastError('LockResource failed [1] (' + FileName + ')'); + { Delete 'RT_GROUP_ICON' } + if not GetResourceLanguage(M, RT_GROUP_ICON, ResName, wLanguage) then + Error('GetResourceLanguage failed (1)'); + if not UpdateResource(H, RT_GROUP_ICON, ResName, wLanguage, nil, 0) then + ErrorWithLastError('UpdateResource failed [1] (' + FileName + ')'); + { Delete the RT_ICON icon resources that belonged to 'RT_GROUP_ICON' } + for I := 0 to GroupIconDir.ItemCount-1 do begin + if not GetResourceLanguage(M, RT_ICON, MakeIntResource(GroupIconDir.Items[I].Id), wLanguage) then + Error('GetResourceLanguage failed [2] (' + FileName + ')'); + if not UpdateResource(H, RT_ICON, MakeIntResource(GroupIconDir.Items[I].Id), wLanguage, nil, 0) then + ErrorWithLastError('UpdateResource failed [2] (' + FileName + ')'); + end; + end; + finally + FreeLibrary(M); + end; + except + EndUpdateResource(H, True); { discard changes } + raise; + end; + if not EndUpdateResource(H, False) then + ErrorWithLastError('EndUpdateResource failed'); +end; + +function IsValidIcon(P: Pointer; Size: Cardinal): Boolean; +{ +var + ItemCount: Cardinal; +} +begin + { + Result := False; + if Size < Cardinal(SizeOf(Word) * 3) then + Exit; + if (PChar(P)[0] = 'M') and (PChar(P)[1] = 'Z') then + Exit; + ItemCount := PIcoHeader(P).ItemCount; + if Size < Cardinal((SizeOf(Word) * 3) + (ItemCount * SizeOf(TIcoItem))) then + Exit; + P := @PIcoHeader(P).Items; + while ItemCount > Cardinal(0) do begin + if (Cardinal(PIcoItem(P).Offset + PIcoItem(P).Header.ImageSize) < Cardinal(PIcoItem(P).Offset)) or + (Cardinal(PIcoItem(P).Offset + PIcoItem(P).Header.ImageSize) > Cardinal(Size)) then + Exit; + Inc(PIcoItem(P)); + Dec(ItemCount); + end; + } + Result := True; +end; + +function TForm1.AddIcons(const FileName, IcoName: String; IconGroups: TStringList): Boolean; +var + H: THandle; + M: HMODULE; + NewGroupIconDir: PGroupIconDir; + n, I, e: Integer; + F: TFileStream; + Ico: PIcoHeader; + NewGroupIconDirSize: LongInt; + IcoFileName: String; + ResName: PAnsiChar; + Size: Cardinal; +begin + Result := True; + e := 1; + for n := 0 to IconGroups.Count-1 do + begin + Application.ProcessMessages; + Ico := nil; + try + { Load the icons } + case n of + 0..8 : IcoFileName := IcoName + ' 00' + IntToStr(n+1) + '.ico'; + 9..98 : IcoFileName := IcoName + ' 0' + IntToStr(n+1) + '.ico'; + 99 : IcoFileName := IcoName + ' ' + IntToStr(n+1) + '.ico'; + end; + if not FileExists(IcoFileName) then + begin + Error('Icon ' + IcoFileName + ' not found'); + Break; + end; + ResName := MakeIntResource(StrToInt(IconGroups[n])); + { Load the icons } + F := TFileStream.Create(IcoFileName, fmOpenRead); + try + Size := F.Size; + if Cardinal(Size) > Cardinal($100000) then { sanity check } + Error('Icon file ' + IcoFileName + ' is too large'); + GetMem(Ico, Size); + F.ReadBuffer(Ico^, Size); + finally + F.Free; + end; + + { Ensure the icon is valid } + if not IsValidIcon(Ico, N) then + Error('Icon file ' + IcoFileName + ' is invalid'); + + { Update the resources } + H := BeginUpdateResource(PChar(FileName), False); + if H = 0 then + ErrorWithLastError('BeginUpdateResource failed (' + FileName + ')'); + try + M := LoadLibraryEx(PChar(FileName), 0, LOAD_LIBRARY_AS_DATAFILE); + if M = 0 then + ErrorWithLastError('LoadLibraryEx failed (' + FileName + ')'); + try + { Build the new group icon resource } + NewGroupIconDirSize := 3*SizeOf(Word)+Ico.ItemCount*SizeOf(TGroupIconDirItem); + GetMem(NewGroupIconDir, NewGroupIconDirSize); + try + { Build the new group icon resource } + NewGroupIconDir.Reserved := 0; + NewGroupIconDir.Typ := 1; + NewGroupIconDir.ItemCount := Ico.ItemCount; + for I := 0 to NewGroupIconDir.ItemCount-1 do begin + NewGroupIconDir.Items[I].Header := Ico.Items[I].Header; + NewGroupIconDir.Items[I].Id := e; //assumes that there aren't any icons left + inc(e); + end; + + { Update 'MAINICON' } + for I := 0 to NewGroupIconDir.ItemCount-1 do + if not UpdateResource(H, RT_ICON, MakeIntResource(NewGroupIconDir.Items[I].Id), 1033, Pointer(DWORD(Ico) + Ico.Items[I].Offset), Ico.Items[I].Header.ImageSize) then + ErrorWithLastError('UpdateResource failed (' + FileName + ')'); + + { Update the icons } + if not UpdateResource(H, RT_GROUP_ICON, ResName, 1033, NewGroupIconDir, NewGroupIconDirSize) then + ErrorWithLastError('UpdateResource failed (' + FileName + ')'); + finally + FreeMem(NewGroupIconDir); + end; + finally + FreeLibrary(M); + end; + except + EndUpdateResource(H, True); { discard changes } + raise; + end; + if not EndUpdateResource(H, False) then + ErrorWithLastError('EndUpdateResource failed'); + Result := False; + finally + FreeMem(Ico); + end; + end; +end; + +function TForm1.GetIconGroups(const FileName: String; var IconGroups: TStringList): Boolean; +var + M: HMODULE; +begin + M := LoadLibraryEx(PChar(FileName), 0, LOAD_LIBRARY_AS_DATAFILE); + try + Result := EnumResourceTypes(M, @EnumResTypesProc, Integer(IconGroups)); + finally + FreeLibrary(M); + end; +end; + +procedure TForm1.Button1Click(Sender: TObject); +var n: Integer; +begin + for n := 0 to CheckListBox1.Items.Count - 1 do + CheckListBox1.Items[n] := SetValue(CheckListBox1.Items[n], 1, 'NONE'); + for n := 0 to CheckListBox1.Items.Count - 1 do + CheckListBox1.Checked[n] := True; +end; + +procedure TForm1.Button2Click(Sender: TObject); +var n: Integer; +begin + for n := 0 to CheckListBox1.Items.Count - 1 do + CheckListBox1.Items[n] := SetValue(CheckListBox1.Items[n], 1, 'NONE'); + for n := 0 to CheckListBox1.Items.Count - 1 do + CheckListBox1.Checked[n] := False; +end; + +procedure TForm1.Button3Click(Sender: TObject); +var + n: Integer; + S: String; + F: String; + xFilePath: String; + xIcoPath: String; + xTemp: String; + MaxCount: Integer; +begin + if FileExists(Edit1.Text) then + begin + MaxCount := 0; + for n := 0 to CheckListBox1.Items.Count - 1 do + if CheckListBox1.Checked[n] then inc(MaxCount); + for n := 0 to CheckListBox1.Items.Count - 1 do + CheckListBox1.Items[n] := SetValue(CheckListBox1.Items[n], 1, 'NONE'); + MirandaPath := ExtractFileDir(Edit1.Text); + ProgressBar1.Min := 0; + ProgressBar1.Max := MaxCount; + for n := 0 to CheckListBox1.Items.Count - 1 do + if (CheckListBox1.Checked[n]) and not (CheckListBox1.Header[n]) then + begin + ProgressBar1.Position := n; + S := GetValue(CheckListBox1.Items[n], 0); + S := LowerCase(S); + if n < PluginsItem then F := '\icons' else F := '\plugins'; + StatusBar1.Panels[0].Text := ' Processing: ' + S; + if (S = 'miranda32') or (S = 'dbtool') then + begin + xFilePath := MirandaPath + '\' + S + '.exe'; + xIcoPath := IcePath + F + '\' + S + '\' + S; + end else begin + xFilePath := MirandaPath + F + '\' + S + '.dll'; + xIcoPath := IcePath + F + '\' + S + '\' + S; + end; + CheckListBox1.Items[n] := SetValue(CheckListBox1.Items[n], 1, 'PROGRESS'); + CheckListBox1.ItemIndex := n; + if not FileExists(xFilePath) then + CheckListBox1.Items[n] := SetValue(CheckListBox1.Items[n], 1, 'PASS') + else begin + xTemp := xFilePath + '.temp'; + CopyFile(PChar(xFilePath), Pchar(xTemp), False); + if not ProgressUpdate(xTemp, xIcoPath) <> True then + begin + CheckListBox1.Items[n] := SetValue(CheckListBox1.Items[n], 1, 'ERROR') + end else begin + CheckListBox1.Items[n] := SetValue(CheckListBox1.Items[n], 1, 'SUCCESS'); + end; + if GetValue(CheckListBox1.Items[n], 1) = 'SUCCESS' then + begin + DeleteFile(xFilePath); + MoveFile(PChar(xTemp), PChar(xFilePath)); + end; + end; + if FileExists(xTemp) then DeleteFile(xTemp); + end; + end else begin + Edit1.Text := 'Enter path to Mirenda32.exe here or click this button ------>'; + Edit1.SelectAll; + Edit1.SetFocus; + end; + ProgressBar1.Position := 0; + StatusBar1.Panels[0].Text := ' Ready'; + if FileSize(Log) = 0 then DeleteFile('iceit.log'); + +end; + +procedure TForm1.Button4Click(Sender: TObject); +begin + if OpenDialog1.Execute then Edit1.Text := OpenDialog1.FileName; +end; + +procedure TForm1.CheckListBox1DrawItem(Control: TWinControl; Index: Integer; + Rect: TRect; State: TOwnerDrawState); +var + S1, S2: String; + n: Integer; +begin + Rect.Left := Rect.Left-15; + CheckListBox1.Canvas.Brush.Style := bsSolid; + CheckListBox1.Canvas.Brush.Color := clWhite; + CheckListBox1.Canvas.FillRect(Rect); + CheckListBox1.Canvas.Font.Name := 'Verdana'; + if CheckListBox1.Header[Index] then + begin + ImageList1.Draw(CheckListBox1.Canvas, Rect.Left+17, Rect.Top+1, 3); + CheckListBox1.Canvas.Font.Style := []; + CheckListBox1.Canvas.Font.Size := 8; + end else begin + ImageList1.Draw(CheckListBox1.Canvas, Rect.Left+17, Rect.Top+1, 0); + CheckListBox1.Canvas.Font.Style := []; + CheckListBox1.Canvas.Font.Size := 7; + end; + if CheckListBox1.Checked[Index] then + begin + ImageList1.Draw(CheckListBox1.Canvas, Rect.Left+1, Rect.Top+1, 1); + end else begin + ImageList1.Draw(CheckListBox1.Canvas, Rect.Left+1, Rect.Top+1, 2); + end; + CheckListBox1.Canvas.Brush.Style := bsClear; + CheckListBox1.Canvas.Font.Color := clBlack; + S1 := GetValue(CheckListBox1.Items[Index], 0); + S2 := GetValue(CheckListBox1.Items[Index], 1); + n := CheckListBox1.Canvas.TextWidth(S2); + CheckListBox1.Canvas.TextOut(Rect.Left+36, Rect.Top+2, S1); + if S2 = 'NONE' then CheckListBox1.Canvas.Font.Color := clWindow; + if S2 = 'PROGRESS' then CheckListBox1.Canvas.Font.Color := $007E7E7E; + if S2 = 'SUCCESS' then CheckListBox1.Canvas.Font.Color := $00129D02; + if S2 = 'PASS' then CheckListBox1.Canvas.Font.Color := $00168FAD; + if S2 = 'ERROR' then CheckListBox1.Canvas.Font.Color := $001232C7; + CheckListBox1.Canvas.TextOut(Rect.Right-(n+4), Rect.Top+2, S2); +end; + +procedure TForm1.FormCreate(Sender: TObject); +var + FindHandle: THandle; + FindData: TWin32FindData; + FindNext: Boolean; + FileName: String; + FilePath: String; +begin + AssignFile(Log, 'iceit.log'); + Rewrite(Log); + IcePath := ExtractFilePath(ParamStr(0)); + // Icons + CheckListBox1.Items.Add('icons|NONE|'); + IconsItem := CheckListBox1.Items.Count-1; + CheckListBox1.Header[IconsItem] := True; + FindData.dwFileAttributes := FILE_ATTRIBUTE_NORMAL; + FilePath := IcePath + '\icons\*.*'; + FindHandle := FindFirstFile(PChar(FilePath), FindData); + if FindHandle <> INVALID_HANDLE_VALUE then + begin + FindNext := True; + while FindNext do + begin + FileName := FindData.cFileName; + if (FileName <> '..') and (FileName <> '.') then + if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) <> 0 then + CheckListBox1.Items.Add(LowerCase(FileName)+'|NONE|'); + FindNext := FindNextFile(FindHandle, FindData); + end; + end; + Windows.FindClose(FindHandle); + // Plugins + CheckListBox1.Items.Add('plugins|NONE|'); + PluginsItem := CheckListBox1.Items.Count-1; + CheckListBox1.Header[PluginsItem] := True; + FindData.dwFileAttributes := FILE_ATTRIBUTE_NORMAL; + FilePath := IcePath + '\plugins\*.*'; + FindHandle := FindFirstFile(PChar(FilePath), FindData); + if FindHandle <> INVALID_HANDLE_VALUE then + begin + FindNext := True; + while FindNext do + begin + FileName := FindData.cFileName; + if (FileName <> '..') and (FileName <> '.') then + if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) <> 0 then + CheckListBox1.Items.Add(LowerCase(FileName)+'|NONE|'); + FindNext := FindNextFile(FindHandle, FindData); + end; + end; + Windows.FindClose(FindHandle); +end; + +procedure TForm1.FormDestroy(Sender: TObject); +begin + CloseFile(Log); +end; + +function TForm1.ProgressUpdate(const FileName, IcoName: String): Boolean; +var + IconGroups: TStringList; +begin + Result := False; + if Win32Platform <> VER_PLATFORM_WIN32_NT then + Error('Only supported on Windows NT and above'); + + IconGroups := TStringList.Create; + if not GetIconGroups(FileName, IconGroups) then + ErrorWithLastError('Cannot Get Icon Groups in ' + FileName) + else begin + if IconGroups.Count = 0 then + begin + Error('Icon Group in ' + FileName + ' Is Empty'); + end; + ClearIconGroups(Filename, IconGroups); + if AddIcons(Filename, IcoName, IconGroups) then + Result := True; + end; + IconGroups.Free; +end; + +end. diff --git a/tools/iceit/Utils.dcu b/tools/iceit/Utils.dcu new file mode 100644 index 0000000000..e77133dc8c Binary files /dev/null and b/tools/iceit/Utils.dcu differ diff --git a/tools/iceit/iceit.log b/tools/iceit/iceit.log new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tools/iceit/upx.exe b/tools/iceit/upx.exe new file mode 100644 index 0000000000..6266213c65 Binary files /dev/null and b/tools/iceit/upx.exe differ diff --git a/tools/iceit/utils.pas b/tools/iceit/utils.pas new file mode 100644 index 0000000000..7d1cceeab8 --- /dev/null +++ b/tools/iceit/utils.pas @@ -0,0 +1,66 @@ +unit utils; + +interface + +uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms; + + function GetValue(S: String; H: Integer): String; + function SetValue(S: String; H: Integer; Value: String): String; + function SetWidth(Canvas: TCanvas; S: String; n: Integer): String; + +implementation + +//-------------------------------------------------------------------------------------- +// Ôóíêöèÿ âîçâðàùàåò òåêñò èç ñòðîêè S ñîäåðæàùèéñÿ ìåæäó ñèìâîëàìè '|' íà ïîçèöèè H +//-------------------------------------------------------------------------------------- +function GetValue(S: String; H: Integer): String; +var F, n: Integer; +begin + F := 0; + Result := ''; + for n := 1 to Length(S) do + begin + if S[n] = '|' then inc(F); + if (S[n] <> '|') and (F = H) then Result := Result + S[n] + end; +end; + +//-------------------------------------------------------------------------------------- +// Ôóíêöèÿ âîçâðàùàåò ñòðîêó àíàëîãè÷íóþ S, íî ñ çàìåíåííûì ìåæäó +// ñèìâîëàìè '|' íà ïîçèöèè H òåêñòîì íà çíà÷åíèå Value +//-------------------------------------------------------------------------------------- +function SetValue(S: String; H: Integer; Value: String): String; +var F, n: Integer; +begin + n := 1; + F := 0; + Result := ''; + while (n < Length(S)) and (F < H) do + begin + if S[n] = '|' then inc(F); + Result := Result + S[n]; + inc(n); + end; + Result := Result + Value; + while S[n] <> '|' do inc(n); + while (n <= Length(S)) do + begin + Result := Result + S[n]; + inc(n); + end; +end; + +//-------------------------------------------------------------------------------------- +// Ôóíêöèÿ âîçâðàùàåò S åñëè øèðèíà ñòðîêè < n, +// èëè S ñ ìíîãîòî÷èåì '...' óðåçàííóþ äî øèðèíû n +//-------------------------------------------------------------------------------------- +function SetWidth(Canvas: TCanvas; S: String; n: Integer): String; +begin + if Canvas.TextWidth(S) > n then + begin + while Canvas.TextWidth(S + '...') > n do SetLength(S, Length(S)-1); + Result := S + '...'; + end else Result := S; +end; + +end. diff --git a/tools/iceit/x.ico b/tools/iceit/x.ico new file mode 100644 index 0000000000..abab25a459 Binary files /dev/null and b/tools/iceit/x.ico differ -- cgit v1.2.3