mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-15 11:02:51 +00:00
win32u: Move some window functions to window.c.
This commit is contained in:
parent
8f9610fdff
commit
c22c10d6e9
|
@ -2468,115 +2468,3 @@ BOOL WINAPI NtUserGetPointerInfoList( UINT32 id, POINTER_INPUT_TYPE type, UINT_P
|
|||
RtlSetLastWin32Error( ERROR_CALL_NOT_IMPLEMENTED );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
HWND get_shell_window(void)
|
||||
{
|
||||
HWND hwnd = 0;
|
||||
|
||||
SERVER_START_REQ(set_global_windows)
|
||||
{
|
||||
req->flags = 0;
|
||||
if (!wine_server_call_err(req))
|
||||
hwnd = wine_server_ptr_handle( reply->old_shell_window );
|
||||
}
|
||||
SERVER_END_REQ;
|
||||
|
||||
return hwnd;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* NtUserSetShellWindowEx (win32u.@)
|
||||
*/
|
||||
BOOL WINAPI NtUserSetShellWindowEx( HWND shell, HWND list_view )
|
||||
{
|
||||
BOOL ret;
|
||||
|
||||
/* shell = Progman[Program Manager]
|
||||
* |-> SHELLDLL_DefView
|
||||
* list_view = | |-> SysListView32
|
||||
* | | |-> tooltips_class32
|
||||
* | |
|
||||
* | |-> SysHeader32
|
||||
* |
|
||||
* |-> ProxyTarget
|
||||
*/
|
||||
|
||||
if (get_shell_window())
|
||||
return FALSE;
|
||||
|
||||
if (get_window_long( shell, GWL_EXSTYLE ) & WS_EX_TOPMOST)
|
||||
return FALSE;
|
||||
|
||||
if (list_view != shell && (get_window_long( list_view, GWL_EXSTYLE ) & WS_EX_TOPMOST))
|
||||
return FALSE;
|
||||
|
||||
if (list_view && list_view != shell)
|
||||
NtUserSetWindowPos( list_view, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
|
||||
|
||||
NtUserSetWindowPos( shell, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
|
||||
|
||||
SERVER_START_REQ(set_global_windows)
|
||||
{
|
||||
req->flags = SET_GLOBAL_SHELL_WINDOWS;
|
||||
req->shell_window = wine_server_user_handle( shell );
|
||||
req->shell_listview = wine_server_user_handle( list_view );
|
||||
ret = !wine_server_call_err(req);
|
||||
}
|
||||
SERVER_END_REQ;
|
||||
return ret;
|
||||
}
|
||||
|
||||
HWND get_progman_window(void)
|
||||
{
|
||||
HWND ret = 0;
|
||||
|
||||
SERVER_START_REQ(set_global_windows)
|
||||
{
|
||||
req->flags = 0;
|
||||
if (!wine_server_call_err(req))
|
||||
ret = wine_server_ptr_handle( reply->old_progman_window );
|
||||
}
|
||||
SERVER_END_REQ;
|
||||
return ret;
|
||||
}
|
||||
|
||||
HWND set_progman_window( HWND hwnd )
|
||||
{
|
||||
SERVER_START_REQ(set_global_windows)
|
||||
{
|
||||
req->flags = SET_GLOBAL_PROGMAN_WINDOW;
|
||||
req->progman_window = wine_server_user_handle( hwnd );
|
||||
if (wine_server_call_err( req )) hwnd = 0;
|
||||
}
|
||||
SERVER_END_REQ;
|
||||
return hwnd;
|
||||
}
|
||||
|
||||
HWND get_taskman_window(void)
|
||||
{
|
||||
HWND ret = 0;
|
||||
|
||||
SERVER_START_REQ(set_global_windows)
|
||||
{
|
||||
req->flags = 0;
|
||||
if (!wine_server_call_err(req))
|
||||
ret = wine_server_ptr_handle( reply->old_taskman_window );
|
||||
}
|
||||
SERVER_END_REQ;
|
||||
return ret;
|
||||
}
|
||||
|
||||
HWND set_taskman_window( HWND hwnd )
|
||||
{
|
||||
/* hwnd = MSTaskSwWClass
|
||||
* |-> SysTabControl32
|
||||
*/
|
||||
SERVER_START_REQ(set_global_windows)
|
||||
{
|
||||
req->flags = SET_GLOBAL_TASKMAN_WINDOW;
|
||||
req->taskman_window = wine_server_user_handle( hwnd );
|
||||
if (wine_server_call_err( req )) hwnd = 0;
|
||||
}
|
||||
SERVER_END_REQ;
|
||||
return hwnd;
|
||||
}
|
||||
|
|
|
@ -94,16 +94,11 @@ extern HWND get_capture(void) DECLSPEC_HIDDEN;
|
|||
extern BOOL get_cursor_pos( POINT *pt ) DECLSPEC_HIDDEN;
|
||||
extern HWND get_focus(void) DECLSPEC_HIDDEN;
|
||||
extern DWORD get_input_state(void) DECLSPEC_HIDDEN;
|
||||
extern HWND get_progman_window(void) DECLSPEC_HIDDEN;
|
||||
extern HWND get_shell_window(void) DECLSPEC_HIDDEN;
|
||||
extern HWND get_taskman_window(void) DECLSPEC_HIDDEN;
|
||||
extern BOOL release_capture(void) DECLSPEC_HIDDEN;
|
||||
extern BOOL set_capture_window( HWND hwnd, UINT gui_flags, HWND *prev_ret ) DECLSPEC_HIDDEN;
|
||||
extern BOOL set_caret_blink_time( unsigned int time ) DECLSPEC_HIDDEN;
|
||||
extern BOOL set_caret_pos( int x, int y ) DECLSPEC_HIDDEN;
|
||||
extern BOOL set_foreground_window( HWND hwnd, BOOL mouse ) DECLSPEC_HIDDEN;
|
||||
extern HWND set_progman_window( HWND hwnd ) DECLSPEC_HIDDEN;
|
||||
extern HWND set_taskman_window( HWND hwnd ) DECLSPEC_HIDDEN;
|
||||
extern void toggle_caret( HWND hwnd ) DECLSPEC_HIDDEN;
|
||||
extern void update_mouse_tracking_info( HWND hwnd ) DECLSPEC_HIDDEN;
|
||||
|
||||
|
@ -232,6 +227,11 @@ extern ULONG set_window_style( HWND hwnd, ULONG set_bits, ULONG clear_bits ) DEC
|
|||
extern BOOL show_owned_popups( HWND owner, BOOL show ) DECLSPEC_HIDDEN;
|
||||
extern void update_window_state( HWND hwnd ) DECLSPEC_HIDDEN;
|
||||
extern HWND window_from_point( HWND hwnd, POINT pt, INT *hittest ) DECLSPEC_HIDDEN;
|
||||
extern HWND get_shell_window(void) DECLSPEC_HIDDEN;
|
||||
extern HWND get_progman_window(void) DECLSPEC_HIDDEN;
|
||||
extern HWND set_progman_window( HWND hwnd ) DECLSPEC_HIDDEN;
|
||||
extern HWND get_taskman_window(void) DECLSPEC_HIDDEN;
|
||||
extern HWND set_taskman_window( HWND hwnd ) DECLSPEC_HIDDEN;
|
||||
|
||||
/* to release pointers retrieved by win_get_ptr */
|
||||
static inline void release_win_ptr( struct tagWND *ptr )
|
||||
|
|
|
@ -5644,3 +5644,116 @@ DWORD WINAPI NtUserDragObject( HWND parent, HWND hwnd, UINT fmt, ULONG_PTR data,
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
HWND get_shell_window(void)
|
||||
{
|
||||
HWND hwnd = 0;
|
||||
|
||||
SERVER_START_REQ(set_global_windows)
|
||||
{
|
||||
req->flags = 0;
|
||||
if (!wine_server_call_err(req))
|
||||
hwnd = wine_server_ptr_handle( reply->old_shell_window );
|
||||
}
|
||||
SERVER_END_REQ;
|
||||
|
||||
return hwnd;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* NtUserSetShellWindowEx (win32u.@)
|
||||
*/
|
||||
BOOL WINAPI NtUserSetShellWindowEx( HWND shell, HWND list_view )
|
||||
{
|
||||
BOOL ret;
|
||||
|
||||
/* shell = Progman[Program Manager]
|
||||
* |-> SHELLDLL_DefView
|
||||
* list_view = | |-> SysListView32
|
||||
* | | |-> tooltips_class32
|
||||
* | |
|
||||
* | |-> SysHeader32
|
||||
* |
|
||||
* |-> ProxyTarget
|
||||
*/
|
||||
|
||||
if (get_shell_window())
|
||||
return FALSE;
|
||||
|
||||
if (get_window_long( shell, GWL_EXSTYLE ) & WS_EX_TOPMOST)
|
||||
return FALSE;
|
||||
|
||||
if (list_view != shell && (get_window_long( list_view, GWL_EXSTYLE ) & WS_EX_TOPMOST))
|
||||
return FALSE;
|
||||
|
||||
if (list_view && list_view != shell)
|
||||
NtUserSetWindowPos( list_view, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
|
||||
|
||||
NtUserSetWindowPos( shell, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
|
||||
|
||||
SERVER_START_REQ(set_global_windows)
|
||||
{
|
||||
req->flags = SET_GLOBAL_SHELL_WINDOWS;
|
||||
req->shell_window = wine_server_user_handle( shell );
|
||||
req->shell_listview = wine_server_user_handle( list_view );
|
||||
ret = !wine_server_call_err(req);
|
||||
}
|
||||
SERVER_END_REQ;
|
||||
return ret;
|
||||
}
|
||||
|
||||
HWND get_progman_window(void)
|
||||
{
|
||||
HWND ret = 0;
|
||||
|
||||
SERVER_START_REQ(set_global_windows)
|
||||
{
|
||||
req->flags = 0;
|
||||
if (!wine_server_call_err(req))
|
||||
ret = wine_server_ptr_handle( reply->old_progman_window );
|
||||
}
|
||||
SERVER_END_REQ;
|
||||
return ret;
|
||||
}
|
||||
|
||||
HWND set_progman_window( HWND hwnd )
|
||||
{
|
||||
SERVER_START_REQ(set_global_windows)
|
||||
{
|
||||
req->flags = SET_GLOBAL_PROGMAN_WINDOW;
|
||||
req->progman_window = wine_server_user_handle( hwnd );
|
||||
if (wine_server_call_err( req )) hwnd = 0;
|
||||
}
|
||||
SERVER_END_REQ;
|
||||
return hwnd;
|
||||
}
|
||||
|
||||
HWND get_taskman_window(void)
|
||||
{
|
||||
HWND ret = 0;
|
||||
|
||||
SERVER_START_REQ(set_global_windows)
|
||||
{
|
||||
req->flags = 0;
|
||||
if (!wine_server_call_err(req))
|
||||
ret = wine_server_ptr_handle( reply->old_taskman_window );
|
||||
}
|
||||
SERVER_END_REQ;
|
||||
return ret;
|
||||
}
|
||||
|
||||
HWND set_taskman_window( HWND hwnd )
|
||||
{
|
||||
/* hwnd = MSTaskSwWClass
|
||||
* |-> SysTabControl32
|
||||
*/
|
||||
SERVER_START_REQ(set_global_windows)
|
||||
{
|
||||
req->flags = SET_GLOBAL_TASKMAN_WINDOW;
|
||||
req->taskman_window = wine_server_user_handle( hwnd );
|
||||
if (wine_server_call_err( req )) hwnd = 0;
|
||||
}
|
||||
SERVER_END_REQ;
|
||||
return hwnd;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue