Esempio n. 1
0
        public unsafe byte GuiSliderPressDown(ref InfoObject obj, byte ID)
        {
            ushort           value;
            InfoSliderParam *param;

            fixed(byte *px = &m_guiApp.CustomData[obj.AttributeStart])
            param = (InfoSliderParam *)px;

            if (m_guiApp.MoveObjId != ID)
            {
                m_guiApp.MoveObjId = ID;
            }

            if (param->Mode > 0)
            {
                value = m_TPDev.Y0;
            }
            else
            {
                value = m_TPDev.X0;
            }

            ushort touchPos = param->TouchPos;

            changeTouchValue(ref obj, param, value);

            if (touchPos != param->TouchPos)
            {
                refreshSliderCursor(ref obj, ID);
            }

            return(1);
        }
Esempio n. 2
0
        public unsafe byte GuiSliderPressMove(ref InfoObject obj, byte ID)
        {
            ushort           y;
            byte             num = 0;
            InfoSliderParam *pSliRam;

            fixed(byte *px = &m_guiApp.CustomData[obj.AttributeStart])
            pSliRam = (InfoSliderParam *)px;

            ushort touchPos = pSliRam->TouchPos;

            if (pSliRam->Mode > 0)
            {
                y = m_TPDev.Y;
            }
            else
            {
                y = m_TPDev.X;
            }
            num = changeTouchValue(ref obj, pSliRam, y);
            if (touchPos != pSliRam->TouchPos)
            {
                refreshSliderCursor(ref obj, ID);
            }

            return(num);
        }
Esempio n. 3
0
        private unsafe byte refreshSliderCursor(ref InfoObject obj, byte ID)
        {
            ushort x0;
            ushort y0;
            ushort x1;
            ushort y1;

            InfoSliderParam *param;

            fixed(byte *px = &m_guiApp.CustomData[obj.AttributeStart])
            param = (InfoSliderParam *)px;

            drawSliderCursor(ref obj, param, &x0, &x1, &y0, &y1);
            clearSliderCursor(ref obj, param, &x0, &x1, &y0, &y1);

            if (param->Mode > 0)
            {
                param->LastPos = y1;
            }
            else
            {
                param->LastPos = x0;
            }

            return(1);
        }
Esempio n. 4
0
        private unsafe byte drawSliderBackGround(ref InfoObject obj, InfoSliderParam *param)
        {
            switch (param->BackType)
            {
            case 0:
                if (param->BackPicId < m_guiApp.App.PictureCount)
                {
                    m_guiApp.BrushInfo.pic = m_runScreen.ReadInfoPicture(param->BackPicId);
                    break;
                }
                return(0);

            case 1:
                m_guiApp.BrushInfo.BackColor = param->BackPicId;
                break;

            case 2:
                if (param->BackPicId < m_guiApp.App.PictureCount)
                {
                    m_guiApp.BrushInfo.X   = obj.Panel.X;
                    m_guiApp.BrushInfo.Y   = obj.Panel.Y;
                    m_guiApp.BrushInfo.pic = m_runScreen.ReadInfoPicture(param->BackPicId);
                    break;
                }
                return(0);
            }
            m_guiApp.BrushInfo.sta = param->BackType;
            m_runScreen.ClearBackground(
                obj.Panel.X,
                obj.Panel.Y,
                (ushort)(obj.Panel.EndX - obj.Panel.X + 1),
                (ushort)(obj.Panel.EndY - obj.Panel.Y + 1)
                );
            return(1);
        }
Esempio n. 5
0
        private unsafe byte changeTouchValue(ref InfoObject obj, InfoSliderParam *param, ushort val)
        {
            byte   num;
            byte   num2;
            ushort nowVal = param->NowVal;

            if (param->Mode > 0)
            {
                num  = (byte)(param->CursorHeight / 2);
                num2 = (byte)(param->CursorHeight - num);
                if (val >= (obj.Panel.EndY - num))
                {
                    param->TouchPos = (ushort)(obj.Panel.EndY - num);
                    param->NowVal   = param->MinVal;
                }
                else if (val <= ((obj.Panel.Y + num2) - 1))
                {
                    param->TouchPos = (ushort)((obj.Panel.Y + num2) - 1);
                    param->NowVal   = param->MaxVal;
                }
                else
                {
                    param->TouchPos = val;
                    param->NowVal   = (ushort)(param->MinVal + ((((long)(obj.Panel.EndY - num2 - val)) * (param->MaxVal - param->MinVal + 1)) / ((long)(obj.Panel.EndY - obj.Panel.Y - param->CursorHeight + 1))
                                                                )
                                               );
                }
            }
            else
            {
                num  = (byte)(param->CursorWidth / 2);
                num2 = (byte)(param->CursorWidth - num);
                if (val <= (obj.Panel.X + num))
                {
                    param->TouchPos = (ushort)(obj.Panel.X + num);
                    param->NowVal   = param->MinVal;
                }
                else if (val >= ((obj.Panel.EndX - num2) + 1))
                {
                    param->TouchPos = (ushort)((obj.Panel.EndX - num2) + 1);
                    param->NowVal   = param->MaxVal;
                }
                else
                {
                    param->TouchPos = val;
                    param->NowVal   = (ushort)(param->MinVal + ((((long)((val - obj.Panel.X) - num)) * ((param->MaxVal - param->MinVal) + 1)) / ((long)(obj.Panel.EndX - obj.Panel.X - param->CursorWidth + 1))));
                }
            }
            if (param->NowVal > 100)
            {
                param->NowVal = param->NowVal;
            }
            if (nowVal != param->NowVal)
            {
                param->LastVal = param->NowVal;
                return(1);
            }
            return(0);
        }
Esempio n. 6
0
 public unsafe byte GuiSliderObjInit(ref InfoObject obj, byte ID)
 {
     if (m_runScreen.IsEditor)
     {
         GuiSliderRef(ref obj, ID);
     }
     return(1);
 }
Esempio n. 7
0
        private unsafe byte valueToTouchPos(ref InfoObject obj, InfoSliderParam *param, byte ID)
        {
            ushort num;
            byte   num2;
            byte   num3;

            if (param->Mode > 0)
            {
                num2 = (byte)(param->CursorHeight / 2);
                num3 = (byte)(param->CursorHeight - num2);

                if (param->NowVal >= param->MaxVal)
                {
                    param->TouchPos = (ushort)((obj.Panel.Y + num3) - 1);
                }
                else if (param->NowVal <= param->MinVal)
                {
                    param->TouchPos = (ushort)(obj.Panel.EndY - num2);
                }
                else
                {
                    num             = (ushort)(((param->NowVal - param->MinVal) * (((obj.Panel.EndY - obj.Panel.Y) - param->CursorHeight) + 1)) / ((param->MaxVal - param->MinVal) + 1));
                    param->TouchPos = (ushort)((obj.Panel.EndY - num3) - num);
                }
            }
            else
            {
                num2 = (byte)(param->CursorWidth / 2);
                num3 = (byte)(param->CursorWidth - num2);

                if (param->NowVal >= param->MaxVal)
                {
                    param->TouchPos = (ushort)((obj.Panel.EndX - num3) + 1);
                }
                else if (param->NowVal <= param->MinVal)
                {
                    param->TouchPos = (ushort)(obj.Panel.X + num2);
                }
                else
                {
                    num             = (ushort)((obj.Panel.X + num2) + ((((long)(param->NowVal - param->MinVal)) * (obj.Panel.EndX - obj.Panel.X - param->CursorWidth + 1)) / ((long)(param->MaxVal - param->MinVal + 1))));
                    param->TouchPos = num;
                }
            }

            if (!m_runScreen.IsEditor)
            {
                m_guiApp.PageObjects[ID].RefreshFlag = 1;
            }

            param->LastVal = param->NowVal;
            return(1);
        }
