3 #include "InkscapeBinding.h"
5 #include "help.h"
7 namespace Inkscape {
8 namespace Extension {
9 namespace Script {
12 class InkscapeImpl;
13 class DesktopImpl;
14 class DocumentImpl;
17 //#########################################################################
18 //# D O C U M E N T
19 //#########################################################################
20 class DocumentImpl : public Document
21 {
22 public:
23 DocumentImpl();
25 virtual ~DocumentImpl();
27 virtual void hello();
29 private:
32 };
35 DocumentImpl::DocumentImpl()
36 {
39 }
41 DocumentImpl::~DocumentImpl()
42 {
45 }
47 void DocumentImpl::hello()
48 {
49 printf("######## HELLO, WORLD! #######\n");
50 }
54 //#########################################################################
55 //# D E S K T O P
56 //#########################################################################
57 class DesktopImpl : public Desktop
58 {
59 public:
60 DesktopImpl();
62 virtual ~DesktopImpl();
64 virtual Document *getDocument();
66 private:
68 DocumentImpl document;
70 };
73 DesktopImpl::DesktopImpl()
74 {
77 }
79 DesktopImpl::~DesktopImpl()
80 {
83 }
86 Document *DesktopImpl::getDocument()
87 {
88 return &document;
89 }
93 //#########################################################################
94 //# D I A L O G M A N A G E R
95 //#########################################################################
97 class DialogManagerImpl : public DialogManager
98 {
99 public:
100 DialogManagerImpl();
102 virtual ~DialogManagerImpl();
104 virtual void showAbout();
106 private:
109 };
111 DialogManagerImpl::DialogManagerImpl()
112 {
114 }
117 DialogManagerImpl::~DialogManagerImpl()
118 {
120 }
123 void DialogManagerImpl::showAbout()
124 {
125 sp_help_about();
127 }
131 //#########################################################################
132 //# I N K S C A P E
133 //#########################################################################
135 class InkscapeImpl : public Inkscape
136 {
137 public:
138 InkscapeImpl();
140 virtual ~InkscapeImpl();
142 virtual Desktop *getDesktop();
144 virtual DialogManager *getDialogManager();
146 private:
148 DesktopImpl desktop;
150 DialogManagerImpl dialogManager;
152 };
154 Inkscape *getInkscape()
155 {
156 Inkscape *inkscape = new InkscapeImpl();
157 return inkscape;
158 }
161 InkscapeImpl::InkscapeImpl()
162 {
164 }
167 InkscapeImpl::~InkscapeImpl()
168 {
170 }
173 Desktop *InkscapeImpl::getDesktop()
174 {
175 return &desktop;
176 }
178 DialogManager *InkscapeImpl::getDialogManager()
179 {
180 return &dialogManager;
181 }
185 }//namespace Script
186 }//namespace Extension
187 }//namespace Inkscape
190 /*
191 Local Variables:
192 mode:c++
193 c-file-style:"stroustrup"
194 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
195 indent-tabs-mode:nil
196 fill-column:99
197 End:
198 */
199 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :