/usr/lib/Wt/examples/javascript/Popup.C is in witty-examples 3.3.0-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | // This may look like C code, but it's really -*- C++ -*-
/*
* Copyright (C) 2008 Emweb bvba, Kessel-Lo, Belgium.
*
* See the LICENSE file for terms of use.
*/
#include "Popup.h"
using namespace Wt;
Popup::Popup(Type t, const WString& message, std::string defaultValue,
WObject *parent)
: WObject(parent),
okPressed_(this, "ok"),
cancelPressed_(this, "cancel"),
t_(t),
message_(message),
defaultValue_(defaultValue)
{
setJavaScript();
}
void Popup::setJavaScript()
{
/*
* Sets the JavaScript code.
*
* Notice how Wt.emit() is used to emit the okPressed or cancelPressed
* signal, and how arguments may be passed to it, matching the number and
* type of arguments in the JSignal definition.
*/
switch (t_) {
case Confirm:
show.setJavaScript
("function(){ if (confirm('" + message_.narrow() + "')) {"
+ okPressed_.createCall("''") +
"} else {"
+ cancelPressed_.createCall() +
"}}");
break;
case Alert:
show.setJavaScript
("function(){ alert('" + message_.narrow() + "');"
+ okPressed_.createCall("''") +
"}");
break;
case Prompt:
show.setJavaScript
("function(){var n = prompt('" + message_.narrow() + "', '"
+ defaultValue_ + "');"
"if (n != null) {"
+ okPressed_.createCall("n") +
"} else {"
+ cancelPressed_.createCall() +
"}}");
}
}
void Popup::setMessage(const WString& message)
{
message_ = message;
setJavaScript();
}
void Popup::setDefaultValue(const std::string defaultValue)
{
defaultValue_ = defaultValue;
setJavaScript();
}
Popup *Popup::createConfirm(const WString& message, WObject *parent)
{
return new Popup(Confirm, message, std::string(), parent);
}
Popup *Popup::createAlert(const WString& message, WObject *parent)
{
return new Popup(Alert, message, std::string(), parent);
}
Popup *Popup::createPrompt(const WString& message,
const std::string defaultValue, WObject *parent)
{
return new Popup(Prompt, message, defaultValue, parent);
}
|