[-] Better detection for Form Constraint handling on Linux

(by: DSA and Galló Gábor)

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2837 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
dopi
2013-11-14 22:46:47 +00:00
parent 2ed97da49a
commit c5aea14eb1
4 changed files with 163 additions and 43 deletions

View File

@@ -1,4 +1,4 @@
<?xml version="1.0"?> <?xml version="1.0" encoding="UTF-8"?>
<CONFIG> <CONFIG>
<ProjectOptions> <ProjectOptions>
<Version Value="9"/> <Version Value="9"/>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0"?> <?xml version="1.0" encoding="UTF-8"?>
<CONFIG> <CONFIG>
<ProjectSession> <ProjectSession>
<PathDelim Value="\"/> <PathDelim Value="\"/>
@@ -34,8 +34,8 @@
<UnitName Value="uForm1"/> <UnitName Value="uForm1"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="96"/> <TopLine Value="92"/>
<CursorPos X="28" Y="104"/> <CursorPos X="1" Y="104"/>
<UsageCount Value="209"/> <UsageCount Value="209"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
@@ -49,9 +49,9 @@
<UnitName Value="uForm2"/> <UnitName Value="uForm2"/>
<EditorIndex Value="2"/> <EditorIndex Value="2"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="80"/> <TopLine Value="26"/>
<CursorPos X="18" Y="83"/> <CursorPos X="19" Y="86"/>
<UsageCount Value="149"/> <UsageCount Value="151"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
</Unit3> </Unit3>
@@ -63,8 +63,8 @@
<UnitName Value="uMainForm"/> <UnitName Value="uMainForm"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="170"/> <TopLine Value="1"/>
<CursorPos X="52" Y="185"/> <CursorPos X="1" Y="191"/>
<UsageCount Value="101"/> <UsageCount Value="101"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
@@ -72,28 +72,27 @@
<Unit5> <Unit5>
<Filename Value="..\tdiclass.pas"/> <Filename Value="..\tdiclass.pas"/>
<UnitName Value="TDIClass"/> <UnitName Value="TDIClass"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="3"/> <EditorIndex Value="3"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="1066"/> <TopLine Value="345"/>
<CursorPos X="5" Y="1081"/> <CursorPos X="25" Y="350"/>
<UsageCount Value="101"/> <UsageCount Value="101"/>
<Bookmarks Count="7"> <Bookmarks Count="7">
<Item0 X="1" Y="346" ID="2"/> <Item0 X="1" Y="348" ID="2"/>
<Item1 X="32" Y="691" ID="4"/> <Item1 X="32" Y="697" ID="4"/>
<Item2 X="3" Y="282" ID="6"/> <Item2 X="3" Y="282" ID="6"/>
<Item3 X="3" Y="356" ID="5"/> <Item3 X="3" Y="362" ID="5"/>
<Item4 X="17" Y="311" ID="7"/> <Item4 X="17" Y="311" ID="7"/>
<Item5 X="5" Y="1058" ID="1"/> <Item5 X="5" Y="1064" ID="1"/>
<Item6 X="40" Y="883" ID="3"/> <Item6 X="40" Y="889" ID="3"/>
</Bookmarks> </Bookmarks>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit5> </Unit5>
<Unit6> <Unit6>
<Filename Value="C:\lazarus\lcl\include\customnotebook.inc"/> <Filename Value="C:\lazarus\lcl\include\customnotebook.inc"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="655"/> <TopLine Value="961"/>
<CursorPos X="11" Y="660"/> <CursorPos X="1" Y="971"/>
<UsageCount Value="30"/> <UsageCount Value="30"/>
</Unit6> </Unit6>
<Unit7> <Unit7>
@@ -159,7 +158,7 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="1598"/> <TopLine Value="1598"/>
<CursorPos X="14" Y="1610"/> <CursorPos X="14" Y="1610"/>
<UsageCount Value="10"/> <UsageCount Value="11"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit13> </Unit13>
<Unit14> <Unit14>
@@ -653,10 +652,11 @@
</Unit76> </Unit76>
<Unit77> <Unit77>
<Filename Value="..\read-me.txt"/> <Filename Value="..\read-me.txt"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="6"/> <EditorIndex Value="6"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="147"/> <TopLine Value="150"/>
<CursorPos X="34" Y="168"/> <CursorPos X="10" Y="170"/>
<UsageCount Value="32"/> <UsageCount Value="32"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="None"/> <DefaultSyntaxHighlighter Value="None"/>
@@ -714,40 +714,138 @@
<General> <General>
<ActiveWindowIndexAtStart Value="0"/> <ActiveWindowIndexAtStart Value="0"/>
</General> </General>
<JumpHistory Count="2" HistoryIndex="1"> <JumpHistory Count="30" HistoryIndex="29">
<Position1> <Position1>
<Filename Value="..\tdiclass.pas"/> <Filename Value="..\tdiclass.pas"/>
<Caret Line="108" Column="23" TopLine="102"/> <Caret Line="366" Column="1" TopLine="347"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="..\tdiclass.pas"/> <Filename Value="..\tdiclass.pas"/>
<Caret Line="1054" Column="34" TopLine="1040"/> <Caret Line="368" Column="1" TopLine="349"/>
</Position2> </Position2>
<Position3>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="373" Column="1" TopLine="362"/>
</Position3>
<Position4>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="351" Column="1" TopLine="339"/>
</Position4>
<Position5>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="352" Column="1" TopLine="339"/>
</Position5>
<Position6>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="357" Column="1" TopLine="345"/>
</Position6>
<Position7>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="359" Column="1" TopLine="345"/>
</Position7>
<Position8>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="361" Column="1" TopLine="345"/>
</Position8>
<Position9>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="363" Column="1" TopLine="345"/>
</Position9>
<Position10>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="366" Column="1" TopLine="347"/>
</Position10>
<Position11>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="351" Column="31" TopLine="345"/>
</Position11>
<Position12>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="357" Column="18" TopLine="345"/>
</Position12>
<Position13>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="351" Column="1" TopLine="345"/>
</Position13>
<Position14>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="352" Column="1" TopLine="345"/>
</Position14>
<Position15>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="357" Column="1" TopLine="345"/>
</Position15>
<Position16>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="359" Column="1" TopLine="345"/>
</Position16>
<Position17>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="361" Column="1" TopLine="345"/>
</Position17>
<Position18>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="363" Column="1" TopLine="345"/>
</Position18>
<Position19>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="351" Column="1" TopLine="345"/>
</Position19>
<Position20>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="352" Column="1" TopLine="345"/>
</Position20>
<Position21>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="357" Column="1" TopLine="345"/>
</Position21>
<Position22>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="359" Column="1" TopLine="345"/>
</Position22>
<Position23>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="361" Column="1" TopLine="345"/>
</Position23>
<Position24>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="351" Column="1" TopLine="345"/>
</Position24>
<Position25>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="352" Column="1" TopLine="345"/>
</Position25>
<Position26>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="353" Column="1" TopLine="345"/>
</Position26>
<Position27>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="357" Column="1" TopLine="345"/>
</Position27>
<Position28>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="372" Column="1" TopLine="361"/>
</Position28>
<Position29>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="351" Column="1" TopLine="345"/>
</Position29>
<Position30>
<Filename Value="..\tdiclass.pas"/>
<Caret Line="354" Column="26" TopLine="345"/>
</Position30>
</JumpHistory> </JumpHistory>
</ProjectSession> </ProjectSession>
<Debugging> <Debugging>
<BreakPoints Count="3"> <BreakPoints Count="1">
<Item1> <Item1>
<Kind Value="bpkSource"/>
<WatchScope Value="wpsLocal"/>
<WatchKind Value="wpkWrite"/>
<Source Value="..\tdiclass.pas"/>
<Line Value="1070"/>
</Item1>
<Item2>
<Kind Value="bpkSource"/>
<WatchScope Value="wpsLocal"/>
<WatchKind Value="wpkWrite"/>
<Source Value="uform2.pas"/>
<Line Value="90"/>
</Item2>
<Item3>
<Kind Value="bpkSource"/> <Kind Value="bpkSource"/>
<WatchScope Value="wpsLocal"/> <WatchScope Value="wpsLocal"/>
<WatchKind Value="wpkWrite"/> <WatchKind Value="wpkWrite"/>
<Source Value="uform1.pas"/> <Source Value="uform1.pas"/>
<Line Value="103"/> <Line Value="103"/>
</Item3> </Item1>
</BreakPoints> </BreakPoints>
</Debugging> </Debugging>
<EditorMacros Count="0"/> <EditorMacros Count="0"/>