Esempio n. 8
0
 public unsafe void GuiCurveCheckRef()
 {
     for (byte i = 0; i < 5; i = (byte)(i + 1))
     {
         if (CurveIndex[i].ObjID != 0xff)
         {
             InfoCurveParam *curve_paramPtr = (InfoCurveParam *)m_guiApp.CustomData[CurveIndex[i].Offset];
             if (curve_paramPtr->RefFlag > 0)
             {
                 InfoObject infoObject = m_runScreen.ReadObject(CurveIndex[i].ObjID);
                 GuiCurveRef(ref infoObject, CurveIndex[i].ObjID);
                 m_runScreen.LcdFirst = true;
             }
         }
     }
 }
Esempio n. 9
0
        private unsafe byte drawSliderCursor(ref InfoObject obj, InfoSliderParam *param, ushort *x0, ushort *x1, ushort *y0, ushort *y1)
        {
            byte num;

            if (param->Mode > 0)
            {
                num   = (byte)(param->CursorHeight / 2);
                x0[0] = (ushort)(((((obj.Panel.EndX - obj.Panel.X) + 1) - param->CursorWidth) / 2) + obj.Panel.X);
                x1[0] = (ushort)((x0[0] + param->CursorWidth) - 1);
                y1[0] = (ushort)(param->TouchPos + num);
                y0[0] = (ushort)((y1[0] - param->CursorHeight) + 1);
            }
            else
            {
                num   = (byte)(param->CursorWidth / 2);
                y0[0] = (ushort)(((((obj.Panel.EndY - obj.Panel.Y) + 1) - param->CursorHeight) / 2) + obj.Panel.Y);
                y1[0] = (ushort)((y0[0] + param->CursorHeight) - 1);
                x0[0] = (ushort)(param->TouchPos - num);
                x1[0] = (ushort)((x0[0] + param->CursorWidth) - 1);
            }
            if (param->CursorType > 0)
            {
                if (param->CutsorPicId >= m_guiApp.App.PictureCount)
                {
                    return(0);
                }
                m_guiApp.BrushInfo.sta = 2;
                m_guiApp.BrushInfo.pic = m_runScreen.ReadInfoPicture(param->CutsorPicId);
                m_guiApp.BrushInfo.X   = x0[0];
                m_guiApp.BrushInfo.Y   = y0[0];
            }
            else
            {
                m_guiApp.BrushInfo.sta       = 1;
                m_guiApp.BrushInfo.BackColor = param->CutsorPicId;
            }
            m_runScreen.ClearBackground(
                x0[0],
                y0[0],
                param->CursorWidth,
                param->CursorHeight
                );
            return(1);
        }
Esempio n. 10
0
        public byte GuiCurveInit(ref InfoObject obj, byte ID)
        {
            if (m_runScreen.IsEditor)
            {
                GuiCurvePageInit();
            }

            for (byte i = 0; i < 5; i = (byte)(i + 1))
            {
                if (CurveIndex[i].ObjID == 0xff)
                {
                    CurveIndex[i].ObjID  = ID;
                    CurveIndex[i].Offset = obj.AttributeStart;
                    if (m_runScreen.IsEditor)
                    {
                        CurveRefBack(ref obj, ID);
                    }
                    break;
                }
            }
            return(1);
        }
Esempio n. 11
0
        public unsafe byte GuiSliderRef(ref InfoObject obj, byte ID)
        {
            ushort           num;
            ushort           num2;
            ushort           num3;
            ushort           num4;
            InfoSliderParam *mymerry;

            if (m_runScreen.IsEditor)
                fixed(byte *px = &m_guiApp.CustomData[0])
                mymerry = (InfoSliderParam *)px;
            else
                fixed(byte *px = &m_guiApp.CustomData[obj.AttributeStart])
                mymerry = (InfoSliderParam *)px;

            if (mymerry->LastVal != mymerry->NowVal)
            {
                valueToTouchPos(ref obj, mymerry, ID);
            }

            drawSliderBackGround(ref obj, mymerry);
            drawSliderCursor(ref obj, mymerry, &num, &num3, &num2, &num4);
            if (mymerry->Mode > 0)
            {
                mymerry->LastPos = num4;
            }
            else
            {
                mymerry->LastPos = num;
            }

            if (!m_runScreen.IsEditor)
            {
                m_guiApp.PageObjects[ID].RefreshFlag = 0;
            }

            return(1);
        }
Esempio n. 12
0
        public unsafe byte GuiSliderPressMove(ref InfoObject obj, byte ID)
        {
            ushort y;
            byte num = 0;
            InfoSliderParam* pSliRam;
            fixed (byte* px = &m_guiApp.CustomData[obj.AttributeStart])
                pSliRam = (InfoSliderParam*)px;

            ushort touchPos = pSliRam->TouchPos;
            if (pSliRam->Mode > 0)
            {
                y = m_TPDev.Y;
            }
            else
            {
                y = m_TPDev.X;
            }
            num = changeTouchValue(ref obj, pSliRam, y);
            if (touchPos != pSliRam->TouchPos)
                refreshSliderCursor(ref obj, ID);

            return num;
        }
Esempio n. 13
0
        public unsafe byte GuiSliderPressDown(ref InfoObject obj, byte ID)
        {
            ushort value;
            InfoSliderParam* param;
            fixed (byte* px = &m_guiApp.CustomData[obj.AttributeStart])
                param = (InfoSliderParam*)px;

            if (m_guiApp.MoveObjId != ID)
                m_guiApp.MoveObjId = ID;

            if (param->Mode > 0)
                value = m_TPDev.Y0;
            else
                value = m_TPDev.X0;

            ushort touchPos = param->TouchPos;
            changeTouchValue(ref obj, param, value);

            if (touchPos != param->TouchPos)
                refreshSliderCursor(ref obj, ID);

            return 1;
        }
