From: Julian Smart Date: Sun, 10 Feb 2002 23:21:44 +0000 (+0000) Subject: Added wxPopupWindow skeleton (no implementation yet) X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/1246e28fb0601a0476d2cf71bde8d7550b74d11e Added wxPopupWindow skeleton (no implementation yet) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14116 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/distrib/msw/tmake/filelist.txt b/distrib/msw/tmake/filelist.txt index c355ca5904..4d71796efa 100644 --- a/distrib/msw/tmake/filelist.txt +++ b/distrib/msw/tmake/filelist.txt @@ -623,6 +623,7 @@ main.cpp X11 minifram.cpp X11 palette.cpp X11 pen.cpp X11 +popupwin.cpp X11 region.cpp X11 settings.cpp X11 toplevel.cpp X11 diff --git a/include/wx/x11/popupwin.h b/include/wx/x11/popupwin.h index 239ee04212..5d38c0c01a 100644 --- a/include/wx/x11/popupwin.h +++ b/include/wx/x11/popupwin.h @@ -1,50 +1,52 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/popupwin.h -// Purpose: wxPopupWindow class for wxMSW -// Author: Vadim Zeitlin -// Modified by: -// Created: 06.01.01 -// RCS-ID: $Id$ -// Copyright: (c) 2001 Vadim Zeitlin +///////////////////////////////////////////////////////////////////////////// +// Name: popupwin.h +// Purpose: +// Author: Robert Roebling +// Created: +// Id: $Id$ +// Copyright: (c) 2001 Robert Roebling // Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_MSW_POPUPWIN_H_ -#define _WX_MSW_POPUPWIN_H_ +#ifndef __GTKPOPUPWINH__ +#define __GTKPOPUPWINH__ -// ---------------------------------------------------------------------------- -// wxPopupWindow -// ---------------------------------------------------------------------------- +#ifdef __GNUG__ + #pragma interface "popupwin.h" +#endif -class WXDLLEXPORT wxPopupWindow : public wxPopupWindowBase +#include "wx/defs.h" +#include "wx/panel.h" +#include "wx/icon.h" + +//----------------------------------------------------------------------------- +// wxPopUpWindow +//----------------------------------------------------------------------------- + +class wxPopupWindow: public wxPopupWindowBase { public: wxPopupWindow() { } + virtual ~wxPopupWindow() { } wxPopupWindow(wxWindow *parent, int flags = wxBORDER_NONE) { (void)Create(parent, flags); } + bool Create(wxWindow *parent, int flags = wxBORDER_NONE); - bool Create(wxWindow *parent, int flags = wxBORDER_NONE) - { - return wxPopupWindowBase::Create(parent) && - wxWindow::Create(parent, -1, - wxDefaultPosition, wxDefaultSize, - (flags & wxBORDER_MASK) | wxPOPUP_WINDOW); - } + virtual bool Show( bool show = TRUE ); -protected: - virtual void DoGetPosition(int *x, int *y) const - { - // the position of a "top level" window such as this should be in - // screen coordinates, not in the client ones which MSW gives us - // (because we are a child window) - wxPopupWindowBase::DoGetPosition(x, y); + // implementation + // -------------- - GetParent()->ClientToScreen(x, y); - } +protected: + virtual void DoMoveWindow(int x, int y, int width, int height); + virtual void DoSetSize(int x, int y, + int width, int height, + int sizeFlags = wxSIZE_AUTO); +private: + DECLARE_EVENT_TABLE() DECLARE_DYNAMIC_CLASS(wxPopupWindow) }; -#endif // _WX_MSW_POPUPWIN_H_ - +#endif // __GTKPOPUPWINDOWH__ diff --git a/src/x11/popupwin.cpp b/src/x11/popupwin.cpp new file mode 100644 index 0000000000..a030e98cc6 --- /dev/null +++ b/src/x11/popupwin.cpp @@ -0,0 +1,71 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: popupwin.cpp +// Purpose: +// Author: Robert Roebling +// Id: $Id$ +// Copyright: (c) 1998 Robert Roebling +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#ifdef __GNUG__ +#pragma implementation "popupwin.h" +#endif + +#include "wx/defs.h" + +#if wxUSE_POPUPWIN + +#include "wx/popupwin.h" +#include "wx/frame.h" +#include "wx/app.h" +#include "wx/cursor.h" + +#include "wx/x11/private.h" + +//----------------------------------------------------------------------------- +// wxPopupWindow +//----------------------------------------------------------------------------- + +BEGIN_EVENT_TABLE(wxPopupWindow,wxPopupWindowBase) +END_EVENT_TABLE() + +IMPLEMENT_DYNAMIC_CLASS(wxPopupWindow, wxWindow) + +bool wxPopupWindow::Create( wxWindow *parent, int style ) +{ + m_needParent = FALSE; + + if (!CreateBase( parent, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, "popup" )) + { + wxFAIL_MSG( wxT("wxPopupWindow creation failed") ); + return FALSE; + } + + // All dialogs should really have this style + m_windowStyle |= wxTAB_TRAVERSAL; + + if (m_parent) m_parent->AddChild( this ); + + // TODO: implementation + + return TRUE; +} + +void wxPopupWindow::DoMoveWindow(int WXUNUSED(x), int WXUNUSED(y), int WXUNUSED(width), int WXUNUSED(height) ) +{ + wxFAIL_MSG( wxT("DoMoveWindow called for wxPopupWindow") ); +} + +void wxPopupWindow::DoSetSize( int x, int y, int width, int height, int sizeFlags ) +{ + // TODO +} +bool wxPopupWindow::Show( bool show ) +{ + // TODO? + bool ret = wxWindow::Show( show ); + + return ret; +} + +#endif // wxUSE_POPUPWIN