Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/ghost/intern/GHOST_WindowWin32.h')
-rw-r--r--intern/ghost/intern/GHOST_WindowWin32.h165
1 files changed, 53 insertions, 112 deletions
diff --git a/intern/ghost/intern/GHOST_WindowWin32.h b/intern/ghost/intern/GHOST_WindowWin32.h
index cb6c09b335c..3666fa753f3 100644
--- a/intern/ghost/intern/GHOST_WindowWin32.h
+++ b/intern/ghost/intern/GHOST_WindowWin32.h
@@ -39,13 +39,9 @@
#include "GHOST_Window.h"
#include "GHOST_TaskbarWin32.h"
-
-#ifndef __MINGW64__
-#define _WIN32_WINNT 0x501 // require Windows XP or newer
+#ifdef WITH_INPUT_IME
+# include "GHOST_ImeWin32.h"
#endif
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-
#include <wintab.h>
#define PACKETDATA (PK_BUTTONS | PK_NORMAL_PRESSURE | PK_ORIENTATION | PK_CURSOR)
@@ -80,11 +76,11 @@ public:
* \param height The height the window.
* \param state The state the window is initially opened with.
* \param type The type of drawing context installed in this window.
- * \param stereoVisual Stereo visual for quad buffered stereo.
- * \param numOfAASamples Number of samples used for AA (zero if no AA)
+ * \param wantStereoVisual Stereo visual for quad buffered stereo.
+ * \param wantNumOfAASamples Number of samples used for AA (zero if no AA)
+ * \param parentWindowHwnd
*/
- GHOST_WindowWin32(
- GHOST_SystemWin32 *system,
+ GHOST_WindowWin32(GHOST_SystemWin32 *system,
const STR_String& title,
GHOST_TInt32 left,
GHOST_TInt32 top,
@@ -92,88 +88,80 @@ public:
GHOST_TUns32 height,
GHOST_TWindowState state,
GHOST_TDrawingContextType type = GHOST_kDrawingContextTypeNone,
- const bool stereoVisual = false,
- const GHOST_TUns16 numOfAASamples = 0,
+ bool wantStereoVisual = false,
+ bool warnOld = false,
+ GHOST_TUns16 wantNumOfAASamples = 0,
GHOST_TEmbedderWindowID parentWindowHwnd = 0,
- GHOST_TSuccess msEnabled = GHOST_kFailure,
- int msPixelFormat = 0
- );
+ bool is_debug = false);
/**
* Destructor.
* Closes the window and disposes resources allocated.
*/
- virtual ~GHOST_WindowWin32();
-
- /**
- * Returns the window to replace this one if it's getting replaced
- * \return The window replacing this one.
- */
-
- GHOST_Window *getNextWindow();
+ ~GHOST_WindowWin32();
/**
* Returns indication as to whether the window is valid.
* \return The validity of the window.
*/
- virtual bool getValid() const;
+ bool getValid() const;
/**
* Access to the handle of the window.
* \return The handle of the window.
*/
- virtual HWND getHWND() const;
+ HWND getHWND() const;
/**
* Sets the title displayed in the title bar.
* \param title The title to display in the title bar.
*/
- virtual void setTitle(const STR_String& title);
+ void setTitle(const STR_String& title);
/**
* Returns the title displayed in the title bar.
* \param title The title displayed in the title bar.
*/
- virtual void getTitle(STR_String& title) const;
+ void getTitle(STR_String& title) const;
/**
* Returns the window rectangle dimensions.
* The dimensions are given in screen coordinates that are relative to the upper-left corner of the screen.
* \param bounds The bounding rectangle of the window.
*/
- virtual void getWindowBounds(GHOST_Rect& bounds) const;
+ void getWindowBounds(GHOST_Rect& bounds) const;
/**
* Returns the client rectangle dimensions.
* The left and top members of the rectangle are always zero.
* \param bounds The bounding rectangle of the client area of the window.
*/
- virtual void getClientBounds(GHOST_Rect& bounds) const;
+ void getClientBounds(GHOST_Rect& bounds) const;
/**
* Resizes client rectangle width.
* \param width The new width of the client area of the window.
*/
- virtual GHOST_TSuccess setClientWidth(GHOST_TUns32 width);
+ GHOST_TSuccess setClientWidth(GHOST_TUns32 width);
/**
* Resizes client rectangle height.
* \param height The new height of the client area of the window.
*/
- virtual GHOST_TSuccess setClientHeight(GHOST_TUns32 height);
+ GHOST_TSuccess setClientHeight(GHOST_TUns32 height);
/**
* Resizes client rectangle.
* \param width The new width of the client area of the window.
* \param height The new height of the client area of the window.
*/
- virtual GHOST_TSuccess setClientSize(GHOST_TUns32 width, GHOST_TUns32 height);
+ GHOST_TSuccess setClientSize(GHOST_TUns32 width, GHOST_TUns32 height);
/**
* Returns the state of the window (normal, minimized, maximized).
* \return The state of the window.
*/
- virtual GHOST_TWindowState getState() const;
+ GHOST_TWindowState getState() const;
/**
* Converts a point in screen coordinates to client rectangle coordinates
@@ -182,7 +170,7 @@ public:
* \param outX The x-coordinate in the client rectangle.
* \param outY The y-coordinate in the client rectangle.
*/
- virtual void screenToClient(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const;
+ void screenToClient(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const;
/**
* Converts a point in screen coordinates to client rectangle coordinates
@@ -191,70 +179,38 @@ public:
* \param outX The x-coordinate on the screen.
* \param outY The y-coordinate on the screen.
*/
- virtual void clientToScreen(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const;
+ void clientToScreen(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const;
/**
* Sets the state of the window (normal, minimized, maximized).
* \param state The state of the window.
* \return Indication of success.
*/
- virtual GHOST_TSuccess setState(GHOST_TWindowState state);
+ GHOST_TSuccess setState(GHOST_TWindowState state);
/**
* Sets the order of the window (bottom, top).
* \param order The order of the window.
* \return Indication of success.
*/
- virtual GHOST_TSuccess setOrder(GHOST_TWindowOrder order);
-
- /**
- * Swaps front and back buffers of a window.
- * \return Indication of success.
- */
- virtual GHOST_TSuccess swapBuffers();
-
- /**
- * Sets the swap interval for swapBuffers.
- * \param interval The swap interval to use.
- * \return A boolean success indicator.
- */
- virtual GHOST_TSuccess setSwapInterval(int interval);
-
- /**
- * Gets the current swap interval for swapBuffers.
- * \return An integer.
- */
- virtual int getSwapInterval();
-
- /**
- * Activates the drawing context of this window.
- * \return Indication of success.
- */
- virtual GHOST_TSuccess activateDrawingContext();
+ GHOST_TSuccess setOrder(GHOST_TWindowOrder order);
/**
* Invalidates the contents of this window.
*/
- virtual GHOST_TSuccess invalidate();
+ GHOST_TSuccess invalidate();
/**
* Sets the progress bar value displayed in the window/application icon
* \param progress The progress %
*/
- virtual GHOST_TSuccess setProgressBar(float progress);
+ GHOST_TSuccess setProgressBar(float progress);
/**
* Hides the progress bar in the icon
*/
- virtual GHOST_TSuccess endProgressBar();
+ GHOST_TSuccess endProgressBar();
- /**
- * Returns the name of the window class.
- * \return The name of the window class.
- */
- static const wchar_t *getWindowClassName() {
- return s_windowClassName;
- }
/**
* Register a mouse click event (should be called
@@ -298,50 +254,53 @@ public:
/** if the window currently resizing */
bool m_inLiveResize;
-protected:
- GHOST_TSuccess initMultisample(PIXELFORMATDESCRIPTOR pfd);
+#ifdef WITH_INPUT_IME
+ GHOST_ImeWin32 *getImeInput() {return &m_imeImput;}
- /**
- * Tries to install a rendering context in this window.
- * \param type The type of rendering context installed.
- * \return Indication of success.
- */
- virtual GHOST_TSuccess installDrawingContext(GHOST_TDrawingContextType type);
+ void beginIME(
+ GHOST_TInt32 x, GHOST_TInt32 y,
+ GHOST_TInt32 w, GHOST_TInt32 h,
+ int completed);
+
+ void endIME();
+#endif /* WITH_INPUT_IME */
+
+private:
/**
- * Removes the current drawing context.
+ * \param type The type of rendering context create.
* \return Indication of success.
*/
- virtual GHOST_TSuccess removeDrawingContext();
+ GHOST_Context *newDrawingContext(GHOST_TDrawingContextType type);
/**
* Sets the cursor visibility on the window using
* native window system calls.
*/
- virtual GHOST_TSuccess setWindowCursorVisibility(bool visible);
+ GHOST_TSuccess setWindowCursorVisibility(bool visible);
/**
* Sets the cursor grab on the window using native window system calls.
* Using registerMouseClickEvent.
* \param mode GHOST_TGrabCursorMode.
*/
- virtual GHOST_TSuccess setWindowCursorGrab(GHOST_TGrabCursorMode mode);
+ GHOST_TSuccess setWindowCursorGrab(GHOST_TGrabCursorMode mode);
/**
* Sets the cursor shape on the window using
* native window system calls.
*/
- virtual GHOST_TSuccess setWindowCursorShape(GHOST_TStandardCursor shape);
+ GHOST_TSuccess setWindowCursorShape(GHOST_TStandardCursor shape);
/**
* Sets the cursor shape on the window using
* native window system calls.
*/
- virtual GHOST_TSuccess setWindowCustomCursorShape(GHOST_TUns8 bitmap[16][2],
+ GHOST_TSuccess setWindowCustomCursorShape(GHOST_TUns8 bitmap[16][2],
GHOST_TUns8 mask[16][2],
int hotX, int hotY);
- virtual GHOST_TSuccess setWindowCustomCursorShape(
+ GHOST_TSuccess setWindowCustomCursorShape(
GHOST_TUns8 *bitmap,
GHOST_TUns8 *mask,
int sizex,
@@ -360,12 +319,7 @@ protected:
HWND m_hWnd;
/** Device context handle. */
HDC m_hDC;
- /** OpenGL rendering context. */
- HGLRC m_hGlRc;
- /** The first created OpenGL context (for sharing display lists) */
- static HGLRC s_firsthGLRc;
- /** The first created device context handle. */
- static HDC s_firstHDC;
+
/** Flag for if window has captured the mouse */
bool m_hasMouseCaptured;
/** Flag if an operator grabs the mouse with WM_cursor_grab_enable/ungrab()
@@ -393,29 +347,16 @@ protected:
LONG m_maxPressure;
LONG m_maxAzimuth, m_maxAltitude;
- /** Preferred number of samples */
- GHOST_TUns16 m_multisample;
-
- /** Check if multisample is supported */
- GHOST_TSuccess m_multisampleEnabled;
-
- /** The pixelFormat to use for multisample */
- int m_msPixelFormat;
-
- /** We need to following to recreate the window */
- const STR_String& m_title;
- GHOST_TInt32 m_left;
- GHOST_TInt32 m_top;
- GHOST_TUns32 m_width;
- GHOST_TUns32 m_height;
GHOST_TWindowState m_normal_state;
- bool m_stereo;
-
- /** The GHOST_System passes this to wm if this window is being replaced */
- GHOST_Window *m_nextWindow;
/** Hwnd to parent window */
GHOST_TEmbedderWindowID m_parentWindowHwnd;
+
+#ifdef WITH_INPUT_IME
+ /** Handle input method editors event */
+ GHOST_ImeWin32 m_imeImput;
+#endif
+ bool m_debug_context;
};
#endif // __GHOST_WINDOWWIN32_H__