OSDN Git Service

fix CMakeList.txt for windows
[moflib/moflib.git] / moflib-1.0 / moflib / moflib / mof / Window.cpp
index f164673..8097438 100644 (file)
-#include "mof/Window.hpp"\r
-#include "mof/InputDevice.hpp"\r
-#include "mof/ConsoleIO.hpp"\r
-#include <stdexcept>\r
-\r
-LRESULT WINAPI wndProc( HWND hWnd , UINT msg, WPARAM wParam, LPARAM lParam)\r
-{\r
-       switch(msg)\r
-       {\r
-               case WM_ACTIVATEAPP:\r
-                       if(LOWORD(wParam) == 0)\r
-                       {\r
-                       /*      *ConsoleOut::getInstance() << "Window\82ª\94ñ\83A\83N\83e\83B\83u\82É\82È\82è\82Ü\82µ\82½" << std::endl;\r
-                               mof::System::getInstance()->activate(false);\r
-                               mof::InputDevice::getInstance()->activate(false);*/\r
-                               mof::InputDevice::setActivation(false);\r
-                       }\r
-                       else \r
-                       {\r
-                       /*      *ConsoleOut::getInstance() << "Window\82ª\83A\83N\83e\83B\83u\82É\82È\82è\82Ü\82µ\82½" << std::endl;\r
-                               mof::System::getInstance()->activate(true);\r
-                               mof::InputDevice::getInstance()->activate(true);*/\r
-                               mof::InputDevice::setActivation(true);\r
-                       }\r
-                       break;\r
-               case WM_DESTROY:\r
-                       PostQuitMessage(0);\r
-                       break;\r
-               case WM_SETCURSOR:\r
-                       SetCursor(NULL);\r
-                       break;\r
-       }\r
-       \r
-       return DefWindowProc( hWnd, msg, wParam, lParam );\r
-}\r
-\r
-\r
-\r
-\r
-namespace mof\r
-{\r
-    \r
-    struct Window::Impl\r
-    {\r
-       mof::tstring appName;\r
-       HINSTANCE hInstance;\r
-       HWND hWindow;\r
-       \r
-       Impl(const mof::tstring& appname , HINSTANCE hInstance );\r
-    };\r
-\r
-    Window::Impl::Impl(const mof::tstring &appname, HINSTANCE hInstance )\r
-    : appName( appname ) , hInstance( hInstance ) , hWindow( NULL )\r
-    {\r
-           // do nothing\r
-    }   \r
-\r
-    Window::Window( const mof::tstring &appname , int width , int height , bool fullscreen )\r
-    : m_pImpl( new mof::Window::Impl( appname , GetModuleHandle(NULL) ) )\r
-    {\r
-\r
-           // \83E\83B\83\93\83h\83E\83N\83\89\83X\90Ý\92è\r
-        WNDCLASSEX wc = \r
-            { \r
-                sizeof(WNDCLASSEX), CS_CLASSDC, wndProc, 0L, 0L, \r
-                m_pImpl->hInstance , NULL, NULL, NULL, NULL,\r
-                m_pImpl->appName.c_str()  , NULL\r
-            };\r
-        RegisterClassEx( &wc );\r
-\r
-           // \83E\83B\83\93\83h\83E\90\90¬\r
-           if( !fullscreen )\r
-           {\r
-               // \8ew\92è\82³\82ê\82½\83N\83\89\83C\83A\83\93\83g\97Ì\88æ\82ð\8am\95Û\82·\82é\82½\82ß\82É\95K\97v\82È\83E\83B\83\93\83h\83E\83T\83C\83Y\82ð\93¾\82é\r
-               RECT rect_win;\r
-               SetRect( &rect_win , 0 , 0 , width , height );\r
-               AdjustWindowRect( &rect_win , WS_OVERLAPPEDWINDOW , false );\r
-            \r
-               //Window\83\82\81[\83h\r
-               m_pImpl->hWindow = \r
-                   CreateWindow\r
-                   ( \r
-                        m_pImpl->appName.c_str() , m_pImpl->appName.c_str() , \r
-                        WS_OVERLAPPEDWINDOW , CW_USEDEFAULT, CW_USEDEFAULT, (rect_win.right - rect_win.left) ,\r
-                        (rect_win.bottom - rect_win.top) , GetDesktopWindow() , NULL , wc.hInstance , NULL\r
-                   );\r
-           }\r
-       else\r
-       {\r
-                   //\83t\83\8b\83X\83N\83\8a\81[\83\93\r
-                   m_pImpl->hWindow = \r
-                       CreateWindow\r
-                       (\r
-                           m_pImpl->appName.c_str() , m_pImpl->appName.c_str() , \r
-                           WS_VISIBLE , CW_USEDEFAULT , CW_USEDEFAULT , width , height ,\r
-                               HWND_DESKTOP , NULL , wc.hInstance , NULL\r
-                       );\r
-           }\r
-       \r
-        \r
-           // \83E\83B\83\93\83h\83E\95`\89æ\r
-        ShowWindow( m_pImpl->hWindow , SW_SHOWDEFAULT );\r
-        UpdateWindow( m_pImpl->hWindow );\r
-\r
-\r
-    } // function constructor \r
-\r
-\r
-\r
-    Window::~Window( )\r
-    {\r
-           try\r
-           {\r
-               \r
-               //\97á\8aO\82È\82°\82é\81H\r
-               UnregisterClass(m_pImpl->appName.c_str() , m_pImpl->hInstance );\r
-           }\r
-           catch(...)\r
-           {\r
-           }\r
-       \r
-    }\r
-    \r
-    HWND Window::getHandler() const {\r
-        return m_pImpl->hWindow;\r
-    }\r
-\r
+#include "mof/Window.hpp"
+#include "mof/InputDevice.hpp"
+#include "mof/ConsoleIO.hpp"
+#include <stdexcept>
+
+LRESULT WINAPI wndProc( HWND hWnd , UINT msg, WPARAM wParam, LPARAM lParam)
+{
+       switch(msg)
+       {
+               case WM_ACTIVATEAPP:
+                       if(LOWORD(wParam) == 0)
+                       {
+                       /*      *ConsoleOut::getInstance() << "Window\82ª\94ñ\83A\83N\83e\83B\83u\82É\82È\82è\82Ü\82µ\82½" << std::endl;
+                               mof::System::getInstance()->activate(false);
+                               mof::InputDevice::getInstance()->activate(false);*/
+                               mof::InputDevice::setActivation(false);
+                       }
+                       else 
+                       {
+                       /*      *ConsoleOut::getInstance() << "Window\82ª\83A\83N\83e\83B\83u\82É\82È\82è\82Ü\82µ\82½" << std::endl;
+                               mof::System::getInstance()->activate(true);
+                               mof::InputDevice::getInstance()->activate(true);*/
+                               mof::InputDevice::setActivation(true);
+                       }
+                       break;
+               case WM_DESTROY:
+                       PostQuitMessage(0);
+                       break;
+               case WM_SETCURSOR:
+                       SetCursor(NULL);
+                       break;
+       }
+       
+       return DefWindowProc( hWnd, msg, wParam, lParam );
+}
+
+
+
+
+namespace mof
+{
+    
+    struct Window::Impl
+    {
+       mof::tstring appName;
+       HINSTANCE hInstance;
+       HWND hWindow;
+       
+       Impl(const mof::tstring& appname , HINSTANCE hInstance );
+    };
+
+    Window::Impl::Impl(const mof::tstring &appname, HINSTANCE hInstance )
+    : appName( appname ) , hInstance( hInstance ) , hWindow( NULL )
+    {
+           // do nothing
+    }   
+
+    Window::Window( const mof::tstring &appname , int width , int height , bool fullscreen )
+    : m_pImpl( new mof::Window::Impl( appname , GetModuleHandle(NULL) ) )
+    {
+
+           // \83E\83B\83\93\83h\83E\83N\83\89\83X\90Ý\92è
+        WNDCLASSEX wc = 
+            { 
+                sizeof(WNDCLASSEX), CS_CLASSDC, wndProc, 0L, 0L, 
+                m_pImpl->hInstance , NULL, NULL, NULL, NULL,
+                m_pImpl->appName.c_str()  , NULL
+            };
+        RegisterClassEx( &wc );
+
+           // \83E\83B\83\93\83h\83E\90\90¬
+           if( !fullscreen )
+           {
+               // \8ew\92è\82³\82ê\82½\83N\83\89\83C\83A\83\93\83g\97Ì\88æ\82ð\8am\95Û\82·\82é\82½\82ß\82É\95K\97v\82È\83E\83B\83\93\83h\83E\83T\83C\83Y\82ð\93¾\82é
+               RECT rect_win;
+               SetRect( &rect_win , 0 , 0 , width , height );
+               AdjustWindowRect( &rect_win , WS_OVERLAPPEDWINDOW , false );
+            
+               //Window\83\82\81[\83h
+               m_pImpl->hWindow = 
+                   CreateWindow
+                   ( 
+                        m_pImpl->appName.c_str() , m_pImpl->appName.c_str() , 
+                        WS_OVERLAPPEDWINDOW , CW_USEDEFAULT, CW_USEDEFAULT, (rect_win.right - rect_win.left) ,
+                        (rect_win.bottom - rect_win.top) , GetDesktopWindow() , NULL , wc.hInstance , NULL
+                   );
+           }
+       else
+       {
+                   //\83t\83\8b\83X\83N\83\8a\81[\83\93
+                   m_pImpl->hWindow = 
+                       CreateWindow
+                       (
+                           m_pImpl->appName.c_str() , m_pImpl->appName.c_str() , 
+                           WS_VISIBLE , CW_USEDEFAULT , CW_USEDEFAULT , width , height ,
+                               HWND_DESKTOP , NULL , wc.hInstance , NULL
+                       );
+           }
+       
+        
+           // \83E\83B\83\93\83h\83E\95`\89æ
+        ShowWindow( m_pImpl->hWindow , SW_SHOWDEFAULT );
+        UpdateWindow( m_pImpl->hWindow );
+
+
+    } // function constructor 
+
+
+
+    Window::~Window( )
+    {
+           try
+           {
+               
+               //\97á\8aO\82È\82°\82é\81H
+               UnregisterClass(m_pImpl->appName.c_str() , m_pImpl->hInstance );
+           }
+           catch(...)
+           {
+           }
+       
+    }
+    
+    HWND Window::getHandler() const {
+        return m_pImpl->hWindow;
+    }
+
 } // namespace mof
\ No newline at end of file