Esempio n. 14
0
        public byte GuiCurveInit(ref InfoObject obj, byte ID)
        {
            if (m_runScreen.IsEditor)
                GuiCurvePageInit();

            for (byte i = 0; i < 5; i = (byte)(i + 1))
                if (CurveIndex[i].ObjID == 0xff)
                {
                    CurveIndex[i].ObjID = ID;
                    CurveIndex[i].Offset = obj.AttributeStart;
                    if (m_runScreen.IsEditor)
                        CurveRefBack(ref obj, ID);
                    break;
                }
            return 1;
        }
Esempio n. 15
0
        public unsafe byte GuiSliderRef(ref InfoObject obj, byte ID)
        {
            ushort num;
            ushort num2;
            ushort num3;
            ushort num4;
            InfoSliderParam* mymerry;
            if (m_runScreen.IsEditor)
                fixed (byte* px = &m_guiApp.CustomData[0])
                    mymerry = (InfoSliderParam*)px;
            else
                fixed (byte* px = &m_guiApp.CustomData[obj.AttributeStart])
                    mymerry = (InfoSliderParam*)px;

            if (mymerry->LastVal != mymerry->NowVal)
                valueToTouchPos(ref obj, mymerry, ID);

            drawSliderBackGround(ref obj, mymerry);
            drawSliderCursor(ref obj, mymerry, &num, &num3, &num2, &num4);
            if (mymerry->Mode > 0)
                mymerry->LastPos = num4;
            else
                mymerry->LastPos = num;

            if (!m_runScreen.IsEditor)
                m_guiApp.PageObjects[ID].RefreshFlag = 0;

            return 1;
        }
Esempio n. 16
0
 public unsafe byte GuiSliderPressUp(ref InfoObject obj, byte ID)
 {
     m_guiApp.MoveObjId = 0xff;
     return 1;
 }
Esempio n. 17
0
        private unsafe byte clearSliderCursor(ref InfoObject obj, InfoSliderParam *param, ushort *x0, ushort *x1, ushort *y0, ushort *y1)
        {
            ushort x       = 0;
            ushort y       = 0;
            ushort num3    = 0;
            ushort lastPos = 0;

            if (param->Mode > 0)
            {
                x    = x0[0];
                num3 = x1[0];
                if (y1[0] < param->LastPos)
                {
                    lastPos = param->LastPos;
                    y       = (ushort)((lastPos - param->CursorHeight) + 1);
                    if (y1[0] >= y)
                    {
                        y = (ushort)(y1[0] + 1);
                    }
                }
                else if (y1[0] > param->LastPos)
                {
                    lastPos = param->LastPos;
                    y       = (ushort)((lastPos - param->CursorHeight) + 1);
                    if (lastPos >= y0[0])
                    {
                        lastPos = (ushort)(y0[0] - 1);
                    }
                }
            }
            else
            {
                y       = y0[0];
                lastPos = y1[0];
                if (x0[0] < param->LastPos)
                {
                    x    = param->LastPos;
                    num3 = (ushort)((x + param->CursorWidth) - 1);
                    if (x1[0] >= x)
                    {
                        x = (ushort)(x1[0] + 1);
                    }
                }
                else if (x0[0] > param->LastPos)
                {
                    x    = param->LastPos;
                    num3 = (ushort)((x + param->CursorWidth) - 1);
                    if (num3 >= x0[0])
                    {
                        num3 = (ushort)(x0[0] - 1);
                    }
                }
            }
            switch (param->BackType)
            {
            case 0:
                m_guiApp.BrushInfo.pic = m_runScreen.ReadInfoPicture(param->BackPicId);
                break;

            case 1:
                m_guiApp.BrushInfo.BackColor = param->BackPicId;
                break;

            case 2:
                m_guiApp.BrushInfo.pic = m_runScreen.ReadInfoPicture(param->BackPicId);
                m_guiApp.BrushInfo.X   = obj.Panel.X;
                m_guiApp.BrushInfo.Y   = obj.Panel.Y;
                break;
            }
            m_guiApp.BrushInfo.sta = param->BackType;
            m_runScreen.ClearBackground(x, y, (ushort)((num3 - x) + 1), (ushort)((lastPos - y) + 1));
            return(1);
        }
Esempio n. 18
0
 public unsafe void GuiSliderLoad(ref InfoObject obj, byte ID)
 {
     GuiSliderRef(ref obj, ID);
 }
Esempio n. 19
0
 public unsafe byte GuiSliderObjInit(ref InfoObject obj, byte ID)
 {
     if (m_runScreen.IsEditor)
         GuiSliderRef(ref obj, ID);
     return 1;
 }
Esempio n. 20
0
 private unsafe byte drawSliderCursor(ref InfoObject obj, InfoSliderParam* param, ushort* x0, ushort* x1, ushort* y0, ushort* y1)
 {
     byte num;
     if (param->Mode > 0)
     {
         num = (byte)(param->CursorHeight / 2);
         x0[0] = (ushort)(((((obj.Panel.EndX - obj.Panel.X) + 1) - param->CursorWidth) / 2) + obj.Panel.X);
         x1[0] = (ushort)((x0[0] + param->CursorWidth) - 1);
         y1[0] = (ushort)(param->TouchPos + num);
         y0[0] = (ushort)((y1[0] - param->CursorHeight) + 1);
     }
     else
     {
         num = (byte)(param->CursorWidth / 2);
         y0[0] = (ushort)(((((obj.Panel.EndY - obj.Panel.Y) + 1) - param->CursorHeight) / 2) + obj.Panel.Y);
         y1[0] = (ushort)((y0[0] + param->CursorHeight) - 1);
         x0[0] = (ushort)(param->TouchPos - num);
         x1[0] = (ushort)((x0[0] + param->CursorWidth) - 1);
     }
     if (param->CursorType > 0)
     {
         if (param->CutsorPicId >= m_guiApp.App.PictureCount)
         {
             return 0;
         }
         m_guiApp.BrushInfo.sta = 2;
         m_guiApp.BrushInfo.pic = m_runScreen.ReadInfoPicture(param->CutsorPicId);
         m_guiApp.BrushInfo.X = x0[0];
         m_guiApp.BrushInfo.Y = y0[0];
     }
     else
     {
         m_guiApp.BrushInfo.sta = 1;
         m_guiApp.BrushInfo.BackColor = param->CutsorPicId;
     }
     m_runScreen.ClearBackground(
         x0[0],
         y0[0],
         param->CursorWidth,
         param->CursorHeight
     );
     return 1;
 }
Esempio n. 21
0
 public unsafe byte GuiSliderPressUp(ref InfoObject obj, byte ID)
 {
     m_guiApp.MoveObjId = 0xff;
     return(1);
 }
