First pass at some styling

This commit is contained in:
watsonb8 2019-12-01 06:53:30 -05:00
parent ee0f8afd86
commit 061adabff8
14 changed files with 151 additions and 197 deletions

View File

@ -1,112 +1,62 @@
<Project
Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<ProduceAssemblyReference>true</ProduceAssemblyReference>
</PropertyGroup>
<PropertyGroup
Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DebugType>pdbonly</DebugType>
<DebugSymbols>true</DebugSymbols>
</PropertyGroup>
<ItemGroup>
<PackageReference
Include="Xamarin.Forms"
Version="4.3.0.991211"/>
<PackageReference
Include="Xamarin.Essentials"
Version="1.3.1"/>
<PackageReference
Include="Xamarin.Forms.DataGrid"
Version="3.1.0"/>
<PackageReference
Include="taglib-sharp-netstandard2.0"
Version="2.1.0"/>
<PackageReference
Include="LibVLCSharp.Forms"
Version="3.3.1"/>
<PackageReference
Include="VideoLAN.LibVLC.Mac"
Version="3.1.3.1"/>
<PackageReference
Include="Grpc"
Version="2.25.0"/>
<PackageReference
Include="Grpc.Tools"
Version="2.25.0"
PrivateAssests="All">
<PackageReference Include="Xamarin.Forms" Version="4.3.0.991211" />
<PackageReference Include="Xamarin.Essentials" Version="1.3.1" />
<PackageReference Include="Xamarin.Forms.DataGrid" Version="3.1.0" />
<PackageReference Include="taglib-sharp-netstandard2.0" Version="2.1.0" />
<PackageReference Include="LibVLCSharp.Forms" Version="3.3.1" />
<PackageReference Include="VideoLAN.LibVLC.Mac" Version="3.1.3.1" />
<PackageReference Include="Grpc" Version="2.25.0" />
<PackageReference Include="Grpc.Tools" Version="2.25.0" PrivateAssests="All">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference
Include="Google.Protobuf"
Version="3.10.1"/>
<PackageReference
Include="Xam.Plugins.Settings"
Version="3.1.1"/>
<PackageReference
Include="Sharpnado.Forms.HorizontalListView"
Version="1.3.0"/>
<PackageReference Include="Google.Protobuf" Version="3.10.1" />
<PackageReference Include="Xam.Plugins.Settings" Version="3.1.1" />
<PackageReference Include="Sharpnado.Forms.HorizontalListView" Version="1.3.0" />
</ItemGroup>
<ItemGroup>
<Folder
Include="Design\"/>
<Folder
Include="Design\Components\"/>
<Folder
Include="Design\Views\"/>
<Folder
Include="Design\Views\Songs\"/>
<Folder
Include="Design\Views\MainView\"/>
<Folder
Include="Design\Behaviors\"/>
<Folder
Include="Design\Components\NavigationMenu\"/>
<Folder
Include="Design\Views\Albums\"/>
<Folder
Include="Design\Views\Artists\"/>
<Folder
Include="Design\Views\Stations\"/>
<Folder
Include="Utils\"/>
<Folder
Include="Models\"/>
<Folder
Include="Services\"/>
<Folder
Include="Design\Views\Party\"/>
<Folder
Include="Design\Components\HostSelector\"/>
<Folder
Include="Design\Components\MemberList\"/>
<Folder
Include="Design\Components\Queue\"/>
<Folder
Include="Design\Views\Profile\"/>
<Folder Include="Design\" />
<Folder Include="Design\Components\" />
<Folder Include="Design\Views\" />
<Folder Include="Design\Views\Songs\" />
<Folder Include="Design\Views\MainView\" />
<Folder Include="Design\Behaviors\" />
<Folder Include="Design\Components\NavigationMenu\" />
<Folder Include="Design\Views\Albums\" />
<Folder Include="Design\Views\Artists\" />
<Folder Include="Design\Views\Stations\" />
<Folder Include="Utils\" />
<Folder Include="Models\" />
<Folder Include="Services\" />
<Folder Include="Design\Views\Party\" />
<Folder Include="Design\Components\HostSelector\" />
<Folder Include="Design\Components\MemberList\" />
<Folder Include="Design\Components\Library\" />
<Folder Include="Design\Views\Profile\" />
</ItemGroup>
<ItemGroup>
<Compile
Update="Design\Components\MusicPlayer\Player.xaml.cs">
<Compile Update="Design\Components\MusicPlayer\Player.xaml.cs">
<DependentUpon>Player.xaml</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<Protobuf
Include="Proto\general.proto"/>
<Protobuf
Include="Proto\party.proto"/>
<Protobuf
Include="Proto\events.proto"/>
<Protobuf
Include="Proto\playback.proto"/>
<Protobuf
Include="Proto\sync.proto"/>
<Protobuf Include="Proto\general.proto" />
<Protobuf Include="Proto\party.proto" />
<Protobuf Include="Proto\events.proto" />
<Protobuf Include="Proto\playback.proto" />
<Protobuf Include="Proto\sync.proto" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource
Update="Design\Components\NavigationMenu\NavigationMenu.css">
<EmbeddedResource Update="Design\Components\NavigationMenu\NavigationMenu.css">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</EmbeddedResource>
</ItemGroup>

