Exemplo n.º 1
0
 /// <summary>
 /// This method enables or disables menu items dynamically.
 /// </summary>
 /// <param name="args"></param>
 private void InsertMenu_Popup(object sender, EventArgs e)
 {
     using (Synchronizer.Lock(this.m_Model.Workspace.CurrentDeckTraversal.SyncRoot)) {
         if (~this.m_Model.Workspace.CurrentDeckTraversal == null)
         {
             //we do not have a deck, so all deck related items should be disabled.
             foreach (MenuItem item in this.MenuItems)
             {
                 item.Enabled = false;
             }
         }
         else
         {
             // we have a deck
             foreach (MenuItem item in this.MenuItems)
             {
                 if (item is InsertImageFromFileMenuItem || item is InsertImageFromSnapshotMenuItem)
                 {
                     item.Enabled = true;
                 }
                 else if (item is InsertImageFromClipboardMenuItem)
                 {
                     item.Enabled = (Clipboard.GetDataObject()).GetDataPresent(DataFormats.Bitmap);
                 }
                 else if (item is InsertImageFromCameraMenuItem)
                 {
                     item.Enabled = CaptureGraphForm.HasCamera();
                 }
             }
         }
     }
 }
Exemplo n.º 2
0
        protected override void OnClick(EventArgs e)
        {
            SlideModel slide = null;

            Model.Viewer.ViewerStateModel vsm = null;

            using (Synchronizer.Lock(this.m_Model.Workspace.CurrentDeckTraversal.SyncRoot)) {
                if ((~this.m_Model.Workspace.CurrentDeckTraversal) != null)
                {
                    using (Synchronizer.Lock((~this.m_Model.Workspace.CurrentDeckTraversal).SyncRoot)) {
                        slide = (~this.m_Model.Workspace.CurrentDeckTraversal).Current.Slide;
                    }
                }
            }

            using (Synchronizer.Lock(this.m_Model.SyncRoot)) {
                vsm = this.m_Model.ViewerState;
            }

            if (slide != null && vsm != null)
            {
                CaptureGraphForm cg_form = new CaptureGraphForm(slide, vsm);
                if (cg_form.ShowDialog() == DialogResult.OK)
                {
                    InsertMenu.InsertImage(cg_form.Image, slide);
                }
            }
        }