1 #ifdef HAVE_CONFIG_H
2 #include "config.h"
3 #endif
5 #include "InkscapeBinding.h"
6 #include "help.h"
8 namespace Inkscape {
9 namespace Extension {
10 namespace Script {
13 class InkscapeImpl;
14 class DesktopImpl;
15 class DocumentImpl;
18 //#########################################################################
19 //# D O C U M E N T
20 //#########################################################################
21 class DocumentImpl : public Document
22 {
23 public:
24 DocumentImpl();
26 virtual ~DocumentImpl();
28 virtual void hello();
30 private:
33 };
36 DocumentImpl::DocumentImpl()
37 {
40 }
42 DocumentImpl::~DocumentImpl()
43 {
46 }
48 void DocumentImpl::hello()
49 {
50 printf("######## HELLO, WORLD! #######\n");
51 }
55 //#########################################################################
56 //# D E S K T O P
57 //#########################################################################
58 class DesktopImpl : public Desktop
59 {
60 public:
61 DesktopImpl();
63 virtual ~DesktopImpl();
65 virtual Document *getDocument();
67 private:
69 DocumentImpl document;
71 };
74 DesktopImpl::DesktopImpl()
75 {
78 }
80 DesktopImpl::~DesktopImpl()
81 {
84 }
87 Document *DesktopImpl::getDocument()
88 {
89 return &document;
90 }
94 //#########################################################################
95 //# D I A L O G M A N A G E R
96 //#########################################################################
98 class DialogManagerImpl : public DialogManager
99 {
100 public:
101 DialogManagerImpl();
103 virtual ~DialogManagerImpl();
105 virtual void showAbout();
107 private:
110 };
112 DialogManagerImpl::DialogManagerImpl()
113 {
115 }
118 DialogManagerImpl::~DialogManagerImpl()
119 {
121 }
124 void DialogManagerImpl::showAbout()
125 {
126 sp_help_about();
128 }
132 //#########################################################################
133 //# I N K S C A P E
134 //#########################################################################
136 class InkscapeImpl : public Inkscape
137 {
138 public:
139 InkscapeImpl();
141 virtual ~InkscapeImpl();
143 virtual Desktop *getDesktop();
145 virtual DialogManager *getDialogManager();
147 private:
149 DesktopImpl desktop;
151 DialogManagerImpl dialogManager;
153 };
155 Inkscape *getInkscape()
156 {
157 Inkscape *inkscape = new InkscapeImpl();
158 return inkscape;
159 }
162 InkscapeImpl::InkscapeImpl()
163 {
165 }
168 InkscapeImpl::~InkscapeImpl()
169 {
171 }
174 Desktop *InkscapeImpl::getDesktop()
175 {
176 return &desktop;
177 }
179 DialogManager *InkscapeImpl::getDialogManager()
180 {
181 return &dialogManager;
182 }
186 }//namespace Script
187 }//namespace Extension
188 }//namespace Inkscape
191 /*
192 Local Variables:
193 mode:c++
194 c-file-style:"stroustrup"
195 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
196 indent-tabs-mode:nil
197 fill-column:99
198 End:
199 */
200 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :