public SdiWorkspaceWindow(IViewContent content, Notebook tabControl, TabLabel tabLabel) : base() { this.tabControl = tabControl; this.content = content; this.tabLabel = tabLabel; this.tabPage = content.Control; content.WorkbenchWindow = this; content.ContentNameChanged += new EventHandler(SetTitleEvent); content.DirtyChanged += new EventHandler(SetTitleEvent); content.BeforeSave += new EventHandler(BeforeSave); content.ContentChanged += new EventHandler (OnContentChanged); ShadowType = ShadowType.None; Add (content.Control); content.Control.Show (); Show (); SetTitleEvent(null, null); commandHandler = new ViewCommandHandlers (this); }
public IWorkbenchWindow ShowView(IViewContent content) { Gtk.Image mimeimage = null; if (content.IsUntitled) { mimeimage = new Gtk.Image (FileIconLoader.GetPixbufForType ("gnome-fs-regular", 16)); } else { mimeimage = new Gtk.Image (FileIconLoader.GetPixbufForFile (content.ContentName, 16)); } TabLabel tabLabel = new TabLabel (new Label (), mimeimage != null ? mimeimage : new Gtk.Image ("")); tabLabel.Button.Clicked += new EventHandler (closeClicked); tabLabel.Button.StateChanged += new StateChangedHandler (stateChanged); tabLabel.ClearFlag (WidgetFlags.CanFocus); SdiWorkspaceWindow sdiWorkspaceWindow = new SdiWorkspaceWindow(content, tabControl, tabLabel); sdiWorkspaceWindow.CloseEvent += new EventHandler(CloseWindowEvent); tabControl.InsertPage (sdiWorkspaceWindow, tabLabel, -1); tabLabel.Show(); return sdiWorkspaceWindow; }
public void CloseWindow(bool force, bool fromMenu, int pageNum) { if (!force && ViewContent != null && ViewContent.IsDirty) { QuestionResponse response = Runtime.MessageService.AskQuestionWithCancel (GettextCatalog.GetString ("Do you want to save the current changes")); if (response == QuestionResponse.Cancel) { return; } if (response == QuestionResponse.Yes) { if (content.ContentName == null) { while (true) { Runtime.FileService.SaveFileAs (this); if (ViewContent.IsDirty) { if (Runtime.MessageService.AskQuestion(GettextCatalog.GetString ("Do you really want to discard your changes ?"))) { break; } } else { break; } } } else { Runtime.FileUtilityService.ObservedSave(new FileOperationDelegate(ViewContent.Save), ViewContent.ContentName , FileErrorPolicy.ProvideAlternative); } } } if (fromMenu == true) { WorkbenchSingleton.Workbench.WorkbenchLayout.RemoveTab (tabControl.CurrentPage); } else { WorkbenchSingleton.Workbench.WorkbenchLayout.RemoveTab (pageNum); } OnWindowDeselected(EventArgs.Empty); content.ContentNameChanged -= new EventHandler(SetTitleEvent); content.DirtyChanged -= new EventHandler(SetTitleEvent); content.BeforeSave -= new EventHandler(BeforeSave); content.ContentChanged -= new EventHandler (OnContentChanged); content.WorkbenchWindow = null; Remove (content.Control); content.Dispose (); OnCloseEvent(null); this.content = null; this.tabControl = null; this.tabLabel = null; this.tabPage = null; }