Initial version of thumbnails generating in listview.

TODO: make it calculating in a separate thread...
This commit is contained in:
utak3r 2009-08-31 23:31:09 +00:00
parent 8d7ca57b2f
commit c87c92af54
2 changed files with 203 additions and 128 deletions

View File

@ -28,10 +28,10 @@ object MainForm: TMainForm
PixelsPerInch = 96 PixelsPerInch = 96
TextHeight = 13 TextHeight = 13
object Splitter: TSplitter object Splitter: TSplitter
Left = 160 Left = 137
Top = 28 Top = 28
Width = 4 Width = 4
Height = 430 Height = 436
end end
object ToolBar: TToolBar object ToolBar: TToolBar
Left = 0 Left = 0
@ -75,9 +75,31 @@ object MainForm: TMainForm
ImageIndex = 8 ImageIndex = 8
Style = tbsSeparator Style = tbsSeparator
end end
object btnUndo: TToolButton object tbShowIcons: TToolButton
Left = 77 Left = 77
Top = 0 Top = 0
Caption = 'tbShowIcons'
ImageIndex = 55
OnClick = tbShowIconsClick
end
object tbShowList: TToolButton
Left = 100
Top = 0
Caption = 'tbShowList'
ImageIndex = 54
OnClick = tbShowListClick
end
object ToolButton8: TToolButton
Left = 123
Top = 0
Width = 8
Caption = 'ToolButton8'
ImageIndex = 41
Style = tbsSeparator
end
object btnUndo: TToolButton
Left = 131
Top = 0
Hint = 'Undo (Ctrl+Z)|Undo the last action' Hint = 'Undo (Ctrl+Z)|Undo the last action'
Caption = 'btnUndo' Caption = 'btnUndo'
Enabled = False Enabled = False
@ -85,7 +107,7 @@ object MainForm: TMainForm
OnClick = mnuUndoClick OnClick = mnuUndoClick
end end
object btnRedo: TToolButton object btnRedo: TToolButton
Left = 100 Left = 154
Top = 0 Top = 0
Hint = 'Redo (Ctrl+Y)|Redo the last action' Hint = 'Redo (Ctrl+Y)|Redo the last action'
Caption = 'btnRedo' Caption = 'btnRedo'
@ -94,14 +116,14 @@ object MainForm: TMainForm
OnClick = mnuRedoClick OnClick = mnuRedoClick
end end
object ToolButton1: TToolButton object ToolButton1: TToolButton
Left = 123 Left = 177
Top = 0 Top = 0
Width = 8 Width = 8
ImageIndex = 18 ImageIndex = 18
Style = tbsSeparator Style = tbsSeparator
end end
object btnReset: TToolButton object btnReset: TToolButton
Left = 131 Left = 185
Top = 0 Top = 0
Hint = 'Reset Location (F12)' Hint = 'Reset Location (F12)'
Caption = 'btnReset' Caption = 'btnReset'
@ -109,7 +131,7 @@ object MainForm: TMainForm
OnClick = mnuResetLocationClick OnClick = mnuResetLocationClick
end end
object tbQualityBox: TComboBox object tbQualityBox: TComboBox
Left = 154 Left = 208
Top = 0 Top = 0
Width = 40 Width = 40
Height = 21 Height = 21
@ -129,7 +151,7 @@ object MainForm: TMainForm
'100') '100')
end end
object btnFullScreen: TToolButton object btnFullScreen: TToolButton
Left = 194 Left = 248
Top = 0 Top = 0
Hint = 'Fullscreen View (F3)|Show full-screen view of the flame' Hint = 'Fullscreen View (F3)|Show full-screen view of the flame'
Caption = 'btnFullScreen' Caption = 'btnFullScreen'
@ -137,14 +159,14 @@ object MainForm: TMainForm
OnClick = mnuFullScreenClick OnClick = mnuFullScreenClick
end end
object ToolButton3: TToolButton object ToolButton3: TToolButton
Left = 217 Left = 271
Top = 0 Top = 0
Width = 8 Width = 8
ImageIndex = 8 ImageIndex = 8
Style = tbsSeparator Style = tbsSeparator
end end
object btnEditor: TToolButton object btnEditor: TToolButton
Left = 225 Left = 279
Top = 0 Top = 0
Hint = 'Editor (F4)|Show Transform Editor' Hint = 'Editor (F4)|Show Transform Editor'
Caption = 'btnEditor' Caption = 'btnEditor'
@ -152,7 +174,7 @@ object MainForm: TMainForm
OnClick = mnuEditorClick OnClick = mnuEditorClick
end end
object btnAdjust: TToolButton object btnAdjust: TToolButton
Left = 248 Left = 302
Top = 0 Top = 0
Hint = 'Adjust (F5)|Adjust render-settings' Hint = 'Adjust (F5)|Adjust render-settings'
Caption = 'btnAdjust' Caption = 'btnAdjust'
@ -160,7 +182,7 @@ object MainForm: TMainForm
OnClick = mnuAdjustClick OnClick = mnuAdjustClick
end end
object btnGradient: TToolButton object btnGradient: TToolButton
Left = 271 Left = 325
Top = 0 Top = 0
Hint = 'Gradient (F6)|Shows the Gradient window' Hint = 'Gradient (F6)|Shows the Gradient window'
Caption = 'btnGradient' Caption = 'btnGradient'
@ -168,7 +190,7 @@ object MainForm: TMainForm
OnClick = mnuGradClick OnClick = mnuGradClick
end end
object btnMutate: TToolButton object btnMutate: TToolButton
Left = 294 Left = 348
Top = 0 Top = 0
Hint = 'Mutation (F7)|Shows the Mutation window' Hint = 'Mutation (F7)|Shows the Mutation window'
Caption = 'btnMutate' Caption = 'btnMutate'
@ -176,7 +198,7 @@ object MainForm: TMainForm
OnClick = mnuMutateClick OnClick = mnuMutateClick
end end
object btnSize: TToolButton object btnSize: TToolButton
Left = 317 Left = 371
Top = 0 Top = 0
Hint = 'Image Size|Adjust image size' Hint = 'Image Size|Adjust image size'
Caption = 'ma' Caption = 'ma'
@ -184,14 +206,14 @@ object MainForm: TMainForm
OnClick = mnuImageSizeClick OnClick = mnuImageSizeClick
end end
object ToolButton4: TToolButton object ToolButton4: TToolButton
Left = 340 Left = 394
Top = 0 Top = 0
Width = 8 Width = 8
ImageIndex = 14 ImageIndex = 14
Style = tbsSeparator Style = tbsSeparator
end end
object btnDefine: TToolButton object btnDefine: TToolButton
Left = 348 Left = 402
Top = 0 Top = 0
Hint = 'Edit Script|Open the Script Editor' Hint = 'Edit Script|Open the Script Editor'
Caption = 'btnDefine' Caption = 'btnDefine'
@ -199,7 +221,7 @@ object MainForm: TMainForm
OnClick = mnuEditScriptClick OnClick = mnuEditScriptClick
end end
object btnRun: TToolButton object btnRun: TToolButton
Left = 371 Left = 425
Top = 0 Top = 0
Hint = 'Run Script (F9)|Run Script' Hint = 'Run Script (F9)|Run Script'
Caption = 'Run' Caption = 'Run'
@ -207,7 +229,7 @@ object MainForm: TMainForm
OnClick = btnRunClick OnClick = btnRunClick
end end
object btnStop: TToolButton object btnStop: TToolButton
Left = 394 Left = 448
Top = 0 Top = 0
Hint = 'Stop Script (F10)|Stop Script' Hint = 'Stop Script (F10)|Stop Script'
Caption = 'Stop' Caption = 'Stop'
@ -215,14 +237,14 @@ object MainForm: TMainForm
OnClick = mnuStopClick OnClick = mnuStopClick
end end
object ToolButton5: TToolButton object ToolButton5: TToolButton
Left = 417 Left = 471
Top = 0 Top = 0
Width = 8 Width = 8
ImageIndex = 42 ImageIndex = 42
Style = tbsSeparator Style = tbsSeparator
end end
object btnOptions: TToolButton object btnOptions: TToolButton
Left = 425 Left = 479
Top = 0 Top = 0
Hint = 'Options (Ctrl+P)|Shows the Options dialog' Hint = 'Options (Ctrl+P)|Shows the Options dialog'
Caption = 'btnOptions' Caption = 'btnOptions'
@ -230,7 +252,7 @@ object MainForm: TMainForm
OnClick = mnuOptionsClick OnClick = mnuOptionsClick
end end
object tbShowAlpha: TToolButton object tbShowAlpha: TToolButton
Left = 448 Left = 502
Top = 0 Top = 0
Hint = 'Show transparency' Hint = 'Show transparency'
Caption = 'tbShowAlpha' Caption = 'tbShowAlpha'
@ -239,14 +261,14 @@ object MainForm: TMainForm
OnClick = tbShowAlphaClick OnClick = tbShowAlphaClick
end end
object ToolButton6: TToolButton object ToolButton6: TToolButton
Left = 471 Left = 525
Top = 0 Top = 0
Width = 8 Width = 8
ImageIndex = 42 ImageIndex = 42
Style = tbsSeparator Style = tbsSeparator
end end
object tbzoomwindow: TToolButton object tbzoomwindow: TToolButton
Left = 479 Left = 533
Top = 0 Top = 0
Hint = 'Zoom to rectangle' Hint = 'Zoom to rectangle'
Caption = 'tbzoomwindow' Caption = 'tbzoomwindow'
@ -256,7 +278,7 @@ object MainForm: TMainForm
OnClick = tbzoomwindowClick OnClick = tbzoomwindowClick
end end
object tbzoomoutwindow: TToolButton object tbzoomoutwindow: TToolButton
Left = 502 Left = 556
Top = 0 Top = 0
Hint = 'Zoom out using rectangle' Hint = 'Zoom out using rectangle'
Caption = 'tbzoomoutwindow' Caption = 'tbzoomoutwindow'
@ -266,7 +288,7 @@ object MainForm: TMainForm
OnClick = tbzoomoutwindowClick OnClick = tbzoomoutwindowClick
end end
object tbDrag: TToolButton object tbDrag: TToolButton
Left = 525 Left = 579
Top = 0 Top = 0
Hint = 'Translate image' Hint = 'Translate image'
Caption = 'tbDrag' Caption = 'tbDrag'
@ -277,7 +299,7 @@ object MainForm: TMainForm
OnClick = tbDragClick OnClick = tbDragClick
end end
object tbRotate: TToolButton object tbRotate: TToolButton
Left = 548 Left = 602
Top = 0 Top = 0
Hint = 'Rotate' Hint = 'Rotate'
Caption = 'tbRotate' Caption = 'tbRotate'
@ -287,7 +309,7 @@ object MainForm: TMainForm
OnClick = tbRotateClick OnClick = tbRotateClick
end end
object tbTraceSeparator: TToolButton object tbTraceSeparator: TToolButton
Left = 571 Left = 625
Top = 0 Top = 0
Width = 8 Width = 8
Enabled = False Enabled = False
@ -296,7 +318,7 @@ object MainForm: TMainForm
Visible = False Visible = False
end end
object tbShowTrace: TToolButton object tbShowTrace: TToolButton
Left = 579 Left = 633
Top = 0 Top = 0
Hint = 'Show trace window' Hint = 'Show trace window'
Caption = 'tbShowTrace' Caption = 'tbShowTrace'
@ -309,8 +331,8 @@ object MainForm: TMainForm
object ListView: TListView object ListView: TListView
Left = 0 Left = 0
Top = 28 Top = 28
Width = 160 Width = 137
Height = 430 Height = 436
Align = alLeft Align = alLeft
BevelOuter = bvNone BevelOuter = bvNone
Columns = < Columns = <
@ -319,12 +341,11 @@ object MainForm: TMainForm
Width = 150 Width = 150
end> end>
HideSelection = False HideSelection = False
LargeImages = Thumbnails
ParentShowHint = False ParentShowHint = False
PopupMenu = ListPopUp PopupMenu = ListPopUp
ShowHint = True ShowHint = True
SmallImages = SmallImages
TabOrder = 0 TabOrder = 0
ViewStyle = vsReport
OnChange = ListViewChange OnChange = ListViewChange
OnChanging = ListViewChanging OnChanging = ListViewChanging
OnEdited = ListViewEdited OnEdited = ListViewEdited
@ -332,10 +353,10 @@ object MainForm: TMainForm
OnSelectItem = ListViewSelectItem OnSelectItem = ListViewSelectItem
end end
object BackPanel: TPanel object BackPanel: TPanel
Left = 164 Left = 141
Top = 28 Top = 28
Width = 557 Width = 580
Height = 430 Height = 436
Align = alClient Align = alClient
BevelInner = bvLowered BevelInner = bvLowered
BevelOuter = bvNone BevelOuter = bvNone
@ -345,8 +366,8 @@ object MainForm: TMainForm
object Image: TImage object Image: TImage
Left = 1 Left = 1
Top = 1 Top = 1
Width = 555 Width = 578
Height = 428 Height = 434
Align = alClient Align = alClient
Anchors = [] Anchors = []
Center = True Center = True
@ -360,7 +381,7 @@ object MainForm: TMainForm
end end
object StatusBar: TStatusBar object StatusBar: TStatusBar
Left = 0 Left = 0
Top = 458 Top = 464
Width = 721 Width = 721
Height = 19 Height = 19
Panels = < Panels = <
@ -378,7 +399,7 @@ object MainForm: TMainForm
Left = 8 Left = 8
Top = 56 Top = 56
Bitmap = { Bitmap = {
494C010136003B00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 494C010138003B00040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600
000000000000360000002800000040000000F0000000010020000000000000F0 000000000000360000002800000040000000F0000000010020000000000000F0
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
@ -520,123 +541,123 @@ object MainForm: TMainForm
8C001810630018186B0018187B00081829000000000000000000000000001818 8C001810630018186B0018187B00081829000000000000000000000000001818
6B00181863001818630018186B0029187B000000000000000000000000000000 6B00181863001818630018186B0029187B000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000B9A39500634935006349
0000000000000000000000000000000000000000000000000000000000000000 3500634935006349350063493500634935006349350063493500634935006349
0000000000000000000000000000000000000000000000000000000000000000 350063493500634935006349350000000000B7A2930063493500634935006349
0000000000000000000000000000000000000000000000000000000000000000 3500634935006349350063493500634935006349350063493500634935006349
0000000000000000000000000000000000000000000000000000000000000829 3500634935006349350063493500634935000000000000000000000000000829
630000000000081042001042940000000000000000000842730018294A000010 630000000000081042001042940000000000000000000842730018294A000010
4200000008000000080000000000101863000000000000000000FFFFFF00FFFF 4200000008000000080000000000101863000000000000000000FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00A5A5A500A5A5A500A5A5A500A5A5 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00A5A5A500A5A5A500A5A5A500A5A5
A500A5A5A500A5A5A50000000000000000000000000000000000000000000000 A500A5A5A500A5A5A500000000000000000000000000B9A39500FEFDF200DEDB
0000000000000000000000000000000000000000000000000000000000000000 D500DAD2CB00D7CBC200D3C2B700CEBAAD00C7B0A300C1A99C00BAA19300B297
0000000000000000000000000000000000000000000000000000000000000000 8900AB908100A5897A006349350000000000B7A29300FBF6F000E4E1DC00E0DD
0000000000000000000000000000000000000000000000000000000000000000 D700DFD7CE00DFD3C800E0D0C100E0CCBE00E3C8B600E3C7B300E3C4AE00E3C3
0000000000000000000000000000000000000000000000000000000000000821 AC00E3C3AC00E3C3AC00E3C3AC00634935000000000000000000000000000821
52000008100008297B003163A50000000000000000002152A5004A9CD6001839 52000008100008297B003163A50000000000000000002152A5004A9CD6001839
6B0000001800000008000000000018186B000000000000000000FFFFFF00FFFF 6B0000001800000008000000000018186B000000000000000000FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00A5A5A500A5A5A500A5A5A500A5A5 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00A5A5A500A5A5A500A5A5A500A5A5
A500A5A5A500A5A5A50000000000000000000000000000000000000000000000 A500A5A5A500A5A5A500000000000000000000000000B9A39500FFFFF600B3D0
0000000000000000000000000000000000000000000000000000000000000000 DD00337085009DA7AB00FADCC600F9D2B800F4C6AA00EFBDA000E7B39500DDA7
0000000000000000000000000000000000000000000000000000000000000000 8900D39C7D00AB9081006349350000000000B7A29300FCF8F400AF8D7A00A37A
0000000000000000000000000000000000000000000000000000000000000000 65008C5D440076452C006F3E2500FAEEE400AF8D7A00A37A65008C5D44007645
0000000000000000000000000000000000000000000000000000000000000818 2C006F3E2500F9E6D900E3C5AF00634935000000000000000000000000000818
4A0000182100216BC6000000000000000000105A7B002973AD0018529C00214A 4A0000182100216BC6000000000000000000105A7B002973AD0018529C00214A
9400103152000818290000000800181863000000000000000000FFFFFF00FFFF 9400103152000818290000000800181863000000000000000000FFFFFF00FFFF
FF00A5A5A500A5A5A500A5A5A500A5A5A500FFFFFF00FFFFFF00FFFFFF00FFFF FF00A5A5A500A5A5A500A5A5A500A5A5A500FFFFFF00FFFFFF00FFFFFF00FFFF
FF00A5A5A500A5A5A50000000000000000000000000000000000000000000000 FF00A5A5A500A5A5A500000000000000000000000000B9A39500FFFFF60000AF
0000000000000000000000000000000000000000000000000000000000000000 FC00C1FDFF002D677F00FBE4D200B7A39900B49F9200B69B8E00AF948500AD8F
0000000000000000000000000000000000000000000000000000000000000000 7F00DDA78900B29789006349350000000000B7A29300FCFAF600C8AD9B00E5D2
0000000000000000000000000000000000000000000000000000000000000000 C700D0A69100A984780084523700FAEFE500C8AD9B00E5D2C700D0A69100A984
0000000000000000000000000000000000000000000000000000000000003110 780084523700F9E7DA00E2C8B400634935000000000000000000000000003110
000018080000180800000000000000000000000000002163A500184A94003163 000018080000180800000000000000000000000000002163A500184A94003163
B5002163B5003973C6000810210010105A000000000000000000FFFFFF00FFFF B5002163B5003973C6000810210010105A000000000000000000FFFFFF00FFFF
FF00A5A5A500A5A5A500A5A5A500A5A5A500FFFFFF00FFFFFF00FFFFFF00FFFF FF00A5A5A500A5A5A500A5A5A500A5A5A500FFFFFF00FFFFFF00FFFFFF00FFFF
FF00A5A5A500A5A5A50000000000000000000000000000000000000000000000 FF00A5A5A500A5A5A500000000000000000000000000BAA59600FFFFF600B6DD
0000000000000000000000000000000000000000000000000000000000000000 EF0000AFFC00B2D2DC00FCEDDD00FBE2CE00F9D7C000F8CDB200F4C3A600EFBD
0000000000000000000000000000000000000000000000000000000000000000 A000E7B39500BAA193006349350000000000B7A29300FDFCF900CEB6A700B9E4
0000000000000000000000000000000000000000000000000000000000000000 FF00AFBFFF004E87FF00A3765F00FAF0E700CEB6A700B9E4FF00AFBFFF004E87
00000000000000000000000000000000000000000000846B5A0029080000B57B FF00A3765F00F9E8DB00E1CBB9006349350000000000846B5A0029080000B57B
5A00EFE7DE00E7CEC600AD735200290800006B73730008429400184A9C00296B 5A00EFE7DE00E7CEC600AD735200290800006B73730008429400184A9C00296B
AD0008297300214A8C001021520018106B000000000000000000FFFFFF00FFFF AD0008297300214A8C001021520018106B000000000000000000FFFFFF00FFFF
FF00A5A5A500A5A5A500A5A5A500A5A5A500FFFFFF00FFFFFF00FFFFFF00FFFF FF00A5A5A500A5A5A500A5A5A500A5A5A500FFFFFF00FFFFFF00FFFFFF00FFFF
FF00A5A5A500A5A5A50000000000000000000000000000000000000000000000 FF00A5A5A500A5A5A500000000000000000000000000BCA69800FFFFF600FFFF
0000000000000000000000000000000000000000000000000000000000000000 F600FFFFF600FEFCF200FEF5E800FCEAD900FBDFCB00F9D4BC00F8CCB000F4C3
0000000000000000000000000000000000000000000000000000000000000000 A600EFBDA000C1A99C006349350000000000BAA59600FDFDFB00D4BEB200D1BB
0000000000000000000000000000000000000000000000000000000000000000 AB00CBB09E00C1A38F00B2917A00FAF1EA00D4BEB200D1BBAB00CBB09E00C1A3
0000000000000000000000000000000000000000000031080000EFDECE00EFE7 8F00B2917A00F9E9DD00E0CEBF00634935000000000031080000EFDECE00EFE7
D600FFEFE700F7EFE700FFF7EF00E7D6CE0039100800637B940008297300216B D600FFEFE700F7EFE700FFF7EF00E7D6CE0039100800637B940008297300216B
AD007BB5D60031528C0000105A00181873000000000000000000FFFFFF00FFFF AD007BB5D60031528C0000105A00181873000000000000000000FFFFFF00FFFF
FF00A5A5A500A5A5A500A5A5A500A5A5A500FFFFFF00FFFFFF00FFFFFF00FFFF FF00A5A5A500A5A5A500A5A5A500A5A5A500FFFFFF00FFFFFF00FFFFFF00FFFF
FF00A5A5A500A5A5A50000000000000000000000000000000000000000000000 FF00A5A5A500A5A5A500000000000000000000000000BEA89900FFFFF60095A3
0000000000000000000000000000000000000000000000000000000000000000 FF002E3BA5008F96CD00FEFAF000FDF2E400FCE8D500FADCC600F9D2B800F8CA
0000000000000000000000000000000000000000000000000000000000000000 AE00F4C3A600C7B0A3006349350000000000BEA99A00FEFEFD00FDFDFB00FDFB
0000000000000000000000000000000000000000000000000000000000000000 F900FCFAF600FCF8F300FCF6F000FBF3ED00FAF2E900FAEFE600FAEEE400FAEC
00000000000000000000000000000000000039292100D6AD9400FFEFD600CEAD E200FAEBE000FAEADE00E0D2C5006349350039292100D6AD9400FFEFD600CEAD
9C00EFD6C600EFDECE00F7E7D600EFE7D600D6B5A50018181000528CC600427B 9C00EFD6C600EFDECE00F7E7D600EFE7D600D6B5A50018181000528CC600427B
B5006BADDE00294A8C000000310018186B000000000000000000A5A5A500A5A5 B5006BADDE00294A8C000000310018186B000000000000000000A5A5A500A5A5
A500FFFFFF00FFFFFF00FFFFFF00FFFFFF00A5A5A500A5A5A500A5A5A500A5A5 A500FFFFFF00FFFFFF00FFFFFF00FFFFFF00A5A5A500A5A5A500A5A5A500A5A5
A500FFFFFF00FFFFFF0000000000000000000000000000000000000000000000 A500FFFFFF00FFFFFF00000000000000000000000000C0AA9C00FFFFF6004360
0000000000000000000000000000000000000000000000000000000000000000 FF0095B3FF002F39AD00FFFFF600B9A79E00B6A29700B49D9100B2998B00B096
0000000000000000000000000000000000000000000000000000000000000000 8800F7C8AC00CCB6A9006349350000000000BEA99A00FFFEFE00AF8D7A00A37A
0000000000000000000000000000000000000000000000000000000000000000 65008C5D440076452C006F3E2500FCF5EF00AF8D7A00A37A65008C5D44007645
00000000000000000000000000000000000000000000F7E7D600F7CEB500AD7B 2C006F3E2500FAEBDF00DFD5CB006349350000000000F7E7D600F7CEB500AD7B
6300A5735A00A57B6300B5947B00DEC6AD00FFF7DE00000000005294C600396B 6300A5735A00A57B6300B5947B00DEC6AD00FFF7DE00000000005294C600396B
AD007BADD600397BAD000018520018186B000000000000000000A5A5A500A5A5 AD007BADD600397BAD000018520018186B000000000000000000A5A5A500A5A5
A500FFFFFF00FFFFFF00FFFFFF00FFFFFF00A5A5A500A5A5A500A5A5A500A5A5 A500FFFFFF00FFFFFF00FFFFFF00FFFFFF00A5A5A500A5A5A500A5A5A500A5A5
A500FFFFFF00FFFFFF0000000000000000000000000000000000000000000000 A500FFFFFF00FFFFFF00000000000000000000000000C3AE9E00FFFFF60096A3
0000000000000000000000000000000000000000000000000000000000000000 FF004661FF0094A1FF00FFFFF600FFFEF500FEF7EA00FCEDDD00FBE2CE00F9D7
0000000000000000000000000000000000000000000000000000000000000000 BF00F8CDB200CEB8AB006349350000000000C3AE9E00FFFFFE00C8AD9B00E5D2
0000000000000000000000000000000000000000000000000000000000000000 C700D0A69100A984780084523700FCF8F300C8AD9B00E5D2C700D0A69100A984
00000000000000000000000000000000000000000000FFEFDE00EFB59C009C5A 780084523700FAECE100DED8D0006349350000000000FFEFDE00EFB59C009C5A
4200E7A58C00EFAD9400EFBD9C00CEA58C00FFEFD600080800002973AD008CBD 4200E7A58C00EFAD9400EFBD9C00CEA58C00FFEFD600080800002973AD008CBD
DE00ADE7FF001831730000185200182173000000000000000000A5A5A500A5A5 DE00ADE7FF001831730000185200182173000000000000000000A5A5A500A5A5
A500FFFFFF00FFFFFF00FFFFFF00FFFFFF00A5A5A500A5A5A500A5A5A500A5A5 A500FFFFFF00FFFFFF00FFFFFF00FFFFFF00A5A5A500A5A5A500A5A5A500A5A5
A500FFFFFF00FFFFFF0000000000000000000000000000000000000000000000 A500FFFFFF00FFFFFF00000000000000000000000000C5B0A000FFFFF600FFFF
0000000000000000000000000000000000000000000000000000000000000000 F600FFFFF600FFFFF600FFFFF600FFFFF600FFFDF300FEF4E700FCEAD900FADE
0000000000000000000000000000000000000000000000000000000000000000 CA00F9D4BC00D0BBB0006349350000000000C8B2A300FFFFFF00CEB6A700B9E4
0000000000000000000000000000000000000000000000000000000000000000 FF00AFBFFF004E87FF00A3765F00FCFAF700CEB6A700B9E4FF00AFBFFF004E87
00000000000000000000000000000000000000000000FFE7D600F7B59C00A552 FF00A3765F00FAEDE200DEDBD5006349350000000000FFE7D600F7B59C00A552
3100E7948400E79C8400EFAD8C00D69C8400EFCEB50008080800427BBD00738C 3100E7948400E79C8400EFAD8C00D69C8400EFCEB50008080800427BBD00738C
B500395294000010630008104A0018186B000000000000000000A5A5A500A5A5 B500395294000010630008104A0018186B000000000000000000A5A5A500A5A5
A500FFFFFF00FFFFFF00FFFFFF00FFFFFF00A5A5A500A5A5A500A5A5A500A5A5 A500FFFFFF00FFFFFF00FFFFFF00FFFFFF00A5A5A500A5A5A500A5A5A500A5A5
A500FFFFFF00FFFFFF0000000000000000000000000000000000000000000000 A500FFFFFF00FFFFFF00000000000000000000000000C7B1A200FFFFF600FF9B
0000000000000000000000000000000000000000000000000000000000000000 9900B8303000FF8D6A00FFFFF600FFFFF600FFFFF600FEFAF000FDF1E400FCE7
0000000000000000000000000000000000000000000000000000000000000000 D500FADCC700D3C1B6006349350000000000CCB6A700FFFFFF00D4BEB200D1BB
0000000000000000000000000000000000000000000000000000000000000000 AB00CBB09E00C1A38F00B2917A00FDFCF900D4BEB200D1BBAB00CBB09E00C1A3
00000000000000000000000000000000000063525200B57B5A00FFCEBD00CE84 8F00B2917A00FAEFE600E2E1DB00644A360063525200B57B5A00FFCEBD00CE84
6B00F79C7B00F79C8400F7B59400EFB594009452390052424200101852000000 6B00F79C7B00F79C8400F7B59400EFB594009452390052424200101852000000
100000001000000831000010390018186B000000000000000000A5A5A500A5A5 100000001000000831000010390018186B000000000000000000A5A5A500A5A5
A500A5A5A500A5A5A500A5A5A500A5A5A500FFFFFF00FFFFFF00FFFFFF00FFFF A500A5A5A500A5A5A500A5A5A500A5A5A500FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF0000000000000000000000000000000000000000000000 FF00FFFFFF00FFFFFF00000000000000000000000000C9B3A500FFFFF600FF83
0000000000000000000000000000000000000000000000000000000000000000 7E00FFC3C400B7252500FFFFF600BAAAA100B8A69C00B6A29600B39D9000B198
0000000000000000000000000000000000000000000000000000000000000000 8B00FBE4D200D6C7BD006349350000000000CCB6A700FFFFFF00FFFFFF00FFFF
0000000000000000000000000000000000000000000000000000000000000000 FF00FFFFFE00FFFEFE00FEFDFD00FEFDFB00FDFBF900FDFAF700FCF8F300FCF5
0000000000000000000000000000000000000000000063423900BD8C7300FFDE EF00FBF4EC00FBF1E900FAEFE600644A36000000000063423900BD8C7300FFDE
C600F7CEB500EFB59C00F7BDA5008C4A31000800000008317B0008296B000831 C600F7CEB500EFB59C00F7BDA5008C4A31000800000008317B0008296B000831
63000831730008316B0008296300083184000000000000000000A5A5A500A5A5 63000831730008316B0008296300083184000000000000000000A5A5A500A5A5
A500A5A5A500A5A5A500A5A5A500A5A5A500FFFFFF00FFFFFF00FFFFFF00FFFF A500A5A5A500A5A5A500A5A5A500A5A5A500FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF0000000000000000000000000000000000000000000000 FF00FFFFFF00FFFFFF00000000000000000000000000CBB5A600FFFFF600FFA9
0000000000000000000000000000000000000000000000000000000000000000 A900FF827F00FF989300FFFFF600FFFFF600FFFFF600FFFFF600FFFEF400FDF7
0000000000000000000000000000000000000000000000000000000000000000 EB00FCEDDD00D7CCC3006349350000000000EAAA8B00EAAA8B00E9A78700E9A2
0000000000000000000000000000000000000000000000000000000000000000 8000E99D7700E7976D00E6906500E6895B00E4825100E37B4800E3764100E273
0000000000000000000000000000000000000000000000000000524242000000 3A00E2723800E2723900E2723900C8622F000000000000000000524242000000
00005A3921004229180000000000423931000000000000000000000000000000 00005A3921004229180000000000423931000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000CBB5A600FFFFF600FFFF
F600FFFFF600FFFFF600FFFFF600FFFFF600FFFFF600FFFFF600FFFFF600FEFC
F300FDF4E700FCEADA006349350000000000EAAA8B00FFC2A200FEBF9D00FCBB
9800FCB89400FBB59000FAB18C00F9AD8700F9A98100F8A67C00F6A27800F59F
7300F59B6D00F4986800F3956500CD6531000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000CCB6A700CCB6A700CAB5
0000000000000000000000000000000000000000000000000000000000000000 A600CAB3A400C8B2A300C5AFA100C3AD9E00C0AB9C00BEA99A00BCA69700BAA4
0000000000000000000000000000000000000000000000000000000000000000 9600B8A39400B8A39400B8A3940000000000EAAA8B00EAAA8B00EAAA8C00EAA9
0000000000000000000000000000000000000000000000000000000000000000 8900EAA58400E9A17F00E89D7800E7977000E7926800E68D6000E5885900E483
0000000000000000000000000000000000000000000000000000000000000000 5100E47E4A00E4794300E3763E00E27239000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000292929000000 0000000000000000000000000000000000000000000000000000292929000000
@ -2306,11 +2327,11 @@ object MainForm: TMainForm
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000FF1FFFFF00000000E000800100000000 00000000000000000000000000000000FF1FFFFFFFFFFFFFE000800180010000
E000800100000000E000800100000000E000800100000000E000800100000000 E000800180010000E000800180010000E000800180010000E000800180010000
8000800100000000800080010000000000008001000000000000800100000000 8000800180010000800080018001000000008001800100000000800180010000
0000800100000000000080010000000000008001000000008000800100000000 0000800180010000000080018001000000008001800100008000800180010000
C0FF800100000000FFFFFFFF00000000FBF7FFC7FFC7800FFBF7FFCFFFCF800F C0FF800180010000FFFFFFFF80010000FBF7FFC7FFC7800FFBF7FFCFFFCF800F
F7F7FF8FFF8F800FEFFBFF9FFF9F8000DFFBFF1FFF1F8000DFFDF83FF83F8000 F7F7FF8FFF8F800FEFFBFF9FFF9F8000DFFBFF1FFF1F8000DFFDF83FF83F8000
BFFDE01FE01F800077FDE00FE00F800067FEC00FC00F800097F6C00FC00F8000 BFFDE01FE01F800077FDE00FE00F800067FEC00FC00F800097F6C00FC00F8000
EDB6C00FC00F8000CDB2C00FC00F8000D9B5C00FC00F800FE5B7E01FE01F800F EDB6C00FC00F8000CDB2C00FC00F8000D9B5C00FC00F800FE5B7E01FE01F800F
@ -2362,8 +2383,7 @@ object MainForm: TMainForm
C003000F80018000C003000780018000C003000380018000C003000180018000 C003000F80018000C003000780018000C003000380018000C003000180018000
C003000180018000C003001F80018000C003001F80018001C003001F80018001 C003000180018000C003001F80018000C003001F80018001C003001F80018001
C0038FF180018001C007FFF980018001C00FFF7580018001C01FFF8F80018001 C0038FF180018001C007FFF980018001C00FFF7580018001C01FFF8F80018001
C03FFFFF80018001FFFFFFFFFFFFFFFF00000000000000000000000000000000 C03FFFFF80018001FFFFFFFFFFFFFFFF}
000000000000}
end end
object SmallImages: TImageList object SmallImages: TImageList
Left = 40 Left = 40
@ -2979,4 +2999,10 @@ object MainForm: TMainForm
Left = 72 Left = 72
Top = 120 Top = 120
end end
object Thumbnails: TImageList
Height = 64
Width = 64
Left = 104
Top = 120
end
end end

