Example #1
0
        protected override void OnMouseDown(MouseEventArgs e)
        {
            Focus();
            if (DisableMouseControl)
            {
                return;
            }
            Point position = new Point((int)(e.X / scale), (int)(e.Y / scale));

            mouseDownPosition = lastMousePos = new Point(position.X, position.Y);
            Status resizeStatus;

            mouseDownItem = GetResizeStatusAt(e.X, e.Y, out resizeStatus);
            if (status == Status.CreatingControl)
            {
                mouseDownItem = FindControlAt(position.X, position.Y, true);
                if (mouseDownItem != null)
                {
                    controlBeingCreated.SetParent((Dialog)mouseDownItem);
                }
            }
            else if (resizeStatus != Status.Idle)
            {
                status = resizeStatus;
            }
            else
            {
                mouseDownItem = FindControlAt(position.X, position.Y);
            }
        }
Example #2
0
 private void ControlAdded(AbstractControl control)
 {
     CBMainSelectedControl.Items.Add(control);
     if (CBMainSelectedControl.SelectedIndex == -1)
     {
         CBMainSelectedControl.SelectedIndex = 0;
     }
 }
    public override void ReusePrefab()
    {
        AbstractControl lastearth = earthList[earthList.Count - 1];
        Vector3         pos       = new Vector2(lastearth.transform.localPosition.x + scalePref,
                                                lastearth.transform.localPosition.y);
        AbstractControl go = PoolController.Use(ControlPrefab, pos) as EarthControl;

        earthList.Add(go);
        earthList.Remove(earthList[earthList.Count - 1]);
    }
    public override void ReusePrefab()
    {
        AbstractControl lastBgControl = backGroundList[backGroundList.Count - 1];
        Vector3         pos           = new Vector2(lastBgControl.transform.localPosition.x + scalePref,
                                                    lastBgControl.transform.localPosition.y);
        AbstractControl go = PoolController.Use(ControlPrefab, pos) as BackgroundControl;

        backGroundList.Add(go);
        backGroundList.Remove(backGroundList[backGroundList.Count - 1]);
    }
Example #5
0
 public void ControlCreated(AbstractControl control)
 {
     CBMainSelectedControl.Items.Add(control);
     UncheckOtherCheckboxes(null);
     if (!data.Changed)
     {
         data.Changed        = true;
         data.TabPage.Title += "*";
     }
 }
 public void ControlCreated(AbstractControl control)
 {
     CBMainSelectedControl.Items.Add(control);
     UncheckOtherCheckboxes(null);
     if (!data.Changed)
     {
         data.Changed = true;
         data.TabPage.Title += "*";
     }
 }
Example #7
0
    public override void ReusePrefab()
    {
        AbstractControl lastPipe = pipeList[pipeList.Count - 1];
        Vector3         pos      = new Vector2(lastPipe.transform.localPosition.x + GetRandomLocalX(),
                                               gameView.transform.localPosition.y + GetRandomLocalY());
        AbstractControl go = PoolController.Use(ControlPrefab, pos) as PipeControl;

        pipeList.Add(go);
        pipeList.Remove(pipeList[pipeList.Count - 1]);
        pipeLinkedList.AddLast(go);
    }
Example #8
0
 public void SelectItem(AbstractControl control)
 {
     SelectedItems.Clear();
     if (control != null)
     {
         SelectedItems.Add(control);
     }
     MainSelectedItem = control;
     Parent.UpdateSelectedItem();
     Invalidate();
 }
Example #9
0
        private void delete_Click(object sender, EventArgs e)
        {
            AbstractControl dc = ((AbstractControl)propertyGrid.SelectedObject);

            if (dc != null)
            {
                CBMainSelectedControl.Items.Remove(dc);
                propertyGrid.SelectedObject = null;
                UpdateSelectedItem();

                graphicsControl1.RemoveInterfaceItem(dc);

                graphicsControl1.Invalidate();
            }
            //propertyGrid.ResetSelectedProperty();
            //dc = null;
        }
