コード例 #1
0
        //Reads the lineparameters from the ticket, and displays the visually depending on type of print-line.
        public TicketEditorView(TicketClass ticket,MainWindow maininstance)
        {
            InitializeComponent();

            Ticket = ticket;

            Ticket.Flipped = 0;
            Ticket.PaperMargin = 0;

            if (Ticket.PaperWidth == 564) {
                stackPanel.Width = 323;
            }

            foreach (TicketClass.LineParameters lineparameters in ticket.Lines)
            {

                switch (lineparameters.Type)
                {

                    case IMAGE_LINE:

                        AddImage(lineparameters);

                        break;

                    case ROWSPACE_LINE:

                        AddLineBreak(lineparameters,-1);

                        break;

                    case TEXT_LINE:

                        AddText(lineparameters);

                        break;

                    case QUEUENUMBER_LINE:

                        AddQueueNumber(lineparameters);

                        break;

                }

            }
            MainWindowInstance = maininstance;

            CodePages = new CodePageList();

            LanguageMenu.ItemsSource = CodePages;

            setMouseEvents();
            DisableButtons();
        }
コード例 #2
0
        //The selections under file in the menubar.
        private void menu_File(object sender, RoutedEventArgs e)
        {
            var menuitem = sender as MenuItem;
            if (menuitem.Header.Equals("_Save"))
            {

                Save();

            }
            else if (menuitem.Header.Equals("_Save As"))
            {

                SaveAs();

            }
            else if (menuitem.Header.Equals("_New"))
            {

                stackPanel.Children.Clear();

                Ticket = new TicketClass();

                DisableButtons();

                AddDummyText();
                TicketChanged = true;

            }
            else if (menuitem.Header.Equals("_Print"))
            {

                SaveTicket();
                TicketManager.GetXml(Ticket);
                if (MainWindowInstance.Printer.Address != null)
                {
                    HttpRequestAdapter.sendHttpPost(Ticket.Xml, MainWindowInstance.Printer);
                }
                else
                    MainWindowInstance.showDeviceList();

            }
            else if (menuitem.Header.Equals("_Close"))
            {
                if (TicketChanged)
                {
                    PromptView Prompt = new PromptView(this);
                    Prompt.Show();
                }
                else
                    this.Close();

            }
        }
コード例 #3
0
        /// <summary>
        /// Add queuenumber is same as text but can only be aligned since the bitmaps(how the queuenumber is drawn in the printer) cant be offset in the printer.
        /// </summary>
        /// <param name="lineparameters"></param>
        private void AddQueueNumber(TicketClass.LineParameters lineparameters)
        {
            TextBox textbox = new TextBox();

            textbox.FontSize = lineparameters.Size;
            textbox.Text = lineparameters.Characters.Trim();

            textbox.FontWeight = (lineparameters.Bold == 1) ? FontWeights.Bold : FontWeights.Normal;

            textbox.FontFamily = new FontFamily("Lucida Sans Unicode");

            textbox.PreviewMouseDown += this.edit_Queuenumber;

            double calculatedpadding = -(textbox.FontFamily.LineSpacing * textbox.FontSize / 5D);

            Thickness padding = new Thickness(0, calculatedpadding, 0, calculatedpadding);

            textbox.VerticalContentAlignment = VerticalAlignment.Center;

            textbox.Padding = padding;

            textbox.HorizontalAlignment = (HorizontalAlignment)lineparameters.Alignment; // FIX ALIGNMENT

            Thickness margin = new Thickness(0, 0, 0, -LINE_HEIGHT/DOT_PIXEL_RELATION);

            textbox.Margin = margin;

            textbox.Tag = Ticket.Lines.IndexOf(lineparameters);

            stackPanel.Children.Add(textbox);

            StackPanel.SetZIndex(textbox, -1);
        }
