Пример #1
0
        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);
     }
 }
Пример #3
0
 /// <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 { }
 }
Пример #4
0
Файл: VEd.cs Проект: AVert/fcmd
        /// <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();
        }
Пример #6
0
        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();
                }
            });
        }
Пример #8
0
        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;
        }
Пример #9
0
 /// <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);
     }
 }
Пример #10
0
 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);
     }
 }