Changeset 183 for Docking


Ignore:
Timestamp:
Mar 10, 2011, 7:55:48 AM (13 years ago)
Author:
george
Message:
  • Fixed: Insertion in regions on left and top side.
  • Added: If inserted control side is defferent than already placed controls then create conjoined subform.
Location:
Docking/CoolDocking
Files:
8 edited

Legend:

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

    r182 r183  
    4747      </Item4>
    4848    </RequiredPackages>
    49     <Units Count="53">
     49    <Units Count="54">
    5050      <Unit0>
    5151        <Filename Value="IDE.lpr"/>
    5252        <IsPartOfProject Value="True"/>
    5353        <UnitName Value="IDE"/>
    54         <UsageCount Value="81"/>
     54        <UsageCount Value="116"/>
    5555      </Unit0>
    5656      <Unit1>
     
    6060        <ResourceBaseClass Value="Form"/>
    6161        <UnitName Value="UMainForm"/>
    62         <EditorIndex Value="8"/>
     62        <EditorIndex Value="4"/>
    6363        <WindowIndex Value="0"/>
    6464        <TopLine Value="138"/>
    6565        <CursorPos X="18" Y="150"/>
    66         <UsageCount Value="81"/>
     66        <UsageCount Value="116"/>
    6767        <Loaded Value="True"/>
    6868        <LoadedDesigner Value="True"/>
     
    7777        <TopLine Value="1"/>
    7878        <CursorPos X="12" Y="16"/>
    79         <UsageCount Value="81"/>
     79        <UsageCount Value="116"/>
    8080      </Unit2>
    8181      <Unit3>
     
    8888        <TopLine Value="1"/>
    8989        <CursorPos X="3" Y="16"/>
    90         <UsageCount Value="81"/>
     90        <UsageCount Value="116"/>
    9191      </Unit3>
    9292      <Unit4>
     
    9999        <TopLine Value="1"/>
    100100        <CursorPos X="15" Y="10"/>
    101         <UsageCount Value="81"/>
     101        <UsageCount Value="116"/>
    102102      </Unit4>
    103103      <Unit5>
    104104        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\include\control.inc"/>
    105         <EditorIndex Value="3"/>
    106105        <WindowIndex Value="0"/>
    107106        <TopLine Value="1672"/>
    108107        <CursorPos X="1" Y="1685"/>
    109         <UsageCount Value="38"/>
    110         <Loaded Value="True"/>
     108        <UsageCount Value="54"/>
    111109      </Unit5>
    112110      <Unit6>
     
    119117        <TopLine Value="1"/>
    120118        <CursorPos X="20" Y="16"/>
    121         <UsageCount Value="81"/>
     119        <UsageCount Value="116"/>
    122120      </Unit6>
    123121      <Unit7>
    124122        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\include\customform.inc"/>
    125         <EditorIndex Value="21"/>
    126123        <WindowIndex Value="0"/>
    127124        <TopLine Value="2822"/>
    128125        <CursorPos X="1" Y="2835"/>
    129         <UsageCount Value="41"/>
    130         <Loaded Value="True"/>
     126        <UsageCount Value="57"/>
    131127      </Unit7>
    132128      <Unit8>
     
    139135        <TopLine Value="1"/>
    140136        <CursorPos X="7" Y="16"/>
    141         <UsageCount Value="81"/>
     137        <UsageCount Value="116"/>
    142138      </Unit8>
    143139      <Unit9>
     
    150146        <TopLine Value="1"/>
    151147        <CursorPos X="12" Y="15"/>
    152         <UsageCount Value="81"/>
     148        <UsageCount Value="116"/>
    153149      </Unit9>
    154150      <Unit10>
     
    161157        <TopLine Value="1"/>
    162158        <CursorPos X="21" Y="4"/>
    163         <UsageCount Value="81"/>
     159        <UsageCount Value="116"/>
    164160      </Unit10>
    165161      <Unit11>
     
    172168        <TopLine Value="1"/>
    173169        <CursorPos X="12" Y="16"/>
    174         <UsageCount Value="81"/>
     170        <UsageCount Value="116"/>
    175171      </Unit11>
    176172      <Unit12>
     
    183179        <TopLine Value="1"/>
    184180        <CursorPos X="12" Y="17"/>
    185         <UsageCount Value="81"/>
     181        <UsageCount Value="116"/>
    186182      </Unit12>
    187183      <Unit13>
     
    194190        <TopLine Value="1"/>
    195191        <CursorPos X="12" Y="16"/>
    196         <UsageCount Value="81"/>
     192        <UsageCount Value="116"/>
    197193      </Unit13>
    198194      <Unit14>
     
    205201        <TopLine Value="1"/>
    206202        <CursorPos X="41" Y="17"/>
    207         <UsageCount Value="79"/>
     203        <UsageCount Value="114"/>
    208204      </Unit14>
    209205      <Unit15>
     
    212208        <EditorIndex Value="0"/>
    213209        <WindowIndex Value="0"/>
    214         <TopLine Value="87"/>
    215         <CursorPos X="34" Y="100"/>
    216         <UsageCount Value="39"/>
     210        <TopLine Value="406"/>
     211        <CursorPos X="3" Y="411"/>
     212        <UsageCount Value="57"/>
    217213        <Loaded Value="True"/>
    218214      </Unit15>
     
    220216        <Filename Value="..\..\UCoolDockLayout.pas"/>
    221217        <UnitName Value="UCoolDockLayout"/>
    222         <EditorIndex Value="9"/>
     218        <EditorIndex Value="5"/>
    223219        <WindowIndex Value="0"/>
    224220        <TopLine Value="379"/>
    225221        <CursorPos X="101" Y="394"/>
    226         <UsageCount Value="39"/>
     222        <UsageCount Value="57"/>
    227223        <Loaded Value="True"/>
    228224      </Unit16>
    229225      <Unit17>
    230226        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\FPC\rtl\objpas\classes\classesh.inc"/>
    231         <EditorIndex Value="20"/>
    232227        <WindowIndex Value="0"/>
    233228        <TopLine Value="1638"/>
    234229        <CursorPos X="17" Y="1651"/>
    235         <UsageCount Value="15"/>
    236         <Loaded Value="True"/>
     230        <UsageCount Value="31"/>
    237231      </Unit17>
    238232      <Unit18>
     
    242236        <TopLine Value="70"/>
    243237        <CursorPos X="21" Y="83"/>
    244         <UsageCount Value="9"/>
     238        <UsageCount Value="5"/>
    245239      </Unit18>
    246240      <Unit19>
     
    249243        <TopLine Value="220"/>
    250244        <CursorPos X="16" Y="233"/>
    251         <UsageCount Value="9"/>
     245        <UsageCount Value="5"/>
    252246      </Unit19>
    253247      <Unit20>
     
    257251        <TopLine Value="90"/>
    258252        <CursorPos X="61" Y="104"/>
    259         <UsageCount Value="31"/>
     253        <UsageCount Value="27"/>
    260254      </Unit20>
    261255      <Unit21>
     
    265259        <TopLine Value="34"/>
    266260        <CursorPos X="11" Y="47"/>
    267         <UsageCount Value="9"/>
     261        <UsageCount Value="5"/>
    268262      </Unit21>
    269263      <Unit22>
     
    276270        <TopLine Value="25"/>
    277271        <CursorPos X="7" Y="48"/>
    278         <UsageCount Value="8"/>
     272        <UsageCount Value="4"/>
    279273      </Unit22>
    280274      <Unit23>
    281275        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\forms.pp"/>
    282276        <UnitName Value="Forms"/>
    283         <EditorIndex Value="14"/>
    284277        <WindowIndex Value="0"/>
    285278        <TopLine Value="776"/>
    286279        <CursorPos X="3" Y="789"/>
    287         <UsageCount Value="16"/>
    288         <Loaded Value="True"/>
     280        <UsageCount Value="32"/>
    289281      </Unit23>
    290282      <Unit24>
     
    294286        <TopLine Value="835"/>
    295287        <CursorPos X="3" Y="837"/>
    296         <UsageCount Value="6"/>
     288        <UsageCount Value="2"/>
    297289      </Unit24>
    298290      <Unit25>
     
    301293        <TopLine Value="913"/>
    302294        <CursorPos X="1" Y="930"/>
    303         <UsageCount Value="28"/>
     295        <UsageCount Value="24"/>
    304296      </Unit25>
    305297      <Unit26>
     
    308300        <TopLine Value="91"/>
    309301        <CursorPos X="1" Y="104"/>
    310         <UsageCount Value="10"/>
     302        <UsageCount Value="6"/>
    311303      </Unit26>
    312304      <Unit27>
     
    315307        <TopLine Value="239"/>
    316308        <CursorPos X="1" Y="252"/>
    317         <UsageCount Value="10"/>
     309        <UsageCount Value="6"/>
    318310      </Unit27>
    319311      <Unit28>
    320312        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\controls.pp"/>
    321313        <UnitName Value="Controls"/>
    322         <EditorIndex Value="15"/>
    323         <WindowIndex Value="0"/>
    324         <TopLine Value="432"/>
    325         <CursorPos X="15" Y="446"/>
    326         <UsageCount Value="16"/>
     314        <EditorIndex Value="7"/>
     315        <WindowIndex Value="0"/>
     316        <TopLine Value="1050"/>
     317        <CursorPos X="14" Y="1429"/>
     318        <UsageCount Value="33"/>
    327319        <Loaded Value="True"/>
    328320      </Unit28>
    329321      <Unit29>
    330322        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\include\wincontrol.inc"/>
    331         <EditorIndex Value="2"/>
    332323        <WindowIndex Value="0"/>
    333324        <TopLine Value="5229"/>
    334325        <CursorPos X="1" Y="5242"/>
    335         <UsageCount Value="12"/>
    336         <Loaded Value="True"/>
     326        <UsageCount Value="28"/>
    337327      </Unit29>
    338328      <Unit30>
     
    341331        <TopLine Value="751"/>
    342332        <CursorPos X="1" Y="764"/>
    343         <UsageCount Value="30"/>
     333        <UsageCount Value="26"/>
    344334      </Unit30>
    345335      <Unit31>
     
    349339        <ResourceBaseClass Value="Form"/>
    350340        <UnitName Value="UCoolDockCustomize"/>
    351         <EditorIndex Value="7"/>
    352341        <WindowIndex Value="0"/>
    353342        <TopLine Value="36"/>
    354343        <CursorPos X="3" Y="49"/>
    355         <UsageCount Value="34"/>
    356         <Loaded Value="True"/>
     344        <UsageCount Value="50"/>
    357345      </Unit31>
    358346      <Unit32>
    359347        <Filename Value="..\..\UCoolDockCommon.pas"/>
    360348        <UnitName Value="UCoolDockCommon"/>
    361         <EditorIndex Value="13"/>
    362         <WindowIndex Value="0"/>
    363         <TopLine Value="1"/>
    364         <CursorPos X="3" Y="11"/>
    365         <UsageCount Value="31"/>
     349        <EditorIndex Value="1"/>
     350        <WindowIndex Value="0"/>
     351        <TopLine Value="1"/>
     352        <CursorPos X="1" Y="14"/>
     353        <UsageCount Value="48"/>
    366354        <Loaded Value="True"/>
    367355      </Unit32>
     
    369357        <Filename Value="..\..\UCoolDockPopupMenu.pas"/>
    370358        <UnitName Value="UCoolDockPopupMenu"/>
    371         <EditorIndex Value="6"/>
    372         <WindowIndex Value="0"/>
    373         <TopLine Value="223"/>
    374         <CursorPos X="85" Y="202"/>
    375         <UsageCount Value="33"/>
    376         <Loaded Value="True"/>
     359        <WindowIndex Value="0"/>
     360        <TopLine Value="161"/>
     361        <CursorPos X="3" Y="165"/>
     362        <UsageCount Value="49"/>
    377363      </Unit33>
    378364      <Unit34>
     
    382368        <TopLine Value="503"/>
    383369        <CursorPos X="10" Y="516"/>
    384         <UsageCount Value="26"/>
     370        <UsageCount Value="22"/>
    385371      </Unit34>
    386372      <Unit35>
     
    389375        <TopLine Value="539"/>
    390376        <CursorPos X="3" Y="544"/>
    391         <UsageCount Value="9"/>
     377        <UsageCount Value="5"/>
    392378      </Unit35>
    393379      <Unit36>
     
    396382        <TopLine Value="224"/>
    397383        <CursorPos X="29" Y="238"/>
    398         <UsageCount Value="11"/>
     384        <UsageCount Value="7"/>
    399385      </Unit36>
    400386      <Unit37>
     
    403389        <TopLine Value="7"/>
    404390        <CursorPos X="3" Y="20"/>
    405         <UsageCount Value="10"/>
     391        <UsageCount Value="6"/>
    406392      </Unit37>
    407393      <Unit38>
     
    410396        <TopLine Value="79"/>
    411397        <CursorPos X="14" Y="82"/>
    412         <UsageCount Value="10"/>
     398        <UsageCount Value="6"/>
    413399      </Unit38>
    414400      <Unit39>
    415401        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\lclclasses.pp"/>
    416402        <UnitName Value="LCLClasses"/>
    417         <EditorIndex Value="19"/>
    418403        <WindowIndex Value="0"/>
    419404        <TopLine Value="32"/>
    420405        <CursorPos X="20" Y="45"/>
    421         <UsageCount Value="14"/>
    422         <Loaded Value="True"/>
     406        <UsageCount Value="30"/>
    423407      </Unit39>
    424408      <Unit40>
    425409        <Filename Value="..\..\UCoolDockStyle.pas"/>
    426410        <UnitName Value="UCoolDockStyle"/>
    427         <EditorIndex Value="5"/>
    428         <WindowIndex Value="0"/>
    429         <TopLine Value="9"/>
    430         <CursorPos X="15" Y="22"/>
    431         <UsageCount Value="13"/>
     411        <EditorIndex Value="3"/>
     412        <WindowIndex Value="0"/>
     413        <TopLine Value="59"/>
     414        <CursorPos X="3" Y="65"/>
     415        <UsageCount Value="31"/>
    432416        <Loaded Value="True"/>
    433417      </Unit40>
     
    435419        <Filename Value="..\..\UCoolDockClientPanel.pas"/>
    436420        <UnitName Value="UCoolDockClientPanel"/>
    437         <EditorIndex Value="4"/>
    438         <WindowIndex Value="0"/>
    439         <TopLine Value="210"/>
    440         <CursorPos X="3" Y="215"/>
    441         <UsageCount Value="13"/>
     421        <EditorIndex Value="2"/>
     422        <WindowIndex Value="0"/>
     423        <TopLine Value="25"/>
     424        <CursorPos X="22" Y="40"/>
     425        <UsageCount Value="31"/>
    442426        <Loaded Value="True"/>
    443427      </Unit41>
     
    448432        <TopLine Value="1531"/>
    449433        <CursorPos X="33" Y="1544"/>
    450         <UsageCount Value="10"/>
     434        <UsageCount Value="6"/>
    451435      </Unit42>
    452436      <Unit43>
    453437        <Filename Value="..\..\UCoolDockStyleTabs.pas"/>
    454438        <UnitName Value="UCoolDockStyleTabs"/>
    455         <IsVisibleTab Value="True"/>
    456         <EditorIndex Value="11"/>
    457         <WindowIndex Value="0"/>
    458         <TopLine Value="292"/>
    459         <CursorPos X="1" Y="305"/>
    460         <UsageCount Value="12"/>
     439        <EditorIndex Value="8"/>
     440        <WindowIndex Value="0"/>
     441        <TopLine Value="238"/>
     442        <CursorPos X="3" Y="240"/>
     443        <UsageCount Value="30"/>
    461444        <Loaded Value="True"/>
    462445      </Unit43>
     
    467450        <TopLine Value="45"/>
    468451        <CursorPos X="28" Y="558"/>
    469         <UsageCount Value="10"/>
     452        <UsageCount Value="6"/>
    470453      </Unit44>
    471454      <Unit45>
     
    475458        <TopLine Value="344"/>
    476459        <CursorPos X="1" Y="357"/>
    477         <UsageCount Value="10"/>
     460        <UsageCount Value="6"/>
    478461      </Unit45>
    479462      <Unit46>
     
    482465        <TopLine Value="2403"/>
    483466        <CursorPos X="74" Y="2413"/>
    484         <UsageCount Value="10"/>
     467        <UsageCount Value="6"/>
    485468      </Unit46>
    486469      <Unit47>
    487470        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
    488471        <UnitName Value="UCoolDockStyleRegions"/>
    489         <EditorIndex Value="10"/>
    490         <WindowIndex Value="0"/>
    491         <TopLine Value="99"/>
    492         <CursorPos X="1" Y="120"/>
    493         <UsageCount Value="11"/>
     472        <IsVisibleTab Value="True"/>
     473        <EditorIndex Value="6"/>
     474        <WindowIndex Value="0"/>
     475        <TopLine Value="61"/>
     476        <CursorPos X="36" Y="66"/>
     477        <UsageCount Value="29"/>
    494478        <Loaded Value="True"/>
    495479      </Unit47>
     
    497481        <Filename Value="..\..\UCoolDockStylePopupTabs.pas"/>
    498482        <UnitName Value="UCoolDockStylePopupTabs"/>
    499         <EditorIndex Value="12"/>
    500483        <WindowIndex Value="0"/>
    501484        <TopLine Value="1"/>
    502485        <CursorPos X="26" Y="12"/>
    503         <UsageCount Value="11"/>
    504         <Loaded Value="True"/>
     486        <UsageCount Value="27"/>
    505487      </Unit48>
    506488      <Unit49>
    507489        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\include\dragmanager.inc"/>
    508         <EditorIndex Value="1"/>
    509490        <WindowIndex Value="0"/>
    510491        <TopLine Value="762"/>
    511492        <CursorPos X="1" Y="775"/>
    512         <UsageCount Value="11"/>
    513         <Loaded Value="True"/>
     493        <UsageCount Value="27"/>
    514494      </Unit49>
    515495      <Unit50>
    516496        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\include\dragobject.inc"/>
    517         <EditorIndex Value="16"/>
    518497        <WindowIndex Value="0"/>
    519498        <TopLine Value="148"/>
    520499        <CursorPos X="32" Y="160"/>
    521         <UsageCount Value="11"/>
    522         <Loaded Value="True"/>
     500        <UsageCount Value="27"/>
    523501      </Unit50>
    524502      <Unit51>
    525503        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\include\lclintfh.inc"/>
    526         <EditorIndex Value="17"/>
    527504        <WindowIndex Value="0"/>
    528505        <TopLine Value="53"/>
    529506        <CursorPos X="11" Y="66"/>
    530         <UsageCount Value="11"/>
    531         <Loaded Value="True"/>
     507        <UsageCount Value="27"/>
    532508      </Unit51>
    533509      <Unit52>
    534510        <Filename Value="E:\Projekty2\FreePascalManager\trunk\Instance\1\Lazarus\lcl\include\lclintf.inc"/>
    535         <EditorIndex Value="18"/>
    536511        <WindowIndex Value="0"/>
    537512        <TopLine Value="141"/>
    538513        <CursorPos X="3" Y="143"/>
    539         <UsageCount Value="11"/>
    540         <Loaded Value="True"/>
     514        <UsageCount Value="27"/>
    541515      </Unit52>
     516      <Unit53>
     517        <Filename Value="..\..\ReadMe.txt"/>
     518        <WindowIndex Value="0"/>
     519        <TopLine Value="2"/>
     520        <CursorPos X="40" Y="3"/>
     521        <UsageCount Value="26"/>
     522        <DefaultSyntaxHighlighter Value="None"/>
     523      </Unit53>
    542524    </Units>
    543525    <JumpHistory Count="30" HistoryIndex="29">
    544526      <Position1>
    545         <Filename Value="..\..\UCoolDocking.pas"/>
    546         <Caret Line="367" Column="12" TopLine="358"/>
     527        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     528        <Caret Line="64" Column="1" TopLine="59"/>
    547529      </Position1>
    548530      <Position2>
    549         <Filename Value="..\..\UCoolDocking.pas"/>
    550         <Caret Line="318" Column="20" TopLine="318"/>
     531        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     532        <Caret Line="65" Column="1" TopLine="59"/>
    551533      </Position2>
    552534      <Position3>
    553535        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
    554         <Caret Line="115" Column="1" TopLine="94"/>
     536        <Caret Line="66" Column="1" TopLine="59"/>
    555537      </Position3>
    556538      <Position4>
    557         <Filename Value="..\..\UCoolDocking.pas"/>
    558         <Caret Line="334" Column="1" TopLine="318"/>
     539        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     540        <Caret Line="68" Column="1" TopLine="59"/>
    559541      </Position4>
    560542      <Position5>
    561         <Filename Value="..\..\UCoolDocking.pas"/>
    562         <Caret Line="336" Column="1" TopLine="318"/>
     543        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     544        <Caret Line="82" Column="1" TopLine="61"/>
    563545      </Position5>
    564546      <Position6>
    565         <Filename Value="..\..\UCoolDocking.pas"/>
    566         <Caret Line="334" Column="1" TopLine="318"/>
     547        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     548        <Caret Line="64" Column="1" TopLine="59"/>
    567549      </Position6>
    568550      <Position7>
    569         <Filename Value="..\..\UCoolDocking.pas"/>
    570         <Caret Line="310" Column="13" TopLine="291"/>
     551        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     552        <Caret Line="65" Column="1" TopLine="59"/>
    571553      </Position7>
    572554      <Position8>
    573555        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
    574         <Caret Line="86" Column="10" TopLine="73"/>
     556        <Caret Line="66" Column="1" TopLine="59"/>
    575557      </Position8>
    576558      <Position9>
    577559        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
    578         <Caret Line="81" Column="20" TopLine="68"/>
     560        <Caret Line="68" Column="1" TopLine="59"/>
    579561      </Position9>
    580562      <Position10>
    581563        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
    582         <Caret Line="82" Column="33" TopLine="68"/>
     564        <Caret Line="69" Column="1" TopLine="59"/>
    583565      </Position10>
    584566      <Position11>
    585567        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
    586         <Caret Line="84" Column="33" TopLine="70"/>
     568        <Caret Line="70" Column="1" TopLine="59"/>
    587569      </Position11>
    588570      <Position12>
    589571        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
    590         <Caret Line="88" Column="17" TopLine="74"/>
     572        <Caret Line="82" Column="1" TopLine="61"/>
    591573      </Position12>
    592574      <Position13>
    593575        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
    594         <Caret Line="89" Column="85" TopLine="76"/>
     576        <Caret Line="64" Column="1" TopLine="59"/>
    595577      </Position13>
    596578      <Position14>
    597579        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
    598         <Caret Line="90" Column="24" TopLine="76"/>
     580        <Caret Line="65" Column="1" TopLine="59"/>
    599581      </Position14>
    600582      <Position15>
    601         <Filename Value="..\..\UCoolDocking.pas"/>
    602         <Caret Line="336" Column="1" TopLine="323"/>
     583        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     584        <Caret Line="66" Column="1" TopLine="59"/>
    603585      </Position15>
    604586      <Position16>
    605         <Filename Value="..\..\UCoolDockPopupMenu.pas"/>
    606         <Caret Line="207" Column="1" TopLine="202"/>
     587        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     588        <Caret Line="68" Column="1" TopLine="59"/>
    607589      </Position16>
    608590      <Position17>
    609         <Filename Value="..\..\UCoolDockPopupMenu.pas"/>
    610         <Caret Line="209" Column="56" TopLine="201"/>
     591        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     592        <Caret Line="69" Column="1" TopLine="59"/>
    611593      </Position17>
    612594      <Position18>
    613         <Filename Value="..\..\UCoolDockPopupMenu.pas"/>
    614         <Caret Line="10" Column="36" TopLine="4"/>
     595        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     596        <Caret Line="70" Column="1" TopLine="59"/>
    615597      </Position18>
    616598      <Position19>
    617         <Filename Value="..\..\UCoolDockPopupMenu.pas"/>
    618         <Caret Line="61" Column="49" TopLine="55"/>
     599        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     600        <Caret Line="72" Column="1" TopLine="59"/>
    619601      </Position19>
    620602      <Position20>
    621         <Filename Value="..\..\UCoolDockPopupMenu.pas"/>
    622         <Caret Line="204" Column="1" TopLine="202"/>
     603        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     604        <Caret Line="73" Column="1" TopLine="59"/>
    623605      </Position20>
    624606      <Position21>
    625         <Filename Value="..\..\UCoolDockStyleTabs.pas"/>
    626         <Caret Line="305" Column="1" TopLine="292"/>
     607        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     608        <Caret Line="75" Column="1" TopLine="59"/>
    627609      </Position21>
    628610      <Position22>
    629         <Filename Value="..\..\UCoolDockPopupMenu.pas"/>
    630         <Caret Line="207" Column="66" TopLine="202"/>
     611        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     612        <Caret Line="76" Column="1" TopLine="59"/>
    631613      </Position22>
    632614      <Position23>
    633         <Filename Value="..\..\UCoolDockStyleTabs.pas"/>
    634         <Caret Line="305" Column="1" TopLine="292"/>
     615        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     616        <Caret Line="64" Column="1" TopLine="59"/>
    635617      </Position23>
    636618      <Position24>
    637         <Filename Value="..\..\UCoolDockStyleTabs.pas"/>
    638         <Caret Line="306" Column="1" TopLine="292"/>
     619        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     620        <Caret Line="65" Column="1" TopLine="59"/>
    639621      </Position24>
    640622      <Position25>
    641         <Filename Value="..\..\UCoolDockStyleTabs.pas"/>
    642         <Caret Line="307" Column="1" TopLine="292"/>
     623        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     624        <Caret Line="66" Column="1" TopLine="59"/>
    643625      </Position25>
    644626      <Position26>
    645         <Filename Value="..\..\UCoolDockStyleTabs.pas"/>
    646         <Caret Line="308" Column="1" TopLine="292"/>
     627        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     628        <Caret Line="82" Column="1" TopLine="61"/>
    647629      </Position26>
    648630      <Position27>
    649         <Filename Value="..\..\UCoolDockStyleTabs.pas"/>
    650         <Caret Line="315" Column="1" TopLine="294"/>
     631        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     632        <Caret Line="64" Column="1" TopLine="59"/>
    651633      </Position27>
    652634      <Position28>
    653         <Filename Value="..\..\UCoolDockStyleTabs.pas"/>
    654         <Caret Line="316" Column="1" TopLine="295"/>
     635        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     636        <Caret Line="65" Column="1" TopLine="59"/>
    655637      </Position28>
    656638      <Position29>
    657         <Filename Value="..\..\UCoolDockStyleTabs.pas"/>
    658         <Caret Line="317" Column="1" TopLine="296"/>
     639        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     640        <Caret Line="66" Column="1" TopLine="59"/>
    659641      </Position29>
    660642      <Position30>
    661         <Filename Value="..\..\UCoolDockPopupMenu.pas"/>
    662         <Caret Line="202" Column="85" TopLine="223"/>
     643        <Filename Value="..\..\UCoolDockStyleRegions.pas"/>
     644        <Caret Line="68" Column="1" TopLine="59"/>
    663645      </Position30>
    664646    </JumpHistory>
     
    686668  </CompilerOptions>
    687669  <Debugging>
     670    <BreakPoints Count="1">
     671      <Item1>
     672        <Source Value="..\..\UCoolDockStyleRegions.pas"/>
     673        <Line Value="61"/>
     674      </Item1>
     675    </BreakPoints>
    688676    <Exceptions Count="3">
    689677      <Item1>
  • Docking/CoolDocking/ReadMe.txt

    r63 r183  
    1 Completeded features:
    2 =====================
     1=CoolDocking=
     2
     3Is form docking system for Lazarus IDE.
     4
     5=Download=
     6
     7You can download source from SVN repository:
     8
     9http://svn.zdechov.net/svn/PascalClassLibrary/Docking/CoolDocking
     10
     11
     12=Features=
     13
     14==Completeded features==
    315
    416* List docking
     
    719* Conjoin floating form
    820* Icons on tabs and grabbers
     21* Store and restore forms layout to file or stream
     22* Predefined customization form
    923
    10 Planned features:
    11 =================
     24==Planned features==
    1225
    13 * Store and restore forms layout to file or stream
    1426* Dock forms groups
    15 * Predefined customization form
    1627* User defined form header styles
    1728* Ability to lock and unlock docked controls for accidently undocking
  • Docking/CoolDocking/UCoolDockClientPanel.pas

    r182 r183  
    175175  OnPaint := DockPanelPaint;
    176176  Header.Shape.OnMouseDown := DockPanelMouseDown;
     177  Header.Title.OnMouseDown := DockPanelMouseDown;
    177178  OnResize := ResizeExecute;
    178179  BevelInner := bvNone;
  • Docking/CoolDocking/UCoolDockCommon.pas

    r182 r183  
    1111  TDockStyle = (dsList, dsTabs, dsPopupTabs, dsPopupList);
    1212  TDockHideType = (dhtPermanent, dhtTemporal);
     13  TDockDirection = (ddNone, ddHorizontal, ddVertical);
    1314
    1415  TCoolDockMasterBase = class;
  • Docking/CoolDocking/UCoolDockStyle.pas

    r182 r183  
    1818    procedure SetHeaderPos(const AValue: THeaderPos); virtual;
    1919    constructor Create(AManager: TCoolDockManagerBase);
    20     procedure InsertControl(NewPanel: TCoolDockClientPanel; AControl: TControl;
     20    procedure InsertControl(AControl: TControl;
    2121      InsertAt: TAlign); virtual;
     22    procedure RemoveControl(Control: TControl); virtual;
    2223    procedure UpdateClientSize; virtual;
    2324    procedure Switch(Index: Integer); virtual;
     
    5556end;
    5657
    57 procedure TCoolDockStyle.InsertControl(NewPanel: TCoolDockClientPanel;
    58   AControl: TControl; InsertAt: TAlign);
     58procedure TCoolDockStyle.InsertControl(AControl: TControl; InsertAt: TAlign);
     59begin
     60
     61end;
     62
     63procedure TCoolDockStyle.RemoveControl(Control: TControl);
    5964begin
    6065
  • Docking/CoolDocking/UCoolDockStyleRegions.pas

    r182 r183  
    66
    77uses
    8   Classes, SysUtils, Controls, ExtCtrls, StdCtrls, UCoolDockStyle,
     8  Classes, SysUtils, Controls, ExtCtrls, StdCtrls, UCoolDockStyle, Forms,
    99  Graphics, Contnrs, Buttons, UCoolDockClientPanel, UCoolDockCommon;
    1010
     
    1818  TCoolDockStyleRegions = class(TCoolDockStyle)
    1919  private
     20    function GetDirection(InsertAt: TAlign): TDockDirection;
    2021  public
    21     Panels: TObjectList; // TObjectList<TCoolDockStyleRegionsPanel>
     22    FDockDirection: TDockDirection;
     23    //Panels: TObjectList; // TObjectList<TCoolDockStyleRegionsPanel>
     24    procedure InsertControl(AControl: TControl; InsertAt: TAlign); override;
     25    procedure RemoveControl(Control: TControl); override;
    2226    function GetHeaderPos: THeaderPos; override;
    2327    procedure SetHeaderPos(const AValue: THeaderPos); override;
     
    2731    procedure SetVisible(const AValue: Boolean); override;
    2832    procedure ChangeVisible(Control: TWinControl; Visible: Boolean); override;
     33    property DockDirection: TDockDirection read FDockDirection
     34      write FDockDirection;
    2935  end;
    3036
     
    3743{ TCoolDockStyleRegions }
    3844
     45function TCoolDockStyleRegions.GetDirection(InsertAt: TAlign): TDockDirection;
     46begin
     47  Result := ddHorizontal;
     48  if (InsertAt = alTop) or (InsertAt = alBottom) then
     49    Result := ddVertical
     50  else
     51  if (InsertAt = alLeft) or (InsertAt = alRight) then
     52    Result := ddHorizontal
     53  else;
     54end;
     55
     56procedure TCoolDockStyleRegions.InsertControl(AControl: TControl; InsertAt: TAlign);
     57var
     58  NewPanel: TCoolDockClientPanel;
     59  I: Integer;
     60  NewDirection: TDockDirection;
     61  NewConjoinDockForm: TCoolDockConjoinForm;
     62  NewDockSite: TWinControl;
     63begin
     64  inherited;
     65  with TCoolDockManager(Manager) do begin
     66    if DockSite.DockClientCount <= 2 then FDockDirection := GetDirection(InsertAt)
     67    else
     68    if (DockSite.DockClientCount > 2) then begin
     69      NewDirection := GetDirection(InsertAt);
     70      if (NewDirection <> FDockDirection) then begin
     71        // Direction change, create conjoin form
     72        NewConjoinDockForm := CreateContainer(InsertAt);
     73        NewDockSite := DockSite.HostDockSite;
     74        // FDockSite.ManualFloat(FDockSite.BoundsRect);
     75        NewConjoinDockForm.ManualDock(NewDockSite);
     76        DockSite.ManualDock(NewConjoinDockForm.Panel);
     77        AControl.ManualDock(NewConjoinDockForm.Panel, nil, InsertAt);
     78        Exit;
     79      end;
     80    end;
     81
     82    NewPanel := TCoolDockClientPanel.Create(nil);
     83    with NewPanel do begin
     84      Parent := TCoolDockManager(Manager).DockSite;
     85      OwnerDockManager := Self;
     86      if DockStyle = dsList then Visible := True;
     87      Header.PopupMenu := TCoolDockManager(Manager).PopupMenu;
     88      //PopupMenu.Parent := Self.DockSite;
     89    end;
     90    if (AControl is TForm) and Assigned((AControl as TForm).Icon) then
     91      NewPanel.Header.Icon.Picture.Assign((AControl as TForm).Icon);
     92
     93    NewPanel.Control := AControl;
     94    AControl.AddHandlerOnVisibleChanged(NewPanel.VisibleChange);
     95    AControl.Parent := NewPanel.ClientAreaPanel;
     96    AControl.Align := alClient;
     97    if (InsertAt = alTop) or (InsertAt = alLeft) then
     98      DockPanels.Insert(0, NewPanel)
     99      else DockPanels.Add(NewPanel);
     100  end;
     101  UpdateClientSize;
     102end;
     103
     104procedure TCoolDockStyleRegions.RemoveControl(Control: TControl);
     105begin
     106  if TCoolDockManager(Manager).DockSite.DockClientCount = 2 then FDockDirection := ddNone;
     107  inherited RemoveControl(Control);
     108end;
     109
    39110function TCoolDockStyleRegions.GetHeaderPos: THeaderPos;
    40111begin
     
    52123begin
    53124  inherited;
    54   Panels := TObjectList.Create;
     125  //Panels := TObjectList.Create;
    55126
    56127  with TCoolDockManager(AManager) do
     
    67138destructor TCoolDockStyleRegions.Destroy;
    68139begin
    69   Panels.Free;
     140  //Panels.Free;
    70141  inherited Destroy;
    71142end;
     
    74145var
    75146  I: Integer;
     147  SplitterLeft: Integer;
     148  SplitterTop: Integer;
     149  BaseAlign: TAlign;
    76150begin
    77151  inherited UpdateClientSize;
     152  if FDockDirection = ddHorizontal then
     153    BaseAlign := alLeft else BaseAlign := alTop;
     154
     155  SplitterLeft := 0;
     156  SplitterTop := 0;
    78157  with TCoolDockManager(Manager) do
    79158  for I := 0 to DockPanels.Count - 1 do
    80159  with TCoolDockClientPanel(DockPanels[I]) do begin
     160    Left := SplitterLeft;
     161    Top := SplitterTop;
    81162    Height := TCoolDockManager(Manager).DockSite.Height div
    82163      TCoolDockManager(Manager).DockSite.DockClientCount;
     
    84165      TCoolDockManager(Manager).DockSite.DockClientCount;
    85166    //TCoolDockClientPanel(FDockPanels[I]).DockPanelPaint(Self);
     167    if I < (DockPanels.Count - 1) then Align := BaseAlign
     168      else Align := alClient;
     169
     170    Splitter.Left := SplitterLeft;
     171    Splitter.Top := SplitterTop;
     172    Inc(SplitterLeft, Width);
     173    Inc(SplitterTop, Height);
     174    Splitter.Parent := TCoolDockManager(Manager).DockSite;
     175    Splitter.Align := BaseAlign;
     176    Splitter.Visible := True;
     177
     178
    86179    DockPanelPaint(Self);
    87180    if I < (DockPanels.Count - 1) then begin
    88       if TCoolDockManager(Manager).DockDirection = ddHorizontal then Align := alLeft
     181      if DockDirection = ddHorizontal then Align := alLeft
    89182        else Align := alTop;
    90183    end else Align := alClient;
  • Docking/CoolDocking/UCoolDockStyleTabs.pas

    r182 r183  
    2525    procedure TabControlMouseUp(Sender: TObject; Button: TMouseButton;
    2626      Shift: TShiftState; X, Y: Integer);
    27     procedure InsertControl(NewPanel: TCoolDockClientPanel;
    28       AControl: TControl; InsertAt: TAlign); override;
     27    procedure InsertControl(AControl: TControl; InsertAt: TAlign); override;
    2928    procedure UpdateClientSize; override;
    3029  private
    3130    FTabsPos: THeaderPos;
    32     procedure InsertControlNoUpdate(NewPanel: TCoolDockClientPanel;
    33       AControl: TControl; InsertAt: TAlign);
     31    procedure InsertControlNoUpdate(AControl: TControl; InsertAt: TAlign);
     32    procedure RemoveControl(Control: TControl); override;
    3433  public
    3534    constructor Create(AManager: TCoolDockManagerBase);
     
    162161    MultiLine := True;
    163162    PopupMenu := TCoolDockManager(Manager).PopupMenu;
     163    OnMouseLeave := TabControlMouseLeave;
     164    OnMouseDown := TabControlMouseDown;
    164165    //TTabControlNoteBookStrings(Tabs).NoteBook.OnMouseLeave := TabControlMouseLeave;
    165166    //TTabControlNoteBookStrings(Tabs).NoteBook.OnMouseDown := TabControlMouseDown;
     
    175176  with TCoolDockManager(Manager) do
    176177  for I := 0 to DockPanels.Count - 1 do
    177     Self.InsertControlNoUpdate(TCoolDockClientPanel(DockPanels[I]),
    178       TCoolDockClientPanel(DockPanels[I]).Control, alNone);
     178    Self.InsertControlNoUpdate(TCoolDockClientPanel(DockPanels[I]).Control, alNone);
    179179  TabControlChange(Self);
    180180end;
     
    193193end;
    194194
    195 procedure TCoolDockStyleTabs.InsertControlNoUpdate(NewPanel: TCoolDockClientPanel;
    196   AControl: TControl; InsertAt: TAlign);
     195procedure TCoolDockStyleTabs.InsertControlNoUpdate(AControl: TControl; InsertAt: TAlign);
    197196var
    198197  NewTabSheet: TTabSheet;
     198  NewPanel: TCoolDockClientPanel;
    199199begin
    200200  inherited;
     201  with TCoolDockManager(Manager) do begin
     202    NewPanel := TCoolDockClientPanel.Create(nil);
     203    with NewPanel do begin
     204      Parent := TCoolDockManager(Manager).DockSite;
     205      OwnerDockManager := Self;
     206      if DockStyle = dsList then Visible := True;
     207      Align := alClient;
     208      Header.PopupMenu := TCoolDockManager(Manager).PopupMenu;
     209      //PopupMenu.Parent := Self.DockSite;
     210    end;
     211    if (AControl is TForm) and Assigned((AControl as TForm).Icon) then
     212      NewPanel.Header.Icon.Picture.Assign((AControl as TForm).Icon);
     213
     214    NewPanel.Control := AControl;
     215    AControl.AddHandlerOnVisibleChanged(NewPanel.VisibleChange);
     216    AControl.Parent := NewPanel.ClientAreaPanel;
     217    AControl.Align := alClient;
     218    if (InsertAt = alTop) or (InsertAt = alLeft) then
     219      DockPanels.Insert(0, NewPanel)
     220      else DockPanels.Add(NewPanel);
     221
     222  end;
     223
    201224  if AControl.Visible then begin
    202225    NewTabSheet := TTabSheet.Create(PageControl);
     
    213236end;
    214237
    215 procedure TCoolDockStyleTabs.InsertControl(NewPanel: TCoolDockClientPanel;
    216   AControl: TControl; InsertAt: TAlign);
     238procedure TCoolDockStyleTabs.RemoveControl(Control: TControl);
     239begin
     240  inherited RemoveControl(Control);
     241end;
     242
     243procedure TCoolDockStyleTabs.InsertControl(AControl: TControl; InsertAt: TAlign);
    217244var
    218245  NewTabSheet: TTabSheet;
    219246begin
    220247  inherited;
    221   InsertControlNoUpdate(NewPanel, AControl, InsertAt);
     248  InsertControlNoUpdate(AControl, InsertAt);
    222249  TabControlChange(Self);
    223250end;
  • Docking/CoolDocking/UCoolDocking.pas

    r182 r183  
    1919
    2020type
    21   TDockDirection = (ddNone, ddHorizontal, ddVertical);
    22 
    2321  TCoolDockManager = class;
    2422  TCoolDockClient = class;
     
    5452    FMaster: TCoolDockMaster;
    5553    FDockStyle: TDockStyle;
    56     FDockDirection: TDockDirection;
    5754    FDockSite: TWinControl;
    5855    FDockPanels: TCoolDockPanels;
     
    104101    property HeaderPos: THeaderPos read GetHeaderPos write SetHeaderPos;
    105102    property Visible: Boolean write SetVisible;
    106     property DockDirection: TDockDirection read FDockDirection
    107       write FDockDirection;
    108103  end;
    109104
     
    277272procedure TCoolDockManager.InsertControlPanel(Control: TControl; InsertAt: TAlign;
    278273  DropCtl: TControl);
    279 var
    280   NewPanel: TCoolDockClientPanel;
    281   I: Integer;
    282 begin
    283     if FDockSite.DockClientCount = 2 then begin
    284       if (InsertAt = alTop) or (InsertAt = alBottom) then
    285         FDockDirection := ddVertical
    286       else
    287       if (InsertAt = alLeft) or (InsertAt = alRight) then
    288         FDockDirection := ddHorizontal
    289       else FDockDirection := ddHorizontal;
    290     end;// else FDockSite.DockClientCount > 2 then begin
    291 
    292     //end;
    293     if FDockSite.DockClientCount > 1 then begin
    294       with TCoolDockClientPanel(FDockPanels.Last).Splitter do begin
    295         Parent := FDockSite;
    296         Visible := (DockStyle = dsList);
    297         if FDockDirection = ddVertical then begin
    298           Align := alTop;
    299           Top := FDockSite.Height;
    300         end else
    301         if FDockDirection = ddHorizontal then begin
    302           Align := alLeft;
    303           Left := FDockSite.Width;
    304         end;
    305       end;
    306 
    307       with TCoolDockClientPanel(FDockPanels.Last) do
    308       if FDockDirection = ddVertical then
    309         Align := alTop
    310       else
    311       if FDockDirection = ddHorizontal then
    312         Align := alLeft;
    313     end;
    314     NewPanel := TCoolDockClientPanel.Create(nil);
    315     with NewPanel do begin
    316       Parent := FDockSite;
    317       OwnerDockManager := Self;
    318       if DockStyle = dsList then Visible := True;
    319       Align := alClient;
    320       Header.PopupMenu := Self.PopupMenu;
    321       //PopupMenu.Parent := Self.DockSite;
    322     end;
    323     if (Control is TForm) and Assigned((Control as TForm).Icon) then
    324       NewPanel.Header.Icon.Picture.Assign((Control as TForm).Icon);
    325 
    326     DockStyleHandler.InsertControl(NewPanel, Control, InsertAt);
    327 
    328     NewPanel.Control := Control;
    329     Control.AddHandlerOnVisibleChanged(NewPanel.VisibleChange);
    330     Control.Parent := NewPanel.ClientAreaPanel;
    331     Control.Align := alClient;
    332     if (InsertAt = alTop) or (InsertAt = alLeft) then
    333       FDockPanels.Insert(0, NewPanel)
    334       else FDockPanels.Add(NewPanel);
    335     UpdateClientSize;
     274begin
     275  DockStyleHandler.InsertControl(Control, InsertAt);
    336276end;
    337277
     
    433373    //Control.RemoveHandlerOnVisibleChanged(ClientPanel.VisibleChange);
    434374    FDockPanels.Remove(ClientPanel);
    435     if FDockSite.DockClientCount = 2 then FDockDirection := ddNone;
     375    DockStyleHandler.RemoveControl(Control);
    436376    UpdateClientSize;
    437377    //FDockSite.Invalidate;
Note: See TracChangeset for help on using the changeset viewer.