コード例 #1
0
ファイル: Button.cs プロジェクト: ChrisJamesSadler/Kernel
        public override void OnDraw(Bitmap target)
        {
            RenderArea.Width  = Bounds.Width;
            RenderArea.Height = Bounds.Height;
            if (RenderArea.Contains(Input.MousePosition))
            {
                target.DrawRectangle(RenderArea.X, RenderArea.Y, Bounds.Width, Bounds.Height, PrimaryColour + 0x090909, true);
            }
            else
            {
                target.DrawRectangle(RenderArea.X, RenderArea.Y, Bounds.Width, Bounds.Height, PrimaryColour, true);
            }
            target.DrawRectangle(RenderArea.X, RenderArea.Y, Bounds.Width, Bounds.Height, SecondaryColour, false);
            int posX = RenderArea.X + (Bounds.Width / 2);
            int posY = RenderArea.Y + (Bounds.Height / 2);

            posX -= ((Content.Length * GL.fontSize) / 2) + 3;
            posY -= (GL.fontSize / 2);
            target.DrawString(posX, posY, Content, Theme.ButtonText);
        }
コード例 #2
0
 /// <summary>
 /// Handle event
 /// </summary>
 /// <param name="e"> Event to handle</param>
 public override void HandleEvent(Event e)
 {
     if (e.type == EventType.KeyDown)
     {
         if (e.keyCode == KeyCode.F)
         {
             if (RenderArea.Contains(e.mousePosition))
             {
                 FrameAll();
                 e.Use();
             }
         }
     }
     else if (_IsMouseDown && Parent != null && e != null)
     {
         if (e.type == EventType.MouseDrag)
         {
             if (e.button == 2) // middle
             {
                 if (e.modifiers == EventModifiers.Control && e.delta.x != 0)
                 {
                     PanX(e.delta.x);
                 }
                 else if (e.modifiers == EventModifiers.Shift && e.delta.y != 0)
                 {
                     PanY(e.delta.y);
                 }
                 else
                 {
                     if (e.delta.x != 0)
                     {
                         PanX(e.delta.x);
                     }
                     if (e.delta.y != 0)
                     {
                         PanY(e.delta.y);
                     }
                 }
                 e.Use();
             }
             else if (e.alt && e.button == 1) // right
             {
                 if (e.delta.x != 0)
                 {
                     ZoomX(e.delta.x);
                 }
                 if (e.delta.y != 0)
                 {
                     ZoomY(e.delta.y);
                 }
                 e.Use();
             }
         }
         else if ((e.type == EventType.MouseUp || e.rawType == EventType.MouseUp) && e.button == _MouseButton)
         {
             Frame of = OwnerFrame;
             if (of != null)
             {
                 of.UnregisterPrecedenceEvent(this);
                 _IsMouseDown = false;
                 _MouseButton = -1;
                 e.Use();
             }
         }
         else
         {
             base.HandleEvent(e);
         }
     }
     else
     {
         base.HandleEvent(e);
     }
 }
コード例 #3
0
        public override void OnDraw(Bitmap target)
        {
            formRendering = this;
            if (!initialized)
            {
                initialized = true;
                InitializeComponents();
            }

            BeforeRedraw();

            if (WindowState == FormWindowState.Minimized)
            {
                skipChildren = true;
            }
            else if (WindowState == FormWindowState.Normal)
            {
                Banner.X      = RenderArea.X;
                Banner.Y      = RenderArea.Y - 20;
                Banner.Width  = Bounds.Width;
                Banner.Height = 20;
                target.DrawRectangle(Banner.X, Banner.Y, Banner.Width, Banner.Height, Theme.WindowBarPrimary, true);
                target.DrawRectangle(Banner.X, Banner.Y, Banner.Width, Banner.Height, Theme.WindowShadow, false);
                target.DrawString(Banner.X + 5, Banner.Y + 6, Content, Theme.WindowBarText);
                target.DrawRectangle(Bounds.X, Bounds.Y, Bounds.Width, Bounds.Height, PrimaryColour, true);
                target.DrawRectangle(Bounds.X, Bounds.Y, Bounds.Width, Bounds.Height, SecondaryColour, false);
            }
            else if (WindowState == FormWindowState.Maximized)
            {
                RenderArea.X  = 0;
                RenderArea.Y  = 20;
                Bounds.X      = 0;
                Bounds.Y      = 20;
                Bounds.Width  = target.Width;
                Bounds.Height = target.Height;
                Banner.X      = 0;
                Banner.Y      = 0;
                Banner.Width  = Bounds.Width;
                Banner.Height = 20;
                target.DrawRectangle(Banner.X, Banner.Y, Banner.Width, Banner.Height, Theme.WindowBarPrimary, true);
                target.DrawRectangle(Banner.X, Banner.Y, Banner.Width, Banner.Height, Theme.WindowShadow, false);
                target.DrawString(Banner.X + 5, Banner.Y + 6, Content, Theme.WindowBarText);
                target.DrawRectangle(Bounds.X, Bounds.Y, Bounds.Width, Bounds.Height, PrimaryColour, true);
                target.DrawRectangle(Bounds.X, Bounds.Y, Bounds.Width, Bounds.Height, SecondaryColour, false);
            }
            else if (WindowState == FormWindowState.FullScreen)
            {
                RenderArea.X  = 0;
                RenderArea.Y  = 0;
                Bounds.X      = 0;
                Bounds.Y      = 0;
                Bounds.Width  = target.Width;
                Bounds.Height = target.Height;
                Banner.X      = 0;
                Banner.Y      = 0;
                Banner.Width  = Bounds.Width;
                Banner.Height = 20;
                target.DrawRectangle(Bounds.X, Bounds.Y, Bounds.Width, Bounds.Height, PrimaryColour, true);
            }

            if (BackgroundImage != null)
            {
                if (BackgroundImage.Width != Bounds.Width || BackgroundImage.Height != Bounds.Height)
                {
                    BackgroundImage.ResizeImage(Bounds.Width, Bounds.Height);
                }
                target.DrawImage(Bounds.X, Bounds.Y, BackgroundImage);
            }

            AfterRedraw();

            if (Input.GetMouseButton(0) && (RenderArea.Contains(Input.MousePosition) || Banner.Contains(Input.MousePosition)))
            {
                SGI.CurrentForm = this;
            }
        }