Logo Search packages:      
Sourcecode: blender version File versions

GHOST_Types.h

/**
 * $Id: GHOST_Types.h,v 1.10 2004/11/07 16:30:19 bjornmose Exp $
 * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
 *
 * This program 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; either version 2
 * of the License, or (at your option) any later version. The Blender
 * Foundation also sells licenses for use in proprietary software under
 * the Blender License.  See http://www.blender.org/BL/ for information
 * about this.
 *
 * 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 General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software Foundation,
 * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 *
 * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
 * All rights reserved.
 *
 * The Original Code is: all of this file.
 *
 * Contributor(s): none yet.
 *
 * ***** END GPL/BL DUAL LICENSE BLOCK *****
 */

#ifndef _GHOST_TYPES_H_
#define _GHOST_TYPES_H_

typedef     char                    GHOST_TInt8;
typedef     unsigned char           GHOST_TUns8;
typedef short                       GHOST_TInt16;
typedef unsigned short        GHOST_TUns16;
typedef     int                           GHOST_TInt32;
typedef     unsigned int            GHOST_TUns32;

#if defined(WIN32) && !defined(FREE_WINDOWS)
typedef __int64                     GHOST_TInt64;
typedef unsigned __int64      GHOST_TUns64;
#else
typedef long long             GHOST_TInt64;
typedef unsigned long long    GHOST_TUns64;
#endif

typedef void*                       GHOST_TUserDataPtr;

typedef enum
{
      GHOST_kFailure = 0,
      GHOST_kSuccess
} GHOST_TSuccess;


typedef enum {
      GHOST_kNotVisible = 0,
      GHOST_kPartiallyVisible,
      GHOST_kFullyVisible
} GHOST_TVisibility;


typedef enum {
      GHOST_kFireTimeNever = 0xFFFFFFFF
} GHOST_TFireTimeConstant;

typedef enum {
    GHOST_kModifierKeyLeftShift = 0,
    GHOST_kModifierKeyRightShift,
    GHOST_kModifierKeyLeftAlt,
    GHOST_kModifierKeyRightAlt,
    GHOST_kModifierKeyLeftControl,
    GHOST_kModifierKeyRightControl,
    GHOST_kModifierKeyCommand,            // APPLE only
    GHOST_kModifierKeyNumMasks
} GHOST_TModifierKeyMask;


typedef enum {
      GHOST_kWindowStateNormal = 0,
      GHOST_kWindowStateMaximized,
      GHOST_kWindowStateMinimized,
      GHOST_kWindowStateFullScreen
} GHOST_TWindowState;


typedef enum {
      GHOST_kWindowOrderTop = 0,
      GHOST_kWindowOrderBottom
} GHOST_TWindowOrder;


typedef enum {
      GHOST_kDrawingContextTypeNone = 0,
      GHOST_kDrawingContextTypeOpenGL
} GHOST_TDrawingContextType;


typedef enum {
      GHOST_kButtonMaskLeft = 0,
      GHOST_kButtonMaskMiddle,
      GHOST_kButtonMaskRight,
      GHOST_kButtonNumMasks
} GHOST_TButtonMask;


typedef enum {
      GHOST_kEventUnknown = 0,

      GHOST_kEventCursorMove,       /// Mouse move event
      GHOST_kEventButtonDown,       /// Mouse button event
      GHOST_kEventButtonUp,         /// Mouse button event
      GHOST_kEventWheel,                  /// Mouse wheel event

      GHOST_kEventKeyDown,
      GHOST_kEventKeyUp,
//    GHOST_kEventKeyAuto,

      GHOST_kEventQuit,

      GHOST_kEventWindowClose,
      GHOST_kEventWindowActivate,
      GHOST_kEventWindowDeactivate,
      GHOST_kEventWindowUpdate,
      GHOST_kEventWindowSize,

      GHOST_kNumEventTypes
} GHOST_TEventType;


typedef enum {
      GHOST_kStandardCursorFirstCursor = 0,
      GHOST_kStandardCursorDefault = 0,
      GHOST_kStandardCursorRightArrow,
      GHOST_kStandardCursorLeftArrow,
      GHOST_kStandardCursorInfo, 
      GHOST_kStandardCursorDestroy,
      GHOST_kStandardCursorHelp,    
      GHOST_kStandardCursorCycle,
      GHOST_kStandardCursorSpray,
      GHOST_kStandardCursorWait,
      GHOST_kStandardCursorText,
      GHOST_kStandardCursorCrosshair,
      GHOST_kStandardCursorUpDown,
      GHOST_kStandardCursorLeftRight,
      GHOST_kStandardCursorTopSide,
      GHOST_kStandardCursorBottomSide,
      GHOST_kStandardCursorLeftSide,
      GHOST_kStandardCursorRightSide,
      GHOST_kStandardCursorTopLeftCorner,
      GHOST_kStandardCursorTopRightCorner,
      GHOST_kStandardCursorBottomRightCorner,
      GHOST_kStandardCursorBottomLeftCorner,
      GHOST_kStandardCursorCustom, 
      GHOST_kStandardCursorNumCursors, 
      GHOST_kStandardCursorPencil
} GHOST_TStandardCursor;


typedef enum {
      GHOST_kKeyUnknown = -1,
      GHOST_kKeyBackSpace,
      GHOST_kKeyTab,
      GHOST_kKeyLinefeed,
      GHOST_kKeyClear,
      GHOST_kKeyEnter  = 0x0D,
      
      GHOST_kKeyEsc    = 0x1B,
      GHOST_kKeySpace  = ' ',
      GHOST_kKeyQuote  = 0x27,
      GHOST_kKeyComma  = ',',
      GHOST_kKeyMinus  = '-',
      GHOST_kKeyPeriod = '.',
      GHOST_kKeySlash  = '/',

      // Number keys
      GHOST_kKey0 = '0',
      GHOST_kKey1,
      GHOST_kKey2,
      GHOST_kKey3,
      GHOST_kKey4,
      GHOST_kKey5,
      GHOST_kKey6,
      GHOST_kKey7,
      GHOST_kKey8,
      GHOST_kKey9,

      GHOST_kKeySemicolon = ';',
      GHOST_kKeyEqual     = '=',

      // Character keys
      GHOST_kKeyA = 'A',
      GHOST_kKeyB,
      GHOST_kKeyC,
      GHOST_kKeyD,
      GHOST_kKeyE,
      GHOST_kKeyF,
      GHOST_kKeyG,
      GHOST_kKeyH,
      GHOST_kKeyI,
      GHOST_kKeyJ,
      GHOST_kKeyK,
      GHOST_kKeyL,
      GHOST_kKeyM,
      GHOST_kKeyN,
      GHOST_kKeyO,
      GHOST_kKeyP,
      GHOST_kKeyQ,
      GHOST_kKeyR,
      GHOST_kKeyS,
      GHOST_kKeyT,
      GHOST_kKeyU,
      GHOST_kKeyV,
      GHOST_kKeyW,
      GHOST_kKeyX,
      GHOST_kKeyY,
      GHOST_kKeyZ,

      GHOST_kKeyLeftBracket  = '[',
      GHOST_kKeyRightBracket = ']',
      GHOST_kKeyBackslash    = 0x5C,
      GHOST_kKeyAccentGrave  = '`',

      
      GHOST_kKeyLeftShift = 0x100,
      GHOST_kKeyRightShift,
      GHOST_kKeyLeftControl,
      GHOST_kKeyRightControl,
      GHOST_kKeyLeftAlt,
      GHOST_kKeyRightAlt,
    GHOST_kKeyCommand,                    // APPLE only!
    GHOST_kKeyGrLess ,        // German PC only!

      GHOST_kKeyCapsLock,
      GHOST_kKeyNumLock,
      GHOST_kKeyScrollLock,

      GHOST_kKeyLeftArrow,
      GHOST_kKeyRightArrow,
      GHOST_kKeyUpArrow,
      GHOST_kKeyDownArrow,

      GHOST_kKeyPrintScreen,
      GHOST_kKeyPause,

      GHOST_kKeyInsert,
      GHOST_kKeyDelete,
      GHOST_kKeyHome,
      GHOST_kKeyEnd,
      GHOST_kKeyUpPage,
      GHOST_kKeyDownPage,

      // Numpad keys
      GHOST_kKeyNumpad0,
      GHOST_kKeyNumpad1,
      GHOST_kKeyNumpad2,
      GHOST_kKeyNumpad3,
      GHOST_kKeyNumpad4,
      GHOST_kKeyNumpad5,
      GHOST_kKeyNumpad6,
      GHOST_kKeyNumpad7,
      GHOST_kKeyNumpad8,
      GHOST_kKeyNumpad9,
      GHOST_kKeyNumpadPeriod,
      GHOST_kKeyNumpadEnter,
      GHOST_kKeyNumpadPlus,
      GHOST_kKeyNumpadMinus,
      GHOST_kKeyNumpadAsterisk,
      GHOST_kKeyNumpadSlash,

      // Function keys
      GHOST_kKeyF1,
      GHOST_kKeyF2,
      GHOST_kKeyF3,
      GHOST_kKeyF4,
      GHOST_kKeyF5,
      GHOST_kKeyF6,
      GHOST_kKeyF7,
      GHOST_kKeyF8,
      GHOST_kKeyF9,
      GHOST_kKeyF10,
      GHOST_kKeyF11,
      GHOST_kKeyF12,
      GHOST_kKeyF13,
      GHOST_kKeyF14,
      GHOST_kKeyF15,
      GHOST_kKeyF16,
      GHOST_kKeyF17,
      GHOST_kKeyF18,
      GHOST_kKeyF19,
      GHOST_kKeyF20,
      GHOST_kKeyF21,
      GHOST_kKeyF22,
      GHOST_kKeyF23,
      GHOST_kKeyF24
} GHOST_TKey;


