diff --git a/.gitattributes b/.gitattributes index fb1a1b4fba..44d23aa34a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2750,6 +2750,12 @@ examples/anchordocking/anchordocking.lpk svneol=native#text/plain examples/anchordocking/anchordocking.pas svneol=native#text/plain examples/anchordocking/anchordockpkg.pas svneol=native#text/plain examples/anchordocking/anchordockstorage.pas svneol=native#text/plain +examples/anchordocking/minide/miniide1.lpi svneol=native#text/plain +examples/anchordocking/minide/miniide1.lpr svneol=native#text/plain +examples/anchordocking/minide/simplefrm.lfm svneol=native#text/plain +examples/anchordocking/minide/simplefrm.pas svneol=native#text/plain +examples/anchordocking/minide/unit1.lfm svneol=native#text/plain +examples/anchordocking/minide/unit1.pas svneol=native#text/plain examples/autosize/childsizinglayout/childsizinglayout.lpi svneol=native#text/plain examples/autosize/childsizinglayout/childsizinglayout.lpr svneol=native#text/plain examples/autosize/childsizinglayout/mainunit.lfm svneol=native#text/plain diff --git a/examples/anchordocking/minide/miniide1.lpi b/examples/anchordocking/minide/miniide1.lpi new file mode 100644 index 0000000000..a31c92e8d9 --- /dev/null +++ b/examples/anchordocking/minide/miniide1.lpi @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/anchordocking/minide/miniide1.lpr b/examples/anchordocking/minide/miniide1.lpr new file mode 100644 index 0000000000..434d86e0e0 --- /dev/null +++ b/examples/anchordocking/minide/miniide1.lpr @@ -0,0 +1,21 @@ +program miniide1; + +{$mode objfpc}{$H+} + +uses + {$IFDEF UNIX}{$IFDEF UseCThreads} + cthreads, + {$ENDIF}{$ENDIF} + Interfaces, // this includes the LCL widgetset + Forms, Unit1, SimpleFrm, anchordockpkg + { you can add units after this }; + +{$R *.res} + +begin + Application.Initialize; + Application.CreateForm(TMainIDE, MainIDE); + Application.CreateForm(TSimpleForm, SimpleForm); + Application.Run; +end. + diff --git a/examples/anchordocking/minide/simplefrm.lfm b/examples/anchordocking/minide/simplefrm.lfm new file mode 100644 index 0000000000..ba078d8691 --- /dev/null +++ b/examples/anchordocking/minide/simplefrm.lfm @@ -0,0 +1,22 @@ +object SimpleForm: TSimpleForm + Left = 283 + Height = 240 + Top = 193 + Width = 320 + Caption = 'SimpleForm' + ClientHeight = 240 + ClientWidth = 320 + OnPaint = FormPaint + LCLVersion = '0.9.29' + object Memo1: TMemo + Left = 0 + Height = 240 + Top = 0 + Width = 320 + Align = alClient + Lines.Strings = ( + 'Memo1' + ) + TabOrder = 0 + end +end diff --git a/examples/anchordocking/minide/simplefrm.pas b/examples/anchordocking/minide/simplefrm.pas new file mode 100644 index 0000000000..0d6595d744 --- /dev/null +++ b/examples/anchordocking/minide/simplefrm.pas @@ -0,0 +1,70 @@ +unit SimpleFrm; + +{$mode objfpc}{$H+} + +interface + +uses + Classes, SysUtils, LCLProc, FileUtil, Forms, Controls, Graphics, Dialogs, + StdCtrls; + +type + + { TSimpleForm } + + TSimpleForm = class(TForm) + Memo1: TMemo; + procedure FormPaint(Sender: TObject); + private + { private declarations } + public + { public declarations } + end; + +var + SimpleForm: TSimpleForm; + +function CreateSimpleForm(Name, Title: string; NewBounds: TRect; + DisableAutoSizing: boolean): TSimpleForm; + +implementation + +function CreateSimpleForm(Name, Title: string; NewBounds: TRect; + DisableAutoSizing: boolean): TSimpleForm; +begin + Result:=TSimpleForm(Screen.FindForm(Name)); + if Result is TSimpleForm then begin + if DisableAutoSizing then + Result.DisableAutoSizing; + exit; + end; + Result:=TSimpleForm(TSimpleForm.NewInstance); + Result.DisableAlign; + Result.Create(Application); + Result.Caption:=Title; + Result.Name:=Name; + Result.Memo1.Lines.Text:=Name; + Result.BoundsRect:=NewBounds; + if not DisableAutoSizing then + Result.EnableAutoSizing; +end; + +{$R *.lfm} + +{ TSimpleForm } + +procedure TSimpleForm.FormPaint(Sender: TObject); +begin + with Canvas do begin + Pen.Color:=clRed; + MoveTo(0,0); + LineTo(ClientWidth-1,0); + MoveTo(ClientWidth-1,ClientHeight-1); + MoveTo(0,ClientHeight-1); + MoveTo(0,0); + MoveTo(ClientWidth-1,ClientHeight-1); + end; +end; + +end. + diff --git a/examples/anchordocking/minide/unit1.lfm b/examples/anchordocking/minide/unit1.lfm new file mode 100644 index 0000000000..86794c1800 --- /dev/null +++ b/examples/anchordocking/minide/unit1.lfm @@ -0,0 +1,523 @@ +object MainIDE: TMainIDE + Left = 366 + Height = 85 + Top = 199 + Width = 505 + ActiveControl = Page2 + Caption = 'MainIDE' + ClientHeight = 85 + ClientWidth = 505 + Menu = MainMenu1 + OnCreate = FormCreate + LCLVersion = '0.9.29' + object ComponentPalette: TNotebook + Left = 208 + Height = 85 + Top = 0 + Width = 297 + Align = alClient + PageIndex = 1 + TabOrder = 0 + object Page1: TPage + Caption = 'Page1' + end + object Page2: TPage + Caption = 'Page2' + end + end + object BtnPanel: TPanel + Left = 0 + Height = 85 + Top = 0 + Width = 208 + Align = alLeft + ClientHeight = 85 + ClientWidth = 208 + TabOrder = 1 + object ToolBar1: TToolBar + Left = 1 + Height = 26 + Top = 1 + Width = 206 + Caption = 'ToolBar1' + Images = ImageList1 + TabOrder = 0 + object ViewSrcEditor1ToolButton: TToolButton + Left = 1 + Top = 2 + Caption = 'ViewSrcEditor1ToolButton' + ImageIndex = 2 + ParentShowHint = False + ShowHint = True + OnClick = ViewSrcEditor1ToolButtonClick + end + object ViewSrcEdit2ToolButton: TToolButton + Left = 24 + Top = 2 + Caption = 'ViewSrcEdit2ToolButton' + ImageIndex = 2 + ParentShowHint = False + ShowHint = True + OnClick = ViewSrcEdit2ToolButtonClick + end + object ViewCodeExplToolButton: TToolButton + Left = 47 + Top = 2 + Caption = 'ViewCodeExplToolButton' + ImageIndex = 3 + ParentShowHint = False + ShowHint = True + OnClick = ViewCodeExplToolButtonClick + end + object ViewOIToolButton: TToolButton + Left = 70 + Top = 2 + Caption = 'ViewOIToolButton' + ImageIndex = 4 + ParentShowHint = False + ShowHint = True + OnClick = ViewOIToolButtonClick + end + object ViewMessagesToolButton: TToolButton + Left = 93 + Top = 2 + Caption = 'ViewMessagesToolButton' + ImageIndex = 5 + ParentShowHint = False + ShowHint = True + OnClick = ViewMessagesToolButtonClick + end + object ViewFPDocEditorToolButton: TToolButton + Left = 116 + Top = 2 + Caption = 'ViewFPDocEditorToolButton' + ImageIndex = 6 + ParentShowHint = False + ShowHint = True + OnClick = ViewFPDocEditorToolButtonClick + end + object ViewProjInspToolButton: TToolButton + Left = 139 + Top = 2 + Caption = 'ViewProjInspToolButton' + ImageIndex = 9 + ParentShowHint = False + ShowHint = True + OnClick = ViewProjInspToolButtonClick + end + object ViewDbgOutToolButton: TToolButton + Left = 162 + Top = 2 + Caption = 'ViewDbgOutToolButton' + ImageIndex = 10 + ParentShowHint = False + ShowHint = True + OnClick = ViewDbgOutToolButtonClick + end + end + object ToolBar2: TToolBar + Left = 1 + Height = 26 + Top = 27 + Width = 206 + Caption = 'ToolBar2' + Images = ImageList1 + TabOrder = 1 + object SaveLayoutToolButton: TToolButton + Left = 1 + Top = 2 + Caption = 'SaveLayoutToolButton' + ImageIndex = 7 + ParentShowHint = False + ShowHint = True + OnClick = SaveLayoutToolButtonClick + end + object LoadLayoutToolButton: TToolButton + Left = 24 + Top = 2 + Caption = 'LoadLayoutToolButton' + ImageIndex = 8 + ParentShowHint = False + ShowHint = True + OnClick = LoadLayoutToolButtonClick + end + end + end + object MainMenu1: TMainMenu + left = 235 + top = 32 + object FileMenuItem: TMenuItem + Caption = 'File' + OnClick = FileMenuItemClick + object OpenFileMenuItem: TMenuItem + Caption = 'Open file' + end + object NewFileMenuItem: TMenuItem + Caption = 'New file' + end + object QuitMenuItem: TMenuItem + Caption = 'Quit' + OnClick = QuitMenuItemClick + end + end + end + object ImageList1: TImageList + left = 296 + top = 32 + Bitmap = { + 4C690B0000001000000010000000FFFFFF00C17D4460C88B4DBBC88C4FEEC88C + 4FF6C88C4FF7C88C4FF7C88D4FF7C98C4FF7C78B4FF7C5894BD4C4763B91B368 + 3C06FFFFFF00FFFFFF00FFFFFF00FFFFFF00C48549C3F7F2ECECF8F4EEFCF8F4 + EDFFF8F3EDFFF8F3EDFFF8F3EDFFF8F2ECFFF7F2ECFFF2E6D7FFE2B27DFFDB94 + 65F5B3683B07FFFFFF00FFFFFF00FFFFFF00C5884BEAFAF6F2FCFAE0C7FFFBE1 + C9FFFBE2C9FFFBE0C8FFF9DFC5FFF8DBC1FFF4D6B8FFFFFBF8FFF6D8B4FFE1B0 + 7DFFDB9264F6B46B3E07FFFFFF00FFFFFF00C6894CF6F9F5F1FFFCE3CDFFFBE3 + CEFFFBE3CDFFFBE2CBFFF9E0C8FFF8DCC2FFF5D6BAFFFDFBF8FFFCE6CDFFFAE5 + C9FFE2B684FFBF7942A6FFFFFF00FFFFFF00C6894BF7F9F5F1FFFCE3CFFFFBE4 + D0FFFCE4CFFFFCE3CDFFFAE1CAFFF9DDC4FFF6D9BCFFF4E9DFFFF7F2ECFFFBF7 + F3FFF5EFE9FFC27E45FBFFFFFF00FFFFFF00C6894BF7F9F4F0FFFCE6D3FFFCE6 + D4FFFDE7D3FFFCE4D1FFFBE3CDFFFAE0C8FFF8DCC2FFF5D6BBFFF3D4B5FFF1D2 + B3FFF8F4F0FFC48246F7FFFFFF00FFFFFF00C6884AF7F9F4EFFFFEE7D7FFFDE7 + D6FFFDE7D5FFFDE6D4FFFCE6D2FFFBE1CCFFFADFC7FFF8DCC2FFF6DABDFFF6D8 + BBFFFAF4EFFFC68346F7FFFFFF00FFFFFF00C68849F7F9F4EDFFFEE8D8FFFEE8 + D8FFFEE8D7FFFEE7D6FFFDE5D3FFFCE4D1FFFBE1CCFFFAE0C7FFF9DDC3FFF8DC + C2FFFAF4EDFFC68245F7FFFFFF00FFFFFF00C68447F7F9F3ECFFFEE8D6FFFEE8 + D7FFFDE7D6FFFDE7D6FFFDE7D5FFFDE5D3FFFBE4D0FFFBE3CCFFFADFC7FFFADF + C6FFFAF2EAFFC68042F7FFFFFF00FFFFFF00C58245F7F8F2EBFFFEE7D6FFFDE7 + D6FFFDE7D6FFFDE7D6FFFDE6D5FFFDE5D3FFFCE4D1FFFCE2CDFFFBE1CBFFFBE1 + C9FFFBF7F2FFC57C3FF7FFFFFF00FFFFFF00C58042F7F8F1E8FFFEE5D5FFFDE5 + D3FFFDE5D3FFFCE5D3FFFCE5D3FFFCE4D1FFFCE2CEFFFCE2CCFFFBE0C9FFFBE1 + C8FFFDFAF7FFC1763BF7FFFFFF00FFFFFF00C47C40F7F7F0E6FFF8B455FFF7B4 + 56FFF7B554FFF8B453FFF8B253FFF7B352FFF7B352FFF7B251FFF7B24FFFF7B2 + 4FFFFCF9F5FFBF6F36F7FFFFFF00FFFFFF00C1783CF7F7EDE3FFFDC26EFFFFD8 + A0FFFFD79EFFFFD69BFFFFD798FFFFD696FFFFD695FFFFD594FFFFD493FFFBBE + 65FFFBF7F4FFBB6731F7FFFFFF00FFFFFF00BF7138F5F5EBDFFEFDBF68FFFCBD + 67FFFBBE65FFFCBE64FFFCBE64FFFCBD62FFFBBD63FFFBBC61FFFCBE60FFFCBC + 62FFFDFBF8FDB9642DF3FFFFFF00FFFFFF00BC6933DEF8F1EAF2F7ECDFFDF6EB + DEFFF6EADEFFF6EADCFFF6EADCFFFAF3EBFFFAF3EBFFFAF2EAFFFCF7F3FFFCF8 + F4FDFEFEFDF0B7602AD5FFFFFF00FFFFFF00BB6A346BBA6530BCBB6631EDBA66 + 30F7BA6630F7BA6630F7BA6530F7BA652FF7B9652EF7B9652EF7B9642EF7B964 + 2EEFB7622CBDB7622E63FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FEFEFE00636CA5FF233E + C2FFFEFEFE00F7F7FB00FEFEFE00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00CFD2D1FF868B89FF868B89FF868B89FF868B89FF868B89FF1F2777FF0A37 + CAFF0B45F3FFFEFEFE00FAFAFC00FFFFFF00FFFFFF00FFFFFF00FFFFFF00868B + 89FF868B89FF8D908FFFCFD2D1FFFFFFFF00FFFFFF006B6995FF232971FF0C2C + BAFF0641F2FF4661CEFFFEFEFE00FFFFFF00FFFFFF00FFFFFF00868B89FFB86F + 6CFFB97370FFFFFFFF00FEFEFD00FFFFFF00FFFFFF00232971FF232971FF0920 + A8FF0B45F3FF0B45F3FF5666C1FFFFFFFF00FFFFFF00A9524AFFBA5E54FFC472 + 69FFC17067FFB06358FFFFFFFF00FFFFFF009091ADFF232971FF232971FF031E + 8EFF0B45F3FF0B45F3FF0B45F3FF5AC2E1FF9C5048FFB14E45FFC17D71FFE7BA + ABFFD09689FFC87A6EFFB4554BFFFFFFFF00FFFFFF00232971FF232971FF2329 + 71FF0B45F3FF0B45F3FF7C8ECFFF3CB6DCFF832316FFBC5047FFC1786FFFDDA5 + 9BFFD29C92FFC37C71FFB4554BFFFFFFFF00FFFFFF00FFFFFF00232971FF2329 + 71FF0B45F3FF3E5CCCFF868B89FF41B4DDFF721F11FFAB4135FFBD6359FFC474 + 6EFFD18B83FFB86B5EFFB15849FFFFFFFF00F9F9FA00FFFFFF00FFFFFF002329 + 71FFFFFFFF00FFFFFF00868B89FF41AFDCFF721F11FFAB4135FFBD6359FFC474 + 6EFF3594DAFF3594DAFF3594DAFF3594DAFF3594DAFF3594DAFF3594DAFF3594 + DAFF3594DAFFFFFFFF00868B89FF39ADDBFFE8F6FBFF70BCE7FF55AAE2FF4DA5 + E0FF91C9EBFFFAF3EFFFFDFEFDFFFFFDFCFFFFFDFCFFFEFDFCFFFEFCFBFFFEFE + FDFF3594DAFFCFD2D1FF868B89FF3BA8DBFFFEFFFFFFF8FDFFFFF6FDFFFFF5FC + FFFFF3FCFEFF9AE4F4FF9AE6F7FF9BE6F6FF9DE5F5FF9EE5F5FF9FE5F4FFDAF3 + F8FF3594DAFF868B89FF868B89FF3BA4DBFFF6FCFEFF94E5F8FF93E5F8FF93E5 + F8FF91E5F8FF93DBE9FF93D7E3FF93D2DCFF90CED7FF8CC8CFFF86C1C6FFC9D8 + D6FF3594DAFF868B89FFCFD2D1FF3C9DDCFFF2FAFDFF94E6F8FF92E5F8FF90E5 + F8FF8BE3F8FF86E2F7FF7FE1F7FF77DEF6FF6CDCF6FF5ED9F4FF4FD5F3FFCCF2 + FBFF3594DAFF868B89FFFFFFFF003C98DCFFEFFAFEFF93E5F8FF8FE4F8FF89E3 + F8FF82E1F7FF7ADFF7FF71DEF6FF67DBF5FF5BD8F4FF4DD4F3FF40D1F2FFCAF2 + FBFF3594DAFFCFD2D1FFFFFFFF003790DAFFDCF0FAFF98E1F6FF95E0F6FF92DF + F6FF8EDEF5FF89DCF5FF85DAF4FF80D9F4FF7AD7F3FF74D5F3FF70D3F2FFC2EA + F8FF3594DAFFFFFFFF00FFFFFF00539CE0FF348CDAFF348BDAFF348CDAFF348C + DAFF348CDAFF348CDAFF348CDAFF348CDAFF348CDAFF348CDAFF348BDAFF348C + DAFF539CE0FFFFFFFF00FFFFFF00FFFFFF008C8E8DFF858A88FF858A88FF858A + 88FF858A88FF858A88FF858A88FF858A88FF858A88FF858A88FF858A88FFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00858A88FFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF858A + 88FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00858A88FFFFFFFFFFF7F8F8FFF7F8 + F8FFF7F8F8FFF7F8F8FFF7F8F8FFF7F8F8FFF7F8F8FFF7F8F8FFF7F8F8FFF7F8 + F8FF858A88FFFFFFFF00FFFFFF00FFFFFF00858A88FFFFFFFFFFF7F8F8FF0E0E + D8FF0E0ED8FF0E0ED8FF858A88FF858A88FFF7F8F8FFF7F8F8FFF7F8F8FFF7F8 + F8FFFEFEFEFF888D8BFFFFFFFF00FFFFFF00858A88FFFFFFFFFFF7F8F8FFF7F8 + F8FFF7F8F8FFF7F8F8FFF7F8F8FFF7F8F8FFF7F8F8FFF7F8F8FF02598FFF0259 + 8FFFFEFEFEFF888D8BFFFFFFFF00FFFFFF00858A88FFFFFFFFFFF7F8F8FF858A + 88FF858A88FF858A88FF858A88FF858A88FF858A88FF02598FFF02598FFFC7EB + EFFF02598FFF888D8BFFFFFFFF00FFFFFF00858A88FFFFFFFFFFF7F8F8FFF4F5 + F5FFF4F5F5FFF4F5F5FFF4F5F5FFF4F5F5FF02598FFFC7EBEFFF02598FFF0259 + 8FFF02598FFF888D8BFFFFFFFF00FFFFFF00858A88FFFFFFFFFFF7F8F8FFA369 + 36FFA36936FFA36936FFA36936FF02598FFFC7EBEFFF6AACD2FF5787A4FF0259 + 8FFFFEFEFEFF888D8BFFFFFFFF00FFFFFF00858A88FFFFFFFFFFF7F8F8FFF4F5 + F5FFF4F5F5FFF4F5F5FF02598FFFC6EAEEFF69AACFFF5683A0FF02598FFFF3F3 + F3FFFEFEFEFF888D8BFFFFFFFF00FFFFFF00858A88FFFFFFFFFFF7F8F8FF858A + 88FF858A88FF02598FFFC5E6EDFF68A6CEFF5784A0FF02598FFFF7F8F8FFF1F2 + F2FFFEFEFEFF888D8BFFFFFFFF00FFFFFF00858A88FFFFFFFFFFF7F8F8FFF6F7 + F7FF02598FFFC4E5EDFF649FC8FF5787A4FF02598FFFF1F2F2FFF0F1F1FFF0F0 + F0FFFEFEFEFF888D8BFFFFFFFF00FFFFFF00858A88FFFFFFFFFFF6F7F7FF858A + 88FF325061FF8AABC2FF5585A3FF02598FFF858A88FF858A88FF858A88FFEEEF + EFFFFEFEFEFF888D8BFFFFFFFF00FFFFFF00858A88FFFFFFFFFFF4F5F5FFF4F5 + F5FF000000FF36576BFF02598FFFF4F5F5FFF4F5F5FFF4F5F5FFEEEEEEFFEDED + EDFFFEFEFEFF888D8BFFFFFFFF00FFFFFF00858A88FFFFFFFFFFF3F4F4FF858A + 88FFF4F5F5FFF4F5F5FFF4F5F5FFF4F5F5FFF4F5F5FFF4F5F5FFECECECFFEBEC + ECFFFEFEFEFF888D8BFFFFFFFF00FFFFFF00858A88FFFFFFFFFFFEFEFEFFFEFE + FEFFFEFEFEFFFEFEFEFFFEFEFEFFFEFEFEFFFEFEFEFFFEFEFEFFFEFEFEFFFEFE + FEFFFFFFFFFF888D8BFFFFFFFF00FFFFFF008C8E8DFF888D8BFF888D8BFF888D + 8BFF888D8BFF888D8BFF888D8BFF888D8BFF888D8BFF888D8BFF888D8BFF888D + 8BFF888D8BFF8C8E8DFFFFFFFF00FEFEFE00FEFEFE00FDFDFD00FDFDFD00FDFC + FC00FCFBFB00FCFCFC00FDFCFC00FAFAFB00FCFCFC00FFFFFF00C5C3D900E2DC + E500FFFEFE00FCFCFC00FDFDFC00FEFEFE00FDFCFD00FEFEFE00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FEFEFF00FFFFFF00D9DCE2002D3A9AFF7F82 + C9FFFEFDFD00FDFDFD00FCFCFB00FCFCFC00FEFEFF00FFFFFF00F5F2F100F5EC + EC00F6EBEB00EDEFEF00E8EBEB00E2E3E700EBECEC00848197FF011694FF1441 + DAFFA7B2DB00FFFFFA00FAFAFC00FDFDFE00F9F6F500D6B6B200B8716AFFBC64 + 5FFF98706EFF545655FF545655FF545655FF545655FF545655FF3E4D8CFF0032 + EBFF143BCCFFC6C7DA00FFFFFF00FBFBFB00BA8A8600982E24FFBD594EFF9D70 + 6CFF545655FF545655FFD2A391FFF9E9D8FFB4A8AEFF545655FF545655FF3F5F + C5FF0533F4FF3447C1FFCBCCE0000000000092342BFFB95248FFC49D96FF5456 + 55FF545655FFD69B82FFCC9888FFD7C1BAFF9A94A6FF6A658AFF545655FF5456 + 55FF5C80F3FF001FDAFF5C6DB4FF0000000095291CFFC85B52FFB98E8AFF5456 + 55FFE3AF96FFCDA693FFDFAA9DFFB99B9DFF878BB9FF766F8FFF534E7CFF5456 + 55FF5577F0FF103AC8FFBFC7DC00000000007D190CFFC05044FFBD8A84FF5456 + 55FFDBA188FFD4A898FFD49482FFC6A8A5FFA7B7CBFF9D9FB1FF6A567CFF5456 + 55FF4A6AD4FF808FC9FFFFFFFE00000000006A2718FF951E14FFC28078FF5456 + 55FFD58A71FFD19F93FFCCBCB3FFBFD5D2FFBCE2E8FFB8CFC9FF878E9DFF5456 + 55FF9399C8FFEFEEF600FAFAFD00FDFFFF00B49D95006D1003FFA65B52FF5456 + 55FF545655FFC5CDC2FFA9D0D5FFABD4DCFFA3BFC5FFA7CCCBFF545655FF5456 + 55FFECE9E900FFFFFF00FCFCFC00FCFBFC00FAFAF900D0BEB600545655FF0EB2 + 5FFF545655FF545655FF96C6CEFFABC4C4FFAAD3D8FF545655FF545655FF4471 + 8CFFD8E4EE00FEFEFE00FCFCFC00FEFEFE00FEFDFD00545655FF0EB25FFF0EB2 + 5FFF7ECAA3FF545655FF545655FF545655FF545655FF545655FF3E6179FF1054 + 86FFD0DDE600FEFEFF00FBFAFC00F6F6F600545655FF0EB25FFF0EB25FFF7ECA + A3FF545655FF80BDE2FF72B6DEFF8FD1EBFF80B0C9FF6A8A9FFF005185FF0F52 + 80FFD5DEE400FEFEFE00FCFCFD00545655FF0EB25FFF0EB25FFF7ECAA3FF5456 + 55FFDFEEF00038AFF6FF00A5FFFF1AC0FFFF0779BAFF005389FF005390FF336D + 95FFE3E9EB00FFFFFF00FBFDFD00545655FF0EB25FFF7ECAA3FF545655FFF7F7 + F700FFFFFF00CDE9F70032AFF1FF06B0FEFF0F83BEFF004A7FFF155882FFB2C3 + CE00FDFEFE00FDFDFD00FCFCFC0054565500545655FF545655FFFDFCFC00FFFE + FF00F8FBFC00FFFFFD00D7EAF40046BAF4FF0072ADFF43768EFFCED8DB00FFFE + FD00FDFDFD00FCFCFC00FDFCFC00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00848484FF848484FF848484FFC4C4C4FFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00848484FF848484FF848484FF848484FF8484 + 84FF848484FFC4C4C4FFFFFFFF00848484FFE5E5E5FFE5E5E5FF848484FF8484 + 84FF848484FF848484FF848484FF848484FFE5E5E5FFE5E5E5FFE5E5E5FFE5E5 + E5FFE5E5E5FF848484FFFFFFFF00C4C4C4FF848484FF848484FF848484FFFFFF + FF00848484FF545655FF545655FF545655FF545655FF545655FF848484FF8484 + 84FF848484FF848484FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00545655FF545655FFD4C3C0FFF9E9D8FFD4C3C0FF545655FF545655FFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005456 + 55FF545655FFD4B2A4FFD4C3C0FFF9E9D8FFD4C3C0FFBA774FFF545655FF5456 + 55FF848484FFC4C4C4FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005456 + 55FF8F746BFFC67B3CFF9D8B86FF9C8D8AFFD8C0AEFFE3BB7EFFE4B881FF5456 + 55FFE5E5E5FF848484FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005456 + 55FFAD795DFFDFBB94FFD4C3C0FFD8C0AEFFAD856BFFC1824DFFA87F66FF5456 + 55FF848484FF848484FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005456 + 55FF947868FFE4B881FFDCBAA0FFD9BFA9FFD7C1B4FFDFB896FFE3BB7EFF5456 + 55FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005456 + 55FF545655FFE4B881FFE4B881FFB97F5FFFB67A58FFBD7C4FFF545655FF5456 + 55FF848484FFC4C4C4FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00545655FF0EB2 + 5FFF545655FF545655FFE4B881FFB97F5FFFE2B68EFF545655FF545655FFE5E5 + E5FFE5E5E5FF848484FFFFFFFF00FFFFFF00FFFFFF00545655FF0EB25FFF0EB2 + 5FFF7ECAA3FF545655FF545655FF545655FF545655FF545655FF848484FF8484 + 84FF848484FF848484FFFFFFFF00FFFFFF00545655FF0EB25FFF0EB25FFF7ECA + A3FF545655FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00545655FF0EB25FFF0EB25FFF7ECAA3FF5456 + 55FF848484FFFFFFFF00FFFFFF00848484FF848484FF848484FF848484FF8484 + 84FF848484FFC4C4C4FFFFFFFF00545655FF0EB25FFF7ECAA3FF545655FFFFFF + FF00848484FF848484FF848484FF848484FFE5E5E5FFE5E5E5FFE5E5E5FFE5E5 + E5FFE5E5E5FF848484FFFFFFFF00545655FF545655FF545655FFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00C4C4C4FF848484FF848484FF848484FF8484 + 84FF848484FF848484FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FEFEFE009EA3C6FF7689D7FFFEFE + FE00F7F7FB00FEFEFE00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00DFE1 + E0FFB3B6B5FFB3B6B5FFB3B6B5FFB3B6B5FFB3B6B5FF7579AAFF6983DCFF698B + F3FFFEFEFE00FAFAFC00FFFFFF00FFFFFF00FFFFFF00FFFFFF00B3B6B5FFB3B6 + B5FFB8BAB9FFDFE1E0FFFFFFFF00FFFFFF00A3A3BCFF767BA6FF697DD3FF658A + F3FF8C9DDEFFFEFEFE00FFFFFF00FFFFFF00FFFFFF00B3B6B5FFD1A5A3FFD2A8 + A6FFFFFFFF00FEFEFD00FFFFFF00FFFFFF00767BA6FF767BA6FF6875C8FF698B + F3FF698BF3FF96A0D7FFFFFFFF00FFFFFF00C8938FFFD39B95FFD9A7A3FFD7A6 + A1FFCD9E97FF3A3E3EFF3A3E3EFF3A3E3EFF3A3E3EFF767BA6FF6475B9FF698B + F3FF698BF3FF698BF3FFFFFFFF00C0938DFFCD938BFFD7AEA6FFEDD3C9FFE0BD + B5FF3A3E3EFF9E7D71FFF7D8C3FFCCC2C2FF605F64FF3A3E3EFF767BA6FF698B + F3FF698BF3FFADB9DFFFFFFFFF00B1766FFFD4938CFFD7ABA5FFE8C6C0FF3A3E + 3EFFA88979FFDD9F89FFCFAEA5FFA69FAFFF6E6991FF535460FF3A3E3EFF698B + F3FF899BDEFFB3B6B5FFFFFFFF00A7756CFFC98A81FFD49E98FFD9A9A4FF3A3E + 3EFFEDBCA3FFD0A293FFCD9A92FF9493B5FF7F7EA0FF594C7BFF3A3E3EFFFFFF + FF00FFFFFF00B3B6B5FFFFFFFF00FFFFFF00B3766DFFD08A82FFD0938CFF3A3E + 3EFFEDA790FFCC998AFFCCACA1FFB8CCD5FFACBBC2FF7F7590FF3A3E3EFFFFFF + FF00FFFFFF00B3B6B5FFFFFFFF00FFFFFF00B3B6B5FFBB827CFFC98A80FF3A3E + 3EFFC39E8DFFCDC8C2FFB1D0D2FFADD0D6FFBCDFDAFF7E898EFF3A3E3EFFFFFF + FF00DFE1E0FFB3B6B5FFFFFFFF00FFFFFF00B3B6B5FFB3B6B5FF3A3E3EFF3A3E + 3EFF3A3E3EFF9EC5C6FFB0DDE5FFB6DAE0FF879FA0FF3A3E3EFFA7E2FDFFFFFF + FF00B3B6B5FFB3B6B5FFFFFFFF00FFFFFF00DFE1E0FF3A3E3EFF008D43FF2FC6 + 79FF3A3E3EFF3A3E3EFF3A3E3EFF3A3E3EFF3A3E3EFFA7E2FDFF7B9EB7FFDFE1 + E0FFB3B6B5FFDFE1E0FFFFFFFF00FFFFFF003A3E3EFF019148FF21CC75FF5DA1 + 7EFF3A3E3EFF70BFE6FF70BFE6FFA7E2FDFFA7E2FDFF7B9EB7FF7B9EB7FFB3B6 + B5FFB3B6B5FFFFFFFF00FFFFFF003A3E3EFF06974DFF1AC770FF67A786FF3A3E + 3EFFB3B6B5FF70BFE6FF70BFE6FF70BFE6FF7B9EB7FF7B9EB7FF7B9EB7FFB3B6 + B5FFDFE1E0FFFFFFFF00FFFFFF003A3E3EFF19C26CFF6BAD8BFF3A3E3EFFDFE1 + E0FFB3B6B5FFB3B6B5FF70BFE6FF70BFE6FF7B9EB7FF7B9EB7FFDFE1E0FFFFFF + FF00FFFFFF00FFFFFF00FFFFFF003A3E3EFF3A3E3EFF3A3E3EFFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF0070BFE6FF7B9EB7FFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FEFEFE00A5AACAFF8092DAFFFEFE + FE00F7F7FB00FEFEFE00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E1E3 + E2FFB9BBBAFFB9BBBAFFB9BBBAFFB9BBBAFFB9BBBAFF8083B0FF758CDEFF7594 + F3FFFEFEFE00FAFAFC00FFFFFF00FFFFFF00FFFFFF00FFFFFF00B9BBBAFFB9BB + BAFFBDBFBEFFE1E3E2FFFFFFFF00FFFFFF00AAAAC1FF8085ADFF7587D6FF7193 + F3FF95A4E0FFFEFEFE00FFFFFF00FFFFFF00FFFFFF00B9BBBAFFD4ACAAFFD5AE + ADFFFFFFFF00FEFEFD00FFFFFF00FFFFFF008085ADFF8085ADFF7480CCFF7594 + F3FF7594F3FF9EA7DAFFFFFFFF00FFFFFF00CC9B97FFD6A39DFFDCAEAAFFDAAD + A8FFD1A59FFFFFFFFF00FFFFFF00BFBFCFFF8085ADFF8085ADFF7080BEFF7594 + F3FF7594F3FF7594F3FFFFFFFF00C59B96FFD19B94FFDAB4ADFFEED6CDFFE2C2 + BAFF6A6A6AFF000000FF000000FF6A6A6AFF8085ADFF8085ADFF8085ADFF7594 + F3FF7594F3FFB3BEE1FFFFFFFF00B7807AFFD79B95FFDAB1ACFFE9CAC5FFE3C5 + BFFF000000FFE1E1E1FFD2D2D2FF000000FFFFFFFF008085ADFF8085ADFF7594 + F3FF92A3E0FFB9BBBAFFFFFFFF00AE8077FFCD938BFFD7A5A0FFDCAFABFFE2BB + B7FF000000FFE6E6E6FF000000FFF9F9FA00000000FF6A6A6AFF8085ADFFFFFF + FF00FFFFFF00B9BBBAFFFFFFFF00FFFFFF00B98078FFD3938CFFD39B95FF6A6A + 6AFF000000FFD6D6D6FF000000FF000000FFC0C0C0FF000000FFFFFFFF00FFFF + FF00FFFFFF00B9BBBAFFFFFFFF00FFFFFF00B9BBBAFFC08C86FFCD938AFF0000 + 00FFCBCBCBFFD2D2D2FFC9C9C9FFD2D2D2FFC6C6C6FF000000FFECF5FC5FFFFF + FF00E1E3E2FFB9BBBAFFFFFFFF00FFFFFF00B9BBBAFFB9BBBAFF045FCDFF0000 + 00FFD5D5D5FFBBBBBBFF000000FF000000FF000000FFAEE4FDFFAEE4FDFFFFFF + FF00B9BBBAFFB9BBBAFFFFFFFF00FFFFFF00E1E3E2FF045FCDFF3795F7FF045F + CDFF000000FF000000FF6A6A6AFFAAE4FBFFAEE4FDFFAEE4FDFF85A5BCFFE1E3 + E2FFB9BBBAFFE1E3E2FFFFFFFF00FFFFFF00045FCDFF3795F7FF3795F7FF3795 + F7FF045FCDFF7BC4E8FF7BC4E8FFAEE4FDFFAEE4FDFF85A5BCFF85A5BCFFB9BB + BAFFB9BBBAFFFFFFFF00FFFFFF00045FCDFF3795F7FF3795F7FF3795F7FF045F + CDFFB9BBBAFF7BC4E8FF7BC4E8FF7BC4E8FF85A5BCFF85A5BCFF85A5BCFFB9BB + BAFFE1E3E2FFFFFFFF00FFFFFF00045FCDFF3795F7FF3795F7FF045FCDFFE1E3 + E2FFB9BBBAFFB9BBBAFF7BC4E8FF7BC4E8FF85A5BCFF85A5BCFFE1E3E2FFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00045FCDFF045FCDFF045FCDFFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF007BC4E8FF85A5BCFFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00E1BDA6FFD9AB8DFFC9895EFFC07543FFBD6E + 3AFFBB6C37FFBB6B36FFBB6A36FFBB6A36FFBC6C39FFBD6E3BFFBB6D3AFFBF74 + 44FFC98D65FFE7CEBCFF00000000D6A585FFF6E0D1FFF7E0D1FFFEFBF8FFFEFB + F7FFFDF9F6FFFCF5F0FFFAF0EAFFFBF2EDFFFDF9F6FFFDFAF7FFFBF1EBFFF8E9 + DFFFECD1BEFFCD926AFFE2C5B1FFC68255FFF6DFD1FFE9AA80FFFEFAF6FFFDFA + F6FFDAF1F3FFAFF4FAFF99F6FEFF99F6FEFFAFF4FAFFDAF1F3FFF9ECE2FFF8E7 + DBFFEED0BAFFECD0BDFFBD7443FFC07442FFF6DFD0FFE8A87EFFFCF6F1FFC6F2 + F6FF94F7FFFF94F7FFFF94F7FFFF94F7FFFF94F7FFFF94F7FFFFB8E4E8FFF7E6 + DBFFE1A37AFFEFD5C3FFB76A36FFBD6E3AFFF5DDCCFFE7A87EFFFAF0E8FFB5EF + FFFF849CA5FF292929FF292929FF292929FF292929FF849CA5FFB5EFFFFFF7E5 + D9FFE0A278FFE7C2A9FFB66835FFBB6C37FFF4DCC9FFE7A77DFFC9E6F0FFB5EF + FFFF292929FF292929FFB5EFFFFF849CA5FF292929FF292929FFB5EFFFFFC9EF + F9FFDEA077FFE4BEA4FFB46734FFBB6B36FFF4D9C7FFE6A67DFFBAECFAFFB5EF + FFFF292929FF525252FFB5EFFFFFB5EFFFFF292929FF292929FFB5EFFFFFBAEF + FDFFDA9C74FFE1BA9FFFB36634FFBB6A36FFF2D8C5FFE3A47BFFB5EEFEFFB5EF + FFFFB5EFFFFFB5EFFFFFB5EFFFFF525252FF292929FF525252FFB5EFFFFFB5EF + FEFFDC9D74FFDDB59AFFB16534FFBB6A36FFF2D5C2FFE3A37AFFD0F2FAFFCEF7 + FFFFCEF7FFFFCEF7FFFF525252FF292929FF849CA5FFCEF7FFFFCEF7FFFFD2F7 + FEFFD99B73FFDAB095FFAF6433FFBB6A36FFF0D2BEFFE2A37AFFE2A37AFFCEF7 + FFFFCEF7FFFFCEF7FFFF292929FF525252FFCEF7FFFFCEF7FFFFCEF7FFFFD899 + 71FFD69970FFD5AB8EFFAD6333FFBA6A36FFEFD0BBFFE2A27AFFFEFBF8FFCEF7 + FFFFCEF7FFFFCEF7FFFFCEF7FFFFCEF7FFFFCEF7FFFFCEF7FFFFCEF7FFFFFEFB + F8FFD3966DFFD2A78AFFAB6232FFBB6B38FFEFCEB8FFE1A279FFFEFAF7FF62C0 + 88FF62C088FFCEF7FFFF292929FF525252FFCEF7FFFF62C088FF62C088FFFDF9 + F6FFCF936AFFCEA384FFAA6132FFBB6C38FFEECCB6FFE1A27AFFFEFAF7FFBFDC + C2FFBFDCC2FFBFDCC2FFBFDCC2FFBFDCC2FFBFDCC2FFBFDCC2FFBFDCC2FFFDF9 + F6FFCD9068FFCC9E81FFA86132FFBA6C38FFEDCAB3FFE0A27AFFFEFAF7FF62C0 + 88FF62C088FF62C088FF62C088FF62C088FF62C088FF62C088FF62C088FFFDF9 + F6FFCA8D65FFC99B7CFFA76132FFC37D4FFFEBC6ADFFEAC5ADFFFEFBF8FFFEFB + F8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFB + F8FFC89A7CFFC79879FFAD6B40FFD8AB8E00CD9570FFBD7342FFB76835FFB568 + 35FFB46734FFB26634FFB06533FFAE6433FFAC6332FFAA6232FFA96132FFA860 + 31FFA76132FFAB693CFFBC8661FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FEFEFE00636CA5FF233E + C2FFFEFEFE00F7F7FB00FEFEFE00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00CFD2D1FF868B89FF868B89FF868B89FF868B89FF868B89FF1F2777FF0A37 + CAFF0B45F3FFFEFEFE00FAFAFC00FFFFFF00FFFFFF00FFFFFF00FFFFFF00868B + 89FF868B89FF8D908FFFCFD2D1FFFFFFFF00FFFFFF006B6995FF232971FF0C2C + BAFF0641F2FF4661CEFFFEFEFE00FFFFFF00FFFFFF00FFFFFF00868B89FFB86F + 6CFFB97370FFFFFFFF00FEFEFD00FFFFFF00FFFFFF00232971FF232971FF0920 + A8FF0B45F3FF0B45F3FF5666C1FFFFFFFF00FFFFFF00A9524AFFBA5E54FFC472 + 69FFC17067FFB06358FFFFFFFF00FFFFFF009091ADFF232971FF232971FF031E + 8EFF0B45F3FF0B45F3FF0B45F3FF5AC2E1FF9C5048FFB14E45FFC17D71FFE7BA + ABFFD09689FFC87A6EFFB4554BFFFFFFFF00FFFFFF00232971FF232971FF2329 + 71FF0B45F3FF0B45F3FF7C8ECFFF3CB6DCFF832316FFBC5047FFC1786FFFDDA5 + 9BFFD29C92FFC37C71FFB4554BFFFFFFFF00FFFFFF00FFFFFF00232971FF2329 + 71FF0B45F3FF3E5CCCFF868B89FF41B4DDFF721F11FFAB4135FFBD6359FFC474 + 6EFFD18B83FFB86B5EFFB15849FFFFFFFF00F9F9FA00FFFFFF00FFFFFF002329 + 71FFFFFFFF00FFFFFF00868B89FF41AFDCFF721F11FFAB4135FFBD6359FFC474 + 6EFF3594DAFF3594DAFF3594DAFF3594DAFF3594DAFF3594DAFF3594DAFF3594 + DAFF3594DAFFFFFFFF00868B89FF39ADDBFFE8F6FBFF70BCE7FF55AAE2FF4DA5 + E0FF91C9EBFFFAF3EFFFFDFEFDFFFFFDFCFFFFFDFCFFFEFDFCFFFEFCFBFFFEFE + FDFF3594DAFFCFD2D1FF868B89FF3BA8DBFFFEFFFFFFF8FDFFFFF6FDFFFFF5FC + FFFFF3FCFEFF9AE4F4FF9AE6F7FF9BE6F6FF9DE5F5FF9EE5F5FF9FE5F4FFDAF3 + F8FF3594DAFF868B89FF868B89FF3BA4DBFFF6FCFEFF94E5F8FF93E5F8FF93E5 + F8FF91E5F8FF93DBE9FF93D7E3FF93D2DCFF90CED7FF8CC8CFFF86C1C6FFC9D8 + D6FF3594DAFF868B89FFCFD2D1FF3C9DDCFFF2FAFDFF94E6F8FF92E5F8FF90E5 + F8FF8BE3F8FF86E2F7FF7FE1F7FF77DEF6FF6CDCF6FF5ED9F4FF4FD5F3FFCCF2 + FBFF3594DAFF868B89FFFFFFFF003C98DCFFEFFAFEFF93E5F8FF8FE4F8FF89E3 + F8FF82E1F7FF7ADFF7FF71DEF6FF67DBF5FF5BD8F4FF4DD4F3FF40D1F2FFCAF2 + FBFF3594DAFFCFD2D1FFFFFFFF003790DAFFDCF0FAFF98E1F6FF95E0F6FF92DF + F6FF8EDEF5FF89DCF5FF85DAF4FF80D9F4FF7AD7F3FF74D5F3FF70D3F2FFC2EA + F8FF3594DAFFFFFFFF00FFFFFF00539CE0FF348CDAFF348BDAFF348CDAFF348C + DAFF348CDAFF348CDAFF348CDAFF348CDAFF348CDAFF348CDAFF348BDAFF348C + DAFF539CE0FFFFFFFF00FFFFFF00FEFEFE00FEFEFE00FDFDFD00FDFDFD00FDFC + FC00FCFBFB00FCFCFC00FDFCFC00FAFAFB00FCFCFC00FFFFFF00C5C3D900E2DC + E500FFFEFE00FCFCFC00FDFDFC00FEFEFE00FDFCFD00FEFEFE00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FEFEFF00FFFFFF00D9DCE2002D3A9AFF7F82 + C9FFFEFDFD00FDFDFD00FCFCFB00FCFCFC00FEFEFF00FFFFFF00F5F2F100F5EC + EC00F6EBEB00EDEFEF00E8EBEB00E2E3E700EBECEC00848197FF011694FF1441 + DAFFA7B2DB00FFFFFA00FAFAFC00FDFDFE00F9F6F500D6B6B200B8716AFFBC64 + 5FFF98706EFF54565500545655005456550054565500545655003E4D8CFF0032 + EBFF143BCCFFC6C7DA00FFFFFF00FBFBFB00BA8A8600982E24FFBD594EFF9D70 + 6CFF5456550054565500D2A391FFF9E9D8FFB4A8AEFF54565500545655003F5F + C5FF0533F4FF3447C1FFCBCCE0000000000092342BFFB95248FFC49D96FF5456 + 550054565500D69B82FFCC9888FFD7C1BAFF9A94A6FF6A658AFF545655005456 + 55005C80F3FF001FDAFF5C6DB4FF0000000095291CFFC85B52FFB98E8AFF5456 + 5500E3AF96FFCDA693FFDFAA9DFFB99B9DFF878BB9FF766F8FFF534E7CFF5456 + 55005577F0FF103AC8FFBFC7DC00000000007D190CFFC05044FFBD8A84FF5456 + 5500DBA188FFD4A898FFD49482FFC6A8A5FFA7B7CBFF9D9FB1FF6A567CFF5456 + 55004A6AD4FF808FC9FFFFFFFE00000000006A2718FF951E14FFC28078FF5456 + 5500D58A71FFD19F93FFCCBCB3FFBFD5D2FFBCE2E8FFB8CFC9FF878E9DFF5456 + 55009399C8FFEFEEF600FAFAFD00FDFFFF00B49D95006D1003FFA65B52FF5456 + 550054565500C5CDC2FFA9D0D5FFABD4DCFFA3BFC5FFA7CCCBFF545655005456 + 5500ECE9E900FFFFFF00FCFCFC00FCFBFC00FAFAF900D0BEB600545655000EB2 + 5FFF545655005456550096C6CEFFABC4C4FFAAD3D8FF54565500545655004471 + 8CFFD8E4EE00FEFEFE00FCFCFC00FEFEFE00FEFDFD00545655000EB25FFF0EB2 + 5FFF7ECAA3FF54565500545655005456550054565500545655003E6179FF1054 + 86FFD0DDE600FEFEFF00FBFAFC00F6F6F600545655000EB25FFF0EB25FFF7ECA + A3FF5456550080BDE2FF72B6DEFF8FD1EBFF80B0C9FF6A8A9FFF005185FF0F52 + 80FFD5DEE400FEFEFE00FCFCFD00545655000EB25FFF0EB25FFF7ECAA3FF5456 + 5500DFEEF00038AFF6FF00A5FFFF1AC0FFFF0779BAFF005389FF005390FF336D + 95FFE3E9EB00FFFFFF00FBFDFD00545655000EB25FFF7ECAA3FF54565500F7F7 + F700FFFFFF00CDE9F70032AFF1FF06B0FEFF0F83BEFF004A7FFF155882FFB2C3 + CE00FDFEFE00FDFDFD00FCFCFC00545655005456550054565500FDFCFC00FFFE + FF00F8FBFC00FFFFFD00D7EAF40046BAF4FF0072ADFF43768EFFCED8DB00FFFE + FD00FDFDFD00FCFCFC00FDFCFC00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF003AB73FFFCDECCFFFFFFFFF00BFE5C1FF3DAF43FFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E5F6E5FFFFFF + FF00FFFFFF00FFFFFF0038B23EFF74C878FFE8F0ECDFAFDDB2FF3FAB45FFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF003AB740FFA5DE + A8FFFFFFFF00FFFFFF003DB042FF45B049FF88AD9CFF418A56FF349E3BFF96B3 + A6FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0044B84AFF3EB4 + 43FFFFFFFF0043B148FF35A83AFF34A539FF34A139FF72C27EFFAFE3C2FF5F8C + 78FFA1B9AEFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00CDEBCEFF36AB + 3CFF44AF4AFF45AC4BFF9ED4ADFFA4D7B8FF85C38EFF288F2DFF4FB75FFF97C8 + AAFF2C8D31FF2B8930FF2A852EFF43B649FFE4F5E5FFFFFFFF00FFFFFF0035A7 + 3BFF39A53FFF90CEA8FF62B984FF58B27BFF60B276FF38973EFF29892DFF57A4 + 62FF45695FFFFFFFFF00FFFFFF003BAF40FF36AA3BFF7FC882FF49AD4EFF50AD + 56FF8DCCA5FF5EB580FF4FAD73FF42A35DFF1010CFFF1010CFFF1010CFFF1010 + CFFF6A8E79FFFFFFFF00FFFFFF00FFFFFF0061B865FF33A138FF339E38FF94CF + ACFF5CB47EFF4EAC72FF41A15DFF1010CFFF1010CFFF1010CFFF1010CFFF1010 + CFFF1010CFFFA2C5A4FF1010CFFFFFFFFF00FFFFFF00399F3EFF52A959FF6DBC + 8CFF4DAA70FF429F5CFF1010CFFF1010CFFF51A36DFF479D63FF89BE99FF1010 + CFFF1010CFFF1010CFFF1010CFFFFFFFFF00FFFFFF003B9A3FFF62AD68FF77BE + 91FF44A05DFF4B9F53FF78B48CFF4EA26AFF479C62FF71B185FF6AA06FFF2471 + 27FF1010CFFF1010CFFF1010CFFFFFFFFF00FFFFFF0095C697FF2D8C32FF77B5 + 82FF4D9E54FF79B38CFF4DA16AFF469A60FF71B084FF367D39FF236E26FF1010 + CFFF1010CFFF1010CFFF1010CFFFFFFFFF00FFFFFF00FFFFFF0062A565FF2074 + 23FF94C09DFF6CAF82FF1010CFFF1010CFFF1010CFFF1010CFFF216824FF276A + 2AFF9AB89BFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005E9C + 61FF2A792EFF68A16FFF1010CFFF1010CFFF1010CFFFA8C3AAFFC6D7C7FF2C69 + 2FFF1D5C20FFE0E9E1FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF0076A77AFF256F2AFF1010CFFF1010CFFF1010CFFF1010CFFFFFFFFF00FFFF + FF00FFFFFF001010CFFF1010CFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF001010CFFF518453FF1010CFFF1010CFFF1010CFFF1010 + CFFF1010CFFF1010CFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00215D24FF1010CFFF1010CFFF1010 + CFFF1010CFFFFFFFFF00FFFFFF00 + } + end +end diff --git a/examples/anchordocking/minide/unit1.pas b/examples/anchordocking/minide/unit1.pas new file mode 100644 index 0000000000..898f22c1f1 --- /dev/null +++ b/examples/anchordocking/minide/unit1.pas @@ -0,0 +1,228 @@ +unit Unit1; + +{$mode objfpc}{$H+} + +interface + +uses + Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Menus, + ExtCtrls, Buttons, ComCtrls, SimpleFrm, AnchorDocking, AnchorDockStorage, + XMLPropStorage; + +type + + { TMainIDE } + + TMainIDE = class(TForm) + ImageList1: TImageList; + MainMenu1: TMainMenu; + ComponentPalette: TNotebook; + NewFileMenuItem: TMenuItem; + OpenFileMenuItem: TMenuItem; + Page1: TPage; + Page2: TPage; + BtnPanel: TPanel; + QuitMenuItem: TMenuItem; + FileMenuItem: TMenuItem; + ToolBar1: TToolBar; + ToolBar2: TToolBar; + SaveLayoutToolButton: TToolButton; + LoadLayoutToolButton: TToolButton; + ViewDbgOutToolButton: TToolButton; + ViewProjInspToolButton: TToolButton; + ViewFPDocEditorToolButton: TToolButton; + ViewMessagesToolButton: TToolButton; + ViewOIToolButton: TToolButton; + ViewCodeExplToolButton: TToolButton; + ViewSrcEdit2ToolButton: TToolButton; + ViewSrcEditor1ToolButton: TToolButton; + procedure FileMenuItemClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure LoadLayoutToolButtonClick(Sender: TObject); + procedure QuitMenuItemClick(Sender: TObject); + procedure SaveLayoutToolButtonClick(Sender: TObject); + procedure ViewCodeExplToolButtonClick(Sender: TObject); + procedure ViewDbgOutToolButtonClick(Sender: TObject); + procedure ViewFPDocEditorToolButtonClick(Sender: TObject); + procedure ViewMessagesToolButtonClick(Sender: TObject); + procedure ViewOIToolButtonClick(Sender: TObject); + procedure ViewProjInspToolButtonClick(Sender: TObject); + procedure ViewSrcEdit2ToolButtonClick(Sender: TObject); + procedure ViewSrcEditor1ToolButtonClick(Sender: TObject); + private + procedure DockMasterCreateControl(Sender: TObject; aName: string; var + AControl: TControl; DoDisableAutoSizing: boolean); + public + procedure ShowForm(AForm: TCustomForm; FormEnableAutosizing: boolean); + procedure SaveLayout(Filename: string); + procedure LoadLayout(Filename: string); + end; + +var + MainIDE: TMainIDE; + +implementation + +{$R *.lfm} + +{ TMainIDE } + +procedure TMainIDE.FileMenuItemClick(Sender: TObject); +begin + AllAutoSized; + close; +end; + +procedure TMainIDE.DockMasterCreateControl(Sender: TObject; aName: string; var + AControl: TControl; DoDisableAutoSizing: boolean); + + procedure CreateForm(Caption: string; NewBounds: TRect); + begin + AControl:=CreateSimpleForm(aName,Caption,NewBounds,DoDisableAutoSizing); + end; + +begin + if aName='CodeExplorer' then + CreateForm('Code Explorer',Bounds(700,230,100,250)) + else if aName='FPDocEditor' then + CreateForm('FPDoc Editor',Bounds(200,720,300,100)) + else if aName='Messages' then + CreateForm('Messages',Bounds(230,650,350,100)) + else if aName='ObjectInspector' then + CreateForm('Object Inspector',Bounds(10,200,100,350)) + else if aName='SourceEditor1' then + CreateForm('Source Editor 1',Bounds(230,200,400,400)) + else if aName='SourceEditor2' then + CreateForm('Source Editor 2',Bounds(260,230,350,350)) + else if aName='ProjectInspector' then + CreateForm('Project Inspector',Bounds(10,230,150,250)) + else if aName='DebugOutput' then + CreateForm('Debug Output',Bounds(400,400,350,150)); +end; + +procedure TMainIDE.FormCreate(Sender: TObject); +begin + ViewOIToolButton.Hint:='View Object Inspector'; + ViewCodeExplToolButton.Hint:='View Code Explorer'; + ViewSrcEditor1ToolButton.Hint:='View Source Editor 1'; + ViewSrcEdit2ToolButton.Hint:='View Source Editor 2'; + ViewFPDocEditorToolButton.Hint:='View FPDoc Editor'; + ViewMessagesToolButton.Hint:='View Messages'; + ViewProjInspToolButton.Hint:='View Project Inspector'; + ViewDbgOutToolButton.Hint:='View Debug Output'; + SaveLayoutToolButton.Hint:='Save Layout to layout.xml'; + LoadLayoutToolButton.Hint:='Load layout from layout.xml'; + + DockMaster.OnCreateControl:=@DockMasterCreateControl; + + SetBounds(100,50,600,80); + ViewSrcEditor1ToolButtonClick(Self); + ViewMessagesToolButtonClick(Self); + ViewOIToolButtonClick(Self); +end; + +procedure TMainIDE.LoadLayoutToolButtonClick(Sender: TObject); +begin + LoadLayout('layout.xml'); +end; + +procedure TMainIDE.QuitMenuItemClick(Sender: TObject); +begin + Close; +end; + +procedure TMainIDE.SaveLayoutToolButtonClick(Sender: TObject); +begin + SaveLayout('layout.xml'); +end; + +procedure TMainIDE.ViewCodeExplToolButtonClick(Sender: TObject); +begin + DockMaster.ShowControl('CodeExplorer',true); +end; + +procedure TMainIDE.ViewDbgOutToolButtonClick(Sender: TObject); +begin + DockMaster.ShowControl('DebugOutput',true); +end; + +procedure TMainIDE.ViewFPDocEditorToolButtonClick(Sender: TObject); +begin + DockMaster.ShowControl('FPDocEditor',true); +end; + +procedure TMainIDE.ViewMessagesToolButtonClick(Sender: TObject); +begin + DockMaster.ShowControl('Messages',true); +end; + +procedure TMainIDE.ViewOIToolButtonClick(Sender: TObject); +begin + DockMaster.ShowControl('ObjectInspector',true); +end; + +procedure TMainIDE.ViewProjInspToolButtonClick(Sender: TObject); +begin + DockMaster.ShowControl('ProjectInspector',true); +end; + +procedure TMainIDE.ViewSrcEdit2ToolButtonClick(Sender: TObject); +begin + DockMaster.ShowControl('SourceEditor2',true); +end; + +procedure TMainIDE.ViewSrcEditor1ToolButtonClick(Sender: TObject); +begin + DockMaster.ShowControl('SourceEditor1',true); +end; + +procedure TMainIDE.ShowForm(AForm: TCustomForm; FormEnableAutosizing: boolean); +begin + DockMaster.MakeDockable(AForm); + if FormEnableAutosizing then + AForm.EnableAutoSizing; +end; + +procedure TMainIDE.SaveLayout(Filename: string); +var + XMLConfig: TXMLConfigStorage; +begin + try + XMLConfig:=TXMLConfigStorage.Create(Filename,false); + try + DockMaster.SaveLayoutToConfig(XMLConfig); + XMLConfig.WriteToDisk; + finally + XMLConfig.Free; + end; + except + on E: Exception do begin + MessageDlg('Error', + 'Error saving layout to file '+Filename+':'#13+E.Message,mtError, + [mbCancel],0); + end; + end; +end; + +procedure TMainIDE.LoadLayout(Filename: string); +var + XMLConfig: TXMLConfigStorage; +begin + try + XMLConfig:=TXMLConfigStorage.Create(Filename,True); + try + DockMaster.LoadLayoutFromConfig(XMLConfig); + finally + XMLConfig.Free; + end; + except + on E: Exception do begin + MessageDlg('Error', + 'Error loading layout from file '+Filename+':'#13+E.Message,mtError, + [mbCancel],0); + end; + end; +end; + +end. +