2003-09-04 Sebastien Pouliot <spouliot@videotron.ca>
[mono.git] / mcs / class / System.Web.Mobile / System.Web.UI.MobileControls / ControlPager.cs
1 /**
2  * Project   : Mono
3  * Namespace : System.Web.UI.MobileControls
4  * Class     : ControlPager
5  * Author    : Gaurav Vaish
6  *
7  * Copyright : 2003 with Gaurav Vaish, and with
8  *             Ximian Inc
9  */
10
11 using System.Web.Mobile;
12
13 namespace System.Web.UI.MobileControls
14 {
15         public class ControlPager
16         {
17                 private int pageCount = 0;
18                 private int maxPage   = -1;
19                 private int pageWt;
20                 private int remainingWt = 0;
21
22                 private Form form;
23
24                 // To ponder: will const be better?
25                 public static readonly int DefaultWeight = 100;
26                 public static readonly int UseDefaultWeight = -1;
27
28                 public ControlPager(Form form, int pageWeight)
29                 {
30                         this.form   = form;
31                         this.pageWt = pageWeight;
32                 }
33
34                 public int PageCount
35                 {
36                         get
37                         {
38                                 return pageCount;
39                         }
40                         set
41                         {
42                                 pageCount = value;
43                         }
44                 }
45
46                 public int MaximumPage
47                 {
48                         get
49                         {
50                                 return maxPage;
51                         }
52                         set
53                         {
54                                 maxPage = value;
55                         }
56                 }
57
58                 public int PageWeight
59                 {
60                         get
61                         {
62                                 return pageWt;
63                         }
64                         set
65                         {
66                                 pageWt = value;
67                         }
68                 }
69
70                 public int RemainingWeight
71                 {
72                         get
73                         {
74                                 return remainingWt;
75                         }
76                         set
77                         {
78                                 remainingWt = value;
79                         }
80                 }
81
82                 public ItemPager GetItemPager(MobileControl control, int itemCount,
83                                               int itemsPerPage, int itemWeight)
84                 {
85                         return new ItemPager(this, control, itemCount,
86                                              itemsPerPage, itemWeight);
87                 }
88
89                 public int GetPage(int weight)
90                 {
91                         if(weight > remainingWt)
92                         {
93                                 PageCount += 1;
94                                 RemainingWeight = PageWeight;
95                         }
96                         if(remainingWt > weight)
97                         {
98                                 remainingWt -= weight;
99                         } else
100                         {
101                                 remainingWt = 0;
102                         }
103                         return PageCount;
104                 }
105         }
106 }