Files @ 65c134a3d619
Branch filter:

Location: seniordesign-ui/Demo.WindowsMobile/Forms/GPS.cs - annotation

mkanning@CL-ENS241-10.cedarville.edu
Initial import of mapping source (huge commit)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;

namespace Demo.WindowsMobile
{
   public partial class GPS : UserControl
   {
      MainForm Main;

      Pen penForSat = new Pen(Color.White, 3.0f);
      Brush brushForSatOk = new SolidBrush(Color.LimeGreen);
      Brush brushForSatNo = new SolidBrush(Color.Red);
      Font fSignal = new Font(FontFamily.GenericSansSerif, 6, FontStyle.Regular);
      Brush bSignal = new SolidBrush(Color.Blue);
      StringFormat sformat = new StringFormat();

      public GPS(MainForm main)
      {
         InitializeComponent();
         Main = main;
         sformat.LineAlignment = StringAlignment.Far;
         sformat.Alignment = StringAlignment.Center;
      }

      private void panelSignals_Paint(object sender, PaintEventArgs e)
      {
         lock(Main.Satellites)
         {
            if(Main.Satellites.Count > 0)
            {
               int cc = Width / Main.Satellites.Count;
               for(int i = 0; i < Main.Satellites.Count; i++)
               {
                  int str = (int) (2.0 * (panelSignals.Height * Main.Satellites[i].SignalStrength)/100.0);

                  if(Main.Satellites[i].InSolution)
                  {
                     e.Graphics.FillRectangle(brushForSatOk, new Rectangle(i*cc, panelSignals.Height - str, cc, str));
                  }
                  else
                  {
                     e.Graphics.FillRectangle(brushForSatNo, new Rectangle(i*cc, panelSignals.Height - str, cc, str));
                  }

                  e.Graphics.DrawRectangle(penForSat, new Rectangle(i*cc + (int) penForSat.Width/2, 0, cc - (int) penForSat.Width/2, panelSignals.Height));

                  e.Graphics.DrawString(Main.Satellites[i].SignalStrength + "dB", fSignal, bSignal, new Rectangle(i*cc, 0, cc, (int)(panelSignals.Height-fSignal.Size/2)), sformat);
               }
            }
         }
      }

      private void GPS_Resize(object sender, EventArgs e)
      {
         if(Parent != null)
         {
            status.Height = Parent.Height - 44*5;
         }
      }
   }
}