diff options
Diffstat (limited to 'layoutlib_api/src/com/android/layoutlib/api/ILayoutScene.java')
| -rw-r--r-- | layoutlib_api/src/com/android/layoutlib/api/ILayoutScene.java | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/layoutlib_api/src/com/android/layoutlib/api/ILayoutScene.java b/layoutlib_api/src/com/android/layoutlib/api/ILayoutScene.java new file mode 100644 index 0000000..94eca2f --- /dev/null +++ b/layoutlib_api/src/com/android/layoutlib/api/ILayoutScene.java @@ -0,0 +1,103 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * 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 com.android.layoutlib.api; + +import java.awt.image.BufferedImage; + +/** + * An object allowing interaction with an Android layout. + * + * This is returned by {@link ILayoutBridge#startLayout(IXmlPullParser, Object, int, int, boolean, int, float, float, String, boolean, java.util.Map, java.util.Map, IProjectCallback, ILayoutLog)} + * and can then be used for subsequent actions on the layout. + * + * @since 5 + * + */ +public interface ILayoutScene { + + enum LayoutStatus { SUCCESS, ERROR }; + + public interface ILayoutResult { + LayoutStatus getStatus(); + String getErrorMessage(); + Throwable getException(); + } + + public interface IAnimationListener { + /** + * Called when a new animation frame is available for display. + */ + void onNewFrame(BufferedImage image); + + /** + * Called when the animation is done playing. + */ + void done(); + } + + /** + * Returns the result for the original call to {@link ILayoutBridge#startLayout(IXmlPullParser, Object, int, int, boolean, int, float, float, String, boolean, java.util.Map, java.util.Map, IProjectCallback, ILayoutLog)} + */ + ILayoutResult getStatus(); + + /** + * Returns the {@link ILayoutViewInfo} object for the top level view. + */ + ILayoutViewInfo getRootView(); + + /** + * Returns the rendering of the full layout. + */ + BufferedImage getImage(); + + /** + * Re-renders the layout as-is. + * In case of success, this should be followed by calls to {@link #getRootView()} and + * {@link #getImage()} + */ + ILayoutResult render(); + + /** + * Sets the value of a given property on a given object. + * In case of success, this should be followed by a call to {@link #render()} + * @param object + * @param propertyName + * @param propertyValue + * @return + */ + ILayoutResult setProperty(int object, String propertyName, String propertyValue); + + /** + * TBD + */ + ILayoutResult insertChild(); + + /** + * TBD + */ + ILayoutResult removeChild(); + + /** + * TBD + */ + ILayoutResult animate(int object, int animation, IAnimationListener listener); + + /** + * Discards the layout. No more actions can be called on this object. + */ + void dispose(); +} |
