Пример #1
0
        void OnPopupMenu(object o, EventArgs args)
        {
            object                 commandChain = this;
            CommandEntrySet        opset        = new CommandEntrySet();
            VersionControlItemList items        = GetSelectedItems();

            foreach (object ob in AddinManager.GetExtensionNodes("/MonoDevelop/VersionControl/StatusViewCommands"))
            {
                if (ob is TypeExtensionNode)
                {
                    TypeExtensionNode node = (TypeExtensionNode)ob;
                    opset.AddItem(ParseCommandId(node));
                    VersionControlCommandHandler handler = node.CreateInstance() as VersionControlCommandHandler;
                    if (handler == null)
                    {
                        LoggingService.LogError("Invalid type specified in extension point 'MonoDevelop/VersionControl/StatusViewCommands'. Subclass of 'VersionControlCommandHandler' expected.");
                        continue;
                    }
                    handler.Init(items);
                    CommandRouter rt = new CommandRouter(handler);
                    rt.Next      = commandChain;
                    commandChain = rt;
                }
                else
                {
                    opset.AddSeparator();
                }
            }
            IdeApp.CommandService.ShowContextMenu(opset, commandChain);
        }
        static ObjectValueTreeView()
        {
            // Context menu definition

            menuSet = new CommandEntrySet();
            menuSet.AddItem(DebugCommands.AddWatch);
            menuSet.AddSeparator();
            menuSet.AddItem(EditCommands.Rename);
            menuSet.AddItem(EditCommands.Delete);
        }
        public void Initialize(IPadWindow window)
        {
            // Toolbar and menu definitions

            ActionCommand gotoCmd       = new ActionCommand(LocalCommands.GoToFile, GettextCatalog.GetString("Go to File"));
            ActionCommand propertiesCmd = new ActionCommand(LocalCommands.Properties, GettextCatalog.GetString("Properties"), Gtk.Stock.Properties);

            menuSet = new CommandEntrySet();
            menuSet.Add(gotoCmd);
            menuSet.AddSeparator();
            menuSet.AddItem(DebugCommands.EnableDisableBreakpoint);
            menuSet.AddItem(DebugCommands.ClearAllBreakpoints);
            menuSet.AddItem(DebugCommands.DisableAllBreakpoints);
            menuSet.AddItem(EditCommands.DeleteKey);
            menuSet.AddSeparator();
            menuSet.Add(propertiesCmd);

            CommandEntrySet toolbarSet = new CommandEntrySet();

            toolbarSet.AddItem(DebugCommands.EnableDisableBreakpoint);
            toolbarSet.AddItem(DebugCommands.ClearAllBreakpoints);
            toolbarSet.AddItem(DebugCommands.DisableAllBreakpoints);
            toolbarSet.AddItem(EditCommands.Delete);
            toolbarSet.AddSeparator();
            toolbarSet.Add(propertiesCmd);

            // The breakpoint list

            store = new TreeStore(typeof(string), typeof(bool), typeof(string), typeof(object), typeof(string), typeof(string), typeof(string), typeof(string));

            tree                = new PadTreeView();
            tree.Model          = store;
            tree.RulesHint      = true;
            tree.HeadersVisible = true;
            tree.DoPopupMenu    = ShowPopup;
            tree.KeyPressEvent += OnKeyPressEvent;

            treeState = new TreeViewState(tree, (int)Columns.Breakpoint);

            TreeViewColumn col = new TreeViewColumn();
            CellRenderer   crp = new CellRendererIcon();

            col.PackStart(crp, false);
            col.AddAttribute(crp, "stock_id", (int)Columns.Icon);
            tree.AppendColumn(col);

            Gtk.CellRendererToggle toggleRender = new Gtk.CellRendererToggle();
            toggleRender.Toggled += new ToggledHandler(ItemToggled);
            col = new TreeViewColumn();
            col.PackStart(toggleRender, false);
            col.AddAttribute(toggleRender, "active", (int)Columns.Selected);
            tree.AppendColumn(col);

            TreeViewColumn FrameCol = new TreeViewColumn();
            CellRenderer   crt      = tree.TextRenderer;

            FrameCol.Title = GettextCatalog.GetString("Name");
            FrameCol.PackStart(crt, true);
            FrameCol.AddAttribute(crt, "text", (int)Columns.FileName);
            FrameCol.Resizable = true;
            FrameCol.Alignment = 0.0f;
            tree.AppendColumn(FrameCol);

            col           = tree.AppendColumn(GettextCatalog.GetString("Condition"), crt, "text", (int)Columns.Condition);
            col.Resizable = true;

            col           = tree.AppendColumn(GettextCatalog.GetString("Trace Expression"), crt, "text", (int)Columns.TraceExp);
            col.Resizable = true;

            col           = tree.AppendColumn(GettextCatalog.GetString("Hit Count"), crt, "text", (int)Columns.HitCount);
            col.Resizable = true;

            col           = tree.AppendColumn(GettextCatalog.GetString("Last Trace"), crt, "text", (int)Columns.LastTrace);
            col.Resizable = true;

            sw            = new Gtk.ScrolledWindow();
            sw.ShadowType = ShadowType.None;
            sw.Add(tree);

            control = sw;

            control.ShowAll();

            bps = DebuggingService.Breakpoints;

            UpdateDisplay();

            breakpointUpdatedHandler = DispatchService.GuiDispatch <EventHandler <BreakpointEventArgs> > (OnBreakpointUpdated);
            breakpointRemovedHandler = DispatchService.GuiDispatch <EventHandler <BreakpointEventArgs> > (OnBreakpointRemoved);
            breakpointAddedHandler   = DispatchService.GuiDispatch <EventHandler <BreakpointEventArgs> > (OnBreakpointAdded);
            breakpointChangedHandler = DispatchService.GuiDispatch <EventHandler> (OnBreakpointChanged);

            DebuggingService.Breakpoints.BreakpointAdded   += breakpointAddedHandler;
            DebuggingService.Breakpoints.BreakpointRemoved += breakpointRemovedHandler;
            DebuggingService.Breakpoints.Changed           += breakpointChangedHandler;
            DebuggingService.Breakpoints.BreakpointUpdated += breakpointUpdatedHandler;

            DebuggingService.PausedEvent  += OnDebuggerStatusCheck;
            DebuggingService.ResumedEvent += OnDebuggerStatusCheck;
            DebuggingService.StoppedEvent += OnDebuggerStatusCheck;

            tree.RowActivated += OnRowActivated;

            DockItemToolbar toolbar = window.GetToolbar(PositionType.Top);

            toolbar.Add(toolbarSet, sw);
            toolbar.ShowAll();
        }
