Ejemplo n.º 1
0
 public static GlfwWindowCloseFun SetWindowCloseCallback(GlfwWindowPtr window, GlfwWindowCloseFun cbfun)
 {
     windowCloseFun = cbfun;
     return(GlfwDelegates.glfwSetWindowCloseCallback(window, cbfun));
 }
Ejemplo n.º 2
0
        static GlfwApp()
        {
            s_windowCloseCb = (GlfwWindowPtr wnd) =>
            {
                if (GetGlfwForm(wnd, out GlFwForm found))
                {
                    //user can cancel window close here here
                    bool userCancel = false;
                    GlFwForm.InvokeOnClosing(found, ref userCancel);
                    if (userCancel)
                    {
                        return;
                    }
                    //--------------------------------------
                    s_latestForm        = null;
                    s_latestGlWindowPtr = IntPtr.Zero;
                    //user let this window close ***
                    Glfw.SetWindowShouldClose(wnd, true);
                    Glfw.DestroyWindow(wnd); //destroy this
                    s_existingForms.Remove(wnd);
                    exitingFormList.Remove(found);
                    //--------------------------------------
                }
            };
            s_windowFocusCb = (GlfwWindowPtr wnd, bool focus) =>
            {
                if (GetGlfwForm(wnd, out GlFwForm found))
                {
                    GlFwForm.SetFocusState(found, focus);
                }
            };
            s_windowIconifyCb = (GlfwWindowPtr wnd, bool iconify) =>
            {
                if (GetGlfwForm(wnd, out GlFwForm found))
                {
                    GlFwForm.SetIconifyState(found, iconify);
                }
            };

            s_windowPosCb = (GlfwWindowPtr wnd, int x, int y) =>
            {
                if (GetGlfwForm(wnd, out GlFwForm found))
                {
                    GlFwForm.InvokeOnWindowMove(found, x, y);
                }
            };
            s_windowRefreshCb = (GlfwWindowPtr wnd) =>
            {
                if (GetGlfwForm(wnd, out GlFwForm found))
                {
                    GlFwForm.InvokeOnRefresh(found);
                }
            };

            s_windowSizeCb = (GlfwWindowPtr wnd, int width, int height) =>
            {
                if (GetGlfwForm(wnd, out GlFwForm found))
                {
                    GlFwForm.InvokeOnSizeChanged(found, width, height);
                }
            };
            s_windowCursorPosCb = (GlfwWindowPtr wnd, double x, double y) =>
            {
                if (GetGlfwForm(wnd, out GlFwForm found))
                {
                    found._latestMouseX = x;
                    found._latestMouseY = y;

                    GlFwForm.InvokeCursorPos(found, x, y);
                }
            };
            s_windowCursorEnterCb = (GlfwWindowPtr wnd, bool enter) =>
            {
                if (GetGlfwForm(wnd, out GlFwForm found))
                {
                    GlFwForm.SetCursorEnterState(found, enter);
                }
            };
            s_windowMouseButtonCb = (GlfwWindowPtr wnd, MouseButton btn, KeyActionKind keyAction) =>
            {
                if (GetGlfwForm(wnd, out GlFwForm found))
                {
                    int x = (int)found._latestMouseX;
                    int y = (int)found._latestMouseY;

                    GlFwForm.InvokeMouseButton(found, btn, keyAction, x, y);
                }
            };
            s_scrollCb = (GlfwWindowPtr wnd, double xoffset, double yoffset) =>
            {
                if (GetGlfwForm(wnd, out GlFwForm found))
                {
                    int x = (int)found._latestMouseX;
                    int y = (int)found._latestMouseY;
                    GlFwForm.InvokeOnScroll(found, x, y, (int)xoffset, (int)yoffset);
                }
            };
            s_windowKeyCb = (GlfwWindowPtr wnd, Key key, int scanCode, KeyActionKind action, KeyModifiers mods) =>
            {
                if (GetGlfwForm(wnd, out GlFwForm found))
                {
                    GlFwForm.InvokeKey(found, key, scanCode, action, mods);
                }
            };
            s_windowCharCb = (GlfwWindowPtr wnd, char ch) =>
            {
                if (GetGlfwForm(wnd, out GlFwForm found))
                {
                    GlFwForm.InvokeKeyPress(found, ch);
                }
            };
        }
Ejemplo n.º 3
0
 internal static extern void glfwSetWindowCloseCallback(GlfwWindowCloseFun cbfun);
Ejemplo n.º 4
0
 internal static extern GlfwWindowCloseFun glfwSetWindowCloseCallback(GlfwWindowPtr window, GlfwWindowCloseFun cbfun);
Ejemplo n.º 5
0
 public static GlfwWindowCloseFun SetWindowCloseCallback(GlfwWindowPtr window, GlfwWindowCloseFun cbfun)
 {
     windowCloseFun = cbfun;
     return GLFWDelegates.glfwSetWindowCloseCallback(window, cbfun);
 }
