I put code-explorer and object-inspector in PageCtrl and it will automatically bring to front what you selected. See screenshot above.
If you want it take to your code than here is what I made:
1. In Formular I created Pacecontrol (pcInspectors) with 2 tabsheets(tsObjInspector, tsCodeExplorer) and placed it where pnObjectInspector was.
2. I placed pnObjectInspector in to tsObjInspector with aligned:=alCLient property
3. I placed pnCodeExplorer in to tsCodeExplorer with aligned:=alCLient property.
4. Splitter1 between pnCodeExplorer and source-editor deleted, because it doesn't needed more.
5. In source-file:
procedure TKZLazDesktopInterface.ScreenActiveFormChange(Sender: TObject);
.......
if IsSourceEditor(Screen.ActiveForm) then
begin
SetupLazForm(Screen.ActiveForm, pnCodeEditor);
pcCorpo.ActivePageIndex := 0;
LINE ~870:
pcInspectors.ActivePage:=tsCodeExplorer;//suny, added for pcInspectors
if SourceNotebook.OnActivate <> @SourceNotebookActive then
...
if IsCodeExplorerView(Screen.ActiveForm) then
begin
//spCodeExplorer.AnchorSplitter(akRight, pnCodeExplorer);
pnCodeExplorer.Visible := True;
LINE ~935
//suny for pcInspectors deleted: Splitter1.Visible := True;
....
end;
pcCorpo.ActivePage := tsFormEditor;
LINE ~1030
pcInspectors.ActivePage:=tsObjInspector;//suny, added for pcInspectors
end;
............................
procedure TKZLazDesktopInterface.UpdateFromOptions;
begin
if LoadCFG('Layout', 'ObjectInspectorPanel', 'right') = 'left' then
begin
LINE ~1398:
pcInspectors.Align := alLeft; //suny, changed for pcInspectors, old was: pnObjectInspector.Align := alLeft;
spObjectInspector.Align := alLeft; //suny, added for pcInspectors, splitter was not aligned
spObjectInspector.Left:=pcInspectors.Left+pcInspectors.Width+2; //suny, added for pcInspectors, splitter was not aligned
//spObjectInspector.AnchorSplitter(akRight, pnCorpo);
pnFindComponent.Align := alLeft;
end
else
begin
LINE ~1498:
pcInspectors.Align := alRight; //suny, changed for pcInspectors, old was: pnObjectInspector.Align := alRight;
spObjectInspector.Align := alRight; //suny, added for pcInspectors, splitter was not aligned
spObjectInspector.Left:=pcInspectors.Left-spObjectInspector.Width-2; //suny, added for pcInspectors, splitter was not aligned
//spObjectInspector.AnchorSplitter(akLeft, pnCorpo);
pnFindComponent.Align := alRight;
end;
Also I uploaded 2 changed files, if you need it.
RaphaelZ if you take my code parts to your svn, you can remove all my comments. I make it to know what i changed.
Screenshots: