1///////////////////////////////////////////////////////////////////////////// 2// Name: src/motif/popupwin.cpp 3// Purpose: wxPopupWindow implementation 4// Author: Mattia barbon 5// Modified by: 6// Created: 28.08.03 7// RCS-ID: $Id: popupwin.cpp 38945 2006-04-28 12:44:37Z ABX $ 8// Copyright: (c) Mattia barbon 9// Licence: wxWindows licence 10///////////////////////////////////////////////////////////////////////////// 11 12// For compilers that support precompilation, includes "wx.h". 13#include "wx/wxprec.h" 14 15#include "wx/popupwin.h" 16 17#ifndef WX_PRECOMP 18 #include "wx/app.h" 19#endif 20 21#ifdef __VMS__ 22#pragma message disable nosimpint 23#endif 24#include <Xm/Xm.h> 25#ifdef __VMS__ 26#pragma message enable nosimpint 27#endif 28 29#include "wx/motif/private.h" 30 31bool wxPopupWindow::Create( wxWindow *parent, int flags ) 32{ 33 if( !wxPopupWindowBase::Create( parent, flags ) ) 34 return false; 35 36 SetParent( parent ); 37 if( parent ) 38 parent->AddChild( this ); 39 40 Widget popup = XtVaCreatePopupShell( "shell", 41 overrideShellWidgetClass, 42 (Widget)wxTheApp->GetTopLevelWidget(), 43 NULL ); 44 45 m_mainWidget = (WXWidget)popup; 46 47 SetSize( 100, 100 ); // for child creation to work 48 49 XtSetMappedWhenManaged( popup, False ); 50 XtRealizeWidget( popup ); 51 52 return true; 53} 54 55bool wxPopupWindow::Show( bool show ) 56{ 57 if( !wxWindowBase::Show( show ) ) 58 return false; 59 60 if( show ) 61 { 62 XtPopup( (Widget)GetMainWidget(), XtGrabNone ); 63 } 64 else 65 { 66 XtPopdown( (Widget)GetMainWidget() ); 67 } 68 69 return true; 70} 71