mutter/clutter/win32/clutter-stage-win32.h
Neil Roberts 1a263dca5c 2008-03-30 Neil Roberts <neil@o-hand.com>
* clutter/win32/clutter-win32.h: 
	* clutter/win32/clutter-stage-win32.h: 
	* clutter/win32/clutter-stage-win32.c: 
	* clutter/win32/clutter-event-win32.c: 
	* clutter/win32/clutter-backend-win32.h: 
	* clutter/win32/clutter-backend-win32.c:
	Upgraded for multi-stage support.

	* clutter/win32/clutter-stage-win32.c
	(clutter_stage_win32_request_coords): Fixed so that it doesn't set
	the position or size if it hasn't changed. This was causing
	problems when the window was resized using the top left corner. In
	that case the window receives resize and move messages separately
	which caused the window to flash at a different size or position
	while one message was handled before the other.
	(clutter_stage_win32_realize): Added PFD_GENERIC_ACCELERATED to
	the list of pixel format flags to force it to use hardware
	acceleration.

2008-03-30  Neil Roberts  <neil@o-hand.com>

	* clutter-sections.txt: Added clutter_win32_get_stage_from_window
2008-03-30 16:51:01 +00:00

82 lines
2.8 KiB
C

/* Clutter.
* An OpenGL based 'interactive canvas' library.
* Authored By Matthew Allum <mallum@openedhand.com>
* Copyright (C) 2006-2007 OpenedHand
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#ifndef __CLUTTER_STAGE_WIN32_H__
#define __CLUTTER_STAGE_WIN32_H__
#include <glib-object.h>
#include <clutter/clutter-stage.h>
#include <windows.h>
#include "clutter-backend-win32.h"
G_BEGIN_DECLS
#define CLUTTER_TYPE_STAGE_WIN32 (clutter_stage_win32_get_type ())
#define CLUTTER_STAGE_WIN32(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_STAGE_WIN32, ClutterStageWin32))
#define CLUTTER_IS_STAGE_WIN32(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_STAGE_WIN32))
#define CLUTTER_STAGE_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_STAGE_WIN32, ClutterStageWin32Class))
#define CLUTTER_IS_STAGE_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_STAGE_WIN32))
#define CLUTTER_STAGE_WIN32_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_STAGE_WIN32, ClutterStageWin32Class))
typedef struct _ClutterStageWin32 ClutterStageWin32;
typedef struct _ClutterStageWin32Class ClutterStageWin32Class;
struct _ClutterStageWin32
{
ClutterStage parent_instance;
HWND hwnd;
HDC client_dc;
gint win_xpos;
gint win_ypos;
gint win_width;
gint win_height;
gint scroll_pos;
RECT fullscreen_rect;
ClutterBackendWin32 *backend;
ClutterStageState state;
};
struct _ClutterStageWin32Class
{
ClutterStageClass parent_class;
};
GType clutter_stage_win32_get_type (void) G_GNUC_CONST;
void clutter_stage_win32_map (ClutterStageWin32 *stage_win32);
void clutter_stage_win32_unmap (ClutterStageWin32 *stage_win32);
/* Defined in clutter-event-win32.c */
LRESULT CALLBACK _clutter_stage_win32_window_proc (HWND hwnd,
UINT msg,
WPARAM wparam,
LPARAM lparam);
void _clutter_stage_win32_get_min_max_info (ClutterStageWin32 *stage_win32,
MINMAXINFO *min_max_info);
G_END_DECLS
#endif /* __CLUTTER_STAGE_H__ */