Mozilla/mozilla/cmd/xfe/src/ViewDialog.cpp
ramiro 0678c47f1a Documentation fixes. Cleanups for dead/changed file/class names.
No code changes, only comments.  Makes the xfe LXR pages better.
Approved by don.
Thanks do Dawn Endico <dawn@cannibal.mi.org> for providing the patch.


git-svn-id: svn://10.0.0.236/trunk@5087 18797224-902f-48f8-a5cc-f745e15eee43
1998-07-07 06:15:49 +00:00

205 lines
4.1 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/*
ViewDialog.cpp -- implementation for Dialogs that can contain views.
Created: Chris Toshok <toshok@netscape.com>, 16-Oct-96.
*/
#include "ViewDialog.h"
#include "xpassert.h"
#include "structs.h"
#include "xfe.h"
XFE_ViewDialog::XFE_ViewDialog(XFE_View *view, Widget parent,
char *name,
MWContext *context,
Boolean ok, Boolean cancel,
Boolean help, Boolean apply,
Boolean separator, Boolean modal,
Widget chrome_widget)
: XFE_Dialog(parent, name, ok, cancel, help, apply, separator, modal, chrome_widget),
m_okToDestroy(TRUE)
{
m_view = view;
m_context = context;
if (m_view)
m_view->show();
if (cancel)
XtAddCallback(m_chrome, XmNcancelCallback, cancel_cb, this);
if (ok)
XtAddCallback(m_chrome, XmNokCallback, ok_cb, this);
if (help)
XtAddCallback(m_chrome, XmNhelpCallback, help_cb, this);
if (apply)
XtAddCallback(m_chrome, XmNapplyCallback, apply_cb, this);
}
XFE_ViewDialog::~XFE_ViewDialog()
{
if (m_view)
delete m_view;
}
void
XFE_ViewDialog::setView(XFE_View *view)
{
m_view = view;
if (m_view)
m_view->show();
}
void
XFE_ViewDialog::cancel()
{
CommandType cancel_cmd = xfeCmdDialogCancel;
XP_ASSERT(m_view);
if (!m_view->handlesCommand(cancel_cmd))
{
XBell(XtDisplay(m_widget), 100);
return;
}
if (m_view->isCommandEnabled(cancel_cmd))
{
m_view->doCommand(cancel_cmd);
}
}
void
XFE_ViewDialog::help()
{
CommandType help_cmd = xfeCmdDialogHelp;
XP_ASSERT(m_view);
if (!m_view->handlesCommand(help_cmd))
{
XBell(XtDisplay(m_widget), 100);
return;
}
if (m_view->isCommandEnabled(help_cmd))
{
m_view->doCommand(help_cmd);
}
}
void
XFE_ViewDialog::apply()
{
CommandType apply_cmd = xfeCmdDialogApply;
XP_ASSERT(m_view);
if (!m_view->handlesCommand(apply_cmd))
{
XBell(XtDisplay(m_widget), 100);
return;
}
if (m_view->isCommandEnabled(apply_cmd))
{
m_view->doCommand(apply_cmd);
}
}
void
XFE_ViewDialog::ok()
{
CommandType ok_cmd = xfeCmdDialogOk;
XP_ASSERT(m_view);
if (!m_view->handlesCommand(ok_cmd))
{
XBell(XtDisplay(m_widget), 100);
return;
}
if (m_view->isCommandEnabled(ok_cmd))
{
m_view->doCommand(ok_cmd);
}
}
void
XFE_ViewDialog::cancel_cb(Widget, XtPointer clientData, XtPointer)
{
XFE_ViewDialog *obj = (XFE_ViewDialog*)clientData;
obj->cancel();
if (obj->m_okToDestroy)
XtDestroyWidget(obj->getBaseWidget());
}
void
XFE_ViewDialog::help_cb(Widget, XtPointer clientData, XtPointer)
{
XFE_ViewDialog *obj = (XFE_ViewDialog*)clientData;
obj->help();
}
void
XFE_ViewDialog::apply_cb(Widget, XtPointer clientData, XtPointer)
{
XFE_ViewDialog *obj = (XFE_ViewDialog*)clientData;
obj->apply();
}
void
XFE_ViewDialog::ok_cb(Widget, XtPointer clientData, XtPointer)
{
XFE_ViewDialog *obj = (XFE_ViewDialog*)clientData;
obj->ok();
if (obj->m_okToDestroy)
XtDestroyWidget(obj->getBaseWidget());
}
Pixel
XFE_ViewDialog::getFGPixel()
{
return CONTEXT_DATA(m_context)->fg_pixel;
}
Pixel
XFE_ViewDialog::getBGPixel()
{
return CONTEXT_DATA(m_context)->default_bg_pixel;
}
Pixel
XFE_ViewDialog::getTopShadowPixel()
{
return CONTEXT_DATA(m_context)->top_shadow_pixel;
}
Pixel
XFE_ViewDialog::getBottomShadowPixel()
{
return CONTEXT_DATA(m_context)->bottom_shadow_pixel;
}