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); }
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); }
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); }
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); }
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); }
public unsafe byte GuiSliderObjInit(ref InfoObject obj, byte ID) { if (m_runScreen.IsEditor) { GuiSliderRef(ref obj, ID); } return(1); }
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); }
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; } } } }
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); }
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); }
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); }
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; }
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; }
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; }
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; }
public unsafe byte GuiSliderPressUp(ref InfoObject obj, byte ID) { m_guiApp.MoveObjId = 0xff; return 1; }
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); }
public unsafe void GuiSliderLoad(ref InfoObject obj, byte ID) { GuiSliderRef(ref obj, ID); }
public unsafe byte GuiSliderObjInit(ref InfoObject obj, byte ID) { if (m_runScreen.IsEditor) GuiSliderRef(ref obj, ID); return 1; }
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; }
public unsafe byte GuiSliderPressUp(ref InfoObject obj, byte ID) { m_guiApp.MoveObjId = 0xff; return(1); }
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); }
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; }
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; }
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; }
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); } } } }
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; }
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; }
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; }
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); } } } } }