home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue46 / packages / AddInPackage / AddInIDEU.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1999-05-05  |  3.3 KB  |  141 lines

  1. unit AddInIDEU;
  2.  
  3. interface
  4.  
  5. procedure Register;
  6.  
  7. implementation
  8.  
  9. uses
  10.   ExptIntf, ToolIntf, Windows, AddInFormU;
  11.  
  12. type
  13.   TAddInIDEHelper = class(TIExpert)
  14.   private
  15.     //The menu bar item, and menu item that we will add in to app
  16.     FAddInItem,
  17.     FBrowserMenuItem: TIMenuItemIntf;
  18.   protected
  19.     //This is the event handler of our new menu item
  20.     procedure BrowserMenuItemClick(Sender: TIMenuItemIntf);
  21.   public
  22.     constructor Create;
  23.     destructor Destroy; override;
  24.     function GetName:        string; override;
  25.     function GetComment:     string; override;
  26.     function GetAuthor:      string; override;
  27.     function GetPage:        string; override;
  28.     function GetGlyph:       HICON;  override;
  29.     function GetStyle: TExpertStyle; override;
  30.     function GetState: TExpertState; override;
  31.     function GetIDString:    string; override;
  32.     function GetMenuText:    string; override;
  33.     procedure Execute;               override;
  34.   end;
  35.  
  36. constructor TAddInIDEHelper.Create;
  37. var
  38.   FMainmenu: TIMainMenuIntf;
  39. begin
  40.   inherited;
  41.     {FAddInItem := NewItem('&Add-In', 0, False, True, nil, 0, 'AddInItem');
  42.     FBrowserMenuItem := NewItem('&Object Browser', 0, False,
  43.       True, BrowserMenuItemClick, 0, 'BrowserMenuItem');
  44.     Application.MainForm.Menu.Items.Add(FAddInItem);
  45.     FAddInItem.Add(FBrowserMenuItem)}
  46.   if Assigned(ToolServices) then
  47.   begin
  48.     FMainMenu := ToolServices.GetMainMenu;
  49.     if Assigned(FMainMenu) then
  50.       try
  51.         FAddInItem := FMainMenu.GetMenuItems.InsertItem(
  52.           FMainMenu.GetMenuItems.GetItemCount-1,
  53.           '&Add-In', '', '', 0, 0, 0, [mfEnabled, mfVisible], nil);
  54.         FBrowserMenuItem := FAddInItem.InsertItem(0, '&Object Browser',
  55.           '', '', 0, 0, 0, [mfEnabled, mfVisible], BrowserMenuItemClick);
  56.       finally
  57.         FMainMenu.Free
  58.       end
  59.   end
  60. end;
  61.  
  62. destructor TAddInIDEHelper.Destroy;
  63. begin
  64.   if Assigned(FBrowserMenuItem) then
  65.   begin
  66.     FBrowserMenuItem.DestroyMenuItem;
  67.     FBrowserMenuItem := nil
  68.   end;
  69.   if Assigned(FAddInItem) then
  70.   begin
  71.     FAddInItem.DestroyMenuItem;
  72.     FAddInItem := nil
  73.   end;
  74.   ObjectBrowserForm.Free;
  75.   inherited Destroy
  76. end;
  77.  
  78. procedure TAddInIDEHelper.BrowserMenuItemClick(Sender: TIMenuItemIntf);
  79. begin
  80.   //When menu item is chosen, instantiate the browser form
  81.   if not Assigned(ObjectBrowserForm) then
  82.     ObjectBrowserForm := TObjectBrowserForm.Create(nil);
  83.   ObjectBrowserForm.Show
  84. end;
  85.  
  86. function TAddInIDEHelper.GetName: string;
  87. begin
  88.   Result := 'Object Browser Menu';
  89. end;
  90.  
  91. function TAddInIDEHelper.GetComment: string;
  92. begin
  93.   Result := '';
  94. end ;
  95.  
  96. function TAddInIDEHelper.GetAuthor: string;
  97. begin
  98.   Result := '';
  99. end ;
  100.  
  101. function TAddInIDEHelper.GetPage: string;
  102. begin
  103.   Result := '';
  104. end;
  105.  
  106. function TAddInIDEHelper.GetGlyph: HICON;
  107. begin
  108.   Result := 0;
  109. end;
  110.  
  111. function TAddInIDEHelper.GetStyle: TExpertStyle;
  112. begin
  113.   Result := esAddIn;
  114. end;
  115.  
  116. function TAddInIDEHelper.GetState: TExpertState;
  117. begin
  118.   Result := [esEnabled];
  119. end;
  120.  
  121. function TAddInIDEHelper.GetIDString: string;
  122. begin
  123.   Result := GetName;
  124. end;
  125.  
  126. function TAddInIDEHelper.GetMenuText: string;
  127. begin
  128.   Result := '';
  129. end ;
  130.  
  131. procedure TAddInIDEHelper.Execute;
  132. begin
  133. end;
  134.  
  135. procedure Register;
  136. begin
  137.   RegisterLibraryExpert(TAddInIDEHelper.Create)
  138. end;
  139.  
  140. end.
  141.