Home | History | Annotate | Download | only in api
      1 /*
      2  * Copyright (C) 2010 The Android Open Source Project
      3  *
      4  * Licensed under the Eclipse Public License, Version 1.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.eclipse.org/org/documents/epl-v10.php
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package com.android.ide.common.api;
     18 
     19 import com.google.common.annotations.Beta;
     20 
     21 /**
     22  * Drawing styles are used to distinguish the visual appearance of selection,
     23  * hovers, anchors, etc. Each style may have different colors, line thickness,
     24  * dashing style, transparency, etc.
     25  * <p>
     26  * <b>NOTE: This is not a public or final API; if you rely on this be prepared
     27  * to adjust your code for the next tools release.</b>
     28  * </p>
     29  */
     30 @Beta
     31 public enum DrawingStyle {
     32     /**
     33      * The style used to draw the selected views
     34      */
     35     SELECTION,
     36 
     37     /**
     38      * The style used to draw guidelines - overlay lines which indicate
     39      * significant geometric positions.
     40      */
     41     GUIDELINE,
     42 
     43     /**
     44      * The style used to guideline shadows
     45      */
     46     GUIDELINE_SHADOW,
     47 
     48     /**
     49      * The style used to draw guidelines, in particular shared edges and center lines; this
     50      * is a dashed edge.
     51      */
     52     GUIDELINE_DASHED,
     53 
     54     /**
     55      * The style used to draw distance annotations
     56      */
     57     DISTANCE,
     58 
     59     /**
     60      * The style used to draw grids
     61      */
     62     GRID,
     63 
     64     /**
     65      * The style used for hovered views (e.g. when the mouse is directly on top
     66      * of the view)
     67      */
     68     HOVER,
     69 
     70     /**
     71      * The style used for hovered views (e.g. when the mouse is directly on top
     72      * of the view), when the hover happens to be the same object as the selection
     73      */
     74     HOVER_SELECTION,
     75 
     76     /**
     77      * The style used to draw anchors (lines to the other views the given view
     78      * is anchored to)
     79      */
     80     ANCHOR,
     81 
     82     /**
     83      * The style used to draw outlines (the structure of views)
     84      */
     85     OUTLINE,
     86 
     87     /**
     88      * The style used to draw the recipient/target View of a drop. This is
     89      * typically going to be the bounding-box of the view into which you are
     90      * adding a new child.
     91      */
     92     DROP_RECIPIENT,
     93 
     94     /**
     95      * The style used to draw a potential drop area <b>within</b> a
     96      * {@link #DROP_RECIPIENT}. For example, if you are dragging into a view
     97      * with a LinearLayout, the {@link #DROP_RECIPIENT} will be the view itself,
     98      * whereas each possible insert position between two children will be a
     99      * {@link #DROP_ZONE}. If the mouse is over a {@link #DROP_ZONE} it should
    100      * be drawn using the style {@link #DROP_ZONE_ACTIVE}.
    101      */
    102     DROP_ZONE,
    103 
    104     /**
    105      * The style used to draw a currently active drop zone within a drop
    106      * recipient. See the documentation for {@link #DROP_ZONE} for details on
    107      * the distinction between {@link #DROP_RECIPIENT}, {@link #DROP_ZONE} and
    108      * {@link #DROP_ZONE_ACTIVE}.
    109      */
    110     DROP_ZONE_ACTIVE,
    111 
    112     /**
    113      * The style used to draw a preview of where a dropped view would appear if
    114      * it were to be dropped at a given location.
    115      */
    116     DROP_PREVIEW,
    117 
    118     /**
    119      * The style used to preview a resize operation. Similar to {@link #DROP_PREVIEW}
    120      * but usually fainter to work better in combination with guidelines which
    121      * are often overlaid during resize.
    122      */
    123     RESIZE_PREVIEW,
    124 
    125     /**
    126      * The style used to show a proposed resize bound which is being rejected (for example,
    127      * because there is no near edge to attach to in a RelativeLayout).
    128      */
    129     RESIZE_FAIL,
    130 
    131     /**
    132      * The style used to draw help/hint text.
    133      */
    134     HELP,
    135 
    136     /**
    137      * The style used to draw illegal/error/invalid markers
    138      */
    139     INVALID,
    140 
    141     /**
    142      * The style used to highlight dependencies
    143      */
    144     DEPENDENCY,
    145 
    146     /**
    147      * The style used to draw an invalid cycle
    148      */
    149     CYCLE,
    150 
    151     /**
    152      * The style used to highlight the currently dragged views during a layout
    153      * move (if they are not hidden)
    154      */
    155     DRAGGED,
    156 
    157     /**
    158      * The style used to draw empty containers of zero bounds (which are padded
    159      * a bit to make them visible during a drag or selection).
    160      */
    161     EMPTY,
    162 
    163     /**
    164      * A style used for unspecified purposes; can be used by a client to have
    165      * yet another color that is domain specific; using this color constant
    166      * rather than your own hardcoded value means that you will be guaranteed to
    167      * pick up a color that is themed properly and will look decent with the
    168      * rest of the colors
    169      */
    170     CUSTOM1,
    171 
    172     /**
    173      * A second styled used for unspecified purposes; see {@link #CUSTOM1} for
    174      * details.
    175      */
    176     CUSTOM2
    177 }
    178