View File

@@ -12,7 +12,7 @@ http://wiki.freepascal.org/tdi
8 Installation 8 Installation
9 How to Use 9 How to Use
10 Methods and Properties 10 Methods and Properties
11 Note 11 Changelog
=== 1 - About === === 1 - About ===
@@ -57,6 +57,7 @@ http://www.opensource.org/licenses/lgpl-license.php
- Allows customization of Labels and Images of the Menu Items Tabs - Allows customization of Labels and Images of the Menu Items Tabs
- Allow to close Tabs with Mouse Middle Button - Allow to close Tabs with Mouse Middle Button
- Allows Close All Tabs - Allows Close All Tabs
- Runs internal Form OnActivate, OnDeactivate when changing pages
=== 5 - Download === === 5 - Download ===
@@ -155,3 +156,18 @@ to explain the component
* property FixedPages : Integer * property FixedPages : Integer
Number of initial Pages that cannot be closed. Number of initial Pages that cannot be closed.
=== 11 - ChangeLog ===
[+]: New feature
[*]: Resource modified / improved
[-]: Bug Fix (hopefully)
13/07/2013
[+] Added suport to runs Internal Form OnActivate and OnDeactivate when
changing Pages (by: DSA)
14/11/2013
[-] Better detection for Form Constraint handling on Linux
(by: DSA and Gall� G�bor)

View File

@@ -343,12 +343,18 @@ begin
end ; end ;
procedure TTDIPage.CheckFormAlign ; procedure TTDIPage.CheckFormAlign ;
Var
Maximize: Boolean ;
begin begin
if not Assigned(fsFormInPage) then exit ; if not Assigned(fsFormInPage) then exit ;
Maximize := not (( fsFormInPage.Constraints.MaxWidth <> 0 ) and (fsFormInPage.Width < Width)) ;
if Maximize then
Maximize := not (( fsFormInPage.Constraints.MaxHeight <> 0 ) and (fsFormInPage.Height < Height));
{ If Form has MaxConstrains and doesn't fill all the Screen, Centralize on { If Form has MaxConstrains and doesn't fill all the Screen, Centralize on
TabSheet } TabSheet }
if (fsFormInPage.Width < Width) or (fsFormInPage.Height < Height) then if not Maximize then
begin begin
fsFormInPage.Align := alNone; fsFormInPage.Align := alNone;