1/*
2    SDL - Simple DirectMedia Layer
3    Copyright (C) 1997-2012 Sam Lantinga
4
5    This library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9
10    This library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14
15    You should have received a copy of the GNU Lesser General Public
16    License along with this library; if not, write to the Free Software
17    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18
19    Sam Lantinga
20    slouken@libsdl.org
21*/
22#include "SDL_config.h"
23
24/*
25	GEM SDL video driver
26	Window manager functions
27
28	Patrice Mandin
29*/
30
31/* Mint includes */
32#include <gem.h>
33
34#include "SDL_gemwm_c.h"
35
36/* Defines */
37
38#define ICONWIDTH 64
39#define ICONHEIGHT 64
40
41/* Functions */
42
43void GEM_SetCaption(_THIS, const char *title, const char *icon)
44{
45	if (title) {
46		GEM_title_name = title;
47		GEM_refresh_name = SDL_TRUE;
48	}
49
50	if (icon) {
51		GEM_icon_name = icon;
52		GEM_refresh_name = SDL_TRUE;
53	}
54}
55
56void GEM_SetIcon(_THIS, SDL_Surface *icon, Uint8 *mask)
57{
58	SDL_Surface *sicon;
59	SDL_Rect bounds;
60
61#if 0
62	if ((GEM_wfeatures & (1<<WF_ICONIFY))==0) {
63		return;
64	}
65#endif
66
67	if (icon == NULL) {
68		return;
69	}
70
71	/* Convert icon to the screen format */
72	sicon = SDL_CreateRGBSurface(SDL_SWSURFACE, icon->w, icon->h,
73		VDI_bpp, VDI_redmask, VDI_greenmask, VDI_bluemask, 0);
74	if ( sicon == NULL ) {
75		return;
76	}
77
78	bounds.x = 0;
79	bounds.y = 0;
80	bounds.w = icon->w;
81	bounds.h = icon->h;
82	if ( SDL_LowerBlit(icon, &bounds, sicon, &bounds) < 0 ) {
83		SDL_FreeSurface(sicon);
84		return;
85	}
86
87	GEM_icon = sicon;
88}
89
90int GEM_IconifyWindow(_THIS)
91{
92	if ((GEM_wfeatures & (1<<WF_ICONIFY))==0)
93		return 0;
94
95	GEM_message[0] = WM_ICONIFY;
96	GEM_message[1] = gl_apid;
97	GEM_message[2] = 0;
98	GEM_message[3] = GEM_handle;
99	GEM_message[4] = 0;
100	GEM_message[5] = GEM_desk_h-ICONHEIGHT;
101	GEM_message[6] = ICONWIDTH;
102	GEM_message[7] = ICONHEIGHT;
103
104	appl_write(gl_apid, sizeof(GEM_message), GEM_message);
105
106	return 1;
107}
108
109SDL_GrabMode GEM_GrabInput(_THIS, SDL_GrabMode mode)
110{
111	if (this->screen == NULL) {
112		return SDL_GRAB_OFF;
113	}
114
115	return mode;
116}
117