1e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet/* 2e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * Copyright (C) 2011 The Android Open Source Project 3e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * 4e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * Licensed under the Apache License, Version 2.0 (the "License"); 5e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * you may not use this file except in compliance with the License. 6e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * You may obtain a copy of the License at 7e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * 8e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * http://www.apache.org/licenses/LICENSE-2.0 9e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * 10e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * Unless required by applicable law or agreed to in writing, software 11e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * distributed under the License is distributed on an "AS IS" BASIS, 12e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * See the License for the specific language governing permissions and 14e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * limitations under the License. 15e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet */ 16e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet 17e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohetpackage com.android.ide.common.rendering.api; 18e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet 19e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohetimport com.android.resources.Density; 20e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet 21e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet/** 22e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * Rendering parameters for {@link Bridge#renderDrawable(DrawableParams)} 23e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * 24e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet */ 25e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohetpublic class DrawableParams extends RenderParams { 26e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet 27e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet private final ResourceValue mDrawable; 28e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet 29e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet /** 30e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * Builds a param object with all the necessary parameters to render a drawable with 31e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * {@link Bridge#renderDrawable(DrawableParams)} 32e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * 33e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * @param drawable the {@link ResourceValue} identifying the drawable. 34e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * @param projectKey An Object identifying the project. This is used for the cache mechanism. 35e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * @param screenWidth the screen width 36e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * @param screenHeight the screen height 37e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * @param density the density factor for the screen. 38e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * @param xdpi the screen actual dpi in X 39e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * @param ydpi the screen actual dpi in Y 40e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * @param themeName The name of the theme to use. 41e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * @param isProjectTheme true if the theme is a project theme, false if it is a framework theme. 42e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * @param projectResources the resources of the project. The map contains (String, map) pairs 43e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * where the string is the type of the resource reference used in the layout file, and the 44e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * map contains (String, {@link ResourceValue}) pairs where the key is the resource name, 45e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * and the value is the resource value. 46e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * @param frameworkResources the framework resources. The map contains (String, map) pairs 47e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * where the string is the type of the resource reference used in the layout file, and the map 48e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * contains (String, {@link ResourceValue}) pairs where the key is the resource name, and the 49e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * value is the resource value. 50e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * @param projectCallback The {@link IProjectCallback} object to get information from 51e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * the project. 52e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * @param minSdkVersion the minSdkVersion of the project 53e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * @param targetSdkVersion the targetSdkVersion of the project 54e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet * @param log the object responsible for displaying warning/errors to the user. 55e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet */ 56e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet public DrawableParams( 57e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet ResourceValue drawable, 58e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet Object projectKey, 59e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet int screenWidth, int screenHeight, 60e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet Density density, float xdpi, float ydpi, 61e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet RenderResources renderResources, 62e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet IProjectCallback projectCallback, 63e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet int minSdkVersion, int targetSdkVersion, 64e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet LayoutLog log) { 65e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet super(projectKey, screenWidth, screenHeight, density, xdpi, ydpi, 66e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet renderResources, projectCallback, minSdkVersion, targetSdkVersion, log); 67e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet mDrawable = drawable; 68e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet } 69e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet 70e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet public DrawableParams(DrawableParams params) { 71e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet super(params); 72e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet mDrawable = params.mDrawable; 73e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet } 74e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet 75e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet public ResourceValue getDrawable() { 76e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet return mDrawable; 77e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet } 78e25af9f721bcc89d73c8e56adc9d02a6bcfac1c6Xavier Ducrohet} 79