105 lines
2.5 KiB
JavaScript
105 lines
2.5 KiB
JavaScript
|
|
||
|
TitleWindow = (function()
|
||
|
{
|
||
|
function TitleWindow(wm, settings, server, connection_address)
|
||
|
{
|
||
|
this.Settings = settings;
|
||
|
|
||
|
this.Window = wm.AddWindow(" Remotery", 10, 10, 100, 100);
|
||
|
this.Window.ShowNoAnim();
|
||
|
|
||
|
this.PingContainer = this.Window.AddControlNew(new WM.Container(4, -13, 10, 10));
|
||
|
DOM.Node.AddClass(this.PingContainer.Node, "PingContainer");
|
||
|
|
||
|
this.EditBox = this.Window.AddControlNew(new WM.EditBox(10, 5, 300, 18, "Connection Address", connection_address));
|
||
|
|
||
|
// Setup pause button
|
||
|
this.PauseButton = this.Window.AddControlNew(new WM.Button("Pause", 5, 5, { toggle: true }));
|
||
|
this.PauseButton.SetOnClick(Bind(OnPausePressed, this));
|
||
|
|
||
|
this.SyncButton = this.Window.AddControlNew(new WM.Button("Sync Timelines", 5, 5, { toggle: true}));
|
||
|
this.SyncButton.SetOnClick(Bind(OnSyncPressed, this));
|
||
|
this.SyncButton.SetState(this.Settings.SyncTimelines);
|
||
|
|
||
|
server.AddMessageHandler("PING", Bind(OnPing, this));
|
||
|
|
||
|
this.Window.SetOnResize(Bind(OnUserResize, this));
|
||
|
}
|
||
|
|
||
|
|
||
|
TitleWindow.prototype.SetConnectionAddressChanged = function(handler)
|
||
|
{
|
||
|
this.EditBox.SetChangeHandler(handler);
|
||
|
}
|
||
|
|
||
|
|
||
|
TitleWindow.prototype.WindowResized = function(width, height)
|
||
|
{
|
||
|
this.Window.SetSize(width - 2 * 10, 50);
|
||
|
ResizeInternals(this);
|
||
|
}
|
||
|
|
||
|
TitleWindow.prototype.Pause = function()
|
||
|
{
|
||
|
if (!this.Settings.IsPaused)
|
||
|
{
|
||
|
this.PauseButton.SetText("Paused");
|
||
|
this.PauseButton.SetState(true);
|
||
|
this.Settings.IsPaused = true;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
TitleWindow.prototype.Unpause = function()
|
||
|
{
|
||
|
if (this.Settings.IsPaused)
|
||
|
{
|
||
|
this.PauseButton.SetText("Pause");
|
||
|
this.PauseButton.SetState(false);
|
||
|
this.Settings.IsPaused = false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function OnUserResize(self, evt)
|
||
|
{
|
||
|
ResizeInternals(self);
|
||
|
}
|
||
|
|
||
|
function ResizeInternals(self)
|
||
|
{
|
||
|
self.PauseButton.SetPosition(self.Window.Size[0] - 60, 5);
|
||
|
self.SyncButton.SetPosition(self.Window.Size[0] - 155, 5);
|
||
|
}
|
||
|
|
||
|
|
||
|
function OnPausePressed(self)
|
||
|
{
|
||
|
if (self.PauseButton.IsPressed())
|
||
|
{
|
||
|
self.Pause();
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
self.Unpause();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
function OnSyncPressed(self)
|
||
|
{
|
||
|
self.Settings.SyncTimelines = self.SyncButton.IsPressed();
|
||
|
}
|
||
|
|
||
|
|
||
|
function OnPing(self, server)
|
||
|
{
|
||
|
// Set the ping container as active and take it off half a second later
|
||
|
DOM.Node.AddClass(self.PingContainer.Node, "PingContainerActive");
|
||
|
window.setTimeout(Bind(function(self)
|
||
|
{
|
||
|
DOM.Node.RemoveClass(self.PingContainer.Node, "PingContainerActive");
|
||
|
}, self), 500);
|
||
|
}
|
||
|
|
||
|
|
||
|
return TitleWindow;
|
||
|
})();
|