Пример #4
0
        public BugsViewWidget(BugzillaServer server)
        {
            this.Build();
            this.server = server;

            bugsStore = new TreeStore(
                typeof(BugInfo),
                typeof(string),                                 // Group
                typeof(int),                                    // Id
                typeof(int),                                    // Local priority
                typeof(string),                                 // Status
                typeof(string),                                 // Severity
                typeof(string),                                 // Target Milestone
                typeof(int),                                    // Age
                typeof(string),                                 // Assignee
                typeof(string),                                 // ColOS
                typeof(string),                                 // Component
                typeof(string),                                 // Summary
                typeof(int),                                    // Weight
                typeof(Gdk.Color),                              // Back color
                typeof(Gdk.Color),                              // Font color
                typeof(string)                                  // Summary
                );
            bugsList.Model = bugsStore;

/*			CellRendererSpin spin = new CellRendererSpin ();
 *                      spin.Digits = 1;
 */
            CellRendererText spin = new CellRendererText();

            spin.Editable = true;
            spin.Edited  += HandleSpinEdited;

            groupColumns = new TreeViewColumn [Enum.GetValues(typeof(GroupCommand)).Length - 1];

            groupColumn = bugsList.AppendColumn("Category", new CellRendererText(), "text", ColGroup);
            bugsList.AppendColumn("Id", new CellRendererText(), "text", ColId);
            bugsList.AppendColumn("Prio", spin, "text", ColPriority);
            groupColumns [(int)GroupCommand.GroupByStatus]    = bugsList.AppendColumn("Status", new CellRendererText(), "text", ColStatus);
            groupColumns [(int)GroupCommand.GroupBySeverity]  = bugsList.AppendColumn("Severity", new CellRendererText(), "text", ColSeverity);
            groupColumns [(int)GroupCommand.GroupByMilestone] = bugsList.AppendColumn("Milestone", new CellRendererText(), "text", ColTargetMilestone);
            bugsList.AppendColumn("Age", new CellRendererText(), "text", ColAge);
            groupColumns [(int)GroupCommand.GroupByOwner] = bugsList.AppendColumn("Assigned", new CellRendererText(), "text", ColAssignee);
            bugsList.AppendColumn("OS", new CellRendererText(), "text", ColOS);
            groupColumns [(int)GroupCommand.GroupByComponent] = bugsList.AppendColumn("Component", new CellRendererText(), "text", ColComponent);
            groupColumns [(int)GroupCommand.GroupByTag]       = bugsList.AppendColumn("Tags", new CellRendererText(), "text", ColTags);
            CellRendererText ct = new CellRendererText();

            bugsList.AppendColumn("Summary", ct, "text", ColSummary);

            int n = 1;

            foreach (TreeViewColumn col in bugsList.Columns)
            {
                col.SortColumnId = n++;
                col.Clickable    = true;
                col.Resizable    = true;
                col.Reorderable  = true;
                CellRendererText crt = (CellRendererText)col.CellRenderers[0];
                col.AddAttribute(crt, "weight", ColWeight);
                col.AddAttribute(crt, "background-gdk", ColBackColor);
                col.AddAttribute(crt, "foreground-gdk", ColFontColor);
            }

            bugsList.DragBegin        += HandleBugsListDragBegin;
            bugsList.DragDataReceived += HandleBugsListDragDataReceived;
            bugsList.DragEnd          += HandleBugsListDragEnd;
            bugsList.DragMotion       += HandleBugsListDragMotion;

            bugsList.Selection.Mode     = SelectionMode.Multiple;
            bugsList.Selection.Changed += HandleBugsListSelectionChanged;

            Gtk.TargetEntry[] targets = new Gtk.TargetEntry [] { new TargetEntry("bug", TargetFlags.Widget, 0) };
//			bugsList.EnableModelDragSource (Gdk.ModifierType.None, targets, Gdk.DragAction.Move);
            Gtk.Drag.SourceSet(bugsList, Gdk.ModifierType.Button1Mask, targets, Gdk.DragAction.Move);
            bugsList.EnableModelDragDest(targets, Gdk.DragAction.Move);

            ActionCommand setPrioHigh      = new ActionCommand(LocalCommands.SetPriorityHigh, GettextCatalog.GetString("Set High Priority (Bottom)"));
            ActionCommand setPrioMed       = new ActionCommand(LocalCommands.SetPriorityMed, GettextCatalog.GetString("Set Medium Priority (Bottom)"));
            ActionCommand setPrioLow       = new ActionCommand(LocalCommands.SetPriorityLow, GettextCatalog.GetString("Set Low Priority (Bottom)"));
            ActionCommand setPrioHighTop   = new ActionCommand(LocalCommands.SetPriorityHighTop, GettextCatalog.GetString("Set High Priority (Top)"));
            ActionCommand setPrioMedTop    = new ActionCommand(LocalCommands.SetPriorityMedTop, GettextCatalog.GetString("Set Medium Priority (Top)"));
            ActionCommand setPrioLowTop    = new ActionCommand(LocalCommands.SetPriorityLowTop, GettextCatalog.GetString("Set Low Priority (Top)"));
            ActionCommand toggleRead       = new ActionCommand(LocalCommands.ToggleNewMarker, GettextCatalog.GetString("Mark as Changed"));
            ActionCommand openInBrowser    = new ActionCommand(LocalCommands.OpenInBrowser, GettextCatalog.GetString("Open in Browser"));
            ActionCommand refreshBugInfo   = new ActionCommand(LocalCommands.RefreshFromSever, GettextCatalog.GetString("Refresh From Server"));
            ActionCommand setTagCommand    = new ActionCommand(LocalCommands.TagsList, GettextCatalog.GetString("Set tag"));
            ActionCommand clearTagsCommand = new ActionCommand(LocalCommands.ClearTags, GettextCatalog.GetString("Clear Tags"));
            ActionCommand editTagsCommand  = new ActionCommand(LocalCommands.EditTags, GettextCatalog.GetString("Edit Tags"));

            setTagCommand.CommandArray = true;
            setTagCommand.ActionType   = ActionType.Check;

            menuSet = new CommandEntrySet();
            menuSet.Add(openInBrowser);
            menuSet.AddSeparator();
            menuSet.Add(setPrioHighTop);
            menuSet.Add(setPrioHigh);
            menuSet.Add(setPrioMedTop);
            menuSet.Add(setPrioMed);
            menuSet.Add(setPrioLowTop);
            menuSet.Add(setPrioLow);
            menuSet.AddSeparator();

            CommandEntrySet tagsSet = menuSet.AddItemSet(GettextCatalog.GetString("Tags"));

            tagsSet.Add(setTagCommand);
            tagsSet.AddSeparator();
            tagsSet.Add(clearTagsCommand);
            tagsSet.Add(editTagsCommand);

            menuSet.Add(toggleRead);
            menuSet.AddSeparator();
            menuSet.Add(refreshBugInfo);

            // Manage menu

            ActionCommand   newServer    = new ActionCommand(LocalCommands.NewServer, GettextCatalog.GetString("Add Server..."));
            ActionCommand   deleteServer = new ActionCommand(LocalCommands.DeleteServer, GettextCatalog.GetString("Remove Server"));
            ActionCommand   editServer   = new ActionCommand(LocalCommands.EditServer, GettextCatalog.GetString("Edit Server"));
            CommandEntrySet adminMenuSet = new CommandEntrySet();

            adminMenuSet.Add(newServer);
            adminMenuSet.Add(deleteServer);
            adminMenuSet.Add(editServer);

            // Edit button

            MenuButton editButton = new MenuButton();

            editButton.Relief      = ReliefStyle.None;
            editButton.Label       = GettextCatalog.GetString("Manage");
            editButton.MenuCreator = delegate {
                return(IdeApp.CommandService.CreateMenu(adminMenuSet));
            };
            hboxHeader.PackStart(editButton, false, false, 0);
            Box.BoxChild ch = (Box.BoxChild)hboxHeader [editButton];
            ch.Position = 1;
            editButton.ShowAll();

            // Group by button

            CommandEntrySet groupByMenuSet = new CommandEntrySet();

            groupByMenuSet.Add(new ActionCommand(GroupCommand.GroupByNothing, GettextCatalog.GetString("Don't group")));
            groupByMenuSet.AddSeparator();
            groupByMenuSet.Add(new ActionCommand(GroupCommand.GroupByComponent, GettextCatalog.GetString("Component")));
            groupByMenuSet.Add(new ActionCommand(GroupCommand.GroupByMilestone, GettextCatalog.GetString("Target Milestone")));
            groupByMenuSet.Add(new ActionCommand(GroupCommand.GroupByOwner, GettextCatalog.GetString("Assigned To")));
            groupByMenuSet.Add(new ActionCommand(GroupCommand.GroupBySeverity, GettextCatalog.GetString("Severity")));
            groupByMenuSet.Add(new ActionCommand(GroupCommand.GroupByStatus, GettextCatalog.GetString("Status")));
            groupByMenuSet.Add(new ActionCommand(GroupCommand.GroupByTag, GettextCatalog.GetString("Tag")));

            MenuButton groupButton = new MenuButton();

            groupButton.Relief      = ReliefStyle.None;
            groupButton.Label       = GettextCatalog.GetString("Group By");
            groupButton.MenuCreator = delegate {
                return(IdeApp.CommandService.CreateMenu(groupByMenuSet));
            };
            hboxHeader.PackStart(groupButton, false, false, 0);
            ch          = (Box.BoxChild)hboxHeader [groupButton];
            ch.Position = 4;
            groupButton.ShowAll();

            // Load data

            FillServers();
            FillServer(null);
        }