Esempio n. 22
0
        public unsafe byte GuiCurveRef(ref InfoObject obj, byte ID)
        {
            byte qyt = 0;

            byte[]          buffer    = new byte[4];
            ushort[]        numArray  = new ushort[4];
            ushort[]        numArray2 = new ushort[4];
            ushort[]        numArray3 = new ushort[4];
            ushort[]        numArray4 = new ushort[4];
            uint            address   = 0;
            InfoPicture     pic       = new InfoPicture();
            InfoCurveParam *curve_paramPtr;

            fixed(byte *px = &m_guiApp.CustomData[obj.AttributeStart])
            curve_paramPtr = (InfoCurveParam *)px;

            InfoCurveChannelParam *[] curve_channel_paramPtrArray = new InfoCurveChannelParam *[4];
            short x     = 0;
            short num11 = 0;

            if (curve_paramPtr->ChannelCount <= 4)
            {
                byte num3;
                for (num3 = 0; num3 < curve_paramPtr->ChannelCount; num3++)
                {
                    curve_channel_paramPtrArray[num3] = (InfoCurveChannelParam *)((((uint)curve_paramPtr) + sizeof(InfoCurveParam)) + (sizeof(InfoCurveChannelParam) * num3));
                }

                byte num2 = 0;
                num3 = 0;
                while (num3 < curve_paramPtr->ChannelCount)
                {
                    buffer[num3]    = 1;
                    numArray[num3]  = curve_channel_paramPtrArray[num3]->BufNext;
                    numArray3[num3] = curve_channel_paramPtrArray[num3]->DotLen;
                    numArray4[num3] = numArray3[num3];
                    if (numArray3[num3] > 0)
                    {
                        num2 = (byte)(num2 + 1);
                    }
                    num3 = (byte)(num3 + 1);
                }
                if (num2 == 0)
                {
                    CurveRefBack(ref obj, ID);
                }
                else
                {
                    if (curve_paramPtr->BackType == 0)
                    {
                        qyt     = 5;
                        pic     = m_runScreen.ReadInfoPicture(curve_paramPtr->PicID);
                        address = pic.DataStart + m_guiApp.App.PictureImageStart;
                        if (pic.IsPotrait == 1)
                        {
                            address += (uint)((((obj.Panel.Y + 1) * pic.W) - obj.Panel.X) * 2);
                        }
                        else
                        {
                            address += (uint)(((obj.Panel.Y * pic.W) + obj.Panel.X) * 2);
                        }
                    }
                    else if (curve_paramPtr->BackType == 2)
                    {
                        qyt     = 5;
                        pic     = m_runScreen.ReadInfoPicture(curve_paramPtr->PicID);
                        address = pic.DataStart + m_guiApp.App.PictureImageStart;
                    }
                    else
                    {
                        x     = (short)obj.Panel.X;
                        num11 = (short)(x + curve_paramPtr->GridX);
                    }
                    for (short i = (short)obj.Panel.X; i <= obj.Panel.EndX; i = (short)(i + qyt))
                    {
                        short endx = (short)((i + 5) - 1);
                        if (endx > obj.Panel.EndX)
                        {
                            endx = (short)obj.Panel.EndX;
                        }
                        if (curve_paramPtr->BackType == 0)
                        {
                            if (pic.IsPotrait == 1)
                            {
                                address -= (uint)(qyt * 2);
                            }

                            m_runScreen.LCD_AreaSet((ushort)i, obj.Panel.Y, (ushort)endx, obj.Panel.EndY);
                            m_runScreen.SendDataOffset(address, (ushort)(pic.W << 1), curve_paramPtr->Height, (byte)((endx - i) + 1));

                            if (pic.IsPotrait == 0)
                            {
                                address += (uint)(qyt * 2);
                            }
                        }
                        else if (curve_paramPtr->BackType == 2)
                        {
                            if (pic.IsPotrait == 1)
                            {
                                address -= (uint)(qyt * 2);
                            }

                            m_runScreen.LCD_AreaSet((ushort)i, obj.Panel.Y, (ushort)endx, obj.Panel.EndY);
                            m_runScreen.SendDataOffset(address, (ushort)(pic.W << 1), curve_paramPtr->Height, (byte)((endx - i) + 1));
                            if (pic.IsPotrait == 0)
                            {
                                address += (uint)(qyt * 2);
                            }
                        }
                        else
                        {
                            short endy;
                            short y;
                            if (curve_paramPtr->GridX > 0)
                            {
                                ushort num14;
                                ushort num15;
                                if (i == x)
                                {
                                    m_runScreen.LCD_AreaSet((ushort)i, obj.Panel.Y, (ushort)i, obj.Panel.EndY);
                                    m_runScreen.LCD_WR_POINT(curve_paramPtr->Height, curve_paramPtr->Griclr);
                                    num14 = (ushort)(i + 1);
                                }
                                else
                                {
                                    num14 = (ushort)i;
                                }

                                if ((num14 + 5) >= num11)
                                {
                                    num15 = (ushort)(num11 - 1);
                                    x     = num11;
                                    num11 = (short)(num11 + curve_paramPtr->GridX);
                                }
                                else
                                {
                                    num15 = (ushort)((num14 + 5) - 1);
                                }

                                qyt = (byte)((num15 - i) + 1);
                                if ((i + qyt) > obj.Panel.EndX)
                                {
                                    num15 = (ushort)endx;
                                    qyt   = (byte)((endx - i) + 1);
                                }
                                if (curve_paramPtr->GridY > 0)
                                {
                                    endy = (short)obj.Panel.EndY;
                                    while (endy > obj.Panel.Y)
                                    {
                                        y = (short)((endy - curve_paramPtr->GridY) + 1);
                                        if (y < obj.Panel.Y)
                                        {
                                            y = (short)obj.Panel.Y;
                                        }
                                        m_runScreen.LCD_AreaSet(num14, (ushort)y, num15, (ushort)endy);
                                        m_runScreen.LCD_WR_POINT((uint)(((num15 - num14) + 1) * (endy - y)), curve_paramPtr->BackColor);
                                        m_runScreen.LCD_WR_POINT((uint)((num15 - num14) + 1), curve_paramPtr->Griclr);
                                        endy = (short)(endy - curve_paramPtr->GridY);
                                    }
                                }
                                else
                                {
                                    address = (uint)(curve_paramPtr->Height * ((num15 - num14) + 1));
                                    m_runScreen.LCD_AreaSet(num14, obj.Panel.Y, num15, obj.Panel.EndY);
                                    m_runScreen.LCD_WR_POINT(address, curve_paramPtr->BackColor);
                                }
                            }
                            else if (curve_paramPtr->GridY > 0)
                            {
                                for (endy = (short)obj.Panel.EndY; endy > obj.Panel.Y; endy = (short)(endy - curve_paramPtr->GridY))
                                {
                                    y = (short)((endy - curve_paramPtr->GridY) + 1);
                                    if (y < obj.Panel.Y)
                                    {
                                        y = (short)obj.Panel.Y;
                                    }
                                    m_runScreen.LCD_AreaSet((ushort)i, (ushort)y, (ushort)endx, (ushort)endy);
                                    qyt = (byte)((endx - i) + 1);
                                    m_runScreen.LCD_WR_POINT((uint)(qyt * (endy - y)), curve_paramPtr->BackColor);
                                    m_runScreen.LCD_WR_POINT(qyt, curve_paramPtr->Griclr);
                                }
                            }
                            else
                            {
                                qyt     = (byte)((endx - i) + 1);
                                address = (uint)(curve_paramPtr->Height * ((endx - i) + 1));
                                m_runScreen.LCD_AreaSet((ushort)i, obj.Panel.Y, (ushort)endx, obj.Panel.EndY);
                                m_runScreen.LCD_WR_POINT(address, curve_paramPtr->BackColor);
                            }
                        }
                        num3 = 0;
                        while (num3 < curve_paramPtr->ChannelCount)
                        {
                            if (numArray4[num3] > 0)
                            {
                                for (num2 = 0; num2 < qyt; num2 = (byte)(num2 + 1))
                                {
                                    byte num6;
                                    if (numArray[num3] == curve_channel_paramPtrArray[num3]->Begin)
                                    {
                                        numArray[num3] = (ushort)curve_channel_paramPtrArray[num3]->End;
                                    }
                                    else
                                    {
                                        numArray[num3] = (ushort)(numArray[num3] - 1);
                                    }

                                    if (numArray[num3] == curve_channel_paramPtrArray[num3]->Begin)
                                    {
                                        numArray2[num3] = (ushort)curve_channel_paramPtrArray[num3]->End;
                                    }
                                    else
                                    {
                                        numArray2[num3] = (ushort)(numArray[num3] - 1);
                                    }

                                    byte num5 = m_guiApp.CustomData[numArray[num3]];
                                    byte num4 = m_guiApp.CustomData[numArray2[num3]];
                                    if (buffer[num3] > 0)
                                    {
                                        num4         = num5;
                                        buffer[num3] = 0;
                                    }

                                    if (numArray4[num3] == 1)
                                    {
                                        num4 = num5;
                                    }
                                    if (num5 > num4)
                                    {
                                        num6 = (byte)((num5 - num4) + 1);
                                        m_runScreen.LCD_AreaSet((ushort)(i + num2), (ushort)(obj.Panel.EndY - num5), (ushort)(i + num2), (ushort)(obj.Panel.EndY - num4));
                                        m_runScreen.LCD_WR_POINT(num6, curve_channel_paramPtrArray[num3]->Penclr);
                                    }
                                    else
                                    {
                                        num6 = (byte)((num4 - num5) + 1);
                                        m_runScreen.LCD_AreaSet((ushort)(i + num2), (ushort)(obj.Panel.EndY - num4), (ushort)(i + num2), (ushort)(obj.Panel.EndY - num5));
                                        m_runScreen.LCD_WR_POINT(num6, curve_channel_paramPtrArray[num3]->Penclr);
                                    }
                                    numArray4[num3] = (ushort)(numArray4[num3] - 1);
                                    if (numArray4[num3] == 0)
                                    {
                                        break;
                                    }
                                }
                            }
                            num3 = (byte)(num3 + 1);
                        }
                    }
                    for (num3 = 0; num3 < curve_paramPtr->ChannelCount; num3 = (byte)(num3 + 1))
                    {
                        if (curve_channel_paramPtrArray[num3]->DotLen == curve_paramPtr->Width)
                        {
                            curve_channel_paramPtrArray[num3]->BufFree = (ushort)((curve_paramPtr->BufLen - curve_paramPtr->Width) - (curve_channel_paramPtrArray[num3]->DotLen - numArray3[num3]));
                        }
                    }
                }
                curve_paramPtr->RefFlag = 0;
            }
            return(0);
        }