Example #10
0
        /*public void Resort()
         * {
         *  items.Sort(Comparerer);
         *  items.Sort(Comparerer);
         * }*/

        public void RemoveInterfaceItem(AbstractControl item)
        {
            try {
                item.Parent.RemoveControl((DialogControl)item);

                if (SelectedItems.Contains(item))
                {
                    SelectedItems.Remove(item);
                    if (MainSelectedItem == item)
                    {
                        if (SelectedItems.Count == 0)
                        {
                            MainSelectedItem = null;
                        }
                        else
                        {
                            MainSelectedItem = SelectedItems[0];
                        }
                    }
                }
            }catch (Exception ex)
            {
            }
        }
Example #11
0
        protected override void Draw()
        {
            //Render to a texture first (used to scale and set selection border color)
            //If the target screen height is lower than 1200, this texture will be bigger than the
            GraphicsDevice.SetRenderTarget(renderTarget);
            // Cache the current depth buffer
            //DepthStencilBuffer old = GraphicsDevice.DepthStencilBuffer;
            // Set our custom depth buffer
            // GraphicsDevice.DepthStencilBuffer = depthStencilBuffer;
            GraphicsDevice.Clear(Color.Black);
            //SpriteBatch.GraphicsDevice.RenderState.ScissorTestEnable = false;

            RasterizerState r1 = new RasterizerState();

            r1.ScissorTestEnable = false;
            SpriteBatch.GraphicsDevice.RasterizerState = r1;

            //SpriteBatch.GraphicsDevice.RasterizerState.ScissorTestEnable = false;

            //Render background
            if (backgroundImage != null)
            {
                //Not using a shader for this.. So I must calculate a dest rectangle
                //It is used to keep aspect ratio, and display the background image as big as possible and centered.
                Rectangle bgPos  = new Rectangle();
                float     wScale = ((float)Width / scale) / backgroundImage.Width;
                float     hScale = ((float)Height / scale) / backgroundImage.Height;
                if (wScale > hScale)
                {
                    bgPos.Width  = (int)(Width / scale);
                    bgPos.X      = 0;
                    bgPos.Height = (int)(wScale * backgroundImage.Height);
                    bgPos.Y      = (int)((Height / scale - bgPos.Height) / 2);
                }
                else
                {
                    bgPos.Height = (int)(Height / scale);
                    bgPos.Y      = 0;
                    bgPos.Width  = (int)(hScale * backgroundImage.Width);
                    bgPos.X      = (int)((Width / scale - bgPos.Width) / 2);
                }
                // SpriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.None);
                SpriteBatch.Begin(SpriteSortMode.Immediate, XNA_BlendState.AlphaBlend);
                SpriteBatch.Draw(backgroundImage, bgPos, Color.White);
                SpriteBatch.End();
            }
            //items is a list of the dialogs added
            foreach (Dialog d in items)
            {
                //A list of what should be rendered, in the order it should be rendered
                List <AbstractControl> renders = new List <AbstractControl>();
                renders.Add(d);
                //Each dialog has a list of controls, sorted after render priority
                renders.AddRange(d.ChildControls);
                while (renders.Count > 0)
                {
                    AbstractControl item = renders[0];
                    renders.RemoveAt(0);
                    //A single control might add more controls to render correctly, but theese controls
                    //wont be in the output script.
                    //An example is that the checkbox adds an image if it is set to be checked.
                    renders.InsertRange(0, item.ExtraControlsToRender);
                    if (item.DrawTexture)
                    {
                        //Set image type
                        Effect.CurrentTechnique = Effect.Techniques[Enum.GetName(typeof(ImageType), item.ImageType)];
                        //Clip rectangle used to clip controls when they are dragged outside of their parent dialog
                        //SpriteBatch.GraphicsDevice.RenderState.ScissorTestEnable = true;

                        //SpriteBatch.GraphicsDevice.RasterizerState.ScissorTestEnable = true;
                        RasterizerState r2 = new RasterizerState();
                        r2.ScissorTestEnable = true;
                        SpriteBatch.GraphicsDevice.RasterizerState = r2;

                        SpriteBatch.GraphicsDevice.ScissorRectangle = item.ClipRect;
                        Texture2D texture = item.Texture ?? defaultTexture;
                        //Buttons/check boxes have both pressed/not pressed images in same texture
                        Effect.Parameters["IsHalfTexture"].SetValue(item.IsHalfTexture);
                        Effect.Parameters["IsBottomHalf"].SetValue(item.IsBottomHalf);
                        Effect.Parameters["Tiled"].SetValue(item.IsTiled);
                        Effect.Parameters["TintColor"].SetValue(item.Color.ToVector4());
                        Effect.Parameters["TextureSize"].SetValue(new Vector2(texture.Width, texture.Height));
                        Effect.Parameters["TargetSize"].SetValue(new Vector2(item.DrawRect.Width, item.DrawRect.Height));
                        //SpriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.None);

                        SpriteBatch.Begin(SpriteSortMode.Immediate, XNA_BlendState.AlphaBlend);
                        //Set blend function
                        item.BlendState.Apply(GraphicsDevice);


                        Effect.CurrentTechnique.Passes[0].Apply();
                        SpriteBatch.Draw(texture, item.DrawRect, null, Color.White);
                        SpriteBatch.End();

                        BlendState.BlendStates[BlendMode.Alpha].Apply(GraphicsDevice);//Reset blend state
                    }
                    //Draw dialog title
                    if (item is Dialog)
                    {
                        Dialog dialog = (Dialog)item;
                        if (!string.IsNullOrEmpty(dialog.Title))
                        {
                            DrawString(dialog.Title, dialog.TitleFontRect, dialog.TitleFont, Color.White);
                        }
                    }
                    //Draw the control's text if needed
                    if (item is DialogControl)
                    {
                        DialogControl control = (DialogControl)item;
                        if (control.DrawText && !string.IsNullOrEmpty(control.Text))
                        {
                            DrawString(control.Text, control.DrawRect, control.TextStyle, control.TextColor);
                        }
                    }
                }
            }

            //SpriteBatch.GraphicsDevice.RenderState.ScissorTestEnable = false;
            //SpriteBatch.GraphicsDevice.RasterizerState.ScissorTestEnable = false;
            RasterizerState r3 = new RasterizerState();

            r3.ScissorTestEnable = false;
            SpriteBatch.GraphicsDevice.RasterizerState = r3;

            GraphicsDevice.SetRenderTarget(null);
            // GraphicsDevice.DepthStencilBuffer = old;
            Texture2D background = renderTarget /*.GetTexture()*/;

            //GraphicsDevice.SetRenderTarget(0, renderTarget);
            SpriteBatch.Begin(SpriteSortMode.Immediate, XNA_BlendState.AlphaBlend);
            //SpriteBatch.Draw(background, new Vector2(0, 0), Color.White);
            SpriteBatch.Draw(background, new Rectangle(0, 0, Width, Height), new Rectangle(0, 0, DrawWidth, DrawHeight), Color.White);
            SpriteBatch.End();
            if (!DisableMouseControl)
            {
                foreach (AbstractControl item in SelectedItems)
                {
                    Effect.CurrentTechnique = Effect.Techniques["SelectionBox"];
                    Effect.Parameters["BoxType"].SetValue(BoxTypeSelection);
                    Rectangle rect = item.SelectRect;
                    rect.X       = (int)(rect.X * scale);
                    rect.Y       = (int)(rect.Y * scale);
                    rect.Width   = (int)(rect.Width * scale);
                    rect.Height  = (int)(rect.Height * scale);
                    rect.X      -= 6;
                    rect.Y      -= 6;
                    rect.Width  += 12;
                    rect.Height += 12;
                    Effect.Parameters["TargetPos"].SetValue(new Vector2(rect.X, rect.Y));
                    Effect.Parameters["TargetSize"].SetValue(new Vector2(rect.Width, rect.Height));
                    Effect.Parameters["ScreenSize"].SetValue(new Vector2(renderTarget.Width * scale,
                                                                         renderTarget.Height * scale));
                    //SpriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.None);
                    SpriteBatch.Begin(SpriteSortMode.Immediate, XNA_BlendState.AlphaBlend);
                    Effect.CurrentTechnique.Passes[0].Apply();
                    SpriteBatch.Draw(background, rect, null, Color.White);
                    SpriteBatch.End();
                }
                if (status == Status.CreatingControl && MouseButtons == MouseButtons.Left)
                {
                    Effect.CurrentTechnique = Effect.Techniques["SelectionBox"];
                    Effect.Parameters["BoxType"].SetValue(BoxTypeCreateNew);
                    Point min = new Point((int)(Math.Min(mouseDownPosition.X, lastMousePos.X) * scale),
                                          (int)(Math.Min(mouseDownPosition.Y, lastMousePos.Y) * scale));
                    Point max = new Point((int)(Math.Max(mouseDownPosition.X, lastMousePos.X) * scale),
                                          (int)(Math.Max(mouseDownPosition.Y, lastMousePos.Y) * scale));
                    Rectangle rect = new Rectangle(min.X, min.Y, max.X - min.X, max.Y - min.Y);
                    Effect.Parameters["TargetPos"].SetValue(new Vector2(rect.X, rect.Y));
                    Effect.Parameters["TargetSize"].SetValue(new Vector2(rect.Width, rect.Height));
                    Effect.Parameters["ScreenSize"].SetValue(new Vector2(renderTarget.Width * scale,
                                                                         renderTarget.Height * scale));
                    // SpriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.None);
                    SpriteBatch.Begin(SpriteSortMode.Immediate, XNA_BlendState.AlphaBlend);
                    Effect.CurrentTechnique.Passes[0].Apply();
                    SpriteBatch.Draw(background, rect, null, Color.White);
                    SpriteBatch.End();
                }
            }
        }
