spice/client/windows/red_window_p.h
Arnon Gilboa ea9af22e62 spice: position mouse in primary monitor center after full screen toggle
-move _focused & _pointer_in_window from RedWindow to RedWindow_p's
-move shadow focus & cursor handling to sync()
-add reset_cursor_pos() to Platform
-Monitor set_mode()/restore() use virtual do_set_mode()/do_restore()
2009-12-30 22:15:02 +02:00

71 lines
1.8 KiB
C++

/*
Copyright (C) 2009 Red Hat, Inc.
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.
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, see <http://www.gnu.org/licenses/>.
*/
#ifndef _H_RED_WINDOW_P
#define _H_RED_WINDOW_P
#include <map>
class RedWindow;
class Menu;
struct PixelsSource_p;
typedef HWND Window;
class CommandInfo {
public:
CommandInfo() : menu (0), command (NULL) {}
CommandInfo(Menu* in_menu, int in_command) : menu (in_menu), command (in_command) {}
Menu* menu;
int command;
};
typedef std::map<int, CommandInfo> CommandMap;
class RedWindow_p {
public:
RedWindow_p();
void create(RedWindow& red_window, PixelsSource_p& pixels_source);
void destroy(PixelsSource_p& pixels_source);
void release_menu(Menu* menu);
void on_minimized();
void on_restored();
void on_pos_changing(RedWindow& red_window);
bool prossec_menu_commands(int cmd);
static LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
protected:
HWND _win;
uint32_t _modal_refs;
HMODULE _no_taskmgr_dll;
HHOOK _no_taskmgr_hook;
bool _focused;
bool _pointer_in_window;
bool _minimized;
bool _valid_pos;
int _x;
int _y;
CommandMap _commands_map;
HMENU _sys_menu;
};
#endif