src/video/photon/SDL_ph_wm.c
author Sam Lantinga <slouken@libsdl.org>
Sun, 04 Jan 2004 16:49:27 +0000
changeset 769 b8d311d90021
parent 753 b14fdadd8311
child 1312 c9b51268668f
permissions -rw-r--r--
Updated copyright information for 2004 (Happy New Year!)
     1 /*
     2     SDL - Simple DirectMedia Layer
     3     Copyright (C) 1997-2004 Sam Lantinga
     4 
     5     This library is free software; you can redistribute it and/or
     6     modify it under the terms of the GNU Library General Public
     7     License as published by the Free Software Foundation; either
     8     version 2 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     Library General Public License for more details.
    14 
    15     You should have received a copy of the GNU Library General Public
    16     License along with this library; if not, write to the Free
    17     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    18 
    19     Sam Lantinga
    20     slouken@libsdl.org
    21 */
    22 
    23 #ifdef SAVE_RCSID
    24 static char rcsid =
    25  "@(#) $Id$";
    26 #endif
    27 
    28 #define DISABLE_X11
    29 
    30 #include <stdlib.h>
    31 #include <string.h>
    32 #include <Ph.h>
    33 #include <photon/PpProto.h>
    34 #include <photon/PhWm.h>
    35 #include <photon/wmapi.h>
    36 #include "SDL_version.h"
    37 #include "SDL_error.h"
    38 #include "SDL_timer.h"
    39 #include "SDL_video.h"
    40 #include "SDL_syswm.h"
    41 #include "SDL_events_c.h"
    42 #include "SDL_pixels_c.h"
    43 #include "SDL_ph_modes_c.h"
    44 #include "SDL_ph_wm_c.h"
    45 
    46 void ph_SetIcon(_THIS, SDL_Surface *icon, Uint8 *mask)
    47 {
    48     return;
    49 }
    50 
    51 /* Set window caption */
    52 void ph_SetCaption(_THIS, const char *title, const char *icon)
    53 {
    54     SDL_Lock_EventThread();
    55 
    56     /* sanity check for set caption call before window init */
    57     if (window!=NULL)
    58     {
    59         PtSetResource(window, Pt_ARG_WINDOW_TITLE, title, 0);
    60     }
    61 
    62     SDL_Unlock_EventThread();
    63 }
    64 
    65 /* Iconify current window */
    66 int ph_IconifyWindow(_THIS)
    67 {
    68     PhWindowEvent_t windowevent;
    69 
    70     SDL_Lock_EventThread();
    71 
    72     memset( &windowevent, 0, sizeof (event) );
    73     windowevent.event_f = Ph_WM_HIDE;
    74     windowevent.event_state = Ph_WM_EVSTATE_HIDE;
    75     windowevent.rid = PtWidgetRid(window);
    76     PtForwardWindowEvent(&windowevent);
    77 
    78     SDL_Unlock_EventThread();
    79 
    80     return 0;
    81 }
    82 
    83 SDL_GrabMode ph_GrabInputNoLock(_THIS, SDL_GrabMode mode)
    84 {
    85     short abs_x, abs_y;
    86 
    87     if( mode == SDL_GRAB_OFF )
    88     {
    89         PtSetResource(window, Pt_ARG_WINDOW_STATE, Pt_FALSE, Ph_WM_STATE_ISALTKEY);
    90     }
    91     else
    92     {
    93         PtSetResource(window, Pt_ARG_WINDOW_STATE, Pt_TRUE, Ph_WM_STATE_ISALTKEY);
    94 
    95         PtGetAbsPosition(window, &abs_x, &abs_y);
    96         PhMoveCursorAbs(PhInputGroup(NULL), abs_x + SDL_VideoSurface->w/2, abs_y + SDL_VideoSurface->h/2);
    97     }
    98 
    99     SDL_Unlock_EventThread();
   100 
   101     return(mode);
   102 }
   103 
   104 SDL_GrabMode ph_GrabInput(_THIS, SDL_GrabMode mode)
   105 {
   106     SDL_Lock_EventThread();
   107     mode = ph_GrabInputNoLock(this, mode);
   108     SDL_Unlock_EventThread();
   109 
   110     return(mode);
   111 }
   112 
   113 
   114 int ph_GetWMInfo(_THIS, SDL_SysWMinfo *info)
   115 {
   116     if (info->version.major <= SDL_MAJOR_VERSION)
   117     {
   118         return 1;
   119     }
   120     else
   121     {
   122         SDL_SetError("Application not compiled with SDL %d.%d\n",
   123                       SDL_MAJOR_VERSION, SDL_MINOR_VERSION);
   124         return -1;
   125     }
   126 }