8
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
1 |
/*
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
2 |
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
3 |
* All rights reserved.
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
4 |
*
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
5 |
* Redistribution and use in source and binary forms, with or without
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
6 |
* modification, are permitted provided that the following conditions are met:
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
7 |
*
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
8 |
* - Redistributions of source code must retain the above copyright notice,
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
9 |
* this list of conditions and the following disclaimer.
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
10 |
* - Redistributions in binary form must reproduce the above copyright notice,
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
11 |
* this list of conditions and the following disclaimer in the documentation
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
12 |
* and/or other materials provided with the distribution.
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
13 |
* - Neither the name of Nokia Corporation nor the names of its contributors
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
14 |
* may be used to endorse or promote products derived from this software
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
15 |
* without specific prior written permission.
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
16 |
*
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
17 |
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
18 |
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
19 |
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
20 |
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
21 |
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
22 |
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
23 |
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
24 |
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
25 |
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
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
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
27 |
* POSSIBILITY OF SUCH DAMAGE.
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
28 |
*
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
29 |
* Initial Contributors:
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
30 |
* Nokia Corporation - initial contribution.
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
31 |
*
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
32 |
* Contributors:
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
33 |
*
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
34 |
* Description:
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
35 |
*
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
36 |
*/
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
37 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
38 |
using System;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
39 |
using System.Drawing;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
40 |
using System.Collections;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
41 |
using System.ComponentModel;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
42 |
using System.Windows.Forms;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
43 |
using System.Runtime.InteropServices;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
44 |
using HeapLib.Cells;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
45 |
using HeapLib.Array;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
46 |
using HeapLib.Statistics;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
47 |
using SymbianUtils.RawItems;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
48 |
using SymbianUtils.Colour;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
49 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
50 |
namespace HeapCtrlLib.Popups.Forms
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
51 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
52 |
public class PopupBase : System.Windows.Forms.Form
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
53 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
54 |
#region Delegates and events
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
55 |
public delegate void BackgroundColourChangeHandler( Color aColour );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
56 |
public event BackgroundColourChangeHandler ColourChangeBackground;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
57 |
public delegate void TitleColourChangeHandler( Color aColour );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
58 |
public event TitleColourChangeHandler ColourChangeTitle;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
59 |
#endregion
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
60 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
61 |
#region Windows Form Designer data members
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
62 |
private System.ComponentModel.IContainer components;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
63 |
private System.Windows.Forms.Timer iTimer;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
64 |
private System.Windows.Forms.Label iLbl_Title;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
65 |
private System.Windows.Forms.Label iLbl_Footer;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
66 |
private System.Windows.Forms.Label iLbl_Title_Length_Payload;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
67 |
private System.Windows.Forms.Label iLbl_Footer_Percentage_OfTotal;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
68 |
private System.Windows.Forms.Label iLbl_Footer_Percentage_OfType;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
69 |
private System.Windows.Forms.Label iLbl_Title_Length_Header;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
70 |
#endregion
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
71 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
72 |
#region Constructors & destructor
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
73 |
public PopupBase()
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
74 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
75 |
InitializeComponent();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
76 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
77 |
this.SetStyle( ControlStyles.UserPaint, true );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
78 |
this.SetStyle( ControlStyles.DoubleBuffer, true );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
79 |
this.SetStyle( ControlStyles.AllPaintingInWmPaint, true );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
80 |
this.SetStyle( ControlStyles.ResizeRedraw, true );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
81 |
this.SetStyle( ControlStyles.Selectable, false );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
82 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
83 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
84 |
protected override void Dispose( bool disposing )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
85 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
86 |
if( disposing )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
87 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
88 |
if(components != null)
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
89 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
90 |
components.Dispose();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
91 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
92 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
93 |
base.Dispose( disposing );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
94 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
95 |
#endregion
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
96 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
97 |
#region Windows Form Designer generated code
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
98 |
private void InitializeComponent()
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
99 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
100 |
this.components = new System.ComponentModel.Container();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
101 |
this.iLbl_Title = new System.Windows.Forms.Label();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
102 |
this.iLbl_Title_Length_Payload = new System.Windows.Forms.Label();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
103 |
this.iLbl_Title_Length_Header = new System.Windows.Forms.Label();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
104 |
this.iLbl_Footer = new System.Windows.Forms.Label();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
105 |
this.iTimer = new System.Windows.Forms.Timer( this.components );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
106 |
this.iLbl_Footer_Percentage_OfTotal = new System.Windows.Forms.Label();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
107 |
this.iLbl_Footer_Percentage_OfType = new System.Windows.Forms.Label();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
108 |
this.SuspendLayout();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
109 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
110 |
// iLbl_Title
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
111 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
112 |
this.iLbl_Title.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
113 |
| System.Windows.Forms.AnchorStyles.Right ) ) );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
114 |
this.iLbl_Title.BackColor = System.Drawing.Color.Gainsboro;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
115 |
this.iLbl_Title.Font = new System.Drawing.Font( "Tahoma", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ( (byte) ( 0 ) ) );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
116 |
this.iLbl_Title.ForeColor = System.Drawing.Color.SlateGray;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
117 |
this.iLbl_Title.Location = new System.Drawing.Point( 1, 1 );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
118 |
this.iLbl_Title.Name = "iLbl_Title";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
119 |
this.iLbl_Title.Size = new System.Drawing.Size( 518, 22 );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
120 |
this.iLbl_Title.TabIndex = 0;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
121 |
this.iLbl_Title.Text = "Popup Title";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
122 |
this.iLbl_Title.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
123 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
124 |
// iLbl_Title_Length_Payload
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
125 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
126 |
this.iLbl_Title_Length_Payload.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right ) ) );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
127 |
this.iLbl_Title_Length_Payload.BackColor = System.Drawing.Color.Gainsboro;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
128 |
this.iLbl_Title_Length_Payload.Font = new System.Drawing.Font( "Tahoma", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ( (byte) ( 0 ) ) );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
129 |
this.iLbl_Title_Length_Payload.ForeColor = System.Drawing.Color.SlateGray;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
130 |
this.iLbl_Title_Length_Payload.Location = new System.Drawing.Point( 408, 1 );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
131 |
this.iLbl_Title_Length_Payload.Name = "iLbl_Title_Length_Payload";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
132 |
this.iLbl_Title_Length_Payload.Size = new System.Drawing.Size( 104, 22 );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
133 |
this.iLbl_Title_Length_Payload.TabIndex = 0;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
134 |
this.iLbl_Title_Length_Payload.Text = "P: [00056024]";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
135 |
this.iLbl_Title_Length_Payload.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
136 |
this.iLbl_Title_Length_Payload.TextChanged += new System.EventHandler( this.iLbl_TextChanged );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
137 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
138 |
// iLbl_Title_Length_Header
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
139 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
140 |
this.iLbl_Title_Length_Header.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right ) ) );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
141 |
this.iLbl_Title_Length_Header.BackColor = System.Drawing.Color.Gainsboro;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
142 |
this.iLbl_Title_Length_Header.Font = new System.Drawing.Font( "Tahoma", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ( (byte) ( 0 ) ) );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
143 |
this.iLbl_Title_Length_Header.ForeColor = System.Drawing.Color.SlateGray;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
144 |
this.iLbl_Title_Length_Header.Location = new System.Drawing.Point( 280, 1 );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
145 |
this.iLbl_Title_Length_Header.Name = "iLbl_Title_Length_Header";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
146 |
this.iLbl_Title_Length_Header.Size = new System.Drawing.Size( 120, 22 );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
147 |
this.iLbl_Title_Length_Header.TabIndex = 0;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
148 |
this.iLbl_Title_Length_Header.Text = "H: [2]";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
149 |
this.iLbl_Title_Length_Header.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
150 |
this.iLbl_Title_Length_Header.TextChanged += new System.EventHandler( this.iLbl_TextChanged );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
151 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
152 |
// iLbl_Footer
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
153 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
154 |
this.iLbl_Footer.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
155 |
| System.Windows.Forms.AnchorStyles.Right ) ) );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
156 |
this.iLbl_Footer.BackColor = System.Drawing.Color.Gainsboro;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
157 |
this.iLbl_Footer.Font = new System.Drawing.Font( "Tahoma", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ( (byte) ( 0 ) ) );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
158 |
this.iLbl_Footer.ForeColor = System.Drawing.Color.SlateGray;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
159 |
this.iLbl_Footer.Location = new System.Drawing.Point( 1, 119 );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
160 |
this.iLbl_Footer.Name = "iLbl_Footer";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
161 |
this.iLbl_Footer.Size = new System.Drawing.Size( 518, 24 );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
162 |
this.iLbl_Footer.TabIndex = 2;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
163 |
this.iLbl_Footer.Text = " Footer";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
164 |
this.iLbl_Footer.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
165 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
166 |
// iTimer
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
167 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
168 |
this.iTimer.Interval = 650;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
169 |
this.iTimer.Tick += new System.EventHandler( this.iTimer_Tick );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
170 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
171 |
// iLbl_Footer_Percentage_OfTotal
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
172 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
173 |
this.iLbl_Footer_Percentage_OfTotal.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
174 |
| System.Windows.Forms.AnchorStyles.Right ) ) );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
175 |
this.iLbl_Footer_Percentage_OfTotal.BackColor = System.Drawing.Color.Gainsboro;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
176 |
this.iLbl_Footer_Percentage_OfTotal.Font = new System.Drawing.Font( "Tahoma", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ( (byte) ( 0 ) ) );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
177 |
this.iLbl_Footer_Percentage_OfTotal.ForeColor = System.Drawing.Color.SlateGray;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
178 |
this.iLbl_Footer_Percentage_OfTotal.Location = new System.Drawing.Point( 416, 120 );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
179 |
this.iLbl_Footer_Percentage_OfTotal.Name = "iLbl_Footer_Percentage_OfTotal";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
180 |
this.iLbl_Footer_Percentage_OfTotal.Size = new System.Drawing.Size( 96, 22 );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
181 |
this.iLbl_Footer_Percentage_OfTotal.TabIndex = 3;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
182 |
this.iLbl_Footer_Percentage_OfTotal.Text = "T: [048.04%]";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
183 |
this.iLbl_Footer_Percentage_OfTotal.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
184 |
this.iLbl_Footer_Percentage_OfTotal.TextChanged += new System.EventHandler( this.iLbl_TextChanged );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
185 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
186 |
// iLbl_Footer_Percentage_OfType
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
187 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
188 |
this.iLbl_Footer_Percentage_OfType.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
189 |
| System.Windows.Forms.AnchorStyles.Right ) ) );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
190 |
this.iLbl_Footer_Percentage_OfType.BackColor = System.Drawing.Color.Gainsboro;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
191 |
this.iLbl_Footer_Percentage_OfType.Font = new System.Drawing.Font( "Tahoma", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ( (byte) ( 0 ) ) );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
192 |
this.iLbl_Footer_Percentage_OfType.ForeColor = System.Drawing.Color.SlateGray;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
193 |
this.iLbl_Footer_Percentage_OfType.Location = new System.Drawing.Point( 248, 120 );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
194 |
this.iLbl_Footer_Percentage_OfType.Name = "iLbl_Footer_Percentage_OfType";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
195 |
this.iLbl_Footer_Percentage_OfType.Size = new System.Drawing.Size( 96, 22 );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
196 |
this.iLbl_Footer_Percentage_OfType.TabIndex = 3;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
197 |
this.iLbl_Footer_Percentage_OfType.Text = "F: [089.49%]";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
198 |
this.iLbl_Footer_Percentage_OfType.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
199 |
this.iLbl_Footer_Percentage_OfType.TextChanged += new System.EventHandler( this.iLbl_TextChanged );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
200 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
201 |
// PopupBase
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
202 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
203 |
this.AutoScaleBaseSize = new System.Drawing.Size( 5, 14 );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
204 |
this.AutoScroll = true;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
205 |
this.BackColor = System.Drawing.SystemColors.Control;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
206 |
this.CausesValidation = false;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
207 |
this.ClientSize = new System.Drawing.Size( 520, 144 );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
208 |
this.ControlBox = false;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
209 |
this.Controls.Add( this.iLbl_Footer_Percentage_OfType );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
210 |
this.Controls.Add( this.iLbl_Footer_Percentage_OfTotal );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
211 |
this.Controls.Add( this.iLbl_Footer );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
212 |
this.Controls.Add( this.iLbl_Title_Length_Header );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
213 |
this.Controls.Add( this.iLbl_Title_Length_Payload );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
214 |
this.Controls.Add( this.iLbl_Title );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
215 |
this.Enabled = false;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
216 |
this.Font = new System.Drawing.Font( "Tahoma", 8.25F );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
217 |
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
218 |
this.MaximizeBox = false;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
219 |
this.MinimizeBox = false;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
220 |
this.Name = "PopupBase";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
221 |
this.Opacity = 0.85;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
222 |
this.ShowInTaskbar = false;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
223 |
this.TopMost = true;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
224 |
this.Layout += new System.Windows.Forms.LayoutEventHandler( this.PopupBase_Layout );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
225 |
this.KeyDown += new System.Windows.Forms.KeyEventHandler( this.PopupBase_KeyDown );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
226 |
this.ResumeLayout( false );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
227 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
228 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
229 |
#endregion
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
230 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
231 |
#region Internal constants
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
232 |
#endregion
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
233 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
234 |
#region API
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
235 |
public void PopupShowAsync( Point aLocation, HeapCell aCell, RawItem aItem, HeapStatistics aStats, Size aOffset, System.Windows.Forms.KeyEventHandler aKeyHandler )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
236 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
237 |
//System.Diagnostics.Debug.WriteLine( "PopupBase - Timer Started" );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
238 |
iKeyHandler = aKeyHandler;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
239 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
240 |
HeapCellArrayWithStatistics array = new HeapCellArrayWithStatistics();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
241 |
array.Add( aCell );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
242 |
PrepareContent( array, aStats, aItem );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
243 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
244 |
iHoverPos = aLocation;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
245 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
246 |
iShowPos = aLocation;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
247 |
iShowPos.Offset( aOffset.Width, aOffset.Height );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
248 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
249 |
// If we are using an async timer delay then we must start the timer and
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
250 |
// when it expires, the popup will become visible. Otherwise, we show
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
251 |
// the popup immediately.
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
252 |
if ( VisibilityDelay > 0 )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
253 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
254 |
iTimer.Stop();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
255 |
iTimer.Enabled = true;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
256 |
iTimer.Start();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
257 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
258 |
else
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
259 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
260 |
PopupShow();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
261 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
262 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
263 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
264 |
public void PopupShowAsync( Point aLocation, HeapCellArrayWithStatistics aCells, HeapStatistics aStats, Size aOffset, System.Windows.Forms.KeyEventHandler aKeyHandler )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
265 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
266 |
//System.Diagnostics.Debug.WriteLine( "PopupBase - Timer Started" );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
267 |
iKeyHandler = aKeyHandler;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
268 |
PrepareContent( aCells, aStats );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
269 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
270 |
iHoverPos = aLocation;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
271 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
272 |
iShowPos = aLocation;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
273 |
iShowPos.Offset( aOffset.Width, aOffset.Height );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
274 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
275 |
// If we are using an async timer delay then we must start the timer and
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
276 |
// when it expires, the popup will become visible. Otherwise, we show
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
277 |
// the popup immediately.
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
278 |
if ( VisibilityDelay > 0 )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
279 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
280 |
iTimer.Stop();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
281 |
iTimer.Enabled = true;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
282 |
iTimer.Start();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
283 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
284 |
else
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
285 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
286 |
PopupShow();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
287 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
288 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
289 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
290 |
public void PopupRelocate( Point aLocation, HeapCellArrayWithStatistics aCells, HeapStatistics aStats, Size aOffset )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
291 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
292 |
PrepareContent( aCells, aStats );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
293 |
Invalidate();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
294 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
295 |
iShowPos = aLocation;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
296 |
iShowPos.Offset( aOffset.Width, aOffset.Height );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
297 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
298 |
// Get the screen size
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
299 |
Rectangle rect = Screen.GetWorkingArea( this );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
300 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
301 |
// Make sure that the popup is displayed within the screen bounds.
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
302 |
Point pos = iShowPos;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
303 |
if ( iShowPos.X + this.Width > rect.Right )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
304 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
305 |
pos.X = rect.Width - this.Width;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
306 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
307 |
if ( iShowPos.Y + this.Height > rect.Bottom )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
308 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
309 |
pos.Y = rect.Bottom - this.Height;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
310 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
311 |
Location = pos;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
312 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
313 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
314 |
public void PopupHide()
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
315 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
316 |
//System.Diagnostics.Debug.WriteLine( "PopupBase - Timer Cancelled" );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
317 |
iTimer.Stop();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
318 |
iTimer.Enabled = false;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
319 |
iKeyHandler = null;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
320 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
321 |
if ( Visible )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
322 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
323 |
//System.Diagnostics.Debug.WriteLine( "PopupBase - POPUP HIDDEN!" );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
324 |
Hide();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
325 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
326 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
327 |
#endregion
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
328 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
329 |
#region Framework API
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
330 |
public virtual void PrepareContent( HeapCellArrayWithStatistics aCells, HeapStatistics aStats )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
331 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
332 |
// Set title and border colour
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
333 |
HeapCell firstCell = aCells[ 0 ];
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
334 |
ColourTitle = HeapCtrlLib.Renderers.Utilities.HeapCellRendererColour.ColourByCellType( firstCell );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
335 |
ColourBorder = ColourUtils.Darken( ColourTitle );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
336 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
337 |
// Get stats
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
338 |
long lengthPayload = aCells.Statistics.SizeTotalPayload;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
339 |
long lengthHeader = aCells.Statistics.SizeTotalHeader;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
340 |
float lengthsAsHeapPercentage = aStats.CellLengthAsHeapPercentage( lengthHeader + lengthPayload );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
341 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
342 |
// Header length
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
343 |
iLbl_Title_Length_Header.Text = "H: [" + lengthHeader.ToString("d6") + "]";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
344 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
345 |
// Payload length
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
346 |
iLbl_Title_Length_Payload.Text = "P: [" + lengthPayload.ToString("d8") + "]";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
347 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
348 |
// Set cell allocation number (for allocated cells) or then
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
349 |
// the cell index for free cells.
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
350 |
string heapSpecificPrefix = "H: ";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
351 |
if ( aCells.Count == 1 )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
352 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
353 |
float lengthsAsTypePercentage = aStats.CellLengthAsTypePercentage( firstCell );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
354 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
355 |
string typeSpecificPrefix = "A: ";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
356 |
if ( firstCell.Type == HeapCell.TType.EFree )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
357 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
358 |
typeSpecificPrefix = "F: ";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
359 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
360 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
361 |
if ( HeapCell.IsDebugAllocator )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
362 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
363 |
switch ( firstCell.Type )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
364 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
365 |
case HeapCell.TType.EAllocated:
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
366 |
iLbl_Footer.Text = "Alloc #: [" + firstCell.AllocationNumber.ToString( "d6" ) + " / " + aStats.StatsAllocated.CellAllocationNumberLargest.AllocationNumber.ToString( "d6" ) + "]";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
367 |
break;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
368 |
case HeapCell.TType.EFree:
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
369 |
iLbl_Footer.Text = "Free cell #: [" + firstCell.AllocationNumber.ToString( "d4" ) + " / " + aStats.StatsFree.TypeCount.ToString( "d4" ) + "]";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
370 |
break;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
371 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
372 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
373 |
else
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
374 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
375 |
iLbl_Footer.Text = "[ " + firstCell.Address.ToString( "x8" ) + " ]";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
376 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
377 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
378 |
iLbl_Footer_Percentage_OfType.Text = typeSpecificPrefix + "[" + lengthsAsTypePercentage.ToString( "#00.00" ) + "%]";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
379 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
380 |
else
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
381 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
382 |
heapSpecificPrefix = "Of Heap: ";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
383 |
iLbl_Footer.Text = string.Empty;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
384 |
iLbl_Footer_Percentage_OfType.Visible = false;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
385 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
386 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
387 |
iLbl_Footer_Percentage_OfTotal.Text = heapSpecificPrefix + "[" + lengthsAsHeapPercentage.ToString( "#00.00" ) + "%]";
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
388 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
389 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
390 |
public virtual void PrepareContent( HeapCellArrayWithStatistics aCells, HeapStatistics aStats, RawItem aRawItem )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
391 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
392 |
PrepareContent( aCells, aStats );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
393 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
394 |
#endregion
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
395 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
396 |
#region Properties
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
397 |
public bool ColourFromHoverCoordinate
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
398 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
399 |
get { return iColourFromHoverCoordinate; }
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
400 |
set { iColourFromHoverCoordinate = value; }
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
401 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
402 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
403 |
public int VisibilityDelay
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
404 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
405 |
get { return iVisibilityDelay; }
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
406 |
set
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
407 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
408 |
iVisibilityDelay = value;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
409 |
if ( iVisibilityDelay > 0 )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
410 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
411 |
iTimer.Interval = iVisibilityDelay;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
412 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
413 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
414 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
415 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
416 |
public Color ColourBackground
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
417 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
418 |
get { return iColourBackground; }
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
419 |
set
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
420 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
421 |
iColourBackground = value;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
422 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
423 |
if ( ColourChangeBackground != null )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
424 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
425 |
ColourChangeBackground( value );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
426 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
427 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
428 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
429 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
430 |
public Color ColourTitle
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
431 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
432 |
get { return iLbl_Title.BackColor; }
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
433 |
set
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
434 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
435 |
iLbl_Title.BackColor = value;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
436 |
iLbl_Title_Length_Header.BackColor = value;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
437 |
iLbl_Title_Length_Payload.BackColor = value;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
438 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
439 |
// Make the footer slightly lighter
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
440 |
iLbl_Footer.BackColor = ColourUtils.Lighten( value );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
441 |
iLbl_Footer_Percentage_OfTotal.BackColor = iLbl_Footer.BackColor;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
442 |
iLbl_Footer_Percentage_OfType.BackColor = iLbl_Footer.BackColor;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
443 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
444 |
if ( ColourChangeTitle != null )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
445 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
446 |
ColourChangeTitle( value );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
447 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
448 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
449 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
450 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
451 |
public Color ColourBorder
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
452 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
453 |
get { return iColourBorder; }
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
454 |
set { iColourBorder = value; }
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
455 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
456 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
457 |
public string Title
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
458 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
459 |
get { return iLbl_Title.Text; }
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
460 |
set { iLbl_Title.Text = value; }
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
461 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
462 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
463 |
public Rectangle ClientRect
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
464 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
465 |
get
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
466 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
467 |
Size paddingSize = new Size( 2, 2 );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
468 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
469 |
// Calculate bottom right corner position
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
470 |
Point bottomRightPos = new Point();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
471 |
bottomRightPos.X = ( Width - 1 ) - paddingSize.Width;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
472 |
bottomRightPos.Y = ( Height - 1 - iLbl_Footer.Height - 1 ) - paddingSize.Height;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
473 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
474 |
// Calculate top left
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
475 |
Point topLeft = new Point();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
476 |
topLeft.X = 1 + paddingSize.Width;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
477 |
topLeft.Y = 1 + iLbl_Title.Height + 1 + paddingSize.Height;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
478 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
479 |
// Set rect
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
480 |
Rectangle ret = new Rectangle();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
481 |
ret.Location = topLeft;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
482 |
ret.Size = new Size( bottomRightPos.X - topLeft.X, bottomRightPos.Y - topLeft.Y );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
483 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
484 |
return ret;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
485 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
486 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
487 |
#endregion
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
488 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
489 |
#region Drawing
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
490 |
protected override void OnPaint( PaintEventArgs aArgs )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
491 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
492 |
aArgs.Graphics.Clear( ColourBackground );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
493 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
494 |
using( Pen borderPen = new Pen( ColourBorder ) )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
495 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
496 |
// Border
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
497 |
aArgs.Graphics.DrawRectangle( borderPen, 0, 0, Width-1, Height-1 );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
498 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
499 |
int yPos;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
500 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
501 |
// Draw a line underneath the title label
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
502 |
yPos = iLbl_Title.Top + iLbl_Title.Height;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
503 |
aArgs.Graphics.DrawLine( borderPen, 0, yPos, Width, yPos );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
504 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
505 |
// Draw a line above the footer label
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
506 |
yPos = iLbl_Footer.Top - 1;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
507 |
aArgs.Graphics.DrawLine( borderPen, 0, yPos, Width, yPos );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
508 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
509 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
510 |
base.OnPaint( aArgs );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
511 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
512 |
#endregion
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
513 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
514 |
#region Events
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
515 |
private void iTimer_Tick( object sender, System.EventArgs e )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
516 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
517 |
iTimer.Stop();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
518 |
iTimer.Enabled = false;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
519 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
520 |
PopupShow();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
521 |
//System.Diagnostics.Debug.WriteLine( "Timer TICK: [ " + Location.X + ", " + Location.Y + " ] -> Popup Shown" );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
522 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
523 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
524 |
private void PopupBase_KeyDown(object sender, KeyEventArgs e)
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
525 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
526 |
if ( iKeyHandler != null )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
527 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
528 |
iKeyHandler( this, e );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
529 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
530 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
531 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
532 |
private void PopupBase_Layout(object sender, System.Windows.Forms.LayoutEventArgs e)
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
533 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
534 |
iLbl_Title_Length_Payload.Location = new Point( Width - iLbl_Title_Length_Payload.Width - 1, 1 );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
535 |
iLbl_Title_Length_Header.Location = new Point( iLbl_Title_Length_Payload.Location.X - iLbl_Title_Length_Header.Width - 10, 1 );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
536 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
537 |
iLbl_Title.Location = new Point( 1, 1 );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
538 |
iLbl_Title.Width = Width - 2;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
539 |
iLbl_Title.SendToBack();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
540 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
541 |
iLbl_Footer.Location = new Point( 1, Height - iLbl_Footer.Height - 1 );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
542 |
iLbl_Footer.Width = Width - 2;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
543 |
//
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
544 |
iLbl_Footer_Percentage_OfTotal.Location = new Point( Width - iLbl_Footer_Percentage_OfTotal.Width - 1, iLbl_Footer.Location.Y );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
545 |
iLbl_Footer_Percentage_OfType.Location = new Point( iLbl_Footer_Percentage_OfTotal.Location.X - iLbl_Footer_Percentage_OfType.Width - 10, iLbl_Footer.Location.Y );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
546 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
547 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
548 |
private void iLbl_TextChanged( object sender, System.EventArgs e )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
549 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
550 |
Label lbl = (Label) sender;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
551 |
lbl.Width = lbl.PreferredWidth;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
552 |
//System.Diagnostics.Debug.WriteLine( "Label [" + lbl.Text + "], width now: " + lbl.Width + ", preferredWid: " + lbl.PreferredWidth );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
553 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
554 |
#endregion
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
555 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
556 |
#region Internal methods
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
557 |
private void PopupShow()
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
558 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
559 |
//System.Diagnostics.Debug.WriteLine( "PopupBase - POPUP SHOW NOW - Visible: " + Visible + ", iShowPos[ " + iShowPos.X + ", " + iShowPos.Y + " ]" );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
560 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
561 |
if ( !Visible )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
562 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
563 |
// Should we colourise the form header & footer
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
564 |
// based upon the mouse co-ordinates at the time of
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
565 |
// the asynch display?
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
566 |
if ( ColourFromHoverCoordinate )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
567 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
568 |
using( Bitmap bmp = new Bitmap( 1, 1 ) )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
569 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
570 |
using( Graphics gfx = Graphics.FromImage( bmp ) )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
571 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
572 |
Color c = SymbianUtils.Graphics.ScreenUtils.ColorAtPixel( iHoverPos );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
573 |
ColourTitle = c;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
574 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
575 |
// Make the border slightly darker
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
576 |
ColourBorder = ColourUtils.Darken( ColourTitle );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
577 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
578 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
579 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
580 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
581 |
// Get the screen size
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
582 |
Rectangle rect = Screen.GetWorkingArea( this );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
583 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
584 |
// Make sure that the popup is displayed within the screen bounds.
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
585 |
Point pos = iShowPos;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
586 |
if ( iShowPos.X + this.Width > rect.Right )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
587 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
588 |
pos.X = rect.Width - this.Width;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
589 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
590 |
if ( iShowPos.Y + this.Height > rect.Bottom )
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
591 |
{
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
592 |
pos.Y = rect.Bottom - this.Height;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
593 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
594 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
595 |
// Now make the form visible and topmost.
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
596 |
ShowWindow( this.Handle, SW_SHOWNOACTIVATE );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
597 |
SetWindowPos( this.Handle, HWND_TOP_MOST, pos.X, pos.Y, 0, 0, SWP_NOMOVE | SWP_NOSIZE );
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
598 |
Location = pos;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
599 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
600 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
601 |
#endregion
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
602 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
603 |
#region Unmanaged code
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
604 |
private static IntPtr HWND_TOP_MOST = (IntPtr)(-1);
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
605 |
private static IntPtr HWND_NOTOPMOST = (IntPtr)(-2);
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
606 |
private const uint SWP_NOMOVE = 0x2;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
607 |
private const uint SWP_NOSIZE = 0x1;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
608 |
private const int SW_SHOWNOACTIVATE = 4;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
609 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
610 |
[DllImport("user32.dll")]
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
611 |
public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int cx, int cy, uint uFlags);
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
612 |
[DllImport("user32.dll")]
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
613 |
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
614 |
#endregion
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
615 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
616 |
#region Data members
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
617 |
private int iVisibilityDelay = 700;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
618 |
private bool iColourFromHoverCoordinate = false;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
619 |
private Point iHoverPos;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
620 |
private Point iShowPos;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
621 |
private Color iColourBackground = Color.White;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
622 |
private Color iColourBorder = Color.Black;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
623 |
private System.Windows.Forms.KeyEventHandler iKeyHandler = null;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
624 |
#endregion
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
625 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
626 |
}
|