# viewport_type.h

Go to the documentation of this file.

    00001 /* $Id: viewport_type.h 18602 2009-12-22 12:50:41Z rubidium $ */
    00002
    00003 /*
    00004  * This file is part of OpenTTD.
    00005  * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
    00006  * OpenTTD 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.
    00007  * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
    00008  */
    00009
    00012 #ifndef VIEWPORT_TYPE_H
    00013 #define VIEWPORT_TYPE_H
    00014
    00015 #include "zoom_type.h"
    00016 #include "strings_type.h"
    00017
    00021 struct ViewPort {
    00022   int left;
    00023   int top;
    00024   int width;
    00025   int height;
    00026
    00027   int virtual_left;
    00028   int virtual_top;
    00029   int virtual_width;
    00030   int virtual_height;
    00031
    00032   ZoomLevel zoom;
    00033 };
    00034
    00036 enum ViewportSignMargin {
    00037   VPSM_LEFT   = 1,
    00038   VPSM_RIGHT  = 1,
    00039   VPSM_TOP    = 1,
    00040   VPSM_BOTTOM = 1,
    00041 };
    00042
    00044 struct ViewportSign {
    00045   int32 center;
    00046   int32 top;
    00047   uint16 width_normal;
    00048   uint16 width_small;
    00049
    00050   void UpdatePosition(int center, int top, StringID str);
    00051   void MarkDirty() const;
    00052 };
    00053
    00054 enum {
    00055   ZOOM_IN   = 0,
    00056   ZOOM_OUT  = 1,
    00057   ZOOM_NONE = 2, // hack, used to update the button status
    00058 };
    00059
    00066 enum {
    00067   BB_HEIGHT_UNDER_BRIDGE = 6,
    00068   BB_Z_SEPARATOR  = 7,
    00069 };
    00070
    00072 enum ViewportPlaceMethod {
    00073   VPM_X_OR_Y          =    0,
    00074   VPM_FIX_X           =    1,
    00075   VPM_FIX_Y           =    2,
    00076   VPM_X_AND_Y         =    3,
    00077   VPM_X_AND_Y_LIMITED =    4,
    00078   VPM_FIX_HORIZONTAL  =    5,
    00079   VPM_FIX_VERTICAL    =    6,
    00080   VPM_RAILDIRS        = 0x40,
    00081   VPM_SIGNALDIRS      = 0x80,
    00082 };
    00083 DECLARE_ENUM_AS_BIT_SET(ViewportPlaceMethod);
    00084
    00087 enum ViewportDragDropSelectionProcess {
    00088   DDSP_DEMOLISH_AREA,
    00089   DDSP_RAISE_AND_LEVEL_AREA,
    00090   DDSP_LOWER_AND_LEVEL_AREA,
    00091   DDSP_LEVEL_AREA,
    00092   DDSP_CREATE_DESERT,
    00093   DDSP_CREATE_ROCKS,
    00094   DDSP_CREATE_WATER,
    00095   DDSP_CREATE_RIVER,
    00096   DDSP_PLANT_TREES,
    00097   DDSP_BUILD_BRIDGE,
    00098
    00099   /* Rail specific actions */
    00100   DDSP_PLACE_RAIL,
    00101   DDSP_BUILD_SIGNALS,
    00102   DDSP_BUILD_STATION,
    00103   DDSP_REMOVE_STATION,
    00104   DDSP_CONVERT_RAIL,
    00105
    00106   /* Road specific actions */
    00107   DDSP_PLACE_ROAD_X_DIR,
    00108   DDSP_PLACE_ROAD_Y_DIR,
    00109   DDSP_PLACE_AUTOROAD,
    00110 };
    00111
    00112 #endif /* VIEWPORT_TYPE_H */