mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-19 12:35:52 -04:00
Separate DirectConnectScreen into DirectConnectScreen and DirectConnectView.
This commit is contained in:
parent
d22b9a4527
commit
cc57a1960a
@ -11,51 +11,38 @@ namespace Launcher {
|
|||||||
public sealed class DirectConnectScreen : LauncherInputScreen {
|
public sealed class DirectConnectScreen : LauncherInputScreen {
|
||||||
|
|
||||||
Font booleanFont;
|
Font booleanFont;
|
||||||
const int skinsIndex = 7;
|
DirectConnectView view;
|
||||||
public DirectConnectScreen( LauncherWindow game ) : base( game, true ) {
|
public DirectConnectScreen( LauncherWindow game ) : base( game, true ) {
|
||||||
booleanFont = new Font( game.FontName, 22, FontStyle.Regular );
|
booleanFont = new Font( game.FontName, 22, FontStyle.Regular );
|
||||||
enterIndex = 3;
|
enterIndex = 3;
|
||||||
widgets = new LauncherWidget[8];
|
view = new DirectConnectView( game );
|
||||||
|
widgets = view.widgets;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Init() {
|
public override void Init() {
|
||||||
base.Init();
|
base.Init();
|
||||||
MakeWidgets();
|
view.Init();
|
||||||
RedrawAllButtonBackgrounds();
|
SetWidgetHandlers();
|
||||||
|
Resize();
|
||||||
using( drawer ) {
|
|
||||||
drawer.SetBitmap( game.Framebuffer );
|
|
||||||
RedrawAll();
|
|
||||||
LoadSavedInfo();
|
|
||||||
}
|
|
||||||
Dirty = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Resize() {
|
public override void Resize() {
|
||||||
MakeWidgets();
|
view.DrawAll();
|
||||||
RedrawAllButtonBackgrounds();
|
|
||||||
|
|
||||||
using( drawer ) {
|
|
||||||
drawer.SetBitmap( game.Framebuffer );
|
|
||||||
RedrawAll();
|
|
||||||
}
|
|
||||||
Dirty = true;
|
Dirty = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MakeWidgets() {
|
void SetWidgetHandlers() {
|
||||||
widgetIndex = 0;
|
widgets[view.backIndex].OnClick =
|
||||||
|
(x, y) => game.SetScreen( new MainScreen( game ) );
|
||||||
|
widgets[view.connectIndex].OnClick = StartClient;
|
||||||
|
widgets[view.ccSkinsIndex].OnClick = UseClassicubeSkinsClick;
|
||||||
|
|
||||||
MakeInput( Get(), 330, Anchor.Centre, false, 0, -100, 32, "&7Username.." );
|
for( int i = 0; i < widgets.Length; i++ ) {
|
||||||
MakeInput( Get(), 330, Anchor.Centre, false, 0, -50, 64, "&7IP address:Port number.." );
|
if( widgets[i] == null || !(widgets[i] is LauncherInputWidget) )
|
||||||
MakeInput( Get(), 330, Anchor.Centre, false, 0, 0, 32, "&7Mppass.." );
|
continue;
|
||||||
|
widgets[i].OnClick = InputClick;
|
||||||
MakeButtonAt( "Connect", 110, 35, titleFont, Anchor.Centre, -110, 50, StartClient );
|
}
|
||||||
MakeButtonAt( "Back", 80, 35, titleFont, Anchor.Centre,
|
LoadSavedInfo();
|
||||||
125, 50, (x, y) => game.SetScreen( new MainScreen( game ) ) );
|
|
||||||
MakeLabelAt( "", titleFont, Anchor.Centre, Anchor.Centre, 0, 100 );
|
|
||||||
MakeLabelAt( "Use classicube.net for skins", inputFont, Anchor.Centre, Anchor.Centre, 30, 130 );
|
|
||||||
MakeBooleanAt( Anchor.Centre, Anchor.Centre, booleanFont, true,
|
|
||||||
30, 30, -110, 130, UseClassicubeSkinsClick );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetStatus( string text ) {
|
void SetStatus( string text ) {
|
||||||
@ -73,18 +60,13 @@ namespace Launcher {
|
|||||||
void UseClassicubeSkinsClick( int mouseX, int mouseY ) {
|
void UseClassicubeSkinsClick( int mouseX, int mouseY ) {
|
||||||
using( drawer ) {
|
using( drawer ) {
|
||||||
game.Drawer.SetBitmap( game.Framebuffer );
|
game.Drawer.SetBitmap( game.Framebuffer );
|
||||||
LauncherBooleanWidget widget = (LauncherBooleanWidget)widgets[skinsIndex];
|
LauncherBoolWidget widget = (LauncherBoolWidget)widgets[view.ccSkinsIndex];
|
||||||
SetBool( !widget.Value );
|
widget.Value = !widget.Value;
|
||||||
|
widget.Redraw( drawer );
|
||||||
|
Dirty = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetBool( bool value ) {
|
|
||||||
LauncherBooleanWidget widget = (LauncherBooleanWidget)widgets[skinsIndex];
|
|
||||||
widget.Value = value;
|
|
||||||
widget.Redraw( game.Drawer );
|
|
||||||
Dirty = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Dispose() {
|
public override void Dispose() {
|
||||||
StoreFields();
|
StoreFields();
|
||||||
base.Dispose();
|
base.Dispose();
|
||||||
@ -95,9 +77,9 @@ namespace Launcher {
|
|||||||
Dictionary<string, object> metadata;
|
Dictionary<string, object> metadata;
|
||||||
// restore what user last typed into the various fields
|
// restore what user last typed into the various fields
|
||||||
if( game.ScreenMetadata.TryGetValue( "screen-DC", out metadata ) ) {
|
if( game.ScreenMetadata.TryGetValue( "screen-DC", out metadata ) ) {
|
||||||
Set( 0, (string)metadata["user"] );
|
SetText( 0, (string)metadata["user"] );
|
||||||
Set( 1, (string)metadata["address"] );
|
SetText( 1, (string)metadata["address"] );
|
||||||
Set( 2, (string)metadata["mppass"] );
|
SetText( 2, (string)metadata["mppass"] );
|
||||||
SetBool( (bool)metadata["skins"] );
|
SetBool( (bool)metadata["skins"] );
|
||||||
} else {
|
} else {
|
||||||
LoadFromOptions();
|
LoadFromOptions();
|
||||||
@ -114,12 +96,11 @@ namespace Launcher {
|
|||||||
metadata["user"] = Get( 0 );
|
metadata["user"] = Get( 0 );
|
||||||
metadata["address"] = Get( 1 );
|
metadata["address"] = Get( 1 );
|
||||||
metadata["mppass"] = Get( 2 );
|
metadata["mppass"] = Get( 2 );
|
||||||
metadata["skins"] = ((LauncherBooleanWidget)widgets[skinsIndex]).Value;
|
metadata["skins"] = ((LauncherBoolWidget)widgets[view.ccSkinsIndex]).Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void LoadFromOptions() {
|
void LoadFromOptions() {
|
||||||
if( !Options.Load() )
|
if( !Options.Load() ) return;
|
||||||
return;
|
|
||||||
|
|
||||||
string user = Options.Get( "launcher-dc-username" ) ?? "";
|
string user = Options.Get( "launcher-dc-username" ) ?? "";
|
||||||
string ip = Options.Get( "launcher-dc-ip" ) ?? "127.0.0.1";
|
string ip = Options.Get( "launcher-dc-ip" ) ?? "127.0.0.1";
|
||||||
@ -134,9 +115,9 @@ namespace Launcher {
|
|||||||
string mppass = Options.Get( "launcher-dc-mppass" );
|
string mppass = Options.Get( "launcher-dc-mppass" );
|
||||||
mppass = Secure.Decode( mppass, user );
|
mppass = Secure.Decode( mppass, user );
|
||||||
|
|
||||||
Set( 0, user );
|
SetText( 0, user );
|
||||||
Set( 1, ip + ":" + port );
|
SetText( 1, ip + ":" + port );
|
||||||
Set( 2, mppass );
|
SetText( 2, mppass );
|
||||||
SetBool( ccSkins );
|
SetBool( ccSkins );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -152,6 +133,14 @@ namespace Launcher {
|
|||||||
Options.Save();
|
Options.Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SetText( int index, string text ) {
|
||||||
|
((LauncherInputWidget)widgets[index]).SetDrawData( drawer, text );
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetBool( bool value ) {
|
||||||
|
((LauncherBoolWidget)widgets[view.ccSkinsIndex]).Value = value;
|
||||||
|
}
|
||||||
|
|
||||||
void StartClient( int mouseX, int mouseY ) {
|
void StartClient( int mouseX, int mouseY ) {
|
||||||
string address = Get( 1 );
|
string address = Get( 1 );
|
||||||
int index = address.LastIndexOf( ':' );
|
int index = address.LastIndexOf( ':' );
|
||||||
@ -164,7 +153,7 @@ namespace Launcher {
|
|||||||
ClientStartData data = GetStartData( Get( 0 ), Get( 2 ), ipPart, portPart );
|
ClientStartData data = GetStartData( Get( 0 ), Get( 2 ), ipPart, portPart );
|
||||||
if( data == null ) return;
|
if( data == null ) return;
|
||||||
|
|
||||||
bool ccSkins = ((LauncherBooleanWidget)widgets[skinsIndex]).Value;
|
bool ccSkins = ((LauncherBoolWidget)widgets[view.ccSkinsIndex]).Value;
|
||||||
SaveToOptions( data, ccSkins );
|
SaveToOptions( data, ccSkins );
|
||||||
Client.Start( data, ccSkins, ref game.ShouldExit );
|
Client.Start( data, ccSkins, ref game.ShouldExit );
|
||||||
}
|
}
|
||||||
|
@ -74,7 +74,7 @@ namespace Launcher {
|
|||||||
if( signingIn ) return;
|
if( signingIn ) return;
|
||||||
UpdateSignInInfo( Get( 0 ), Get( 1 ) );
|
UpdateSignInInfo( Get( 0 ), Get( 1 ) );
|
||||||
|
|
||||||
LauncherBooleanWidget booleanWidget = widgets[skipSSLIndex] as LauncherBooleanWidget;
|
LauncherBoolWidget booleanWidget = widgets[skipSSLIndex] as LauncherBoolWidget;
|
||||||
if( booleanWidget != null && booleanWidget.Value ) {
|
if( booleanWidget != null && booleanWidget.Value ) {
|
||||||
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
|
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
|
||||||
} else {
|
} else {
|
||||||
@ -137,13 +137,13 @@ namespace Launcher {
|
|||||||
void SSLSkipValidationClick( int mouseX, int mouseY ) {
|
void SSLSkipValidationClick( int mouseX, int mouseY ) {
|
||||||
using( drawer ) {
|
using( drawer ) {
|
||||||
drawer.SetBitmap( game.Framebuffer );
|
drawer.SetBitmap( game.Framebuffer );
|
||||||
LauncherBooleanWidget widget = (LauncherBooleanWidget)widgets[skipSSLIndex];
|
LauncherBoolWidget widget = (LauncherBoolWidget)widgets[skipSSLIndex];
|
||||||
SetBool( !widget.Value );
|
SetBool( !widget.Value );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetBool( bool value ) {
|
void SetBool( bool value ) {
|
||||||
LauncherBooleanWidget widget = (LauncherBooleanWidget)widgets[skipSSLIndex];
|
LauncherBoolWidget widget = (LauncherBoolWidget)widgets[skipSSLIndex];
|
||||||
widget.Value = value;
|
widget.Value = value;
|
||||||
widget.Redraw( game.Drawer );
|
widget.Redraw( game.Drawer );
|
||||||
Dirty = true;
|
Dirty = true;
|
||||||
|
@ -21,7 +21,6 @@ namespace Launcher {
|
|||||||
drawer.SetBitmap( game.Framebuffer );
|
drawer.SetBitmap( game.Framebuffer );
|
||||||
RedrawAll();
|
RedrawAll();
|
||||||
}
|
}
|
||||||
Dirty = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Init() {
|
public override void Init() {
|
||||||
|
68
Launcher2/Gui/Views/DirectConnectView.cs
Normal file
68
Launcher2/Gui/Views/DirectConnectView.cs
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
// ClassicalSharp copyright 2014-2016 UnknownShadow200 | Licensed under MIT
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.IO;
|
||||||
|
using System.Net;
|
||||||
|
using ClassicalSharp;
|
||||||
|
|
||||||
|
namespace Launcher {
|
||||||
|
|
||||||
|
public sealed class DirectConnectView : IView {
|
||||||
|
|
||||||
|
internal int connectIndex, backIndex, ccSkinsIndex;
|
||||||
|
Font booleanFont;
|
||||||
|
|
||||||
|
public DirectConnectView( LauncherWindow game ) : base( game ) {
|
||||||
|
widgets = new LauncherWidget[8];
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Init() {
|
||||||
|
booleanFont = new Font( game.FontName, 22, FontStyle.Regular );
|
||||||
|
titleFont = new Font( game.FontName, 15, FontStyle.Bold );
|
||||||
|
inputFont = new Font( game.FontName, 14, FontStyle.Regular );
|
||||||
|
inputHintFont = new Font( game.FontName, 12, FontStyle.Italic );
|
||||||
|
MakeWidgets();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void DrawAll() {
|
||||||
|
MakeWidgets();
|
||||||
|
RedrawAllButtonBackgrounds();
|
||||||
|
|
||||||
|
using( drawer ) {
|
||||||
|
drawer.SetBitmap( game.Framebuffer );
|
||||||
|
RedrawAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MakeWidgets() {
|
||||||
|
widgetIndex = 0;
|
||||||
|
|
||||||
|
MakeInput( Get( 0 ), 330, Anchor.Centre, Anchor.Centre,
|
||||||
|
false, 0, -100, 32, "&7Username.." );
|
||||||
|
MakeInput( Get( 1 ), 330, Anchor.Centre, Anchor.Centre,
|
||||||
|
false, 0, -50, 64, "&7IP address:Port number.." );
|
||||||
|
MakeInput( Get( 2 ), 330, Anchor.Centre, Anchor.Centre,
|
||||||
|
false, 0, 0, 32, "&7Mppass.." );
|
||||||
|
|
||||||
|
connectIndex = widgetIndex;
|
||||||
|
MakeButtonAt( "Connect", 110, 35, titleFont, Anchor.Centre, -110, 50 );
|
||||||
|
backIndex = widgetIndex;
|
||||||
|
MakeButtonAt( "Back", 80, 35, titleFont, Anchor.Centre, 125, 50 );
|
||||||
|
MakeLabelAt( "", titleFont, Anchor.Centre, Anchor.Centre, 0, 100 );
|
||||||
|
MakeLabelAt( "Use classicube.net for skins", inputFont, Anchor.Centre, Anchor.Centre, 30, 130 );
|
||||||
|
ccSkinsIndex = widgetIndex;
|
||||||
|
MakeBooleanAt( Anchor.Centre, Anchor.Centre, booleanFont, true, 30, 30, -110, 130 );
|
||||||
|
}
|
||||||
|
|
||||||
|
string Get( int index ) {
|
||||||
|
LauncherWidget widget = widgets[index];
|
||||||
|
return widget == null ? "" : widget.Text;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Dispose() {
|
||||||
|
base.Dispose();
|
||||||
|
booleanFont.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -10,7 +10,6 @@ namespace Launcher {
|
|||||||
protected internal LauncherWindow game;
|
protected internal LauncherWindow game;
|
||||||
protected internal IDrawer2D drawer;
|
protected internal IDrawer2D drawer;
|
||||||
|
|
||||||
public bool Dirty;
|
|
||||||
protected int widgetIndex;
|
protected int widgetIndex;
|
||||||
internal LauncherWidget[] widgets;
|
internal LauncherWidget[] widgets;
|
||||||
protected Font titleFont, inputFont, inputHintFont;
|
protected Font titleFont, inputFont, inputHintFont;
|
||||||
|
@ -35,7 +35,6 @@ namespace Launcher {
|
|||||||
game.Drawer.DrawRect( col, game.Width / 2 - 160, middle - 100, 320, 1 );
|
game.Drawer.DrawRect( col, game.Width / 2 - 160, middle - 100, 320, 1 );
|
||||||
game.Drawer.DrawRect( col, game.Width / 2 - 160, middle - 10, 320, 1 );
|
game.Drawer.DrawRect( col, game.Width / 2 - 160, middle - 10, 320, 1 );
|
||||||
}
|
}
|
||||||
Dirty = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const string dateFormat = "dd-MM-yyyy HH:mm";
|
const string dateFormat = "dd-MM-yyyy HH:mm";
|
||||||
|
@ -6,13 +6,13 @@ using ClassicalSharp;
|
|||||||
namespace Launcher {
|
namespace Launcher {
|
||||||
|
|
||||||
/// <summary> Widget that represents text can have modified by the user. </summary>
|
/// <summary> Widget that represents text can have modified by the user. </summary>
|
||||||
public sealed class LauncherBooleanWidget : LauncherWidget {
|
public sealed class LauncherBoolWidget : LauncherWidget {
|
||||||
|
|
||||||
public int BoxWidth, BoxHeight;
|
public int BoxWidth, BoxHeight;
|
||||||
public bool Value;
|
public bool Value;
|
||||||
Font font;
|
Font font;
|
||||||
|
|
||||||
public LauncherBooleanWidget( LauncherWindow window, Font font, int width, int height ) : base( window ) {
|
public LauncherBoolWidget( LauncherWindow window, Font font, int width, int height ) : base( window ) {
|
||||||
BoxWidth = width; BoxHeight = height;
|
BoxWidth = width; BoxHeight = height;
|
||||||
Width = width; Height = height;
|
Width = width; Height = height;
|
||||||
this.font = font;
|
this.font = font;
|
@ -43,11 +43,11 @@ namespace Launcher {
|
|||||||
public static void MakeBooleanAt( LauncherWindow game, LauncherWidget[] widgets, ref int widgetIndex,
|
public static void MakeBooleanAt( LauncherWindow game, LauncherWidget[] widgets, ref int widgetIndex,
|
||||||
Anchor horAnchor, Anchor verAnchor, Font font, bool initValue,
|
Anchor horAnchor, Anchor verAnchor, Font font, bool initValue,
|
||||||
int width, int height, int x, int y, Action<int, int> onClick ) {
|
int width, int height, int x, int y, Action<int, int> onClick ) {
|
||||||
LauncherBooleanWidget widget;
|
LauncherBoolWidget widget;
|
||||||
if( widgets[widgetIndex] != null ) {
|
if( widgets[widgetIndex] != null ) {
|
||||||
widget = (LauncherBooleanWidget)widgets[widgetIndex];
|
widget = (LauncherBoolWidget)widgets[widgetIndex];
|
||||||
} else {
|
} else {
|
||||||
widget = new LauncherBooleanWidget( game, font, width, height );
|
widget = new LauncherBoolWidget( game, font, width, height );
|
||||||
widget.Value = initValue;
|
widget.Value = initValue;
|
||||||
widget.OnClick = onClick;
|
widget.OnClick = onClick;
|
||||||
widgets[widgetIndex] = widget;
|
widgets[widgetIndex] = widget;
|
||||||
|
@ -75,9 +75,10 @@
|
|||||||
<Compile Include="Gui\TableWidget\LauncherTableWidget.Input.cs" />
|
<Compile Include="Gui\TableWidget\LauncherTableWidget.Input.cs" />
|
||||||
<Compile Include="Gui\Views\ChooseModeView.cs" />
|
<Compile Include="Gui\Views\ChooseModeView.cs" />
|
||||||
<Compile Include="Gui\Views\ColoursView.cs" />
|
<Compile Include="Gui\Views\ColoursView.cs" />
|
||||||
|
<Compile Include="Gui\Views\DirectConnectView.cs" />
|
||||||
<Compile Include="Gui\Views\IView.cs" />
|
<Compile Include="Gui\Views\IView.cs" />
|
||||||
<Compile Include="Gui\Views\UpdatesView.cs" />
|
<Compile Include="Gui\Views\UpdatesView.cs" />
|
||||||
<Compile Include="Gui\Widgets\LauncherBooleanWidget.cs" />
|
<Compile Include="Gui\Widgets\LauncherBoolWidget.cs" />
|
||||||
<Compile Include="Gui\Widgets\LauncherButtonWidget.cs" />
|
<Compile Include="Gui\Widgets\LauncherButtonWidget.cs" />
|
||||||
<Compile Include="Gui\Widgets\LauncherInputWidget.cs" />
|
<Compile Include="Gui\Widgets\LauncherInputWidget.cs" />
|
||||||
<Compile Include="Gui\Widgets\LauncherLabelWidget.cs" />
|
<Compile Include="Gui\Widgets\LauncherLabelWidget.cs" />
|
||||||
|
Loading…
x
Reference in New Issue
Block a user