RE: [PDFNet] How to identify selected annotations

Currently there is no existing method in PDFNet. I have to track them myself...

int[] SelectedAnnots = null; //Array to keep track of the selected annots

//Place this in the OnMouseDown event
int annot_num = page.GetNumAnnots();
for (int i = annot_num; i >= 0; i--) //Count Backwards to capture proper Z-Order selection for overlapped annotations {
  Annot annot = page.GetAnnot(i);
  if (annot.IsValid() == false) continue;
  Rect box = annot.GetRect();
      double x = e.X;
      double y = e.Y;
      ConvScreenPtToPagePt(ref x, ref y, page_num);
      if (box.Contains(x, y))
      {
    if (e.Button == MouseButtons.Left && Control.ModifierKeys == Keys.Control)
    {
      //Create new array if null
      if (SelectedAnnots == null)
      {
        SelectedAnnots = new int[annot_num];
      }
      //Add to selection
      SelectedAnnots[i] = 1;
    }
    else if (e.Button == MouseButtons.Left)
    {
      //Clear selection Array
      //Add to selection array
      SelectedAnnots = new int[annot_num];
      SelectedAnnots[i] = 1; //1 = selected, 0 = not selected
    }
    break;
  }
}

//Call this to remove selected Annots
public void removeAnnot(int page_num)
{
  Page page = GetDoc().GetPage(page_num);
  for (int i = SelectedAnnots.GetUpperBound(0); i >= 0; i--) //Count down! When one is deleted, it will change the index of those after
  {
    if (SelectedAnnots[i] != 0)
    {
      page.AnnotRemove(i);
    }
  }

  //Clear selections
  SelectedAnnots = null;
  this.Update();
}

Troy
-----Original Message-----
From: pdfnet-sdk@googlegroups.com [mailto:pdfnet-sdk@googlegroups.com] On Behalf Of thale@strongtie.com
Sent: Wednesday, November 16, 2011 4:34 PM
To: PDFTron PDFNet SDK
Subject: [PDFNet] How to identify selected annotations

I am trying to create a popup menu to delete annotations. The problem occurs with multiple annotations. How do I determine which annotations are selected to know which ones to delete? I have also tried to trigger a keystroke to replicate the "Delete" key, but none of the following attempts work:

SendKeys.Send("{DELETE}");

KeyEventArgs ke = new KeyEventArgs(Keys.Delete); base.OnKeyDown(ke); base.OnKeyUp(ke);

KeyPressEventArgs kp = new KeyPressEventArgs((char)Keys.Delete);
base.OnKeyPress(kp);

Thanks,
Troy

--
You received this message because you are subscribed to the "PDFTron PDFNet SDK" group. To post to this group, send email to support@pdftron.com To unsubscribe from this group, send email to pdfnet-sdk-unsubscribe@googlegroups.com. For more information, please visit us at http://www.pdftron.com