예제 #1
0
        private unsafe static byte DrawSliderBackGround(objxinxi *obj, SLIDER_PARAM *pSliRam)
        {
            byte result;

            switch (pSliRam->BackType)
            {
            case 0:
                if (pSliRam->BkPicID >= GuiSlider.myapp.app.picqyt)
                {
                    result = 0;
                    return(result);
                }
                Readdata.Readdata_ReadPic(ref GuiSlider.myapp.brush.pic, (int)pSliRam->BkPicID);
                break;

            case 1:
                GuiSlider.myapp.brush.backcolor = pSliRam->BkPicID;
                break;

            case 2:
                if (pSliRam->BkPicID >= GuiSlider.myapp.app.picqyt)
                {
                    result = 0;
                    return(result);
                }
                GuiSlider.myapp.brush.x = obj->redian.x;
                GuiSlider.myapp.brush.y = obj->redian.y;
                Readdata.Readdata_ReadPic(ref GuiSlider.myapp.brush.pic, (int)pSliRam->BkPicID);
                break;
            }
            GuiSlider.myapp.brush.sta = pSliRam->BackType;
            Showpic.Showpic_Clearspa((int)obj->redian.x, (int)obj->redian.y, (int)(obj->redian.endx - obj->redian.x + 1), (int)(obj->redian.endy - obj->redian.y + 1));
            result = 1;
            return(result);
        }
예제 #2
0
        private unsafe static byte DrawSliderCursor(objxinxi *obj, SLIDER_PARAM *pSliRam, ushort *CurXPos, ushort *CurXEnd, ushort *CurYPos, ushort *CurYEnd)
        {
            if (pSliRam->Mode > 0)
            {
                byte b       = (byte)(pSliRam->CursorHig / 2);
                *    CurXPos = (ushort)((obj->redian.endx - obj->redian.x + 1 - (ushort)pSliRam->CursorWid) / 2 + obj->redian.x);
                *    CurXEnd = (ushort)(*CurXPos + (ushort)pSliRam->CursorWid - 1);
                *    CurYEnd = (ushort)(pSliRam->TouchPos + (ushort)b);
                *    CurYPos = (ushort)(*CurYEnd - (ushort)pSliRam->CursorHig + 1);
            }
            else
            {
                byte b       = (Convert.ToByte(pSliRam->CursorWid / 2));
                *    CurYPos = (ushort)((obj->redian.endy - obj->redian.y + 1 - (ushort)pSliRam->CursorHig) / 2 + obj->redian.y);
                *    CurYEnd = (ushort)(*CurYPos + (ushort)pSliRam->CursorHig - 1);
                *    CurXPos = (ushort)(pSliRam->TouchPos - (ushort)b);
                *    CurXEnd = (ushort)(*CurXPos + (ushort)pSliRam->CursorWid - 1);
            }
            byte result;

            if (pSliRam->CursorType > 0)
            {
                if (pSliRam->CuPicID >= GuiSlider.myapp.app.picqyt)
                {
                    result = 0;
                    return(result);
                }
                GuiSlider.myapp.brush.sta = 2;
                Readdata.Readdata_ReadPic(ref GuiSlider.myapp.brush.pic, (int)pSliRam->CuPicID);
                GuiSlider.myapp.brush.x = *CurXPos;
                GuiSlider.myapp.brush.y = *CurYPos;
            }
            else
            {
                GuiSlider.myapp.brush.sta       = 1;
                GuiSlider.myapp.brush.backcolor = pSliRam->CuPicID;
            }
            Showpic.Showpic_Clearspa((int)(*CurXPos), (int)(*CurYPos), (int)pSliRam->CursorWid, (int)pSliRam->CursorHig);
            result = 1;
            return(result);
        }
예제 #3
0
        private unsafe static byte ClearSliderCursor(objxinxi *obj, SLIDER_PARAM *pSliRam, ushort *CurXPos, ushort *CurXEnd, ushort *CurYPos, ushort *CurYEnd)
        {
            ushort num  = 0;
            ushort num2 = 0;
            ushort num3 = 0;
            ushort num4 = 0;

            if (pSliRam->Mode > 0)
            {
                num  = *CurXPos;
                num3 = *CurXEnd;
                if (*CurYEnd < pSliRam->LastPos)
                {
                    num4 = pSliRam->LastPos;
                    num2 = (ushort)(num4 - (ushort)pSliRam->CursorHig + 1);
                    if (*CurYEnd >= num2)
                    {
                        num2 = (ushort)(*CurYEnd + 1);
                    }
                }
                else if (*CurYEnd > pSliRam->LastPos)
                {
                    num4 = pSliRam->LastPos;
                    num2 = (ushort)(num4 - (ushort)pSliRam->CursorHig + 1);
                    if (num4 >= *CurYPos)
                    {
                        num4 = (ushort)(*CurYPos - 1);
                    }
                }
            }
            else
            {
                num2 = *CurYPos;
                num4 = *CurYEnd;
                if (*CurXPos < pSliRam->LastPos)
                {
                    num  = pSliRam->LastPos;
                    num3 = (ushort)(num + (ushort)pSliRam->CursorWid - 1);
                    if (*CurXEnd >= num)
                    {
                        num = (ushort)(*CurXEnd + 1);
                    }
                }
                else if (*CurXPos > pSliRam->LastPos)
                {
                    num  = pSliRam->LastPos;
                    num3 = (ushort)(num + (ushort)pSliRam->CursorWid - 1);
                    if (num3 >= *CurXPos)
                    {
                        num3 = (ushort)(*CurXPos - 1);
                    }
                }
            }
            switch (pSliRam->BackType)
            {
            case 0:
                Readdata.Readdata_ReadPic(ref GuiSlider.myapp.brush.pic, (int)pSliRam->BkPicID);
                break;

            case 1:
                GuiSlider.myapp.brush.backcolor = pSliRam->BkPicID;
                break;

            case 2:
                Readdata.Readdata_ReadPic(ref GuiSlider.myapp.brush.pic, (int)pSliRam->BkPicID);
                GuiSlider.myapp.brush.x = obj->redian.x;
                GuiSlider.myapp.brush.y = obj->redian.y;
                break;
            }
            GuiSlider.myapp.brush.sta = pSliRam->BackType;
            Showpic.Showpic_Clearspa((int)num, (int)num2, (int)(num3 - num + 1), (int)(num4 - num2 + 1));
            return(1);
        }