mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-11-04 06:39:31 +01:00 
			
		
		
		
	
							parent
							
								
									ee2a4b6481
								
							
						
					
					
						commit
						c426de02a7
					
				@ -303,7 +303,7 @@ begin
 | 
			
		||||
    exit;
 | 
			
		||||
  end;
 | 
			
		||||
  fFillingToc := True;
 | 
			
		||||
  fContentsTree.Visible := False;
 | 
			
		||||
  //fContentsTree.Visible := False;
 | 
			
		||||
  fContentsPanel.Caption := 'Table of Contents Loading. Please Wait...';
 | 
			
		||||
  Application.ProcessMessages;
 | 
			
		||||
  fChm := TChmReader(Data);
 | 
			
		||||
@ -705,7 +705,7 @@ begin
 | 
			
		||||
      if (Length(DocURL) > 0) and (DocURL[1] <> '/') then
 | 
			
		||||
        Insert('/', DocURL, 1);
 | 
			
		||||
      if DocTitle = '' then
 | 
			
		||||
        Doctitle := 'untitled';
 | 
			
		||||
        DocTitle := 'untitled';
 | 
			
		||||
      ListItem := fSearchResults.Items.Add;
 | 
			
		||||
      ListItem.Caption := DocTitle;
 | 
			
		||||
      ListItem.Data := fChms.Chm[i];
 | 
			
		||||
 | 
			
		||||
@ -97,6 +97,7 @@
 | 
			
		||||
    <PathDelim Value="\"/>
 | 
			
		||||
    <SearchPaths>
 | 
			
		||||
      <Libraries Value="\emul\linux\x86\lib\;\emul\linux\x86\usr\lib32\"/>
 | 
			
		||||
      <OtherUnitFiles Value="..\..\..\..\fpc\packages\chm\src\"/>
 | 
			
		||||
      <SrcPath Value="$(LazarusDir)\lcl\;$(LazarusDir)\lcl\interfaces\$(LCLWidgetType)\"/>
 | 
			
		||||
    </SearchPaths>
 | 
			
		||||
    <Parsing>
 | 
			
		||||
 | 
			
		||||
@ -26,7 +26,7 @@ uses
 | 
			
		||||
  Controls,
 | 
			
		||||
  Dialogs,
 | 
			
		||||
  Forms
 | 
			
		||||
  { add your units here }, TurboPowerIPro, chmpopup, lhelpcontrolpkg, lhelpcore;
 | 
			
		||||
  { add your units here }, SimpleIPC, TurboPowerIPro, chmpopup, lhelpcontrolpkg, lhelpcore;
 | 
			
		||||
 | 
			
		||||
var
 | 
			
		||||
 X: Integer;
 | 
			
		||||
@ -60,6 +60,15 @@ begin
 | 
			
		||||
    end;
 | 
			
		||||
  Application.CreateForm(THelpForm, HelpForm);
 | 
			
		||||
  Application.CreateForm(THelpPopupForm, HelpPopupForm);
 | 
			
		||||
  try
 | 
			
		||||
  Application.Run;
 | 
			
		||||
  except
 | 
			
		||||
    // try to remove stale names pipes so that a new instance can use them
 | 
			
		||||
    if IPCServer <> nil then
 | 
			
		||||
    try
 | 
			
		||||
    FreeAndNil(IPCServer);
 | 
			
		||||
    except
 | 
			
		||||
    end;
 | 
			
		||||
  end;
 | 
			
		||||