View File

@ -0,0 +1,3 @@
#LibraryDataGrid {
background-color: black
}

View File

@ -3,10 +3,10 @@
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:dg="clr-namespace:Xamarin.Forms.DataGrid;assembly=Xamarin.Forms.DataGrid"
x:Class="Aurora.Design.Components.Queue.Queue">
x:Class="Aurora.Design.Components.Library.Library">
<ContentView.Content>
<dg:DataGrid
x:Name="QueueDataGrid"
x:Name="LibraryDataGrid"
SelectionEnabled="True"
RowHeight="25"
HeaderHeight="40"

View File

@ -5,14 +5,14 @@ using Xamarin.Forms;
using Xamarin.Forms.DataGrid;
using Aurora.Models.Media;
namespace Aurora.Design.Components.Queue
namespace Aurora.Design.Components.Library
{
public partial class Queue : ContentView
public partial class Library : ContentView
{
public Queue()
public Library()
{
InitializeComponent();
this.QueueDataGrid.ItemSelected += (sender, e) =>
this.LibraryDataGrid.ItemSelected += (sender, e) =>
{
this.SelectedItem = e.SelectedItem;
};
@ -28,7 +28,7 @@ namespace Aurora.Design.Components.Queue
public static readonly BindableProperty ItemsSourceProperty =
BindableProperty.Create(propertyName: "ItemsSource",
returnType: typeof(IEnumerable<object>),
declaringType: typeof(Queue),
declaringType: typeof(Library),
defaultBindingMode: BindingMode.Default,
propertyChanged: OnItemsSourceChanged);
@ -56,9 +56,10 @@ namespace Aurora.Design.Components.Queue
/// <param name="newValue"></param>
private static void OnItemsSourceChanged(BindableObject bindable, object oldValue, object newValue)
{
Queue control = bindable as Queue;
var queueDataGrid = control.FindByName("QueueDataGrid") as DataGrid;
queueDataGrid.ItemsSource = newValue as IEnumerable<object>;
Library control = bindable as Library;
var libraryDataGrid = control.LibraryDataGrid;
libraryDataGrid.ItemsSource = newValue as IEnumerable<object>;
}
#endregion ItemsSource Property
@ -72,7 +73,7 @@ namespace Aurora.Design.Components.Queue
public static readonly BindableProperty SelectedItemProperty =
BindableProperty.Create(propertyName: "SelectedItem",
returnType: typeof(object),
declaringType: typeof(Queue),
declaringType: typeof(Library),
defaultBindingMode: BindingMode.TwoWay);
/// <summary>
@ -101,7 +102,7 @@ namespace Aurora.Design.Components.Queue
public static readonly BindableProperty ItemDoubleClickedProperty =
BindableProperty.Create(propertyName: "ItemDoubleClicked",
returnType: typeof(Command),
declaringType: typeof(Queue),
declaringType: typeof(Library),
propertyChanged: OnDoubleClickPropertyChanged);
/// <summary>
@ -128,8 +129,8 @@ namespace Aurora.Design.Components.Queue
/// <param name="oldValue"></param>
private static void OnDoubleClickPropertyChanged(BindableObject bindable, object newValue, object oldValue)
{
Queue control = bindable as Queue;
var queueDataGrid = control.QueueDataGrid;
Library control = bindable as Library;
var queueDataGrid = control.LibraryDataGrid;
if (queueDataGrid.GestureRecognizers.Count > 0)
{
var gestureRecognizer = queueDataGrid.GestureRecognizers.First();

View File

@ -4,21 +4,29 @@
ListView {
background-color: #232323;
margin-left: 20;
margin-top: 20;
margin-left: 15;
margin-top: 40;
}
#GroupTemplate Label {
color: white;
font-size: 14;
font-family: Courier New, Courier, monospace;
font-weight: 100;
margin-top: 500;
#GroupTemplate {
align-items: end;
}
#ItemTemplate label {
color: white;
font-size: 18;
#GroupCell Label {
color: lightgray;
background-color: #232323;
font-size: 12;
font-family: Courier New, Courier, monospace;
font-weight: 400;
font-style: italic;
padding-top: 18;
}
#ItemCell label {
color: white;
background-color: #232323;
font-size: 15;
font-family: Courier New, Courier, monospace;
font-style: normal;
text-align: left;
padding-top: 12;
}

View File

@ -14,18 +14,20 @@
SeparatorVisibility="None"
HasUnevenRows="true"
IsGroupingEnabled="true"
RowHeight="35"
CachingStrategy="RecycleElement">
<ListView.GroupHeaderTemplate>
<DataTemplate>
<ViewCell x:Name="GroupTemplate">
<ViewCell x:Name="GroupCell">
<Label
VerticalTextAlignment="Center"
Text="{Binding GroupHeading}"/>
</ViewCell>
</DataTemplate>
</ListView.GroupHeaderTemplate>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell x:Name="ItemTemplate">
<ViewCell x:Name="ItemCell">
<Label
Text="{Binding Title}"/>
</ViewCell>

View File

@ -11,10 +11,13 @@ namespace Aurora.Design.Components.NavigationMenu
{
InitializeComponent();
ListView = MenuItemsListView;
}
public ListView ListView;
public static readonly BindableProperty ItemsProperty =
BindableProperty.Create(propertyName: nameof(Items),
returnType: typeof(ObservableCollection<NavigationItem>),

View File

@ -0,0 +1,13 @@
^ContentPage {
background-color: #232323;
}
#Header {
background-color: #232323;
}
#Header > Entry {
margin-left: 155;
margin-top: 2;
margin-bottom: 2;
}

View File

@ -4,20 +4,50 @@
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:views="clr-namespace:Aurora.Design.Views.MainView"
xmlns:navigation="clr-namespace:Aurora.Design.Components.NavigationMenu"
xmlns:mp="clr-namespace:Aurora.Design.Components.MediaPlayer"
x:Class="Aurora.Design.Views.Main.MainView">
<ContentPage.Resources>
<StyleSheet
Source="MainView.css"/>
</ContentPage.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="28"/>
<RowDefinition Height="*"/>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<!--Header-->
<StackLayout
x:Name="Header"
Orientation="Horizontal">
<Entry Text="Search"/>
</StackLayout>
<navigation:NavigationMenu
<!--Library Grid-->
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<navigation:NavigationMenu
Grid.Column="0"
x:Name="MasterPage"
Items="{Binding Pages}"/>
<views:PageContainer
Grid.Column="1"
x:Name="ContentPage"/>
<views:PageContainer
Grid.Column="1"
Grid.Row="0"
x:Name="ContentPage"/>
</Grid>
<!--Music Player-->
<mp:Player
x:Name="Player"
Grid.Row="2"
HorizontalOptions="Center"
HeightRequest="50"/>
</Grid>
</ContentPage>

View File

@ -33,7 +33,7 @@ namespace Aurora.Design.Views.Main
BindingContext = new MainViewModel();
_viewModels = new Dictionary<int, BaseViewModel>();
_player = (Player)ContentPage.FindByName("Player");
_player = Player;
_viewContent = (ContentPresenter)ContentPage.Content.FindByName("ViewContent");
MasterPage.ListView.ItemSelected += OnNavItemSelected;

View File

@ -32,12 +32,13 @@ namespace Aurora.Design.Views.MainView
{
_pages = new ObservableCollection<NavigationItem>(new[]
{
new NavigationItem { Id = 0, Title = "Songs", Group="Library", TargetType = typeof(SongsView), TargetViewModelType = typeof(SongsViewModel) },
new NavigationItem { Id = 1, Title = "Artists", Group="Library", TargetType = typeof(ArtistsView), TargetViewModelType = typeof(ArtistsViewModel)},
new NavigationItem { Id = 2, Title = "Albums", Group="Library", TargetType = typeof(AlbumsView), TargetViewModelType = typeof(AlbumsViewModel)},
new NavigationItem { Id = 3, Title = "Stations", Group="Library", TargetType = typeof(StationsView), TargetViewModelType = typeof(StationsViewModel)},
new NavigationItem { Id = 0, Title = "Songs", Group="Your Music", TargetType = typeof(SongsView), TargetViewModelType = typeof(SongsViewModel) },
new NavigationItem { Id = 1, Title = "Artists", Group="Your Music", TargetType = typeof(ArtistsView), TargetViewModelType = typeof(ArtistsViewModel)},
new NavigationItem { Id = 2, Title = "Albums", Group="Your Music", TargetType = typeof(AlbumsView), TargetViewModelType = typeof(AlbumsViewModel)},
new NavigationItem { Id = 3, Title = "Stations", Group="Your Music", TargetType = typeof(StationsView), TargetViewModelType = typeof(StationsViewModel)},
new NavigationItem { Id = 4, Title = "Party", Group="Social", TargetType = typeof(PartyView), TargetViewModelType = typeof(PartyViewModel)},
new NavigationItem { Id = 5, Title = "Profile", Group="Social", TargetType = typeof(ProfileView), TargetViewModelType = typeof(ProfileViewModel)},
new NavigationItem { Id = 6, Title = "A + B", Group="Playlists", TargetType = typeof(StationsView), TargetViewModelType = typeof(StationsViewModel)}
});
}

View File

@ -1,28 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<ContentView
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:components="clr-namespace:Aurora.Design.Components"
xmlns:mp="clr-namespace:Aurora.Design.Components.MediaPlayer"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Aurora.Design.Views.MainView.PageContainer">
<ContentView.Content>
<Grid
x:Name="Grid">
<Grid.RowDefinitions>
<RowDefinition
Height="*"/>
<RowDefinition
Height="50"/>
</Grid.RowDefinitions>
<ContentPresenter
Grid.Row="0"
x:Name="ViewContent"/>
<mp:Player
x:Name="Player"
Grid.Row="1"
HorizontalOptions="CenterAndExpand"
VerticalOptions="End"
HeightRequest="200"/>
</Grid>
</ContentView.Content>
</ContentView>

View File

@ -4,8 +4,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:hs="clr-namespace:Aurora.Design.Components.HostSelector"
xmlns:ml="clr-namespace:Aurora.Design.Components.MemberList"
xmlns:renderedViews="clr-namespace:Sharpnado.Presentation.Forms.RenderedViews;assembly=Sharpnado.Presentation.Forms"
xmlns:qu="clr-namespace:Aurora.Design.Components.Queue"
xmlns:library="clr-namespace:Aurora.Design.Components.Library"
x:Class="Aurora.Design.Views.Party.PartyView">
<ContentView.Content>
<Grid>
@ -23,7 +22,7 @@
Members="{Binding Members}"/>
<Label
Text="Queue"/>
<qu:Queue
<library:Library
ItemsSource="{Binding Queue}"
SelectedItem="{Binding SelectedSong}"
ItemDoubleClicked="{Binding PlayCommand}"/>

View File

@ -2,54 +2,12 @@
<ContentView
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:songs="clr-namespace:Aurora.Design.Views.Songs"
xmlns:dg="clr-namespace:Xamarin.Forms.DataGrid;assembly=Xamarin.Forms.DataGrid"
xmlns:library="clr-namespace:Aurora.Design.Components.Library"
x:Class="Aurora.Design.Views.Songs.SongsView">
<ContentPage.Content>
<dg:DataGrid
ItemsSource="{Binding SongsList}"
SelectionEnabled="True"
SelectedItem="{Binding SelectedSong}"
RowHeight="30"
HeaderHeight="50"
BorderColor="#CCCCCC"
HeaderBackground="#E0E6F8">
<dg:DataGrid.GestureRecognizers>
<TapGestureRecognizer
Command="{Binding PlayCommand}"
NumberOfTapsRequired="2"/>
</dg:DataGrid.GestureRecognizers><!-- Header -->
<dg:DataGrid.HeaderFontSize>
<OnIdiom
x:TypeArguments="x:Double">
<OnIdiom.Tablet>15</OnIdiom.Tablet>
<OnIdiom.Phone>13</OnIdiom.Phone>
<OnIdiom.Desktop>20</OnIdiom.Desktop>
</OnIdiom>
</dg:DataGrid.HeaderFontSize><!-- Columns -->
<dg:DataGrid.Columns>
<dg:DataGridColumn
Title="Title"
PropertyName="Metadata.Title"
Width="2*"/>
<dg:DataGridColumn
Title="Album"
PropertyName="Metadata.Album"
Width="0.95*"/>
<dg:DataGridColumn
Title="Artist"
PropertyName="Metadata.Artist"
Width="1*"/>
<dg:DataGridColumn
Title="Duration"
PropertyName="Metadata.Duration"/>
</dg:DataGrid.Columns><!-- Row Colors -->
<dg:DataGrid.RowsBackgroundColorPalette>
<dg:PaletteCollection>
<Color>#F2F2F2</Color>
<Color>#FFFFFF</Color>
</dg:PaletteCollection>
</dg:DataGrid.RowsBackgroundColorPalette>
</dg:DataGrid>
</ContentPage.Content>
<ContentView.Content>
<library:Library
ItemsSource="{Binding SongsList}"
SelectedItem="{Binding SelectedSong}"
ItemDoubleClicked="{Binding PlayCommand}"/>
</ContentView.Content>
</ContentView>