Skip to content

Commit d532460

Browse files
committed
Page resize support
1 parent 710a3ca commit d532460

File tree

4 files changed

+43
-5
lines changed

4 files changed

+43
-5
lines changed

build.sh

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
dotnet build src/Pglet.PowerShell

src/Pglet.PowerShell/Controls/PsPage.cs

+12
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,18 @@ public PsPage(Connection conn, string pageUrl, string pageName, string sessionId
7272
}
7373
}
7474

75+
public new ScriptBlock OnResize
76+
{
77+
get
78+
{
79+
return GetEventHandlerScript("resize");
80+
}
81+
set
82+
{
83+
_psEvents["resize"] = value;
84+
}
85+
}
86+
7587
public ScriptBlock GetEventHandlerScript(ControlEvent e)
7688
{
7789
return GetEventHandlerScript(e.Name);

src/Pglet/Page.cs

+27-5
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,18 @@ public string Hash
119119
set { SetAttr("hash", value); }
120120
}
121121

122+
public new int Width
123+
{
124+
get { return GetIntAttr("width"); }
125+
set { SetIntAttr("width", value); }
126+
}
127+
128+
public new int Height
129+
{
130+
get { return GetIntAttr("height"); }
131+
set { SetIntAttr("height", value); }
132+
}
133+
122134
public string Signin
123135
{
124136
get { return GetAttr("signin"); }
@@ -197,6 +209,12 @@ public EventHandler OnHashChange
197209
set { SetEventHandler("hashChange", value); }
198210
}
199211

212+
public EventHandler OnResize
213+
{
214+
get { return GetEventHandler("resize"); }
215+
set { SetEventHandler("resize", value); }
216+
}
217+
200218
protected override string ControlName => "page";
201219

202220
public Page(Connection conn, string pageUrl, string pageName, string sessionId) : base()
@@ -214,6 +232,8 @@ internal async Task LoadPageDetails()
214232
var values = (await _conn.SendCommands(_pageName, _sessionId, new List<Command>
215233
{
216234
new Protocol.Command { Name = "get", Values = new List<string> { "page", "hash" } },
235+
new Protocol.Command { Name = "get", Values = new List<string> { "page", "width" } },
236+
new Protocol.Command { Name = "get", Values = new List<string> { "page", "height" } },
217237
new Protocol.Command { Name = "get", Values = new List<string> { "page", "userid" } },
218238
new Protocol.Command { Name = "get", Values = new List<string> { "page", "userlogin" } },
219239
new Protocol.Command { Name = "get", Values = new List<string> { "page", "username" } },
@@ -222,11 +242,13 @@ internal async Task LoadPageDetails()
222242
}, CancellationToken.None)).Results;
223243

224244
Hash = values[0];
225-
UserId = values[1];
226-
UserLogin = values[2];
227-
UserName = values[3];
228-
UserEmail = values[4];
229-
UserClientIP = values[5];
245+
Width = Int32.Parse(values[1]);
246+
Height = Int32.Parse(values[2]);
247+
UserId = values[3];
248+
UserLogin = values[4];
249+
UserName = values[5];
250+
UserEmail = values[6];
251+
UserClientIP = values[7];
230252
}
231253

232254
public void Add(params Control[] controls)

tests/_app1.ps1

+3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ Connect-PgletApp "ps-app-test" -ScriptBlock {
99

1010
Write-Trace $PGLET_PAGE
1111
$page = $PGLET_PAGE
12+
$page.OnResize = {
13+
Write-Trace "New page size: $($page.width), $($page.height)"
14+
}
1215
$greeting = Text -Value "Hello, $($PGLET_PAGE.sessionId)"
1316
$page.add(@($greeting, $btn))
1417
#Start-Sleep -s 10

0 commit comments

Comments
 (0)