--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/crashanalysercmd/UI/Plugins/CAPluginRawStackUi/Tabs/CATabStackViewer.cs Thu Feb 11 15:50:58 2010 +0200
@@ -0,0 +1,109 @@
+/*
+* Copyright (c) 2004-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Windows.Forms;
+using CAPRawStack.Plugin;
+using CrashAnalyserEngine.Tabs;
+using CrashAnalyserEngine.Engine;
+using CrashAnalyserEngine.Interfaces;
+using SymbianStackLib.Engine;
+using SymbianStackLib.Data.Source;
+using SymbianStackLib.Data.Output;
+using SymbianStackLib.Data.Output.Entry;
+using SymbianStackLibUi.GUI;
+
+namespace CAPluginRawStackUi.Tabs
+{
+ internal partial class CATabStackViewer : CATab
+ {
+ #region Constructors
+ public CATabStackViewer( CAPluginRawStack aPlugin )
+ {
+ InitializeComponent();
+ //
+ iPlugin = aPlugin;
+ base.Title = "Call Stack";
+ }
+ #endregion
+
+ #region Properties
+ #endregion
+
+ #region Event handlers
+ private void CATabStackViewer_Load( object sender, EventArgs e )
+ {
+ StackEngine stackEngine = iPlugin.StackEngine;
+
+ try
+ {
+ StackEngineProgressDialog.ReconstructStack( stackEngine );
+ }
+ catch( Exception exception )
+ {
+ iLbl_ErrorMessage.Text = exception.Message;
+ iLbl_ErrorMessage.Visible = true;
+ }
+
+ iStackViewer.StackData = stackEngine.DataOutput;
+
+ // Work out if we have any ghosts in the data - this dictates whether
+ // or not we show the "hide ghosts" checkbox.
+ bool seenGhost = false;
+ foreach ( StackOutputEntry entry in stackEngine.DataOutput )
+ {
+ if ( entry.IsGhost )
+ {
+ seenGhost = true;
+ break;
+ }
+ }
+ //
+ iCB_HideGhosts.Checked = seenGhost;
+ iCB_HideGhosts.Visible = seenGhost;
+ iStackViewer.OnlyShowEntriesWithSymbols = iCB_MatchExactSymbols.Checked;
+ iStackViewer.HideGhosts = iCB_HideGhosts.Checked;
+ }
+
+ private void iCB_HideGhosts_CheckedChanged( object sender, EventArgs e )
+ {
+ bool hideGhosts = iCB_HideGhosts.Checked;
+ iStackViewer.HideGhosts = hideGhosts;
+ iStackViewer.Refresh();
+ }
+
+ private void iCB_MatchExactSymbols_CheckedChanged( object sender, EventArgs e )
+ {
+ bool matchExact = iCB_MatchExactSymbols.Checked;
+ iStackViewer.OnlyShowEntriesWithSymbols = matchExact;
+ iStackViewer.Refresh();
+ }
+ #endregion
+
+ #region Internal methods
+ #endregion
+
+ #region Data members
+ private readonly CAPluginRawStack iPlugin;
+ #endregion
+ }
+}