View File

@ -188,6 +188,10 @@ type
mnuRenderAll: TMenuItem; mnuRenderAll: TMenuItem;
mnuBuiltinVars: TMenuItem; mnuBuiltinVars: TMenuItem;
mnuPluginVars: TMenuItem; mnuPluginVars: TMenuItem;
Thumbnails: TImageList;
tbShowIcons: TToolButton;
tbShowList: TToolButton;
ToolButton8: TToolButton;
procedure tbzoomoutwindowClick(Sender: TObject); procedure tbzoomoutwindowClick(Sender: TObject);
procedure mnuimageClick(Sender: TObject); procedure mnuimageClick(Sender: TObject);
procedure mnuExitClick(Sender: TObject); procedure mnuExitClick(Sender: TObject);
@ -295,6 +299,8 @@ type
Attributes: TAttrList); Attributes: TAttrList);
procedure ListViewSelectItem(Sender: TObject; Item: TListItem; procedure ListViewSelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean); Selected: Boolean);
procedure tbShowIconsClick(Sender: TObject);
procedure tbShowListClick(Sender: TObject);
private private
Renderer: TRenderThread; Renderer: TRenderThread;
@ -1991,13 +1997,17 @@ var
ListItem: TListItem; ListItem: TListItem;
FileStrings: TStringList; FileStrings: TStringList;
ParamStrings: TStringList; ParamStrings: TStringList;
Bitmap: TBitmap;
lcp: TControlPoint;
RenderEngine: TRenderer;
begin begin
FileStrings := TStringList.Create; FileStrings := TStringList.Create;
FileStrings.LoadFromFile(FileName); FileStrings.LoadFromFile(FileName);
ParamStrings := TStringList.Create; ParamStrings := TStringList.Create;
try try
MainForm.ListView.Items.BeginUpdate; //MainForm.ListView.Items.BeginUpdate;
MainForm.ListView.Items.Clear; MainForm.ListView.Items.Clear;
MainForm.Thumbnails.Clear;
if (Pos('<flame ', Lowercase(FileStrings.Text)) <> 0) then if (Pos('<flame ', Lowercase(FileStrings.Text)) <> 0) then
begin begin
i := 0; i := 0;
@ -2012,7 +2022,7 @@ begin
ParamStrings.Add(FileStrings[i]); ParamStrings.Add(FileStrings[i]);
until pos('</flame>', Lowercase(FileStrings[i])) <> 0; until pos('</flame>', Lowercase(FileStrings[i])) <> 0;
Assert(xmlErrorsList.Count = 0); //Assert(xmlErrorsList.Count = 0);
pname := ''; pname := '';
ptime := ''; ptime := '';
pversion := ''; pversion := '';
@ -2025,19 +2035,48 @@ begin
if Title <> '' then if Title <> '' then
begin { Otherwise bad format } begin { Otherwise bad format }
if xmlErrorsList.Count = 0 then
begin
lcp := TControlPoint.Create;
lcp.Clear;
MainForm.ParseXML(lcp, PCHAR(ParamStrings.Text));
if xmlErrorsList.Count = 0 then
begin
lcp.sample_density := 0.5;
lcp.spatial_oversample := 1;
lcp.spatial_filter_radius := 0.3;
lcp.AdjustScale(MainForm.Thumbnails.Width, MainForm.Thumbnails.Height);
lcp.Transparency := false;
lcp.Width := MainForm.Thumbnails.Width;
lcp.Height := MainForm.Thumbnails.Height;
try
RenderEngine := TRenderer.Create;
assert(RenderEngine <> nil);
RenderEngine.SetCP(lcp);
RenderEngine.Render;
except
end;
MainForm.Thumbnails.Add(RenderEngine.GetImage, nil);
RenderEngine.Free;
end;
lcp.Free;
end;
ListItem := MainForm.ListView.Items.Add; ListItem := MainForm.ListView.Items.Add;
ListItem.Caption := Title; ListItem.Caption := Title;
if xmlErrorsList.Count > 0 then begin if xmlErrorsList.Count = 0 then
ListItem.ImageIndex := 1; ListItem.ImageIndex := MainForm.Thumbnails.Count-1
else
xmlErrorsList.Clear; xmlErrorsList.Clear;
end;
end; end;
ParamStrings.Clear; ParamStrings.Clear;
Application.ProcessMessages;
end; end;
Inc(i); Inc(i);
end; end;
end; end;
MainForm.ListView.Items.EndUpdate; //MainForm.ListView.Items.EndUpdate;
case sel of case sel of
0: MainForm.ListView.Selected := MainForm.ListView.Items[MainForm.ListView.Items.Count - 1]; 0: MainForm.ListView.Selected := MainForm.ListView.Items[MainForm.ListView.Items.Count - 1];
1: MainForm.ListView.Selected := MainForm.ListView.Items[0]; 1: MainForm.ListView.Selected := MainForm.ListView.Items[0];
@ -2824,7 +2863,7 @@ begin
end; end;
end; end;
repeat repeat
inc(i); inc(i);
ParamStrings.Add(FileStrings[i]); ParamStrings.Add(FileStrings[i]);
until pos('</flame>', Lowercase(FileStrings[i])) <> 0; until pos('</flame>', Lowercase(FileStrings[i])) <> 0;
@ -5272,4 +5311,14 @@ begin
} }
end; end;
procedure TMainForm.tbShowIconsClick(Sender: TObject);
begin
ListView.ViewStyle := vsIcon;
end;
procedure TMainForm.tbShowListClick(Sender: TObject);
begin
ListView.ViewStyle := vsReport;
end;
end. end.