Esempio n. 23
0
 private unsafe byte clearSliderCursor(ref InfoObject obj, InfoSliderParam* param, ushort* x0, ushort* x1, ushort* y0, ushort* y1)
 {
     ushort x = 0;
     ushort y = 0;
     ushort num3 = 0;
     ushort lastPos = 0;
     if (param->Mode > 0)
     {
         x = x0[0];
         num3 = x1[0];
         if (y1[0] < param->LastPos)
         {
             lastPos = param->LastPos;
             y = (ushort)((lastPos - param->CursorHeight) + 1);
             if (y1[0] >= y)
                 y = (ushort)(y1[0] + 1);
         }
         else if (y1[0] > param->LastPos)
         {
             lastPos = param->LastPos;
             y = (ushort)((lastPos - param->CursorHeight) + 1);
             if (lastPos >= y0[0])
                 lastPos = (ushort)(y0[0] - 1);
         }
     }
     else
     {
         y = y0[0];
         lastPos = y1[0];
         if (x0[0] < param->LastPos)
         {
             x = param->LastPos;
             num3 = (ushort)((x + param->CursorWidth) - 1);
             if (x1[0] >= x)
                 x = (ushort)(x1[0] + 1);
         }
         else if (x0[0] > param->LastPos)
         {
             x = param->LastPos;
             num3 = (ushort)((x + param->CursorWidth) - 1);
             if (num3 >= x0[0])
                 num3 = (ushort)(x0[0] - 1);
         }
     }
     switch (param->BackType)
     {
         case 0:
             m_guiApp.BrushInfo.pic = m_runScreen.ReadInfoPicture(param->BackPicId);
             break;
         case 1:
             m_guiApp.BrushInfo.BackColor = param->BackPicId;
             break;
         case 2:
             m_guiApp.BrushInfo.pic = m_runScreen.ReadInfoPicture(param->BackPicId);
             m_guiApp.BrushInfo.X = obj.Panel.X;
             m_guiApp.BrushInfo.Y = obj.Panel.Y;
             break;
     }
     m_guiApp.BrushInfo.sta = param->BackType;
     m_runScreen.ClearBackground(x, y, (ushort)((num3 - x) + 1), (ushort)((lastPos - y) + 1));
     return 1;
 }
