summaryrefslogtreecommitdiff
path: root/src/SFML/Window/OSXCocoa/.svn/text-base/WindowImplCocoa.hpp.svn-base
diff options
context:
space:
mode:
Diffstat (limited to 'src/SFML/Window/OSXCocoa/.svn/text-base/WindowImplCocoa.hpp.svn-base')
-rw-r--r--src/SFML/Window/OSXCocoa/.svn/text-base/WindowImplCocoa.hpp.svn-base218
1 files changed, 218 insertions, 0 deletions
diff --git a/src/SFML/Window/OSXCocoa/.svn/text-base/WindowImplCocoa.hpp.svn-base b/src/SFML/Window/OSXCocoa/.svn/text-base/WindowImplCocoa.hpp.svn-base
new file mode 100644
index 0000000..b6c8beb
--- /dev/null
+++ b/src/SFML/Window/OSXCocoa/.svn/text-base/WindowImplCocoa.hpp.svn-base
@@ -0,0 +1,218 @@
+////////////////////////////////////////////////////////////
+//
+// SFML - Simple and Fast Multimedia Library
+// Copyright (C) 2007-2008 Lucas Soltic (elmerod@gmail.com) and Laurent Gomila (laurent.gom@gmail.com)
+//
+// This software is provided 'as-is', without any express or implied warranty.
+// In no event will the authors be held liable for any damages arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it freely,
+// subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented;
+// you must not claim that you wrote the original software.
+// If you use this software in a product, an acknowledgment
+// in the product documentation would be appreciated but is not required.
+//
+// 2. Altered source versions must be plainly marked as such,
+// and must not be misrepresented as being the original software.
+//
+// 3. This notice may not be removed or altered from any source distribution.
+//
+////////////////////////////////////////////////////////////
+
+#ifndef SFML_WINDOWIMPLCOCOA_HPP
+#define SFML_WINDOWIMPLCOCOA_HPP
+
+////////////////////////////////////////////////////////////
+// Headers
+////////////////////////////////////////////////////////////
+#include <SFML/Window/Event.hpp>
+#include <SFML/Window/WindowImpl.hpp>
+#include <string>
+
+namespace sf
+{
+namespace priv
+{
+
+typedef struct objc_members objc_members;
+
+////////////////////////////////////////////////////////////
+/// WindowImplCocoa is the Cocoa implementation of WindowImpl
+////////////////////////////////////////////////////////////
+class WindowImplCocoa : public WindowImpl
+{
+public :
+
+ ////////////////////////////////////////////////////////////
+ /// Default constructor
+ /// (creates a dummy window to provide a valid OpenGL context)
+ ///
+ ////////////////////////////////////////////////////////////
+ WindowImplCocoa();
+
+ ////////////////////////////////////////////////////////////
+ /// Construct the window implementation from an existing control
+ ///
+ /// \param Handle : Platform-specific handle of the control
+ /// \param Params : Creation parameters
+ ///
+ /// Note: the NSWindow object must not be defered !
+ ////////////////////////////////////////////////////////////
+ WindowImplCocoa(WindowHandle Handle, WindowSettings& params);
+
+ ////////////////////////////////////////////////////////////
+ /// Create the window implementation
+ ///
+ /// \param Mode : Video mode to use
+ /// \param Title : Title of the window
+ /// \param WindowStyle : Window style
+ /// \param Params : Creation parameters
+ ///
+ ////////////////////////////////////////////////////////////
+ WindowImplCocoa(VideoMode Mode, const std::string& Title, unsigned long WindowStyle, WindowSettings& params);
+
+ ////////////////////////////////////////////////////////////
+ /// Destructor
+ ///
+ ////////////////////////////////////////////////////////////
+ ~WindowImplCocoa();
+
+ ////////////////////////////////////////////////////////////
+ /// Check if there's an active context on the current thread
+ ///
+ /// \return True if there's a context bound to the current thread
+ ///
+ ////////////////////////////////////////////////////////////
+ static bool IsContextActive();
+
+ ////////////////////////////////////////////////////////////
+ /// Handle Cocoa NSEvent
+ ////////////////////////////////////////////////////////////
+ void HandleEvent(void *event);
+
+ ////////////////////////////////////////////////////////////
+ /// Handle event sent by the default NSNotificationCenter
+ ////////////////////////////////////////////////////////////
+ void HandleNotifiedEvent(Event& event);
+
+ ////////////////////////////////////////////////////////////
+ /// Return a pointer to the NSWindow (objc->windowHandle) object
+ ////////////////////////////////////////////////////////////
+ void *CocoaWindow(void);
+private :
+
+ ////////////////////////////////////////////////////////////
+ /// see WindowImpl::Display
+ ///
+ ////////////////////////////////////////////////////////////
+ virtual void Display();
+
+ ////////////////////////////////////////////////////////////
+ /// see WindowImpl::ProcessEvents
+ ///
+ ////////////////////////////////////////////////////////////
+ virtual void ProcessEvents();
+
+ ////////////////////////////////////////////////////////////
+ /// see WindowImpl::MakeActive
+ ///
+ ////////////////////////////////////////////////////////////
+ virtual void SetActive(bool Active = true) const;
+
+ ////////////////////////////////////////////////////////////
+ /// see WindowImpl::UseVerticalSync
+ ///
+ ////////////////////////////////////////////////////////////
+ virtual void UseVerticalSync(bool Enabled);
+
+ ////////////////////////////////////////////////////////////
+ /// see WindowImpl::ShowMouseCursor
+ ///
+ ////////////////////////////////////////////////////////////
+ virtual void ShowMouseCursor(bool Show);
+
+ ////////////////////////////////////////////////////////////
+ /// see WindowImpl::SetCursorPosition
+ ///
+ ////////////////////////////////////////////////////////////
+ virtual void SetCursorPosition(unsigned int Left, unsigned int Top);
+
+ ////////////////////////////////////////////////////////////
+ /// see WindowImpl::SetPosition
+ ///
+ ////////////////////////////////////////////////////////////
+ virtual void SetPosition(int Left, int Top);
+
+ ////////////////////////////////////////////////////////////
+ /// /see WindowImpl::SetSize
+ ///
+ ////////////////////////////////////////////////////////////
+ virtual void SetSize(unsigned int Width, unsigned int Height);
+
+ ////////////////////////////////////////////////////////////
+ /// see WindowImpl::Show
+ ///
+ ////////////////////////////////////////////////////////////
+ virtual void Show(bool State);
+
+ ////////////////////////////////////////////////////////////
+ /// see WindowImpl::EnableKeyRepeat
+ ///
+ ////////////////////////////////////////////////////////////
+ virtual void EnableKeyRepeat(bool Enabled);
+
+ ////////////////////////////////////////////////////////////
+ /// see WindowImpl::SetIcon
+ ///
+ ////////////////////////////////////////////////////////////
+ virtual void SetIcon(unsigned int Width, unsigned int Height, const Uint8* Pixels);
+
+
+
+ ////////////////////////////////////////////////////////////
+ /// My own part starts here !
+ ////////////////////////////////////////////////////////////
+
+
+ ////////////////////////////////////////////////////////////
+ /// Event handling for every event type.
+ /// 'event' is a NSEvent.
+ ////////////////////////////////////////////////////////////
+ int HandleKeyDown(void *event);
+ int HandleKeyUp(void *event);
+ int HandleModifierKey(void *event);
+ int HandleMouseDown(void *event);
+ int HandleMouseUp(void *event);
+ int HandleMouseMove(void *event);
+ int HandleMouseWheel(void *event);
+
+ ////////////////////////////////////////////////////////////
+ /// Make some allocations and initializations
+ ////////////////////////////////////////////////////////////
+ void Initialize(void);
+
+
+ ////////////////////////////////////////////////////////////
+ // Member data
+ ////////////////////////////////////////////////////////////
+
+ // An opaque structure that contains all obj-C objects
+ objc_members *members;
+
+ bool useKeyRepeat;
+ bool mouseIn;
+ float wheelStatus;
+
+ bool fullscreen;
+ VideoMode fullscreenMode;
+ VideoMode desktopMode;
+};
+
+} // namespace priv
+
+} // namespace sf
+
+#endif // SFML_WINDOWIMPLCOCOA_HPP