//////////////////////////////////////////////////////////////////////////////
// MainWindow.C
//////////////////////////////////////////////////////////////////////////////
#include "Application.hh"
#include "MainWindow.hh"
#include <Xm/MainW.h>

MainWindow::MainWindow ( char *name ) : BasicComponent ( name )
{
  _workArea = NULL;
  theApplication->registerWindow ( this );
}

void MainWindow::initialize( )
{
  _w = XtCreatePopupShell ( _name, applicationShellWidgetClass,
			   theApplication->baseWidget(), NULL, 0 );

  _main = XtCreateManagedWidget ( "mainWindow", xmMainWindowWidgetClass,
				 _w, NULL, 0 );
  
  _workArea = createWorkArea ( _main );  
  
  XtVaSetValues ( _main, XmNworkWindow, _workArea, NULL );
  
  if ( !XtIsManaged ( _workArea ) )
    XtManageChild ( _workArea ); 
}

MainWindow::~MainWindow( )
{
  theApplication->unregisterWindow ( this );
}

void MainWindow::manage()
{
  XtPopup ( _w, XtGrabNone );
  
  if ( XtIsRealized ( _w ) )
    XMapRaised ( XtDisplay ( _w ), XtWindow ( _w ) );
}

void MainWindow::unmanage()
{
  XtPopdown ( _w );
}

void MainWindow::iconify()
{
  XtVaSetValues ( _w, XmNiconic, TRUE, NULL );
  
  if ( XtIsRealized ( _w ) )
    XIconifyWindow ( XtDisplay ( _w ), XtWindow ( _w ), 0 );
}