Пример #5
0
        public StackTracePad()
        {
            this.ShadowType = ShadowType.None;

            ActionCommand gotoCmd = new ActionCommand("StackTracePad.ActivateFrame", GettextCatalog.GetString("Activate Stack Frame"));

            menuSet = new CommandEntrySet();
            menuSet.Add(gotoCmd);
            menuSet.AddSeparator();
            menuSet.AddItem(EditCommands.SelectAll);
            menuSet.AddItem(EditCommands.Copy);

            store = new ListStore(typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(Pango.Style));

            tree                = new MonoDevelop.Ide.Gui.Components.PadTreeView(store);
            tree.RulesHint      = true;
            tree.HeadersVisible = true;
            tree.Selection.Mode = SelectionMode.Multiple;
            tree.DoPopupMenu    = ShowPopup;

            TreeViewColumn col = new TreeViewColumn();
            CellRenderer   crp = new CellRendererIcon();

            col.PackStart(crp, false);
            col.AddAttribute(crp, "stock_id", 0);
            tree.AppendColumn(col);

            TreeViewColumn FrameCol = new TreeViewColumn();

            FrameCol.Title = GettextCatalog.GetString("Name");
            FrameCol.PackStart(tree.TextRenderer, true);
            FrameCol.AddAttribute(tree.TextRenderer, "text", 1);
            FrameCol.AddAttribute(tree.TextRenderer, "foreground", 5);
            FrameCol.AddAttribute(tree.TextRenderer, "style", 6);
            FrameCol.Resizable = true;
            FrameCol.Alignment = 0.0f;
            tree.AppendColumn(FrameCol);

            col       = new TreeViewColumn();
            col.Title = GettextCatalog.GetString("File");
            col.PackStart(tree.TextRenderer, false);
            col.AddAttribute(tree.TextRenderer, "text", 2);
            col.AddAttribute(tree.TextRenderer, "foreground", 5);
            tree.AppendColumn(col);

            col       = new TreeViewColumn();
            col.Title = GettextCatalog.GetString("Language");
            col.PackStart(tree.TextRenderer, false);
            col.AddAttribute(tree.TextRenderer, "text", 3);
            col.AddAttribute(tree.TextRenderer, "foreground", 5);
            tree.AppendColumn(col);

            col       = new TreeViewColumn();
            col.Title = GettextCatalog.GetString("Address");
            col.PackStart(tree.TextRenderer, false);
            col.AddAttribute(tree.TextRenderer, "text", 4);
            col.AddAttribute(tree.TextRenderer, "foreground", 5);
            tree.AppendColumn(col);

            Add(tree);
            ShowAll();

            current_backtrace = DebuggingService.CurrentCallStack;
            UpdateDisplay();

            DebuggingService.CallStackChanged    += (EventHandler)DispatchService.GuiDispatch(new EventHandler(OnClassStackChanged));
            DebuggingService.CurrentFrameChanged += (EventHandler)DispatchService.GuiDispatch(new EventHandler(OnFrameChanged));
            tree.RowActivated += OnRowActivated;
        }
