Example #1
0
        private void btnAddRectangle_Click(object sender, EventArgs e)
        {
            BorderItem item = new BorderItem();

            SelectedTicket.Items.Insert(0, item);
            UpdateTicketLayout();
            SelectedItem = item;
            isChanged    = true;
            UpdateSaveButton();
        }
Example #2
0
        public static Ticket Deserialize(IDictionary <string, object> dict)
        {
            string            name      = dict["name"].ToString();
            IList <object>    itemDicts = (IList <object>)dict["items"];
            List <TicketItem> items     = new List <TicketItem>();

            foreach (IDictionary <string, object> itemDict in itemDicts)
            {
                TicketItem item = null;
                switch (itemDict["type"].ToString())
                {
                case "date":
                    item = DateItem.Deserialize(itemDict);
                    break;

                case "text":
                    item = TextItem.Deserialize(itemDict);
                    break;

                case "ticket_number":
                    item = TicketNumberItem.Deserialize(itemDict);
                    break;

                case "line":
                    item = LineItem.Deserialize(itemDict);
                    break;

                case "border":
                    item = BorderItem.Deserialize(itemDict);
                    break;
                }
                if (item != null)
                {
                    items.Add(item);
                }
            }
            return(new Ticket(name, items));
        }
Example #3
0
        public void UpdateTicketLayout()
        {
            if (UpdatingTicketLayout)
            {
                return;
            }
            UpdatingTicketLayout = true;

            // Assumping no action removes a ticket and adds one too
            if (lbTickets.Items.Count != Project.Tickets.Count)
            {
                UpdateTicketList();
            }

            Ticket selectedTicket = SelectedTicket;

            pnlTicketEditor.Visible = selectedTicket != null;

            btnEditTicket.Enabled        = selectedTicket != null;
            btnDeleteTicket.Enabled      = selectedTicket != null;
            pnlTicketItemButtons.Enabled = selectedTicket != null;
            pnlItemSettings.Enabled      = selectedTicket != null;

            pnlTicketItems.Controls.Clear();

            if (selectedTicket != null && this.pnlTicketEditor.Visible)
            {
                TicketItem previousItem = SelectedItem;

                // Assuming no action removes an item and adds one too
                if (lbItems.Items.Count != selectedTicket.Items.Count)
                {
                    lbItems.Items.Clear();
                    foreach (TicketItem item in selectedTicket.Items)
                    {
                        lbItems.Items.Add(item);
                    }
                    if (selectedTicket.Items.Contains(previousItem))
                    {
                        lbItems.SelectedItem = previousItem;
                    }
                    lbItems.Refresh();
                }
                else
                {
                    lbItems.Refresh();
                }

                TicketItem selectedItem = SelectedItem;

                btnMoveItemDown.Enabled  = selectedItem != null;
                btnDuplicateItem.Enabled = selectedItem != null;
                btnMoveItemUp.Enabled    = selectedItem != null;
                btnRemoveItem.Enabled    = selectedItem != null;

                if (selectedItem != null)
                {
                    // Make sure selected index is good
                    int index = SelectedTicket.Items.IndexOf(selectedItem);
                    if (lbItems.SelectedIndex != index)
                    {
                        lbItems.SelectedIndex = index;
                    }

                    pnlGeneralItemSettings.Enabled = true;

                    // Settings page visibility
                    pnlSpecificItemSettings.Visible = true;
                    pnlTextSettings.Visible         = selectedItem is TextItem;
                    pnlDateSettings.Visible         = selectedItem is DateItem;
                    pnlBorderSettings.Visible       = selectedItem is BorderItem;
                    pnlLineSettings.Visible         = selectedItem is LineItem;
                    pnlHorizontalScaling.Visible    = false;// selectedItem is TextItem;

                    // Field value depending on type
                    if (selectedItem is TextItem)
                    {
                        TextItem text = (TextItem)selectedItem;
                        cbTextFont.SelectedIndex = text.FontType == TextItem.TextFont.ArialBold ? 0 : 1;
                        if (!text.CanEditText())
                        {
                            tbTextString.Enabled = false;
                            tbTextString.Text    = "Automatic";
                        }
                        else
                        {
                            tbTextString.Enabled = true;
                            tbTextString.Text    = text.Text;
                        }
                        nudTextSpacing.Value = text.TextSpacing;
                        cbTextSize.Items.Clear();
                        if (text.FontType == TextItem.TextFont.ArialBold)
                        {
                            foreach (int i in new int[] { 8, 9, 10, 11, 12, 14, 16, 18 })
                            {
                                cbTextSize.Items.Add(i);
                            }
                        }
                        else
                        {
                            foreach (int i in new int[] { 8, 10, 12, 14 })
                            {
                                cbTextSize.Items.Add(i);
                            }
                        }
                        cbTextSize.SelectedItem = text.FontSize;
                        if (cbTextSize.SelectedItem == null)
                        {
                            cbTextSize.SelectedIndex = 0;
                            text.FontSize            = (int)cbTextSize.SelectedItem;
                        }

                        if (selectedItem is DateItem)
                        {
                            tbDateFormat.Text = ((DateItem)selectedItem).DateFormat;
                        }
                    }
                    else if (selectedItem is BorderItem)
                    {
                        BorderItem border = (BorderItem)selectedItem;
                        nudBorderWidth.Value     = border.Width;
                        nudBorderHeight.Value    = border.Height;
                        nudBorderThickness.Value = border.Thickness;
                    }
                    else if (selectedItem is LineItem)
                    {
                        LineItem line = (LineItem)selectedItem;
                        nudLineThickness.Value        = line.Thickness;
                        nudLineLength.Value           = line.Length;
                        cbLineDirection.SelectedIndex = line.LineDirection == LineItem.Direction.Horizontal ? 0 : 1;
                    }

                    // General settings
                    nudPosX.Value = selectedItem.Position.X;
                    nudPosY.Value = selectedItem.Position.Y;
                    nudHorizontalScaling.Value = selectedItem.HorizontalScaling;

                    if (selectedItem.HorizontalAlignment == TicketItem.Alignment.Begin)
                    {
                        cbPositionAlignmentHorizontal.SelectedIndex = 0;
                    }
                    else if (selectedItem.HorizontalAlignment == TicketItem.Alignment.Center)
                    {
                        cbPositionAlignmentHorizontal.SelectedIndex = 1;
                    }
                    else
                    {
                        cbPositionAlignmentHorizontal.SelectedIndex = 2;
                    }

                    if (selectedItem.VerticalAlignment == TicketItem.Alignment.Begin)
                    {
                        cbPositionAlignmentVertical.SelectedIndex = 0;
                    }
                    else if (selectedItem.VerticalAlignment == TicketItem.Alignment.Center)
                    {
                        cbPositionAlignmentVertical.SelectedIndex = 1;
                    }
                    else
                    {
                        cbPositionAlignmentVertical.SelectedIndex = 2;
                    }

                    if (selectedItem.Rotation == TicketItem.ItemRotation.R0)
                    {
                        cbRotation.SelectedIndex = 0;
                    }
                    else if (selectedItem.Rotation == TicketItem.ItemRotation.R270)
                    {
                        cbRotation.SelectedIndex = 3;
                    }
                    else if (selectedItem.Rotation == TicketItem.ItemRotation.R90)
                    {
                        cbRotation.SelectedIndex = 2;
                    }
                    else
                    {
                        cbRotation.SelectedIndex = 1;
                    }
                }
                else
                {
                    previousItem = null;
                    pnlSpecificItemSettings.Visible = false;
                    pnlGeneralItemSettings.Enabled  = false;
                }

                // Redraw every item NOW HANDLED BY event pnlTicketItems.Paint
                //foreach(TicketItem item in selectedTicket.Items)
                //    item.AddControl(pnlTicketItems.Controls, handler, item == previousItem);
                pnlTicketItems.Refresh();
            }
            else
            {
                pnlTicketEditor.Visible = false;
            }

            UpdatingTicketLayout = false;
        }
