mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-10 20:56:14 +02:00
fixed deleting of collection item in prop editor
git-svn-id: trunk@5813 -
This commit is contained in:
parent
6af56af31a
commit
e28d428309
@ -42,6 +42,7 @@ interface
|
||||
{$I codetools.inc}
|
||||
|
||||
{ $DEFINE IgnoreErrorAfterCursor}
|
||||
{ $DEFINE VerboseGetStringConstBounds}
|
||||
|
||||
uses
|
||||
{$IFDEF MEM_CHECK}
|
||||
@ -1992,11 +1993,11 @@ begin
|
||||
Result:=true;
|
||||
BuildTreeAndGetCleanPos(trAll,CursorPos,CleanCursorPos,[]);
|
||||
{$IFDEF VerboseGetStringConstBounds}
|
||||
DebugLn('TStandardCodeTool.GetStringConstBounds A ',CleanCursorPos,' "',copy(Src,CleanCursorPos-5,5),'" | "',copy(Src,CleanCursorPos,5),'"');
|
||||
DebugLn('TStandardCodeTool.GetStringConstBounds A Start at ',dbgs(CleanCursorPos),' "',copy(Src,CleanCursorPos-5,5),'" | "',copy(Src,CleanCursorPos,5),'"');
|
||||
{$ENDIF}
|
||||
GetCleanPosInfo(-1,CleanCursorPos,ResolveComments,SameArea);
|
||||
{$IFDEF VerboseGetStringConstBounds}
|
||||
DebugLn('TStandardCodeTool.GetStringConstBounds B ',SameArea.StartPos,'-',SameArea.EndPos,' "',copy(Src,SameArea.StartPos,SameArea.EndPos-SameArea.StartPos),'"');
|
||||
DebugLn('TStandardCodeTool.GetStringConstBounds B Same Area: ',dbgs(SameArea.StartPos),'-',dbgs(SameArea.EndPos),' "',copy(Src,SameArea.StartPos,SameArea.EndPos-SameArea.StartPos),'"');
|
||||
{$ENDIF}
|
||||
if (SameArea.EndPos=SameArea.StartPos) or (SameArea.StartPos>SrcLen) then
|
||||
exit;
|
||||
@ -2005,7 +2006,7 @@ begin
|
||||
MoveCursorToCleanPos(SameArea.StartPos);
|
||||
ReadNextAtom;
|
||||
{$IFDEF VerboseGetStringConstBounds}
|
||||
DebugLn('TStandardCodeTool.GetStringConstBounds read til end of string ',GetAtom);
|
||||
DebugLn('TStandardCodeTool.GetStringConstBounds read til end of string Atom=',GetAtom);
|
||||
{$ENDIF}
|
||||
CurrentToken:=GetCurrentTokenType;
|
||||
if (CurrentToken=scatNone) then exit;
|
||||
@ -2016,7 +2017,7 @@ begin
|
||||
LastToken:=CurrentToken;
|
||||
CurrentToken:=GetCurrentTokenType;
|
||||
{$IFDEF VerboseGetStringConstBounds}
|
||||
DebugLn('TStandardCodeTool.GetStringConstBounds Read Forward: ',GetAtom,' EndCleanPos=',EndCleanPos,
|
||||
DebugLn('TStandardCodeTool.GetStringConstBounds Read Forward: ',GetAtom,' EndCleanPos=',dbgs(EndCleanPos),
|
||||
' LastToken=',StrConstTokenTypeName[LastToken],
|
||||
' CurrentToken=',StrConstTokenTypeName[CurrentToken],
|
||||
' ',StrConstTokenTypeName[GetCurrentTokenType]);
|
||||
@ -2047,7 +2048,8 @@ begin
|
||||
if not (LastToken in [scatPlus, scatPoint]) then exit;
|
||||
|
||||
scatPoint:
|
||||
if not (LastToken in [scatIdent, scatUp, scatRoundBracketClose]) then
|
||||
if not (LastToken in [scatIdent, scatUp, scatRoundBracketClose,
|
||||
scatEdgedBracketClose]) then
|
||||
exit;
|
||||
|
||||
scatEdgedBracketOpen,scatRoundBracketOpen:
|
||||
@ -2072,7 +2074,7 @@ begin
|
||||
StartCleanPos:=CurPos.StartPos;
|
||||
ReadPriorAtom;
|
||||
{$IFDEF VerboseGetStringConstBounds}
|
||||
DebugLn('TStandardCodeTool.GetStringConstBounds Read backward: ',GetAtom,' StartCleanPos=',StartCleanPos);
|
||||
DebugLn('TStandardCodeTool.GetStringConstBounds Read backward: ',GetAtom,' StartCleanPos=',dbgs(StartCleanPos));
|
||||
{$ENDIF}
|
||||
LastToken:=CurrentToken;
|
||||
CurrentToken:=GetCurrentTokenType;
|
||||
@ -2116,7 +2118,7 @@ begin
|
||||
|
||||
// convert start and end position
|
||||
{$IFDEF VerboseGetStringConstBounds}
|
||||
DebugLn('TStandardCodeTool.GetStringConstBounds END "',copy(Src,StartCleanPos,EndCleanPos-StartCleanPos),'" StringConstantFound=',StringConstantFound);
|
||||
DebugLn('TStandardCodeTool.GetStringConstBounds END "',copy(Src,StartCleanPos,EndCleanPos-StartCleanPos),'" StringConstantFound=',dbgs(StringConstantFound));
|
||||
{$ENDIF}
|
||||
if not StringConstantFound then begin
|
||||
EndCleanPos:=StartCleanPos;
|
||||
|
@ -26,6 +26,8 @@ resourcestring
|
||||
|
||||
oiscAdd = '&Add';
|
||||
oiscDelete = '&Delete';
|
||||
oisConfirmDelete = 'Confirm delete';
|
||||
oisDeleteItem = 'Delete item %s%s%s?';
|
||||
oisUnknown = 'Unknown';
|
||||
oisObject = 'Object';
|
||||
oisClass = 'Class';
|
||||
|
@ -3322,7 +3322,7 @@ Type
|
||||
procedure MoveDownButtonClick(Sender: TObject);
|
||||
procedure MoveUpButtonClick(Sender: TObject);
|
||||
protected
|
||||
CollectionList : TListBox;
|
||||
CollectionListBox: TListBox;
|
||||
ButtonPanel: TPanel;
|
||||
AddButton: TSpeedButton;
|
||||
DeleteButton: TSpeedButton;
|
||||
@ -3334,13 +3334,144 @@ Type
|
||||
Collection: TCollection;
|
||||
PersistentName: string;
|
||||
PropertyName: string;
|
||||
Procedure PropagateList;
|
||||
procedure FillCollectionListBox;
|
||||
Constructor Create(TheOwner: TComponent); Override;
|
||||
procedure SelectInObjectInspector(UnselectAll: boolean);
|
||||
end;
|
||||
|
||||
const
|
||||
CollectionForm : TCollectionPropertyEditorForm = nil;
|
||||
|
||||
procedure TCollectionPropertyEditorForm.ListClick(Sender: TObject);
|
||||
begin
|
||||
UpdateButtons;
|
||||
UpdateCaption;
|
||||
SelectInObjectInspector(false);
|
||||
end;
|
||||
|
||||
procedure TCollectionPropertyEditorForm.AddClick(Sender: TObject);
|
||||
begin
|
||||
Collection.Add;
|
||||
FillCollectionListBox;
|
||||
end;
|
||||
|
||||
procedure TCollectionPropertyEditorForm.DeleteClick(Sender: TObject);
|
||||
var
|
||||
I : Integer;
|
||||
NewItemIndex: Integer;
|
||||
begin
|
||||
I := CollectionListBox.ItemIndex;
|
||||
if (i>=0) and (i<Collection.Count) then begin
|
||||
if MessageDlg(oisConfirmDelete,
|
||||
Format(oisDeleteItem, ['"', Collection.Items[i].DisplayName, '"']),
|
||||
mtConfirmation,[mbYes,mbNo],0) = mrYes then
|
||||
begin
|
||||
// select other item, or unselect
|
||||
NewItemIndex:=i+1;
|
||||
while (NewItemIndex<CollectionListBox.Items.Count)
|
||||
and (CollectionListBox.Selected[NewItemIndex]) do
|
||||
inc(NewItemIndex);
|
||||
if NewItemIndex=CollectionListBox.Items.Count then begin
|
||||
NewItemIndex:=0;
|
||||
while (NewItemIndex<i)
|
||||
and (CollectionListBox.Selected[NewItemIndex]) do
|
||||
inc(NewItemIndex);
|
||||
if NewItemIndex=i then NewItemIndex:=-1;
|
||||
end;
|
||||
CollectionListBox.ItemIndex := -1;
|
||||
CollectionListBox.Items.Delete(i);
|
||||
if NewItemIndex>i then dec(NewItemIndex);
|
||||
//debugln('TCollectionPropertyEditorForm.DeleteClick A NewItemIndex=',dbgs(NewItemIndex),' ItemIndex=',dbgs(CollectionListBox.ItemIndex),' CollectionListBox.Items.Count=',dbgs(CollectionListBox.Items.Count),' Collection.Count=',dbgs(Collection.Count));
|
||||
// unselect all items in OI (collections can act strange on delete)
|
||||
SelectInObjectInspector(true);
|
||||
// now delete
|
||||
Collection.Items[i].Free;
|
||||
// update listbox after whatever happened
|
||||
FillCollectionListBox;
|
||||
// set NewItemIndex
|
||||
if NewItemIndex<CollectionListBox.Items.Count then begin
|
||||
CollectionListBox.ItemIndex:=NewItemIndex;
|
||||
SelectInObjectInspector(false);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
UpdateButtons;
|
||||
end;
|
||||
|
||||
procedure TCollectionPropertyEditorForm.MoveDownButtonClick(Sender: TObject);
|
||||
var
|
||||
i: LongInt;
|
||||
begin
|
||||
i:=CollectionListBox.ItemIndex;
|
||||
if i>=Collection.Count-1 then exit;
|
||||
Collection.Items[i].Index:=i+1;
|
||||
CollectionListBox.ItemIndex:=i+1;
|
||||
FillCollectionListBox;
|
||||
end;
|
||||
|
||||
procedure TCollectionPropertyEditorForm.MoveUpButtonClick(Sender: TObject);
|
||||
var
|
||||
i: LongInt;
|
||||
begin
|
||||
i:=CollectionListBox.ItemIndex;
|
||||
if i<=0 then exit;
|
||||
Collection.Items[i].Index:=i-1;
|
||||
CollectionListBox.ItemIndex:=i-1;
|
||||
FillCollectionListBox;
|
||||
end;
|
||||
|
||||
procedure TCollectionPropertyEditorForm.UpdateCaption;
|
||||
var
|
||||
NewCaption: String;
|
||||
begin
|
||||
//I think to match Delphi this should be formated like
|
||||
//"Editing ComponentName.PropertyName[Index]"
|
||||
NewCaption:= 'Editing ' + PersistentName + '.' + PropertyName;
|
||||
If CollectionListBox.ItemIndex > -1 then
|
||||
NewCaption := NewCaption + '[' +
|
||||
IntToStr(CollectionListBox.ItemIndex) + ']';
|
||||
Caption:=NewCaption;
|
||||
end;
|
||||
|
||||
procedure TCollectionPropertyEditorForm.UpdateButtons;
|
||||
var
|
||||
i: LongInt;
|
||||
begin
|
||||
i:=CollectionListBox.ItemIndex;
|
||||
DeleteButton.Enabled:= i > -1;
|
||||
MoveUpButton.Enabled:=i>0;
|
||||
MoveDownButton.Enabled:=(i>=0) and (i<Collection.Count-1);
|
||||
end;
|
||||
|
||||
procedure TCollectionPropertyEditorForm.FillCollectionListBox;
|
||||
var
|
||||
I : Longint;
|
||||
CurItem: String;
|
||||
Cnt: Integer;
|
||||
begin
|
||||
CollectionListBox.Items.BeginUpdate;
|
||||
if Collection<>nil then
|
||||
Cnt:=Collection.Count
|
||||
else
|
||||
Cnt:=0;
|
||||
// add or replace list items
|
||||
for I:=0 to Cnt - 1 do begin
|
||||
CurItem:=Collection.Items[I].DisplayName;
|
||||
if i>=CollectionListBox.Items.Count then
|
||||
CollectionListBox.Items.Add(CurItem)
|
||||
else
|
||||
CollectionListBox.Items[I]:=CurItem;
|
||||
end;
|
||||
// delete unneeded list items
|
||||
while CollectionListBox.Items.Count>Cnt do begin
|
||||
CollectionListBox.Items.Delete(CollectionListBox.Items.Count-1);
|
||||
end;
|
||||
CollectionListBox.Items.EndUpdate;
|
||||
|
||||
UpdateButtons;
|
||||
UpdateCaption;
|
||||
end;
|
||||
|
||||
Constructor TCollectionPropertyEditorForm.Create(TheOwner : TComponent);
|
||||
var
|
||||
x: Integer;
|
||||
@ -3405,8 +3536,8 @@ begin
|
||||
inc(x,w);
|
||||
end;
|
||||
|
||||
CollectionList := TListBox.Create(Self);
|
||||
With CollectionList do begin
|
||||
CollectionListBox := TListBox.Create(Self);
|
||||
With CollectionListBox do begin
|
||||
Parent:= Self;
|
||||
Align:= alClient;
|
||||
// MultiSelect:= true;
|
||||
@ -3414,126 +3545,26 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCollectionPropertyEditorForm.UpdateCaption;
|
||||
procedure TCollectionPropertyEditorForm.SelectInObjectInspector(
|
||||
UnselectAll: boolean);
|
||||
var
|
||||
NewCaption: String;
|
||||
begin
|
||||
//I think to match Delphi this should be formated like
|
||||
//"Editing ComponentName.PropertyName[Index]"
|
||||
NewCaption:= 'Editing ' + PersistentName + '.' + PropertyName;
|
||||
If CollectionList.ItemIndex > -1 then
|
||||
NewCaption := NewCaption + '[' +
|
||||
IntToStr(CollectionList.ItemIndex) + ']';
|
||||
Caption:=NewCaption;
|
||||
end;
|
||||
|
||||
procedure TCollectionPropertyEditorForm.UpdateButtons;
|
||||
var
|
||||
i: LongInt;
|
||||
begin
|
||||
i:=CollectionList.ItemIndex;
|
||||
DeleteButton.Enabled:= i > -1;
|
||||
MoveUpButton.Enabled:=i>0;
|
||||
MoveDownButton.Enabled:=(i>=0) and (i<Collection.Count-1);
|
||||
end;
|
||||
|
||||
procedure TCollectionPropertyEditorForm.PropagateList;
|
||||
var
|
||||
I : Longint;
|
||||
CurItem: String;
|
||||
Cnt: Integer;
|
||||
begin
|
||||
CollectionList.Items.BeginUpdate;
|
||||
if Collection<>nil then
|
||||
Cnt:=Collection.Count
|
||||
else
|
||||
Cnt:=0;
|
||||
// add or replace list items
|
||||
for I:=0 to Cnt - 1 do begin
|
||||
CurItem:=Collection.Items[I].DisplayName;
|
||||
if i>=CollectionList.Items.Count then
|
||||
CollectionList.Items.Add(CurItem)
|
||||
else
|
||||
CollectionList.Items[I]:=CurItem;
|
||||
end;
|
||||
// delete unneeded list items
|
||||
while CollectionList.Items.Count>Cnt do begin
|
||||
CollectionList.Items.Delete(CollectionList.Items.Count-1);
|
||||
end;
|
||||
CollectionList.Items.EndUpdate;
|
||||
|
||||
UpdateButtons;
|
||||
UpdateCaption;
|
||||
end;
|
||||
|
||||
procedure TCollectionPropertyEditorForm.MoveDownButtonClick(Sender: TObject);
|
||||
var
|
||||
i: LongInt;
|
||||
begin
|
||||
i:=CollectionList.ItemIndex;
|
||||
if i>=Collection.Count-1 then exit;
|
||||
Collection.Items[i].Index:=i+1;
|
||||
CollectionList.ItemIndex:=i+1;
|
||||
PropagateList;
|
||||
end;
|
||||
|
||||
procedure TCollectionPropertyEditorForm.MoveUpButtonClick(Sender: TObject);
|
||||
var
|
||||
i: LongInt;
|
||||
begin
|
||||
i:=CollectionList.ItemIndex;
|
||||
if i<=0 then exit;
|
||||
Collection.Items[i].Index:=i-1;
|
||||
CollectionList.ItemIndex:=i-1;
|
||||
PropagateList;
|
||||
end;
|
||||
|
||||
procedure TCollectionPropertyEditorForm.ListClick(Sender: TObject);
|
||||
var
|
||||
NewSelection: TPersistentSelectionList;
|
||||
i: Integer;
|
||||
NewSelection: TPersistentSelectionList;
|
||||
begin
|
||||
UpdateButtons;
|
||||
UpdateCaption;
|
||||
// select in OI
|
||||
NewSelection:=TPersistentSelectionList.Create;
|
||||
try
|
||||
for i:=0 to CollectionList.Items.Count-1 do
|
||||
if CollectionList.Selected[i] then
|
||||
NewSelection.Add(Collection.Items[i]);
|
||||
if not UnselectAll then begin
|
||||
for i:=0 to CollectionListBox.Items.Count-1 do
|
||||
if CollectionListBox.Selected[i] then
|
||||
NewSelection.Add(Collection.Items[i]);
|
||||
end;
|
||||
GlobalDesignHook.SetSelection(NewSelection);
|
||||
finally
|
||||
NewSelection.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCollectionPropertyEditorForm.AddClick(Sender: TObject);
|
||||
begin
|
||||
Collection.Add;
|
||||
PropagateList;
|
||||
end;
|
||||
|
||||
procedure TCollectionPropertyEditorForm.DeleteClick(Sender: TObject);
|
||||
var
|
||||
I : Integer;
|
||||
begin
|
||||
I := CollectionList.ItemIndex;
|
||||
if (i>=0) and (i<Collection.Count) then begin
|
||||
if MessageDlg('Confirm delete',
|
||||
'Delete item "'+Collection.Items[i].DisplayName+'"?',
|
||||
mtConfirmation,[mbYes,mbNo],0) = mrYes then
|
||||
begin
|
||||
Collection.Items[i].Free;
|
||||
PropagateList;
|
||||
If I >= CollectionList.Items.Count then
|
||||
I := I - 1;
|
||||
If I > -1 then
|
||||
CollectionList.ItemIndex := I;
|
||||
end;
|
||||
end;
|
||||
UpdateButtons;
|
||||
end;
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
function TCollectionPropertyEditor.ReadElement(Index: integer): TPersistent;
|
||||
@ -3611,7 +3642,7 @@ begin
|
||||
PropertyName := GetPropInfo^.Name;
|
||||
PersistentName := '';
|
||||
Caption := 'Editing ' + GetPropInfo^.Name;
|
||||
PropagateList;
|
||||
FillCollectionListBox;
|
||||
Show;
|
||||
end;
|
||||
end;
|
||||
|
@ -947,8 +947,8 @@ type
|
||||
procedure SetEnabled(Value: Boolean); virtual;
|
||||
procedure SetHint(const Value: String); virtual;
|
||||
procedure SetName(const Value: TComponentName); override;
|
||||
procedure SetParent(AParent: TWinControl); virtual;
|
||||
Procedure SetParentComponent(Value: TComponent); override;
|
||||
procedure SetParent(NewParent: TWinControl); virtual;
|
||||
Procedure SetParentComponent(NewParentComponent: TComponent); override;
|
||||
procedure WndProc(var TheMessage: TLMessage); virtual;
|
||||
procedure CaptureChanged; virtual;
|
||||
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
|
||||
@ -1698,7 +1698,7 @@ type
|
||||
FGrabbersOnTop: Boolean;
|
||||
FFlags: TDockTreeFlags;
|
||||
//FOldRect: TRect;
|
||||
FOldWndProc: TWndMethod;
|
||||
//FOldWndProc: TWndMethod;
|
||||
//FReplacementZone: TDockZone;
|
||||
//FScaleBy: Double;
|
||||
//FShiftScaleOrient: TDockOrientation;
|
||||
@ -1711,16 +1711,15 @@ type
|
||||
FTopXYLimit: Integer;
|
||||
FUpdateCount: Integer;
|
||||
//FVersion: Integer;
|
||||
procedure WindowProc(var AMessage: TLMessage);
|
||||
procedure DeleteZone(Zone: TDockZone);
|
||||
protected
|
||||
procedure AdjustDockRect(AControl: TControl; var ARect: TRect); virtual;
|
||||
procedure BeginUpdate; override;
|
||||
procedure EndUpdate; override;
|
||||
procedure GetControlBounds(AControl: TControl; var CtlBounds: TRect); override;
|
||||
procedure GetControlBounds(AControl: TControl; var ControlBounds: TRect); override;
|
||||
function HitTest(const MousePos: TPoint; var HTFlag: Integer): TControl; virtual;
|
||||
procedure InsertControl(AControl: TControl; InsertAt: TAlign;
|
||||
DropCtl: TControl); override;
|
||||
DropControl: TControl); override;
|
||||
procedure LoadFromStream(SrcStream: TStream); override;
|
||||
procedure PaintDockFrame(ACanvas: TCanvas; AControl: TControl;
|
||||
const ARect: TRect); virtual;
|
||||
@ -2406,6 +2405,9 @@ end.
|
||||
{ =============================================================================
|
||||
|
||||
$Log$
|
||||
Revision 1.236 2004/08/18 09:08:33 mattias
|
||||
fixed deleting of collection item in prop editor
|
||||
|
||||
Revision 1.235 2004/08/16 20:40:26 mattias
|
||||
published TForm.SessionProperties, added property editor and activated the storage components for fpc 1.9.5 because of rttiutils
|
||||
|
||||
|
@ -2493,16 +2493,28 @@ begin
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Procedure TControl.SetParent(AParent : TWinControl);
|
||||
Procedure TControl.SetParent(NewParent : TWinControl);
|
||||
------------------------------------------------------------------------------}
|
||||
Procedure TControl.SetParent(AParent : TWinControl);
|
||||
Procedure TControl.SetParent(NewParent: TWinControl);
|
||||
begin
|
||||
if FParent = AParent then exit;
|
||||
CheckNewParent(AParent);
|
||||
if FParent = NewParent then exit;
|
||||
CheckNewParent(NewParent);
|
||||
if FParent <> nil then FParent.RemoveControl(Self);
|
||||
if AParent <> nil then AParent.InsertControl(Self);
|
||||
if NewParent <> nil then NewParent.InsertControl(Self);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
TControl SetParentComponent
|
||||
------------------------------------------------------------------------------}
|
||||
Procedure TControl.SetParentComponent(NewParentComponent: TComponent);
|
||||
Begin
|
||||
if (NewParentComponent is TWinControl) then
|
||||
SetParent(TWinControl(NewParentComponent));
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
procedure TControl.SetParentColor(Value : Boolean);
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TControl.SetParentColor(Value : Boolean);
|
||||
begin
|
||||
if FParentColor <> Value then
|
||||
@ -2513,18 +2525,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
{------------------------------------------------------------------------------}
|
||||
{ TControl SetParentComponent }
|
||||
{------------------------------------------------------------------------------}
|
||||
Procedure TControl.SetParentComponent(Value : TComponent);
|
||||
Begin
|
||||
if (Value is TWinControl) then SetParent(TWinControl(Value));
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------}
|
||||
{ TControl SetParentShowHint }
|
||||
{------------------------------------------------------------------------------}
|
||||
{------------------------------------------------------------------------------
|
||||
TControl SetParentShowHint
|
||||
------------------------------------------------------------------------------}
|
||||
Procedure TControl.SetParentShowHint(Value : Boolean);
|
||||
Begin
|
||||
if FParentShowHint <> Value
|
||||
@ -2798,7 +2801,7 @@ begin
|
||||
HostDockSite.DockManager.GetControlBounds(Self,NewBounds);
|
||||
NewBounds.TopLeft:=HostDockSite.ControlToScreen(NewBounds.TopLeft);
|
||||
end else begin
|
||||
NewBounds.TopLeft := ControlOrigin;
|
||||
NewBounds.TopLeft:=ControlOrigin;
|
||||
end;
|
||||
NewBounds := Bounds(NewBounds.Left,NewBounds.Top,UndockWidth,UndockHeight);
|
||||
Result := ManualFloat(NewBounds);
|
||||
@ -2849,6 +2852,7 @@ begin
|
||||
// create new float dock site and dock this control into it.
|
||||
if Result then begin
|
||||
FloatHost := CreateFloatingDockSite(TheScreenRect);
|
||||
//debugln('TControl.ManualFloat A '+Name,':',ClassName,' ',dbgs(TheScreenRect));
|
||||
if FloatHost<>nil then
|
||||
Dock(FloatHost,Rect(0,0,FloatHost.ClientWidth,FloatHost.ClientHeight))
|
||||
else
|
||||
@ -3226,6 +3230,9 @@ end;
|
||||
|
||||
{ =============================================================================
|
||||
$Log$
|
||||
Revision 1.209 2004/08/18 09:08:34 mattias
|
||||
fixed deleting of collection item in prop editor
|
||||
|
||||
Revision 1.208 2004/08/17 19:01:36 mattias
|
||||
gtk intf now ignores size notifications of unrealized widgets
|
||||
|
||||
|
@ -21,13 +21,6 @@
|
||||
const
|
||||
DefaultDockGrabberSize = 12;
|
||||
|
||||
procedure TDockTree.WindowProc(var AMessage: TLMessage);
|
||||
begin
|
||||
// ToDo
|
||||
if Assigned(FOldWndProc) then
|
||||
FOldWndProc(AMessage);
|
||||
end;
|
||||
|
||||
procedure TDockTree.DeleteZone(Zone: TDockZone);
|
||||
begin
|
||||
// ToDo
|
||||
@ -57,7 +50,8 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TDockTree.GetControlBounds(AControl: TControl; var CtlBounds: TRect);
|
||||
procedure TDockTree.GetControlBounds(AControl: TControl;
|
||||
var ControlBounds: TRect);
|
||||
begin
|
||||
// ToDo
|
||||
end;
|
||||
@ -70,7 +64,7 @@ begin
|
||||
end;
|
||||
|
||||
procedure TDockTree.InsertControl(AControl: TControl; InsertAt: TAlign;
|
||||
DropCtl: TControl);
|
||||
DropControl: TControl);
|
||||
begin
|
||||
// ToDo
|
||||
end;
|
||||
@ -141,18 +135,10 @@ begin
|
||||
finally
|
||||
EndUpdate;
|
||||
end;
|
||||
if not (csDesigning in FDockSite.ComponentState) then begin
|
||||
FOldWndProc := FDockSite.WindowProc;
|
||||
FDockSite.WindowProc := @WindowProc;
|
||||
end;
|
||||
end;
|
||||
|
||||
destructor TDockTree.Destroy;
|
||||
begin
|
||||
if FOldWndProc=@WindowProc then begin
|
||||
FDockSite.WindowProc:=FOldWndProc;
|
||||
FOldWndProc:=nil;
|
||||
end;
|
||||
DeleteZone(FTopZone);
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
@ -4439,7 +4439,7 @@ begin
|
||||
else gObject := AGTKObject;
|
||||
if gObject = nil then Exit;
|
||||
|
||||
// gFixed is the widget with the client area (e.g. TGroupBox, TForm have this)
|
||||
// gFixed is the widget with the client area (e.g. TGroupBox, TCustomForm have this)
|
||||
gFixed := PGTKObject(GetFixedWidget(gObject));
|
||||
if gFixed = nil then gFixed := gObject;
|
||||
|
||||
@ -6954,7 +6954,7 @@ begin
|
||||
UntransientWindow(PGtkWindow(SenderWIdget));
|
||||
end;
|
||||
end;
|
||||
//if Sender is TForm then
|
||||
//if Sender is TCustomForm then
|
||||
// DebugLn('[TGtkWidgetSet.ShowHide] END ',Sender.ClassName,' Window=',FormWidget^.Window<>nil);
|
||||
end;
|
||||
|
||||
@ -9250,6 +9250,9 @@ end;
|
||||
{ =============================================================================
|
||||
|
||||
$Log$
|
||||
Revision 1.528 2004/08/18 09:08:34 mattias
|
||||
fixed deleting of collection item in prop editor
|
||||
|
||||
Revision 1.527 2004/08/17 19:01:36 mattias
|
||||
gtk intf now ignores size notifications of unrealized widgets
|
||||
|
||||
@ -10566,7 +10569,7 @@ end;
|
||||
MG: started mouse bugfix and completed Makefile.fpc
|
||||
|
||||
Revision 1.125 2002/05/16 15:42:54 lazarus
|
||||
MG: fixed TForm ShowHide repositioning
|
||||
MG: fixed TCustomForm ShowHide repositioning
|
||||
|
||||
Revision 1.124 2002/05/15 05:58:17 lazarus
|
||||
MG: added TMainMenu.Parent
|
||||
|
Loading…
Reference in New Issue
Block a user