Changeset 215 for Docking/CoolDocking


Ignore:
Timestamp:
Mar 22, 2011, 8:20:18 AM (14 years ago)
Author:
george
Message:
  • Fixed: Tabs in TCDManagerTabs PageControl visibility update. If Control is hided it will not be visibled as tab but stay docked for later showing.
Location:
Docking/CoolDocking
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • Docking/CoolDocking/Demo/IDE/IDE.lpi

    r213 r215  
    4747      </Item4>
    4848    </RequiredPackages>
    49     <Units Count="48">
     49    <Units Count="49">
    5050      <Unit0>
    5151        <Filename Value="IDE.lpr"/>
     
    6363        <ResourceBaseClass Value="Form"/>
    6464        <UnitName Value="UMainForm"/>
    65         <EditorIndex Value="2"/>
     65        <EditorIndex Value="1"/>
    6666        <WindowIndex Value="0"/>
    6767        <TopLine Value="90"/>
     
    106106      <Unit5>
    107107        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\include\control.inc"/>
    108         <EditorIndex Value="12"/>
    109108        <WindowIndex Value="0"/>
    110109        <TopLine Value="209"/>
    111110        <CursorPos X="18" Y="230"/>
    112111        <UsageCount Value="144"/>
    113         <Loaded Value="True"/>
    114112      </Unit5>
    115113      <Unit6>
     
    126124      <Unit7>
    127125        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\include\customform.inc"/>
    128         <EditorIndex Value="13"/>
    129126        <WindowIndex Value="0"/>
    130127        <TopLine Value="1350"/>
    131128        <CursorPos X="1" Y="1363"/>
    132129        <UsageCount Value="97"/>
    133         <Loaded Value="True"/>
    134130      </Unit7>
    135131      <Unit8>
     
    213209        <Filename Value="..\..\UCDClient.pas"/>
    214210        <UnitName Value="UCDClient"/>
    215         <EditorIndex Value="3"/>
     211        <EditorIndex Value="2"/>
    216212        <WindowIndex Value="0"/>
    217213        <TopLine Value="81"/>
     
    238234        <Filename Value="..\..\Common\URectangle.pas"/>
    239235        <UnitName Value="URectangle"/>
    240         <EditorIndex Value="4"/>
     236        <EditorIndex Value="3"/>
    241237        <WindowIndex Value="0"/>
    242238        <TopLine Value="22"/>
     
    250246        <EditorIndex Value="6"/>
    251247        <WindowIndex Value="0"/>
    252         <TopLine Value="503"/>
    253         <CursorPos X="35" Y="512"/>
     248        <TopLine Value="1143"/>
     249        <CursorPos X="3" Y="865"/>
    254250        <UsageCount Value="124"/>
    255251        <Loaded Value="True"/>
     
    257253      <Unit20>
    258254        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\include\wincontrol.inc"/>
    259         <EditorIndex Value="15"/>
    260255        <WindowIndex Value="0"/>
    261256        <TopLine Value="7762"/>
    262257        <CursorPos X="1" Y="7775"/>
    263258        <UsageCount Value="111"/>
    264         <Loaded Value="True"/>
    265259      </Unit20>
    266260      <Unit21>
     
    278272        <Filename Value="..\..\UCDCommon.pas"/>
    279273        <UnitName Value="UCDCommon"/>
    280         <WindowIndex Value="0"/>
    281         <TopLine Value="13"/>
    282         <CursorPos X="18" Y="26"/>
     274        <EditorIndex Value="5"/>
     275        <WindowIndex Value="0"/>
     276        <TopLine Value="1"/>
     277        <CursorPos X="32" Y="12"/>
    283278        <UsageCount Value="46"/>
     279        <Loaded Value="True"/>
    284280      </Unit22>
    285281      <Unit23>
     
    294290        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
    295291        <UnitName Value="UCDManagerTabs"/>
    296         <IsVisibleTab Value="True"/>
    297         <EditorIndex Value="10"/>
    298         <WindowIndex Value="0"/>
    299         <TopLine Value="270"/>
    300         <CursorPos X="1" Y="292"/>
     292        <EditorIndex Value="8"/>
     293        <WindowIndex Value="0"/>
     294        <TopLine Value="76"/>
     295        <CursorPos X="3" Y="82"/>
    301296        <UsageCount Value="130"/>
    302297        <Loaded Value="True"/>
     
    305300        <Filename Value="..\..\Managers\UCDManagerRegions.pas"/>
    306301        <UnitName Value="UCDManagerRegions"/>
    307         <EditorIndex Value="9"/>
    308         <WindowIndex Value="0"/>
    309         <TopLine Value="277"/>
    310         <CursorPos X="3" Y="293"/>
     302        <IsVisibleTab Value="True"/>
     303        <EditorIndex Value="7"/>
     304        <WindowIndex Value="0"/>
     305        <TopLine Value="296"/>
     306        <CursorPos X="43" Y="312"/>
    311307        <UsageCount Value="129"/>
    312308        <Loaded Value="True"/>
     
    337333        <Filename Value="..\..\UCDManager.pas"/>
    338334        <UnitName Value="UCDManager"/>
    339         <EditorIndex Value="5"/>
    340         <WindowIndex Value="0"/>
    341         <TopLine Value="467"/>
    342         <CursorPos X="1" Y="472"/>
     335        <EditorIndex Value="4"/>
     336        <WindowIndex Value="0"/>
     337        <TopLine Value="55"/>
     338        <CursorPos X="8" Y="67"/>
    343339        <UsageCount Value="105"/>
    344340        <Loaded Value="True"/>
     
    347343        <Filename Value="..\..\UCDConjoinForm.pas"/>
    348344        <UnitName Value="UCDConjoinForm"/>
    349         <EditorIndex Value="14"/>
    350345        <WindowIndex Value="0"/>
    351346        <TopLine Value="32"/>
    352347        <CursorPos X="31" Y="34"/>
    353348        <UsageCount Value="164"/>
    354         <Loaded Value="True"/>
    355349      </Unit29>
    356350      <Unit30>
     
    425419        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\lclproc.pas"/>
    426420        <UnitName Value="LCLProc"/>
    427         <EditorIndex Value="11"/>
    428421        <WindowIndex Value="0"/>
    429422        <TopLine Value="1531"/>
    430423        <CursorPos X="1" Y="1544"/>
    431424        <UsageCount Value="91"/>
    432         <Loaded Value="True"/>
    433425      </Unit38>
    434426      <Unit39>
    435427        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\include\dragmanager.inc"/>
    436         <EditorIndex Value="16"/>
    437428        <WindowIndex Value="0"/>
    438429        <TopLine Value="553"/>
    439430        <CursorPos X="79" Y="568"/>
    440431        <UsageCount Value="76"/>
    441         <Loaded Value="True"/>
    442432      </Unit39>
    443433      <Unit40>
    444434        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\lclmessageglue.pas"/>
    445435        <UnitName Value="LCLMessageGlue"/>
    446         <EditorIndex Value="19"/>
    447436        <WindowIndex Value="0"/>
    448437        <TopLine Value="101"/>
    449438        <CursorPos X="1" Y="122"/>
    450439        <UsageCount Value="76"/>
    451         <Loaded Value="True"/>
    452440      </Unit40>
    453441      <Unit41>
    454442        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\interfaces\win32\win32proc.pp"/>
    455443        <UnitName Value="win32proc"/>
    456         <EditorIndex Value="20"/>
    457444        <WindowIndex Value="0"/>
    458445        <TopLine Value="756"/>
    459446        <CursorPos X="1" Y="771"/>
    460447        <UsageCount Value="76"/>
    461         <Loaded Value="True"/>
    462448      </Unit41>
    463449      <Unit42>
    464450        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\interfaces\win32\win32wscontrols.pp"/>
    465451        <UnitName Value="Win32WSControls"/>
    466         <EditorIndex Value="21"/>
    467452        <WindowIndex Value="0"/>
    468453        <TopLine Value="474"/>
    469454        <CursorPos X="1" Y="488"/>
    470455        <UsageCount Value="76"/>
    471         <Loaded Value="True"/>
    472456      </Unit42>
    473457      <Unit43>
    474458        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\include\pagecontrol.inc"/>
    475         <EditorIndex Value="1"/>
    476459        <WindowIndex Value="0"/>
    477460        <TopLine Value="112"/>
    478461        <CursorPos X="23" Y="123"/>
    479462        <UsageCount Value="76"/>
    480         <Loaded Value="True"/>
    481463      </Unit43>
    482464      <Unit44>
    483465        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\include\customcontrol.inc"/>
    484         <EditorIndex Value="17"/>
    485466        <WindowIndex Value="0"/>
    486467        <TopLine Value="48"/>
    487468        <CursorPos X="1" Y="61"/>
    488469        <UsageCount Value="76"/>
    489         <Loaded Value="True"/>
    490470      </Unit44>
    491471      <Unit45>
    492472        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\include\scrollingwincontrol.inc"/>
    493         <EditorIndex Value="18"/>
    494473        <WindowIndex Value="0"/>
    495474        <TopLine Value="233"/>
    496475        <CursorPos X="1" Y="256"/>
    497476        <UsageCount Value="76"/>
    498         <Loaded Value="True"/>
    499477      </Unit45>
    500478      <Unit46>
    501479        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\include\dragobject.inc"/>
    502         <EditorIndex Value="8"/>
    503480        <WindowIndex Value="0"/>
    504481        <TopLine Value="60"/>
    505482        <CursorPos X="3" Y="62"/>
    506483        <UsageCount Value="10"/>
    507         <Loaded Value="True"/>
    508484      </Unit46>
    509485      <Unit47>
    510486        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\include\dragimagelist.inc"/>
    511         <EditorIndex Value="7"/>
    512487        <WindowIndex Value="0"/>
    513488        <TopLine Value="103"/>
    514489        <CursorPos X="3" Y="109"/>
    515490        <UsageCount Value="10"/>
    516         <Loaded Value="True"/>
    517491      </Unit47>
     492      <Unit48>
     493        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\include\custompage.inc"/>
     494        <EditorIndex Value="9"/>
     495        <WindowIndex Value="0"/>
     496        <TopLine Value="111"/>
     497        <CursorPos X="71" Y="120"/>
     498        <UsageCount Value="10"/>
     499        <Loaded Value="True"/>
     500      </Unit48>
    518501    </Units>
    519502    <JumpHistory Count="30" HistoryIndex="29">
    520503      <Position1>
    521         <Filename Value="..\..\Managers\UCDManagerRegions.pas"/>
    522         <Caret Line="286" Column="1" TopLine="271"/>
     504        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
     505        <Caret Line="412" Column="1" TopLine="398"/>
    523506      </Position1>
    524507      <Position2>
    525         <Filename Value="..\..\Managers\UCDManagerRegions.pas"/>
    526         <Caret Line="289" Column="1" TopLine="271"/>
     508        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
     509        <Caret Line="414" Column="9" TopLine="398"/>
    527510      </Position2>
    528511      <Position3>
    529         <Filename Value="..\..\Managers\UCDManagerRegions.pas"/>
    530         <Caret Line="290" Column="1" TopLine="277"/>
     512        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
     513        <Caret Line="410" Column="21" TopLine="398"/>
    531514      </Position3>
    532515      <Position4>
    533         <Filename Value="..\..\Managers\UCDManagerRegions.pas"/>
    534         <Caret Line="291" Column="1" TopLine="277"/>
     516        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
     517        <Caret Line="18" Column="13" TopLine="3"/>
    535518      </Position4>
    536519      <Position5>
    537         <Filename Value="UMainForm.pas"/>
    538         <Caret Line="102" Column="27" TopLine="90"/>
     520        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
     521        <Caret Line="9" Column="23" TopLine="5"/>
    539522      </Position5>
    540523      <Position6>
    541         <Filename Value="..\..\UCDClient.pas"/>
    542         <Caret Line="90" Column="1" TopLine="81"/>
     524        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
     525        <Caret Line="18" Column="18" TopLine="5"/>
    543526      </Position6>
    544527      <Position7>
    545         <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\include\wincontrol.inc"/>
    546         <Caret Line="7775" Column="1" TopLine="7762"/>
     528        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
     529        <Caret Line="426" Column="1" TopLine="407"/>
    547530      </Position7>
    548531      <Position8>
    549         <Filename Value="..\..\UCDManager.pas"/>
    550         <Caret Line="126" Column="20" TopLine="113"/>
     532        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
     533        <Caret Line="83" Column="1" TopLine="70"/>
    551534      </Position8>
    552535      <Position9>
    553         <Filename Value="..\..\UCDManager.pas"/>
    554         <Caret Line="114" Column="44" TopLine="101"/>
     536        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
     537        <Caret Line="157" Column="1" TopLine="144"/>
    555538      </Position9>
    556539      <Position10>
    557         <Filename Value="..\..\UCDManager.pas"/>
    558         <Caret Line="115" Column="18" TopLine="101"/>
     540        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
     541        <Caret Line="206" Column="1" TopLine="193"/>
    559542      </Position10>
    560543      <Position11>
    561         <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\include\control.inc"/>
    562         <Caret Line="230" Column="18" TopLine="209"/>
     544        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
     545        <Caret Line="157" Column="14" TopLine="144"/>
    563546      </Position11>
    564547      <Position12>
    565         <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\controls.pp"/>
    566         <Caret Line="153" Column="23" TopLine="142"/>
     548        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
     549        <Caret Line="418" Column="54" TopLine="393"/>
    567550      </Position12>
    568551      <Position13>
    569         <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\controls.pp"/>
    570         <Caret Line="512" Column="35" TopLine="503"/>
     552        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
     553        <Caret Line="410" Column="1" TopLine="399"/>
    571554      </Position13>
    572555      <Position14>
    573556        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
    574         <Caret Line="293" Column="1" TopLine="280"/>
     557        <Caret Line="411" Column="1" TopLine="399"/>
    575558      </Position14>
    576559      <Position15>
    577560        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
    578         <Caret Line="294" Column="1" TopLine="280"/>
     561        <Caret Line="412" Column="1" TopLine="399"/>
    579562      </Position15>
    580563      <Position16>
    581564        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
    582         <Caret Line="293" Column="1" TopLine="280"/>
     565        <Caret Line="413" Column="1" TopLine="399"/>
    583566      </Position16>
    584567      <Position17>
    585568        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
    586         <Caret Line="294" Column="1" TopLine="280"/>
     569        <Caret Line="414" Column="1" TopLine="399"/>
    587570      </Position17>
    588571      <Position18>
    589572        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
    590         <Caret Line="291" Column="24" TopLine="269"/>
     573        <Caret Line="415" Column="1" TopLine="399"/>
    591574      </Position18>
    592575      <Position19>
    593576        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
    594         <Caret Line="293" Column="1" TopLine="272"/>
     577        <Caret Line="416" Column="1" TopLine="399"/>
    595578      </Position19>
    596579      <Position20>
    597580        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
    598         <Caret Line="294" Column="1" TopLine="273"/>
     581        <Caret Line="417" Column="1" TopLine="399"/>
    599582      </Position20>
    600583      <Position21>
    601584        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
    602         <Caret Line="282" Column="1" TopLine="273"/>
     585        <Caret Line="421" Column="1" TopLine="400"/>
    603586      </Position21>
    604587      <Position22>
    605588        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
    606         <Caret Line="283" Column="1" TopLine="273"/>
     589        <Caret Line="87" Column="1" TopLine="74"/>
    607590      </Position22>
    608591      <Position23>
    609592        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
    610         <Caret Line="284" Column="1" TopLine="273"/>
     593        <Caret Line="412" Column="1" TopLine="399"/>
    611594      </Position23>
    612595      <Position24>
    613596        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
    614         <Caret Line="285" Column="1" TopLine="273"/>
     597        <Caret Line="87" Column="93" TopLine="74"/>
    615598      </Position24>
    616599      <Position25>
    617600        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
    618         <Caret Line="293" Column="1" TopLine="273"/>
     601        <Caret Line="86" Column="1" TopLine="74"/>
    619602      </Position25>
    620603      <Position26>
    621604        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
    622         <Caret Line="294" Column="1" TopLine="273"/>
     605        <Caret Line="412" Column="1" TopLine="399"/>
    623606      </Position26>
    624607      <Position27>
    625608        <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
    626         <Caret Line="285" Column="38" TopLine="273"/>
     609        <Caret Line="16" Column="37" TopLine="7"/>
    627610      </Position27>
    628611      <Position28>
    629         <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
    630         <Caret Line="288" Column="1" TopLine="273"/>
     612        <Filename Value="..\..\UCDManager.pas"/>
     613        <Caret Line="78" Column="71" TopLine="53"/>
    631614      </Position28>
    632615      <Position29>
    633         <Filename Value="..\..\Managers\UCDManagerTabs.pas"/>
    634         <Caret Line="291" Column="1" TopLine="273"/>
     616        <Filename Value="..\..\UCDManager.pas"/>
     617        <Caret Line="264" Column="38" TopLine="262"/>
    635618      </Position29>
    636619      <Position30>
    637         <Filename Value="..\..\UCDManager.pas"/>
    638         <Caret Line="472" Column="1" TopLine="467"/>
     620        <Filename Value="..\..\Managers\UCDManagerRegions.pas"/>
     621        <Caret Line="66" Column="17" TopLine="59"/>
    639622      </Position30>
    640623    </JumpHistory>
  • Docking/CoolDocking/Managers/UCDManagerRegions.pas

    r213 r215  
    6060begin
    6161  inherited VisibleChange(Sender);
    62   PanelHeader.Visible := Control.Visible;
    63   Manager.UpdateClientSize;
     62  with TCDManagerRegions(Manager) do begin
     63    //if TControl(Sender).Visible then begin
     64    //  TCDManagerRegionsItem(DockItems[DockItems.IndexOf(FindControlInPanels(TControl(Sender)))]).HideType := dhtPermanent;
     65    //end;
     66    UpdateClientSize;
     67  end;
    6468end;
    6569
     
    306310      PanelHeader.Header.Visible := TCDManager(TWinControl(Control).DockManager).HeaderVisible;
    307311    PanelHeader.Header.Title.Caption := TForm(Control).Caption;
     312    PanelHeader.Visible := Control.Visible;
    308313    Paint(Self);
    309314    if I < (DockItems.Count - 1) then PanelHeader.Align := BaseAlign
  • Docking/CoolDocking/Managers/UCDManagerTabs.pas

    r213 r215  
    1818    constructor Create; override;
    1919    destructor Destroy; override;
     20    procedure VisibleChange(Sender: TObject); override;
    2021  end;
    2122
     
    7374end;
    7475
     76procedure TCDManagerTabsItem.VisibleChange(Sender: TObject);
     77var
     78  ControlVisible: Boolean;
     79  Temp: TControl;
     80  Temp2: TControl;
     81begin
     82  with TCDManagerTabs(Manager) do begin
     83    if TControl(Sender).Visible then begin
     84      Switch(DockItems.IndexOf(FindControlInPanels(TControl(Sender))));
     85      TCDManagerTabsItem(DockItems[DockItems.IndexOf(FindControlInPanels(TControl(Sender)))]).HideType := dhtPermanent;
     86    end;
     87    UpdateClientSize;
     88  end;
     89
     90  // Show current dock clients in parent dock sites
     91  if TControl(Sender).Visible then
     92    TControl(Sender).HostDockSite.Visible := True;
     93
     94  {Temp := TControl(Sender);
     95  if Assigned(Control) then
     96  begin
     97    ControlVisible := TControl(Sender).Visible;
     98    (*if Assigned(ClientAreaPanel) then
     99      ClientAreaPanel.Visible := ControlVisible;
     100    if Assigned(Splitter) then
     101      Splitter.Visible := ControlVisible;
     102      *)
     103//    if Assigned(TCDManager(OwnerDockManager).DockStyleHandler) then
     104    if Assigned(Manager) then
     105    with TCDManagerTabs(Manager) do
     106    begin
     107      //UpdateClientSize;
     108      if ControlVisible then
     109        Switch(FDockItems.IndexOf(FindControlInPanels(TControl(Sender))));
     110      if not (Control is TWinControl) then raise Exception.Create('Not TWinControl');
     111      if not Assigned(Control) then raise Exception.Create('Control not assigned');
     112      ChangeVisible(TWinControl(Control), ControlVisible);
     113      // Show parent control
     114      Temp := TControl(Sender).HostDockSite;
     115
     116      if ControlVisible then
     117        TControl(Sender).HostDockSite.Visible := ControlVisible;
     118    end;
     119    if csDestroying in Control.ComponentState then Control := nil;
     120  end;
     121  }
     122end;
     123
    75124{ TCDManagerTabs }
    76125
     
    104153
    105154procedure TCDManagerTabs.TabControlChange(Sender: TObject);
    106 var
    107   I: Integer;
    108 begin
    109   //UpdateClientSize;
    110 {  // Hide all clients
    111   for I := 0 to DockItems.Count - 1 do
    112     if TCDManagerItem(DockItems[I]).Control.Visible
    113     //and (PageControl.TabIndex <> I)
    114     then
    115     begin
    116       TCDManagerItem(DockItems[I]).Control.Tag := Integer(dhtTemporal);
    117       TCDManagerItem(DockItems[I]).Control.Hide;
    118       //TCDClientPanel(DockItems[I]).ClientAreaPanel.Hide;
    119       //TCDClientPanel(DockItems[I]).ClientAreaPanel.Parent := PageControl.Pages[I];
    120       //TCDClientPanel(DockPanels[I]).ClientAreaPanel.Parent := DockSite;
    121       TCDManagerItem(DockItems[I]).Control.Align := alClient;
    122       //TCDClientPanel(DockPanels[I]).Control.Parent :=
    123       //  TCDClientPanel(DockPanels[I]).ClientAreaPanel;
    124       //ShowMessage(TCDClientPanel(DockPanels[I]).Control.ClassName);
    125       //Application.ProcessMessages;
    126 
    127       // Workaround for "Cannot focus" error
    128       TForm(TCDManagerItem(DockItems[I]).Control).ActiveControl := nil;
    129     end;
    130 
    131   // Show selected
    132   if (PageControl.TabIndex <> -1) and (DockItems.Count > PageControl.TabIndex)
    133 //  and not TCDClientPanel(DockPanels[PageControl.TabIndex]).Control.Visible
    134   then begin
    135     with TCDManagerItem(DockItems[PageControl.TabIndex]) do begin
    136       Control.Show;
    137       (*AutoHide.Enable := True;
    138       if AutoHide.Enable then begin
    139         //Parent := nil;
    140         Visible := True;
    141         if AutoHide.ControlVisible then begin
    142           AutoHide.Hide;
    143         end;
    144         AutoHide.Control := Control;
    145         AutoHide.Show;
    146       end else begin
    147       *)
    148         //Parent := DockSite;
    149         //Show;
    150         Visible := True;
    151         UpdateClientSize;
    152 //      end;
    153     end;
    154   //TCDClientPanel(FDockPanels[TabControl.TabIndex]).Visible := True;
    155   end;
    156   MouseDownSkip := True;        }
     155begin
     156  UpdateClientSize;
     157  MouseDownSkip := True;
    157158end;
    158159
     
    208209    Images := TabImageList;
    209210  end;
    210   //TabsPos := hpTop;
    211   //MoveDuration := 1000; // ms
    212211
    213212  //PageControl.Visible := True;
     
    342341  for I := 0 to DockItems.Count - 1 do
    343342  with TCDManagerTabsItem(DockItems[I]) do begin
    344     Control.Visible := False;
    345     Control.Parent := nil;
     343    //Control.Visible := False;
     344    //Control.Parent := nil;
    346345  end;
    347346
    348347  while PageControl.PageList.Count > DockItems.Count do begin
    349     //PageControl.Pages[PageControl.PageCount - 1].Parent := nil;
     348    TCDManagerTabsItem(DockItems[I]).Control.Parent := nil;
     349    PageControl.Pages[PageControl.PageCount - 1].Parent := nil;
    350350    PageControl.Pages[PageControl.PageCount - 1].Free;
    351351    TabImageList.Delete(TabImageList.Count - 1);
     
    364364    Control.Parent := PageControl.Pages[I];
    365365    Control.Align := alClient;
    366     Control.Visible := True;
    367     PageControl.Pages[I].TabVisible := Control.Visible;
     366    if PageControl.PageIndex = I then begin
     367      if (not Control.Visible) and (HideType = dhtTemporal) then
     368        Control.Visible := True;
     369    end else begin
     370      if Control.Visible then begin
     371        HideType := dhtTemporal;
     372        Control.Visible := False;
     373      end;
     374    end;
     375    PageControl.Pages[I].TabVisible := Control.Visible or (HideType = dhtTemporal);
    368376    //TCDClientPanel(DockPanels[I]).ClientAreaPanel.Width := DockSite.Width;
    369377    //TCDClientPanel(DockPanels[I]).ClientAreaPanel.Height := DockSite.Height - PageControl.Height;
     
    409417        I := DockItems.IndexOf(FindControlInPanels(Control));
    410418        if Control.Tag = Integer(dhtPermanent) then
    411         if I <> -1 then
     419        if (I <> -1) and (I < PageControl.PageCount) then
    412420  //        Control.Hide;
    413421          PageControl.Page[I].TabVisible := False;
  • Docking/CoolDocking/UCDManager.pas

    r209 r215  
    6464  TCDManagerItem = class
    6565  private
     66    function GetHideType: TCDHideType;
    6667    procedure ResizeExecute(Sender: TObject);
     68    procedure SetHideType(const AValue: TCDHideType);
    6769  public
    6870    Control: TControl;
     
    7476    constructor Create; virtual;
    7577    destructor Destroy; override;
     78    property HideType: TCDHideType read GetHideType write SetHideType;
    7679  end;
    7780
     
    240243end;
    241244
     245function TCDManagerItem.GetHideType: TCDHideType;
     246begin
     247  Result := TCDHideType(Control.Tag);
     248end;
     249
    242250procedure TCDManagerItem.ResizeExecute(Sender: TObject);
    243251begin
     
    252260end;
    253261
     262procedure TCDManagerItem.SetHideType(const AValue: TCDHideType);
     263begin
     264  Control.Tag := Integer(AValue);
     265end;
     266
    254267procedure TCDManagerItem.DockPanelMouseDown(Sender: TObject;
    255268  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
     
    277290
    278291procedure TCDManagerItem.VisibleChange(Sender: TObject);
    279 var
    280   ControlVisible: Boolean;
    281   Temp: TControl;
    282   Temp2: TControl;
    283 begin
    284 
    285 {  Temp := TControl(Sender);
    286   if Assigned(Control) then
    287   begin
    288     ControlVisible := TControl(Sender).Visible;
    289     (*if Assigned(ClientAreaPanel) then
    290       ClientAreaPanel.Visible := ControlVisible;
    291     if Assigned(Splitter) then
    292       Splitter.Visible := ControlVisible;
    293       *)
    294 //    if Assigned(TCDManager(OwnerDockManager).DockStyleHandler) then
    295     if Assigned(Manager) then
    296     with TCDManager(Manager) do
    297     begin
    298       //UpdateClientSize;
    299       if ControlVisible then
    300         Switch(DockItems.IndexOf(FindControlInPanels(TControl(Sender))));
    301       if not (Control is TWinControl) then raise Exception.Create('Not TWinControl');
    302       if not Assigned(Control) then raise Exception.Create('Control not assigned');
    303       ChangeVisible(TWinControl(Control), ControlVisible);
    304       // Show parent control
    305       Temp := TControl(Sender).HostDockSite;
    306 
    307       if ControlVisible then
    308         TControl(Sender).HostDockSite.Visible := ControlVisible;
    309     end;
    310     if csDestroying in Control.ComponentState then Control := nil;
    311   end;}
     292begin
    312293end;
    313294
Note: See TracChangeset for help on using the changeset viewer.