end.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ object HelpForm: THelpForm
 | 
			
		||||
  Width = 758
 | 
			
		||||
  ActiveControl = Panel1
 | 
			
		||||
  Caption = 'LHelp'
 | 
			
		||||
  ClientHeight = 515
 | 
			
		||||
  ClientHeight = 512
 | 
			
		||||
  ClientWidth = 758
 | 
			
		||||
  Icon.Data = {
 | 
			
		||||
    7E04000000000100010010100000010020006804000016000000280000001000
 | 
			
		||||
@ -49,9 +49,11 @@ object HelpForm: THelpForm
 | 
			
		||||
  Menu = MainMenu1
 | 
			
		||||
  OnClose = FormClose
 | 
			
		||||
  OnCreate = FormCreate
 | 
			
		||||
  OnKeyUp = FormKeyUp
 | 
			
		||||
  Position = poScreenCenter
 | 
			
		||||
  ShowInTaskBar = stAlways
 | 
			
		||||
  LCLVersion = '0.9.29'
 | 
			
		||||
  Visible = True
 | 
			
		||||
  object Panel1: TPanel
 | 
			
		||||
    Left = 0
 | 
			
		||||
    Height = 32
 | 
			
		||||
@ -242,7 +244,7 @@ object HelpForm: THelpForm
 | 
			
		||||
  end
 | 
			
		||||
  object PageControl: TPageControl
 | 
			
		||||
    Left = 0
 | 
			
		||||
    Height = 483
 | 
			
		||||
    Height = 503
 | 
			
		||||
    Top = 32
 | 
			
		||||
    Width = 758
 | 
			
		||||
    Align = alClient
 | 
			
		||||
 | 
			
		||||
@ -30,7 +30,7 @@ interface
 | 
			
		||||
uses
 | 
			
		||||
  Classes, SysUtils, SimpleIPC,
 | 
			
		||||
  FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
 | 
			
		||||
  Buttons, LCLProc, StdCtrls, IpHtml, ComCtrls, ExtCtrls, Menus,
 | 
			
		||||
  Buttons, LCLProc, StdCtrls, IpHtml, ComCtrls, ExtCtrls, Menus, LCLType,
 | 
			
		||||
  BaseContentProvider, FileContentProvider, ChmContentProvider{$IFDEF USE_LNET}, HTTPContentProvider{$ENDIF};
 | 
			
		||||
 | 
			
		||||
type
 | 
			
		||||
@ -78,6 +78,7 @@ type
 | 
			
		||||
    procedure FileMenuOpenURLItemClick(Sender: TObject);
 | 
			
		||||
    procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
 | 
			
		||||
    procedure FormCreate(Sender: TObject);
 | 
			
		||||
    procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
 | 
			
		||||
    procedure ForwardToolBtnClick(Sender: TObject);
 | 
			
		||||
    procedure HomeToolBtnClick(Sender: TObject);
 | 
			
		||||
    procedure PageControlChange(Sender: TObject);
 | 
			
		||||
@ -101,6 +102,7 @@ type
 | 
			
		||||
    function ActivePage: TContentTab;
 | 
			
		||||
    procedure RefreshState;
 | 
			
		||||
    procedure ShowError(AError: String);
 | 
			
		||||
    procedure SetKeyUp(AControl: TControl);
 | 
			
		||||
  public
 | 
			
		||||
    { public declarations }
 | 
			
		||||
  end;
 | 
			
		||||
@ -108,6 +110,7 @@ type
 | 
			
		||||
 | 
			
		||||
var
 | 
			
		||||
  HelpForm: THelpForm;
 | 
			
		||||
  IPCServer: TSimpleIPCServer;
 | 
			
		||||
const INVALID_FILE_TYPE = 1;
 | 
			
		||||
 | 
			
		||||
implementation
 | 
			
		||||
@ -188,6 +191,8 @@ end;
 | 
			
		||||
 | 
			
		||||
procedure THelpForm.FormClose(Sender: TObject; var CloseAction: TCloseAction);
 | 
			
		||||
begin
 | 
			
		||||
  Visible:= False;
 | 
			
		||||
  Application.ProcessMessages;
 | 
			
		||||
  FileMenuCloseItemClick(Sender);
 | 
			
		||||
  StopServer;
 | 
			
		||||
end;
 | 
			
		||||
@ -200,6 +205,15 @@ begin
 | 
			
		||||
    StartServer(fServerName);
 | 
			
		||||
  end;
 | 
			
		||||
  RefreshState;
 | 
			
		||||
 | 
			
		||||
  SetKeyUp(Self);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure THelpForm.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState
 | 
			
		||||
  );
 | 
			
		||||
begin
 | 
			
		||||
  if Key = VK_ESCAPE then
 | 
			
		||||
    Close;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure THelpForm.ForwardToolBtnClick(Sender: TObject);
 | 
			
		||||
@ -344,6 +358,8 @@ begin
 | 
			
		||||
  fInputIPC.ServerID := ServerName;
 | 
			
		||||
  fInputIPC.Global := True;
 | 
			
		||||
  fInputIPC.Active := True;
 | 
			
		||||
  IPCServer := fInputIPC;
 | 
			
		||||
 | 
			
		||||
  fServerTimer := TTimer.Create(nil);
 | 
			
		||||
  fServerTimer.OnTimer := @ServerMessage;
 | 
			
		||||
  fServerTimer.Interval := 200;
 | 
			
		||||
@ -362,6 +378,7 @@ begin
 | 
			
		||||
     fInputIPC.Active := False;
 | 
			
		||||
 | 
			
		||||
   FreeAndNil(fInputIPC);
 | 
			
		||||
   IPCServer := nil;
 | 
			
		||||
   FreeAndNil(fServerTimer);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
@ -415,7 +432,7 @@ begin
 | 
			
		||||
 fNewPage := TContentTab.Create(PageControl);
 | 
			
		||||
 fNewPage.ContentProvider := fRealContentProvider.Create(fNewPage, ImageList1);
 | 
			
		||||
 fNewPage.Parent := PageControl;
 | 
			
		||||
 | 
			
		||||
 SetKeyUp(fNewPage);
 | 
			
		||||
 ShowOnTop;
 | 
			
		||||
 
 | 
			
		||||
 if fNewPage.ContentProvider.LoadURL(AURL, AContext) then
 | 
			
		||||
@ -463,6 +480,18 @@ begin
 | 
			
		||||
  ShowMessage(AError);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure THelpForm.SetKeyUp(AControl: TControl);
 | 
			
		||||
var
 | 
			
		||||
  WCont: TWinControl absolute AControl;
 | 
			
		||||
  i: Integer;
 | 
			
		||||
begin
 | 
			
		||||
  if (AControl = nil) or not (AControl.InheritsFrom(TWinControl)) then
 | 
			
		||||
    Exit;
 | 
			
		||||
  for i := 0 to WCont.ControlCount-1 do
 | 
			
		||||
      SetKeyUp(WCont.Controls[i]);
 | 
			
		||||
  WCont.OnKeyUp:=@FormKeyUp;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
{ TContentTab }
 | 
			
		||||
 | 
			
		||||
constructor TContentTab.Create(AOwner: TComponent);
 | 
			
		||||
@ -476,5 +505,12 @@ begin
 | 
			
		||||
  inherited Destroy;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
finalization
 | 
			
		||||
  if IPCServer <> nil then
 | 
			
		||||
    try
 | 
			
		||||
    FreeAndNil(IPCServer);
 | 
			
		||||
    except
 | 
			
		||||
    end;
 | 
			
		||||
 | 
			
		||||
end.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user