WindowsXP-SP1/shell/shdocvw/dialogs.dh

188 lines
5.4 KiB
Plaintext

//+--------------------------------------------------
//
// Dialog header file. This file contains functions
// common to all the dialogs.
//
//---------------------------------------------------
#define SEC_MOUSE_BUTTON 2
#define HTML_KEY_ESC 27
//+---------------------------------------------------------------------
//
// Synopsis: Disables or enables a button depending in
// whether there is text in txtFileName.
//
// Arguments: fEvent Whether or not the f'n was called by an
// event
//
// Macro Arguments: NAME Sets the name of the function
// (set##NAME##State)and the name of the
// constant (g_f##NAME##Enabled)
// BUTTON The button we're setting the state of.
// TEXTBOX The textbox querying.
//
// Returns: nothing
//
//----------------------------------------------------------------------
#define setState(NAME, BUTTON, TEXTBOX) function set##NAME##State(fEvent) \
{ \
if (fEvent && (event.propertyName != "value")) \
{ \
return; \
} \
\
if (("" == TEXTBOX.value) == g_f##NAME##Enabled) \
{ \
BUTTON.disabled = g_f##NAME##Enabled; \
g_f##NAME##Enabled = !g_f##NAME##Enabled; \
} \
} \
var g_f##NAME##Enabled = false; \
//+-------------------------------------------------------------------------
//
// Synopsis: Opens the help file with the appropriate helpid
//
// Arguments: elm The element we're looking for help with
//
// Returns: nothing
//
//--------------------------------------------------------------------------
function callHelp(elm)
{
if (null != elm.helpid)
{
//
// Have to convert the helpid to a string
//
window.showHelp(elm.helpfile, "" + parseInt(elm.helpid),
"popup");
}
else
{
//
// Walk up the tree until we reach the body tag or
// an element with a help id.
//
if ("BODY" != elm.tagName)
{
callHelp(elm.parentElement);
}
}
} // callHelp
//----------------------------------------------------------------------
//
// Synopsis: Discard the user's changes and dismiss the dialog.
//
// Arguments: none
//
// Returns: nothing
//
//----------------------------------------------------------------------
function btnCancelClick()
{
window.close();
} // btnCancelClick
//+----------------------------------------------------------------------
//
// Synopsis: Returns a range based on elm
//
// Arguments: elm An element
//
// Returns: a text range
//
//-----------------------------------------------------------------------
function getTextRange(elm)
{
var r = elm.parentTextEdit.createTextRange();
r.moveToElementText(elm);
return r;
} // getTextRange
//+----------------------------------------------------------------------
//
// Synopsis: Checks to see if the secondary mouse button was clicked
// and fires help if it was.
//
// Arguments: none
//
// Retuens: nothing
//
//-----------------------------------------------------------------------
function mouseClick()
{
//
// First, let's make sure we're not in a textbox
//
if (window.event.srcElement.id.substring(0,3)
== "txt")
{
return;
}
if (window.event.button == SEC_MOUSE_BUTTON)
{
callHelp(window.event.srcElement);
}
} // mouseClick
//+----------------------------------------------------------------------
//
// Synopsis: If the enter key is pressed while in a textbox,
// we do not want the default functionality. Instead,
// we close the dialog, doing nothing.
//
// Arguments: none
//
// Retutns: nothing
//
//-----------------------------------------------------------------------
function txtDefaultESC()
{
if (event.keyCode == HTML_KEY_ESC)
{
window.close();
return;
}
} // txtDefaultESC
window.onerror = HandleError
var L_Dialog_ErrorMessage = "An error has occurred in this dialog.";
var L_ErrorNumber_Text = "Error: ";
//+-------------------------------------------------------------------
//
// Synopsis: Turns off error messages in dialogs
//
// Arguments: none
//
// returns: true (tells browser not to handle message)
//
//--------------------------------------------------------------------
function HandleError(message, url, line)
{
var str = L_Dialog_ErrorMessage + "\n\n"
+ L_ErrorNumber_Text + line + "\n"
+ message;
alert (str);
window.close();
return true;
}