/* This file belongs to the Servoy development and deployment environment, Copyright (C) 1997-2013 Servoy BV This program is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program; if not, see http://www.gnu.org/licenses or write to the Free Software Foundation,Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ package com.servoy.j2db.solutionmodel; /** * Constants for the mediaOptions property. * * @since 7.0 * @author acostescu */ public interface ISMMediaOption { /** * Constant used when setting the media option for components which display images. * Makes the image be displayed at its original size. If the component is smaller * than the image, then only a part of the image will show up. * * @sample * var bigBytes = plugins.file.readFile('d:/big.jpg'); * var bigImage = solutionModel.newMedia('big.jpg', bigBytes); * var smallBytes = plugins.file.readFile('d:/small.jpg'); * var smallImage = solutionModel.newMedia('small.jpg', smallBytes); * var smallLabelWithBigImageCrop = form.newLabel('', 130, 10, 50, 50); * smallLabelWithBigImageCrop.imageMedia = bigImage; * smallLabelWithBigImageCrop.background = 'yellow'; * smallLabelWithBigImageCrop.mediaOptions = SM_MEDIAOPTION.CROP; * var bigLabelWithSmallImageCrop = form.newLabel('', 10, 290, 200, 100); * bigLabelWithSmallImageCrop.imageMedia = smallImage; * bigLabelWithSmallImageCrop.background = 'yellow'; * bigLabelWithSmallImageCrop.mediaOptions = SM_MEDIAOPTION.CROP; // This does not do any cropping actually if the label is larger than the image. */ public static final int CROP = 1; /** * Constant used when setting the media option for components which display images. * Makes the image be scaled down to fit the size of the component, if the component * is smaller than the image. It can be used in combination with KEEPASPECT in order * to preserve the aspect ratio of the image. * * It can also be used in combination with ENLARGE, to cover all possibilities when * the size of the component is not known upfront. * * @sample * var bigBytes = plugins.file.readFile('d:/big.jpg'); * var bigImage = solutionModel.newMedia('big.jpg', bigBytes); * var smallLabelWithBigImageReduceKeepAspect = form.newLabel('', 10, 10, 50, 50); * smallLabelWithBigImageReduceKeepAspect.imageMedia = bigImage; * smallLabelWithBigImageReduceKeepAspect.background = 'yellow'; * smallLabelWithBigImageReduceKeepAspect.mediaOptions = SM_MEDIAOPTION.REDUCE | SM_MEDIAOPTION.KEEPASPECT; * var smallLabelWithBigImageReduceNoAspect = form.newLabel('', 70, 10, 50, 50); * smallLabelWithBigImageReduceNoAspect.imageMedia = bigImage; * smallLabelWithBigImageReduceNoAspect.background = 'yellow'; * smallLabelWithBigImageReduceNoAspect.mediaOptions = SM_MEDIAOPTION.REDUCE; */ public static final int REDUCE = 2; /** * Constant used when setting the media option for components which display images. * Makes the image be scaled up to fit the size of the component, if the component is * larger than the image. Can be used in combination with KEEPASPECT in order to preserve * the aspect ratio of the image. * * It can also be used in combination with REDUCE, to cover all possibilities when * the size of the component is not known upfront. * * @sample * var smallBytes = plugins.file.readFile('d:/small.jpg'); * var smallImage = solutionModel.newMedia('small.jpg', smallBytes); * var bigLabelWithSmallImageEnlargeKeepAspect = form.newLabel('', 10, 70, 200, 100); * bigLabelWithSmallImageEnlargeKeepAspect.imageMedia = smallImage; * bigLabelWithSmallImageEnlargeKeepAspect.background = 'yellow'; * bigLabelWithSmallImageEnlargeKeepAspect.mediaOptions = SM_MEDIAOPTION.ENLARGE | SM_MEDIAOPTION.KEEPASPECT; * var bigLabelWithSmallImageEnlargeNoAspect = form.newLabel('', 10, 180, 200, 100); * bigLabelWithSmallImageEnlargeNoAspect.imageMedia = smallImage; * bigLabelWithSmallImageEnlargeNoAspect.background = 'yellow'; * bigLabelWithSmallImageEnlargeNoAspect.mediaOptions = SM_MEDIAOPTION.ENLARGE; */ public static final int ENLARGE = 4; /** * Constant used when setting the media option for components which display images. * Can be used in combination with REDUCE and/or ENLARGE, to maintain the aspect * ratio of the image while it is scaled down or up. * * @sample * var bigBytes = plugins.file.readFile('d:/big.jpg'); * var bigImage = solutionModel.newMedia('big.jpg', bigBytes); * var smallBytes = plugins.file.readFile('d:/small.jpg'); * var smallImage = solutionModel.newMedia('small.jpg', smallBytes); * var smallLabelWithBigImageReduceKeepAspect = form.newLabel('', 10, 10, 50, 50); * smallLabelWithBigImageReduceKeepAspect.imageMedia = bigImage; * smallLabelWithBigImageReduceKeepAspect.background = 'yellow'; * smallLabelWithBigImageReduceKeepAspect.mediaOptions = SM_MEDIAOPTION.REDUCE | SM_MEDIAOPTION.KEEPASPECT; * var bigLabelWithSmallImageEnlargeKeepAspect = form.newLabel('', 10, 70, 200, 100); * bigLabelWithSmallImageEnlargeKeepAspect.imageMedia = smallImage; * bigLabelWithSmallImageEnlargeKeepAspect.background = 'yellow'; * bigLabelWithSmallImageEnlargeKeepAspect.mediaOptions = SM_MEDIAOPTION.ENLARGE | SM_MEDIAOPTION.KEEPASPECT; */ public static final int KEEPASPECT = 8; }