コード例 #4
0
        ///<summary>
        /// To add a line with text. add events to the element to receive input when dragging and letting go.
        /// 
        /// Make transformation for the double width double height setting that the printer takes.
        /// 
        /// 
        /// </summary>
        private void AddText(TicketClass.LineParameters lineparameters)
        {
            double size = 24.0D / DOT_PIXEL_RELATION;

            TextBox textbox = new TextBox();
            textbox.PreviewMouseLeftButtonDown += this.grab_Control_Element;
            textbox.MouseDoubleClick += this.edit_Queuenumber;
            textbox.PreviewMouseLeftButtonUp += this.release_Control_Element;

            textbox.Text = lineparameters.Characters.Trim();
            textbox.FontWeight = (lineparameters.Bold == 1) ? FontWeights.Bold : FontWeights.Normal;
            textbox.FontFamily = new FontFamily("Open Symbol");

            textbox.HorizontalAlignment = (HorizontalAlignment)lineparameters.Alignment;

            textbox.FontSize = size;//PointFromPixel(size);

            textbox.Padding = GetPadding(textbox.FontFamily.LineSpacing,textbox.FontSize);

            double FactorX = (lineparameters.Width == 1) ? 2 : 1;
            double FactorY = (lineparameters.Height == 1) ? 2 : 1;

            ScaleTransform scale = new ScaleTransform(FactorX,FactorY);

            TranslateTransform translatetransform = new TranslateTransform();

            TransformGroup transformgroup = new TransformGroup();

            transformgroup.Children.Add(translatetransform);

            transformgroup.Children.Add(scale);

            double transformorigin =1;

            if (lineparameters.Alignment == 0)
                transformorigin = 0;
            else if (lineparameters.Alignment == 1)
                transformorigin = 0.5D;
            else if (lineparameters.Alignment == 2)
                transformorigin = 1D;

            textbox.RenderTransformOrigin = new Point(transformorigin, 1/FactorY);

            textbox.RenderTransform = transformgroup;

            double TranslatedOffset = ((double)lineparameters.OffsetX / (double)Ticket.PaperWidth * (double)stackPanel.Width);

            translatetransform.X = TranslatedOffset / FactorX;

            Thickness margin = new Thickness(0, 0, 0, lineparameters.LineSpace / DOT_PIXEL_RELATION);

            textbox.Margin = margin;

            textbox.Tag = Ticket.Lines.IndexOf(lineparameters);

            stackPanel.Children.Add(textbox);
            textbox.HorizontalAlignment = (HorizontalAlignment)lineparameters.Alignment;

            sizeBox.IsEnabled = false;
        }
コード例 #5
0
        ///<summary>
        /// the linebreak is made out of an invisible separator. 
        /// 
        /// </summary>
        private void AddLineBreak(TicketClass.LineParameters lineparameters,int index)
        {
            Separator separator = new Separator();
            separator.PreviewMouseLeftButtonDown += this.grab_Control_Element;

            separator.Height = lineparameters.Space/ DOT_PIXEL_RELATION;

            separator.Tag = Ticket.Lines.IndexOf(lineparameters);

            if (index == -1)
            {
                stackPanel.Children.Add(separator);
            }
            else
            {
                stackPanel.Children.Insert(index, separator);

            }
        }
コード例 #6
0
        private void AddImage(TicketClass.LineParameters lineparameters)
        {
            Image img = new Image();

            img.Source = lineparameters.BitImage;

            img.HorizontalAlignment = (HorizontalAlignment)lineparameters.Alignment;

            img.Stretch = Stretch.None;

            img.PreviewMouseDown += this.view_MouseLeftDown;

            Thickness margin = new Thickness(0,0, 0, LINE_HEIGHT / DOT_PIXEL_RELATION / 2);

            img.Margin = margin;

            img.Tag = Ticket.Lines.IndexOf(lineparameters);

            stackPanel.Children.Add(img);
        }
コード例 #7
0
        //View with a fresh new ticket
        public TicketEditorView(MainWindow maininstance)
        {
            InitializeComponent();
            setMouseEvents();

            Ticket = new TicketClass();

            MainWindowInstance = maininstance;

            AddDummyText();
            DisableButtons();

            CodePages = new CodePageList();

            LanguageMenu.ItemsSource = CodePages;
        }
コード例 #8
0
        private void listView_RightClickElement(object sender, MouseButtonEventArgs e)
        {
            var listviewelement = sender as ListView;

            int index = listviewelement.SelectedIndex;
            if (index > -1)
            {
                SelectedTicket = TicketList.ElementAt(index);
            }
        }
コード例 #9
0
        //Logic for engaging the browser/list
        private void listView_DoubleClick(object sender, MouseButtonEventArgs e)
        {
            var listviewelement = sender as ListView;

            int index = listviewelement.SelectedIndex;
            if (index > -1)
            {
                SelectedTicket = TicketList.ElementAt(index);
                TicketEditorView editor = new TicketEditorView(SelectedTicket,this);
                editor.Show();
            }
        }