using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace Aitex.Core.UI.View.Frame
{
    /// 
    /// Interaction logic for BottomView.xaml
    /// 
    /// 
    partial class BottomView : UserControl
    {
        private int ButtonMarginLeft = 30;
        Size ButtonSizeSelected = new Size(160, 45);
        Size ButtonSizeUnselected = new Size(145, 38);
        public event Action ButtonClicked;
        public BottomView()
        {
            InitializeComponent();
            //btnBackward.Tag = new ViewItem()
            //{
            //    Id = "backward",
            //};
            btnExit.Tag = new ViewItem()
            {
                Id = "exit",
            };
            //btnForward.Tag = new ViewItem()
            //{
            //    Id = "forward",
            //};
        }
        public void CreateMenu(List items)
        {
            //double marginLeft = btnBackward.Margin.Left + btnBackward.Width + 50;
            double marginLeft = ButtonSizeUnselected.Width - 110;
            foreach (ViewItem item in items)
            {
                Button btn = new Button();
                btn.Style = Resources["navButton"] as Style;
                btn.Margin = new Thickness(marginLeft, btnExit.Margin.Top, 0, 10);
                
                btn.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
                btn.VerticalAlignment = System.Windows.VerticalAlignment.Center;
                btn.Content = item.Name;
                btn.Tag = item;
                btn.Click += new RoutedEventHandler(btn_Click);
                marginLeft += (btn.Width + ButtonMarginLeft);
                gridContent.Children.Add(btn);
            }
        }
        void btn_Click(object sender, RoutedEventArgs e)
        {
            if (ButtonClicked != null)
            {
                ButtonClicked(((sender as Button).Tag as ViewItem).Id);
            }
        }
        public void SetSelection(string id)
        {
            ImageBrush NormalBrush = new ImageBrush(new BitmapImage(new Uri("pack://application:,,,/MECF.Framework.Common;component/Resources/Main/主菜单按钮150.png", UriKind.Absolute)));
            ImageBrush SelectedBrush = new ImageBrush(new BitmapImage(new Uri("pack://application:,,,/MECF.Framework.Common;component/Resources/Main/主菜单按钮_选中150.png", UriKind.Absolute)));
            foreach (var item in gridContent.Children)
            {
                Button btn = item as Button;
                if ((btn==null) || ((btn.Tag as ViewItem).Name == null))
                    continue;
                btn.Background = ((btn.Tag as ViewItem).Id == id) ? SelectedBrush : NormalBrush;
                btn.Height = ((btn.Tag as ViewItem).Id == id) ? 45: 38;
                btn.Width = ((btn.Tag as ViewItem).Id == id) ? 160 : 145;
            }
        }
        public void Enable(string id, bool enable)
        {
            foreach (var item in gridContent.Children)
            {
                Button btn = item as Button;
                if (btn == null)
                    continue;
                if ((btn.Tag as ViewItem).Name == null)
                    continue;
                if ((btn.Tag as ViewItem).Id != id)
                    continue;
                btn.Visibility = !enable ? Visibility.Hidden : Visibility.Visible;
            }        
        }
        public void SetCulture(string culture)
        {
            foreach (var item in gridContent.Children)
            {
                Button btn = item as Button;
                if (btn == null)
                    continue;
                ViewItem info = btn.Tag as ViewItem;
                if (info==null || info.Name==null || info.GlobalName==null || !info.GlobalName.ContainsKey(culture))
                    continue;
                btn.Content = info.GlobalName[culture];
            }
        }
    }
}