/** * Copyright 2010 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. * */ package org.waveprotocol.wave.client.widget.popup.desktopchrome; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.StyleInjector; import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; import com.google.gwt.resources.client.ImageResource; import com.google.gwt.resources.client.ImageResource.ImageOptions; import com.google.gwt.resources.client.ImageResource.RepeatStyle; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.HTMLPanel; import com.google.gwt.user.client.ui.Widget; import org.waveprotocol.wave.client.widget.popup.PopupChrome; /** * Window borders for dropdown popups using declarative UI. */ // TODO(user) Replace with UIObject once GWT supports it. public class DropdownPopupChrome extends Composite implements PopupChrome { interface Resources extends ClientBundle { /** CSS class names used by DropdownPopupChrome. These are used in DropdownPopupChrome.css */ interface Css extends CssResource { // chrome names String eastNorthEast(); String east(); String southEast(); String south(); String southWest(); String west(); } @Source("DropdownPopupChrome.css") Css css(); /** Default background images */ @Source("popup_n.png") @ImageOptions(repeatStyle=RepeatStyle.Horizontal) ImageResource chromeNorth(); @Source("popup_ne.png") ImageResource chromeNorthEast(); @Source("popup_ene.png") ImageResource chromeEastNorthEast(); @Source("popup_e.png") @ImageOptions(repeatStyle=RepeatStyle.Vertical) ImageResource chromeEast(); @Source("popup_se.png") ImageResource chromeSouthEast(); @Source("popup_s.png") @ImageOptions(repeatStyle=RepeatStyle.Horizontal) ImageResource chromeSouth(); @Source("popup_sw.png") ImageResource chromeSouthWest(); @Source("popup_w.png") @ImageOptions(repeatStyle=RepeatStyle.Vertical) ImageResource chromeWest(); @Source("popup_nw.png") ImageResource chromeNorthWest(); /** Titled background images */ @Source("popup_n_titled.png") @ImageOptions(repeatStyle=RepeatStyle.Horizontal) ImageResource chromeNorthTitled(); @Source("popup_ne_titled.png") ImageResource chromeNorthEastTitled(); @Source("popup_nw_titled.png") ImageResource chromeNorthWestTitled(); } /** The singleton instance of our resources. */ private static final Resources RESOURCES = GWT.create(Resources.class); /** * Inject the CSS once. */ static { StyleInjector.inject(RESOURCES.css().getText()); } interface Binder extends UiBinder<HTMLPanel, DropdownPopupChrome> {} private static final Binder BINDER = GWT.create(Binder.class); public DropdownPopupChrome() { initWidget(BINDER.createAndBindUi(this)); } @Override public Widget getChrome() { return this; } @Override public void enableTitleBar() { // not supported } }