Пример #6
0
        protected override void Initialize(IPadWindow window)
        {
            Id = "MonoDevelop.Debugger.BreakpointPad";
            // Toolbar and menu definitions

            ActionCommand gotoCmd       = new ActionCommand(LocalCommands.GoToFile, GettextCatalog.GetString("Go to File"));
            ActionCommand propertiesCmd = new ActionCommand(LocalCommands.Properties, GettextCatalog.GetString("Edit Breakpoint…"), Stock.Properties);

            menuSet = new CommandEntrySet();
            menuSet.Add(propertiesCmd);
            menuSet.Add(gotoCmd);
            menuSet.AddSeparator();
            menuSet.AddItem(DebugCommands.EnableDisableBreakpoint);
            menuSet.AddItem(DebugCommands.DisableAllBreakpoints);
            menuSet.AddSeparator();
            menuSet.AddItem(EditCommands.DeleteKey);
            menuSet.AddItem(DebugCommands.ClearAllBreakpoints);

            CommandEntrySet toolbarSet = new CommandEntrySet();

            toolbarSet.AddItem(DebugCommands.EnableDisableBreakpoint);
            toolbarSet.AddItem(DebugCommands.ClearAllBreakpoints);
            toolbarSet.AddItem(DebugCommands.DisableAllBreakpoints);
            toolbarSet.AddItem(EditCommands.Delete);
            toolbarSet.AddSeparator();
            toolbarSet.Add(propertiesCmd);
            toolbarSet.AddSeparator();
            toolbarSet.Add(new CommandEntry(DebugCommands.NewFunctionBreakpoint)
            {
                DisplayType = CommandEntryDisplayType.IconAndText
            });
            toolbarSet.Add(new CommandEntry(DebugCommands.NewCatchpoint)
            {
                DisplayType = CommandEntryDisplayType.IconAndText
            });

            // The breakpoint list

            store = new TreeStore(typeof(string), typeof(bool), typeof(string), typeof(object), typeof(string), typeof(string), typeof(string), typeof(string));
            SemanticModelAttribute modelAttr = new SemanticModelAttribute("store__Icon", "store__Selected", "store_FileName",
                                                                          "store_Breakpoint", "store_Condition", "store_TraceExp", "store_HitCount", "store_LastTrace");

            TypeDescriptor.AddAttributes(store, modelAttr);

            tree                = new PadTreeView();
            tree.Model          = store;
            tree.RulesHint      = true;
            tree.HeadersVisible = true;
            tree.DoPopupMenu    = ShowPopup;
            tree.KeyPressEvent += OnKeyPressEvent;
            tree.Selection.Mode = SelectionMode.Multiple;

            treeState = new TreeViewState(tree, (int)Columns.Breakpoint);

            TreeViewColumn col = new TreeViewColumn();
            CellRenderer   crp = new CellRendererImage();

            col.PackStart(crp, false);
            col.AddAttribute(crp, "stock_id", (int)Columns.Icon);
            tree.AppendColumn(col);

            Gtk.CellRendererToggle toggleRender = new Gtk.CellRendererToggle();
            toggleRender.Toggled += new ToggledHandler(ItemToggled);
            col = new TreeViewColumn();
            col.PackStart(toggleRender, false);
            col.AddAttribute(toggleRender, "active", (int)Columns.Selected);
            tree.AppendColumn(col);

            TreeViewColumn FrameCol = new TreeViewColumn();
            CellRenderer   crt      = tree.TextRenderer;

            FrameCol.Title = GettextCatalog.GetString("Name");
            FrameCol.PackStart(crt, true);
            FrameCol.AddAttribute(crt, "text", (int)Columns.FileName);
            FrameCol.Resizable = true;
            FrameCol.Alignment = 0.0f;
            tree.AppendColumn(FrameCol);

            col           = tree.AppendColumn(GettextCatalog.GetString("Condition"), crt, "text", (int)Columns.Condition);
            col.Resizable = true;

            col           = tree.AppendColumn(GettextCatalog.GetString("Trace Expression"), crt, "text", (int)Columns.TraceExp);
            col.Resizable = true;

            col           = tree.AppendColumn(GettextCatalog.GetString("Hit Count"), crt, "text", (int)Columns.HitCount);
            col.Resizable = true;

            col           = tree.AppendColumn(GettextCatalog.GetString("Last Trace"), crt, "text", (int)Columns.LastTrace);
            col.Resizable = true;

            sw            = new Gtk.ScrolledWindow();
            sw.ShadowType = ShadowType.None;
            sw.Add(tree);

            control = sw;

            control.ShowAll();

            breakpoints = DebuggingService.Breakpoints;

            UpdateDisplay();

            breakpoints.BreakpointAdded   += OnBreakpointAdded;
            breakpoints.BreakpointRemoved += OnBreakpointRemoved;
            breakpoints.Changed           += OnBreakpointChanged;
            breakpoints.BreakpointUpdated += OnBreakpointUpdated;

            DebuggingService.PausedEvent  += OnDebuggerStatusCheck;
            DebuggingService.ResumedEvent += OnDebuggerStatusCheck;
            DebuggingService.StoppedEvent += OnDebuggerStatusCheck;

            tree.RowActivated += OnRowActivated;

            DockItemToolbar toolbar = window.GetToolbar(DockPositionType.Top);

            toolbar.Add(toolbarSet, sw);
            toolbar.ShowAll();
        }
