private void tbTextString_TextChanged(object sender, EventArgs e) { if (UpdatingTicketLayout) { return; } if (!(SelectedItem is TextItem)) { return; } TextItem item = (TextItem)SelectedItem; if (item.CanEditText()) { item.Text = tbTextString.Text; UpdateTicketLayout(); isChanged = true; UpdateSaveButton(); } else { tbTextString.Text = item.GetText(this.Project); } }
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; }