337 lines
13 KiB
ObjectPascal
337 lines
13 KiB
ObjectPascal
{*******************************************************************}
|
|
{ }
|
|
{ ExpressWeb Framework by Developer Express }
|
|
{ Basic interfaces }
|
|
{ }
|
|
{ Copyright (c) 2000-2009 Developer Express Inc. }
|
|
{ ALL RIGHTS RESERVED }
|
|
{ }
|
|
{ The entire contents of this file is protected by U.S. and }
|
|
{ International Copyright Laws. Unauthorized reproduction, }
|
|
{ reverse-engineering, and distribution of all or any portion of }
|
|
{ the code contained in this file is strictly prohibited and may }
|
|
{ result in severe civil and criminal penalties and will be }
|
|
{ prosecuted to the maximum extent possible under the law. }
|
|
{ }
|
|
{ RESTRICTIONS }
|
|
{ }
|
|
{ THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES }
|
|
{ (DCU, OBJ, DLL, ETC.) ARE CONFIDENTIAL AND PROPRIETARY TRADE }
|
|
{ SECRETS OF DEVELOPER EXPRESS INC. THE REGISTERED DEVELOPER IS }
|
|
{ LICENSED TO DISTRIBUTE THE EXPRESSWEB FRAMEWORK AND ALL }
|
|
{ ACCOMPANYING VCL CLASSES AS PART OF AN EXECUTABLE WEB }
|
|
{ APPLICATION ONLY. }
|
|
{ }
|
|
{ THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED }
|
|
{ FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE }
|
|
{ COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE }
|
|
{ AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT }
|
|
{ AND PERMISSION FROM DEVELOPER EXPRESS INC. }
|
|
{ }
|
|
{ CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON }
|
|
{ ADDITIONAL RESTRICTIONS. }
|
|
{ }
|
|
{*******************************************************************}
|
|
unit cxWebIntf;
|
|
|
|
interface
|
|
|
|
{$I cxVer.inc}
|
|
|
|
uses Classes, HTTPApp, HttpProd,
|
|
{$IFDEF VCL}
|
|
Windows,
|
|
{$ELSE}
|
|
Types,
|
|
{$ENDIF}
|
|
cxWebRender;
|
|
|
|
type
|
|
|
|
IcxStylesProvider = interface
|
|
['{81C2E73B-DFFF-4939-B27B-DEE1E5E6AB57}']
|
|
procedure GetCSSFiles(HTMLTextBuilder: TcxHTMLTextBuilder; AList: TStrings);
|
|
procedure WriteStyles(HTMLTextBuilder: TcxHTMLTextBuilder);
|
|
end;
|
|
|
|
TcxWebComponentState = (wcsLoading);
|
|
TcxWebComponentStates = set of TcxWebComponentState;
|
|
|
|
IcxWebComponentState = interface
|
|
['{F2726C94-D255-4F3B-A3BE-81E28E8875D9}']
|
|
function GetState: TcxWebComponentStates;
|
|
procedure SetState(Value: TcxWebComponentStates);
|
|
|
|
property State: TcxWebComponentStates read GetState write SetState;
|
|
end;
|
|
|
|
IcxCodeProvider = interface
|
|
['{9994948E-6728-443A-80D0-768A0EEB2434}']
|
|
function GetRendererClass(Browser: TcxWebBrowserClass): TcxWebRendererClass;
|
|
procedure GetScriptFiles(HTMLTextBuilder: TcxHTMLTextBuilder; AList: TStrings);
|
|
procedure WriteClassScripts(HTMLTextBuilder: TcxHTMLTextBuilder);
|
|
procedure WriteClassHTML(HTMLTextBuilder: TcxHTMLTextBuilder);
|
|
procedure WriteHiddenFormElements(HTMLTextBuilder: TcxHTMLTextBuilder);
|
|
procedure WriteHTML(HTMLTextBuilder: TcxHTMLTextBuilder);
|
|
procedure WriteClassOutOfFormHTML(HTMLTextBuilder: TcxHTMLTextBuilder);
|
|
procedure WriteOutOfFormHTML(HTMLTextBuilder: TcxHTMLTextBuilder);
|
|
procedure WriteScripts(HTMLTextBuilder: TcxHTMLTextBuilder);
|
|
procedure WriteStyles(HTMLTextBuilder: TcxHTMLTextBuilder);
|
|
procedure WriteXML(HTMLTextBuilder: TcxHTMLTextBuilder);
|
|
end;
|
|
|
|
IcxContainerCodeProvider = interface
|
|
['{DDCA6301-AF1F-4E69-8769-349E5A277C18}']
|
|
procedure WriteBeginHTML(HTMLTextBuilder: TcxHTMLTextBuilder);
|
|
procedure WriteEndHTML(HTMLTextBuilder: TcxHTMLTextBuilder);
|
|
end;
|
|
|
|
IcxDesignCodeProvider = interface
|
|
['{B46E57AA-5460-4BDE-A97E-9C75BEE3114E}']
|
|
function GetRendererClass: TcxWebRendererClass;
|
|
procedure WriteHTML(HTMLTextBuilder: TcxHTMLTextBuilder);
|
|
end;
|
|
|
|
IcxWebProvidersSupport = interface
|
|
['{070CCC90-3A13-4538-8D6A-41B7C64FA88F}']
|
|
procedure GetProviders(AList: TList);
|
|
end;
|
|
|
|
TcxActionParameters = record
|
|
ParamString: string;
|
|
ShiftState: Integer;
|
|
end;
|
|
|
|
TcxWebComponentActionProc = procedure(const AParameters: TcxActionParameters) of object;
|
|
TcxWebComponentEventProc = procedure(var AScript: string) of object;
|
|
TcxWebComponentEventProcType = (etSingleLine, etProcedure);
|
|
TcxWebRenderProc = function: string of object;
|
|
|
|
|
|
IcxWebActions = interface
|
|
['{2C4A7F69-B222-434C-BD4F-D1847096DDDE}']
|
|
procedure ClearActions;
|
|
procedure RegisterActions;
|
|
procedure DoAfterPerformActions;
|
|
procedure DoPerformAction(const ActionName: string; const ActionParameters: TcxActionParameters);
|
|
end;
|
|
|
|
IcxWebEvents = interface
|
|
['{47806D90-E079-471A-870D-680CA44B1183}']
|
|
procedure ClearEvents;
|
|
procedure RegisterEvents;
|
|
end;
|
|
|
|
IcxWebScripts = interface
|
|
['{4C7839A9-212A-4C5A-8F10-6250CDDCADC9}']
|
|
procedure ScriptsSubscription;
|
|
end;
|
|
|
|
IcxWebValues = interface
|
|
['{E570A4C5-D96B-41BC-A96B-F3224B174D95}']
|
|
function GetValues: TStrings;
|
|
procedure DoAfterSetValues;
|
|
procedure DoSetValues;
|
|
function CanSetValues: Boolean;
|
|
procedure RegisterValues;
|
|
|
|
property Values: TStrings read GetValues;
|
|
end;
|
|
|
|
TcxWebTabOrder = -1..32766;
|
|
|
|
// TcxWebAnchor = (akLeft, akRight);
|
|
// TcxWebAnchors = set of TcxWebAnchor;
|
|
|
|
TcxWebCaption = type string;
|
|
|
|
IcxWebContainerControl = interface;
|
|
|
|
IcxWebTabOrderable = interface
|
|
['{1F5208E6-C0AB-4828-8CF2-33E87D174817}']
|
|
end;
|
|
|
|
IcxWebDesignerControlNotify = interface
|
|
['{80B18E02-6869-4E38-AB74-61AD348D2DF9}']
|
|
procedure BoundsChanged;
|
|
procedure ParentChanged;
|
|
procedure UpdateContext;
|
|
end;
|
|
|
|
IcxWebControl = interface
|
|
['{88CEB4AC-24C8-42A5-881C-519325CBC9F9}']
|
|
procedure InternalSetParent(const Value: IcxWebContainerControl);
|
|
function GetBoundsRect: TRect;
|
|
function GetParent: IcxWebContainerControl;
|
|
function GetVisible: Boolean;
|
|
function GetTabOrder: TcxWebTabOrder;
|
|
function GetInternalTabOrder: TcxWebTabOrder;
|
|
function GetTabStop: Boolean;
|
|
function GetZIndex: Integer;
|
|
function GetDesignerControl: IcxWebDesignerControlNotify;
|
|
procedure SetBoundsRect(const Value: TRect);
|
|
procedure SetParent(const Value: IcxWebContainerControl);
|
|
procedure SetVisible(const Value: Boolean);
|
|
procedure SetDesignerControl(const Value: IcxWebDesignerControlNotify);
|
|
|
|
procedure UpdateControlPosition;
|
|
|
|
property BoundsRect: TRect read GetBoundsRect write SetBoundsRect;
|
|
property Parent: IcxWebContainerControl read GetParent write SetParent;
|
|
property TabOrder: TcxWebTabOrder read GetTabOrder;
|
|
property TabStop: Boolean read GetTabStop;
|
|
property Visible: Boolean read GetVisible write SetVisible;
|
|
property ZIndex: Integer read GetZIndex;
|
|
property DesignerControl: IcxWebDesignerControlNotify read GetDesignerControl write SetDesignerControl;
|
|
end;
|
|
|
|
IcxWebControlAttributes = interface
|
|
['{3013AB3E-419B-4A31-8B41-623607B8398C}']
|
|
procedure SetAttribute(Name, Value: string);
|
|
procedure SetStyleAttribute(Name, Value: string);
|
|
end;
|
|
|
|
TcxWebControlLayout = (wclGrid, wclAbsolute, wclFlow, wclInheritable);
|
|
|
|
IcxWebContainerControl = interface
|
|
['{B4037AB3-C7E2-4045-BC5E-0D96982B1311}']
|
|
function GetControl(Index: Integer): IcxWebControl;
|
|
function GetControlContainer(Index: Integer): IcxWebContainerControl;
|
|
function GetControlContainerCount: Integer;
|
|
function GetControlCount: Integer;
|
|
function GetParent: IcxWebContainerControl;
|
|
|
|
function GetClientLeft: Integer;
|
|
function GetClientTop: Integer;
|
|
|
|
function CanAcceptsControls: Boolean;
|
|
function ContainsControl(const AControl: IcxWebControl): Boolean;
|
|
function IndexOf(const AControl: IcxWebControl): Integer;
|
|
procedure InsertControl(const AControl: IInterface);
|
|
procedure RemoveControl(const AControl: IInterface);
|
|
|
|
function GetLineTabOrder(const AControl: IcxWebControl; var AFounded: Boolean): Integer;
|
|
procedure GetTabOrderList(const AList: TList);
|
|
procedure SetTabOrderList(const AList: TList);
|
|
function TabOrderOf(const AControl: IcxWebControl): Integer;
|
|
procedure UpdateTabOrder(ACurIndex, ANewIndex: TcxWebTabOrder);
|
|
procedure UpdateControlsPosition;
|
|
|
|
function GetControlLayout: TcxWebControlLayout;
|
|
procedure SetControlLayout(Value: TcxWebControlLayout);
|
|
|
|
property ControlContainerCount: Integer read GetControlContainerCount;
|
|
property ControlContainers[Index: Integer]: IcxWebContainerControl read GetControlContainer;
|
|
property ControlCount: Integer read GetControlCount;
|
|
property ControlLayout: TcxWebControlLayout read GetControlLayout write SetControlLayout;
|
|
property Controls[Index: Integer]: IcxWebControl read GetControl;
|
|
property Parent: IcxWebContainerControl read GetParent;
|
|
end;
|
|
|
|
IcxWebSessionsService = interface
|
|
['{9971D2FC-5D6A-4176-86FB-4750A2765E4C}']
|
|
function CheckStatus: Boolean;
|
|
function GetUseCookie: Boolean;
|
|
function GetDefaultTimeout: Integer;
|
|
procedure NotifyStatusChange;
|
|
property UseCookie: Boolean read GetUseCookie;
|
|
property DefaultTimeout: Integer read GetDefaultTimeout;
|
|
end;
|
|
|
|
IcxWebTranslatePathInfo = interface
|
|
['{6E39CB2C-D67E-47D4-8829-BBC45982CB91}']
|
|
function EmbedURLModificator(ARequest: TWebRequest; ASession: TAbstractWebSession): string;
|
|
function ExtractURLModificator(ARequest: TWebRequest): string;
|
|
function ExcludeURLModificator(ARequest: TWebRequest): string;
|
|
end;
|
|
IcxWebSessionsNotify = interface
|
|
['{6DC9496C-F35F-4065-B88C-564CF688C5D7}']
|
|
procedure SessionStarted(ASessionID: string);
|
|
procedure SessionTerminated(ASessionID: string);
|
|
end;
|
|
|
|
IcxWebModule = interface
|
|
['{3B2D660C-C89C-4A0F-B2E6-5B82B1C34693}']
|
|
procedure Activate;
|
|
procedure Deactivate;
|
|
end;
|
|
|
|
TcxScriptEngine = 0..255;
|
|
|
|
IcxWebPage = interface
|
|
['{0B5A6B16-AC16-4AE6-BE0C-E86F428E6212}']
|
|
function DispatchPage(const APageName: string; AWebResponse: TWebResponse): Boolean;
|
|
function IncludePage(const APageName: string; var AOwned: Boolean): TStream;
|
|
function RedirectToPage(const APageName: string; const AParams: string; AWebResponse: TWebResponse): Boolean;
|
|
function GetServerScript: TcxScriptengine;
|
|
end;
|
|
|
|
IcxWebClientData = interface
|
|
['{8B16527D-C3F1-484B-A1AB-CD610CD11E4D}']
|
|
function GetActiveControl: IcxWebControl;
|
|
function GetBrowser: TcxWebBrowserClass;
|
|
function GetIsFirstRequest: Boolean;
|
|
function GetLeftPos: Integer;
|
|
function GetReferer: string;
|
|
function GetShiftState: Integer;
|
|
function GetScrollLeft: Integer;
|
|
function GetScrollTop: Integer;
|
|
function GetTopPos: Integer;
|
|
function GetValues: TStrings;
|
|
procedure SetActiveControl(const AValue: IcxWebControl);
|
|
procedure SetLeftPos(const Value: Integer);
|
|
procedure SetShiftState(const Value: Integer);
|
|
procedure SetTopPos(const Value: Integer);
|
|
end;
|
|
|
|
IcxWebScripter = interface
|
|
['{FC7A3464-C383-497C-B0E8-8D1755CAD068}']
|
|
procedure AddGlobalObjects(AProducer: TAbstractScriptProducer);
|
|
procedure AddComponents(AProducer: TAbstractScriptProducer);
|
|
procedure ClearAll;
|
|
procedure Run(const AText, AScriptEngine: string);
|
|
end;
|
|
|
|
IcxWebPageModule = interface
|
|
['{22A1C3A3-7C9A-4753-AD40-33286E917C9B}']
|
|
function GetAsString: string;
|
|
function GetEncoding: string;
|
|
function GetPositioningType: TcxWebPositioningType;
|
|
procedure SetAsString(const Value: string);
|
|
procedure SetPositioningType(const Value: TcxWebPositioningType);
|
|
function PerformScript(const Value: string): string;
|
|
procedure ProcessClientChanges;
|
|
end;
|
|
|
|
IcxWebDesignerModule = interface
|
|
['{D435B556-5D15-4058-B3A1-B22389FAFFDF}']
|
|
function GetDesignerID: Integer;
|
|
procedure SetDesignerID(Value: Integer);
|
|
procedure SetIsDesignerPreviewModule(Value: Boolean);
|
|
end;
|
|
|
|
|
|
IcxWebModuleComponentPersistent = interface
|
|
['{E4F37693-19DD-4072-8C28-52BD23A4ABDF}']
|
|
function IsComponentPersistent(AComponent: TComponent): Boolean;
|
|
end;
|
|
|
|
IcxWebDebugDesignerFileManager = interface
|
|
['{BCD7E8D7-FB98-4B26-95D5-0DD833B13FB2}']
|
|
end;
|
|
|
|
|
|
IcxWebModuleDesignerNotify = interface
|
|
['{A3C83E0C-717B-318F-7F56-3B0753793C78}']
|
|
procedure DesignerIDChanged;
|
|
procedure DesignerPositioningTypeChanged;
|
|
function GetDesignerCount: Integer;
|
|
function GetDesignerName(Index: Integer): String;
|
|
function IsSupportPositioningTypeChanged(APositioningType: TcxWebPositioningType): Boolean;
|
|
function GetControlPositioningType: TcxWebPositioningType;
|
|
end;
|
|
|
|
implementation
|
|
|
|
end.
|