Ejemplo n.º 6
0
 public static void SetWindowCloseCallback(GlfwWindowCloseFun cbfun)
 {
     windowCloseFun = cbfun;
     GlfwDelegates.glfwSetWindowCloseCallback(cbfun);
 }
Ejemplo n.º 7
0
 internal static extern GlfwWindowCloseFun glfwSetWindowCloseCallback(GlfwWindowPtr window, GlfwWindowCloseFun cbfun);
Ejemplo n.º 8
0
        static GlfwApp()
        {
            s_windowCloseCb = (GlfwWindowPtr wnd) =>
            {

                GlFwForm found;
                if (GetGlfwForm(wnd, out found))
                {
                    //user can cancel window close here here
                    bool userCancel = false;
                    found.InvokeOnClosing(ref userCancel);
                    if (userCancel)
                    {
                        return;
                    }
                    //--------------------------------------
                    latestForm = null;
                    latestGlWindowPtr = IntPtr.Zero;
                    //user let this window close ***
                    Glfw.SetWindowShouldClose(wnd, true);
                    Glfw.DestroyWindow(wnd); //destroy this
                    existingForms.Remove(wnd);
                    exitingFormList.Remove(found);
                    //--------------------------------------
                }
            };
            s_windowFocusCb = (GlfwWindowPtr wnd, bool focus) =>
            {
                GlFwForm found;
                if (GetGlfwForm(wnd, out found))
                {
                    found.SetFocusState(focus);
                }
            };
            s_windowIconifyCb = (GlfwWindowPtr wnd, bool iconify) =>
            {
                GlFwForm found;
                if (GetGlfwForm(wnd, out found))
                {
                    found.SetIconifyState(iconify);
                }
            };

            s_windowPosCb = (GlfwWindowPtr wnd, int x, int y) =>
            {
                GlFwForm found;
                if (GetGlfwForm(wnd, out found))
                {
                    found.InvokeOnMove(x, y);
                }
            };
            s_windowRefreshCb = (GlfwWindowPtr wnd) =>
            {
                GlFwForm found;
                if (GetGlfwForm(wnd, out found))
                {
                    found.InvokeOnRefresh();
                }
            };

            s_windowSizeCb = (GlfwWindowPtr wnd, int width, int height) =>
            {
                GlFwForm found;
                if (GetGlfwForm(wnd, out found))
                {
                    found.InvokeOnSizeChanged(width, height);
                }
            };
            s_windowCursorPosCb = (GlfwWindowPtr wnd, double x, double y) =>
            {
                GlFwForm found;
                if (GetGlfwForm(wnd, out found))
                {
                    found.InvokeCursorPos(x, y);
                }
            };
            s_windowCursorEnterCb = (GlfwWindowPtr wnd, bool enter) =>
            {
                GlFwForm found;
                if (GetGlfwForm(wnd, out found))
                {
                    found.SetCursorEnterState(enter);
                }
            };
            s_windowMouseButtonCb = (GlfwWindowPtr wnd, MouseButton btn, KeyAction keyAction) =>
            {
                GlFwForm found;
                if (GetGlfwForm(wnd, out found))
                {
                    found.InvokeMouseButton(btn, keyAction);
                }
            };
            s_scrollCb = (GlfwWindowPtr wnd, double xoffset, double yoffset) =>
            {
                GlFwForm found;
                if (GetGlfwForm(wnd, out found))
                {
                    found.InvokeOnScroll(xoffset, yoffset);
                }
            };
            s_windowKeyCb = (GlfwWindowPtr wnd, Key key, int scanCode, KeyAction action, KeyModifiers mods) =>
            {
                GlFwForm found;
                if (GetGlfwForm(wnd, out found))
                {
                    found.InvokeKey(key, scanCode, action, mods);
                }
            };
            s_windowCharCb = (GlfwWindowPtr wnd, char ch) =>
            {
                GlFwForm found;
                if (GetGlfwForm(wnd, out found))
                {
                    found.InvokeKeyPress(ch);
                }
            };
        }
Ejemplo n.º 9
0
		public static void SetWindowCloseCallback(GlfwWindowPtr window, GlfwWindowCloseFun cbfun) {
			windowCloseFun = cbfun;
			GlfwDelegates.glfwSetWindowCloseCallback(window, cbfun);
		}
Ejemplo n.º 10
0
		public static GlfwWindowCloseFun SetWindowCloseCallback(WindowPtr window, GlfwWindowCloseFun cbfun) {
			windowCloseFun = cbfun;
			return glfwSetWindowCloseCallback(window, cbfun);
		}
Ejemplo n.º 11
0
		internal static extern void glfwSetWindowCloseCallback(GlfwWindowCloseFun cbfun);