From 446c7aaf84b22bfcbae4aea57d2c64a4bddd9e77 Mon Sep 17 00:00:00 2001 From: gabrielpatzleiner Date: Thu, 3 Apr 2014 21:28:00 +0200 Subject: [PATCH] Version 1.0.4.8 - Updated to Awesomium 1.7.4 - Updated the Function to Append the Formatted Text to the Serverlist. It now supports Obfuscated Text - Added a AspectRatioLayoutDecorator - Replaced Mods download Progressbar with a Progressdialog - The Progress of the Library download is shown between every Libary - Fixed Forge Download Link - Updated Versions Download. It now compares the Hash - Changed the Serverlist Font - rebuild performance counter setting from system backup in the Setup. Fixes #54 - Added a Progressdialog for the Tools Download. Closes #43 --- ...chTextBox.xaml => BindableRichTextBox.xaml | 0 ...Box.xaml.vb => BindableRichTextBox.xaml.vb | 0 .../Controls/AspectRatioLayoutDecorator.vb | 86 ++++++ .../Controls/BindableRichTextBox.vb | 33 ++ MinecraftLauncher/Fonts/Minecraft.ttf | Bin 0 -> 15700 bytes MinecraftLauncher/Fonts/Minecraftia.ttf | Bin 0 -> 18236 bytes MinecraftLauncher/Fonts/ProFontWindows.ttf | Bin 0 -> 51120 bytes MinecraftLauncher/MainWindow.xaml | 74 ++--- MinecraftLauncher/MainWindow.xaml.vb | 284 ++++++++++++------ MinecraftLauncher/McMetroLauncher.vbproj | 22 +- .../Models/BindableRichTextBox.xaml.vb | 35 +++ .../Models/CryptedTextAnimation.vb | 66 ++++ MinecraftLauncher/Models/Forge.vb | 7 +- MinecraftLauncher/Models/Formattingcodes.vb | 42 +-- MinecraftLauncher/My Project/AssemblyInfo.vb | 4 +- .../Windows/Forge_installer.xaml.vb | 22 +- .../Windows/LiteLoader_installer.xaml.vb | 3 +- .../Windows/ProfileEditor.xaml.vb | 22 +- MinecraftLauncher/Windows/SplashScreen.xaml | 3 +- .../Windows/SplashScreen.xaml.vb | 9 +- Setup/Product.wxs | 21 +- 21 files changed, 543 insertions(+), 190 deletions(-) rename MinecraftLauncher/Controls/BindableRichTextBox.xaml => BindableRichTextBox.xaml (100%) rename MinecraftLauncher/Controls/BindableRichTextBox.xaml.vb => BindableRichTextBox.xaml.vb (100%) create mode 100644 MinecraftLauncher/Controls/AspectRatioLayoutDecorator.vb create mode 100644 MinecraftLauncher/Controls/BindableRichTextBox.vb create mode 100644 MinecraftLauncher/Fonts/Minecraft.ttf create mode 100644 MinecraftLauncher/Fonts/Minecraftia.ttf create mode 100644 MinecraftLauncher/Fonts/ProFontWindows.ttf create mode 100644 MinecraftLauncher/Models/BindableRichTextBox.xaml.vb create mode 100644 MinecraftLauncher/Models/CryptedTextAnimation.vb diff --git a/MinecraftLauncher/Controls/BindableRichTextBox.xaml b/BindableRichTextBox.xaml similarity index 100% rename from MinecraftLauncher/Controls/BindableRichTextBox.xaml rename to BindableRichTextBox.xaml diff --git a/MinecraftLauncher/Controls/BindableRichTextBox.xaml.vb b/BindableRichTextBox.xaml.vb similarity index 100% rename from MinecraftLauncher/Controls/BindableRichTextBox.xaml.vb rename to BindableRichTextBox.xaml.vb diff --git a/MinecraftLauncher/Controls/AspectRatioLayoutDecorator.vb b/MinecraftLauncher/Controls/AspectRatioLayoutDecorator.vb new file mode 100644 index 0000000..521b397 --- /dev/null +++ b/MinecraftLauncher/Controls/AspectRatioLayoutDecorator.vb @@ -0,0 +1,86 @@ +Imports System.Windows + +Public Class AspectRatioLayoutDecorator + Inherits Decorator + Public Shared ReadOnly AspectRatioProperty As DependencyProperty = DependencyProperty.Register("AspectRatio", + GetType(Double), + GetType(AspectRatioLayoutDecorator), + New FrameworkPropertyMetadata(1.0, FrameworkPropertyMetadataOptions.AffectsMeasure), + New ValidateValueCallback(AddressOf ValidateAspectRatio)) + + Private Shared Function ValidateAspectRatio(value As Object) As Boolean + If Not (TypeOf value Is Double) Then + Return False + End If + + Dim aspectRatio = CDbl(value) + Return aspectRatio > 0 AndAlso Not Double.IsInfinity(aspectRatio) AndAlso Not Double.IsNaN(aspectRatio) + End Function + + Public Property AspectRatio() As Double + Get + Return CDbl(GetValue(AspectRatioProperty)) + End Get + Set(value As Double) + SetValue(AspectRatioProperty, value) + End Set + End Property + + Protected Overrides Function MeasureOverride(constraint As Size) As Size + If Child IsNot Nothing Then + constraint = SizeToRatio(constraint, False) + Child.Measure(constraint) + + If Double.IsInfinity(constraint.Width) OrElse Double.IsInfinity(constraint.Height) Then + Return SizeToRatio(Child.DesiredSize, True) + End If + + Return constraint + End If + + ' we don't have a child, so we don't need any space + Return New Size(0, 0) + End Function + + Public Function SizeToRatio(size As Size, expand As Boolean) As Size + Dim ratio As Double = AspectRatio + + Dim height As Double = size.Width / ratio + Dim width As Double = size.Height * ratio + + If expand Then + width = Math.Max(width, size.Width) + height = Math.Max(height, size.Height) + Else + width = Math.Min(width, size.Width) + height = Math.Min(height, size.Height) + End If + + Return New Size(width, height) + End Function + + Protected Overrides Function ArrangeOverride(arrangeSize As Size) As Size + If Child IsNot Nothing Then + Dim newSize = SizeToRatio(arrangeSize, False) + + Dim widthDelta As Double = arrangeSize.Width - newSize.Width + Dim heightDelta As Double = arrangeSize.Height - newSize.Height + + Dim top As Double = 0 + Dim left As Double = 0 + + If Not Double.IsNaN(widthDelta) AndAlso Not Double.IsInfinity(widthDelta) Then + left = widthDelta / 2 + End If + + If Not Double.IsNaN(heightDelta) AndAlso Not Double.IsInfinity(heightDelta) Then + top = heightDelta / 2 + End If + + Dim finalRect = New Rect(New Point(left, top), newSize) + Child.Arrange(finalRect) + End If + + Return arrangeSize + End Function +End Class diff --git a/MinecraftLauncher/Controls/BindableRichTextBox.vb b/MinecraftLauncher/Controls/BindableRichTextBox.vb new file mode 100644 index 0000000..7be147f --- /dev/null +++ b/MinecraftLauncher/Controls/BindableRichTextBox.vb @@ -0,0 +1,33 @@ +Public Class BindableRichTextBox + Inherits RichTextBox + 'disable the control from ever being able to gain focus: + + + + + Public Shared DocumentProperty As DependencyProperty = DependencyProperty.Register("Document", GetType(FlowDocument), + GetType(BindableRichTextBox), New FrameworkPropertyMetadata(Nothing, + New PropertyChangedCallback(AddressOf OnDocumentChanged))) + + Sub New() + MyBase.New() + Me.IsReadOnly = False + Me.IsDocumentEnabled = True + + End Sub + + Public Shadows Property Document() As FlowDocument + Get + Return DirectCast(Me.GetValue(DocumentProperty), FlowDocument) + End Get + + Set(value As FlowDocument) + Me.SetValue(DocumentProperty, value) + End Set + End Property + + Public Shared Sub OnDocumentChanged(obj As DependencyObject, args As DependencyPropertyChangedEventArgs) + Dim rtb As RichTextBox = DirectCast(obj, RichTextBox) + rtb.Document = DirectCast(args.NewValue, FlowDocument) + End Sub +End Class \ No newline at end of file diff --git a/MinecraftLauncher/Fonts/Minecraft.ttf b/MinecraftLauncher/Fonts/Minecraft.ttf new file mode 100644 index 0000000000000000000000000000000000000000..61b4610bd20cd58a9782bd5e1cc8f217a9858f30 GIT binary patch literal 15700 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

7l7Q*LSsC>SxRe9Gag{aTu8=lDCA`(*}G`|R< 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 + Title="McMetroLauncher" Height="610" Width="950" + ForceCursor="True" MinHeight="610" MinWidth="950" Icon="images/favicon.ico" ResizeMode="CanResizeWithGrip" UseLayoutRounding="False" ScrollViewer.CanContentScroll="True" > @@ -24,6 +24,9 @@ +