Files
wxWidgets/wxPython/src/_popupwin.i
Robin Dunn 1b8c7ba607 Updated to SWIG 1.3.24 (plus a patch that corrects a bug and adds back
some things that were changed/removed from my patch I submitted to
them.)

Since it is now possible easily and simply share the SWIG type tables
across modules I reverted to always using the stock SWIG runtime
instead of my slightly hacked up version of it exported via the
wxPython C API.

The %name directive is now deprecated so replaced most uses of it with
a custom %Rename macro that uses %rename internally.  These will
evetually need to be replaced with a DocDecl macro when docstrings are
added.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31128 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-12-23 20:44:09 +00:00

142 lines
4.3 KiB
OpenEdge ABL

/////////////////////////////////////////////////////////////////////////////
// Name: _popupwin.i
// Purpose: SWIG interface defs for wxPopupWindow and derived classes
//
// Author: Robin Dunn
//
// Created: 22-Dec-1998
// RCS-ID: $Id$
// Copyright: (c) 2003 by Total Control Software
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
// Not a %module
//---------------------------------------------------------------------------
%{
#include <wx/popupwin.h>
%}
//---------------------------------------------------------------------------
#ifndef __WXMAC__
%newgroup;
MustHaveApp(wxPopupWindow);
// wxPopupWindow: a special kind of top level window used for popup menus,
// combobox popups and such.
MustHaveApp(wxPopupWindow);
class wxPopupWindow : public wxWindow {
public:
%pythonAppend wxPopupWindow "self._setOORInfo(self)"
%pythonAppend wxPopupWindow() ""
wxPopupWindow(wxWindow *parent, int flags = wxBORDER_NONE);
%RenameCtor(PrePopupWindow, wxPopupWindow());
bool Create(wxWindow *parent, int flags = wxBORDER_NONE);
// move the popup window to the right position, i.e. such that it is
// entirely visible
//
// the popup is positioned at ptOrigin + size if it opens below and to the
// right (default), at ptOrigin - sizePopup if it opens above and to the
// left &c
//
// the point must be given in screen coordinates!
void Position(const wxPoint& ptOrigin,
const wxSize& size);
};
//---------------------------------------------------------------------------
%newgroup;
%{
class wxPyPopupTransientWindow : public wxPopupTransientWindow
{
public:
wxPyPopupTransientWindow() : wxPopupTransientWindow() {}
wxPyPopupTransientWindow(wxWindow* parent, int style = wxBORDER_NONE)
: wxPopupTransientWindow(parent, style) {}
DEC_PYCALLBACK_BOOL_ME(ProcessLeftDown);
DEC_PYCALLBACK__(OnDismiss);
DEC_PYCALLBACK_BOOL_(CanDismiss);
PYPRIVATE;
};
IMP_PYCALLBACK_BOOL_ME(wxPyPopupTransientWindow, wxPopupTransientWindow, ProcessLeftDown);
IMP_PYCALLBACK__(wxPyPopupTransientWindow, wxPopupTransientWindow, OnDismiss);
IMP_PYCALLBACK_BOOL_(wxPyPopupTransientWindow, wxPopupTransientWindow, CanDismiss);
%}
MustHaveApp(wxPyPopupTransientWindow);
// wxPopupTransientWindow: a wxPopupWindow which disappears automatically
// when the user clicks mouse outside it or if it loses focus in any other way
%rename(PopupTransientWindow) wxPyPopupTransientWindow;
class wxPyPopupTransientWindow : public wxPopupWindow
{
public:
%pythonAppend wxPyPopupTransientWindow "self._setOORInfo(self);self._setCallbackInfo(self, PopupTransientWindow)"
%pythonAppend wxPyPopupTransientWindow() ""
wxPyPopupTransientWindow(wxWindow *parent, int style = wxBORDER_NONE);
%RenameCtor(PrePopupTransientWindow, wxPyPopupTransientWindow());
void _setCallbackInfo(PyObject* self, PyObject* _class);
// popup the window (this will show it too) and keep focus at winFocus
// (or itself if it's NULL), dismiss the popup if we lose focus
virtual void Popup(wxWindow *focus = NULL);
// hide the window
virtual void Dismiss();
};
//---------------------------------------------------------------------------
#else // On Mac we need to provide dummy classes to keep the renamers in sync
%{
class wxPopupWindow : public wxWindow {
public:
wxPopupWindow(wxWindow *, int) { wxPyRaiseNotImplemented(); }
wxPopupWindow() { wxPyRaiseNotImplemented(); }
};
class wxPyPopupTransientWindow : public wxPopupWindow
{
public:
wxPyPopupTransientWindow(wxWindow *, int) { wxPyRaiseNotImplemented(); }
wxPyPopupTransientWindow() { wxPyRaiseNotImplemented(); }
};
%}
class wxPopupWindow : public wxWindow {
public:
wxPopupWindow(wxWindow *parent, int flags = wxBORDER_NONE);
%RenameCtor(PrePopupWindow, wxPopupWindow());
};
%rename(PopupTransientWindow) wxPyPopupTransientWindow;
class wxPyPopupTransientWindow : public wxPopupWindow
{
public:
wxPyPopupTransientWindow(wxWindow *parent, int style = wxBORDER_NONE);
%RenameCtor(PrePopupTransientWindow, wxPyPopupTransientWindow());
};
#endif
//---------------------------------------------------------------------------