Пример #7
0
        public StackTracePad()
        {
            this.ShadowType = ShadowType.None;

            ActionCommand evalCmd = new ActionCommand("StackTracePad.EvaluateMethodParams", GettextCatalog.GetString("Evaluate Method Parameters"));
            ActionCommand gotoCmd = new ActionCommand("StackTracePad.ActivateFrame", GettextCatalog.GetString("Activate Stack Frame"));

            menuSet = new CommandEntrySet();
            menuSet.Add(evalCmd);
            menuSet.Add(gotoCmd);
            menuSet.AddSeparator();
            menuSet.AddItem(EditCommands.SelectAll);
            menuSet.AddItem(EditCommands.Copy);

            store = new ListStore(typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(Pango.Style), typeof(object), typeof(bool));

            tree                   = new PadTreeView(store);
            tree.RulesHint         = true;
            tree.HeadersVisible    = true;
            tree.Selection.Mode    = SelectionMode.Multiple;
            tree.SearchEqualFunc   = Search;
            tree.EnableSearch      = true;
            tree.SearchColumn      = 1;
            tree.ButtonPressEvent += HandleButtonPressEvent;
            tree.DoPopupMenu       = ShowPopup;

            TreeViewColumn col = new TreeViewColumn();
            CellRenderer   crp = new CellRendererIcon();

            col.PackStart(crp, false);
            col.AddAttribute(crp, "stock_id", 0);
            tree.AppendColumn(col);

            TreeViewColumn FrameCol = new TreeViewColumn();

            FrameCol.Title = GettextCatalog.GetString("Name");
            refresh        = new CellRendererIcon();
            refresh.Pixbuf = ImageService.GetPixbuf(Gtk.Stock.Refresh).ScaleSimple(12, 12, Gdk.InterpType.Hyper);
            FrameCol.PackStart(refresh, false);
            FrameCol.AddAttribute(refresh, "visible", 8);
            FrameCol.PackStart(tree.TextRenderer, true);
            FrameCol.AddAttribute(tree.TextRenderer, "text", 1);
            FrameCol.AddAttribute(tree.TextRenderer, "foreground", 5);
            FrameCol.AddAttribute(tree.TextRenderer, "style", 6);
            FrameCol.Resizable = true;
            FrameCol.Alignment = 0.0f;
            tree.AppendColumn(FrameCol);

            col       = new TreeViewColumn();
            col.Title = GettextCatalog.GetString("File");
            col.PackStart(tree.TextRenderer, false);
            col.AddAttribute(tree.TextRenderer, "text", 2);
            col.AddAttribute(tree.TextRenderer, "foreground", 5);
            tree.AppendColumn(col);

            col       = new TreeViewColumn();
            col.Title = GettextCatalog.GetString("Language");
            col.PackStart(tree.TextRenderer, false);
            col.AddAttribute(tree.TextRenderer, "text", 3);
            col.AddAttribute(tree.TextRenderer, "foreground", 5);
            tree.AppendColumn(col);

            col       = new TreeViewColumn();
            col.Title = GettextCatalog.GetString("Address");
            col.PackStart(tree.TextRenderer, false);
            col.AddAttribute(tree.TextRenderer, "text", 4);
            col.AddAttribute(tree.TextRenderer, "foreground", 5);
            tree.AppendColumn(col);

            Add(tree);
            ShowAll();

            current_backtrace = DebuggingService.CurrentCallStack;
            UpdateDisplay();

            DebuggingService.CallStackChanged    += (EventHandler)DispatchService.GuiDispatch(new EventHandler(OnClassStackChanged));
            DebuggingService.CurrentFrameChanged += (EventHandler)DispatchService.GuiDispatch(new EventHandler(OnFrameChanged));
            tree.RowActivated += OnRowActivated;
        }
