############################################################################# ## Name: XS/Display.xsp ## Purpose: XS++ for Wx::Display ## Author: Mattia Barbon ## Modified by: ## Created: 26/09/2007 ## RCS-ID: $Id: Display.xsp 2557 2009-05-11 10:41:11Z mbarbon $ ## Copyright: (c) 2007, 2009 Mattia Barbon ## Licence: This program is free software; you can redistribute it and/or ## modify it under the same terms as Perl itself ############################################################################# %module{Wx}; #include <wx/vidmode.h> #include <wx/display.h> #define wxDefaultVideoModePtr (wxVideoMode*)&wxDefaultVideoMode %typemap{wxDisplay*}{simple}; %typemap{wxVideoMode*}{simple}; %typemap{const wxVideoMode&}{reference}; %name{Wx::VideoMode} class wxVideoMode { wxVideoMode( int width = 0, int height = 0, int depth = 0, int freq = 0 ); %{ static void wxVideoMode::CLONE() CODE: wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object ); %} ## // thread OK ~wxVideoMode() %code%{ wxPli_thread_sv_unregister( aTHX_ "Wx::VideoMode", THIS, ST(0) ); delete THIS; %}; bool Matches( const wxVideoMode& other ) const; int GetWidth() const; int GetHeight() const; int GetDepth() const; bool IsOk() const; }; %name{Wx::Display} class wxDisplay { wxDisplay( unsigned n = 0 ); %{ static void wxDisplay::CLONE() CODE: wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object ); %} ## // thread OK ~wxDisplay() %code%{ wxPli_thread_sv_unregister( aTHX_ "Wx::Display", THIS, ST(0) ); delete THIS; %}; %{ int GetCount() CODE: RETVAL = wxDisplay::GetCount(); OUTPUT: RETVAL int GetFromPoint( point ) wxPoint point CODE: RETVAL = wxDisplay::GetFromPoint( point ); OUTPUT: RETVAL #if WXPERL_W_VERSION_GE( 2, 7, 0 ) int GetFromWindow( window ) wxWindow* window CODE: RETVAL = wxDisplay::GetFromWindow( window ); OUTPUT: RETVAL #endif %} bool IsOk() const; const wxRect& GetGeometry() const; #if WXPERL_W_VERSION_GE( 2, 7, 2 ) const wxRect& GetClientArea() const; #endif wxString GetName() const; bool IsPrimary() const; #if wxUSE_DISPLAY %{ void wxDisplay::GetModes( videoMode = wxDefaultVideoModePtr ) wxVideoMode* videoMode PPCODE: wxArrayVideoModes modes = THIS->GetModes( *videoMode ); size_t mx = modes.GetCount(); EXTEND( SP, int(mx) ); for( size_t i = 0; i < mx; ++i ) { wxVideoMode* mode = new wxVideoMode( modes[i] ); PUSHs( wxPli_non_object_2_sv( aTHX_ sv_newmortal(), mode, "Wx::VideoMode" ) ); } %} const wxVideoMode& GetCurrentMode() const; bool ChangeMode( const wxVideoMode& mode = wxDefaultVideoModePtr ); void ResetMode(); #endif // wxUSE_DISPLAY };