Advertisement
Lauda

tagHandler

Jun 1st, 2014
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.11 KB | None | 0 0
  1.         void pbTagDetails(object sender, MouseEventArgs e)
  2.         {
  3.             // Boze pomozi prije nego sto se kompajlira ovo!
  4.             PictureBox pb = (PictureBox)sender;
  5.             string Tag = (string)pb.Tag;
  6.             List<OznakaVrste> oTag = Oznaka.getInstance().getOznakaVrste();
  7.             PictureBox prev = new PictureBox();
  8.             prev = null;
  9.            
  10.             int counter = 0;
  11.             pTag.Controls.Clear();
  12.  
  13.             if (!String.IsNullOrEmpty(Tag))
  14.             {
  15.                 string[] tokens = Tag.Split(new string[] { ", " }, StringSplitOptions.None);
  16.  
  17.                 for (int i = 0; i < tokens.Length; i++)
  18.                 {
  19.                     tokens[i] = tokens[i].Remove(0, 1);
  20.                 }
  21.  
  22.                 for (int i = 0; i < Oznaka.getInstance().getOznakaVrste().Count; i++)
  23.                 {
  24.                     for (int j = 0; j < tokens.Length; j++)
  25.                     {
  26.                         MessageBox.Show(Oznaka.getInstance().getOznakaVrste()[i].oznaka + " - " + tokens[j]);
  27.                         if (Oznaka.getInstance().getOznakaVrste()[i].oznaka.Equals(tokens[j].Trim()))
  28.                         {
  29.                             PictureBox p = new PictureBox();
  30.                             ToolTip tt = new ToolTip();
  31.                             p.BackColor = (Oznaka.getInstance().getOznakaVrste()[i].boja);
  32.                             p.Width = Oznaka.getInstance().getOznakaVrste()[i].oznaka.Length * 10;
  33.                             p.Height = pTag.Height;
  34.                             if (prev != null)
  35.                             p.Location = locationOnClient(prev);
  36.                             p.Show();
  37.  
  38.                             // Glupi handler za ispisivanje teksta na picturebox-u...
  39.                             tt.SetToolTip(p, Oznaka.getInstance().getOznakaVrste()[i].opis);
  40.                             p.Paint += new PaintEventHandler((sender2, e2) =>
  41.                             {
  42.                                 e2.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
  43.  
  44.                                 string text = Oznaka.getInstance().getOznakaVrste()[i].oznaka;
  45.  
  46.                                 SizeF textSize = e2.Graphics.MeasureString(text, Font);
  47.                                 PointF locationToDraw = new PointF();
  48.                                 // Hocemo malo erotike, da centriramo tekst
  49.                                 locationToDraw.X = (p.Width / 2) - (textSize.Width / 2);
  50.                                 locationToDraw.Y = (p.Height / 2) - (textSize.Height / 2);
  51.  
  52.                                 e2.Graphics.DrawString(text, Font, Brushes.Black, locationToDraw);
  53.                             });
  54.                             // Gotovo handler :D
  55.                             p.Parent = pTag;
  56.                             pTag.Controls.Add(p);
  57.                             prev = p;
  58.                             counter++;
  59.                         }
  60.                     }
  61.                 }
  62.              //   MessageBox.Show(tokens[0]);
  63.             }
  64.         }
  65.  
  66.         private Point locationOnClient(Control c)
  67.         {
  68.             Point retval = new Point(0, 0);
  69.             PictureBox pb = new PictureBox();
  70.      /*       List<Point> availControls = GetControls(pTag);
  71.             foreach (var item in availControls)
  72.             {
  73.                 MessageBox.Show(item.ToString());
  74.             }
  75.        */    
  76.             retval = pb.Location;
  77.             Point final = new Point(retval.X + c.Width + 2, retval.Y);
  78.             MessageBox.Show(final.ToString());
  79.             return final;
  80.         }
  81.  
  82.      /*   public static List<Point> GetControls(Control panel)
  83.         {
  84.             var controlList = new List<Point>();
  85.             Point pTemp = new Point(0, 0);
  86.                 foreach (Control p in panel.Controls)
  87.                     if (p.GetType() == typeof(PictureBox))
  88.                     {
  89.                         controlList.Add(p.Location);
  90.                       //  p.Location = new Point(50, p.Location.Y);
  91.                     }
  92.             return controlList;
  93.         } */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement