File: frmexploremenu.pas

package info (click to toggle)
lazarus 2.0.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 214,460 kB
  • sloc: pascal: 1,862,622; xml: 265,709; cpp: 56,595; sh: 3,008; java: 609; makefile: 535; perl: 297; sql: 222; ansic: 137
file content (140 lines) | stat: -rw-r--r-- 3,112 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
{ Copyright (C) 2005  Michael Van Canneyt

  This library is free software; you can redistribute it and/or modify it
  under the terms of the GNU Library General Public License as published by
  the Free Software Foundation; either version 2 of the License, or (at your
  option) any later version.

  This program is distributed in the hope that it will be useful, but WITHOUT
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
  for more details.

  You should have received a copy of the GNU Library General Public License
  along with this library; if not, write to the Free Software Foundation,
  Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1335, USA.
}
unit frmExploreMenu;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ComCtrls,
  StdCtrls, Buttons, menuintf, ExtCtrls;

type

  { TExploreIDEMenuForm }

  TExploreIDEMenuForm = class(TForm)
    BCLose: TBitBtn;
    LTree: TLabel;
    LPAth: TMemo;
    Splitter1: TSplitter;
    TVIDEMenu: TTreeView;
    procedure FormCreate(Sender: TObject);
    procedure TVIDEMenuChange(Sender: TObject; Node: TTreeNode);
  private
    { private declarations }
     procedure AddMenuItem(ParentNode : TTreeNode;Item : TIDEMenuItem);
  public
    { public declarations }
  end; 

var
  ExploreIDEMenuForm: TExploreIDEMenuForm;

Procedure Register;

implementation

{$R *.lfm}

Const
  SExploreIDEMEnu = 'ExploreIDEMEnu';
  
Resourcestring
  SExploreIDEMenUCaption = 'Explore IDE menus ...';
  SSelectedPath = 'Path of selected item: ';
  
Procedure ShowMenu(Sender : TObject);

begin
  if Sender=nil then ;
  With TExploreIDEMenuForm.Create(Application) do
    try
      ShowModal;
    Finally
      Free;
    end;
end;

Procedure Register;

begin
  RegisterIDEMenuCommand(itmViewSecondaryWindows,SExploreIDEMEnu,
                         SExploreIDEMenuCaption,nil,@ShowMenu,nil,'');
end;


{ TExploreIDEMenuForm }

procedure TExploreIDEMenuForm.FormCreate(Sender: TObject);

Var
  I : Integer;

begin
  if Sender=nil then ;
  With TVIDEMenu.Items do
    begin
    BeginUpdate;
    Try
      Clear;
      For I:=0 to IDEMenuRoots.Count-1 do
        AddMenuItem(Nil,IDEMenuRoots[I]);
    Finally
      EndUpdate;
    end;
    end;
end;

procedure TExploreIDEMenuForm.TVIDEMenuChange(Sender: TObject; Node: TTreeNode);

Var
  N : TTreeNode;

begin
  if Sender=nil then ;
  if Node=nil then ;
  N:=TVIDEMenu.Selected;
  If Assigned(N) and Assigned(N.Data) then
    With TIDEMenuItem(N.Data) do
      LPath.Text:=SSelectedPath+GetPath;
end;

procedure TExploreIDEMenuForm.AddMenuItem(ParentNode : TTreeNode; Item : TIDEMenuItem);

Var
  N : TTreeNode;
  I : Integer;
  Sec : TIDEMenuSection;
  
begin
  With Item do
    begin
    N:=TVIDEMenu.Items.AddChild(ParentNode,Format('%s (%s)',[Caption,Name]));
    N.Data:=Item;
    end;
  if Item is TIDEMenuSection then
    begin
    Sec:=(Item as TIDEMenuSection);
    For I:=0 to Sec.Count-1 do
      AddMenuItem(N,Sec.Items[I]);
    end;
end;

end.