Esempio n. 24
0
 private unsafe byte changeTouchValue(ref InfoObject obj, InfoSliderParam* param, ushort val)
 {
     byte num;
     byte num2;
     ushort nowVal = param->NowVal;
     if (param->Mode > 0)
     {
         num = (byte)(param->CursorHeight / 2);
         num2 = (byte)(param->CursorHeight - num);
         if (val >= (obj.Panel.EndY - num))
         {
             param->TouchPos = (ushort)(obj.Panel.EndY - num);
             param->NowVal = param->MinVal;
         }
         else if (val <= ((obj.Panel.Y + num2) - 1))
         {
             param->TouchPos = (ushort)((obj.Panel.Y + num2) - 1);
             param->NowVal = param->MaxVal;
         }
         else
         {
             param->TouchPos = val;
             param->NowVal = (ushort)(param->MinVal + ((((long)(obj.Panel.EndY - num2 - val)) * (param->MaxVal - param->MinVal + 1)) / ((long)(obj.Panel.EndY - obj.Panel.Y - param->CursorHeight + 1))
                     )
                 );
         }
     }
     else
     {
         num = (byte)(param->CursorWidth / 2);
         num2 = (byte)(param->CursorWidth - num);
         if (val <= (obj.Panel.X + num))
         {
             param->TouchPos = (ushort)(obj.Panel.X + num);
             param->NowVal = param->MinVal;
         }
         else if (val >= ((obj.Panel.EndX - num2) + 1))
         {
             param->TouchPos = (ushort)((obj.Panel.EndX - num2) + 1);
             param->NowVal = param->MaxVal;
         }
         else
         {
             param->TouchPos = val;
             param->NowVal = (ushort)(param->MinVal + ((((long)((val - obj.Panel.X) - num)) * ((param->MaxVal - param->MinVal) + 1)) / ((long)(obj.Panel.EndX - obj.Panel.X - param->CursorWidth + 1))));
         }
     }
     if (param->NowVal > 100)
         param->NowVal = param->NowVal;
     if (nowVal != param->NowVal)
     {
         param->LastVal = param->NowVal;
         return 1;
     }
     return 0;
 }
Esempio n. 25
0
        public unsafe byte GuiCurveRef(ref InfoObject obj, byte ID)
        {
            byte qyt = 0;
            byte[] buffer = new byte[4];
            ushort[] numArray = new ushort[4];
            ushort[] numArray2 = new ushort[4];
            ushort[] numArray3 = new ushort[4];
            ushort[] numArray4 = new ushort[4];
            uint address = 0;
            InfoPicture pic = new InfoPicture();
            InfoCurveParam* curve_paramPtr;
            fixed(byte* px = &m_guiApp.CustomData[obj.AttributeStart])
                curve_paramPtr = (InfoCurveParam*)px;
            InfoCurveChannelParam*[] curve_channel_paramPtrArray = new InfoCurveChannelParam*[4];
            short x = 0;
            short num11 = 0;
            if (curve_paramPtr->ChannelCount <= 4)
            {
                byte num3;
                for (num3 = 0; num3 < curve_paramPtr->ChannelCount; num3++)
                    curve_channel_paramPtrArray[num3] = (InfoCurveChannelParam*)((((uint)curve_paramPtr) + sizeof(InfoCurveParam)) + (sizeof(InfoCurveChannelParam) * num3));

                byte num2 = 0;
                num3 = 0;
                while (num3 < curve_paramPtr->ChannelCount)
                {
                    buffer[num3] = 1;
                    numArray[num3] = curve_channel_paramPtrArray[num3]->BufNext;
                    numArray3[num3] = curve_channel_paramPtrArray[num3]->DotLen;
                    numArray4[num3] = numArray3[num3];
                    if (numArray3[num3] > 0)
                    {
                        num2 = (byte)(num2 + 1);
                    }
                    num3 = (byte)(num3 + 1);
                }
                if (num2 == 0)
                {
                    CurveRefBack(ref obj, ID);
                }
                else
                {
                    if (curve_paramPtr->BackType == 0)
                    {
                        qyt = 5;
                        pic = m_runScreen.ReadInfoPicture(curve_paramPtr->PicID);
                        address = pic.DataStart + m_guiApp.App.PictureImageStart;
                        if (pic.IsPotrait == 1)
                            address += (uint)((((obj.Panel.Y + 1) * pic.W) - obj.Panel.X) * 2);
                        else
                            address += (uint)(((obj.Panel.Y * pic.W) + obj.Panel.X) * 2);
                    }
                    else if (curve_paramPtr->BackType == 2)
                    {
                        qyt = 5;
                        pic = m_runScreen.ReadInfoPicture(curve_paramPtr->PicID);
                        address = pic.DataStart + m_guiApp.App.PictureImageStart;
                    }
                    else
                    {
                        x = (short)obj.Panel.X;
                        num11 = (short)(x + curve_paramPtr->GridX);
                    }
                    for (short i = (short)obj.Panel.X; i <= obj.Panel.EndX; i = (short)(i + qyt))
                    {
                        short endx = (short)((i + 5) - 1);
                        if (endx > obj.Panel.EndX)
                        {
                            endx = (short)obj.Panel.EndX;
                        }
                        if (curve_paramPtr->BackType == 0)
                        {
                            if (pic.IsPotrait == 1)
                                address -= (uint)(qyt * 2);

                            m_runScreen.LCD_AreaSet((ushort)i, obj.Panel.Y, (ushort)endx, obj.Panel.EndY);
                            m_runScreen.SendDataOffset(address, (ushort)(pic.W << 1), curve_paramPtr->Height, (byte)((endx - i) + 1));

                            if (pic.IsPotrait == 0)
                                address += (uint)(qyt * 2);
                        }
                        else if (curve_paramPtr->BackType == 2)
                        {
                            if (pic.IsPotrait == 1)
                                address -= (uint)(qyt * 2);

                            m_runScreen.LCD_AreaSet((ushort)i, obj.Panel.Y, (ushort)endx, obj.Panel.EndY);
                            m_runScreen.SendDataOffset(address, (ushort)(pic.W << 1), curve_paramPtr->Height, (byte)((endx - i) + 1));
                            if (pic.IsPotrait == 0)
                                address += (uint)(qyt * 2);
                        }
                        else
                        {
                            short endy;
                            short y;
                            if (curve_paramPtr->GridX > 0)
                            {
                                ushort num14;
                                ushort num15;
                                if (i == x)
                                {
                                    m_runScreen.LCD_AreaSet((ushort)i, obj.Panel.Y, (ushort)i, obj.Panel.EndY);
                                    m_runScreen.LCD_WR_POINT(curve_paramPtr->Height, curve_paramPtr->Griclr);
                                    num14 = (ushort)(i + 1);
                                }
                                else
                                    num14 = (ushort)i;

                                if ((num14 + 5) >= num11)
                                {
                                    num15 = (ushort)(num11 - 1);
                                    x = num11;
                                    num11 = (short)(num11 + curve_paramPtr->GridX);
                                }
                                else
                                    num15 = (ushort)((num14 + 5) - 1);

                                qyt = (byte)((num15 - i) + 1);
                                if ((i + qyt) > obj.Panel.EndX)
                                {
                                    num15 = (ushort)endx;
                                    qyt = (byte)((endx - i) + 1);
                                }
                                if (curve_paramPtr->GridY > 0)
                                {
                                    endy = (short)obj.Panel.EndY;
                                    while (endy > obj.Panel.Y)
                                    {
                                        y = (short)((endy - curve_paramPtr->GridY) + 1);
                                        if (y < obj.Panel.Y)
                                        {
                                            y = (short)obj.Panel.Y;
                                        }
                                        m_runScreen.LCD_AreaSet(num14, (ushort)y, num15, (ushort)endy);
                                        m_runScreen.LCD_WR_POINT((uint)(((num15 - num14) + 1) * (endy - y)), curve_paramPtr->BackColor);
                                        m_runScreen.LCD_WR_POINT((uint)((num15 - num14) + 1), curve_paramPtr->Griclr);
                                        endy = (short)(endy - curve_paramPtr->GridY);
                                    }
                                }
                                else
                                {
                                    address = (uint)(curve_paramPtr->Height * ((num15 - num14) + 1));
                                    m_runScreen.LCD_AreaSet(num14, obj.Panel.Y, num15, obj.Panel.EndY);
                                    m_runScreen.LCD_WR_POINT(address, curve_paramPtr->BackColor);
                                }
                            }
                            else if (curve_paramPtr->GridY > 0)
                            {
                                for (endy = (short)obj.Panel.EndY; endy > obj.Panel.Y; endy = (short)(endy - curve_paramPtr->GridY))
                                {
                                    y = (short)((endy - curve_paramPtr->GridY) + 1);
                                    if (y < obj.Panel.Y)
                                    {
                                        y = (short)obj.Panel.Y;
                                    }
                                    m_runScreen.LCD_AreaSet((ushort)i, (ushort)y, (ushort)endx, (ushort)endy);
                                    qyt = (byte)((endx - i) + 1);
                                    m_runScreen.LCD_WR_POINT((uint)(qyt * (endy - y)), curve_paramPtr->BackColor);
                                    m_runScreen.LCD_WR_POINT(qyt, curve_paramPtr->Griclr);
                                }
                            }
                            else
                            {
                                qyt = (byte)((endx - i) + 1);
                                address = (uint)(curve_paramPtr->Height * ((endx - i) + 1));
                                m_runScreen.LCD_AreaSet((ushort)i, obj.Panel.Y, (ushort)endx, obj.Panel.EndY);
                                m_runScreen.LCD_WR_POINT(address, curve_paramPtr->BackColor);
                            }
                        }
                        num3 = 0;
                        while (num3 < curve_paramPtr->ChannelCount)
                        {
                            if (numArray4[num3] > 0)
                            {
                                for (num2 = 0; num2 < qyt; num2 = (byte)(num2 + 1))
                                {
                                    byte num6;
                                    if (numArray[num3] == curve_channel_paramPtrArray[num3]->Begin)
                                        numArray[num3] = (ushort)curve_channel_paramPtrArray[num3]->End;
                                    else
                                        numArray[num3] = (ushort)(numArray[num3] - 1);

                                    if (numArray[num3] == curve_channel_paramPtrArray[num3]->Begin)
                                        numArray2[num3] = (ushort)curve_channel_paramPtrArray[num3]->End;
                                    else
                                        numArray2[num3] = (ushort)(numArray[num3] - 1);

                                    byte num5 = m_guiApp.CustomData[numArray[num3]];
                                    byte num4 = m_guiApp.CustomData[numArray2[num3]];
                                    if (buffer[num3] > 0)
                                    {
                                        num4 = num5;
                                        buffer[num3] = 0;
                                    }

                                    if (numArray4[num3] == 1)
                                        num4 = num5;
                                    if (num5 > num4)
                                    {
                                        num6 = (byte)((num5 - num4) + 1);
                                        m_runScreen.LCD_AreaSet((ushort)(i + num2), (ushort)(obj.Panel.EndY - num5), (ushort)(i + num2), (ushort)(obj.Panel.EndY - num4));
                                        m_runScreen.LCD_WR_POINT(num6, curve_channel_paramPtrArray[num3]->Penclr);
                                    }
                                    else
                                    {
                                        num6 = (byte)((num4 - num5) + 1);
                                        m_runScreen.LCD_AreaSet((ushort)(i + num2), (ushort)(obj.Panel.EndY - num4), (ushort)(i + num2), (ushort)(obj.Panel.EndY - num5));
                                        m_runScreen.LCD_WR_POINT(num6, curve_channel_paramPtrArray[num3]->Penclr);
                                    }
                                    numArray4[num3] = (ushort)(numArray4[num3] - 1);
                                    if (numArray4[num3] == 0)
                                        break;
                                }
                            }
                            num3 = (byte)(num3 + 1);
                        }
                    }
                    for (num3 = 0; num3 < curve_paramPtr->ChannelCount; num3 = (byte)(num3 + 1))
                    {
                        if (curve_channel_paramPtrArray[num3]->DotLen == curve_paramPtr->Width)
                        {
                            curve_channel_paramPtrArray[num3]->BufFree = (ushort)((curve_paramPtr->BufLen - curve_paramPtr->Width) - (curve_channel_paramPtrArray[num3]->DotLen - numArray3[num3]));
                        }
                    }
                }
                curve_paramPtr->RefFlag = 0;
            }
            return 0;
        }
