public Xwt.Menu Makeup(IXwtWrapper Parent) { Xwt.Menu Target = new Xwt.Menu(); if (Subitems != null && Subitems.Count() > 0) { foreach (var Subitem in Subitems) Target.Items.Add(Subitem.Makeup(Parent)); } return Target; }
void AddLanguageMenuItems(Xwt.Menu menu, SolutionTemplate template) { foreach (string language in template.AvailableLanguages.OrderBy(item => item)) { var menuItem = new Xwt.MenuItem(language); menuItem.Accessible.Label = LanguageCellRenderer.GetAccessibleLanguageName(language); menuItem.Clicked += (o, e) => { languageCellRenderer.SelectedLanguage = language; controller.SelectedLanguage = language; templatesTreeView.QueueDraw(); ShowSelectedTemplate(); }; menu.Items.Add(menuItem); } }
/// <summary>Translates the <paramref name="mnu"/> into the current UI language</summary> private void TranslateMenu(Xwt.Menu mnu) { try { //dirty hack...i don't know why, but "if(mnu.Items == null) return;" raises NullReferenceException... foreach (Xwt.MenuItem currentMenuItem in mnu.Items) { if (currentMenuItem.GetType() != typeof(Xwt.SeparatorMenuItem)) { //skip separators currentMenuItem.Label = Locale.GetString("FC" + currentMenuItem.Tag.ToString()); TranslateMenu(currentMenuItem.SubMenu); } } } catch { } }
/// <summary>Translates the <paramref name="mnu"/> into the current UI language</summary> private void TranslateMenu(Xwt.Menu mnu) { try { //dirty hack...i don't know why, but "if(mnu.Items == null) return;" raises NullReferenceException... foreach (Xwt.MenuItem currentMenuItem in mnu.Items) { if (currentMenuItem.GetType() != typeof(Xwt.SeparatorMenuItem)) { //skip separators currentMenuItem.Label = Locale.GetString("FCVE_" + currentMenuItem.Tag.ToString()); TranslateMenu(currentMenuItem.SubMenu); } } } catch { } KeyBoardHelp.Visible = Properties.Settings.Default.ShowKeybrdHelp; CommandBox.Visible = Properties.Settings.Default.VE_ShowCmdBar; }
protected override void OnDestroyed() { if (popupMenu != null) { popupMenu.Dispose(); popupMenu = null; } if (!controller.IsFirstPage) { templatesHBox.Destroy(); } if (!controller.IsLastPage) { projectConfigurationWidget.Destroy(); } base.OnDestroyed(); }
void OnButtonPress(object o, Xwt.ButtonEventArgs args) { if (!args.IsContextMenuTrigger) { return; } args.Handled = true; var row = listView.GetRowAtPosition(args.Position); if (row != -1) { var menu = new Xwt.Menu(); var mi = new Xwt.MenuItem("Remove Row"); menu.Items.Add(mi); mi.Clicked += (sender, e) => RemoveSelectedRows(); menu.Popup(listView, args.X, args.Y); } }
void HandlePopup(SolutionTemplate template, uint eventTime) { var engine = Platform.IsMac ? Xwt.Toolkit.NativeEngine : Xwt.Toolkit.CurrentEngine; var xwtParent = Xwt.Toolkit.CurrentEngine.WrapWidget(templatesTreeView); engine.Invoke(() => { if (popupMenu == null) { popupMenu = new Xwt.Menu(); } ClearPopupMenuItems(); AddLanguageMenuItems(popupMenu, template); Gdk.Rectangle rect = languageCellRenderer.GetLanguageRect(); try { popupMenu.Popup(xwtParent, rect.X, rect.Bottom); } catch { // popup at mouse position if the toolkit is not supported popupMenu.Popup(); } }); }
public LogWidget(VersionControlDocumentInfo info) { this.Build(); this.info = info; if (info.Document != null) { this.preselectFile = info.Item.Path; } var separator = new HeaderBox(); separator.SetMargins(1, 0, 0, 0); separator.HeightRequest = 4; separator.ShowAll(); hpaned1 = hpaned1.ReplaceWithWidget(new HPanedThin(), true); vpaned1 = vpaned1.ReplaceWithWidget(new VPanedThin() { HandleWidget = separator }, true); revertButton = new DocumentToolButton("vc-revert-command", GettextCatalog.GetString("Revert changes from this revision")); revertButton.GetNativeWidget <Gtk.Widget> ().Sensitive = false; revertButton.Clicked += new EventHandler(RevertRevisionClicked); revertToButton = new DocumentToolButton("vc-revert-command", GettextCatalog.GetString("Revert to this revision")); revertToButton.GetNativeWidget <Gtk.Widget> ().Sensitive = false; revertToButton.Clicked += new EventHandler(RevertToRevisionClicked); refreshButton = new DocumentToolButton(Gtk.Stock.Refresh, GettextCatalog.GetString("Refresh")); refreshButton.Clicked += new EventHandler(RefreshClicked); searchEntry = new SearchEntry(); searchEntry.WidthRequest = 200; searchEntry.ForceFilterButtonVisible = true; searchEntry.EmptyMessage = GettextCatalog.GetString("Search"); searchEntry.Changed += HandleSearchEntryFilterChanged; searchEntry.Ready = true; searchEntry.Show(); messageRenderer.Ellipsize = Pango.EllipsizeMode.End; TreeViewColumn colRevMessage = new TreeViewColumn(); colRevMessage.Title = GettextCatalog.GetString("Message"); var graphRenderer = new RevisionGraphCellRenderer(); colRevMessage.PackStart(graphRenderer, false); colRevMessage.SetCellDataFunc(graphRenderer, GraphFunc); colRevMessage.PackStart(messageRenderer, true); colRevMessage.SetCellDataFunc(messageRenderer, MessageFunc); colRevMessage.Sizing = TreeViewColumnSizing.Autosize; treeviewLog.AppendColumn(colRevMessage); colRevMessage.MinWidth = 350; colRevMessage.Resizable = true; TreeViewColumn colRevDate = new TreeViewColumn(GettextCatalog.GetString("Date"), textRenderer); colRevDate.SetCellDataFunc(textRenderer, DateFunc); colRevDate.Resizable = true; treeviewLog.AppendColumn(colRevDate); TreeViewColumn colRevAuthor = new TreeViewColumn(); colRevAuthor.Title = GettextCatalog.GetString("Author"); colRevAuthor.PackStart(pixRenderer, false); colRevAuthor.PackStart(textRenderer, true); colRevAuthor.SetCellDataFunc(textRenderer, AuthorFunc); colRevAuthor.SetCellDataFunc(pixRenderer, AuthorIconFunc); colRevAuthor.Resizable = true; treeviewLog.AppendColumn(colRevAuthor); TreeViewColumn colRevNum = new TreeViewColumn(GettextCatalog.GetString("Revision"), textRenderer); colRevNum.SetCellDataFunc(textRenderer, RevisionFunc); colRevNum.Resizable = true; treeviewLog.AppendColumn(colRevNum); treeviewLog.Model = logstore; treeviewLog.Selection.Changed += TreeSelectionChanged; treeviewFiles = new FileTreeView(); treeviewFiles.DiffLineActivated += HandleTreeviewFilesDiffLineActivated; scrolledwindowFiles.Child = treeviewFiles; scrolledwindowFiles.ShowAll(); changedpathstore = new TreeStore(typeof(Xwt.Drawing.Image), typeof(string), // icon/file name typeof(Xwt.Drawing.Image), typeof(string), // icon/operation typeof(string), // path typeof(string), // revision path (invisible) typeof(string []) // diff ); TreeViewColumn colChangedFile = new TreeViewColumn(); var crp = new CellRendererImage(); var crt = new CellRendererText(); colChangedFile.Title = GettextCatalog.GetString("File"); colChangedFile.PackStart(crp, false); colChangedFile.PackStart(crt, true); colChangedFile.SetCellDataFunc(crp, HandleNodeCellDataFunc); colChangedFile.AddAttribute(crt, "text", 3); treeviewFiles.AppendColumn(colChangedFile); TreeViewColumn colOperation = new TreeViewColumn(); colOperation.Title = GettextCatalog.GetString("Operation"); colOperation.PackStart(crp, false); colOperation.PackStart(crt, true); colOperation.AddAttribute(crp, "image", 0); colOperation.AddAttribute(crt, "text", 1); treeviewFiles.AppendColumn(colOperation); TreeViewColumn colChangedPath = new TreeViewColumn(); colChangedPath.Title = GettextCatalog.GetString("Path"); diffRenderer.DrawLeft = true; colChangedPath.PackStart(diffRenderer, true); colChangedPath.SetCellDataFunc(diffRenderer, SetDiffCellData); treeviewFiles.AppendColumn(colChangedPath); treeviewFiles.Model = changedpathstore; treeviewFiles.TestExpandRow += HandleTreeviewFilesTestExpandRow; treeviewFiles.Events |= Gdk.EventMask.PointerMotionMask; textviewDetails.WrapMode = Gtk.WrapMode.Word; textviewDetails.AddEvents((int)Gdk.EventMask.ButtonPressMask); textviewDetails.ButtonPressEvent += TextviewDetails_ButtonPressEvent; labelAuthor.Text = ""; labelDate.Text = ""; labelRevision.Text = ""; labelDate.AddEvents((int)Gdk.EventMask.ButtonPressMask); labelDate.ButtonPressEvent += LabelDate_ButtonPressEvent; labelAuthor.AddEvents((int)Gdk.EventMask.ButtonPressMask); labelAuthor.ButtonPressEvent += LabelAuthor_ButtonPressEvent; labelRevision.AddEvents((int)Gdk.EventMask.ButtonPressMask); labelRevision.ButtonPressEvent += LabelRevision_ButtonPressEvent; vbox2.Remove(scrolledwindow1); HeaderBox tb = new HeaderBox(); tb.Show(); tb.SetMargins(1, 0, 0, 0); tb.ShowTopShadow = true; tb.ShadowSize = 4; tb.SetPadding(8, 8, 8, 8); tb.UseChildBackgroundColor = true; tb.Add(scrolledwindow1); vbox2.PackStart(tb, true, true, 0); (Platform.IsMac ? Xwt.Toolkit.NativeEngine : Xwt.Toolkit.CurrentEngine).Invoke(() => { popupMenu = new Xwt.Menu(); var copyItem = new Xwt.MenuItem(GettextCatalog.GetString("Copy")); popupMenu.Items.Add(copyItem); copyItem.Clicked += (sender, e) => { var selectedText = GetSelectedText(); if (!string.IsNullOrEmpty(selectedText)) { LogView.CopyToClipboard(selectedText); } }; }); UpdateStyle(); Ide.Gui.Styles.Changed += HandleStylesChanged; }
/// <summary>Display bookmark list to the specifed XWT Menu</summary> /// <param name="mnu">The XWT menu</param> /// <param name="OnClick">What should happen if user clicks the bookmark</param> public void DisplayBookmarks(Xwt.Menu mnu, Action<string> OnClick) { if(mnu == null) mnu = new Xwt.Menu(); mnu.Items.Clear(); foreach (Bookmark b in bookmarks) { string url = b.url; Xwt.MenuItem mi = new Xwt.MenuItem(); mi.Clicked += (o, ea) => { OnClick(url); }; mi.Label = b.title; mi.Image = b.GetIcon(); mnu.Items.Add(mi); } }
protected void InitWidget(Xwt.Widget Widget, IXwtWrapper Parent) { Widget.MinHeight = this.MinHeight; Widget.MinWidth = this.MinWidth; Widget.WidthRequest = this.Width; Widget.HeightRequest = this.Height; if (this.BackgroundColor != "") Widget.BackgroundColor = Xwt.Drawing.Color.FromName(this.BackgroundColor); if (this.Font != "") Widget.Font = Xwt.Drawing.Font.FromName(this.Font); Widget.TooltipText = this.TooltipText; Widget.MarginLeft = this.MarginLeft; Widget.MarginRight = this.MarginRight; Widget.MarginTop = this.MarginTop; Widget.MarginBottom = this.MarginBottom; Widget.Sensitive = this.Sensitive; Widget.Visible = this.Visible; Widget.Cursor = this.Cursor; Widget.HorizontalPlacement = this.HAlign; Widget.VerticalPlacement = this.VAlign; if (this.ContextMenu != null) { Widget.ButtonPressed += (o, e) => { if (e.Button == Xwt.PointerButton.Right) { Xwt.Menu M = new Xwt.Menu(); this.ContextMenu.Subitems.ForEach(X => M.Items.Add(X.Makeup(Parent))); M.Popup(); } }; } WindowController.TryAttachEvent(Widget, "MouseEntered", Parent, this.MouseEntered); WindowController.TryAttachEvent(Widget, "MouseExited", Parent, this.MouseExited); WindowController.TryAttachEvent(Widget, "MouseMoved", Parent, this.MouseMoved); WindowController.TryAttachEvent(Widget, "GotFocus", Parent, this.GotFocus); WindowController.TryAttachEvent(Widget, "LostFocus", Parent, this.LostFocus); WindowController.TryAttachEvent(Widget, "ButtonPressed", Parent, this.ButtonPressed); WindowController.TryAttachEvent(Widget, "ButtonReleased", Parent, this.ButtonReleased); if (this.Name != "") { Parent.Widgets.Add(this.Name, Widget); if (Parent.GetType().GetField(this.Name, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) != null) Parent.GetType().GetField(this.Name, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).SetValue(Parent, Widget); WindowController.RegisterWidget(this.Name, Parent, Widget); } }