示例#1
0
 public void OnInit(ControlContext cc)
 {
     texture = cc.SmartTextureLoader.Factory() as ITexture;
     //	Update();
     // ここでUpdateすると、OnInitの間にテクスチャーの生成が行なわれることになって、
     // そのためには Screen.Select~Unselectがなされていることが条件となるので
     // 好ましくない。
 }
示例#2
0
 public void OnPaint(IScreen scr, ControlContext cc, int x, int y)
 {
     if (visible)
     {
         Update();
         scr.BlendSrcAlpha();                 // 背景が描画されてはいけないので…。
         scr.Blt(texture, x, y);
     }
 }
示例#3
0
 /// <summary>
 /// 部品の描画を行なう
 /// </summary>
 /// <remarks>
 /// このクラス自体がITextureとして振舞うために必要。
 /// </remarks>
 /// <param name="context"></param>
 /// <param name="x"></param>
 /// <param name="y"></param>
 public void OnPaint(IScreen scr, ControlContext cc, int x, int y)
 {
     if (visible)
     {
         foreach (Control c in Controls)
         {
             c.Parts.OnPaint(scr, cc, c.X + x, c.Y + y);
         }
     }
 }
示例#4
0
        public virtual void OnInit(ControlContext cc)
        {
            loader = cc.SmartTextureLoader.LoadDefFile(defFile, isDefFileRelative);

            /*
             * // これ、ここでやってしまうと、コンテキスト選択されてないとおかしゅうなる。
             *
             * ITexture t = loader.GetTexture(0);
             * // ボタンサイズを取得しておき、これをマウスの判定矩形として利用する
             * if (t != null)
             * {
             *      width = (int)t.Width;
             *      height = (int)t.Height;
             * }
             */
        }
示例#5
0
        public virtual void OnPaint(IScreen scr, ControlContext cc, int x, int y)
        {
            if (!visible)
            {
                return;
            }

            ITexture tex = loader.GetTexture(loaderOffset);

            if (tex != null)
            {
                if (color != null)
                {
                    scr.SetColor(color.Value);
                    scr.Blt(tex, x, y);
                    scr.ResetColor();
                }
                else
                {
                    scr.Blt(tex, x, y);
                }
            }
        }
示例#6
0
 /// <summary>
 /// 部品の描画を行なう
 /// </summary>
 /// <remarks>
 /// このクラス自体がITextureとして振舞うために必要。
 /// </remarks>
 /// <param name="context"></param>
 /// <param name="x"></param>
 /// <param name="y"></param>
 public void OnPaint(IScreen scr , ControlContext cc , int x , int y)
 {
     if (visible)
         foreach ( Control c in Controls )
         {
             c.Parts.OnPaint(scr , cc , c.X + x ,c.Y + y);
         }
 }
示例#7
0
 /// <summary>
 /// 初期化のときに呼び出される
 /// </summary>
 /// <remarks>
 /// ITextureとして振舞うために必要。
 /// </remarks>
 /// <param name="cc"></param>
 public void OnInit(ControlContext cc)
 {
     this.controlContext = cc;
 }
示例#8
0
        public virtual void OnInit(ControlContext cc)
        {
            if ( imageFileName != null )
            {
                loader = cc.SmartTextureLoader.LoadDefFile("mem:"+imageFileName);
            }
            else
            {
                loader = cc.SmartTextureLoader.LoadDefFile(defFile
                    ,isDefFileRelative);
            }

            /*
            // これ、ここでやってしまうと、コンテキスト選択されてないとおかしゅうなる。

            ITexture t = loader.GetTexture(0);
            // ボタンサイズを取得しておき、これをマウスの判定矩形として利用する
            if (t != null)
            {
                width = (int)t.Width;
                height = (int)t.Height;
            }
             */
        }
示例#9
0
        public virtual void OnPaint(IScreen scr , ControlContext cc , int x , int y)
        {
            if (!visible) return ;

            ITexture tex = loader.GetTexture(loaderOffset);
            if ( tex != null )
            {
                if ( color != null )
                {
                    scr.SetColor(color.Value);
                    scr.Blt(tex , x , y);
                    scr.ResetColor();
                }
                else
                {
                    scr.Blt(tex , x , y);
                }
            }
        }
