void WTextEdit::initTinyMCE() { const char *THIS_JS = "js/WTextEdit.js"; WApplication *app = WApplication::instance(); if (!app->javaScriptLoaded(THIS_JS)) { if (app->environment().ajax()) app->doJavaScript("window.tinyMCE_GZ = { loaded: true };", false); int version = getTinyMCEVersion(); std::string folder = version == 3 ? "tiny_mce/" : "tinymce/"; std::string jsFile = version == 3 ? "tiny_mce.js" : "tinymce.js"; std::string tinyMCEBaseURL = WApplication::relativeResourcesUrl() + folder; WApplication::readConfigurationProperty("tinyMCEBaseURL", tinyMCEBaseURL); if (!tinyMCEBaseURL.empty() && tinyMCEBaseURL[tinyMCEBaseURL.length()-1] != '/') tinyMCEBaseURL += '/'; app->require(tinyMCEBaseURL + jsFile, "window['tinyMCE']"); app->styleSheet().addRule(".mceEditor", "display: block; position: absolute;"); LOAD_JAVASCRIPT(app, THIS_JS, "WTextEdit", wtjs1); } }
void WTextEdit::init() { WApplication *app = WApplication::instance(); setInline(false); initTinyMCE(); version_ = getTinyMCEVersion(); setJavaScriptMember(" WTextEdit", "new " WT_CLASS ".WTextEdit(" + app->javaScriptClass() + "," + jsRef() + ");"); setJavaScriptMember (WT_RESIZE_JS, "function(e, w, h) { var obj = $('#" + id() + "').data('obj'); " "obj.wtResize(e, w, h); };"); std::string direction = app->layoutDirection() == LayoutDirection::LeftToRight ? "ltr" : "rtl"; setConfigurationSetting("directionality", direction); std::string toolbar; if (version_ < 4) toolbar = "fontselect,|,bold,italic,underline,|,fontsizeselect,|" ",forecolor,backcolor,|" ",justifyleft,justifycenter,justifyright,justifyfull,|,anchor,|" ",numlist,bullist"; else toolbar = "undo redo | styleselect | bold italic | link"; setToolBar(0, toolbar); for (int i = 1; i <= 3; i++) setToolBar(i, std::string()); setConfigurationSetting("doctype", wApp->docType()); setConfigurationSetting("relative_urls", true); if (version_ < 4) { //this setting is no longer mentioned in the tinymce documenation though... setConfigurationSetting("button_tile_map", true); setConfigurationSetting("theme", std::string("advanced")); setConfigurationSetting("theme_advanced_toolbar_location", std::string("top")); setConfigurationSetting("theme_advanced_toolbar_align", std::string("left")); } onChange_.connect(this, &WTextEdit::propagateOnChange); }