2e2c8ff588247172c7ca89e4c401fedd3f90c5bb
[mono.git] / mcs / class / System.Web / System.Web.UI / ChangeLog
1 2003-01-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2
3         * Control.cs:
4         (AddedControl): take the children to the same state of the parent.
5         (InitRecursive): set the page of the children.
6
7         * Page.cs: removed one line (it's done a few lines above).
8
9         * UserControl.cs:
10         (OnInit): always call InitializeAsUserControl
11         (InitializeAsUserControl): sets the page for the control.
12
13 2003-01-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14
15         * Control.cs: fixed bug #36037.
16
17 2002-12-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18
19         * BaseParser.cs: a couple of path fixes to make it work
20         when the page is not in the root directory.
21
22 2002-12-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23
24         * Control.cs: fixed PreRenderRecursiveInternal. Thanks to kojoadams for
25         reporting the bug.
26
27 2002-12-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28
29         * BaseParser.cs: use MapPath and context to locate files.
30         * Control.cs: implemented MapPathSecure.
31         * TemplateControl.cs: use UrlUtils to generate the path.
32         * TemplateControlParser.cs: use the context and MapPath.
33         * UserControl.cs: implemented MapPath.
34         * UserControlParser.cs: added context parameter to constructor.
35
36 2002-12-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
37
38         * Control.cs: implemented MapPathSecure.
39         * Page.cs: fixed Server property.
40
41 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
42
43         * DataBinder.cs: try the indexer if the property is not found in
44         GetPropertyValue ().
45
46 2002-12-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
47
48         * Control.cs: added AutoEventWireup internal property.
49
50         * Page.cs: removed page events wire up from here.
51
52         * TemplateControl.cs: new method WireupAutomaticEvents to hook up page
53         and user controls events.
54
55         * TemplateControlParser.cs: process the options that are applicable
56         once we have the instance of the control.
57
58         * TemplateParser.cs: also stores the options.
59
60         * UserControl.cs: hook up events before initializing the control.
61
62
63 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
64
65         * Control.cs: new method to set bindingContainer value.
66         * TemplateControl.cs: added controls are not binding containers.
67
68 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
69
70         * Control.cs: implemented TemplateSourceDirectory.
71         * TemplateControl.cs: implemented LoadControl and LoadTemplate.
72
73 2002-11-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
74
75         * UserControl.cs: fixed SetAttribute.
76         * UserControlParser.cs: set the correct base type.
77
78 2002-11-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
79
80         * TemplateParser.cs: fixed BaseType.
81         * UserControlParser.cs: helper class to compile user controls.
82
83 2002-11-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
84
85         * LosFormatter.cs: added DateTime to special types.
86
87 2002-11-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
88
89         * LosFormatter.cs: added array serialization support. Disabled binary
90         serialization and add some debugging code.
91
92         * StateBag.cs: the length of the list of value can be less than the
93         length if the list of keys when remaining values are null.
94
95 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
96
97         * Page.cs: return something useful in GetPostBackClientEvent.
98
99 2002-11-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
100
101         * Page.cs: implemented FileDependecies and made it protected.
102
103 2002-10-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
104
105         * Control.cs: save control names instead of the controls
106         themselves to the ViewState.
107
108         * LosFormatter.cs: added support for serializing unknown
109         types. BinaryFormatter does not work so you better don't store anything
110         of unknown Type in ViewState.
111
112         * Page.cs: GetViewStateString works now using LosFormatter.
113         Complete "Control execution lifecycle" by unloading all the child
114         controls. Check for null in RaisePostBackEvents.
115         LoadPageViewStateFromPersistenceMedium uses LosFormatter too.
116
117 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
118
119         * DataBinder.cs: implemented Eval and GetIndexedPropertyValue methods.
120
121 2002-10-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
122
123         * LosFormatter.cs: Use WebEncoding.Encoding.
124
125         * Control.cs:
126         * Page.cs: fixed namespace.
127
128 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
129
130         * Page.cs: set the context in ProcessRequest. Added a few trace calls.
131         * Control.cs: added some trace information.
132
133 2002-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
134
135         * SimpleHandlerFactory.cs: new handler for .ashx files.
136
137 2002-09-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
138
139         * System.Web.UI/PageHandlerFactory.cs: new file.
140         * System.Web.UI/PageParser.cs:
141         * System.Web.UI/TemplateControlParser.cs: we are now able to compile
142         pages and use HttpApplication, HttpRuntime and SimpleWorkerRequest.
143
144 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
145
146         * Control.cs: implemented ObBubbleEvent.
147         * Page.cs: temporary workaround to make POST work with xsp server.
148
149 2002-09-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
150
151         * Page.cs: fixed InvokeEventMethod now that Type.GetMethod does not
152         return pvt methods.
153
154 2002-09-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
155
156         * SimpleWebHandlerParser.cs: New file.
157         * WebServiceParser.cs: New file.
158
159 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
160
161         * LosFormatter.cs: almost fully implemented.
162
163 2002-08-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
164
165         * CompiledTemplateBuilder.cs: InstantiateIn is virtual.
166         * EmptyControlCollection.cs: throw correct exception.
167         * LosFormatter.cs: stubbed out.
168         * OutputCacheLocation.cs: little fix.
169
170 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
171
172         * System.Web.UI/ApplicationFileParser.cs:
173         * System.Web.UI/BaseParser.cs:
174         * System.Web.UI/PageParser.cs:
175         * System.Web.UI/TemplateControl.cs:
176         * System.Web.UI/TemplateControlParser.cs:
177         * System.Web.UI/TemplateParser.cs: first steps to move xsp into
178         System.Web.
179
180 2002-07-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
181
182         * Page.cs: request to render postback script can be after form started
183         rendering.
184
185 2002-07-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
186
187         * Page.cs: added more page events to invoke automagically if some
188         methods are defined.
189
190 2002-07-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
191
192         * Control.cs:
193         (SaveViewState): save state even when control is not visible.
194         (SaveViewStateRecursive):
195         (LoadViewStateRecursive): made internal.
196
197 2002-07-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
198
199         * Page.cs: improved event raising to allow client postback for a wider
200         variety of actions (clicking an hyperlink, ...).
201
202 2002-07-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
203
204         * UserControl.cs: implemented Load/SaveViewState.
205
206 2002-07-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
207
208         * AttributeCollection.cs:
209         (Add): handle 'style' through styleCollection.
210
211         * CssStyleCollection.cs:
212         (fillStyle): renamed to FillStyle and made it internal.
213
214         * Page.cs:
215         (GetViewStateString): fixed, broken after other recent changes.
216         (ProcessPostData): allow a second try for postback data after OnLoad.
217         (ProcessRequest): clear controls collection, removed call to 
218         UnloadRecursive.
219
220 2002-07-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
221
222         * Control.cs: uncommented Dispose.
223
224         * Page.cs:
225         (DeterminePostBackMode): more checkings.
226         (GetPostBackClientHyperLink): implemented.
227         (GetPostBackEventReference): added some comments with the HTML that MS
228         generates for that.
229         (ProcessRequest): fixed processing order. The page is unloaded after
230         a request and regenerated from view state on subsequents posts.
231
232 2002-07-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
233
234         * Control.cs: fixed related to ViewState. Added RemovedControl.
235
236         * ControlCollection.cs: notify owner of control removal.
237         
238         * CssStyleCollection.cs: almost rewritten to make it render the style
239         attribute after changes to it.
240
241         * Page.cs: follow the guidelines in 'Control execution lifecycle'.
242         Removed Xml code.
243
244         * StateBag.cs: don't use IDictionary.GetEnumerator on the
245         HybridDictionary: it makes the program give an InvalidCastException at
246         runtime. Why?
247
248 2002-07-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
249
250         * Page.cs: fire Init and Load events for all children.
251
252 2002-07-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
253
254         * UserControl.cs: New file.
255
256 2002-07-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
257
258         * ControlBuilderAttribute.cs: finished implementation.
259
260 2002-07-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
261
262         * ConstructorNeedsTagAttribute.cs: the default constructor sets the
263         property to false.
264
265 2002-07-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
266
267         * System.Web.UI/AttributeCollection.cs: added CssStyleCollection.
268
269         * System.Web.UI/CssStyleCollection.cs: use a StateBag instead of a
270         Hashtable. Added internal .ctor.
271
272         * System.Web.UI/DataBinding.cs: propertyType is a Type. Implemented
273         Equals and GetHashCode.
274
275         * System.Web.UI/DataBoundLiteralControl.cs:
276         (LoadViewState):
277         (SaveViewState): implemented.
278
279         * System.Web.UI/Page.cs: FileDependencies is not public.
280
281         * System.Web.UI/ParseChildrenAttribute.cs: give a value to Default.
282         (GetHashCode):
283         (Equals):
284         (IsDefaultAttribute): implemented.
285
286 2002-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
287
288         * Control.cs: fixed Visible property.
289         * Page.cs: fixed GetViewStateString.
290
291 2002-07-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
292
293         * System.Web.UI/Page.cs:
294         (GetViewStateString): new function to give the server access to the
295         generated view state string.
296         (Validate): d'oh!
297
298 2002-07-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
299
300         * Control.cs:
301         (SaveViewstateRecursive): implemented.
302         (SaveViewState): fixed.
303         (IParserAccessor.AddParsedSubObject): don't use 'this'.
304
305         * Page.cs: added code to save view state to an xml file.  It's not
306         being used right now.
307
308 2002-06-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
309
310         * System.Web.UI/LiteralControl.cs: 
311         Fixes based on class status page:
312         
313                 - Add attributes (DefaultEvent, ParseChildren).
314                 - Fix declarations.
315                 - Explicitly implement some interfaces (IPostBackDataHandler
316                 and IPostBackEventHandler).
317                 - Implemented some missing methods.
318
319 2002-06-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
320
321         * Control.cs: reimplemented FindControls.
322
323         * Page.cs:
324         (.ctor): set the page for this control.
325         (IsPostBack): return valid value.
326         (DeterminePostBackMode): finished.
327         (OnFormRender): render __VIEWSTATE (uses GetTypeHashCode()).
328         (ProcessPostData): implemented. Raises change and postback events.
329         (ProcessRequest): changed to support reuse of the instance.
330         (RegisterRequiresPostBack): implemented.
331
332         * ValidatorCollection.cs: implemented all methods.
333
334 2002-06-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
335
336         * Control.cs:
337         * Page.cs: first attemp to save view state.
338
339         * HtmlForm.cs: don't render Action.
340
341 2002-06-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
342
343         * Page.cs: implemented more properties using information we already
344         have in Context.
345         (OnFormRender):
346         (OnFormPostRender):
347         (VerifyRenderingInServerForm): implemented.
348
349 2002-06-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
350
351         * Page.cs: changed InvokeEventMethod to use a GetMethod that works with
352         out runtime. Renamed Page_Init and Page_Load.
353
354         After this, we can load a dll and render HTML in linux.
355
356 2002-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
357
358         * Control.cs:
359         (AddedControl): new function that is called whenever a control is
360         added to a collection of controls in a container. It sets the defaults
361         except for Page.
362         
363         * ControlCollection.cs: call AddedControl in Add/AddAt.
364
365         * DataBoundLiteralControl.cs: implemented constructor, Text, Render,
366         SetStaticString and SetDataBoundString.
367
368         * Page.cs: removed SetDefaults.
369
370 2002-06-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
371
372         * CompiledTemplateBuilder.cs: new file. Used in the code generated
373         by xsp.
374
375         * Control.cs:
376         (BindingContainer): implemented.
377         (EnsureChildControls): avoid stack overflow.
378
379         * DataBinder.cs: implemented Eval and PropertyValue.
380
381 2002-06-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
382
383         * HtmlTextWriter.cs: fixed style attributes rendering (almost the same
384         bug as in regular attributes).
385
386 2002-06-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
387
388         * Control.cs: implemented PreventAutoID.
389
390         * Page.cs:
391         (SetDefaults): don't set ID automatically if Control.PreventAutoID has
392         been called.
393
394 2002-06-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
395
396         * Page.cs:
397         (Validators): if the collection is null, create one.
398         (GetPostBackEventReference 2): don't throw exception.
399         (GetPostBackClientEvent): return a string with containing the method
400         name, the control name and the argument.
401
402 2002-06-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
403
404         * Page.cs: SetPage is now called SetDefaults and also sets a default 
405         ID for controls that don't have one yet.
406
407 2002-06-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
408
409         * Page.cs:
410         (GetPostBackClient):
411         (RegisterRequiresPostBack): don't throw NotImplementedException to
412         keep going.
413         (ProcessRequest): set the current page as the Page property for *all*
414         the controls, not just the direct children of the page.
415
416 2002-06-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
417
418         * Control.cs:
419         (MapPathSecure): until security is implemented, return the same path
420         received as argument.
421         (RenderControl): call OnPreRender before rendering the control. So
422         AdRotator can read its configuration file.Is there any other place
423         where this should be done?
424
425         * HtmlTextWriter.cs:
426         (AddAttribute): fixed. Now it really stores attributes.
427         (RenderBeginTag): fixed a couple of bugs (little ones but hard to find).
428
429 2002-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
430
431         * ControlCollection.cs:
432         (AddAt): if index is -1 behave as a plain Add.
433
434 2002-06-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
435
436         * Page.cs: for each child control to render, assign Control.Page.
437         Probably also needed in HtmlContainerControl derived classes.
438         
439 2002-06-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
440
441         * AttributeCollection.cs: don't need a Hastable. StateBag now works 
442         fine and takes care of the details.
443
444         * Control.cs: added HasChildren property.
445
446         * StateBag.cs: fixed a couple of nasty bugs.
447
448 2002-06-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
449
450         * Page.cs: run OnInit, OnLoad y PreRender before rendering the page.
451         Invoke Page_Init and/or Page_Load if the user supplied them (though 
452         this should depend on AutoEventWireUp attribute of Page directive).
453
454 2002-06-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
455
456         * Control.cs: don't throw exception in ControlID. By now, it returns ID.
457
458         * Page.cs: 
459         (ProcessRequest): implemented.
460
461 2002-06-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
462
463         * System.Web.UI/Page.cs: finished stubbing out. Implemented some
464         methods.
465
466 2002-06-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
467
468         * Page.cs:
469         (FileDependencies): now is public public.
470         (EnableViewStateMAC): uncommented and made protected. 
471         (GetTypeHashCode): added method.
472         
473 2002-05-24  Duncan Mak  <duncan@ximian.com>
474
475         * TemplateControl.cs (SetStringResourcePointer): Fixed typo.
476
477         * StateBag.cs (Item): Changed the visibility level of the this
478         [object] indexer.
479
480         Misc. formatting edits, fixing some bugs introduced by the indentation.
481
482         * DataBinder.cs (Eval)
483         (GetIndexedPropertyValue)
484         (GetPropertyValue): Fixed return types.
485
486 2002-05-21  Miguel de Icaza  <miguel@ximian.com>
487
488         * HtmlTextWriter.cs: Use this to change the member instances.
489
490 2002-05-17  Duncan Mak  <duncan@ximian.com>
491
492         * AttributeCollection.cs: 
493         * ControlCollection.cs: 
494         * CssStyleCollection.cs: 
495         * DataBindingCollection.cs: 
496         * EmptyControlCollection.cs: Added missing Collection classes.
497
498 2002-05-17  Duncan Mak  <duncan@ximian.com>
499
500         * BaseParser.cs:
501         * TemplateParser.cs:  Implemented. BaseParser is weird because
502         there is no documentation on what it does.
503
504         * ControlBuilder.cs:
505         
506         * DataBinder.cs: 
507         * DataBinding.cs: Added. 
508
509         * DataBoundLiteralControl.cs: 
510         * Triplet.cs: Added.
511
512         * RenderMethod.cs: Added this delegate for Control.cs
513
514 2002-05-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
515
516         * ValidationPropertyAttribute.cs: a couple of fixes to make it compile.
517
518 2002-05-14  Duncan Mak  <duncan@ximian.com>
519
520         * ValidationPropertyAttribute.cs: Added to CVS.
521
522 2002-05-10  Duncan Mak  <duncan@ximian.com>
523
524         * ConstructorNeedsTagAttribute.cs: 
525         * ControlBuilderAttribute.cs: 
526         * ImageClickEventArgs.cs: 
527         * ParseChildrenAttribute.cs: 
528         * PartialCachingAttribute.cs: 
529         * PersistChildrenAttribute.cs: 
530         * PersistenceModeAttribute.cs: 
531         * TemplateContainerAttribute.cs: Added to CVS.
532
533         * PersistanceMode.cs: Removed, fixed typo.
534         * PersistenceMode.cs: Replacing above.
535
536         * StateBag.cs (this): Fixed indexer, it takes a string as the
537         index, not an object.
538
539         * ValidatorCollection.cs: Fixed typo, ValidatedCollection to ValidatorCollection. 
540
541         * Page.cs (Validators): return type should be ValidatorCollection,
542         not ValidatedCollection.
543
544         * TagPrefixAttribute.cs: Added to CVS.
545
546 2002-05-07  Duncan Mak  <duncan@ximian.com>
547
548         * Utils.cs (GetClientValidatedEvent): Uncommented the 'Page' argument.
549
550 2002-03-26   Gaurav Vaish <gvaish@iitk.ac.in>
551
552         * DataBindingHandlerAttribute.cs
553                                    - Completed
554         * ToolboxDataAttribute.cs  - Completed
555
556 2002-01-03  Nick Drochak  <ndrochak@gol.com>
557
558         * DesignTimeParseData.cs: initialze static member to avoid compile
559         error
560         * PropertyConverter.cs: remove uneeded exception variables from
561         catch blocks.
562
563 2002-01-02  Nick Drochak  <ndrochak@gol.com>
564
565         * DesignTimeParseData.cs: fix header to show correct class name
566
567 2001-12-21   Gaurav Vaish <gvaish@iitk.ac.in>
568
569         * StateBag.cs             - Completed
570
571 2001-12-19   Gaurav Vaish <gvaish@iitk.ac.in>
572
573         * Pair.cs                 - Small undocumented class. Completed.
574
575 2001-12-18   Gaurav Vaish <gvaish@iitk.ac.in>
576
577         * DesignTimeParseData.cs  - Initial implementation
578         * StateBag.cs             - Initial implementation
579
580 2001-12-17   Gaurav Vaish <gvaish@iitk.ac.in>
581
582         * PropertyConverter.cs    - Undocumented class. Completed.
583         * Utils.cs                - Undocumented, private class.
584                                     Initial implementation
585
586 2001-08-28  Bob Smith  <bob@thestuff.net>
587         * Control.cs: Figured out some undocumented API.
588         * Added TODO.
589         * BuildMethod.cs: Initial implementation.
590         * BuildTemplateMethod.cs: Initial implementation.
591         * HtmlTextWriterAttribute.cs: Initial implementation.
592         * HtmlTextWriterStyle.cs: Initial implementation.
593         * HtmlTextWriterTag.cs: Initial implementation.
594         * IAttributeAccessor.cs: Initial implementation.
595         * IDataBindingsAccessor.cs: Initial implementation.
596         * ImageClickEventHandler.cs: Initial implementation.
597         * INamingContainer.cs: Initial implementation.
598         * IParserAccessor.cs: Initial implementation.
599         * IPostBackDataHandler.cs: Initial implementation.
600         * IPostBackEventHandler.cs: Initial implementation.
601         * IStateManager.cs: Initial implementation.
602         * ITagNameToTypeMapper.cs: Initial implementation.
603         * ITemplate.cs: Initial implementation.
604         * IValidator.cs: Initial implementation.
605         * OutputCacheLocation.cs: Initial implementation.
606         * PersistanceMode.cs: Initial implementation.
607         * StateItem.cs: Initial implementation.
608
609 2001-08-27  Bob Smith  <bob@thestuff.net>
610
611         * Control.cs: Bug fixes and implementations.
612
613 2001-08-24  Bob Smith  <bob@thestuff.net>
614
615         * Control.cs: Bug fixes.
616
617 2001-08-23  Bob Smith  <bob@thestuff.net>
618
619         * Control.cs: More implementation. Events reworked for performance.
620
621 2001-08-22  Bob Smith  <bob@thestuff.net>
622
623         * LiteralControl.cs: Implemented.
624         * Control.cs: Even more implementation (Events). What a beast.
625
626 2001-08-20  Bob Smith  <bob@thestuff.net>
627
628         * Control.cs: More implementation. Not done yet. Shutter.
629
630 2001-08-17  Bob Smith  <bob@thestuff.net>
631
632         * Control.cs: Partial implementation.