[Ocs-comps-commits] OCS2/Samples/VCL/PluginManager/Thread AutoHide.cfg,NONE,1.1 AutoHide.dof,NONE,1.
Brought to you by:
tectsoft
From: Si C. <tec...@us...> - 2005-11-21 10:33:50
|
Update of /cvsroot/ocs-comps/OCS2/Samples/VCL/PluginManager/Thread In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10593/Samples/VCL/PluginManager/Thread Added Files: AutoHide.cfg AutoHide.dof AutoHide.dpr AutoHide.res AutoHidePlugin.pas Log Message: Initially added to source control --- NEW FILE: AutoHidePlugin.pas --- unit AutoHidePlugin; interface uses Classes, Windows, Messages, OrckaAddinManagerShared; type TAutoHidePlugin = class; TTimerThread = class(TThread) private FService: TPluginServices; FTime: TDateTime; FInterval: Longint; FPlugin: TAutohidePlugin; FActive: Boolean; protected function DateDiff(Date2, Date1: TDatetime): Longint; public constructor Create(CreateSuspended: Boolean; APlugin: TAutohidePlugin; AService: TPluginServices); procedure Execute; override; procedure Reset; property Active: Boolean read FActive write FActive; end; TAutoHidePlugin = class(TPluginClient) private FService: TPluginServices; FTimer: TTimerThread; FMinimized: Boolean; FIgnoreMinimize: Boolean; public constructor CreateNew(AService: TPluginServices); destructor Destroy; override; function GetName: TOString; override; procedure CreateMenuItems; override; procedure DeleteMenuItems; override; procedure CreateButtons; override; procedure DeleteButtons; override; (* General functions for applications, can be used to control open/save/close/create documents, Close the application *) procedure Open(PEType: TPluginEventType; var Name: TLargeString; var Handled: Boolean); override; procedure Save(PEType: TPluginEventType; var Name: TLargeString; var Handled: Boolean); override; procedure BeforeClose(PEType: TPluginEventType; var Cancel: Boolean); override; procedure AfterClose(PEType: TPluginEventType); override; procedure BeforeNew(PEType: TPluginEventType; var Cancel: Boolean); override; procedure AfterNew(PEType: TPluginEventType); override; (* Application Events *) procedure OnActivte; override; procedure OnDeactivte; override; procedure OnMinimize; override; procedure OnRestore; override; procedure OnException(ClassName: TMediumString; ErrorMessage: TLargeString); override; procedure OnHelp(Command: Word; Data: Longint; var CallHelp: Boolean); override; procedure OnHint; override; procedure OnIdle(var Done: Boolean); override; procedure OnMessage(var Msg: TMsg; var Handled: Boolean); override; procedure OnSettingsChanged(Flag: Integer; const Section: string; var Result: Longint); override; procedure OnShortCut(var Msg: TWMKey; var Handled: Boolean); override; end; implementation uses SysUtils; var Plugin: TAutoHidePlugin = nil; procedure PluginUnload; stdcall; begin Plugin.Free; end; function PluginLoad(InParams: TOrckaPluginManagerParams; var ExitProc: Pointer): Boolean; stdcall; begin Result := True; try Plugin := TAutoHidePlugin.CreateNew(TPluginServices(InParams.PluginService)); ExitProc := @PluginUnload; except Result := False; end; end; procedure PluginDescription(var Name, Description: TMediumString); stdcall; begin FillChar(Name, SizeOf(TMediumString), 0); StrPCopy(Name, 'Autohide Plugin'); end; exports PluginLoad name OrckaPluginManagerExportProc2, PluginDescription name OrckaPluginManagerDescription; { TAutoHidePlugin } procedure TAutoHidePlugin.AfterClose(PEType: TPluginEventType); begin end; procedure TAutoHidePlugin.AfterNew(PEType: TPluginEventType); begin end; procedure TAutoHidePlugin.BeforeClose(PEType: TPluginEventType; var Cancel: Boolean); begin end; procedure TAutoHidePlugin.BeforeNew(PEType: TPluginEventType; var Cancel: Boolean); begin end; procedure TAutoHidePlugin.CreateButtons; begin end; procedure TAutoHidePlugin.CreateMenuItems; begin end; constructor TAutoHidePlugin.CreateNew(AService: TPluginServices); begin inherited Create; FIgnoreMinimize := False; FService := AService; FService.PluginClientInsert(Self); FMinimized := False; FTimer := TTimerThread.Create(False, Self, AService); FTimer.FreeOnTerminate := True; FService.PluginClientSetEvents(Self, [poDoMinimize, poDoMaximize, poOnActivate, poOnDeactivate, poOnMinimize, poOnRestore, poDoSetTitle]); end; procedure TAutoHidePlugin.DeleteButtons; begin end; procedure TAutoHidePlugin.DeleteMenuItems; begin end; destructor TAutoHidePlugin.Destroy; begin FService.PluginClientRemove(Self); FTimer.Suspend; FTimer.Terminate; inherited Destroy; end; function TAutoHidePlugin.GetName: TOString; begin FillChar(Result, SizeOf(TOString), 0); Result := 'Autohide Plugin'; end; procedure TAutoHidePlugin.OnActivte; begin FTimer.Active := False; end; procedure TAutoHidePlugin.OnDeactivte; begin if not FMinimized then begin FTimer.Reset; FIgnoreMinimize := False; FTimer.Active := True; end; end; procedure TAutoHidePlugin.OnException(ClassName: TMediumString; ErrorMessage: TLargeString); begin end; procedure TAutoHidePlugin.OnHelp(Command: Word; Data: Integer; var CallHelp: Boolean); begin end; procedure TAutoHidePlugin.OnHint; begin end; procedure TAutoHidePlugin.OnIdle(var Done: Boolean); begin end; procedure TAutoHidePlugin.OnMessage(var Msg: TMsg; var Handled: Boolean); begin end; procedure TAutoHidePlugin.OnMinimize; begin if FMinimized then Exit; FMinimized := True; FTimer.Active := False; end; procedure TAutoHidePlugin.OnRestore; begin FMinimized := False; FIgnoreMinimize := False; FTimer.Active := False; end; procedure TAutoHidePlugin.OnSettingsChanged(Flag: Integer; const Section: string; var Result: Integer); begin end; procedure TAutoHidePlugin.OnShortCut(var Msg: TWMKey; var Handled: Boolean); begin end; procedure TAutoHidePlugin.Open(PEType: TPluginEventType; var Name: TLargeString; var Handled: Boolean); begin end; procedure TAutoHidePlugin.Save(PEType: TPluginEventType; var Name: TLargeString; var Handled: Boolean); begin end; { TTimerThread } constructor TTimerThread.Create(CreateSuspended: Boolean; APlugin: TAutohidePlugin; AService: TPluginServices); begin inherited Create(CreateSuspended); FService := AService; FTime := Now; FPlugin := APlugin; FInterval := FService.ReadInteger('AutoHide', 'Inteval', 1); end; procedure TTimerThread.Execute; begin while not Terminated do begin if (Active) and (not Suspended) and ((DateDiff(FTime, Now) div 60) >= FInterval) then begin FTime := Now; FPlugin.FMinimized := True; FService.DoMinimize; end; Sleep(1); end; end; procedure TTimerThread.Reset; begin FTime := Now; end; function TTimerThread.DateDiff(Date2, Date1: TDatetime):Longint; var Year, Month, Day, Hour, Min, Sec, MSec: Word; Year1, Month1, Day1, Hour1, Min1, Sec1, MSec1: Word; begin DecodeDate(Date1, Year, Month, Day); DecodeDate(Date2, Year1, Month1, Day1); DecodeTime(Date1, Hour, Min, Sec, MSec); DecodeTime(Date2, Hour1, Min1, Sec1, MSec1); Result := (((((Trunc(Date1) - Trunc(Date2))* 86400) - ((Hour1 - Hour)* 3600))) - ((Min1 - Min) * 60)) - (Sec1 - Sec); end; end. --- NEW FILE: AutoHide.dpr --- library AutoHide; uses AutoHidePlugin in 'AutoHidePlugin.pas'; {$R *.res} begin end. --- NEW FILE: AutoHide.dof --- [FileVersion] Version=6.0 [Compiler] A=8 B=0 C=0 D=0 E=0 F=0 G=1 H=1 I=0 J=0 K=0 L=0 M=0 N=1 O=1 P=1 Q=0 R=0 S=0 T=0 U=0 V=1 W=0 X=1 Y=0 Z=1 ShowHints=1 ShowWarnings=1 UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; [Linker] MapFile=0 OutputObjs=0 ConsoleApp=1 DebugInfo=0 RemoteSymbols=0 MinStackSize=16384 MaxStackSize=1048576 ImageBase=4194304 ExeDescription= [Directories] OutputDir=D:\Program Files\Other\TB2K\Demo UnitOutputDir= PackageDLLOutputDir= PackageDCPOutputDir= SearchPath= Packages=vcl;rtl;dbrtl;adortl;vcldb;vclx;bdertl;vcldbx;ibxpress;dsnap;cds;bdecds;qrpt;teeui;teedb;tee;dss;teeqr;visualclx;visualdbclx;dsnapcrba;dsnapcon;VclSmp;vclshlctrls;vclie;xmlrtl;inet;inetdbbde;inetdbxpress;inetdb;nmfast;webdsnap;websnap;dbexpress;dbxcds;indy;dclOffice2k Conditionals= DebugSourceDirs= UsePackages=0 [Parameters] RunParams= HostApplication=D:\Program Files\Other\TBX\DemoProj\Demo.exe Launcher= UseLauncher=0 DebugCWD= [Language] ActiveLang= ProjectLang= RootDir=D:\Program Files\Borland\Delphi6\Bin\ [Version Info] IncludeVerInfo=0 AutoIncBuild=0 MajorVer=1 MinorVer=0 Release=0 Build=0 Debug=0 PreRelease=0 Special=0 Private=0 DLL=0 Locale=2057 CodePage=1252 [Version Info Keys] CompanyName= FileDescription= FileVersion=1.0.0.0 InternalName= LegalCopyright= LegalTrademarks= OriginalFilename= ProductName= ProductVersion=1.0.0.0 Comments= [HistoryLists\hlUnitAliases] Count=1 Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; [HistoryLists\hlOutputDirectorry] Count=1 Item0=D:\Program Files\Other\TB2K\Demo --- NEW FILE: AutoHide.res --- (This appears to be a binary file; contents omitted.) --- NEW FILE: AutoHide.cfg --- -$A8 -$B- -$C- -$D- -$E- -$F- -$G+ -$H+ -$I- -$J- -$K- -$L- -$M- -$N+ -$O+ -$P+ -$Q- -$R- -$S- -$T- -$U- -$V+ -$W- -$X+ -$Y- -$Z1 -cg -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -H+ -W+ -M -$M16384,1048576 -K$00400000 -E"D:\Program Files\Other\TB2K\Demo" -LE"d:\program files\borland\delphi6\Projects\Bpl" -LN"d:\program files\borland\delphi6\Projects\Bpl" |