Wittyshare  0.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
WsModOdf.cpp
Go to the documentation of this file.
1 /*
2 * Copyright (C) 2006-Today Guy Deleeuw
3 *
4 * See the LICENSE file for terms of use.
5 */
6 
7 #include <dlfcn.h>
8 #include <stdio.h>
9 
10 #include <iostream>
11 
12 #include <Wt/WApplication>
13 #include <Wt/WLogger>
14 #include <Wt/WText>
15 
16 #include <Logger/WsLogger.h>
17 
18 #include "WsModOdf.h"
19 
20 extern "C" {
21  void WsModOdfInit(void)
22  {
23  void* hndl = dlopen("libwt.so", RTLD_NOW | RTLD_GLOBAL);
24  if ( hndl == NULL ) {
25  fprintf(stderr, "cannot load libwt.so shared library! %s\n", dlerror());
26  return;
27  }
28  }
29 }
30 
31 WsOdf::WsOdf(WContainerWidget* parent)
32  : WContainerWidget(parent)
33 { }
34 
36 { }
37 
38 void WsOdf::setDiffPath(const std::string& diffPath)
39 {
40  m_sDiffPath = diffPath;
41 }
42 
44 {
45  WContainerWidget::load();
46  setId("odf");
47  resize(WLength(100, WLength::Percentage), WLength(100, WLength::Percentage));
48  setOverflow(WContainerWidget::OverflowAuto);
49  std::string p1 = Wt::WApplication::instance()->internalPath();
50  //std::string p = "/demo_site/about/wt.odt";
51  // TODO : check security level
52  std::string p(m_sDiffPath + p1);
53  if ( p.size() > 0 ) {
54  std::string javaScript = "var odfelement = document.getElementById('odf'); odfcanvas = new odf.OdfCanvas(odfelement); odfcanvas.load('";
55  javaScript += p;
56  javaScript += "')";
57  WApplication::instance()->doJavaScript(javaScript);
58  }
59 }
60 
61 
62 
63 
64 
65 
66 
67 
69  : WsModule()
70 {
71  // Add the required css
72  WApplication::instance()->useStyleSheet(WApplication::instance()->resourcesUrl() + "webodf/webodf.css");
73  // Add the required javascript file
74  WApplication::instance()->require(WApplication::instance()->resourcesUrl() + "webodf/webodf.js", "webodf");
75 }
76 
78 {
79 }
80 
81 WWidget* WsModOdf::createContentsMenuBar(WContainerWidget* parent) const
82 {
83  return 0;
84 }
85 
86 WWidget* WsModOdf::createContents(WContainerWidget* parent) const
87 {
88  WsOdf* pcw = new WsOdf(parent);
89  pcw->setDiffPath(diffPath());
90  pcw->setOptions(options());
91  return pcw;
92 }
93 
94 WsEditorWidget* WsModOdf::createEditor(WContainerWidget* parent) const
95 {
96  return 0;
97 }
98 
99 WWidget* WsModOdf::createAdmin(WContainerWidget* parent) const
100 {
101  return 0;
102 }
103 
105 {
106  return true;
107 }
108 
109 std::string WsModOdf::description() const
110 {
111  return "WsModOdf wittyShare module";
112 }
113 
WsModOdf()
CTor.
Definition: WsModOdf.cpp:68
bool saveEditor() const
Definition: WsModOdf.cpp:104
const std::string & diffPath() const
Definition: WsOption.cpp:189
~WsModOdf()
Definition: WsModOdf.cpp:77
void setDiffPath(const std::string &diffPath)
Definition: WsModOdf.cpp:38
Wt::WWidget * createAdmin(Wt::WContainerWidget *parent=0) const
Create the contents for an administrator.
Definition: WsModOdf.cpp:99
void WsModOdfInit(void)
Definition: WsModOdf.cpp:21
const std::vector< WsOption > & options() const
Get all options.
Definition: WsOption.cpp:70
WsOdf(Wt::WContainerWidget *parent=0)
Definition: WsModOdf.cpp:31
std::string description() const
Return the description of the module.
Definition: WsModOdf.cpp:109
a wittyShare module
Wt::WWidget * createContents(Wt::WContainerWidget *parent=0) const
Create the contents.
Definition: WsModOdf.cpp:86
virtual void load()
Definition: WsModOdf.cpp:43
std::string m_sDiffPath
Definition: WsModOdf.h:30
WsEditorWidget * createEditor(Wt::WContainerWidget *parent=0) const
Create the contents for an editor (create a view of options).
Definition: WsModOdf.cpp:94
Wt::WWidget * createContentsMenuBar(Wt::WContainerWidget *parent=0) const
Create the functionalities.
Definition: WsModOdf.cpp:81
void setOptions(const std::vector< WsOption > &vOptions)
Set all options.
Definition: WsOption.cpp:57
Definition: WsModOdf.h:22
~WsOdf()
Definition: WsModOdf.cpp:35