sysperfana/heapanalyser/Libraries/UI/HeapCtrlLib/Popups/Managers/PopupManagerBySymbol.cs
author Matti Laitinen <matti.t.laitinen@nokia.com>
Tue, 15 Jun 2010 12:47:20 +0300
changeset 8 15296fd0af4a
permissions -rw-r--r--
HeapAnalyser 1.1.0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     1
/*
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     4
*
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     5
* Redistribution and use in source and binary forms, with or without
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     6
* modification, are permitted provided that the following conditions are met:
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     7
*
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     8
* - Redistributions of source code must retain the above copyright notice,
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     9
*   this list of conditions and the following disclaimer.
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    10
* - Redistributions in binary form must reproduce the above copyright notice,
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    11
*   this list of conditions and the following disclaimer in the documentation
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    12
*   and/or other materials provided with the distribution.
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    13
* - Neither the name of Nokia Corporation nor the names of its contributors
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    14
*   may be used to endorse or promote products derived from this software
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    15
*   without specific prior written permission.
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    16
*
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    17
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    18
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    20
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    21
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    22
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    23
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    24
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    25
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    26
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    27
* POSSIBILITY OF SUCH DAMAGE.
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    28
* 
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    29
* Initial Contributors:
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    30
* Nokia Corporation - initial contribution.
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    31
*
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    32
* Contributors:
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    33
*
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    34
* Description: 
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    35
*
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    36
*/
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    37
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    38
using System;
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    39
using System.Drawing;
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    40
using System.Windows.Forms;
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    41
using HeapCtrlLib.Interfaces;
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    42
using HeapCtrlLib.Popups.Forms;
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    43
using HeapLib;
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    44
using HeapLib.Cells;
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    45
using HeapLib.Array;
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    46
using HeapLib.Relationships;
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    47
using HeapLib.Statistics;
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    48
using SymbianUtils.Graphics;
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    49
using SymbianUtils.RawItems;
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    50
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    51
namespace HeapCtrlLib.Popups.Managers
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    52
{
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    53
	internal class PopupManagerBySymbol : PopupManagerBase
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    54
	{
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    55
        #region Constructors & destructor
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    56
		public PopupManagerBySymbol()
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    57
		{
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    58
        }
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    59
        #endregion
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    60
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    61
        #region IHeapCellPopupManager Members
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    62
        public override void PopupShowAsyncImpl( HeapCellArrayWithStatistics aCells, HeapStatistics aStats, Point aLocalControlCoordinates, Point aScreenCoordinates, Size aCellBoxSizeIncludingPadding, System.Windows.Forms.KeyEventHandler aKeyHandler )
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    63
        {
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    64
            PopupHide();
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    65
            //
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    66
            if  ( aCells.Count == 1 )
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    67
            {
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    68
                HeapCell cell = aCells[ 0 ];
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    69
                
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    70
                // If there's a free cell with a symbol (possible, if the user wanted to decode free cell contents)
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    71
                // then we should just display the allocated symbol popup (even though it's a free cell!)
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    72
                if ( cell.Symbol != null )
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    73
                {
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    74
                    if ( cell.Type == HeapCell.TType.EFree )
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    75
                    {
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    76
                        int x = 0;
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    77
                        x++;
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    78
                    }
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    79
                    iActivePopup = new PopupCellAllocatedSymbols();
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    80
                }
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    81
                else if ( cell.Type == HeapCell.TType.EAllocated )
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    82
                {
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    83
                    iActivePopup = new PopupCellAllocatedRaw();
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    84
                }
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    85
                else if ( cell.Type == HeapCell.TType.EFree )
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    86
                {
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    87
                    iActivePopup = new PopupCellFree();
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    88
                }
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    89
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    90
                iActivePopup.ColourFromHoverCoordinate = true;
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    91
            }
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    92
            else if ( aCells.Count > 1 )
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    93
            {
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    94
                iActivePopup = new PopupMultiCellSelection();
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    95
                iActivePopup.VisibilityDelay = 0;
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    96
            }
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    97
            //
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    98
            iActivePopup.PopupShowAsync( aScreenCoordinates, aCells, aStats, aCellBoxSizeIncludingPadding, aKeyHandler );
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    99
        }
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   100
        #endregion
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   101
    }
15296fd0af4a HeapAnalyser 1.1.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   102
}