Example #12
0
        /*public void RemoveItem(AbstractControl item)
         * {
         *  /items.Remove((Dialog)item);
         *  if (SelectedItems.Contains(item))
         *  {
         *      SelectedItems.Remove(item);
         *      if (MainSelectedItem == item)
         *      {
         *          if (SelectedItems.Count == 0)
         *              MainSelectedItem = null;
         *          else
         *              MainSelectedItem = SelectedItems[0];
         *      }
         *  }
         * }*/

        public void Create(AbstractControl control)
        {
            controlBeingCreated = control;
            status = Status.CreatingControl;
        }
 public void SelectItem(AbstractControl control)
 {
     SelectedItems.Clear();
     if (control != null)
         SelectedItems.Add(control);
     MainSelectedItem = control;
     Parent.UpdateSelectedItem();
     Invalidate();
 }
Example #14
0
 public AbstractState(int id, AbstractControl controller)
 {
     this.id = id;
     this.controller = controller;
 }
Example #15
0
        protected override void OnKeyDown(KeyEventArgs e)
        {
            if (SelectedItems.Count > 0)
            {
                switch (e.KeyData)
                {
                case Keys.Delete:
                    e.Handled = true;
                    while (SelectedItems.Count > 0)
                    {
                        AbstractControl ctrl = SelectedItems[0];
                        SelectedItems.RemoveAt(0);
                        if (ctrl == MainDialog)
                        {
                            continue;
                        }
                        if (ctrl is Dialog)
                        {
                            items.Remove((Dialog)ctrl);

                            /*foreach (DialogControl control in ((Dialog)ctrl).ChildControls)
                             * {
                             *
                             * }*/
                        }
                        else
                        {
                            ctrl.Parent.ChildControls.Remove((DialogControl)ctrl);
                        }
                        Parent.ControlRemoved(ctrl);

                        /*foreach (AbstractControl control in Items)
                         * {
                         *  if (control.Parent == ctrl && !SelectedItems.Contains(control))
                         *      SelectedItems.Add(control);
                         * }*/
                    }
                    Invalidate();
                    Data.UpdateDesigener();
                    return;

                case Keys.Left:     // <--- left arrow.
                    e.Handled = true;
                    foreach (AbstractControl item in SelectedItems)
                    {
                        item.Position = new Point(item.Position.X - 1, item.Position.Y);
                    }
                    Invalidate();
                    break;

                case Keys.Up:     // <--- up arrow.
                    e.Handled = true;
                    foreach (AbstractControl item in SelectedItems)
                    {
                        item.Position = new Point(item.Position.X, item.Position.Y - 1);
                    }
                    Invalidate();
                    break;

                case Keys.Right:     // <--- right arrow.
                    e.Handled = true;
                    foreach (AbstractControl item in SelectedItems)
                    {
                        item.Position = new Point(item.Position.X + 1, item.Position.Y);
                    }
                    Invalidate();
                    break;

                case Keys.Down:     // <--- down arrow.
                    e.Handled = true;
                    foreach (AbstractControl item in SelectedItems)
                    {
                        item.Position = new Point(item.Position.X, item.Position.Y + 1);
                    }
                    Invalidate();
                    break;
                }
            }
            base.OnKeyDown(e);
        }
