Skip to content

Commit

Permalink
Improved behavior method handlers
Browse files Browse the repository at this point in the history
  • Loading branch information
da-baranov committed Mar 3, 2015
1 parent 8aee843 commit e1a1ebb
Show file tree
Hide file tree
Showing 7 changed files with 247 additions and 83 deletions.
20 changes: 19 additions & 1 deletion demo/DemoBehavior.pas
Expand Up @@ -14,6 +14,9 @@ TDemoBehavior = class(TElement)
procedure DoBehaviorAttach; override;
procedure DoMouse(const Args: TElementOnMouseEventArgs); override;
function GetValue: OleVariant; override;
procedure SetValue(Value: OleVariant); override;
function GetText: WideString; override;
procedure SetText(const Value: WideString); override;
public
class function BehaviorName: AnsiString; override;
constructor Create(ASciter: TSciter; AElement: HELEMENT); override;
Expand Down Expand Up @@ -70,10 +73,25 @@ procedure TDemoBehavior.OnMethodCallHandler(ASender: TObject; const Args: TEleme

destructor TDemoBehavior.Destroy;
begin

inherited;
end;

function TDemoBehavior.GetText: WideString;
begin
Result := FTextArea.Text;
end;

procedure TDemoBehavior.SetText(const Value: WideString);
begin
FTextArea.Text := Value;
end;

procedure TDemoBehavior.SetValue(Value: OleVariant);
begin
FTextArea.Value := Value;
end;

initialization

SciterRegisterBehavior(TDemoBehavior);
Expand Down
1 change: 1 addition & 0 deletions demo/SciMainForm.dfm
Expand Up @@ -59,6 +59,7 @@ object MainForm: TMainForm
PopupMenu = ctxSciter
TabOrder = 1
OnDocumentComplete = Sciter1DocumentComplete
OnLoadData = Sciter1LoadData
OnMessage = Sciter1Message
OnScriptingCall = Sciter1ScriptingCall
end
Expand Down
20 changes: 20 additions & 0 deletions demo/SciMainForm.pas
Expand Up @@ -52,6 +52,8 @@ TMainForm = class(TForm)
procedure NavigatetoSciterwebsite1Click(Sender: TObject);
procedure OnSciterOut(ASender: TObject; const msg: WideString);
procedure Sciter1DocumentComplete(ASender: TObject; const url: WideString);
procedure Sciter1LoadData(ASender: TObject; const url: WideString; resType:
SciterResourceType; requestId: Integer; out discard: Boolean);
procedure Sciter1Message(ASender: TObject; const Args: TSciterOnMessageEventArgs);
procedure Sciter1ScriptingCall(ASender: TObject; const Args:
TElementOnScriptingCallArgs);
Expand Down Expand Up @@ -410,6 +412,24 @@ procedure TMainForm.Sciter1DocumentComplete(ASender: TObject; const url:
FDivRequestEvents.OnDataArrived := OnDivRequestDataArrived;
end;

procedure TMainForm.Sciter1LoadData(ASender: TObject; const url: WideString;
resType: SciterResourceType; requestId: Integer; out discard: Boolean);
var
sFileName: AnsiString;
pMemStm: TMemoryStream;
begin
if Pos(WideString('scide://'), Url) = 1 then
begin
sFileName := StringReplace(Url, 'scide://', '', []);
pMemStm := TMemoryStream.Create;
pMemStm.LoadFromFile(sFileName);
pMemStm.Position := 0;
Sciter1.DataReady(url, pMemStm.Memory, pMemStm.Size);
pMemStm.Free;
Discard := True;
end;
end;

procedure TMainForm.Sciter1Message(ASender: TObject; const Args:
TSciterOnMessageEventArgs);
begin
Expand Down
30 changes: 27 additions & 3 deletions scide.htm
Expand Up @@ -221,9 +221,21 @@
view.msgbox(#alert, "Sciter");
}

function self#cmdDemoBehavior.onClick()
function self#cmdDemoBehaviorGetValue.onClick()
{
view.msgbox(#alert, self#divDemoBehavior.nativeValue());
view.msgbox(#alert, self#divDemoBehavior.value);
}
function self#cmdDemoBehaviorSetValue.onClick()
{
self#divDemoBehavior.value = "New value";
}
function self#cmdDemoBehaviorGetText.onClick()
{
view.msgbox(#alert, self#divDemoBehavior.text);
}
function self#cmdDemoBehaviorSetText.onClick()
{
self#divDemoBehavior.value = "New text";
}

</script>
Expand Down Expand Up @@ -532,7 +544,10 @@ <h2>Native behavior demo</h2>
<div style="behavior: DemoBehavior" id="divDemoBehavior">

</div>
<button id="cmdDemoBehavior">Show value</button>
<button id="cmdDemoBehaviorGetValue">Show value</button>
<button id="cmdDemoBehaviorSetValue">Change value</button>
<button id="cmdDemoBehaviorGetText">Show text</button>
<button id="cmdDemoBehaviorSetText">Change text</button>
</section>

<!--************************************************************************-->
Expand Down Expand Up @@ -560,6 +575,15 @@ <h2>Insert before/after</h2>
<button id="cmdInsertAfter">Insert after</button>
<span id="spanBeforeAfter">|text|</span>
</section>

<!--************************************************************************-->
<section>
<h2>Custom URL protocol handler</h2>
<pre class="code">
&lt;img src="scide://scide.png" /&gt;
</pre>
<img src="scide://scide.png" />
</section>

</body>
</html>
Binary file added scide.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit e1a1ebb

Please sign in to comment.