- 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/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/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/ServerListView.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 />
|
||||
</Design.DataContext>
|
||||
|
||||
<Grid ColumnDefinitions="*" RowDefinitions="*,40">
|
||||
<Grid ColumnDefinitions="*" RowDefinitions="*,40" Margin="15">
|
||||
<ScrollViewer Margin="0,0,0,10" Padding="0,0,8,0">
|
||||
<ItemsControl
|
||||
Background="#00000000"
|
||||
|
||||
Reference in New Issue
Block a user