Files
wxWidgets/wxPython/src/_popupwin.i
Robin Dunn ab1f7d2aa9 All the Window and GDI (pen, bitmap, etc.) classes and also many
toplevel functions will now check that a wx.App object has already
been created and will raise a wx.PyNoAppError exception if not.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27565 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-06-01 21:38:05 +00:00

140 lines
4.2 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);
%name(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
%name(PopupTransientWindow) class wxPyPopupTransientWindow : public wxPopupWindow
{
public:
%pythonAppend wxPyPopupTransientWindow "self._setOORInfo(self);self._setCallbackInfo(self, PopupTransientWindow)"
%pythonAppend wxPyPopupTransientWindow() ""
wxPyPopupTransientWindow(wxWindow *parent, int style = wxBORDER_NONE);
%name(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);
%name(PrePopupWindow)wxPopupWindow();
};
%name(PopupTransientWindow) class wxPyPopupTransientWindow : public wxPopupWindow
{
public:
wxPyPopupTransientWindow(wxWindow *parent, int style = wxBORDER_NONE);
%name(PrePopupTransientWindow)wxPyPopupTransientWindow();
};
#endif
//---------------------------------------------------------------------------