Пример #8
0
        public StackTracePad()
        {
            this.ShadowType = ShadowType.None;

            var evalCmd = new ActionCommand("StackTracePad.EvaluateMethodParams", GettextCatalog.GetString("Evaluate Method Parameters"));
            var gotoCmd = new ActionCommand("StackTracePad.ActivateFrame", GettextCatalog.GetString("Activate Stack Frame"));

            menuSet = new CommandEntrySet();
            menuSet.Add(evalCmd);
            menuSet.Add(gotoCmd);
            menuSet.AddSeparator();
            menuSet.AddItem(EditCommands.SelectAll);
            menuSet.AddItem(EditCommands.Copy);

            store = new ListStore(typeof(bool), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(Pango.Style), typeof(object), typeof(int), typeof(bool));

            tree                   = new PadTreeView(store);
            tree.RulesHint         = true;
            tree.HeadersVisible    = true;
            tree.Selection.Mode    = SelectionMode.Multiple;
            tree.SearchEqualFunc   = Search;
            tree.EnableSearch      = true;
            tree.SearchColumn      = 1;
            tree.ButtonPressEvent += HandleButtonPressEvent;
            tree.DoPopupMenu       = ShowPopup;

            var col = new TreeViewColumn();
            var crp = new CellRendererImage();

            col.PackStart(crp, false);
            crp.Image = pointerImage;
            col.AddAttribute(crp, "visible", IconColumn);
            tree.AppendColumn(col);

            col           = new TreeViewColumn();
            col.Title     = GettextCatalog.GetString("Name");
            refresh       = new CellRendererImage();
            refresh.Image = ImageService.GetIcon(Gtk.Stock.Refresh).WithSize(12, 12);
            col.PackStart(refresh, false);
            col.AddAttribute(refresh, "visible", CanRefreshColumn);
            col.PackStart(tree.TextRenderer, true);
            col.AddAttribute(tree.TextRenderer, "text", MethodColumn);
            col.AddAttribute(tree.TextRenderer, "foreground", ForegroundColumn);
            col.AddAttribute(tree.TextRenderer, "style", StyleColumn);
            col.Resizable = true;
            col.Alignment = 0.0f;
            tree.AppendColumn(col);

            col       = new TreeViewColumn();
            col.Title = GettextCatalog.GetString("File");
            col.PackStart(tree.TextRenderer, false);
            col.AddAttribute(tree.TextRenderer, "text", FileColumn);
            col.AddAttribute(tree.TextRenderer, "foreground", ForegroundColumn);
            tree.AppendColumn(col);

            col       = new TreeViewColumn();
            col.Title = GettextCatalog.GetString("Language");
            col.PackStart(tree.TextRenderer, false);
            col.AddAttribute(tree.TextRenderer, "text", LangColumn);
            col.AddAttribute(tree.TextRenderer, "foreground", ForegroundColumn);
            tree.AppendColumn(col);

            col       = new TreeViewColumn();
            col.Title = GettextCatalog.GetString("Address");
            col.PackStart(tree.TextRenderer, false);
            col.AddAttribute(tree.TextRenderer, "text", AddrColumn);
            col.AddAttribute(tree.TextRenderer, "foreground", ForegroundColumn);
            tree.AppendColumn(col);

            Add(tree);
            ShowAll();
            UpdateDisplay();

            DebuggingService.CallStackChanged    += OnClassStackChanged;
            DebuggingService.CurrentFrameChanged += OnFrameChanged;
            DebuggingService.StoppedEvent        += OnDebuggingServiceStopped;

            tree.RowActivated += OnRowActivated;
        }