Esempio n. 26
0
        public unsafe void CurveRefBack(ref InfoObject obj, byte ID)
        {
            InfoCurveParam* curveParam;
            byte[] buffer = new byte[0];
            if (m_runScreen.IsEditor)
            {
                GuiCurvePageInit();
                fixed (byte* px = &m_guiApp.CustomData[0])
                    curveParam = (InfoCurveParam*)px;
            }
            else
            {
                fixed (byte *px = &m_guiApp.CustomData[obj.AttributeStart])
                    curveParam = (InfoCurveParam*)px;
            }

            if (m_runScreen.IsEditor || m_guiApp.PageObjects[ID].Visible == 1)
            {
                if (curveParam->BackType == 0)
                    m_runScreen.ShowXPic(
                        obj.Panel.X,
                        obj.Panel.Y,
                        (ushort)(obj.Panel.EndX - obj.Panel.X + 1),
                        (ushort)(obj.Panel.EndY - obj.Panel.Y + 1),
                        obj.Panel.X,
                        obj.Panel.Y,
                        curveParam->PicID
                    );
                else if (curveParam->BackType == 2)
                    m_runScreen.ShowPic(
                        obj.Panel.X,
                        obj.Panel.Y,
                        curveParam->PicID
                    );
                else
                {
                    short num;
                    uint length = (uint)(curveParam->Width * curveParam->Height);
                    m_runScreen.LCD_AreaSet(
                        obj.Panel.X,
                        obj.Panel.Y,
                        obj.Panel.EndX,
                        obj.Panel.EndY
                    );
                    m_runScreen.LCD_WR_POINT(length, curveParam->BackColor);
                    if (curveParam->GridX > 0)
                    {
                        for (num = (short)obj.Panel.X; num <= obj.Panel.EndX; num = (short)(num + curveParam->GridX))
                        {
                            m_runScreen.LCD_AreaSet((ushort)num, obj.Panel.Y, (ushort)num, obj.Panel.EndY);
                            m_runScreen.LCD_WR_POINT(curveParam->Height, curveParam->Griclr);
                        }
                    }
                    if (curveParam->GridY > 0)
                        for (num = (short)obj.Panel.EndY; num >= obj.Panel.Y; num = (short)(num - curveParam->GridY))
                        {
                            m_runScreen.LCD_AreaSet(obj.Panel.X, (ushort)num, obj.Panel.EndX, (ushort)num);
                            m_runScreen.LCD_WR_POINT(curveParam->Width, curveParam->Griclr);
                        }
                }
            }
        }
