void Start() { lRect = gameObject.AddComponent <ListRect>(); lRect.fixStandard = ListRect.FixedStandard.Top; lRect.ListDirection = new Vector3(-1, 0, 0); string a = "道北", c = "稚内"; AddPanel(); foreach (WeatherPanel p in panels) { p.Init(a, c); } }
/// <summary> /// 打开右键菜单的响应 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected override void RectMenu_Opening(object sender, CancelEventArgs e) { //生成div层次结构 ///复制页面片数据 if (ListRect.GetSelectedRects().Count == 1 && ListRect.GetSelectedRects()[0].HasSnip) { this.ContextMenuStrip.Items["copySnipData"].Enabled = true; } else { this.ContextMenuStrip.Items["copySnipData"].Enabled = false; } ///撤销 if (CommandList.IsExistUndo()) { this.ContextMenuStrip.Items["undo"].Enabled = true; this.ContextMenuStrip.Items["undo"].Text = "撤销"; //+ this.CommandList.CurCommand.Value.GetCommandInfo(); } else { this.ContextMenuStrip.Items["undo"].Enabled = false; this.ContextMenuStrip.Items["undo"].Text = "不能撤销"; } ///重做 if (CommandList.IsExistRedo()) { this.ContextMenuStrip.Items["redo"].Enabled = true; LinkedListNode <BaseCommand> reDoCommandNode = CommandList.CurCommand; if (CommandList.CurCommand == null) { reDoCommandNode = CommandList.Commands.First; } else { reDoCommandNode = CommandList.CurCommand.Next; } this.ContextMenuStrip.Items["redo"].Text = "重做" + reDoCommandNode.Value.GetCommandInfo(); } else { this.ContextMenuStrip.Items["redo"].Enabled = false; this.ContextMenuStrip.Items["redo"].Text = "不能重做"; } base.RectMenu_Opening(sender, e); }
/// <summary> /// 拷贝页面片数据 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void CopySnipData_Click(object sender, EventArgs e) { if (ListRect.GetSelectedRects().Count == 1) { SnipRect rect = (SnipRect)ListRect.GetSelectedRects()[0]; if (rect.HasSnip) { rect.SnipData = new SnipData(TmpltDoc.GetSnipElementById(rect.SnipID)); rect.CopyToClipboard(); } else { MessageService.Show(StringParserService.Parse("${res:tmpltDesign.tmpltDrawPanel.message.hasNoneSnip}")); } } }
/// <summary> /// 粘贴菜单执行函数 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void pasteSnipData_Click(object sender, EventArgs e) { foreach (Rect rect in ListRect.GetSelectedRects()) { if (rect.IsLocked || rect.HasSnip) { MessageService.Show("${res:tmpltDesign.tmpltDrawPanel.message.hasLockedRect}"); return; } } PasteSnipDataCommand pasteCommand = new PasteSnipDataCommand(this.TDPanel, ListRect.GetSelectedRects(), SnipData.GetFromClipboard(), TmpltDoc); pasteCommand.Execute(); this.TDPanel.CommandList.AddCommand(pasteCommand); }
/// <summary> /// 响应分割矩形 /// </summary> void PartRect_Click(object sender, EventArgs e) { Rect selectedRect = ListRect.GetSelectedRects()[0]; ///触发事件的执行 PartRectEventArgs partRectArgs = new PartRectEventArgs(selectedRect); TDPanel.OnPartRect(partRectArgs); if (!partRectArgs.Cancel) { ///生成新的被分割的矩形 List <Rect> newRects = ListRect.PartRect(selectedRect, partRectArgs.IsRow, partRectArgs.PartNum); List <PartitionLine> newLines = ListLine.PartRect(selectedRect, partRectArgs.IsRow, partRectArgs.PartNum); PartRectCommand partrectCommand = new PartRectCommand(TDPanel, partRectArgs.IsRow, newRects, selectedRect, newLines); partrectCommand.Execute(); TDPanel.CommandList.AddCommand(partrectCommand); } }
/// <summary> /// 响应合并矩形命令 /// </summary> void MergeRect_Click(object sender, EventArgs e) { ///判断是否可以合并 List <Rect> dismergableRects = this.ListRect.GetDisMergableRects(); if (!ListRect.IsRectMergable())///可以合并 { // MessageBox.Show("存在锁定或所选矩形无法完成合并!"); MessageService.Show("${res:tmpltDesignTip.recMerge}", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); foreach (Rect rect in dismergableRects) { //DrawRectFlash(rect); } } else { MergeRectCommand mergeRectCommand = new MergeRectCommand(TDPanel); mergeRectCommand.Execute(); } }
/// <summary> /// 响应当前矩形Css属性 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void CurRectProperty_Click(object sender, EventArgs e) { ((TmpltDesignerPanel)TDPanel).SaveTmplt(TmpltDoc); Rect selectedRect = ListRect.GetSelectedRect(FirstRealPoint, SelectPrecision); if (selectedRect is SnipRect) { SnipRect snipRect = (SnipRect)selectedRect; SnipXmlElement ele = TmpltDoc.GetSnipElementById(snipRect.SnipID); //writed by zhenghao 2008.05.20 CssSettingForm form = new CssSettingForm(snipRect.ToCss); form.Owner = this.FindForm(); if (form.ShowDialog() == DialogResult.OK) { snipRect.ToCss = form.CssText; ele.Css = snipRect.ToCss; this.DrawFrame.TDPanel.Modified = true; } } }
/// <summary> /// 双击事件之响应代码 /// </summary> /// <param name="e"></param> protected override void OnMouseDoubleClick(MouseEventArgs e) { this.Select();///获取焦点 if (DrawType == EnumDrawType.MouseSelect || DrawType == EnumDrawType.MouseSelectRect) { List <Rect> selectedRects = ListRect.GetSelectedRects(); List <PartitionLine> selectedLines = ListLine.GetSelectedLines(); List <Rect> curSelectedRects = new List <Rect>(); FirstRealPoint = BacktrackMouse(e); ///遍历整个rectlist foreach (Rect rect in this.ListRect.SnipRectList) { if ((!rect.IsDeleted) && rect.IsSelectable(FirstRealPoint)) { if ((!rect.IsSelected) || selectedRects.Count > 1) //未被选择,或者如果已经被选择,且有其他矩形被选择,则先激发其他更改选择矩形的命令 { curSelectedRects.Add(rect); SelectCommand selectRectCommand = new SelectCommand(TDPanel, curSelectedRects, selectedRects, new List <PartitionLine>(), selectedLines); selectRectCommand.Execute(); CommandList.AddCommand(selectRectCommand); } ///弹出属性对话框以查看和修改 ChangeSnipPerperty((SnipRect)rect); break; } } } base.OnMouseDoubleClick(e); }
/// <summary> /// 响应使用当前背景 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void CutCurrentBackImg_Click(object sender, EventArgs e) { if (BackImage == null) { return; } Rect selectedRect = ListRect.GetSelectedRect(FirstRealPoint, SelectPrecision); Bitmap bmp = new Bitmap(selectedRect.Width, selectedRect.Height); Graphics g = Graphics.FromImage(bmp); g.DrawImage(BackImage, new Rectangle(0, 0, bmp.Width, bmp.Height), selectedRect.X, selectedRect.Y, selectedRect.Width, selectedRect.Height, GraphicsUnit.Pixel); g.Flush(); g.Dispose(); SaveResourceImageForm form = new SaveResourceImageForm(bmp); form.Owner = this.FindForm(); form.Text = StringParserService.Parse("${res:tmpltDesign.DrawPanel.contextMenu.cutCurrentBackImg}"); //form.OrderText = StringParserService.Parse("${res:tmpltDesign.DrawPanel.contextMenu.cutCurrentBackImgFormOrderText}"); if (form.ShowDialog() == DialogResult.OK) { //Service.Sdsite.CurrentDocument.Resources.ImageSaveAsResources(bmp, form.Value); } }
/// <summary> /// 属性菜单执行函数 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void SnipPerperty_Click(object sender, EventArgs e) { SnipRect selectedRect = (SnipRect)ListRect.GetSelectedRects()[0]; ChangeSnipPerperty(selectedRect); }