예제 #1
0
        public static object GetCommandParameter(this ImageToggleButton button)
        {
            var innerButtonField = button.GetType().GetField("innerButton", BindingFlags.Instance | BindingFlags.NonPublic);
            var innerButton      = innerButtonField.GetValue(button) as Button;

            return(innerButton.CommandParameter);
        }
예제 #2
0
        public static void SetCommandParameter(this ImageToggleButton button, object commandParameter)
        {
            var innerButtonField = button.GetType().GetField("toggleInnerButton", BindingFlags.Instance | BindingFlags.NonPublic);
            var innerButton      = innerButtonField.GetValue(button) as System.Windows.Controls.Primitives.ToggleButton;

            innerButton.CommandParameter = commandParameter;
        }
예제 #3
0
 private void AddItemToPannel()
 {
     if (ItemSource != null)
     {
         this.Children.Clear();
         int row = -1;
         List <StackLayout> listStackLayouts = new List <StackLayout>();
         for (int i = 0; i < ItemSource.Count; i++)
         {
             if (i % 3 == 0)
             {
                 var layout = new StackLayout()
                 {
                     Orientation = StackOrientation.Horizontal,
                     Spacing     = 20
                 };
                 listStackLayouts.Add(layout);
                 row++;
             }
             var button = new ImageToggleButton()
             {
                 Image            = ItemSource[i].Icon,
                 BorderColor      = Color.FromHex("#5a5a5a"),
                 BorderWidth      = 0.5,
                 HeightRequest    = 48,
                 WidthRequest     = 48,
                 Checked          = false,
                 CommandParameter = ItemSource[i]
             };
             button.Clicked += (sender, args) =>
             {
                 var b        = (ImageToggleButton)sender;
                 var activity = (Activity)b.CommandParameter;
                 b.Checked = !b.Checked;
                 if (b.Checked == true)
                 {
                     SelectedItems.Add(activity);
                 }
                 else
                 {
                     SelectedItems.Remove(activity);
                 }
             };
             listStackLayouts[row].Children.Add(button);
         }
         foreach (var panel in listStackLayouts)
         {
             this.Children.Add(panel);
         }
     }
 }
예제 #4
0
        void InitDifficultyButtons()
        {
            ImageToggleButton btnNormal = null;
            ImageToggleButton btnEasy   = null;

            easymode              = false;
            btnEasy               = new ImageToggleButton();
            btnEasy.Image         = Root.Singleton.Material("img/customizeUI/button_easy_on.png");
            btnEasy.HoveredImage  = Root.Singleton.Material("img/customizeUI/button_easy_select2.png");
            btnEasy.ToggledImage  = Root.Singleton.Material("img/customizeUI/button_easy_select2.png");
            btnEasy.DisabledImage = Root.Singleton.Material("img/customizeUI/button_easy_off.png");
            btnEasy.Enabled       = true;
            btnEasy.Toggled       = true;
            btnEasy.HoverSound    = Root.Singleton.Sound("audio/waves/ui/select_light1.wav");
            btnEasy.OnClick      += sender =>
            {
                btnEasy.Toggled = true;
                btnEasy.UpdateImage();
                btnNormal.Toggled = false;
                btnNormal.UpdateImage();
                easymode = true;
            };
            Util.LayoutControl(btnEasy, 977, 16, btnEasy.Image.Size, rctScreen);
            btnEasy.Parent = Root.Singleton.Canvas;
            btnEasy.Init();


            btnNormal               = new ImageToggleButton();
            btnNormal.Image         = Root.Singleton.Material("img/customizeUI/button_normal_on.png");
            btnNormal.HoveredImage  = Root.Singleton.Material("img/customizeUI/button_normal_select2.png");
            btnNormal.ToggledImage  = Root.Singleton.Material("img/customizeUI/button_normal_select2.png");
            btnNormal.DisabledImage = Root.Singleton.Material("img/customizeUI/button_normal_off.png");
            btnNormal.Enabled       = true;
            btnNormal.HoverSound    = Root.Singleton.Sound("audio/waves/ui/select_light1.wav");
            btnNormal.OnClick      += sender =>
            {
                btnEasy.Toggled = false;
                btnEasy.UpdateImage();
                btnNormal.Toggled = true;
                btnNormal.UpdateImage();
                easymode = false;
            };
            Util.LayoutControl(btnNormal, 977, 41, btnNormal.Image.Size, rctScreen);
            btnNormal.Parent = Root.Singleton.Canvas;
            btnNormal.Init();
        }
