Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions Bloxstrap/Bloxstrap.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,12 @@
<EmbeddedResource Include="Resources\IconBloxstrap.ico" />
<EmbeddedResource Include="Resources\IconEarly2015.ico" />
<EmbeddedResource Include="Resources\IconLate2015.ico" />
<EmbeddedResource Include="Resources\IconStudio2013.ico" />
<EmbeddedResource Include="Resources\IconStudio2015.ico" />
<EmbeddedResource Include="Resources\IconStudio2017.ico" />
<EmbeddedResource Include="Resources\IconStudio2021.ico" />
<EmbeddedResource Include="Resources\IconStudio2022.ico" />
<EmbeddedResource Include="Resources\IconStudio2025.ico" />
<EmbeddedResource Include="Resources\Mods\Cursor\From2006\ArrowCursor.png" />
<EmbeddedResource Include="Resources\Mods\Cursor\From2006\ArrowFarCursor.png" />
<EmbeddedResource Include="Resources\Mods\Cursor\From2013\ArrowCursor.png" />
Expand Down
14 changes: 13 additions & 1 deletion Bloxstrap/Enums/BootstrapperIcon.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,18 @@ public enum BootstrapperIcon
[EnumName(FromTranslation = "Common.Custom")]
IconCustom,
[EnumName(FromTranslation = "Enums.BootstrapperStyle.ClassicFluentDialog")]
IconBloxstrapClassic
IconBloxstrapClassic,
[EnumName(StaticName = "2013 (Studio)")]
IconStudio2013,
[EnumName(StaticName = "2015 (Studio)")]
IconStudio2015,
[EnumName(StaticName = "2017 (Studio)")]
IconStudio2017,
[EnumName(StaticName = "2021 (Studio)")]
IconStudio2021,
[EnumName(StaticName = "2022 (Studio)")]
IconStudio2022,
[EnumName(StaticName = "2025 (Studio)")]
IconStudio2025,
}
}
12 changes: 12 additions & 0 deletions Bloxstrap/Extensions/BootstrapperIconEx.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,12 @@ static class BootstrapperIconEx
BootstrapperIcon.IconEarly2015,
BootstrapperIcon.Icon2011,
BootstrapperIcon.Icon2008,
BootstrapperIcon.IconStudio2025,
BootstrapperIcon.IconStudio2022,
BootstrapperIcon.IconStudio2021,
BootstrapperIcon.IconStudio2017,
BootstrapperIcon.IconStudio2015,
BootstrapperIcon.IconStudio2013,
BootstrapperIcon.IconBloxstrapClassic,
BootstrapperIcon.IconCustom
};
Expand Down Expand Up @@ -63,6 +69,12 @@ public static Icon GetIcon(this BootstrapperIcon icon)
BootstrapperIcon.Icon2019 => Properties.Resources.Icon2019,
BootstrapperIcon.Icon2022 => Properties.Resources.Icon2022,
BootstrapperIcon.IconBloxstrapClassic => Properties.Resources.IconBloxstrapClassic,
BootstrapperIcon.IconStudio2013 => Properties.Resources.IconStudio2013,
BootstrapperIcon.IconStudio2015 => Properties.Resources.IconStudio2015,
BootstrapperIcon.IconStudio2017 => Properties.Resources.IconStudio2017,
BootstrapperIcon.IconStudio2021 => Properties.Resources.IconStudio2021,
BootstrapperIcon.IconStudio2022 => Properties.Resources.IconStudio2022,
BootstrapperIcon.IconStudio2025 => Properties.Resources.IconStudio2025,
_ => Properties.Resources.IconBloxstrap
};
}
Expand Down
1 change: 1 addition & 0 deletions Bloxstrap/Models/Persistable/Settings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ public class Settings
// bloxstrap configuration
public BootstrapperStyle BootstrapperStyle { get; set; } = BootstrapperStyle.FluentDialog;
public BootstrapperIcon BootstrapperIcon { get; set; } = BootstrapperIcon.IconBloxstrap;
public BootstrapperIcon StudioBootstrapperIcon { get; set; } = BootstrapperIcon.IconBloxstrap;
public string BootstrapperTitle { get; set; } = App.ProjectName;
public string BootstrapperIconCustomLocation { get; set; } = "";
public Theme Theme { get; set; } = Theme.Default;
Expand Down
72 changes: 72 additions & 0 deletions Bloxstrap/Properties/Resources.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 18 additions & 0 deletions Bloxstrap/Properties/Resources.resx
Original file line number Diff line number Diff line change
Expand Up @@ -157,4 +157,22 @@
<data name="IconBloxstrapClassic" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\IconBloxstrapClassic.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="IconStudio2013" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\IconStudio2013.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="IconStudio2015" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\IconStudio2015.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="IconStudio2017" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\IconStudio2017.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="IconStudio2021" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\IconStudio2021.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="IconStudio2022" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\IconStudio2022.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="IconStudio2025" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\IconStudio2025.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>
Binary file added Bloxstrap/Resources/IconStudio2013.ico
Binary file not shown.
Binary file added Bloxstrap/Resources/IconStudio2015.ico
Binary file not shown.
Binary file added Bloxstrap/Resources/IconStudio2017.ico
Binary file not shown.
Binary file added Bloxstrap/Resources/IconStudio2021.ico
Binary file not shown.
Binary file added Bloxstrap/Resources/IconStudio2022.ico
Binary file not shown.
Binary file added Bloxstrap/Resources/IconStudio2025.ico
Binary file not shown.
9 changes: 9 additions & 0 deletions Bloxstrap/Resources/Strings.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Bloxstrap/Resources/Strings.resx
Original file line number Diff line number Diff line change
Expand Up @@ -1386,4 +1386,7 @@ Defaulting to {1}.</value>
<data name="Menu.FastFlagEditor.AllowlistInformation" xml:space="preserve">
<value>Due to the [Fast Flag allowlist update]({0}), most custom Fast Flags will have no effect on the Roblox player.</value>
</data>
<data name="Menu.Appearance.StudioIcon.Description" xml:space="preserve">
<value>Choose what icon it should use when launching Roblox Studio.</value>
</data>
</root>
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,10 @@ public void ScaleWindow()
public void SetupDialog()
{
Text = App.Settings.Prop.BootstrapperTitle;
Icon = App.Settings.Prop.BootstrapperIcon.GetIcon();
Icon = (App.Bootstrapper?.IsStudioLaunch ?? false
? App.Settings.Prop.StudioBootstrapperIcon
: App.Settings.Prop.BootstrapperIcon)
.GetIcon();

if (Locale.RightToLeft)
{
Expand Down
8 changes: 6 additions & 2 deletions Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,15 @@ public bool CancelEnabled

public ByfronDialog()
{
string version = Utilities.GetRobloxVersionStr(Bootstrapper?.IsStudioLaunch ?? false);
// we use App.Bootstrapper instead of Bootstrapper since Bootstrapper always returns null here
string version = Utilities.GetRobloxVersionStr(App.Bootstrapper?.IsStudioLaunch ?? false);
_viewModel = new ByfronDialogViewModel(this, version);
DataContext = _viewModel;
Title = App.Settings.Prop.BootstrapperTitle;
Icon = App.Settings.Prop.BootstrapperIcon.GetIcon().GetImageSource();
Icon = (App.Bootstrapper?.IsStudioLaunch ?? false
? App.Settings.Prop.StudioBootstrapperIcon
: App.Settings.Prop.BootstrapperIcon)
.GetIcon().GetImageSource();

if (App.Settings.Prop.Theme.GetFinal() == Theme.Light)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,10 @@ public ClassicFluentDialog()
_viewModel = new ClassicFluentDialogViewModel(this);
DataContext = _viewModel;
Title = App.Settings.Prop.BootstrapperTitle;
Icon = App.Settings.Prop.BootstrapperIcon.GetIcon().GetImageSource();
Icon = (App.Bootstrapper?.IsStudioLaunch ?? false
? App.Settings.Prop.StudioBootstrapperIcon
: App.Settings.Prop.BootstrapperIcon)
.GetIcon().GetImageSource();
}

private void UiWindow_Closing(object sender, CancelEventArgs e)
Expand Down
5 changes: 4 additions & 1 deletion Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,10 @@ public CustomDialog()
_viewModel = new BootstrapperDialogViewModel(this);
DataContext = _viewModel;
Title = App.Settings.Prop.BootstrapperTitle;
Icon = App.Settings.Prop.BootstrapperIcon.GetIcon().GetImageSource();
Icon = (App.Bootstrapper?.IsStudioLaunch ?? false
? App.Settings.Prop.StudioBootstrapperIcon
: App.Settings.Prop.BootstrapperIcon)
.GetIcon().GetImageSource();
}

private void UiWindow_Closing(object sender, CancelEventArgs e)
Expand Down
5 changes: 4 additions & 1 deletion Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,10 @@ public FluentDialog(bool aero)
_viewModel = new FluentDialogViewModel(this, aero);
DataContext = _viewModel;
Title = App.Settings.Prop.BootstrapperTitle;
Icon = App.Settings.Prop.BootstrapperIcon.GetIcon().GetImageSource();
Icon = (App.Bootstrapper?.IsStudioLaunch ?? false
? App.Settings.Prop.StudioBootstrapperIcon
: App.Settings.Prop.BootstrapperIcon)
.GetIcon().GetImageSource();

// setting this to true for mica results in the window being undraggable
if (aero)
Expand Down
5 changes: 4 additions & 1 deletion Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,10 @@ public LegacyDialog2011()
{
InitializeComponent();

this.IconBox.BackgroundImage = App.Settings.Prop.BootstrapperIcon.GetIcon().ToBitmap();
this.IconBox.BackgroundImage = (App.Bootstrapper?.IsStudioLaunch ?? false
? App.Settings.Prop.StudioBootstrapperIcon
: App.Settings.Prop.BootstrapperIcon)
.GetIcon().ToBitmap();
this.buttonCancel.Text = Strings.Common_Cancel;

ScaleWindow();
Expand Down
5 changes: 4 additions & 1 deletion Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,10 @@ public ProgressDialog()

this.labelMessage.Text = Strings.Bootstrapper_StylePreview_TextCancel;
this.buttonCancel.Text = Strings.Common_Cancel;
this.IconBox.BackgroundImage = App.Settings.Prop.BootstrapperIcon.GetIcon().GetSized(128, 128).ToBitmap();
this.IconBox.BackgroundImage = (App.Bootstrapper?.IsStudioLaunch ?? false
? App.Settings.Prop.StudioBootstrapperIcon
: App.Settings.Prop.BootstrapperIcon)
.GetIcon().GetSized(128, 128).ToBitmap();

SetupDialog();

Expand Down
6 changes: 5 additions & 1 deletion Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,11 @@ public VistaDialog()

_dialogPage = new TaskDialogPage()
{
Icon = new TaskDialogIcon(App.Settings.Prop.BootstrapperIcon.GetIcon()),
Icon = new TaskDialogIcon((App.Bootstrapper?.IsStudioLaunch ?? false
? App.Settings.Prop.StudioBootstrapperIcon
: App.Settings.Prop.BootstrapperIcon)
.GetIcon()
),
Caption = App.Settings.Prop.BootstrapperTitle,
RightToLeftLayout = Locale.RightToLeft,

Expand Down
21 changes: 21 additions & 0 deletions Bloxstrap/UI/Elements/Settings/Pages/AppearancePage.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,27 @@
</ComboBox>
</controls:OptionControl>

<controls:OptionControl
x:Name="StudioIconSelector"
Header="{Binding Source={x:Static resources:Strings.Menu_Appearance_Icon_Title}, StringFormat='Roblox Studio {0}'}"
Description="{x:Static resources:Strings.Menu_Appearance_StudioIcon_Description}"
Visibility="{Binding ShowStudioIconSetting}">
<ComboBox Width="200" Padding="10,5,10,5" ItemsSource="{Binding Icons, Mode=OneWay}" SelectedValuePath="IconType" SelectedValue="{Binding StudioIcon, Mode=TwoWay}">
<ComboBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="16" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image Height="16" Source="{Binding ImageSource, Mode=OneWay}" RenderOptions.BitmapScalingMode="HighQuality" />
<TextBlock Grid.Column="1" Margin="8,0,0,0" Text="{Binding Path=IconType, Converter={StaticResource EnumNameConverter}}" />
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</controls:OptionControl>

<ui:CardExpander Margin="0,8,0,0" IsExpanded="True">
<ui:CardExpander.Header>
<Grid>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@ public class BootstrapperDialogViewModel : NotifyPropertyChangedViewModel
public ICommand CancelInstallCommand => new RelayCommand(CancelInstall);

public string Title => App.Settings.Prop.BootstrapperTitle;
public ImageSource Icon { get; set; } = App.Settings.Prop.BootstrapperIcon.GetIcon().GetImageSource();
public ImageSource Icon { get; set; } = (App.Bootstrapper?.IsStudioLaunch ?? false
? App.Settings.Prop.StudioBootstrapperIcon
: App.Settings.Prop.BootstrapperIcon)
.GetIcon().GetImageSource();
public string Message { get; set; } = "Please wait...";
public bool ProgressIndeterminate { get; set; } = true;
public int ProgressMaximum { get; set; } = 0;
Expand Down
12 changes: 12 additions & 0 deletions Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ public class AppearanceViewModel : NotifyPropertyChangedViewModel
public ICommand EditCustomThemeCommand => new RelayCommand(EditCustomTheme);
public ICommand ExportCustomThemeCommand => new RelayCommand(ExportCustomTheme);

public Visibility ShowStudioIconSetting => App.IsStudioInstalled ? Visibility.Visible : Visibility.Collapsed;

private void PreviewBootstrapper()
{
IBootstrapperDialog dialog = App.Settings.Prop.BootstrapperStyle.GetNew();
Expand Down Expand Up @@ -106,6 +108,12 @@ public BootstrapperIcon Icon
set => App.Settings.Prop.BootstrapperIcon = value;
}

public BootstrapperIcon StudioIcon
{
get => App.Settings.Prop.StudioBootstrapperIcon;
set => App.Settings.Prop.StudioBootstrapperIcon = value;
}

public string Title
{
get => App.Settings.Prop.BootstrapperTitle;
Expand All @@ -121,10 +129,14 @@ public string CustomIconLocation
{
if (App.Settings.Prop.BootstrapperIcon == BootstrapperIcon.IconCustom)
App.Settings.Prop.BootstrapperIcon = BootstrapperIcon.IconBloxstrap;

if (App.Settings.Prop.StudioBootstrapperIcon == BootstrapperIcon.IconCustom)
App.Settings.Prop.StudioBootstrapperIcon = BootstrapperIcon.IconBloxstrap;
}
else
{
App.Settings.Prop.BootstrapperIcon = BootstrapperIcon.IconCustom;
App.Settings.Prop.StudioBootstrapperIcon = BootstrapperIcon.IconCustom;
}

App.Settings.Prop.BootstrapperIconCustomLocation = value;
Expand Down