示例#10
0
        public virtual void OnPaint(IScreen scr , ControlContext cc , int x , int y)
        {
            if (!visible) return ;

            if (width == 0 || height == 0)
            {
                ITexture t0 = loader.GetTexture(0);
                // ボタンサイズを取得しておき、これをマウスの判定矩形として利用する
                if (t0 != null)
                {
                    width = (int)t0.Width;
                    height = (int)t0.Height;
                }
            }

            int mx, my;
            if (cc.MouseInput != null)
                cc.MouseInput.GetPos(out mx, out my);
            else
                mx = my = 0;

            bool isHover =
                (x <= mx) && (mx < x + width) &&
                (y <= my) && (my < y + height);

            bool isDown =
                (cc.MouseInput != null) ? cc.MouseInput.IsPress(MouseInput.Button.Left) : false;

            // 前フレームで、
            // isHover状態でかつisDown
            // 今回のフレームで
            // isHover状態かつ、!isDown
            // ならば、ボタンが押されたとしてボタンイベント発生。

            isOnDown = false;
            if (enable)
            {
                if (lastIsHover && lastIsDown && isHover && !isDown)
                {
                    if ( OnClick != null )
                    {
                        OnClick(scr , cc);
                    }
                    isOnDown = true;
                }
                if (lastIsHover && !lastIsDown && isHover && isDown)
                {
                    if (OnDown != null)
                        OnDown(scr, cc);
                }
            }
            lastIsDown = isDown;
            lastIsHover = isHover;

            int pattern;
            if (!enable)
                pattern = 3;
            else if (!isHover)
                pattern = 0;
            else if (isDown)
                pattern = 1;
            else
                pattern = 2;

            ITexture tex = loader.GetTexture(pattern + loaderOffset);
            if ( tex != null )
            {
                if ( color != null )
                {
                    scr.SetColor(color.Value);
                    scr.Blt(tex , x , y);
                    scr.ResetColor();
                }
                else
                {
                    scr.Blt(tex , x , y);
                }
            }
        }
示例#11
0
        public virtual void OnPaint(IScreen scr, ControlContext cc, int x, int y)
        {
            if (!visible)
            {
                return;
            }

            if (width == 0 || height == 0)
            {
                ITexture t0 = loader.GetTexture(0);
                // ボタンサイズを取得しておき、これをマウスの判定矩形として利用する
                if (t0 != null)
                {
                    width  = (int)t0.Width;
                    height = (int)t0.Height;
                }
            }

            int mx, my;

            cc.MouseInput.GetPos(out mx, out my);
            bool isHover =
                (x <= mx) && (mx < x + width) &&
                (y <= my) && (my < y + height);

            bool isDown = cc.MouseInput.IsPress(MouseInput.Button.Left);

            // 前フレームで、
            // isHover状態でかつisDown
            // 今回のフレームで
            // isHover状態かつ、!isDown
            // ならば、ボタンが押されたとしてボタンイベント発生。

            isOnDown = false;
            if (enable)
            {
                if (lastIsHover && lastIsDown && isHover && !isDown)
                {
                    if (OnClick != null)
                    {
                        OnClick(scr, cc);
                    }
                    isOnDown = true;
                }
                if (lastIsHover && !lastIsDown && isHover && isDown)
                {
                    if (OnDown != null)
                    {
                        OnDown(scr, cc);
                    }
                }
            }
            lastIsDown  = isDown;
            lastIsHover = isHover;

            int pattern;

            if (!enable)
            {
                pattern = 3;
            }
            else if (!isHover)
            {
                pattern = 0;
            }
            else if (isDown)
            {
                pattern = 1;
            }
            else
            {
                pattern = 2;
            }

            ITexture tex = loader.GetTexture(pattern + loaderOffset);

            if (tex != null)
            {
                if (color != null)
                {
                    scr.SetColor(color.Value);
                    scr.Blt(tex, x, y);
                    scr.ResetColor();
                }
                else
                {
                    scr.Blt(tex, x, y);
                }
            }
        }
示例#12
0
 public void OnPaint(IScreen scr , ControlContext cc , int x , int y)
 {
     if ( visible )
     {
         Update();
         scr.BlendSrcAlpha(); // 背景が描画されてはいけないので…。
         scr.Blt(texture , x , y);
     }
 }
示例#13
0
 public void OnInit(ControlContext cc)
 {
     texture = cc.SmartTextureLoader.Factory() as ITexture;
     //	Update();
     // ここでUpdateすると、OnInitの間にテクスチャーの生成が行なわれることになって、
     // そのためには Screen.Select~Unselectがなされていることが条件となるので
     // 好ましくない。
 }
示例#14
0
 /// <summary>
 /// 初期化のときに呼び出される
 /// </summary>
 /// <remarks>
 /// ITextureとして振舞うために必要。
 /// </remarks>
 /// <param name="cc"></param>
 public void OnInit(ControlContext cc)
 {
     this.controlContext = cc;
 }