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); } } } } }