2005-01-31 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mcs / class / System.Web.Mobile / System.Web.UI.MobileControls.Adapters / StyleStack.cs
1
2 //
3 // Permission is hereby granted, free of charge, to any person obtaining
4 // a copy of this software and associated documentation files (the
5 // "Software"), to deal in the Software without restriction, including
6 // without limitation the rights to use, copy, modify, merge, publish,
7 // distribute, sublicense, and/or sell copies of the Software, and to
8 // permit persons to whom the Software is furnished to do so, subject to
9 // the following conditions:
10 // 
11 // The above copyright notice and this permission notice shall be
12 // included in all copies or substantial portions of the Software.
13 // 
14 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 //
22 /**
23  * Project   : Mono
24  * Namespace : System.Web.UI.MobileControls.Adapters
25  * Class     : StyleStack
26  * Author    : Gaurav Vaish
27  *
28  * Copyright : 2003 with Gaurav Vaish, and with
29  *             Ximian Inc
30  */
31
32 using System;
33 using System.Collections;
34 using System.Web.Mobile;
35
36 namespace System.Web.UI.MobileControls.Adapters
37 {
38         class StyleStack
39         {
40                 private HtmlMobileTextWriter writer;
41                 private Stack stack;
42
43                 protected StyleStack(HtmlMobileTextWriter writer)
44                 {
45                         this.writer = writer;
46                         stack = new Stack();
47                 }
48                 
49                 public int Count
50                 {
51                         get
52                         {
53                                 return stack.Count;
54                         }
55                 }
56                 
57                 public WriterStyle Peek()
58                 {
59                         WriterStyle retVal = null;
60                         if(stack.Count > 0)
61                                 retVal = (WriterStyle)stack.Peek();
62                         return retVal;
63                 }
64                 
65                 public WriterStyle Pop()
66                 {
67                         WriterStyle retVal = null;
68                         if(stack.Count > 0)
69                                 retVal = (WriterStyle)stack.Pop();
70                         return retVal;
71                 }
72                 
73                 public void Push(WriterStyle style)
74                 {
75                         stack.Push(style);
76                         writer.ShouldEnsureStyle = true;
77                 }
78         }
79 }