Example #16
0
 public IdleState(int id, AbstractControl controller)
     : base(id, controller)
 {
     transitionID = ID;
 }
 protected override void OnMouseDown(MouseEventArgs e)
 {
     Focus();
     if (DisableMouseControl)
         return;
     Point position = new Point((int)(e.X / scale), (int)(e.Y / scale));
     mouseDownPosition = lastMousePos = new Point(position.X, position.Y);
     Status resizeStatus;
     mouseDownItem = GetResizeStatusAt(e.X, e.Y, out resizeStatus);
     if (status == Status.CreatingControl)
     {
         mouseDownItem = FindControlAt(position.X, position.Y, true);
         if (mouseDownItem != null)
             controlBeingCreated.SetParent((Dialog) mouseDownItem);
     }
     else if (resizeStatus != Status.Idle)
     {
         status = resizeStatus;
     }
     else
     {
         mouseDownItem = FindControlAt(position.X, position.Y);
     }
 }
Example #18
0
 public FleeState(int id, AbstractControl control)
     : base(id, control)
 {
 }
 protected override void OnMouseUp(MouseEventArgs e)
 {
     if (DisableMouseControl)
         return;
     //Select/deselect
     if (status == Status.Idle)
     {
         if (mouseDownItem != null)
         {
             if (SelectedItems.Contains(mouseDownItem))
             {
                 if (ModifierKeys == Keys.Shift)
                 {
                     SelectedItems.Remove(mouseDownItem);
                     if (MainSelectedItem == mouseDownItem)
                     {
                         if (SelectedItems.Count == 0)
                             MainSelectedItem = null;
                         else
                             MainSelectedItem = SelectedItems[0];
                     }
                 }
                 else
                     MainSelectedItem = mouseDownItem;
             }
             else
             {
                 if (ModifierKeys != Keys.Shift)
                     SelectedItems.Clear();
                 SelectedItems.Add(mouseDownItem);
                 MainSelectedItem = mouseDownItem;
             }
         }
         else
         {
             SelectedItems.Clear();
             MainSelectedItem = null;
         }
         Invalidate();
     }
     else if (status == Status.CreatingControl)
     {
         Point min = new Point(Math.Min(mouseDownPosition.X, lastMousePos.X), Math.Min(mouseDownPosition.Y, lastMousePos.Y));
         Point max = new Point(Math.Max(mouseDownPosition.X, lastMousePos.X), Math.Max(mouseDownPosition.Y, lastMousePos.Y));
         Rectangle rect = new Rectangle(min.X, min.Y, max.X - min.X, max.Y - min.Y);
         if (rect.Width <= 5) rect.Width = controlBeingCreated.DefaultSize.Width;
         if (rect.Height <= 5) rect.Height = controlBeingCreated.DefaultSize.Height;
         controlBeingCreated.MoveTo(rect.X, rect.Y, rect.Width, rect.Height);
         controlBeingCreated.ContextChanged(this);
         /*items.Add(controlBeingCreated);
         items.Sort(Comparerer);
         items.Sort(Comparerer);*/
         if (controlBeingCreated is Dialog)
             items.Add((Dialog) controlBeingCreated);
         else
             controlBeingCreated.Parent.AddControl((DialogControl) controlBeingCreated);
         Parent.ControlCreated(controlBeingCreated);
         SelectedItems.Clear();
         SelectedItems.Add(controlBeingCreated);
         MainSelectedItem = controlBeingCreated;
         Invalidate();
         Data.UpdateDesigener();
     }
     status = Status.Idle;
     mouseDownItem = null;
     if (Parent != null)
         Parent.UpdateSelectedItem();
 }
 /*public void Resort()
 {
     items.Sort(Comparerer);
     items.Sort(Comparerer);
 }*/
 /*public void RemoveItem(AbstractControl item)
 {
     items.Remove(item);
     if (SelectedItems.Contains(item))
     {
         SelectedItems.Remove(item);
         if (MainSelectedItem == item)
         {
             if (SelectedItems.Count == 0)
                 MainSelectedItem = null;
             else
                 MainSelectedItem = SelectedItems[0];
         }
     }
 }*/
 public void Create(AbstractControl control)
 {
     controlBeingCreated = control;
     status = Status.CreatingControl;
 }