Example #4
0
        static void Main(string[] args)
        {
            Direction direct1 = Direction.NoDiction;

            Console.WriteLine("direct1 : {0} ({1})", direct1, (int)direct1);

            direct1++;

            Console.WriteLine("direct1 : {0} ({1})", direct1, (int)direct1);

            direct1++;

            Console.WriteLine("direct1 : {0} ({1})", direct1, (int)direct1);

            #region Ввод значений перечисления

            Console.Write("[");
            // получение всех значений перечисления
            string[] namesOfDirection = Enum.GetNames(typeof(Direction));
            for (int i = 0; i < namesOfDirection.Length - 1; i++)
            {
                Console.Write("{0}, ", namesOfDirection[i]);
            }
            Console.WriteLine("{0}]", namesOfDirection[namesOfDirection.Length - 1]);

            Console.Write("Choice direction: ? ");

            string sDirect = Console.ReadLine();

            Direction userDirection;

            //               (string) ---> enum
            //if (!(Enum.TryParse(sDirect, out userDirection)    // преобразование sDirect ---> userDirection
            //    && (userDirection > Direction.NoDiction)       //   проверка на допустимые
            //    && (userDirection <= Direction.Down)))         //         значения
            if (!Enum.TryParse(sDirect, out userDirection) || // преобразование sDirect ---> userDirection
                (userDirection <= Direction.NoDiction) ||     //   проверка на допустимые
                (userDirection > Direction.Down))             //         значения
            {
                Console.WriteLine("Wrong direction...");

                Console.ReadKey();
                return;    // завершение работы программы
            }

            switch (userDirection)
            {
            case Direction.Left:
                Console.WriteLine("Лево");
                break;

            case Direction.Right:
                Console.WriteLine("Право");
                break;

            case Direction.Up:
                Console.WriteLine("Верх");
                break;

            case Direction.Down:
                Console.WriteLine("Низ");
                break;

            case Direction.NoDiction:
            default:
                Console.WriteLine("Wrong direction... ({0})", (int)userDirection);
                break;
            }

            BorderItem lt = BorderItem.LeftTopDoubleCorner;

            Console.WriteLine("Border: {0} {1} ({2:X})", lt, (char)lt, (ushort)lt);

            lt = BorderItem.LeftDownDoubleCorner;

            Console.WriteLine("Border: {0} {1} ({2:X})", lt, (char)lt, (ushort)lt);

            lt++;

            Console.WriteLine("Border: {0} {1} ({2:X})", lt, (char)lt, (ushort)lt);

            #endregion

            #region Битовые перечисления

            // ConsoleKey - стандартное перечисление для всех клавиш клавиатуры

            Console.ForegroundColor = ConsoleColor.Cyan;

            FDirection direct2 = FDirection.Left | FDirection.Up;

            Console.WriteLine("direct2 : {0} ({1})", direct2, (int)direct2);

            if ((direct2 & FDirection.Up) > 0)
            {
                Console.WriteLine("Flag \"Up\" is set");
            }
            else
            {
                Console.WriteLine("Flag \"Up\" is unset");
            }

            if ((direct2 & FDirection.Down) > 0)
            {
                Console.WriteLine("Flag \"Down\" is set");
            }
            else
            {
                Console.WriteLine("Flag \"Down\" is unset");
            }

            if (direct2.HasFlag(FDirection.Left))
            {
                Console.WriteLine("Flag \"Left\" is set");
            }
            else
            {
                Console.WriteLine("Flag \"Left\" is unset");
            }

            #endregion

            Console.ReadKey();
        }