Symbian3/PDK/Source/GUID-A3BCC33F-D11B-4F98-BCC3-9A06381A02E7.dita
changeset 5 f345bda72bc4
parent 3 46218c8b8afa
child 14 578be2adaf3e
equal deleted inserted replaced
4:4816d766a08a 5:f345bda72bc4
    12 <concept id="GUID-A3BCC33F-D11B-4F98-BCC3-9A06381A02E7" xml:lang="en"><title>Constructing
    12 <concept id="GUID-A3BCC33F-D11B-4F98-BCC3-9A06381A02E7" xml:lang="en"><title>Constructing
    13 the view controller in the view architecture</title><prolog><metadata><keywords/></metadata></prolog><conbody>
    13 the view controller in the view architecture</title><prolog><metadata><keywords/></metadata></prolog><conbody>
    14 <p>Each view controller acts like a small UI controller.</p>
    14 <p>Each view controller acts like a small UI controller.</p>
    15 <p>The call on the first phase constructor of the view controller occurs
    15 <p>The call on the first phase constructor of the view controller occurs
    16 in the<xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita"> UI controller</xref>.</p>
    16 in the<xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita"> UI controller</xref>.</p>
    17 <p>The methods you need to implement in your <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknView.html" format="application/java-archive"><parmname>CAknView</parmname></xref>-derived
    17 <p>The methods you need to implement in your <xref href="GUID-11967EBB-7439-3775-B287-7560ECA0AF1F.dita"><apiname>CAknView</apiname></xref>-derived
    18 class are as follows:</p>
    18 class are as follows:</p>
    19 <ul>
    19 <ul>
    20 <li><p>C++ default constructor, which cannot contain any code that
    20 <li><p>C++ default constructor, which cannot contain any code that
    21 might leave. A common implementation is:</p>
    21 might leave. A common implementation is:</p>
    22 <itemgroup>
    22 <itemgroup>
    43     CleanupStack::PushL( self );
    43     CleanupStack::PushL( self );
    44     self-&gt;ConstructL( aRect );
    44     self-&gt;ConstructL( aRect );
    45     return self;
    45     return self;
    46     }
    46     }
    47 </codeblock>
    47 </codeblock>
    48 <p>The declarations for <parmname>CMyViewAppView::NewL</parmname> and <parmname>CMyViewAppView::NewLC</parmname> in
    48 <p>The declarations for <parmname>CMyViewAppView::NewL()</parmname> and <parmname>CMyViewAppView::NewLC()</parmname> in
    49 the class header file needs to be public to support the construction method
    49 the class header file needs to be public to support the construction method
    50 required. </p>
    50 required. </p>
    51 <p>In this approach, <parmname>CMyViewAppView::NewL</parmname> is called
    51 <p>In this approach, <parmname>CMyViewAppView::NewL()</parmname> is called
    52 from the UI controller. It creates a view object by calling <parmname>CMyViewAppView::NewLC</parmname>. <parmname>CMyViewAppView::NewLC</parmname> calls new (<parmname>ELeave</parmname>) on the C++ default constructor <parmname>CMyViewAppView</parmname> to
    52 from the UI controller. It creates a view object by calling <parmname>CMyViewAppView::NewLC()</parmname>. <parmname>CMyViewAppView::NewLC()</parmname> calls new (<parmname>ELeave</parmname>) on the C++ default constructor <parmname>CMyViewAppView</parmname> to
    53 create the object (and leave if it cannot), <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/CCleanupClass.html#%3a%3aCCleanup%3a%3aPushL%28CBase%20%2a%29" format="application/java-archive">pushes</xref> a pointer to the clean-up stack in case the second phase construction method
    53 create the object (and leave if it cannot), <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/CCleanupClass.html#%3a%3aCCleanup%3a%3aPushL%28CBase%20%2a%29" format="application/java-archive">pushes</xref> a pointer to the clean-up stack in case the second phase construction method
    54 leaves, and then calls the second phase construction method of the object.
    54 leaves, and then calls the second phase construction method of the object.
    55 When it returns to <parmname>CMyViewAppView::NewL</parmname>, the pointer
    55 When it returns to <parmname>CMyViewAppView::NewL()</parmname>, the pointer
    56 pushed to the cleanup stack is <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/CCleanupClass.html#%3a%3aCCleanup%3a%3aPop%28%29" format="application/java-archive">removed</xref>.</p>
    56 pushed to the cleanup stack is <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Kernel_Architecture_2/CCleanupClass.html#%3a%3aCCleanup%3a%3aPop%28%29" format="application/java-archive">removed</xref>.</p>
    57 </itemgroup>
    57 </itemgroup>
    58 </li>
    58 </li>
    59 <li><p>Symbian 2nd phase constructor with code that might leave.
    59 <li><p>Symbian 2nd phase constructor with code that might leave.
    60 A common implementation is:</p>
    60 A common implementation is:</p>
    63     {
    63     {
    64     // construct r_name32 resources
    64     // construct r_name32 resources
    65     BaseConstructL(r_name32 );
    65     BaseConstructL(r_name32 );
    66     }
    66     }
    67 </codeblock>
    67 </codeblock>
    68 <p><parmname>CMyViewAppView::ConstructL</parmname> is a public class providing
    68 <p><parmname>CMyViewAppView::ConstructL()</parmname> is a public class
    69 the second phase construction that accepts the rectangle the view is drawn
    69 providing the second phase construction that accepts the rectangle the view
    70 to.</p>
    70 is drawn to.</p>
    71 <p><xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknView.html#04bb841d875636d632ada39cb12514c4" format="application/java-archive"><parmname>CAknView::BaseConstructL</parmname></xref> initializes this view with standard values. It accepts the
    71 <p><xref href="GUID-11967EBB-7439-3775-B287-7560ECA0AF1F.dita#GUID-11967EBB-7439-3775-B287-7560ECA0AF1F/GUID-B9CF9FAC-AA26-3787-83E5-71030E221347"><apiname>CAknView::BaseConstructL()</apiname></xref> initializes this view
    72 symbolic ID name of a resource from the resource file.</p>
    72 with standard values. It accepts the symbolic ID name of a resource from the
       
    73 resource file.</p>
    73 </itemgroup>
    74 </itemgroup>
    74 </li>
    75 </li>
    75 <li><p>a method for returning the UID for the view. A common implementation
    76 <li><p>a method for returning the UID for the view. A common implementation
    76 is:</p>
    77 is:</p>
    77 <itemgroup>
    78 <itemgroup>
    80     {
    81     {
    81     return KViewId;
    82     return KViewId;
    82     }
    83     }
    83 
    84 
    84 </codeblock>
    85 </codeblock>
    85 <p><parmname>CMyViewAppView::Id()</parmname> is the override of <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknView.html#71e3a172cd418a5d73071f598fe8d26d" format="application/java-archive"><parmname>CAknView::ID</parmname></xref> to return the UID of the view</p>
    86 <p><parmname>CMyViewAppView::Id()</parmname> is the override of <xref href="GUID-11967EBB-7439-3775-B287-7560ECA0AF1F.dita#GUID-11967EBB-7439-3775-B287-7560ECA0AF1F/GUID-82E37EFD-FCCF-3D3E-AA36-7E20A688C980"><apiname>CAknView::ID()</apiname></xref> to
       
    87 return the UID of the view</p>
    86 <p><parmname>KViewId</parmname> is defined somewhere in a header file,
    88 <p><parmname>KViewId</parmname> is defined somewhere in a header file,
    87 and is unique to this application</p>
    89 and is unique to this application</p>
    88 </itemgroup>
    90 </itemgroup>
    89 </li>
    91 </li>
    90 </ul>
    92 </ul>
    91 <section id="GUID-952D9762-EA63-489D-9698-FC504BD73001"><title>Scalability</title>
    93 <section id="GUID-952D9762-EA63-489D-9698-FC504BD73001"><title>Scalability</title>
    92 <p>If you wish to support <xref href="GUID-B02C762B-C452-4184-ABEA-4753E6CD47D2.dita">scalability</xref> in
    94 <p>If you wish to support <xref href="GUID-B02C762B-C452-4184-ABEA-4753E6CD47D2.dita">scalability</xref> in
    93 your application, then you need to implement <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/UIKON/CEikAppUiClass.html#%3a%3aCEikAppUi%3a%3aHandleResourceChangeL%28%29" format="application/java-archive"><parmname>CEikAppUi::HandleResourceChangeL</parmname></xref> in the <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita"> UI
    95 your application, then you need to implement <xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita#GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E/GUID-7B8E4FA3-29F4-39DF-BBB3-71E7AB2433C4"><apiname>CEikAppUi::HandleResourceChangeL()</apiname></xref> in
    94 controller</xref>, and then a <parmname>HandleClientRectChange</parmname> method
    96 the <xref href="GUID-FD2CDEB8-0784-4BE5-A775-170F57D71BBC.dita"> UI controller</xref>,
    95 in the view controller.</p>
    97 and then a <parmname>HandleClientRectChange</parmname> method in the view
       
    98 controller.</p>
    96 <p>A common implementation is as follows:</p>
    99 <p>A common implementation is as follows:</p>
    97 <codeblock id="GUID-F5BC393D-EA47-45B2-8892-B71CE934F5B6" xml:space="preserve">
   100 <codeblock id="GUID-F5BC393D-EA47-45B2-8892-B71CE934F5B6" xml:space="preserve">
    98 void CMyViewAppView::HandleClientRectChange()
   101 void CMyViewAppView::HandleClientRectChange()
    99     {
   102     {
   100     if ( iContainer )
   103     if ( iContainer )
   103         }
   106         }
   104     }
   107     }
   105 
   108 
   106 </codeblock>
   109 </codeblock>
   107 <p>, where</p>
   110 <p>, where</p>
   108 <p><parmname>CMyViewAppView::HandleClientRectChange</parmname> calls <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Control_Environment/CCoeControlClass.html#%3a%3aCCoeControl%3a%3aSetRect%28const%20TRect%20%26amp%3b%29" format="application/java-archive"><parmname>CCoeControl::SetRect(aRect)</parmname></xref> to set the
   111 <p><parmname>CMyViewAppView::HandleClientRectChange()</parmname> calls <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita#GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160/GUID-AC806401-86C7-308A-9D18-39085CB8D877"><apiname>CCoeControl::SetRect(aRect)</apiname></xref> to
   109 window size according to the requirements of the mobile device.</p>
   112 set the window size according to the requirements of the mobile device.</p>
   110 </section>
   113 </section>
   111 <section id="GUID-DC760F92-C154-4DAA-AAD1-A0C02766C6B0"><title>Activating and
   114 <section id="GUID-DC760F92-C154-4DAA-AAD1-A0C02766C6B0"><title>Activating and
   112 deactivating views</title>
   115 deactivating views</title>
   113 <p>In order for a view to be displayed, it needs to be activated by <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknView.html#486d490d911ce5e9495e0ee19b0442db" format="application/java-archive"><parmname>CAknView::DoActivateL</parmname></xref>. The override of this method in the view controller must create
   116 <p>In order for a view to be displayed, it needs to be activated by <xref href="GUID-11967EBB-7439-3775-B287-7560ECA0AF1F.dita#GUID-11967EBB-7439-3775-B287-7560ECA0AF1F/GUID-F6105D54-1C2A-36C0-8522-50DAB45FEF67"><apiname>CAknView::DoActivateL()</apiname></xref>.
   114 a <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Control_Environment/CCoeControlClass.html" format="application/java-archive"><parmname>CCoeControl</parmname></xref>-derived view to display visual
   117 The override of this method in the view controller must create a <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>-derived
   115 content to mobile device users. The <parmname>DoActivateL()</parmname> call
   118 view to display visual content to mobile device users. The <parmname>DoActivateL()</parmname> call
   116 must be prepared to handle the case where it is called while the view is already
   119 must be prepared to handle the case where it is called while the view is already
   117 active.</p>
   120 active.</p>
   118 <p>If the view is not published for external use, or does not handle message
   121 <p>If the view is not published for external use, or does not handle message
   119 parameters, a simple check and return if the view is already active is sufficient.</p>
   122 parameters, a simple check and return if the view is already active is sufficient.</p>
   120 <p>A common implementation is as follows:</p>
   123 <p>A common implementation is as follows:</p>
   134     // Message handling would take place here.
   137     // Message handling would take place here.
   135    }
   138    }
   136 </codeblock>
   139 </codeblock>
   137 <p>, where</p>
   140 <p>, where</p>
   138 <ul>
   141 <ul>
   139 <li><p><parmname>CMyViewAppView::DoActivateL</parmname> is the override
   142 <li><p><parmname>CMyViewAppView::DoActivateL()</parmname> is the
   140 for <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknView.html#486d490d911ce5e9495e0ee19b0442db" format="application/java-archive"><parmname>CAknView::DoActivateL</parmname></xref> for the application.</p></li>
   143 override for <xref href="GUID-11967EBB-7439-3775-B287-7560ECA0AF1F.dita#GUID-11967EBB-7439-3775-B287-7560ECA0AF1F/GUID-F6105D54-1C2A-36C0-8522-50DAB45FEF67"><apiname>CAknView::DoActivateL()</apiname></xref> for the application.</p>
       
   144 </li>
   141 <li><p><parmname>if (!iContainer)</parmname> checks to see if the
   145 <li><p><parmname>if (!iContainer)</parmname> checks to see if the
   142 view already exists.</p></li>
   146 view already exists.</p></li>
   143 <li><p><parmname>iContainer = new (ELeave) CMyViewAppContainer;</parmname> calls
   147 <li><p><parmname>iContainer = new (ELeave) CMyViewAppContainer;</parmname> calls
   144 the first phase constructor of the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Control_Environment/CCoeControlClass.html" format="application/java-archive"><parmname>CCoeControl</parmname></xref>-derived
   148 the first phase constructor of the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>-derived
   145 class that provides the view.</p></li>
   149 class that provides the view.</p></li>
   146 <li><p><xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Control_Environment/CCoeControlClass.html#%3a%3aCCoeControl%3a%3aSetMopParent%28MObjectProvider%20%2a%29" format="application/java-archive"><parmname>iContainer-&gt;SetMopParent(this);</parmname></xref> sets the
   150 <li><p><xref href="GUID-1E95CF3C-A54A-3073-A7A9-6DC56A6B89E2.dita"><apiname>iContainer-&gt;SetMopParent(this);</apiname></xref> sets the
   147 context for the view being created. In this case, it assigns the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Control_Environment/CCoeControlClass.html" format="application/java-archive"><parmname>CCoeControl</parmname></xref>-derived view to the view controller.</p>
   151 context for the view being created. In this case, it assigns the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>-derived
   148 </li>
   152 view to the view controller.</p></li>
   149 <li><p><parmname>iContainer-&gt;ConstructL( ClientRect() )</parmname> calls
   153 <li><p><parmname>iContainer-&gt;ConstructL( ClientRect() )</parmname> calls
   150 the second phase constructor of the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Control_Environment/CCoeControlClass.html" format="application/java-archive"><parmname>CCoeControl</parmname></xref>-derived
   154 the second phase constructor of the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>-derived
   151 class that provides the view.</p></li>
   155 class that provides the view.</p></li>
   152 <li><p><xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Control_Environment/CCoeAppUiClass.html#%3a%3aCCoeAppUi%3a%3aAddToStackL%28CCoeControl%20%2a%2cTInt%2cTInt%29" format="application/java-archive"><parmname>AppUi()-&gt;AddToStackL( *this, iContainer );</parmname></xref> adds
   156 <li><p><xref href="GUID-18937B25-9AFE-36E2-BA5F-A6716DCD6F39.dita"><apiname>AppUi()-&gt;AddToStackL( *this, iContainer );</apiname></xref> adds
   153 the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Control_Environment/CCoeControlClass.html" format="application/java-archive"><parmname>CCoeControl</parmname></xref>-derived view to the control
   157 the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>-derived view to the control stack for <xref href="GUID-542550FA-F9F1-46D6-8182-6E7FAA013572.dita">key event handling.</xref></p>
   154 stack for <xref href="GUID-542550FA-F9F1-46D6-8182-6E7FAA013572.dita">key event
   158 </li>
   155 handling.</xref></p></li>
       
   156 </ul>
   159 </ul>
   157 <p>The view architecture supports an automatic recovery mechanism if <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknView.html#486d490d911ce5e9495e0ee19b0442db" format="application/java-archive"><parmname>CAknView::DoActivateL()</parmname></xref> leaves. The Symbian platform calls <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknView.html#f47363eacbe46c5827282407b354b535" format="application/java-archive"><parmname>CAknView::DoDeactivate()</parmname></xref> in
   160 <p>The view architecture supports an automatic recovery mechanism if <xref href="GUID-11967EBB-7439-3775-B287-7560ECA0AF1F.dita#GUID-11967EBB-7439-3775-B287-7560ECA0AF1F/GUID-F6105D54-1C2A-36C0-8522-50DAB45FEF67"><apiname>CAknView::DoActivateL()</apiname></xref> leaves.
       
   161 The Symbian platform calls <xref href="GUID-11967EBB-7439-3775-B287-7560ECA0AF1F.dita#GUID-11967EBB-7439-3775-B287-7560ECA0AF1F/GUID-7F1B73A0-098D-3FDB-AD2E-D4901700AF02"><apiname>CAknView::DoDeactivate()</apiname></xref> in
   158 the view that has left, reinstates the previous view of the application, and
   162 the view that has left, reinstates the previous view of the application, and
   159 returns to the view that was just displayed. If the application had no previous
   163 returns to the view that was just displayed. If the application had no previous
   160 view, it exits. If the application’s previous view was the same as the activating
   164 view, it exits. If the application’s previous view was the same as the activating
   161 view (that is, the view is reactivated with a new message), the application
   165 view (that is, the view is reactivated with a new message), the application
   162 attempts to recover to the default view.</p>
   166 attempts to recover to the default view.</p>
   164 in the <parmname>DoActivateL()</parmname> methods. The one situation where
   168 in the <parmname>DoActivateL()</parmname> methods. The one situation where
   165 you may consider something more complex is when the view can be reactivated
   169 you may consider something more complex is when the view can be reactivated
   166 (that is, activated with a new message while already active). In this case,
   170 (that is, activated with a new message while already active). In this case,
   167 the view may attempt a more complex strategy to preserve the existing state
   171 the view may attempt a more complex strategy to preserve the existing state
   168 if a leave happens during the attempt to handle the new message.</p>
   172 if a leave happens during the attempt to handle the new message.</p>
   169 <p>To destroy the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Control_Environment/CCoeControlClass.html" format="application/java-archive"><parmname>CCoeControl</parmname></xref>-derived
   173 <p>To destroy the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>-derived control in a view
   170 control in a view control, you must override <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknView.html#f47363eacbe46c5827282407b354b535" format="application/java-archive"><parmname>CAknView::DoDeactivate</parmname></xref>.
   174 control, you must override <xref href="GUID-11967EBB-7439-3775-B287-7560ECA0AF1F.dita#GUID-11967EBB-7439-3775-B287-7560ECA0AF1F/GUID-7F1B73A0-098D-3FDB-AD2E-D4901700AF02"><apiname>CAknView::DoDeactivate()</apiname></xref>. It
   171 It is called when the application exits, or another view has been activated
   175 is called when the application exits, or another view has been activated and
   172 and the previous active window needs to be shut down. This order makes view
   176 the previous active window needs to be shut down. This order makes view switching
   173 switching fast. In <parmname>DoDeactivate</parmname> the view is removed from
   177 fast. In <parmname>DoDeactivate</parmname> the view is removed from the stack
   174 the stack and therefore the view’s container and its controls are destroyed.
   178 and therefore the view’s container and its controls are destroyed. This function
   175 This function must not leave.</p>
   179 must not leave.</p>
   176 <p>A common implementation is as follows:</p>
   180 <p>A common implementation is as follows:</p>
   177 <codeblock id="GUID-01F7257D-47C2-4A42-9717-97D3913F3AB0" xml:space="preserve">
   181 <codeblock id="GUID-01F7257D-47C2-4A42-9717-97D3913F3AB0" xml:space="preserve">
   178 void CMyViewAppView::DoDeactivate()
   182 void CMyViewAppView::DoDeactivate()
   179     {
   183     {
   180     if ( iContainer )
   184     if ( iContainer )
   185     delete iContainer;
   189     delete iContainer;
   186     iContainer = NULL;
   190     iContainer = NULL;
   187     }</codeblock>
   191     }</codeblock>
   188 <p>, where</p>
   192 <p>, where</p>
   189 <ul>
   193 <ul>
   190 <li><p><parmname>CMyViewAppView::DoDeactivateL</parmname> is the
   194 <li><p><parmname>CMyViewAppView::DoDeactivateL()</parmname> is the
   191 override for <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknView.html#f47363eacbe46c5827282407b354b535" format="application/java-archive"><parmname>CAknView::DoDeactivateL</parmname></xref> for
   195 override for <xref href="GUID-11967EBB-7439-3775-B287-7560ECA0AF1F.dita#GUID-11967EBB-7439-3775-B287-7560ECA0AF1F/GUID-F6E07F12-FAB3-3CB8-AE1F-3F4E7023089A"><apiname>CAknView::DoDeactivateL()</apiname></xref> for the application.</p>
   192 the application.</p></li>
   196 </li>
   193 <li><p><parmname>if (!iContainer)</parmname> checks to see if the
   197 <li><p><parmname>if (!iContainer)</parmname> checks to see if the
   194 view already exists.</p></li>
   198 view already exists.</p></li>
   195 <li><p><xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Control_Environment/CCoeAppUiClass.html#%3a%3aCCoeAppUi%3a%3aRemoveFromViewStack%28const%20MCoeView%20%26amp%3b%2cCCoeControl%20%2a%29" format="application/java-archive"><parmname>AppUi()-&gt;RemoveFromViewStack( *this, iContainer );</parmname></xref> removes
   199 <li><p><xref href="GUID-67932EAC-2A97-393F-9719-894D5764B315.dita"><apiname>AppUi()-&gt;RemoveFromViewStack( *this, iContainer
   196 the <xref href="jar:GUID-35228542-8C95-4849-A73F-2B4F082F0C44.jar!/sdk/doc_source/reference/reference-cpp/Control_Environment/CCoeControlClass.html" format="application/java-archive"><parmname>CCoeControl</parmname></xref>-derived view from the control
   200 );</apiname></xref> removes the <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref>-derived view from
   197 stack.</p></li>
   201 the control stack.</p></li>
   198 <li><p><parmname>delete iContainer;</parmname> deletes the <parmname>CCoeControl</parmname>-derived
   202 <li><p><parmname>delete iContainer;</parmname> deletes the <parmname>CCoeControl</parmname>-derived
   199 view.</p></li>
   203 view.</p></li>
   200 </ul>
   204 </ul>
   201 </section>
   205 </section>
   202 </conbody></concept>
   206 </conbody></concept>