Example #21
0
 public InterposeState(int id, AbstractControl control)
     : base(id, control)
 {
 }
 private void ControlAdded(AbstractControl control)
 {
     CBMainSelectedControl.Items.Add(control);
     if (CBMainSelectedControl.SelectedIndex == -1)
         CBMainSelectedControl.SelectedIndex = 0;
 }
Example #23
0
 public EvadeState(int id, AbstractControl control)
     : base(id, control)
 {
     waypoint = GameObject.FindGameObjectWithTag("Waypoint");
 }
Example #24
0
 public void ControlRemoved(AbstractControl ctrl)
 {
     CBMainSelectedControl.Items.Remove(ctrl);
     propertyGrid.SelectedObject = null;
 }
Example #25
0
        protected override void OnMouseUp(MouseEventArgs e)
        {
            if (DisableMouseControl)
            {
                return;
            }
            //Select/deselect
            if (status == Status.Idle)
            {
                if (mouseDownItem != null)
                {
                    if (SelectedItems.Contains(mouseDownItem))
                    {
                        if (ModifierKeys == Keys.Shift)
                        {
                            SelectedItems.Remove(mouseDownItem);
                            if (MainSelectedItem == mouseDownItem)
                            {
                                if (SelectedItems.Count == 0)
                                {
                                    MainSelectedItem = null;
                                }
                                else
                                {
                                    MainSelectedItem = SelectedItems[0];
                                }
                            }
                        }
                        else
                        {
                            MainSelectedItem = mouseDownItem;
                        }
                    }
                    else
                    {
                        if (ModifierKeys != Keys.Shift)
                        {
                            SelectedItems.Clear();
                        }
                        SelectedItems.Add(mouseDownItem);
                        MainSelectedItem = mouseDownItem;
                    }
                }
                else
                {
                    SelectedItems.Clear();
                    MainSelectedItem = null;
                }
                Invalidate();
            }
            else if (status == Status.CreatingControl)
            {
                Point     min  = new Point(Math.Min(mouseDownPosition.X, lastMousePos.X), Math.Min(mouseDownPosition.Y, lastMousePos.Y));
                Point     max  = new Point(Math.Max(mouseDownPosition.X, lastMousePos.X), Math.Max(mouseDownPosition.Y, lastMousePos.Y));
                Rectangle rect = new Rectangle(min.X, min.Y, max.X - min.X, max.Y - min.Y);
                if (rect.Width <= 5)
                {
                    rect.Width = controlBeingCreated.DefaultSize.Width;
                }
                if (rect.Height <= 5)
                {
                    rect.Height = controlBeingCreated.DefaultSize.Height;
                }
                controlBeingCreated.MoveTo(rect.X, rect.Y, rect.Width, rect.Height);
                controlBeingCreated.ContextChanged(this);

                /*items.Add(controlBeingCreated);
                 * items.Sort(Comparerer);
                 * items.Sort(Comparerer);*/
                if (controlBeingCreated is Dialog)
                {
                    items.Add((Dialog)controlBeingCreated);
                }
                else
                {
                    controlBeingCreated.Parent.AddControl((DialogControl)controlBeingCreated);
                }
                Parent.ControlCreated(controlBeingCreated);
                SelectedItems.Clear();
                SelectedItems.Add(controlBeingCreated);
                MainSelectedItem = controlBeingCreated;
                Invalidate();
                Data.UpdateDesigener();
            }
            status        = Status.Idle;
            mouseDownItem = null;
            if (Parent != null)
            {
                Parent.UpdateSelectedItem();
            }
        }
 public void ControlRemoved(AbstractControl ctrl)
 {
     CBMainSelectedControl.Items.Remove(ctrl);
     propertyGrid.SelectedObject = null;
 }