typedef void* GHOST_TEventDataPtr;

typedef struct {
      /** The x-coordinate of the cursor position. */
      GHOST_TInt32 x;
      /** The y-coordinate of the cursor position. */
      GHOST_TInt32 y;
} GHOST_TEventCursorData;

typedef struct {
      /** The mask of the mouse button. */
      GHOST_TButtonMask button;
} GHOST_TEventButtonData;

typedef struct {
      /** Displacement of a mouse wheel. */
      GHOST_TInt32 z;   
} GHOST_TEventWheelData;

typedef struct {
      /** The key code. */
      GHOST_TKey        key;
      /** The ascii code for the key event ('\0' if none). */
      char              ascii;
} GHOST_TEventKeyData;

typedef struct {
      /** Number of pixels on a line. */
      GHOST_TUns32      xPixels;
      /** Number of lines. */
      GHOST_TUns32      yPixels;
      /** Numberof bits per pixel. */
      GHOST_TUns32      bpp;
      /** Refresh rate (in Hertz). */
      GHOST_TUns32      frequency;
} GHOST_DisplaySetting;


/**
 * A timer task callback routine.
 * @param task The timer task object.
 * @param time The current time.
 */
#ifdef __cplusplus
class GHOST_ITimerTask;
typedef void (*GHOST_TimerProcPtr)(GHOST_ITimerTask* task, GHOST_TUns64 time);
#else
struct GHOST_TimerTaskHandle__;
typedef void (*GHOST_TimerProcPtr)(struct GHOST_TimerTaskHandle__* task, GHOST_TUns64 time);
#endif

#endif // _GHOST_TYPES_H_


Generated by  Doxygen 1.6.0   Back to index