예제 #5
0
        void InitLayoutButtons()
        {
            btnLayoutA = null;
            btnLayoutB = null;

            btnLayoutA               = new ImageToggleButton();
            btnLayoutA.Image         = Root.Singleton.Material("img/customizeUI/button_typea_on.png");
            btnLayoutA.HoveredImage  = Root.Singleton.Material("img/customizeUI/button_typea_select2.png");
            btnLayoutA.ToggledImage  = Root.Singleton.Material("img/customizeUI/button_typea_select2.png");
            btnLayoutA.DisabledImage = Root.Singleton.Material("img/customizeUI/button_typea_off.png");
            btnLayoutA.HoverSound    = Root.Singleton.Sound("audio/waves/ui/select_light1.wav");
            btnLayoutA.OnClick      += sender =>
            {
                btnLayoutA.Toggled = true;
                btnLayoutA.UpdateImage();
                btnLayoutB.Toggled = false;
                btnLayoutB.UpdateImage();
                SetShipGenerator(currentShipGen, 0);
            };
            Util.LayoutControl(btnLayoutA, 18, 260, btnLayoutA.Image.Size, rctScreen);
            btnLayoutA.Parent = Root.Singleton.Canvas;
            btnLayoutA.Init();

            btnLayoutB               = new ImageToggleButton();
            btnLayoutB.Image         = Root.Singleton.Material("img/customizeUI/button_typeb_on.png");
            btnLayoutB.HoveredImage  = Root.Singleton.Material("img/customizeUI/button_typeb_select2.png");
            btnLayoutB.ToggledImage  = Root.Singleton.Material("img/customizeUI/button_typeb_select2.png");
            btnLayoutB.DisabledImage = Root.Singleton.Material("img/customizeUI/button_typeb_off.png");
            btnLayoutB.HoverSound    = Root.Singleton.Sound("audio/waves/ui/select_light1.wav");
            btnLayoutB.OnClick      += sender =>
            {
                btnLayoutA.Toggled = false;
                btnLayoutA.UpdateImage();
                btnLayoutB.Toggled = true;
                btnLayoutB.UpdateImage();
                SetShipGenerator(currentShipGen, 1);
            };
            Util.LayoutControl(btnLayoutB, 100, 260, btnLayoutB.Image.Size, rctScreen);
            btnLayoutB.Parent = Root.Singleton.Canvas;
            btnLayoutB.Init();
        }
예제 #6
0
        private void AddItem(string toolBarName, ToolbarItemDefinition def)
        {
            ToolBar toolBar = string.IsNullOrEmpty(toolBarName) ? GetToolBar() : GetToolBar(toolBarName);

            ImageButtonBase item = null;

            if (def.IsTogglable)
            {
                var button = new ImageToggleButton();

                button.EnabledImageSource = new BitmapImage(new Uri(def.EnabledIconPath));
                if (def.DisabledIconPath != null)
                {
                    button.DisabledImageSource = new BitmapImage(new Uri(def.DisabledIconPath));
                }
                if (def.CommandBinding != null)
                {
                    button.CommandBindings.Add(def.CommandBinding);
                }
                if (def.CommandParameter != null)
                {
                    button.SetCommandParameter(def.CommandParameter);
                }
                button.Command = def.Command;
                button.ToolTip = def.Tooltip;

                item = button;
            }
            else
            {
                var button = new ImageButton();

                button.EnabledImageSource = new BitmapImage(new Uri(def.EnabledIconPath));
                if (def.DisabledIconPath != null)
                {
                    button.DisabledImageSource = new BitmapImage(new Uri(def.DisabledIconPath));
                }
                button.CommandBindings.Add(def.CommandBinding);
                button.Command = def.Command;
                if (def.CommandParameter != null)
                {
                    button.SetCommandParameter(def.CommandParameter);
                }
                if (!string.IsNullOrEmpty(def.Tooltip))
                {
                    button.ToolTip = def.Tooltip;
                }

                item = button;
            }

            if (!string.IsNullOrEmpty(def.ReferenceItemName))
            {
                var index = 0;

                var referenceItem = toolBar.Items.OfType <ImageButtonBase>().Where(element => element.Command.Name == def.ReferenceItemName).FirstOrDefault() as ImageButtonBase;
                index = toolBar.Items.IndexOf(referenceItem);

                if (def.Position == ToolbarItemPosition.After)
                {
                    toolBar.Items.Insert(index + 1, item);
                }
                else if (def.Position == ToolbarItemPosition.Before)
                {
                    if (index == 0)
                    {
                        toolBar.Items.Insert(0, item);
                    }
                    else
                    {
                        toolBar.Items.Insert(index - 1, item);
                    }
                }
            }
            else
            {
                if (def.Position == ToolbarItemPosition.Top)
                {
                    toolBar.Items.Insert(0, item);
                }
                else
                {
                    toolBar.Items.Add(item);
                }
            }
        }
