Changeset 45 for DockManager/Lazarus


Ignore:
Timestamp:
Sep 17, 2010, 7:27:04 AM (14 years ago)
Author:
george
Message:
  • Přidáno: Pokusná podpora pro hiearchické ukotvení do podpanelů.
Location:
DockManager/Lazarus
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • DockManager/Lazarus/Demo/Demo.lpi

    r43 r45  
    3232      </Item1>
    3333    </RequiredPackages>
    34     <Units Count="24">
     34    <Units Count="25">
    3535      <Unit0>
    3636        <Filename Value="Demo.lpr"/>
    3737        <IsPartOfProject Value="True"/>
    3838        <UnitName Value="Demo"/>
    39         <EditorIndex Value="4"/>
    4039        <WindowIndex Value="0"/>
    4140        <TopLine Value="1"/>
    4241        <CursorPos X="1" Y="19"/>
    4342        <UsageCount Value="25"/>
    44         <Loaded Value="True"/>
    4543        <DefaultSyntaxHighlighter Value="Delphi"/>
    4644      </Unit0>
     
    5351        <EditorIndex Value="0"/>
    5452        <WindowIndex Value="0"/>
    55         <TopLine Value="12"/>
    56         <CursorPos X="1" Y="25"/>
     53        <TopLine Value="52"/>
     54        <CursorPos X="48" Y="57"/>
    5755        <UsageCount Value="25"/>
    5856        <Loaded Value="True"/>
     
    6361        <Filename Value="E:\Programy\Lazarus\lcl\controls.pp"/>
    6462        <UnitName Value="Controls"/>
    65         <EditorIndex Value="12"/>
    66         <WindowIndex Value="0"/>
    67         <TopLine Value="1397"/>
    68         <CursorPos X="14" Y="1410"/>
     63        <EditorIndex Value="2"/>
     64        <WindowIndex Value="0"/>
     65        <TopLine Value="1242"/>
     66        <CursorPos X="14" Y="1255"/>
    6967        <UsageCount Value="12"/>
    7068        <Loaded Value="True"/>
     
    8179      <Unit4>
    8280        <Filename Value="E:\Programy\Lazarus\lcl\include\control.inc"/>
    83         <EditorIndex Value="18"/>
    84         <WindowIndex Value="0"/>
    85         <TopLine Value="4685"/>
    86         <CursorPos X="32" Y="4689"/>
    87         <UsageCount Value="12"/>
    88         <Loaded Value="True"/>
     81        <WindowIndex Value="0"/>
     82        <TopLine Value="3906"/>
     83        <CursorPos X="1" Y="3927"/>
     84        <UsageCount Value="12"/>
    8985      </Unit4>
    9086      <Unit5>
    9187        <Filename Value="E:\Programy\Lazarus\lcl\include\wincontrol.inc"/>
    92         <EditorIndex Value="16"/>
    93         <WindowIndex Value="0"/>
    94         <TopLine Value="3785"/>
    95         <CursorPos X="1" Y="3798"/>
    96         <UsageCount Value="12"/>
    97         <Loaded Value="True"/>
     88        <WindowIndex Value="0"/>
     89        <TopLine Value="7260"/>
     90        <CursorPos X="1" Y="7231"/>
     91        <UsageCount Value="12"/>
    9892      </Unit5>
    9993      <Unit6>
    10094        <Filename Value="E:\Programy\Lazarus\lcl\lclclasses.pp"/>
    10195        <UnitName Value="LCLClasses"/>
    102         <EditorIndex Value="14"/>
    10396        <WindowIndex Value="0"/>
    10497        <TopLine Value="28"/>
    10598        <CursorPos X="54" Y="32"/>
    10699        <UsageCount Value="12"/>
    107         <Loaded Value="True"/>
    108100      </Unit6>
    109101      <Unit7>
    110102        <Filename Value="E:\Programy\Lazarus\fpc\2.4.0\source\rtl\objpas\classes\classesh.inc"/>
    111         <EditorIndex Value="10"/>
    112         <WindowIndex Value="0"/>
    113         <TopLine Value="107"/>
     103        <WindowIndex Value="0"/>
     104        <TopLine Value="113"/>
    114105        <CursorPos X="3" Y="120"/>
    115106        <UsageCount Value="12"/>
    116         <Loaded Value="True"/>
    117107      </Unit7>
    118108      <Unit8>
    119109        <Filename Value="E:\Programy\Lazarus\fpc\2.4.0\source\rtl\inc\objpash.inc"/>
    120         <EditorIndex Value="15"/>
    121110        <WindowIndex Value="0"/>
    122111        <TopLine Value="206"/>
    123112        <CursorPos X="8" Y="219"/>
    124113        <UsageCount Value="12"/>
    125         <Loaded Value="True"/>
    126114      </Unit8>
    127115      <Unit9>
     
    158146        <Filename Value="E:\Programy\Lazarus\fpc\2.4.0\source\rtl\win\sysutils.pp"/>
    159147        <UnitName Value="sysutils"/>
    160         <EditorIndex Value="11"/>
    161148        <WindowIndex Value="0"/>
    162149        <TopLine Value="280"/>
    163150        <CursorPos X="3" Y="282"/>
    164151        <UsageCount Value="12"/>
    165         <Loaded Value="True"/>
    166152      </Unit13>
    167153      <Unit14>
    168154        <Filename Value="E:\Programy\Lazarus\lcl\include\docktree.inc"/>
    169         <EditorIndex Value="13"/>
    170         <WindowIndex Value="0"/>
    171         <TopLine Value="174"/>
     155        <WindowIndex Value="0"/>
     156        <TopLine Value="200"/>
    172157        <CursorPos X="3" Y="218"/>
    173158        <UsageCount Value="12"/>
    174         <Loaded Value="True"/>
    175159      </Unit14>
    176160      <Unit15>
     
    181165        <ResourceBaseClass Value="Form"/>
    182166        <UnitName Value="UDockForm"/>
    183         <EditorIndex Value="9"/>
     167        <EditorIndex Value="4"/>
    184168        <WindowIndex Value="0"/>
    185169        <TopLine Value="1"/>
     
    193177        <Filename Value="E:\Programy\Lazarus\lcl\graphics.pp"/>
    194178        <UnitName Value="Graphics"/>
    195         <EditorIndex Value="8"/>
    196179        <WindowIndex Value="0"/>
    197180        <TopLine Value="675"/>
    198181        <CursorPos X="24" Y="688"/>
    199182        <UsageCount Value="12"/>
    200         <Loaded Value="True"/>
    201183      </Unit16>
    202184      <Unit17>
    203185        <Filename Value="E:\Programy\Lazarus\lcl\stdctrls.pp"/>
    204186        <UnitName Value="StdCtrls"/>
    205         <EditorIndex Value="2"/>
    206187        <WindowIndex Value="0"/>
    207188        <TopLine Value="1092"/>
    208189        <CursorPos X="9" Y="1098"/>
    209190        <UsageCount Value="11"/>
    210         <Loaded Value="True"/>
    211191      </Unit17>
    212192      <Unit18>
    213193        <Filename Value="E:\Projekty jine\Lazarus\examples\anchordocking\anchordocking.pas"/>
    214194        <UnitName Value="AnchorDocking"/>
    215         <EditorIndex Value="7"/>
     195        <EditorIndex Value="3"/>
    216196        <WindowIndex Value="0"/>
    217197        <TopLine Value="4754"/>
    218         <CursorPos X="14" Y="4763"/>
     198        <CursorPos X="5" Y="4763"/>
    219199        <UsageCount Value="11"/>
    220200        <Loaded Value="True"/>
     
    224204        <Filename Value="E:\Programy\Lazarus\lcl\buttons.pp"/>
    225205        <UnitName Value="Buttons"/>
    226         <EditorIndex Value="1"/>
    227206        <WindowIndex Value="0"/>
    228207        <TopLine Value="362"/>
    229208        <CursorPos X="21" Y="369"/>
    230209        <UsageCount Value="11"/>
    231         <Loaded Value="True"/>
    232210      </Unit19>
    233211      <Unit20>
     
    236214        <UnitName Value="UCustomDockManager"/>
    237215        <IsVisibleTab Value="True"/>
    238         <EditorIndex Value="3"/>
    239         <WindowIndex Value="0"/>
    240         <TopLine Value="156"/>
    241         <CursorPos X="3" Y="174"/>
     216        <EditorIndex Value="1"/>
     217        <WindowIndex Value="0"/>
     218        <TopLine Value="202"/>
     219        <CursorPos X="1" Y="217"/>
    242220        <UsageCount Value="20"/>
    243221        <Loaded Value="True"/>
     
    247225        <Filename Value="E:\Programy\Lazarus\lcl\extctrls.pp"/>
    248226        <UnitName Value="ExtCtrls"/>
    249         <EditorIndex Value="6"/>
    250227        <WindowIndex Value="0"/>
    251228        <TopLine Value="1183"/>
    252229        <CursorPos X="9" Y="1183"/>
    253230        <UsageCount Value="10"/>
    254         <Loaded Value="True"/>
    255231      </Unit21>
    256232      <Unit22>
    257233        <Filename Value="E:\Programy\Lazarus\lcl\interfaces\win32\win32wsbuttons.pp"/>
    258234        <UnitName Value="Win32WSButtons"/>
    259         <EditorIndex Value="5"/>
    260235        <WindowIndex Value="0"/>
    261236        <TopLine Value="479"/>
    262237        <CursorPos X="30" Y="488"/>
    263238        <UsageCount Value="10"/>
    264         <Loaded Value="True"/>
    265239      </Unit22>
    266240      <Unit23>
    267241        <Filename Value="E:\Programy\Lazarus\lcl\include\dragmanager.inc"/>
    268         <EditorIndex Value="17"/>
    269         <WindowIndex Value="0"/>
    270         <TopLine Value="455"/>
    271         <CursorPos X="1" Y="468"/>
    272         <UsageCount Value="10"/>
    273         <Loaded Value="True"/>
     242        <WindowIndex Value="0"/>
     243        <TopLine Value="665"/>
     244        <CursorPos X="23" Y="681"/>
     245        <UsageCount Value="10"/>
    274246      </Unit23>
     247      <Unit24>
     248        <Filename Value="E:\Programy\Lazarus\lcl\include\customform.inc"/>
     249        <WindowIndex Value="0"/>
     250        <TopLine Value="937"/>
     251        <CursorPos X="1" Y="950"/>
     252        <UsageCount Value="10"/>
     253      </Unit24>
    275254    </Units>
    276     <JumpHistory Count="30" HistoryIndex="29">
     255    <JumpHistory Count="14" HistoryIndex="13">
    277256      <Position1>
    278257        <Filename Value="..\UCustomDockManager.pas"/>
    279         <Caret Line="239" Column="1" TopLine="226"/>
     258        <Caret Line="129" Column="1" TopLine="116"/>
    280259      </Position1>
    281260      <Position2>
    282261        <Filename Value="..\UCustomDockManager.pas"/>
    283         <Caret Line="240" Column="1" TopLine="226"/>
     262        <Caret Line="226" Column="1" TopLine="213"/>
    284263      </Position2>
    285264      <Position3>
    286265        <Filename Value="..\UCustomDockManager.pas"/>
    287         <Caret Line="239" Column="1" TopLine="226"/>
     266        <Caret Line="129" Column="1" TopLine="116"/>
    288267      </Position3>
    289268      <Position4>
    290         <Filename Value="..\UCustomDockManager.pas"/>
    291         <Caret Line="240" Column="1" TopLine="226"/>
     269        <Filename Value="UMainForm.pas"/>
     270        <Caret Line="56" Column="1" TopLine="42"/>
    292271      </Position4>
    293272      <Position5>
    294273        <Filename Value="..\UCustomDockManager.pas"/>
    295         <Caret Line="239" Column="1" TopLine="226"/>
     274        <Caret Line="199" Column="1" TopLine="186"/>
    296275      </Position5>
    297276      <Position6>
    298277        <Filename Value="..\UCustomDockManager.pas"/>
    299         <Caret Line="240" Column="1" TopLine="226"/>
     278        <Caret Line="217" Column="20" TopLine="205"/>
    300279      </Position6>
    301280      <Position7>
    302281        <Filename Value="..\UCustomDockManager.pas"/>
    303         <Caret Line="239" Column="1" TopLine="226"/>
     282        <Caret Line="220" Column="1" TopLine="205"/>
    304283      </Position7>
    305284      <Position8>
    306285        <Filename Value="..\UCustomDockManager.pas"/>
    307         <Caret Line="240" Column="1" TopLine="226"/>
     286        <Caret Line="218" Column="1" TopLine="205"/>
    308287      </Position8>
    309288      <Position9>
    310289        <Filename Value="..\UCustomDockManager.pas"/>
    311         <Caret Line="239" Column="1" TopLine="226"/>
     290        <Caret Line="287" Column="1" TopLine="274"/>
    312291      </Position9>
    313292      <Position10>
    314293        <Filename Value="..\UCustomDockManager.pas"/>
    315         <Caret Line="240" Column="1" TopLine="226"/>
     294        <Caret Line="288" Column="1" TopLine="274"/>
    316295      </Position10>
    317296      <Position11>
    318297        <Filename Value="..\UCustomDockManager.pas"/>
    319         <Caret Line="239" Column="1" TopLine="226"/>
     298        <Caret Line="290" Column="1" TopLine="274"/>
    320299      </Position11>
    321300      <Position12>
    322301        <Filename Value="..\UCustomDockManager.pas"/>
    323         <Caret Line="240" Column="1" TopLine="226"/>
     302        <Caret Line="291" Column="1" TopLine="274"/>
    324303      </Position12>
    325304      <Position13>
    326305        <Filename Value="..\UCustomDockManager.pas"/>
    327         <Caret Line="239" Column="1" TopLine="226"/>
     306        <Caret Line="294" Column="1" TopLine="274"/>
    328307      </Position13>
    329308      <Position14>
    330309        <Filename Value="..\UCustomDockManager.pas"/>
    331         <Caret Line="240" Column="1" TopLine="226"/>
     310        <Caret Line="218" Column="1" TopLine="202"/>
    332311      </Position14>
    333       <Position15>
    334         <Filename Value="..\UCustomDockManager.pas"/>
    335         <Caret Line="239" Column="1" TopLine="226"/>
    336       </Position15>
    337       <Position16>
    338         <Filename Value="..\UCustomDockManager.pas"/>
    339         <Caret Line="240" Column="1" TopLine="226"/>
    340       </Position16>
    341       <Position17>
    342         <Filename Value="..\UCustomDockManager.pas"/>
    343         <Caret Line="239" Column="1" TopLine="226"/>
    344       </Position17>
    345       <Position18>
    346         <Filename Value="..\UCustomDockManager.pas"/>
    347         <Caret Line="244" Column="26" TopLine="226"/>
    348       </Position18>
    349       <Position19>
    350         <Filename Value="..\UCustomDockManager.pas"/>
    351         <Caret Line="239" Column="43" TopLine="226"/>
    352       </Position19>
    353       <Position20>
    354         <Filename Value="..\UCustomDockManager.pas"/>
    355         <Caret Line="240" Column="1" TopLine="226"/>
    356       </Position20>
    357       <Position21>
    358         <Filename Value="..\UCustomDockManager.pas"/>
    359         <Caret Line="241" Column="1" TopLine="226"/>
    360       </Position21>
    361       <Position22>
    362         <Filename Value="..\UCustomDockManager.pas"/>
    363         <Caret Line="240" Column="1" TopLine="226"/>
    364       </Position22>
    365       <Position23>
    366         <Filename Value="..\UCustomDockManager.pas"/>
    367         <Caret Line="241" Column="1" TopLine="226"/>
    368       </Position23>
    369       <Position24>
    370         <Filename Value="..\UCustomDockManager.pas"/>
    371         <Caret Line="240" Column="1" TopLine="226"/>
    372       </Position24>
    373       <Position25>
    374         <Filename Value="..\UCustomDockManager.pas"/>
    375         <Caret Line="241" Column="7" TopLine="226"/>
    376       </Position25>
    377       <Position26>
    378         <Filename Value="..\UCustomDockManager.pas"/>
    379         <Caret Line="240" Column="1" TopLine="226"/>
    380       </Position26>
    381       <Position27>
    382         <Filename Value="..\UCustomDockManager.pas"/>
    383         <Caret Line="242" Column="1" TopLine="226"/>
    384       </Position27>
    385       <Position28>
    386         <Filename Value="..\UCustomDockManager.pas"/>
    387         <Caret Line="243" Column="1" TopLine="226"/>
    388       </Position28>
    389       <Position29>
    390         <Filename Value="..\UCustomDockManager.pas"/>
    391         <Caret Line="244" Column="1" TopLine="226"/>
    392       </Position29>
    393       <Position30>
    394         <Filename Value="..\UCustomDockManager.pas"/>
    395         <Caret Line="246" Column="1" TopLine="226"/>
    396       </Position30>
    397312    </JumpHistory>
    398313  </ProjectOptions>
  • DockManager/Lazarus/UCustomDockManager.pas

    r44 r45  
    4949    FDockPanels: TObjectList; // of TDockClientPanel
    5050    function FindControlInPanels(Control: TControl): TDockClientPanel;
     51    procedure InsertControlPanel(Control: TControl; InsertAt: TAlign;
     52      DropCtl: TControl);
    5153  public
    5254    constructor Create(ADockSite: TWinControl); override;
     
    127129end;
    128130
    129 procedure TCustomDockManager.InsertControl(Control: TControl; InsertAt: TAlign;
     131procedure TCustomDockManager.InsertControlPanel(Control: TControl; InsertAt: TAlign;
    130132  DropCtl: TControl);
    131133var
     
    133135  NewPanel: TDockClientPanel;
    134136  I: Integer;
    135   NewConjoinDockForm: TConjoinDockForm;
    136 begin
    137   if (FDockSite is TForm) and (not Assigned(FDockSite.Parent)) then begin
    138     NewConjoinDockForm := TConjoinDockForm.Create(nil);
    139     NewConjoinDockForm.Visible := True;
    140     Control.ManualDock(NewConjoinDockForm.Panel);
    141     FDockSite.ManualDock(NewConjoinDockForm.Panel);
    142   end else
    143   if FDockSite is TPanel then begin
     137begin
    144138    if FDockSite.DockClientCount = 2 then begin
    145139      if (InsertAt = alTop) or (InsertAt = alBottom) then
     
    149143        FDockDirection := ddHorizontal
    150144      else FDockDirection := ddHorizontal;
    151     end;
     145    end;// else FDockSite.DockClientCount > 2 then begin
     146
     147    //end;
    152148    if FDockSite.DockClientCount > 1 then begin
    153149      NewSplitter := TSplitter.Create(nil);
     
    190186        FDockSite.DockClientCount;
    191187    end;
     188end;
     189
     190procedure TCustomDockManager.InsertControl(Control: TControl; InsertAt: TAlign;
     191  DropCtl: TControl);
     192var
     193  NewSplitter: TSplitter;
     194  NewDockPanel: TDockClientPanel;
     195  NewPanel: TPanel;
     196  I: Integer;
     197  NewConjoinDockForm: TConjoinDockForm;
     198begin
     199  if (FDockSite is TForm) then begin
     200    if (not Assigned(FDockSite.Parent)) then begin
     201      // Create conjointed form
     202      NewConjoinDockForm := TConjoinDockForm.Create(nil);
     203      NewConjoinDockForm.Visible := True;
     204      Control.ManualDock(NewConjoinDockForm.Panel);
     205      FDockSite.ManualDock(NewConjoinDockForm.Panel);
     206    end else begin
     207      NewPanel := TPanel.Create(nil);
     208      NewPanel.Parent := FDockSite.Parent;
     209      NewPanel.Visible := True;
     210      NewPanel.Left := FDockSite.Left;
     211      NewPanel.Top := FDockSite.Top;
     212      NewPanel.Width := FDockSite.Width;
     213      NewPanel.Height := FDockSite.Height;
     214      NewPanel.UseDockManager := True;
     215      NewPanel.DockSite := True;
     216      NewPanel.Color := clGreen;
     217      NewPanel.ManualDock(FDockSite.HostDockSite);
     218//      FDockSite.Parent := nil;
     219      Control.ManualDock(NewPanel);
     220      FDockSite.ManualDock(NewPanel);
     221    end;
     222  end else
     223  if FDockSite is TPanel then begin
     224    InsertControlPanel(Control, InsertAt, DropCtl);
    192225  end;
    193226
Note: See TracChangeset for help on using the changeset viewer.