public override void Draw(Cairo.Context surface, int x, int y) { X = x; Y = y; int waveTops = Radius / 3; int waveBottoms = Radius / 2; int waveDepths = Radius / 6; WaterTemperature = CurrentData.GetCurrentValueByIdFloat(XIVELY_DATA_STREAM_ID); //WaterTemperature = WaterTemperature / 100; // CIRCLE surface.SetSourceRGBA(1, 1, 1, 0.3); surface.Arc(X, Y, Radius, 0, Math.PI * 2); surface.Fill(); surface.SetSourceRGBA(1, 1, 1, WaterLight); surface.Arc(X, Y, Radius + 5, 0, Math.PI * 2); surface.Stroke(); surface.Fill(); // WAVEFORMED CIRCLE surface.CurveTo(X - Radius, Y - waveDepths, X - waveBottoms, Y + waveDepths, X - waveTops, Y - waveDepths); surface.CurveTo(X - waveTops, Y - waveDepths, X, Y + waveDepths, X + waveTops, Y - waveDepths); surface.CurveTo(X + waveTops, Y - waveDepths, X + waveBottoms, Y + waveDepths, X + Radius, Y - waveDepths); surface.SetSourceRGBA(colorWater[0], colorWater[1], colorWater[2], alphaChannel); surface.Arc(X, Y, Radius, 0, Math.PI * 1); surface.Fill(); // TEXT surface.SetSourceRGBA(1, 1, 1, 0.1); surface.MoveTo(X, Y); surface.SetFontSize(Radius / 2); string widgetText = Convert.ToString(WaterTemperature); Cairo.TextExtents text = surface.TextExtents(widgetText); surface.MoveTo(X - (text.Width / 2), Y + (text.Height / 2)); surface.ShowText(widgetText); surface.Fill(); }
public override void Draw(Cairo.Context surface, int x, int y) { X = x; Y = y; double StartAngle = (1 / 8) * Math.PI; double EndAngle = 2 * Math.PI - ((1 / 8) * Math.PI); lightValue = CurrentData.GetCurrentValueByIdFloat("LIGHT"); //LIGHTBULB ALL THE WAY BABY surface.MoveTo(X - 100 * scaleFactor, Y + 200 * scaleFactor); surface.LineTo(X - 100 * scaleFactor, Y - 100 * scaleFactor); surface.Arc(X, Y - 100 * scaleFactor, 200 * scaleFactor, StartAngle, EndAngle); surface.MoveTo(X + 100 * scaleFactor, Y - 100 * scaleFactor); surface.LineTo(X + 100 * scaleFactor, Y + 200 * scaleFactor); surface.LineTo(X - 100 * scaleFactor, Y + 200 * scaleFactor); surface.SetSourceRGBA(1, 1, 0, 0.20 + normalizingLightValue()); surface.Fill(); if (_showText == true) { widgetText = lightValue + ""; surface.SetFontSize(13); text = surface.TextExtents(widgetText); surface.SetSourceRGBA(0.98f, 0.5f, 0.4f, Alpha); surface.MoveTo(X - (text.Width / 2), Y + (text.Height / 2) + 15); surface.ShowText(widgetText); } }
public override void Draw(Cairo.Context surface, int x, int y) { if (0 == CurrentData.GetCurrentValueByIdFloat(XIVELY_DATA_STREAM_ID)) { pumpON = false; } else { pumpON = true; } X = x; Y = y; int rectSideWidth = Radius / 20; int rectSideLenght = Radius; int pumphead = Radius / 5; surface.SetSourceRGB(0.3, 0.3, 0.3); surface.Arc(X, Y, Radius, 0, Math.PI * 2); surface.Fill(); surface.SetSourceRGBA(1, 1, 1, pumpLight); surface.Arc(X, Y, Radius + 5, 0, Math.PI * 2); surface.Stroke(); surface.Fill(); surface.SetSourceRGB(0.5, 0.5, 0.5); surface.Rectangle(X - (Radius / 2), Y - (Radius / 2), rectSideLenght, rectSideLenght); // Middle surface.Fill(); surface.SetSourceRGB(0, 0, 0); surface.Rectangle(X - (Radius / 2), Y - (Radius / 2), rectSideWidth, rectSideLenght); // Left surface.Rectangle(X + (Radius / 2) - rectSideWidth, Y - (Radius / 2), rectSideWidth, rectSideLenght); // Right surface.Rectangle(X - (Radius / 2), Y - (Radius / 2), rectSideLenght, rectSideWidth); // Top surface.Rectangle(X - (Radius / 2), Y + (Radius / 2) - rectSideWidth, rectSideLenght, rectSideWidth); // Bottom surface.Fill(); surface.Rectangle(X - (Radius / 2) - pumphead, Y, pumphead, pumphead); surface.Fill(); surface.SetSourceRGB(0.5, 0.5, 0.5); surface.Rectangle(X - (Radius / 2) - pumphead, Y + (pumphead / 2 / 2), (pumphead * 2), (pumphead / 2)); surface.Fill(); surface.SetSourceRGB(0, 0, 0); surface.Rectangle(X, Y - (Radius / 2) - pumphead, pumphead, pumphead); surface.Fill(); surface.SetSourceRGB(0.5, 0.5, 0.5); surface.Rectangle(X + (pumphead / 2 / 2), Y - (Radius / 2) - (pumphead), (pumphead / 2), (pumphead * 2)); surface.Fill(); // - ON / OFF surface.SetSourceRGB(0.1, 0.1, 0.1); surface.Arc(X + Radius / 4, Y + Radius / 4, Radius / 10, 0, Math.PI * 2); surface.Stroke(); if (pumpON == true) { surface.SetSourceRGB(0, 0.5, 0); } else { surface.SetSourceRGB(0.5, 0, 0); } surface.Arc(X + Radius / 4, Y + Radius / 4, Radius / 10, 0, Math.PI * 2); surface.Fill(); }
public override void Draw(Cairo.Context surface, int x, int y) { //PHValue = CurrentData.GetCurrentValueByIdFloat("ph"); PHValue = CurrentData.GetCurrentValueByIdFloat(XIVELY_DATA_STREAM_ID); PHValue = PHValue % 14; X = x; Y = y; int barHeight = Radius / 2; //int barLength = Radius + (Radius / 2); int sectionSize = Radius / 5; int pushLength = sectionSize + 1; int amountOfSections = 8; int selectwidth = Radius / 10; int selectHeight = Radius / 2; float phSelect = (((float)sectionSize * (float)amountOfSections) / 14.0f) * PHValue; int distanceOnBar = X - ((sectionSize * amountOfSections) / 2) + (int)phSelect; // CIRCLE surface.SetSourceRGBA(1, 1, 1, 0.3); surface.Arc(X, Y, Radius, 0, Math.PI * 2); surface.Fill(); surface.SetSourceRGBA(1, 1, 1, PHLight); surface.Arc(X, Y, Radius + 5, 0, Math.PI * 2); surface.Stroke(); surface.Fill(); // WAVEFORMED CIRCLE surface.SetSourceRGB(0.8, 0.0, 0.0); surface.Rectangle(X - ((1 + sectionSize) * amountOfSections / 2), Y - (barHeight / 2), (sectionSize), barHeight); surface.Fill(); surface.SetSourceRGB(0.6, 0.0, 0.0); surface.Rectangle(X - ((1 + sectionSize) * amountOfSections / 2) + (pushLength), Y - (barHeight / 2), (sectionSize), barHeight); surface.Fill(); surface.SetSourceRGB(0.4, 0.0, 0.0); surface.Rectangle(X - ((1 + sectionSize) * amountOfSections / 2) + (pushLength * 2), Y - (barHeight / 2), (sectionSize), barHeight); surface.Fill(); surface.SetSourceRGB(0.3, 0.0, 0.0); surface.Rectangle(X - ((1 + sectionSize) * amountOfSections / 2) + (pushLength * 3), Y - (barHeight / 2), (sectionSize), barHeight); surface.Fill(); surface.SetSourceRGB(0.0, 0.0, 0.3); surface.Rectangle(X - ((1 + sectionSize) * amountOfSections / 2) + (pushLength * 4), Y - (barHeight / 2), (sectionSize), barHeight); surface.Fill(); surface.SetSourceRGB(0.0, 0.0, 0.4); surface.Rectangle(X - ((1 + sectionSize) * amountOfSections / 2) + (pushLength * 5), Y - (barHeight / 2), (sectionSize), barHeight); surface.Fill(); surface.SetSourceRGB(0.0, 0.0, 0.6); surface.Rectangle(X - ((1 + sectionSize) * amountOfSections / 2) + (pushLength * 6), Y - (barHeight / 2), (sectionSize), barHeight); surface.Fill(); surface.SetSourceRGB(0.0, 0.0, 0.8); surface.Rectangle(X - ((1 + sectionSize) * amountOfSections / 2) + (pushLength * 7), Y - (barHeight / 2), (sectionSize), barHeight); surface.Fill(); // TEXT surface.SetSourceRGBA(1, 1, 1, 0.5); surface.MoveTo(X, Y); surface.SetFontSize(Radius / 2); string widgetText = Convert.ToString(PHValue); Cairo.TextExtents text = surface.TextExtents(widgetText); surface.MoveTo(distanceOnBar - (text.Width / 2), Y + (text.Height / 2) - barHeight); surface.ShowText(widgetText); surface.Fill(); surface.SetSourceRGB(1, 1, 1); surface.Rectangle(distanceOnBar - (selectwidth / 2), Y - barHeight / 2, selectwidth, selectHeight); surface.Stroke(); surface.Fill(); }