<!--
  Copyright 2008 Google Inc.
 
  Licensed under the Apache License, Version 2.0 (the "License"); you may not
  use this file except in compliance with the License. You may obtain a copy of
  the License at
 
  http://www.apache.org/licenses/LICENSE-2.0
 
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  License for the specific language governing permissions and limitations under
  the License.
-->

<!-- Combines all user facilities into a single module for convenience.     -->
<!-- Most new code should inherit this module.                              -->
<!--                                                                        -->
<module>
   <inherits name="com.google.gwt.animation.Animation"/>
   <inherits name="com.google.gwt.canvas.Canvas"/>
   <inherits name="com.google.gwt.core.Core"/>
   <inherits name="com.google.gwt.editor.Editor" />
   <inherits name="com.google.gwt.event.Event"/>
   <inherits name="com.google.gwt.geolocation.Geolocation" />
   <inherits name="com.google.gwt.i18n.I18N"/>
   <inherits name="com.google.gwt.layout.Layout"/>
   <inherits name="com.google.gwt.media.Media"/>
   <inherits name="com.google.gwt.resources.Resources"/>
   <inherits name="com.google.gwt.safecss.SafeCss" />
   <inherits name="com.google.gwt.safehtml.SafeHtml" />
   <inherits name="com.google.gwt.storage.Storage" />
   <inherits name="com.google.gwt.text.Text"/>
   <inherits name="com.google.gwt.touch.Touch"/>
   <inherits name="com.google.gwt.uibinder.UiBinder"/>
   <inherits name="com.google.gwt.user.AsyncProxy"/>
   <inherits name="com.google.gwt.user.CaptionPanel" />
   <inherits name="com.google.gwt.user.cellview.CellView"/>
   <inherits name="com.google.gwt.user.ClippedImage"/>
   <inherits name="com.google.gwt.user.datepicker.DatePicker"/>
   <inherits name="com.google.gwt.user.DocumentMode"/>
   <inherits name="com.google.gwt.user.DocumentRoot" />
   <inherits name="com.google.gwt.user.DOM"/>
   <inherits name="com.google.gwt.user.FileUpload"/>
   <inherits name="com.google.gwt.user.Focus"/>
   <inherits name="com.google.gwt.user.Form"/>
   <inherits name="com.google.gwt.user.History"/>
   <inherits name="com.google.gwt.user.HTTPRequest"/>
   <inherits name="com.google.gwt.user.Hyperlink"/>
   <inherits name="com.google.gwt.user.ImageBundle"/>  
   <inherits name="com.google.gwt.user.Popup"/>
   <inherits name="com.google.gwt.user.RemoteService"/>
   <inherits name="com.google.gwt.user.ResizeLayoutPanel"/>
   <inherits name="com.google.gwt.user.RichText"/>
   <inherits name="com.google.gwt.user.Scroll"/>
   <inherits name="com.google.gwt.user.SplitPanel"/>
   <inherits name="com.google.gwt.user.TextBox"/>
   <inherits name="com.google.gwt.user.Tree"/>
   <inherits name="com.google.gwt.user.Window" />
   <inherits name="com.google.gwt.widget.Widget"/>

   <super-source path="translatable"/>
   <source path="client"/>
</module>