Esempio n. 27
0
        private unsafe byte refreshSliderCursor(ref InfoObject obj, byte ID)
        {
            ushort x0;
            ushort y0;
            ushort x1;
            ushort y1;

            InfoSliderParam* param;
            fixed (byte* px = &m_guiApp.CustomData[obj.AttributeStart])
                param = (InfoSliderParam*)px;

            drawSliderCursor(ref obj, param, &x0, &x1, &y0, &y1);
            clearSliderCursor(ref obj, param, &x0, &x1, &y0, &y1);

            if (param->Mode > 0)
                param->LastPos = y1;
            else
                param->LastPos = x0;

            return 1;
        }
Esempio n. 28
0
        private unsafe byte drawSliderBackGround(ref InfoObject obj, InfoSliderParam* param)
        {
            switch (param->BackType)
            {
                case 0:
                    if (param->BackPicId < m_guiApp.App.PictureCount)
                    {
                        m_guiApp.BrushInfo.pic = m_runScreen.ReadInfoPicture(param->BackPicId);
                        break;
                    }
                    return 0;

                case 1:
                    m_guiApp.BrushInfo.BackColor = param->BackPicId;
                    break;

                case 2:
                    if (param->BackPicId < m_guiApp.App.PictureCount)
                    {
                        m_guiApp.BrushInfo.X = obj.Panel.X;
                        m_guiApp.BrushInfo.Y = obj.Panel.Y;
                        m_guiApp.BrushInfo.pic = m_runScreen.ReadInfoPicture(param->BackPicId);
                        break;
                    }
                    return 0;
            }
            m_guiApp.BrushInfo.sta = param->BackType;
            m_runScreen.ClearBackground(
                obj.Panel.X,
                obj.Panel.Y,
                (ushort)(obj.Panel.EndX - obj.Panel.X + 1),
                (ushort)(obj.Panel.EndY - obj.Panel.Y + 1)
            );
            return 1;
        }
Esempio n. 29
0
        private unsafe byte valueToTouchPos(ref InfoObject obj, InfoSliderParam* param, byte ID)
        {
            ushort num;
            byte num2;
            byte num3;
            if (param->Mode > 0)
            {
                num2 = (byte)(param->CursorHeight / 2);
                num3 = (byte)(param->CursorHeight - num2);

                if (param->NowVal >= param->MaxVal)
                    param->TouchPos = (ushort)((obj.Panel.Y + num3) - 1);
                else if (param->NowVal <= param->MinVal)
                    param->TouchPos = (ushort)(obj.Panel.EndY - num2);
                else
                {
                    num = (ushort)(((param->NowVal - param->MinVal) * (((obj.Panel.EndY - obj.Panel.Y) - param->CursorHeight) + 1)) / ((param->MaxVal - param->MinVal) + 1));
                    param->TouchPos = (ushort)((obj.Panel.EndY - num3) - num);
                }
            }
            else
            {
                num2 = (byte)(param->CursorWidth / 2);
                num3 = (byte)(param->CursorWidth - num2);

                if (param->NowVal >= param->MaxVal)
                    param->TouchPos = (ushort)((obj.Panel.EndX - num3) + 1);
                else if (param->NowVal <= param->MinVal)
                    param->TouchPos = (ushort)(obj.Panel.X + num2);
                else
                {
                    num = (ushort)((obj.Panel.X + num2) + ((((long)(param->NowVal - param->MinVal)) * (obj.Panel.EndX - obj.Panel.X - param->CursorWidth + 1)) / ((long)(param->MaxVal - param->MinVal + 1))));
                    param->TouchPos = num;
                }
            }

            if (!m_runScreen.IsEditor)
                m_guiApp.PageObjects[ID].RefreshFlag = 1;

            param->LastVal = param->NowVal;
            return 1;
        }
Esempio n. 30
0
        public unsafe void CurveRefBack(ref InfoObject obj, byte ID)
        {
            InfoCurveParam *curveParam;

            byte[] buffer = new byte[0];
            if (m_runScreen.IsEditor)
            {
                GuiCurvePageInit();

                fixed(byte *px = &m_guiApp.CustomData[0])
                curveParam = (InfoCurveParam *)px;
            }
            else
            {
                fixed(byte *px = &m_guiApp.CustomData[obj.AttributeStart])
                curveParam = (InfoCurveParam *)px;
            }

            if (m_runScreen.IsEditor || m_guiApp.PageObjects[ID].Visible == 1)
            {
                if (curveParam->BackType == 0)
                {
                    m_runScreen.ShowXPic(
                        obj.Panel.X,
                        obj.Panel.Y,
                        (ushort)(obj.Panel.EndX - obj.Panel.X + 1),
                        (ushort)(obj.Panel.EndY - obj.Panel.Y + 1),
                        obj.Panel.X,
                        obj.Panel.Y,
                        curveParam->PicID
                        );
                }
                else if (curveParam->BackType == 2)
                {
                    m_runScreen.ShowPic(
                        obj.Panel.X,
                        obj.Panel.Y,
                        curveParam->PicID
                        );
                }
                else
                {
                    short num;
                    uint  length = (uint)(curveParam->Width * curveParam->Height);
                    m_runScreen.LCD_AreaSet(
                        obj.Panel.X,
                        obj.Panel.Y,
                        obj.Panel.EndX,
                        obj.Panel.EndY
                        );
                    m_runScreen.LCD_WR_POINT(length, curveParam->BackColor);
                    if (curveParam->GridX > 0)
                    {
                        for (num = (short)obj.Panel.X; num <= obj.Panel.EndX; num = (short)(num + curveParam->GridX))
                        {
                            m_runScreen.LCD_AreaSet((ushort)num, obj.Panel.Y, (ushort)num, obj.Panel.EndY);
                            m_runScreen.LCD_WR_POINT(curveParam->Height, curveParam->Griclr);
                        }
                    }
                    if (curveParam->GridY > 0)
                    {
                        for (num = (short)obj.Panel.EndY; num >= obj.Panel.Y; num = (short)(num - curveParam->GridY))
                        {
                            m_runScreen.LCD_AreaSet(obj.Panel.X, (ushort)num, obj.Panel.EndX, (ushort)num);
                            m_runScreen.LCD_WR_POINT(curveParam->Width, curveParam->Griclr);
                        }
                    }
                }
            }
        }
Esempio n. 31
0
 public unsafe void GuiSliderLoad(ref InfoObject obj, byte ID)
 {
     GuiSliderRef(ref obj, ID);
 }