예제 #7
0
        public void OnActivate()
        {
            StoreWindow();
            LoadSprites();
            LoadUI();

            InitShipNamePanel();
            InitShipRenameButton();
            InitShipNameText();
            InitListShipsButton();
            InitShipsLeftButton();
            InitShipsRightButton();

            ImageToggleButton btnNormal = null, btnEasy = null;

            easymode = false;
            #region InitEasyButton
            btnEasy               = new ImageToggleButton();
            btnEasy.Image         = Root.Singleton.Material("img/customizeUI/button_easy_on.png");
            btnEasy.HoveredImage  = Root.Singleton.Material("img/customizeUI/button_easy_select2.png");
            btnEasy.ToggledImage  = Root.Singleton.Material("img/customizeUI/button_easy_select2.png");
            btnEasy.DisabledImage = Root.Singleton.Material("img/customizeUI/button_easy_off.png");
            btnEasy.Enabled       = true;
            btnEasy.Toggled       = true;
            btnEasy.HoverSound    = Root.Singleton.Sound("audio/waves/ui/select_light1.wav");
            btnEasy.OnClick      += sender => {
                btnEasy.Toggled = true;
                btnEasy.UpdateImage();
                btnNormal.Toggled = false;
                btnNormal.UpdateImage();
                easymode = true;
            };
            Util.LayoutControl(btnEasy, 977, 16, 95, 24, rctScreen);
            btnEasy.Parent = Root.Singleton.Canvas;
            btnEasy.Init();
            #endregion
            #region InitNormalButton
            btnNormal               = new ImageToggleButton();
            btnNormal.Image         = Root.Singleton.Material("img/customizeUI/button_normal_on.png");
            btnNormal.HoveredImage  = Root.Singleton.Material("img/customizeUI/button_normal_select2.png");
            btnNormal.ToggledImage  = Root.Singleton.Material("img/customizeUI/button_normal_select2.png");
            btnNormal.DisabledImage = Root.Singleton.Material("img/customizeUI/button_normal_off.png");
            btnNormal.Enabled       = true;
            btnNormal.HoverSound    = Root.Singleton.Sound("audio/waves/ui/select_light1.wav");
            btnNormal.OnClick      += sender => {
                btnEasy.Toggled = false;
                btnEasy.UpdateImage();
                btnNormal.Toggled = true;
                btnNormal.UpdateImage();
                easymode = false;
            };
            Util.LayoutControl(btnNormal, 977, 41, 95, 24, rctScreen);
            btnNormal.Parent = Root.Singleton.Canvas;
            btnNormal.Init();
            #endregion
            InitStartButton();

            ImageToggleButton btnTypeA = null, btnTypeB = null;

            #region Init Button Type A
            btnTypeA               = new ImageToggleButton();
            btnTypeA.Image         = Root.Singleton.Material("img/customizeUI/button_typea_on.png");
            btnTypeA.HoveredImage  = Root.Singleton.Material("img/customizeUI/button_typea_select2.png");
            btnTypeA.ToggledImage  = Root.Singleton.Material("img/customizeUI/button_typea_select2.png");
            btnTypeA.DisabledImage = Root.Singleton.Material("img/customizeUI/button_typea_off.png");
            btnTypeA.Enabled       = true;
            btnTypeA.Toggled       = true;
            btnTypeA.HoverSound    = Root.Singleton.Sound("audio/waves/ui/select_light1.wav");
            btnTypeA.OnClick      += sender => {
                btnTypeA.Toggled = true;
                btnTypeA.UpdateImage();
                btnTypeB.Toggled = false;
                btnTypeB.UpdateImage();
            };
            Util.LayoutControl(btnTypeA, 18, 260, 80, 22, rctScreen);
            btnTypeA.Parent = Root.Singleton.Canvas;
            btnTypeA.Init();
            #endregion
            #region Init Button Type B
            btnTypeB               = new ImageToggleButton();
            btnTypeB.Image         = Root.Singleton.Material("img/customizeUI/button_typeb_on.png");
            btnTypeB.HoveredImage  = Root.Singleton.Material("img/customizeUI/button_typeb_select2.png");
            btnTypeB.ToggledImage  = Root.Singleton.Material("img/customizeUI/button_typeb_select2.png");
            btnTypeB.DisabledImage = Root.Singleton.Material("img/customizeUI/button_typeb_off.png");
            btnTypeB.Enabled       = false;
            btnTypeB.HoverSound    = Root.Singleton.Sound("audio/waves/ui/select_light1.wav");
            btnTypeB.OnClick      += sender => {
                btnTypeA.Toggled = false;
                btnTypeA.UpdateImage();
                btnTypeB.Toggled = true;
                btnTypeB.UpdateImage();
            };
            Util.LayoutControl(btnTypeB, 100, 260, 80, 22, rctScreen);
            btnTypeB.Parent = Root.Singleton.Canvas;
            btnTypeB.Init();
            #endregion
            InitShowRoomsButton();

            if (currentShipGen == null)
            {
                // Locate the default ship
                SetShipGenerator(GetDefaultShipGenerator());
            }
            else
            {
                SetShipGenerator(currentShipGen);
            }
        }