- add: Content viewer
This commit is contained in:
1
.idea/.idea.Nebula/.idea/avalonia.xml
generated
1
.idea/.idea.Nebula/.idea/avalonia.xml
generated
@@ -13,6 +13,7 @@
|
|||||||
<entry key="Nebula.Launcher/Views/MainWindow.axaml" value="Nebula.Launcher/Nebula.Launcher.csproj" />
|
<entry key="Nebula.Launcher/Views/MainWindow.axaml" value="Nebula.Launcher/Nebula.Launcher.csproj" />
|
||||||
<entry key="Nebula.Launcher/Views/Pages/AccountInfoPage.axaml" value="Nebula.Launcher/Nebula.Launcher.csproj" />
|
<entry key="Nebula.Launcher/Views/Pages/AccountInfoPage.axaml" value="Nebula.Launcher/Nebula.Launcher.csproj" />
|
||||||
<entry key="Nebula.Launcher/Views/Pages/AccountInfoView.axaml" value="Nebula.Launcher/Nebula.Launcher.csproj" />
|
<entry key="Nebula.Launcher/Views/Pages/AccountInfoView.axaml" value="Nebula.Launcher/Nebula.Launcher.csproj" />
|
||||||
|
<entry key="Nebula.Launcher/Views/Pages/ContentBrowserView.axaml" value="Nebula.Launcher/Nebula.Launcher.csproj" />
|
||||||
<entry key="Nebula.Launcher/Views/Pages/ServerListPage.axaml" value="Nebula.Launcher/Nebula.Launcher.csproj" />
|
<entry key="Nebula.Launcher/Views/Pages/ServerListPage.axaml" value="Nebula.Launcher/Nebula.Launcher.csproj" />
|
||||||
<entry key="Nebula.Launcher/Views/Pages/ServerListView.axaml" value="Nebula.Launcher/Nebula.Launcher.csproj" />
|
<entry key="Nebula.Launcher/Views/Pages/ServerListView.axaml" value="Nebula.Launcher/Nebula.Launcher.csproj" />
|
||||||
<entry key="Nebula.Launcher/Views/Popup/ExceptionView.axaml" value="Nebula.Launcher/Nebula.Launcher.csproj" />
|
<entry key="Nebula.Launcher/Views/Popup/ExceptionView.axaml" value="Nebula.Launcher/Nebula.Launcher.csproj" />
|
||||||
|
|||||||
48
Nebula.Launcher/ViewModels/ContentBrowserViewModel.cs
Normal file
48
Nebula.Launcher/ViewModels/ContentBrowserViewModel.cs
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
|
using Nebula.Launcher.ViewHelper;
|
||||||
|
using Nebula.Launcher.Views.Pages;
|
||||||
|
using Nebula.Shared.Models;
|
||||||
|
|
||||||
|
namespace Nebula.Launcher.ViewModels;
|
||||||
|
|
||||||
|
[ViewModelRegister(typeof(ContentBrowserView))]
|
||||||
|
public sealed partial class ContentBrowserViewModel : ViewModelBase
|
||||||
|
{
|
||||||
|
public ObservableCollection<ContentEntry> Entries = new();
|
||||||
|
|
||||||
|
[ObservableProperty] private string _message = "";
|
||||||
|
[ObservableProperty] private string _searchText = "";
|
||||||
|
|
||||||
|
|
||||||
|
public ContentBrowserViewModel() : base()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public ContentBrowserViewModel(IServiceProvider provider) : base(provider)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void OnBackEnter()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnGoEnter()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class ContentEntry
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class ContentPath
|
||||||
|
{
|
||||||
|
public RobustUrl ServerUrl;
|
||||||
|
}
|
||||||
39
Nebula.Launcher/Views/Pages/ContentBrowserView.axaml
Normal file
39
Nebula.Launcher/Views/Pages/ContentBrowserView.axaml
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
<UserControl xmlns="https://github.com/avaloniaui"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:viewModels="clr-namespace:Nebula.Launcher.ViewModels"
|
||||||
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
|
x:Class="Nebula.Launcher.Views.Pages.ContentBrowserView"
|
||||||
|
x:DataType="viewModels:ContentBrowserViewModel">
|
||||||
|
<Design.DataContext>
|
||||||
|
<viewModels:ContentBrowserViewModel />
|
||||||
|
</Design.DataContext>
|
||||||
|
|
||||||
|
<StackPanel>
|
||||||
|
<Border
|
||||||
|
BorderThickness="2,0,0,0"
|
||||||
|
CornerRadius="10"
|
||||||
|
Grid.Row="1">
|
||||||
|
<Grid ColumnDefinitions="*,40,40" RowDefinitions="*">
|
||||||
|
<TextBox
|
||||||
|
Margin="0"
|
||||||
|
Text="{Binding SearchText}"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Watermark="Server name..." />
|
||||||
|
<Button
|
||||||
|
Command="{Binding OnBackEnter}"
|
||||||
|
Grid.Column="1"
|
||||||
|
Padding="10">
|
||||||
|
<Image Source="/Assets/filter.png" />
|
||||||
|
</Button>
|
||||||
|
<Button
|
||||||
|
Command="{Binding OnGoEnter}"
|
||||||
|
Grid.Column="2"
|
||||||
|
Padding="10">
|
||||||
|
<Image Source="/Assets/refresh.png" />
|
||||||
|
</Button>
|
||||||
|
</Grid>
|
||||||
|
</Border>
|
||||||
|
</StackPanel>
|
||||||
|
</UserControl>
|
||||||
20
Nebula.Launcher/Views/Pages/ContentBrowserView.axaml.cs
Normal file
20
Nebula.Launcher/Views/Pages/ContentBrowserView.axaml.cs
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
using Avalonia;
|
||||||
|
using Avalonia.Controls;
|
||||||
|
using Avalonia.Markup.Xaml;
|
||||||
|
using Nebula.Launcher.ViewModels;
|
||||||
|
|
||||||
|
namespace Nebula.Launcher.Views.Pages;
|
||||||
|
|
||||||
|
public partial class ContentBrowserView : UserControl
|
||||||
|
{
|
||||||
|
public ContentBrowserView()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ContentBrowserView(ContentBrowserViewModel viewModel)
|
||||||
|
: this()
|
||||||
|
{
|
||||||
|
DataContext = viewModel;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
<viewModels:ServerListViewModel />
|
<viewModels:ServerListViewModel />
|
||||||
</Design.DataContext>
|
</Design.DataContext>
|
||||||
|
|
||||||
<Grid ColumnDefinitions="*" RowDefinitions="*,40">
|
<Grid ColumnDefinitions="*" RowDefinitions="*,40" Margin="15">
|
||||||
<ScrollViewer Margin="0,0,0,10" Padding="0,0,8,0">
|
<ScrollViewer Margin="0,0,0,10" Padding="0,0,8,0">
|
||||||
<ItemsControl
|
<ItemsControl
|
||||||
Background="#00000000"
|
Background="#00000000"
|
||||||
|
|||||||
Reference in New Issue
Block a user