NORMANDY_DDAY merge...
git-svn-id: svn://10.0.0.236/trunk@4478 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
370
mozilla/cmd/xfe/src/ProgressFrame.cpp
Normal file
370
mozilla/cmd/xfe/src/ProgressFrame.cpp
Normal file
@@ -0,0 +1,370 @@
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// ProgressFrame.cpp
|
||||
// By Daniel Malmer
|
||||
//
|
||||
// Implementation of the XP progress dialog.
|
||||
// Basically a wrapper around a DownloadFrame.
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "ProgressFrame.h"
|
||||
#include "pw_public.h"
|
||||
#include "Xfe/ProgressBar.h"
|
||||
#include "Dashboard.h"
|
||||
#include "xpassert.h"
|
||||
|
||||
#if 0
|
||||
#include "ViewGlue.h"
|
||||
#endif /*
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// C++ implementation of C API
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
/*
|
||||
* XFE_ProgressFrame
|
||||
*/
|
||||
XFE_ProgressFrame::XFE_ProgressFrame(Widget parent) : XFE_DownloadFrame(parent, NULL)
|
||||
{
|
||||
Widget label;
|
||||
|
||||
label = XtNameToWidget(getBaseWidget(), "*downloadURLLabel");
|
||||
if ( label ) fe_SetString(label, XmNlabelString, "");
|
||||
|
||||
label = XtNameToWidget(getBaseWidget(), "*downloadFileLabel");
|
||||
if ( label ) fe_SetString(label, XmNlabelString, "");
|
||||
#if 1
|
||||
/* 116773: Reopen ThreadFrame after "OK" IMAP Upgrade dialog
|
||||
* leads to core dump
|
||||
*/
|
||||
notifyInterested(XFE_Component::logoStartAnimation, NULL);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* ~XFE_ProgressFrame
|
||||
*/
|
||||
XFE_ProgressFrame::~XFE_ProgressFrame()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* XFE_ProgressFrame::Create
|
||||
*/
|
||||
pw_ptr
|
||||
XFE_ProgressFrame::Create(MWContext* /*parent*/, PW_WindowType /*type*/)
|
||||
{
|
||||
return (pw_ptr) this;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* XFE_ProgressFrame::Destroy
|
||||
*/
|
||||
void
|
||||
XFE_ProgressFrame::Destroy(void)
|
||||
{
|
||||
#if 1
|
||||
/* 116773: Reopen ThreadFrame after "OK" IMAP Upgrade dialog
|
||||
* leads to core dump
|
||||
*/
|
||||
delete_response();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* XFE_ProgressFrame::SetCancelCallback
|
||||
*/
|
||||
void
|
||||
XFE_ProgressFrame::SetCancelCallback(PW_CancelCallback cancelcb, void* cancelClosure)
|
||||
{
|
||||
m_cancel_cb = cancelcb;
|
||||
m_cancel_closure = cancelClosure;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* XFE_ProgressFrame::isCommandEnabled
|
||||
*/
|
||||
XP_Bool
|
||||
XFE_ProgressFrame::isCommandEnabled(CommandType cmd,
|
||||
void */*calldata*/, XFE_CommandInfo*)
|
||||
{
|
||||
return ( cmd == xfeCmdStopLoading );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* XFE_ProgressFrame::handlesCommand
|
||||
*/
|
||||
XP_Bool
|
||||
XFE_ProgressFrame::handlesCommand(CommandType cmd,
|
||||
void */*calldata*/, XFE_CommandInfo*)
|
||||
{
|
||||
return ( cmd == xfeCmdStopLoading );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* XFE_ProgressFrame::doCommand
|
||||
*/
|
||||
void
|
||||
XFE_ProgressFrame::doCommand(CommandType cmd,
|
||||
void */*calldata*/, XFE_CommandInfo*)
|
||||
{
|
||||
if ( cmd == xfeCmdStopLoading && m_cancel_cb ) {
|
||||
m_cancel_cb(m_cancel_closure);
|
||||
}
|
||||
|
||||
delete_response();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* XFE_ProgressFrame::SetWindowTitle
|
||||
*/
|
||||
void
|
||||
XFE_ProgressFrame::SetWindowTitle(const char *title)
|
||||
{
|
||||
XP_ASSERT(title);
|
||||
|
||||
XFE_SetDocTitle(fe_WidgetToMWContext(getBaseWidget()), (char*) title);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* XFE_ProgressFrame::SetLine1
|
||||
*/
|
||||
void
|
||||
XFE_ProgressFrame::SetLine1(const char* text)
|
||||
{
|
||||
setAddress((char*) text);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* XFE_ProgressFrame::SetLine2
|
||||
*/
|
||||
void
|
||||
XFE_ProgressFrame::SetLine2(const char* text)
|
||||
{
|
||||
setDestination((char*) text);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* XFE_ProgressFrame::SetProgressText
|
||||
*/
|
||||
void
|
||||
XFE_ProgressFrame::SetProgressText(const char* text)
|
||||
{
|
||||
m_dashboard->setStatusText(text);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* XFE_ProgressFrame::SetProgressRange
|
||||
*/
|
||||
void
|
||||
XFE_ProgressFrame::SetProgressRange(int32 minimum, int32 maximum)
|
||||
{
|
||||
m_progress_bar_min = minimum;
|
||||
m_progress_bar_max = maximum;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* XFE_ProgressFrame::SetProgressValue
|
||||
*/
|
||||
void
|
||||
XFE_ProgressFrame::SetProgressValue(int32 value)
|
||||
{
|
||||
int32 pct;
|
||||
|
||||
XP_ASSERT(value >= m_progress_bar_min);
|
||||
XP_ASSERT(value <= m_progress_bar_max);
|
||||
|
||||
pct = (int32) (100 *
|
||||
(double) value / (double) ( m_progress_bar_max - m_progress_bar_min ));
|
||||
|
||||
XFE_SetProgressBarPercent(getContext(), pct);
|
||||
}
|
||||
|
||||
/*
|
||||
* this is a slight hack so that the CONTEXT_DATA macro
|
||||
* still works even with this type of context
|
||||
*/
|
||||
void
|
||||
XFE_ProgressFrame::AssociateWindowWithContext(MWContext *context)
|
||||
{
|
||||
XP_ASSERT(context);
|
||||
if (!context) return;
|
||||
|
||||
XP_ASSERT(context->type==MWContextProgressModule);
|
||||
if (context->type!=MWContextProgressModule) return;
|
||||
|
||||
|
||||
#if 1
|
||||
/* 116773: Reopen ThreadFrame after "OK" IMAP Upgrade dialog
|
||||
* leads to core dump
|
||||
*/
|
||||
fe_ContextData *fec = XP_NEW_ZAP (fe_ContextData);
|
||||
XP_ASSERT(fec);
|
||||
CONTEXT_DATA(context) = fec;
|
||||
CONTEXT_WIDGET(context) = getBaseWidget();
|
||||
// ViewGlue_addMapping(this, (void *)context);
|
||||
#else
|
||||
fe_ContextData *fec;
|
||||
fec = (fe_ContextData *)XP_CALLOC(sizeof(fe_ContextData), 1);
|
||||
|
||||
CONTEXT_DATA(context) = fec;
|
||||
CONTEXT_WIDGET(context) = getBaseWidget();
|
||||
#endif
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
these are the C-visible functions from progress.h
|
||||
**********************************************************************/
|
||||
|
||||
/*
|
||||
* pw_Create
|
||||
*/
|
||||
pw_ptr
|
||||
pw_Create(MWContext* context, PW_WindowType type)
|
||||
{
|
||||
XFE_ProgressFrame* pw;
|
||||
|
||||
if ( context == NULL ) return NULL;
|
||||
|
||||
pw = new XFE_ProgressFrame(CONTEXT_WIDGET(context));
|
||||
|
||||
return pw->Create(context, type);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* pw_SetCancelCallback
|
||||
*/
|
||||
void
|
||||
pw_SetCancelCallback(pw_ptr pw, PW_CancelCallback cancelcb, void* cancelClosure)
|
||||
{
|
||||
if (pw)
|
||||
((XFE_ProgressFrame *)pw)->SetCancelCallback(cancelcb, cancelClosure);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* pw_Show
|
||||
*/
|
||||
void
|
||||
pw_Show(pw_ptr pw)
|
||||
{
|
||||
if (pw)
|
||||
((XFE_ProgressFrame *)pw)->show();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* pw_Hide
|
||||
*/
|
||||
void
|
||||
pw_Hide(pw_ptr pw)
|
||||
{
|
||||
if (pw) {
|
||||
((XFE_ProgressFrame *)pw)->hide();
|
||||
#if 1
|
||||
/* 116773: Reopen ThreadFrame after "OK" IMAP Upgrade dialog
|
||||
* leads to core dump
|
||||
*/
|
||||
((XFE_ProgressFrame *)pw)->notifyInterested(XFE_Component::logoStopAnimation, NULL);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* pw_Destroy
|
||||
*/
|
||||
void
|
||||
pw_Destroy(pw_ptr pw)
|
||||
{
|
||||
if (pw)
|
||||
((XFE_ProgressFrame *)pw)->Destroy();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* pw_SetWindowTitle
|
||||
*/
|
||||
void
|
||||
pw_SetWindowTitle(pw_ptr pw, const char *title)
|
||||
{
|
||||
if (pw)
|
||||
((XFE_ProgressFrame *)pw)->SetWindowTitle(title);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* pw_SetLine1
|
||||
*/
|
||||
void
|
||||
pw_SetLine1(pw_ptr pw, const char *text)
|
||||
{
|
||||
if (pw)
|
||||
((XFE_ProgressFrame *)pw)->SetLine1(text);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* pw_SetLine2
|
||||
*/
|
||||
void
|
||||
pw_SetLine2(pw_ptr pw, const char *text)
|
||||
{
|
||||
if (pw)
|
||||
((XFE_ProgressFrame *)pw)->SetLine2(text);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* pw_SetProgressText
|
||||
*/
|
||||
void
|
||||
pw_SetProgressText(pw_ptr pw, const char * text)
|
||||
{
|
||||
if (pw)
|
||||
((XFE_ProgressFrame *)pw)->SetProgressText(text);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* pw_SetProgressRange
|
||||
*/
|
||||
void
|
||||
pw_SetProgressRange(pw_ptr pw, int32 minimum, int32 maximum)
|
||||
{
|
||||
if (pw)
|
||||
((XFE_ProgressFrame *)pw)->SetProgressRange(minimum, maximum);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* pw_SetProgressValue
|
||||
*/
|
||||
void
|
||||
pw_SetProgressValue(pw_ptr pw, int32 value)
|
||||
{
|
||||
if (pw)
|
||||
((XFE_ProgressFrame *)pw)->SetProgressValue(value);
|
||||
}
|
||||
|
||||
void
|
||||
fe_pw_AssociateWindowWithContext(MWContext *context,
|
||||
pw_ptr pw)
|
||||
{
|
||||
if (pw)
|
||||
((XFE_ProgressFrame *)pw)->AssociateWindowWithContext(context);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user