Exemple #1
0
 public void SetupAndPrint()
 {
     WaitForm.StartAsync(this);
     printComponent.Setup();
     printComponent.Print(this);
     WaitForm.Stop(this);
 }
Exemple #2
0
        public static void Start(Form owner, int delay)
        {
            owner.FormClosed += new FormClosedEventHandler(Owner_FormClosed);
            WaitForm form = new WaitForm();

            form.MaxDelay   = delay;
            ms_forms[owner] = form;
            form.ShowDialog(owner);
        }
Exemple #3
0
        public static void StartAsync(Form owner)
        {
            Point point = owner.DesktopLocation;
            Size  size  = owner.Size;

            new Thread(() =>
            {
                WaitForm form = new WaitForm();
                point.Offset(size.Width, size.Height);
                form.DesktopLocation = point;

                ms_forms[owner]   = form;
                owner.FormClosed += new FormClosedEventHandler(form.CloseAsyncForm);
                Application.Run(form);
                owner.FormClosed -= new FormClosedEventHandler(form.CloseAsyncForm);
            })
            {
                IsBackground = true
            }.Start();
        }
Exemple #4
0
        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {
            case user32.WM_COPYDATA:
            {
                //The scaning Form sends ready status
                //Get image from appslot
                IntPtr sender;
                string text = WinMsg.ReceiveText(m.LParam, out sender);
                if (!string.IsNullOrEmpty(text))
                {
                    if (text.StartsWith(Strings.VScan_EditItem))
                    {
                        new MethodInvoker(() =>
                            {
                                const int MAX_OPENED_FORMS = 5;
                                int openedForms            = ScanAppContext.Default.OpenFormsOf <VoucherForm>().Count();
                                int settings = SettingsTable.Get <int>(Strings.VScan_MaximumOpenedScanForms, MAX_OPENED_FORMS);
                                if (openedForms > settings)
                                {
                                    WinMsg.SendText(sender, Strings.VScan_StopTheScanner);
                                    throw new AppExclamationException("Too many opened windows in editor.\nStop scanning.");
                                }
                            }).FireAndForget();

                        var data = DataSlot.Get <Voucher>(text);
                        Debug.Assert(data != null && data.VoucherImage != null && !string.IsNullOrEmpty(data.Message),
                                     "MainForm.WndProc");
                        try
                        {
                            VoucherForm form = AddNewChild();
                            form.Canvas.Update(data);
                        }
                        finally
                        {
                            if (VoucherMonitorForm.IsStarted)
                            {
                                VoucherMonitorForm.ShowImage(text);
                            }
                            DataSlot.Free(text);
                        }
                    }
                    else if (text.StartsWith(Strings.VScan_ItemSaved))
                    {
                        string[] msgs = text.Split('|');
                        if (msgs.Length > 1)
                        {
                            tssLabel1.Text = msgs[0];
                            tssLabel2.Text = msgs[1];
                        }

                        if (VoucherMonitorForm.IsStarted)
                        {
                            VoucherMonitorForm.ShowImage(text);
                        }
                        DataSlot.Free(text);
                    }
                    else if (text.CompareNoCase(Strings.VScan_ScanIsDoneEvent))
                    {
                        WaitForm.Stop(this);
                    }
                    else if (string.Compare(text, Strings.Transferring_RemoteLock) == 0)
                    {
                        Lock();
                    }
                }
            }
            break;

            default:
                base.WndProc(ref m);
                break;
            }
        }
Exemple #5
0
 private void Scan()
 {
     WaitForm.StartAsync(this);
     ScanForm.Start(this.Handle);
 }
Exemple #6
0
 public void PrintPreview()
 {
     WaitForm.StartAsync(this);
     printComponent.PrintPreview(this);
     WaitForm.Stop(this);
 }