]> git.pld-linux.org Git - packages/vim.git/blame - vim-bonobo-20030726.patch
- manpaged md5 fix
[packages/vim.git] / vim-bonobo-20030726.patch
CommitLineData
ddc6de56 1diff --new-file -u -r --exclude-from=excludelist vimcopy/src/Makefile vim/src/Makefile
2--- vimcopy/src/Makefile Mon Jun 2 09:32:18 2003
3+++ vim/src/Makefile Sat Jul 26 13:16:46 2003
4@@ -1291,6 +1291,10 @@
5 objects/fileio.o \
6 objects/fold.o \
7 objects/getchar.o \
8+ objects/gtkhtml_editor.o \
9+ objects/gtkhtml_editor_common.o \
10+ objects/gtkhtml_editor_skels.o \
11+ objects/gtkhtml_editor_stubs.o \
12 $(HANGULIN_OBJ) \
13 objects/if_cscope.o \
14 objects/if_xcmdsrv.o \
15@@ -1319,6 +1323,9 @@
16 objects/term.o \
17 objects/ui.o \
18 objects/undo.o \
19+ objects/vim_bonobo_main.o \
20+ objects/vim_bonobo_factory.o \
21+ objects/vim_bonobo_control.o \
22 objects/window.o \
23 $(GUI_OBJ) \
24 $(PERL_OBJ) \
25@@ -1328,7 +1335,7 @@
26 $(OS_EXTRA_OBJ) \
27 $(WORKSHOP_OBJ) \
28 $(NETBEANS_OBJ) \
29- $(WSDEBUG_OBJ)
30+ $(WSDEBUG_OBJ)
31
32 PRO_AUTO = \
33 buffer.pro \
34@@ -2132,6 +2139,18 @@
35 objects/gui_photon.o: gui_photon.c
36 $(CCC) -o $@ gui_photon.c
37
38+objects/gtkhtml_editor.o: gtkhtml_editor.c
39+ $(CCC) -o $@ gtkhtml_editor.c
40+
41+objects/gtkhtml_editor_common.o: gtkhtml_editor_common.c
42+ $(CCC) -o $@ gtkhtml_editor_common.c
43+
44+objects/gtkhtml_editor_skels.o: gtkhtml_editor_skels.c
45+ $(CCC) -o $@ gtkhtml_editor_skels.c
46+
47+objects/gtkhtml_editor_stubs.o: gtkhtml_editor_stubs.c
48+ $(CCC) -o $@ gtkhtml_editor_stubs.c
49+
50 objects/hangulin.o: hangulin.c
51 $(CCC) -o $@ hangulin.c
52
53@@ -2251,6 +2270,15 @@
54
55 objects/undo.o: undo.c
56 $(CCC) -o $@ undo.c
57+
58+objects/vim_bonobo_control.o: vim_bonobo_control.c
59+ $(CCC) -o $@ vim_bonobo_control.c
60+
61+objects/vim_bonobo_factory.o: vim_bonobo_factory.c
62+ $(CCC) -o $@ vim_bonobo_factory.c
63+
64+objects/vim_bonobo_main.o: vim_bonobo_main.c
65+ $(CCC) -o $@ vim_bonobo_main.c
66
67 objects/window.o: window.c
68 $(CCC) -o $@ window.c
69diff --new-file -u -r --exclude-from=excludelist vimcopy/src/Vim_Control.server vim/src/Vim_Control.server
70--- vimcopy/src/Vim_Control.server Wed Dec 31 18:00:00 1969
71+++ vim/src/Vim_Control.server Sat Jul 26 13:16:46 2003
72@@ -0,0 +1,34 @@
73+<oaf_info>
74+
75+<oaf_server iid="OAFIID:Vim_Control_Factory" type="exe" location="/home/jdhildeb/projects/gnome-vim/vim/src/vim">
76+ <oaf_attribute name="repo_ids" type="stringv">
77+ <item value="IDL:Bonobo/GenericFactory:1.0"/>
78+ </oaf_attribute>
79+ <oaf_attribute name="name" type="string" value="Vim Control factory"/>
80+ <oaf_attribute name="description" type="string" value="Vim Control factory"/>
81+</oaf_server>
82+
83+<oaf_server iid="OAFIID:Vim_Control" type="factory"
84+ location="OAFIID:Vim_Control_Factory">
85+ <oaf_attribute name="repo_ids" type="stringv">
86+ <item value="IDL:Bonobo/Unknown:1.0"/>
87+ <item value="IDL:Bonobo/Control:1.0"/>
88+ <item value="IDL:Bonobo/ItemContainer:1.0"/>
89+ <item value="IDL:Bonobo/PersistStream:1.0"/>
90+ <item value="IDL:Bonobo/PersistFile:1.0"/>
91+ <item value="IDL:Bonobo/Persist:1.0"/>
92+ <item value="IDL:Nautilus/View:1.0"/>
93+ </oaf_attribute>
94+ <oaf_attribute name="name" type="string" value="Vim Control"/>
95+ <oaf_attribute name="description" type="string" value="Vim Control"/>
96+ <oaf_attribute name="bonobo:editable" type="boolean" value="false"/>
97+ <oaf_attribute name="bonobo:supported_mime_types" type="stringv">
98+ <item value="text/plain"/>
99+ <item value="text/*"/>
100+ </oaf_attribute>
101+ <oaf_attribute name="nautilus:view_as_name" type="string" value="Text"/>
102+ <oaf_attribute name="nautilus:view_as_label" type="string" value="View/Edit in Vim"/>
103+ <oaf_attribute name="nautilus:viewer_label" type="string" value="Vim"/>
104+</oaf_server>
105+
106+</oaf_info>
107diff --new-file -u -r --exclude-from=excludelist vimcopy/src/buffer.c vim/src/buffer.c
108--- vimcopy/src/buffer.c Mon May 26 23:04:33 2003
109+++ vim/src/buffer.c Sat Jul 26 16:36:29 2003
110@@ -28,6 +28,10 @@
111
112 #include "vim.h"
113
114+#if defined(FEAT_GUI_COMPONENT) && defined(FEAT_GUI_GNOME)
115+#include "vim_bonobo_control.h"
116+#endif
117+
118 #if defined(FEAT_CMDL_COMPL) || defined(FEAT_LISTCMDS) || defined(FEAT_EVAL) || defined(FEAT_PERL)
119 static char_u *buflist_match __ARGS((regprog_T *prog, buf_T *buf));
120 # define HAVE_BUFLIST_MATCH
121@@ -132,10 +136,20 @@
122 if (curbuf->b_help)
123 fix_help_buffer();
124 }
125- else if (read_stdin)
126+ else if (read_stdin
127+#if defined(FEAT_GUI_COMPONENT) && defined(FEAT_GUI_GNOME)
128+ || read_from_container
129+#endif
130+ )
131 {
132 int save_bin = curbuf->b_p_bin;
133 linenr_T line_count;
134+#if defined(FEAT_GUI_COMPONENT) && defined(FEAT_GUI_GNOME)
135+ int flags = READ_NEW + READ_EMB_STREAM;
136+ curbuf->emb_buffer = TRUE;
137+#else
138+ int flags = READ_NEW + READ_STDIN;
139+#endif
140
141 /*
142 * First read the text in binary mode into the buffer.
143@@ -145,7 +159,7 @@
144 */
145 curbuf->b_p_bin = TRUE;
146 retval = readfile(NULL, NULL, (linenr_T)0,
147- (linenr_T)0, (linenr_T)MAXLNUM, eap, READ_NEW + READ_STDIN);
148+ (linenr_T)0, (linenr_T)MAXLNUM, eap, flags);
149 curbuf->b_p_bin = save_bin;
150 if (retval == OK)
151 {
152@@ -167,14 +181,21 @@
153 /* Put the cursor on the first line. */
154 curwin->w_cursor.lnum = 1;
155 curwin->w_cursor.col = 0;
156+#if defined(FEAT_GUI_COMPONENT) && defined(FEAT_GUI_GNOME)
157+ if (read_stdin)
158+ {
159+#endif
160 #ifdef FEAT_AUTOCMD
161 # ifdef FEAT_EVAL
162- apply_autocmds_retval(EVENT_STDINREADPOST, NULL, NULL, FALSE,
163+ apply_autocmds_retval(EVENT_STDINREADPOST, NULL, NULL, FALSE,
164 curbuf, &retval);
165 # else
166- apply_autocmds(EVENT_STDINREADPOST, NULL, NULL, FALSE, curbuf);
167+ apply_autocmds(EVENT_STDINREADPOST, NULL, NULL, FALSE, curbuf);
168 # endif
169 #endif
170+#if defined(FEAT_GUI_COMPONENT) && defined(FEAT_GUI_GNOME)
171+ }
172+#endif
173 }
174 }
175
176@@ -4510,6 +4531,11 @@
177 if (buf->b_sfname != NULL)
178 return (char *)buf->b_sfname;
179 return "[Scratch]";
180+ }
181+#endif
182+#if defined(FEAT_QUICKFIX) && defined(FEAT_GUI_COMPONENT)
183+ if ( buf->emb_buffer ) {
184+ return "[Embedded File]";
185 }
186 #endif
187 if (buf->b_fname == NULL)
188diff --new-file -u -r --exclude-from=excludelist vimcopy/src/config.h.in vim/src/config.h.in
189--- vimcopy/src/config.h.in Mon May 26 10:45:01 2003
190+++ vim/src/config.h.in Sat Jul 26 13:16:46 2003
191@@ -316,6 +316,9 @@
192 /* Define if GTK+ multihead support is available (requires GTK+ >= 2.1.1). */
193 #undef HAVE_GTK_MULTIHEAD
194
195+/* Define if you want component (i.e. Bonobo) support. */
196+#undef FEAT_GUI_COMPONENT
197+
198 /* Define if your X has own locale library */
199 #undef X_LOCALE
200
201diff --new-file -u -r --exclude-from=excludelist vimcopy/src/configure.in vim/src/configure.in
202--- vimcopy/src/configure.in Mon Jun 2 09:32:19 2003
203+++ vim/src/configure.in Sat Jul 26 13:16:46 2003
204@@ -1131,9 +1131,9 @@
205 AC_MSG_CHECKING(for libgnomeui-2.0)
206 if $PKG_CONFIG --exists libgnomeui-2.0; then
207 AC_MSG_RESULT(yes)
208- GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0`
209- GNOME_LIBDIR=`$PKG_CONFIG --libs-only-L libgnomeui-2.0`
210- GNOME_INCLUDEDIR=`$PKG_CONFIG --cflags libgnomeui-2.0`
211+ GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0 libnautilus`
212+ GNOME_LIBDIR=`$PKG_CONFIG --libs-only-L libgnomeui-2.0 libnautilus`
213+ GNOME_INCLUDEDIR=`$PKG_CONFIG --cflags libgnomeui-2.0 libnautilus`
214 $1
215 else
216 AC_MSG_RESULT(not found)
217@@ -1301,6 +1301,20 @@
218 AC_DEFINE(FEAT_GUI_GNOME)
219 GUI_INC_LOC="$GUI_INC_LOC $GNOME_INCLUDEDIR"
220 GTK_LIBNAME="$GTK_LIBNAME $GNOME_LIBDIR $GNOME_LIBS"
221+ AC_MSG_CHECKING(whether or not to include bonobo support)
222+ AC_ARG_ENABLE(bonobo,
223+ [ --enable-bonobo If using GNOME, enable bonobo support [default=no]],
224+ , enable_bonobo="no")
225+ if test "x$enable_bonobo" = "xno"; then
226+ AC_MSG_RESULT($enable_bonobo);
227+ else
228+ if test "x$SKIP_BONOBO" != "xYES" -a $gtk_major_version -ge 2; then
229+ AC_MSG_RESULT(yes);
230+ AC_DEFINE(FEAT_GUI_COMPONENT)
231+ else
232+ AC_MSG_RESULT(no (bonobo requires Gnome 2));
233+ fi
234+ fi
235 fi
236 }
237 fi
238Binary files vimcopy/src/container and vim/src/container differ
239diff --new-file -u -r --exclude-from=excludelist vimcopy/src/container.c vim/src/container.c
240--- vimcopy/src/container.c Wed Dec 31 18:00:00 1969
241+++ vim/src/container.c Sat Jul 26 13:16:46 2003
242@@ -0,0 +1,266 @@
243+
244+#include <bonobo.h>
245+#include <glib.h>
246+
247+BonoboControlFrame *ctrl_frame;
248+BonoboUIComponent *ui_comp;
249+
250+/* vbox */
251+GtkWidget *box;
252+GtkWidget *ctrl_widget;
253+
254+char * filename;
255+
256+static Bonobo_Control
257+instantiate_control()
258+{
259+ Bonobo_Control control;
260+ Bonobo_PersistFile pfile;
261+ Bonobo_PersistStream pstream;
262+ CORBA_Environment ev;
263+ Bonobo_Stream stream;
264+
265+ CORBA_exception_init (&ev);
266+
267+ /* get control component */
268+ control = bonobo_get_object ("OAFIID:Vim_Control",
269+ "Bonobo/Control", &ev);
270+ if (BONOBO_EX (&ev) || (control == CORBA_OBJECT_NIL))
271+ {
272+ CORBA_exception_free (&ev);
273+ return NULL;
274+ }
275+
276+#if 0
277+ /* get PersistFile interface */
278+ pfile = Bonobo_Unknown_queryInterface (control, "IDL:Bonobo/PersistFile:1.0", &ev);
279+ if (BONOBO_EX (&ev) || (pfile == CORBA_OBJECT_NIL))
280+ exit(1);
281+
282+ /* load the file */
283+ Bonobo_PersistFile_load (pfile, filename, &ev);
284+ bonobo_object_release_unref (pfile, NULL);
285+#endif
286+
287+ /* get PersistStream interface */
288+ pstream = Bonobo_Unknown_queryInterface (control, "IDL:Bonobo/PersistStream:1.0", &ev);
289+ if (BONOBO_EX (&ev) || (pstream == CORBA_OBJECT_NIL))
290+ {
291+ CORBA_exception_free (&ev);
292+ return NULL;
293+ }
294+
295+ /* load the file */
296+ stream = bonobo_get_object(filename, "IDL:Bonobo/Stream:1.0", &ev);
297+ if (ev._major != CORBA_NO_EXCEPTION) {
298+ g_warning("Error getting stream interface");
299+ bonobo_object_unref (BONOBO_OBJECT (stream));
300+ CORBA_exception_free (&ev);
301+ return NULL;
302+ }
303+ Bonobo_PersistStream_load (pstream, stream, "text/plain", &ev);
304+ if (ev._major != CORBA_NO_EXCEPTION) {
305+ g_warning("Error loading stream!");
306+ bonobo_object_unref (BONOBO_OBJECT (stream));
307+ CORBA_exception_free (&ev);
308+ return NULL;
309+ }
310+ bonobo_object_release_unref (pstream, NULL);
311+ return control;
312+}
313+
314+static void
315+verb_FileNewWindow (BonoboUIComponent *uic, gpointer user_data, const char *cname)
316+{
317+ printf("Got New Window!\n");
318+}
319+
320+static void
321+verb_DoNothing (BonoboUIComponent *uic, gpointer user_data, const char *cname)
322+{
323+}
324+
325+static BonoboUIVerb app_verbs[] = {
326+ BONOBO_UI_VERB ("FileNewWindow", verb_FileNewWindow),
327+ BONOBO_UI_VERB ("FileOpen", verb_DoNothing),
328+ BONOBO_UI_VERB ("FileCloseWindow", verb_DoNothing),
329+ BONOBO_UI_VERB ("FileExit", verb_DoNothing),
330+ BONOBO_UI_VERB ("Preferences", verb_DoNothing),
331+ BONOBO_UI_VERB ("HelpAbout", verb_DoNothing),
332+ BONOBO_UI_VERB ("Help", verb_DoNothing),
333+ BONOBO_UI_VERB ("DnDNewWindow", verb_DoNothing),
334+ BONOBO_UI_VERB ("DnDSameWindow", verb_DoNothing),
335+ BONOBO_UI_VERB ("DnDCancel", verb_DoNothing),
336+ BONOBO_UI_VERB_END
337+};
338+
339+static void
340+add_control_to_ui (BonoboWindow *window, Bonobo_Control control)
341+{
342+ CORBA_Environment ev;
343+ Bonobo_PropertyControl prop_control;
344+ BonoboUIContainer *ui_container;
345+ char *curdir;
346+
347+ g_return_if_fail (window != NULL);
348+ g_return_if_fail (BONOBO_IS_WINDOW (window));
349+
350+ CORBA_exception_init (&ev);
351+
352+ ui_container = bonobo_window_get_ui_container (BONOBO_WINDOW (window));
353+ ctrl_frame = bonobo_control_frame_new (BONOBO_OBJREF (ui_container));
354+
355+ /* bind and view new control widget */
356+ bonobo_control_frame_bind_to_control (ctrl_frame, control, &ev);
357+ bonobo_control_frame_control_activate (ctrl_frame);
358+ if (control != CORBA_OBJECT_NIL && ctrl_widget == NULL) {
359+ ctrl_widget = bonobo_control_frame_get_widget (ctrl_frame);
360+ if (!ctrl_widget)
361+ g_assert_not_reached ();
362+
363+ bonobo_window_set_contents (BONOBO_WINDOW(window), GTK_WIDGET(ctrl_widget));
364+ gtk_widget_show (ctrl_widget);
365+ }
366+
367+ ui_comp = bonobo_ui_component_new ("vim-container");
368+ bonobo_ui_component_set_container (ui_comp, BONOBO_OBJREF (ui_container), NULL);
369+
370+ curdir = (char *)getcwd(NULL, 0);
371+ bonobo_ui_util_set_ui (ui_comp, curdir, "vim-container.xml", "Vim", NULL);
372+ free( curdir );
373+ bonobo_ui_component_add_verb_list_with_data (ui_comp, app_verbs, window);
374+
375+ /* update sensitivity of the properties menu item */
376+ prop_control = Bonobo_Unknown_queryInterface (control,
377+ "IDL:Bonobo/PropertyControl:1.0", &ev);
378+ bonobo_ui_component_set_prop (ui_comp,
379+ "/commands/Preferences",
380+ "sensitive",
381+ prop_control == CORBA_OBJECT_NIL ? "0" : "1",
382+ &ev);
383+
384+ bonobo_object_release_unref (prop_control, &ev);
385+
386+ /* enable view menu */
387+ /* FIXME: We should check if the component adds anything to
388+ * the menu, so that we don't view an empty menu.
389+ */
390+ /*bonobo_ui_component_set_prop (ui_comp, "/menu/View", "hidden", "0", &ev);*/
391+
392+ CORBA_exception_free (&ev);
393+
394+ /* retrieve control properties and install listeners */
395+ //check_for_control_properties (window);
396+}
397+
398+static void write_stream_to_file(Bonobo_Control control)
399+{
400+ Bonobo_Storage storage;
401+ gchar * dirname;
402+ gchar * basename;
403+ CORBA_Environment ev;
404+ Bonobo_PersistStream pstream;
405+ Bonobo_Stream stream;
406+
407+ g_warning("write stream to file!");
408+ CORBA_exception_init (&ev);
409+
410+ dirname = g_path_get_dirname(filename);
411+ storage = bonobo_get_object(dirname, "IDL:Bonobo/Storage:1.0", &ev);
412+ g_free(dirname);
413+ if (BONOBO_EX (&ev) || (storage == CORBA_OBJECT_NIL))
414+ {
415+ CORBA_exception_free (&ev);
416+ return;
417+ }
418+
419+ pstream = Bonobo_Unknown_queryInterface (control, "IDL:Bonobo/PersistStream:1.0", &ev);
420+ if (BONOBO_EX (&ev) || (pstream == CORBA_OBJECT_NIL))
421+ {
422+ bonobo_object_release_unref(storage, NULL);
423+ CORBA_exception_free (&ev);
424+ return;
425+ }
426+
427+ basename = g_path_get_basename(filename);
428+ stream = Bonobo_Storage_openStream(storage, basename, Bonobo_Storage_WRITE, &ev );
429+ g_free(basename);
430+ if (BONOBO_EX (&ev) || (stream == CORBA_OBJECT_NIL))
431+ {
432+ bonobo_object_release_unref(pstream, NULL);
433+ bonobo_object_release_unref(storage, NULL);
434+ CORBA_exception_free (&ev);
435+ return;
436+ }
437+
438+ Bonobo_PersistStream_save (pstream, stream, "text/plain", &ev);
439+ if (ev._major != CORBA_NO_EXCEPTION) {
440+ g_warning("Error saving stream!");
441+ bonobo_object_unref (BONOBO_OBJECT (stream));
442+ bonobo_object_release_unref(pstream, NULL);
443+ bonobo_object_release_unref(storage, NULL);
444+ CORBA_exception_free (&ev);
445+ return;
446+ }
447+ bonobo_object_release_unref(stream, NULL);
448+ bonobo_object_release_unref(pstream, NULL);
449+ bonobo_object_release_unref(storage, NULL);
450+ return;
451+}
452+
453+static void
454+window_destroyed (GtkWindow *window, char * data)
455+{
456+ Bonobo_Control control;
457+
458+ control = bonobo_control_frame_get_control(ctrl_frame);
459+ write_stream_to_file(control);
460+ bonobo_control_frame_control_deactivate(ctrl_frame);
461+ bonobo_object_release_unref( control, NULL );
462+ bonobo_main_quit();
463+}
464+
465+int main(int argc, char * argv[] )
466+{
467+ BonoboWidget * bw;
468+ BonoboWindow *window;
469+ BonoboUIEngine *engine;
470+ BonoboUIContainer *container;
471+ Bonobo_Control control;
472+ gchar *cwd;
473+
474+ if( argc <= 1 ) {
475+ fprintf(stderr, "%s: not enough args\n", argv[0] );
476+ fprintf(stderr, "Usage: %s <text file>\n", argv[0]);
477+ exit(1);
478+ }
479+ cwd = g_get_current_dir();
480+ filename = g_build_filename( "file:", cwd, argv[1], NULL );
481+ g_free(cwd);
482+
483+ bonobo_ui_init ("container", "1.0", &argc, argv);
484+
485+ if(gnome_vfs_init () == FALSE)
486+ g_error (_("Could not initialize GnomeVFS!\n"));
487+
488+ window = BONOBO_WINDOW ( bonobo_window_new ("Window", "Vim Test Container"));
489+
490+ // instantiate a control
491+ control = instantiate_control();
492+ if( control == NULL )
493+ return 1;
494+
495+ // put it into our window
496+ add_control_to_ui (window, control);
497+
498+ g_signal_connect (window, "destroy",
499+ G_CALLBACK (window_destroyed),
500+ &window);
501+
502+
503+ gtk_widget_show_all( GTK_WIDGET( window ));
504+
505+ bonobo_main();
506+
507+ return 0;
508+}
509Binary files vimcopy/src/container.o and vim/src/container.o differ
510diff --new-file -u -r --exclude-from=excludelist vimcopy/src/ex_cmds2.c vim/src/ex_cmds2.c
511--- vimcopy/src/ex_cmds2.c Wed Jul 9 09:23:22 2003
512+++ vim/src/ex_cmds2.c Sat Jul 26 13:16:47 2003
513@@ -704,6 +704,12 @@
514 int forceit;
515 int allbuf; /* may write all buffers */
516 {
517+#ifdef FEAT_GUI_COMPONENT
518+ if ( buf->emb_buffer ) {
519+ EMSG(_("E467: Cannot close embedded file"));
520+ return TRUE;
521+ }
522+#endif
523 if ( !forceit
524 && bufIsChanged(buf)
525 && (mult_win || buf->b_nwindows <= 1)
526diff --new-file -u -r --exclude-from=excludelist vimcopy/src/ex_docmd.c vim/src/ex_docmd.c
527--- vimcopy/src/ex_docmd.c Mon May 26 10:45:01 2003
528+++ vim/src/ex_docmd.c Sat Jul 26 13:16:47 2003
529@@ -5348,8 +5348,13 @@
530 }
531 else
532 {
533+#ifdef FEAT_GUI_COMPONENT
534+ EMSG(_(e_compnoquit));
535+ not_exiting();
536+ return;
537+#endif
538 #ifdef FEAT_WINDOWS
539- if (only_one_window()) /* quit last window */
540+ if (only_one_window()) /* quit last window */
541 #endif
542 getout(0);
543 #ifdef FEAT_WINDOWS
544@@ -5370,8 +5375,12 @@
545 ex_cquit(eap)
546 exarg_T *eap;
547 {
548+#ifdef FEAT_GUI_COMPONENT
549+ EMSG(_(e_compnoquit));
550+ return;
551+#endif
552 getout(1); /* this does not always pass on the exit code to the Manx
553- compiler. why? */
554+ compiler. why? */
555 }
556
557 /*
558@@ -5391,6 +5400,10 @@
559 return;
560 }
561 # endif
562+#ifdef FEAT_GUI_COMPONENT
563+ EMSG(_(e_compnoquit));
564+ return;
565+#endif
566 exiting = TRUE;
567 if (eap->forceit || !check_changed_any(FALSE))
568 getout(0);
569@@ -5585,8 +5598,13 @@
570 }
571 else
572 {
573+#ifdef FEAT_GUI_COMPONENT
574+ EMSG(_(e_compnoquit));
575+ not_exiting();
576+ return;
577+#endif
578 #ifdef FEAT_WINDOWS
579- if (only_one_window()) /* quit last window, exit Vim */
580+ if ( only_one_window()) /* quit last window, exit Vim */
581 #endif
582 getout(0);
583 #ifdef FEAT_WINDOWS
584diff --new-file -u -r --exclude-from=excludelist vimcopy/src/fileio.c vim/src/fileio.c
585--- vimcopy/src/fileio.c Fri Jul 25 11:04:42 2003
586+++ vim/src/fileio.c Sat Jul 26 13:16:47 2003
587@@ -45,6 +45,10 @@
588 # define CRYPT_MAGIC_LEN 12 /* must be multiple of 4! */
589 #endif
590
591+#if defined(FEAT_GUI_COMPONENT) && defined(FEAT_GUI_GNOME)
592+#include "vim_bonobo_control.h"
593+#endif
594+
595 /* Is there any system that doesn't have access()? */
596 #ifndef MACOS_CLASSIC /* Not available on MacOS 9 */
597 # define USE_MCH_ACCESS
598@@ -200,6 +204,7 @@
599 * READ_BUFFER read from curbuf instead of a file (converting after reading
600 * stdin)
601 * READ_DUMMY read into a dummy buffer (to check if file contents changed)
602+ * READ_EMB_STREAM read from a bonobo persist stream
603 *
604 * return FAIL for failure, OK otherwise
605 */
606@@ -219,6 +224,11 @@
607 int filtering = (flags & READ_FILTER);
608 int read_stdin = (flags & READ_STDIN);
609 int read_buffer = (flags & READ_BUFFER);
610+#if defined(FEAT_GUI_COMPONENT) && defined(FEAT_GUI_GNOME)
611+ int read_pstream = (flags & READ_EMB_STREAM);
612+#else
613+#define read_pstream 0
614+#endif
615 linenr_T read_buf_lnum = 1; /* next line to read from curbuf */
616 colnr_T read_buf_col = 0; /* next char to read from this line */
617 char_u c;
618@@ -322,7 +332,7 @@
619 * The BufReadCmd and FileReadCmd events intercept the reading process by
620 * executing the associated commands instead.
621 */
622- if (!filtering && !read_stdin && !read_buffer)
623+ if (!filtering && !read_stdin && !read_buffer && !read_pstream)
624 {
625 pos_T pos;
626
627@@ -381,7 +391,7 @@
628 * On Unix it is possible to read a directory, so we have to
629 * check for it before the mch_open().
630 */
631- if (!read_stdin && !read_buffer)
632+ if (!read_stdin && !read_buffer && !read_pstream)
633 {
634 perm = mch_getperm(fname);
635 if (perm >= 0 && !S_ISREG(perm) /* not a regular file ... */
636@@ -423,7 +433,7 @@
637 if (check_readonly && !readonlymode) /* default: set file not readonly */
638 curbuf->b_p_ro = FALSE;
639
640- if (newfile && !read_stdin && !read_buffer)
641+ if (newfile && !read_stdin && !read_buffer && !read_pstream)
642 {
643 /* Remember time of file.
644 * For RISCOS, also remember the filetype.
645@@ -483,6 +493,11 @@
646 setmode(0, O_BINARY);
647 #endif
648 }
649+#ifdef FEAT_GUI_COMPONENT
650+ else if (read_pstream)
651+ {
652+ }
653+#endif
654 else if (!read_buffer)
655 {
656 #ifdef USE_MCH_ACCESS
657@@ -599,7 +614,7 @@
658 /* If "Quit" selected at ATTENTION dialog, don't load the file */
659 if (swap_exists_action == SEA_QUIT)
660 {
661- if (!read_buffer && !read_stdin)
662+ if (!read_buffer && !read_stdin && !read_pstream)
663 close(fd);
664 return FAIL;
665 }
666@@ -624,7 +639,7 @@
667 * The file must be closed again, the autocommands may want to change
668 * the file before reading it.
669 */
670- if (!read_stdin)
671+ if (!read_stdin && !read_pstream)
672 close(fd); /* ignore errors */
673
674 /*
675@@ -661,7 +676,7 @@
676 * Don't allow the autocommands to change the current buffer.
677 * Try to re-open the file.
678 */
679- if (!read_stdin && (curbuf != old_curbuf
680+ if (!read_stdin && !read_pstream && (curbuf != old_curbuf
681 || (fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0)) < 0))
682 {
683 --no_wait_return;
684@@ -701,7 +716,7 @@
685 }
686 #endif
687 }
688- else if (!read_buffer)
689+ else if (!read_buffer && !read_pstream)
690 filemess(curbuf, sfname, (char_u *)"", 0);
691 }
692
693@@ -781,7 +796,7 @@
694 read_buf_lnum = 1;
695 read_buf_col = 0;
696 }
697- else if (read_stdin || lseek(fd, (off_t)0L, SEEK_SET) != 0)
698+ else if (read_stdin || read_pstream || lseek(fd, (off_t)0L, SEEK_SET) != 0)
699 {
700 /* Can't rewind the file, give up. */
701 error = TRUE;
702@@ -920,7 +935,7 @@
703 * Use the 'charconvert' expression when conversion is required
704 * and we can't do it internally or with iconv().
705 */
706- if (fio_flags == 0 && !read_stdin && !read_buffer && *p_ccv != NUL
707+ if (fio_flags == 0 && !read_stdin && !read_buffer && !read_pstream && *p_ccv != NUL
708 # ifdef USE_ICONV
709 && iconv_fd == (iconv_t)-1
710 # endif
711@@ -969,7 +984,7 @@
712 /* Set can_retry when it's possible to rewind the file and try with
713 * another "fenc" value. It's FALSE when no other "fenc" to try, reading
714 * stdin or "fenc" was specified with "++enc=". */
715- can_retry = (*fenc != NUL && !read_stdin
716+ can_retry = (*fenc != NUL && !read_stdin && !read_pstream
717 && (eap == NULL || eap->force_enc == 0));
718 #endif
719
720@@ -1120,6 +1135,11 @@
721 }
722 }
723 }
724+#if defined(FEAT_GUI_COMPONENT) && defined(FEAT_GUI_GNOME)
725+ else if( read_pstream ) {
726+ size = vim_control_persist_stream_read(ptr, size);
727+ }
728+#endif
729 else
730 {
731 /*
732@@ -1713,7 +1733,7 @@
733 else if (ff_error != EOL_DOS)
734 {
735 if ( try_unix
736- && !read_stdin
737+ && !read_stdin && !read_pstream
738 && (read_buffer
739 || lseek(fd, (off_t)0L, SEEK_SET) == 0))
740 {
741@@ -1802,7 +1822,7 @@
742 # endif
743 #endif
744
745- if (!read_buffer && !read_stdin)
746+ if (!read_buffer && !read_stdin && !read_pstream)
747 close(fd); /* errors are ignored */
748 vim_free(buffer);
749
750@@ -1991,7 +2011,7 @@
751 #ifdef ALWAYS_USE_GUI
752 /* Don't show the message when reading stdin, it would end up in a
753 * message box (which might be shown when exiting!) */
754- if (read_stdin || read_buffer)
755+ if (read_stdin || read_buffer )
756 p = msg_may_trunc(FALSE, IObuff);
757 else
758 #endif
759@@ -2057,7 +2077,7 @@
760 */
761 write_no_eol_lnum = read_no_eol_lnum;
762
763- if (!read_stdin && !read_buffer)
764+ if (!read_stdin && !read_buffer && !read_pstream)
765 {
766 int m = msg_scroll;
767 int n = msg_scrolled;
768@@ -2383,6 +2403,11 @@
769 int prev_got_int = got_int;
770 int file_readonly = FALSE; /* overwritten file is read-only */
771 static char *err_readonly = "is read-only (cannot override: \"W\" in 'cpoptions')";
772+#if defined(FEAT_GUI_COMPONENT) && defined(FEAT_GUI_GNOME)
773+ int write_pstream = write_to_container;
774+#else
775+#define write_pstream 0
776+#endif
777 #if defined(UNIX) || defined(__EMX__XX) /*XXX fix me sometime? */
778 int made_writable = FALSE; /* 'w' bit has been set */
779 #endif
780@@ -2795,6 +2820,10 @@
781 if (dobackup && *p_bsk != NUL && match_file_list(p_bsk, sfname, ffname))
782 dobackup = FALSE;
783 #endif
784+#ifdef FEAT_GUI_COMPONENT
785+ if( write_pstream )
786+ dobackup = FALSE;
787+#endif
788
789 /*
790 * Save the value of got_int and reset it. We don't want a previous
791@@ -3398,7 +3427,7 @@
792 * (this may happen when the user reached his quotum for number of files).
793 * Appending will fail if the file does not exist and forceit is FALSE.
794 */
795- while ((fd = mch_open((char *)wfname, O_WRONLY | O_EXTRA | (append
796+ while (write_pstream && (fd = mch_open((char *)wfname, O_WRONLY | O_EXTRA | (append
797 ? (forceit ? (O_APPEND | O_CREAT) : O_APPEND)
798 : (O_CREAT | O_TRUNC))
799 , 0666)) < 0)
800@@ -3670,7 +3699,7 @@
801 nchars += len;
802 }
803
804- if (close(fd) != 0)
805+ if (!write_pstream && close(fd) != 0)
806 {
807 errmsg = (char_u *)_("E512: Close failed");
808 end = 0;
809@@ -4088,6 +4117,10 @@
810 buf_T *buf;
811 char_u *fname;
812 {
813+#ifdef FEAT_GUI_COMPONENT
814+ if (buf->emb_buffer)
815+ fname = (char_u *)"[Embedded File]";
816+#endif
817 if (fname == NULL)
818 fname = (char_u *)"-stdin-";
819 home_replace(buf, fname, IObuff + 1, IOSIZE - 4, TRUE);
820@@ -4476,7 +4509,12 @@
821 /* Repeat the write(), it may be interrupted by a signal. */
822 while (len)
823 {
824- wlen = vim_write(ip->bw_fd, buf, len);
825+#if defined(FEAT_GUI_COMPONENT) && defined(FEAT_GUI_GNOME)
826+ if( write_to_container )
827+ wlen = vim_control_persist_stream_write(buf, len);
828+ else
829+#endif
830+ wlen = vim_write(ip->bw_fd, buf, len);
831 if (wlen <= 0) /* error! */
832 return FAIL;
833 len -= wlen;
834diff --new-file -u -r --exclude-from=excludelist vimcopy/src/globals.h vim/src/globals.h
835--- vimcopy/src/globals.h Mon Jun 2 09:32:19 2003
836+++ vim/src/globals.h Sat Jul 26 13:16:47 2003
837@@ -802,6 +802,11 @@
838 EXTERN int readonlymode INIT(= FALSE); /* Set to TRUE for "view" */
839 EXTERN int recoverymode INIT(= FALSE); /* Set to TRUE for "-r" option */
840
841+#ifdef FEAT_GUI_COMPONENT
842+EXTERN int read_from_container INIT(= 0); /* read the buffer from the container app */
843+EXTERN int write_to_container INIT(= 0); /* write the buffer to the container app */
844+#endif
845+
846 EXTERN struct buffheader stuffbuff /* stuff buffer */
847 #ifdef DO_INIT
848 = {{NULL, {NUL}}, NULL, 0, 0}
849@@ -1321,6 +1326,9 @@
850 #endif
851 #ifdef FEAT_NETBEANS_INTG
852 EXTERN char_u e_guarded[] INIT(=N_("E463: Region is guarded, cannot modify"));
853+#endif
854+#ifdef FEAT_GUI_COMPONENT
855+EXTERN char_u e_compnoquit[] INIT(=N_("E464: Quit not allowed from embedded component"));
856 #endif
857 #ifdef MACOS_X_UNIX
858 EXTERN short disallow_gui INIT(= FALSE);
859diff --new-file -u -r --exclude-from=excludelist vimcopy/src/gtkhtml.h vim/src/gtkhtml.h
860--- vimcopy/src/gtkhtml.h Wed Dec 31 18:00:00 1969
861+++ vim/src/gtkhtml.h Sat Jul 26 13:16:47 2003
862@@ -0,0 +1,480 @@
863+/*
864+ * This file was generated by orbit-idl-2 - DO NOT EDIT!
865+ */
866+
867+#ifndef Editor_H
868+#define Editor_H 1
869+#include <glib.h>
870+#define ORBIT_IDL_SERIAL 19
871+#include <orbit/orbit-types.h>
872+
873+#ifdef __cplusplus
874+extern "C"
875+{
876+#endif /* __cplusplus */
877+
878+/** typedefs **/
879+#include <bonobo/Bonobo.h>
880+#if !defined(ORBIT_DECL_GNOME_GtkHTML_Editor_Listener) && !defined(_GNOME_GtkHTML_Editor_Listener_defined)
881+#define ORBIT_DECL_GNOME_GtkHTML_Editor_Listener 1
882+#define _GNOME_GtkHTML_Editor_Listener_defined 1
883+#define GNOME_GtkHTML_Editor_Listener__freekids CORBA_Object__freekids
884+ typedef CORBA_Object GNOME_GtkHTML_Editor_Listener;
885+ extern CORBA_unsigned_long GNOME_GtkHTML_Editor_Listener__classid;
886+#if !defined(TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_0)
887+#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_0 'E'
888+#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_1 'd'
889+#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_2 'i'
890+#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_3 't'
891+#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_4 'o'
892+#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_5 'r'
893+#ifdef ORBIT_IDL_C_IMODULE
894+ static
895+#else
896+ extern
897+#endif
898+ const struct CORBA_TypeCode_struct TC_GNOME_GtkHTML_Editor_Listener_struct;
899+#define TC_GNOME_GtkHTML_Editor_Listener ((CORBA_TypeCode)&TC_GNOME_GtkHTML_Editor_Listener_struct)
900+#endif
901+#endif
902+#if !defined(ORBIT_DECL_GNOME_GtkHTML_Editor_Engine) && !defined(_GNOME_GtkHTML_Editor_Engine_defined)
903+#define ORBIT_DECL_GNOME_GtkHTML_Editor_Engine 1
904+#define _GNOME_GtkHTML_Editor_Engine_defined 1
905+#define GNOME_GtkHTML_Editor_Engine__freekids CORBA_Object__freekids
906+ typedef CORBA_Object GNOME_GtkHTML_Editor_Engine;
907+ extern CORBA_unsigned_long GNOME_GtkHTML_Editor_Engine__classid;
908+#if !defined(TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_0)
909+#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_0 'E'
910+#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_1 'd'
911+#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_2 'i'
912+#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_3 't'
913+#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_4 'o'
914+#define TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_5 'r'
915+#ifdef ORBIT_IDL_C_IMODULE
916+ static
917+#else
918+ extern
919+#endif
920+ const struct CORBA_TypeCode_struct TC_GNOME_GtkHTML_Editor_Engine_struct;
921+#define TC_GNOME_GtkHTML_Editor_Engine ((CORBA_TypeCode)&TC_GNOME_GtkHTML_Editor_Engine_struct)
922+#endif
923+#endif
924+#if !defined(_GNOME_GtkHTML_Editor_URLRequestEvent_defined)
925+#define _GNOME_GtkHTML_Editor_URLRequestEvent_defined 1
926+ typedef struct GNOME_GtkHTML_Editor_URLRequestEvent_type
927+ GNOME_GtkHTML_Editor_URLRequestEvent;
928+ struct GNOME_GtkHTML_Editor_URLRequestEvent_type
929+ {
930+ CORBA_string url;
931+ Bonobo_Stream stream;
932+ };
933+
934+#if !defined(TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_0)
935+#define TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_0 'E'
936+#define TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_1 'd'
937+#define TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_2 'i'
938+#define TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_3 't'
939+#define TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_4 'o'
940+#define TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_5 'r'
941+#ifdef ORBIT_IDL_C_IMODULE
942+ static
943+#else
944+ extern
945+#endif
946+ const struct CORBA_TypeCode_struct
947+ TC_GNOME_GtkHTML_Editor_URLRequestEvent_struct;
948+#define TC_GNOME_GtkHTML_Editor_URLRequestEvent ((CORBA_TypeCode)&TC_GNOME_GtkHTML_Editor_URLRequestEvent_struct)
949+#endif
950+#define GNOME_GtkHTML_Editor_URLRequestEvent__alloc() ((GNOME_GtkHTML_Editor_URLRequestEvent *)ORBit_small_alloc (TC_GNOME_GtkHTML_Editor_URLRequestEvent))
951+#define GNOME_GtkHTML_Editor_URLRequestEvent__freekids(m,d) ORBit_small_freekids (TC_GNOME_GtkHTML_Editor_URLRequestEvent,(m),(d))
952+#endif
953+
954+/** POA structures **/
955+#ifndef _defined_POA_GNOME_GtkHTML_Editor_Listener
956+#define _defined_POA_GNOME_GtkHTML_Editor_Listener 1
957+ typedef struct
958+ {
959+ void *_private;
960+ CORBA_any *(*event) (PortableServer_Servant _servant,
961+ const CORBA_char * name, const CORBA_any * arg,
962+ CORBA_Environment * ev);
963+ }
964+ POA_GNOME_GtkHTML_Editor_Listener__epv;
965+ typedef struct
966+ {
967+ PortableServer_ServantBase__epv *_base_epv;
968+ POA_Bonobo_Unknown__epv *Bonobo_Unknown_epv;
969+ POA_GNOME_GtkHTML_Editor_Listener__epv
970+ *GNOME_GtkHTML_Editor_Listener_epv;
971+ }
972+ POA_GNOME_GtkHTML_Editor_Listener__vepv;
973+ typedef struct
974+ {
975+ void *_private;
976+ POA_GNOME_GtkHTML_Editor_Listener__vepv *vepv;
977+ }
978+ POA_GNOME_GtkHTML_Editor_Listener;
979+ extern void POA_GNOME_GtkHTML_Editor_Listener__init(PortableServer_Servant
980+ servant,
981+ CORBA_Environment *
982+ ev);
983+ extern void POA_GNOME_GtkHTML_Editor_Listener__fini(PortableServer_Servant
984+ servant,
985+ CORBA_Environment *
986+ ev);
987+#endif /* _defined_POA_GNOME_GtkHTML_Editor_Listener */
988+#ifndef _defined_POA_GNOME_GtkHTML_Editor_Engine
989+#define _defined_POA_GNOME_GtkHTML_Editor_Engine 1
990+ typedef struct
991+ {
992+ void *_private;
993+ GNOME_GtkHTML_Editor_Listener(*_get_listener) (PortableServer_Servant
994+ _servant,
995+ CORBA_Environment * ev);
996+ void (*_set_listener) (PortableServer_Servant _servant,
997+ const GNOME_GtkHTML_Editor_Listener value,
998+ CORBA_Environment * ev);
999+ CORBA_boolean(*runCommand) (PortableServer_Servant _servant,
1000+ const CORBA_char * command,
1001+ CORBA_Environment * ev);
1002+ CORBA_string(*getParagraphData) (PortableServer_Servant _servant,
1003+ const CORBA_char * key,
1004+ CORBA_Environment * ev);
1005+ void (*setParagraphData) (PortableServer_Servant _servant,
1006+ const CORBA_char * key,
1007+ const CORBA_char * value,
1008+ CORBA_Environment * ev);
1009+ void (*setObjectDataByType) (PortableServer_Servant _servant,
1010+ const CORBA_char * type_name,
1011+ const CORBA_char * key,
1012+ const CORBA_char * data,
1013+ CORBA_Environment * ev);
1014+ CORBA_boolean(*searchByData) (PortableServer_Servant _servant,
1015+ const CORBA_long level,
1016+ const CORBA_char * klass,
1017+ const CORBA_char * key,
1018+ const CORBA_char * value,
1019+ CORBA_Environment * ev);
1020+ CORBA_boolean(*isParagraphEmpty) (PortableServer_Servant _servant,
1021+ CORBA_Environment * ev);
1022+ CORBA_boolean(*isPreviousParagraphEmpty) (PortableServer_Servant
1023+ _servant,
1024+ CORBA_Environment * ev);
1025+ void (*insertHTML) (PortableServer_Servant _servant,
1026+ const CORBA_char * html, CORBA_Environment * ev);
1027+ void (*freeze) (PortableServer_Servant _servant,
1028+ CORBA_Environment * ev);
1029+ void (*thaw) (PortableServer_Servant _servant, CORBA_Environment * ev);
1030+ void (*undoBegin) (PortableServer_Servant _servant,
1031+ const CORBA_char * undo_name,
1032+ const CORBA_char * redo_name,
1033+ CORBA_Environment * ev);
1034+ void (*undoEnd) (PortableServer_Servant _servant,
1035+ CORBA_Environment * ev);
1036+ void (*ignoreWord) (PortableServer_Servant _servant,
1037+ const CORBA_char * word, CORBA_Environment * ev);
1038+ void (*dropUndo) (PortableServer_Servant _servant,
1039+ CORBA_Environment * ev);
1040+ CORBA_boolean(*hasUndo) (PortableServer_Servant _servant,
1041+ CORBA_Environment * ev);
1042+ }
1043+ POA_GNOME_GtkHTML_Editor_Engine__epv;
1044+ typedef struct
1045+ {
1046+ PortableServer_ServantBase__epv *_base_epv;
1047+ POA_Bonobo_Unknown__epv *Bonobo_Unknown_epv;
1048+ POA_GNOME_GtkHTML_Editor_Engine__epv *GNOME_GtkHTML_Editor_Engine_epv;
1049+ }
1050+ POA_GNOME_GtkHTML_Editor_Engine__vepv;
1051+ typedef struct
1052+ {
1053+ void *_private;
1054+ POA_GNOME_GtkHTML_Editor_Engine__vepv *vepv;
1055+ }
1056+ POA_GNOME_GtkHTML_Editor_Engine;
1057+ extern void POA_GNOME_GtkHTML_Editor_Engine__init(PortableServer_Servant
1058+ servant,
1059+ CORBA_Environment * ev);
1060+ extern void POA_GNOME_GtkHTML_Editor_Engine__fini(PortableServer_Servant
1061+ servant,
1062+ CORBA_Environment * ev);
1063+#endif /* _defined_POA_GNOME_GtkHTML_Editor_Engine */
1064+
1065+/** skel prototypes **/
1066+ void
1067+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Listener_event
1068+ (POA_GNOME_GtkHTML_Editor_Listener * _ORBIT_servant,
1069+ gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx,
1070+ CORBA_Environment * ev,
1071+ CORBA_any * (*_impl_event) (PortableServer_Servant _servant,
1072+ const CORBA_char * name,
1073+ const CORBA_any * arg,
1074+ CORBA_Environment * ev));
1075+ void
1076+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine__get_listener
1077+ (POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant,
1078+ gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx,
1079+ CORBA_Environment * ev,
1080+ GNOME_GtkHTML_Editor_Listener(*_impl__get_listener)
1081+ (PortableServer_Servant _servant, CORBA_Environment * ev));
1082+ void
1083+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine__set_listener
1084+ (POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant,
1085+ gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx,
1086+ CORBA_Environment * ev,
1087+ void (*_impl__set_listener) (PortableServer_Servant _servant,
1088+ const GNOME_GtkHTML_Editor_Listener value,
1089+ CORBA_Environment * ev));
1090+ void
1091+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_runCommand
1092+ (POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant,
1093+ gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx,
1094+ CORBA_Environment * ev,
1095+ CORBA_boolean(*_impl_runCommand) (PortableServer_Servant _servant,
1096+ const CORBA_char * command,
1097+ CORBA_Environment * ev));
1098+ void
1099+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_getParagraphData
1100+ (POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant,
1101+ gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx,
1102+ CORBA_Environment * ev,
1103+ CORBA_string(*_impl_getParagraphData) (PortableServer_Servant _servant,
1104+ const CORBA_char * key,
1105+ CORBA_Environment * ev));
1106+ void
1107+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_setParagraphData
1108+ (POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant,
1109+ gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx,
1110+ CORBA_Environment * ev,
1111+ void (*_impl_setParagraphData) (PortableServer_Servant _servant,
1112+ const CORBA_char * key,
1113+ const CORBA_char * value,
1114+ CORBA_Environment * ev));
1115+ void
1116+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_setObjectDataByType
1117+ (POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant,
1118+ gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx,
1119+ CORBA_Environment * ev,
1120+ void (*_impl_setObjectDataByType) (PortableServer_Servant _servant,
1121+ const CORBA_char * type_name,
1122+ const CORBA_char * key,
1123+ const CORBA_char * data,
1124+ CORBA_Environment * ev));
1125+ void
1126+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_searchByData
1127+ (POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant,
1128+ gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx,
1129+ CORBA_Environment * ev,
1130+ CORBA_boolean(*_impl_searchByData) (PortableServer_Servant _servant,
1131+ const CORBA_long level,
1132+ const CORBA_char * klass,
1133+ const CORBA_char * key,
1134+ const CORBA_char * value,
1135+ CORBA_Environment * ev));
1136+ void
1137+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_isParagraphEmpty
1138+ (POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant,
1139+ gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx,
1140+ CORBA_Environment * ev,
1141+ CORBA_boolean(*_impl_isParagraphEmpty) (PortableServer_Servant
1142+ _servant,
1143+ CORBA_Environment * ev));
1144+ void
1145+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_isPreviousParagraphEmpty
1146+ (POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant,
1147+ gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx,
1148+ CORBA_Environment * ev,
1149+ CORBA_boolean(*_impl_isPreviousParagraphEmpty) (PortableServer_Servant
1150+ _servant,
1151+ CORBA_Environment *
1152+ ev));
1153+ void
1154+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_insertHTML
1155+ (POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant,
1156+ gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx,
1157+ CORBA_Environment * ev,
1158+ void (*_impl_insertHTML) (PortableServer_Servant _servant,
1159+ const CORBA_char * html,
1160+ CORBA_Environment * ev));
1161+ void
1162+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_freeze
1163+ (POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant,
1164+ gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx,
1165+ CORBA_Environment * ev,
1166+ void (*_impl_freeze) (PortableServer_Servant _servant,
1167+ CORBA_Environment * ev));
1168+ void
1169+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_thaw
1170+ (POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant,
1171+ gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx,
1172+ CORBA_Environment * ev,
1173+ void (*_impl_thaw) (PortableServer_Servant _servant,
1174+ CORBA_Environment * ev));
1175+ void
1176+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_undoBegin
1177+ (POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant,
1178+ gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx,
1179+ CORBA_Environment * ev,
1180+ void (*_impl_undoBegin) (PortableServer_Servant _servant,
1181+ const CORBA_char * undo_name,
1182+ const CORBA_char * redo_name,
1183+ CORBA_Environment * ev));
1184+ void
1185+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_undoEnd
1186+ (POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant,
1187+ gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx,
1188+ CORBA_Environment * ev,
1189+ void (*_impl_undoEnd) (PortableServer_Servant _servant,
1190+ CORBA_Environment * ev));
1191+ void
1192+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_ignoreWord
1193+ (POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant,
1194+ gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx,
1195+ CORBA_Environment * ev,
1196+ void (*_impl_ignoreWord) (PortableServer_Servant _servant,
1197+ const CORBA_char * word,
1198+ CORBA_Environment * ev));
1199+ void
1200+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_dropUndo
1201+ (POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant,
1202+ gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx,
1203+ CORBA_Environment * ev,
1204+ void (*_impl_dropUndo) (PortableServer_Servant _servant,
1205+ CORBA_Environment * ev));
1206+ void
1207+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_hasUndo
1208+ (POA_GNOME_GtkHTML_Editor_Engine * _ORBIT_servant,
1209+ gpointer _ORBIT_retval, gpointer * _ORBIT_args, CORBA_Context ctx,
1210+ CORBA_Environment * ev,
1211+ CORBA_boolean(*_impl_hasUndo) (PortableServer_Servant _servant,
1212+ CORBA_Environment * ev));
1213+
1214+/** stub prototypes **/
1215+#define GNOME_GtkHTML_Editor_Listener_ref Bonobo_Unknown_ref
1216+#define GNOME_GtkHTML_Editor_Listener_unref Bonobo_Unknown_unref
1217+#define GNOME_GtkHTML_Editor_Listener_queryInterface Bonobo_Unknown_queryInterface
1218+ CORBA_any
1219+ *GNOME_GtkHTML_Editor_Listener_event(GNOME_GtkHTML_Editor_Listener _obj,
1220+ const CORBA_char * name,
1221+ const CORBA_any * arg,
1222+ CORBA_Environment * ev);
1223+#define GNOME_GtkHTML_Editor_Engine_ref Bonobo_Unknown_ref
1224+#define GNOME_GtkHTML_Editor_Engine_unref Bonobo_Unknown_unref
1225+#define GNOME_GtkHTML_Editor_Engine_queryInterface Bonobo_Unknown_queryInterface
1226+ GNOME_GtkHTML_Editor_Listener
1227+ GNOME_GtkHTML_Editor_Engine__get_listener(GNOME_GtkHTML_Editor_Engine
1228+ _obj, CORBA_Environment * ev);
1229+ void GNOME_GtkHTML_Editor_Engine__set_listener(GNOME_GtkHTML_Editor_Engine
1230+ _obj,
1231+ const
1232+ GNOME_GtkHTML_Editor_Listener
1233+ value,
1234+ CORBA_Environment * ev);
1235+ CORBA_boolean
1236+ GNOME_GtkHTML_Editor_Engine_runCommand(GNOME_GtkHTML_Editor_Engine _obj,
1237+ const CORBA_char * command,
1238+ CORBA_Environment * ev);
1239+ CORBA_string
1240+ GNOME_GtkHTML_Editor_Engine_getParagraphData(GNOME_GtkHTML_Editor_Engine
1241+ _obj,
1242+ const CORBA_char * key,
1243+ CORBA_Environment * ev);
1244+ void
1245+ GNOME_GtkHTML_Editor_Engine_setParagraphData(GNOME_GtkHTML_Editor_Engine
1246+ _obj,
1247+ const CORBA_char * key,
1248+ const CORBA_char * value,
1249+ CORBA_Environment * ev);
1250+ void
1251+ GNOME_GtkHTML_Editor_Engine_setObjectDataByType
1252+ (GNOME_GtkHTML_Editor_Engine _obj, const CORBA_char * type_name,
1253+ const CORBA_char * key, const CORBA_char * data,
1254+ CORBA_Environment * ev);
1255+ CORBA_boolean
1256+ GNOME_GtkHTML_Editor_Engine_searchByData(GNOME_GtkHTML_Editor_Engine
1257+ _obj, const CORBA_long level,
1258+ const CORBA_char * klass,
1259+ const CORBA_char * key,
1260+ const CORBA_char * value,
1261+ CORBA_Environment * ev);
1262+ CORBA_boolean
1263+ GNOME_GtkHTML_Editor_Engine_isParagraphEmpty(GNOME_GtkHTML_Editor_Engine
1264+ _obj,
1265+ CORBA_Environment * ev);
1266+ CORBA_boolean
1267+ GNOME_GtkHTML_Editor_Engine_isPreviousParagraphEmpty
1268+ (GNOME_GtkHTML_Editor_Engine _obj, CORBA_Environment * ev);
1269+ void GNOME_GtkHTML_Editor_Engine_insertHTML(GNOME_GtkHTML_Editor_Engine
1270+ _obj, const CORBA_char * html,
1271+ CORBA_Environment * ev);
1272+ void GNOME_GtkHTML_Editor_Engine_freeze(GNOME_GtkHTML_Editor_Engine _obj,
1273+ CORBA_Environment * ev);
1274+ void GNOME_GtkHTML_Editor_Engine_thaw(GNOME_GtkHTML_Editor_Engine _obj,
1275+ CORBA_Environment * ev);
1276+ void GNOME_GtkHTML_Editor_Engine_undoBegin(GNOME_GtkHTML_Editor_Engine
1277+ _obj,
1278+ const CORBA_char * undo_name,
1279+ const CORBA_char * redo_name,
1280+ CORBA_Environment * ev);
1281+ void GNOME_GtkHTML_Editor_Engine_undoEnd(GNOME_GtkHTML_Editor_Engine _obj,
1282+ CORBA_Environment * ev);
1283+ void GNOME_GtkHTML_Editor_Engine_ignoreWord(GNOME_GtkHTML_Editor_Engine
1284+ _obj, const CORBA_char * word,
1285+ CORBA_Environment * ev);
1286+ void GNOME_GtkHTML_Editor_Engine_dropUndo(GNOME_GtkHTML_Editor_Engine _obj,
1287+ CORBA_Environment * ev);
1288+ CORBA_boolean
1289+ GNOME_GtkHTML_Editor_Engine_hasUndo(GNOME_GtkHTML_Editor_Engine _obj,
1290+ CORBA_Environment * ev);
1291+
1292+/** more internals **/
1293+#if !defined(MARSHAL_IMPL_GNOME_GtkHTML_Editor_URLRequestEvent_0)
1294+#define MARSHAL_IMPL_GNOME_GtkHTML_Editor_URLRequestEvent_0 'E'
1295+#define MARSHAL_IMPL_GNOME_GtkHTML_Editor_URLRequestEvent_1 'd'
1296+#define MARSHAL_IMPL_GNOME_GtkHTML_Editor_URLRequestEvent_2 'i'
1297+#define MARSHAL_IMPL_GNOME_GtkHTML_Editor_URLRequestEvent_3 't'
1298+#define MARSHAL_IMPL_GNOME_GtkHTML_Editor_URLRequestEvent_4 'o'
1299+#define MARSHAL_IMPL_GNOME_GtkHTML_Editor_URLRequestEvent_5 'r'
1300+#endif
1301+#include <orbit/orb-core/orbit-interface.h>
1302+
1303+#ifdef ORBIT_IDL_C_IMODULE
1304+ static
1305+#else
1306+ extern
1307+#endif
1308+ ORBit_IInterface GNOME_GtkHTML_Editor_Listener__iinterface;
1309+#define GNOME_GtkHTML_Editor_Listener_IMETHODS_LEN 1
1310+#ifdef ORBIT_IDL_C_IMODULE
1311+ static
1312+#else
1313+ extern
1314+#endif
1315+ ORBit_IMethod
1316+ GNOME_GtkHTML_Editor_Listener__imethods
1317+ [GNOME_GtkHTML_Editor_Listener_IMETHODS_LEN];
1318+#ifdef ORBIT_IDL_C_IMODULE
1319+ static
1320+#else
1321+ extern
1322+#endif
1323+ ORBit_IInterface GNOME_GtkHTML_Editor_Engine__iinterface;
1324+#define GNOME_GtkHTML_Editor_Engine_IMETHODS_LEN 17
1325+#ifdef ORBIT_IDL_C_IMODULE
1326+ static
1327+#else
1328+ extern
1329+#endif
1330+ ORBit_IMethod
1331+ GNOME_GtkHTML_Editor_Engine__imethods
1332+ [GNOME_GtkHTML_Editor_Engine_IMETHODS_LEN];
1333+#ifdef __cplusplus
1334+}
1335+#endif /* __cplusplus */
1336+
1337+#ifndef EXCLUDE_ORBIT_H
1338+#include <orbit/orbit.h>
1339+
1340+#endif /* EXCLUDE_ORBIT_H */
1341+#endif
1342+#undef ORBIT_IDL_SERIAL
1343diff --new-file -u -r --exclude-from=excludelist vimcopy/src/gtkhtml_editor.c vim/src/gtkhtml_editor.c
1344--- vimcopy/src/gtkhtml_editor.c Wed Dec 31 18:00:00 1969
1345+++ vim/src/gtkhtml_editor.c Sat Jul 26 13:16:47 2003
1346@@ -0,0 +1,189 @@
1347+#include <bonobo.h>
1348+
1349+#include "gtkhtml_editor.h"
1350+
1351+static BonoboObjectClass *engine_parent_class;
1352+
1353+inline static EditorEngine *
1354+gtkhtml_editor_engine_from_servant (PortableServer_Servant servant)
1355+{
1356+ return EDITOR_ENGINE (bonobo_object_from_servant (servant));
1357+}
1358+
1359+static CORBA_char *
1360+impl_get_paragraph_data (PortableServer_Servant servant, const CORBA_char * key, CORBA_Environment * ev)
1361+{
1362+ EditorEngine *e = gtkhtml_editor_engine_from_servant (servant);
1363+}
1364+
1365+static void
1366+impl_set_paragraph_data (PortableServer_Servant servant,
1367+ const CORBA_char * key, const CORBA_char * value,
1368+ CORBA_Environment * ev)
1369+{
1370+ EditorEngine *e = gtkhtml_editor_engine_from_servant (servant);
1371+}
1372+
1373+static void
1374+impl_set_object_data_by_type (PortableServer_Servant servant,
1375+ const CORBA_char * type_name, const CORBA_char * key, const CORBA_char * value,
1376+ CORBA_Environment * ev)
1377+{
1378+ EditorEngine *e = gtkhtml_editor_engine_from_servant (servant);
1379+}
1380+
1381+static void
1382+impl_set_listener (PortableServer_Servant servant, const GNOME_GtkHTML_Editor_Listener value, CORBA_Environment * ev)
1383+{
1384+ EditorEngine *e = gtkhtml_editor_engine_from_servant (servant);
1385+
1386+ bonobo_object_release_unref (e->listener, NULL);
1387+ e->listener = bonobo_object_dup_ref (value, NULL);
1388+}
1389+
1390+static GNOME_GtkHTML_Editor_Listener
1391+impl_get_listener (PortableServer_Servant servant, CORBA_Environment * ev)
1392+{
1393+ return gtkhtml_editor_engine_from_servant (servant)->listener;
1394+}
1395+
1396+static CORBA_boolean
1397+impl_run_command (PortableServer_Servant servant, const CORBA_char * command, CORBA_Environment * ev)
1398+{
1399+ EditorEngine *e = gtkhtml_editor_engine_from_servant (servant);
1400+ printf ("command: %s\n", command);
1401+ return CORBA_TRUE;
1402+}
1403+
1404+static CORBA_boolean
1405+impl_is_paragraph_empty (PortableServer_Servant servant, CORBA_Environment * ev)
1406+{
1407+ EditorEngine *e = gtkhtml_editor_engine_from_servant (servant);
1408+ return CORBA_FALSE;
1409+}
1410+
1411+static CORBA_boolean
1412+impl_is_previous_paragraph_empty (PortableServer_Servant servant, CORBA_Environment * ev)
1413+{
1414+ EditorEngine *e = gtkhtml_editor_engine_from_servant (servant);
1415+ return CORBA_FALSE;
1416+}
1417+
1418+static void
1419+impl_insert_html (PortableServer_Servant servant, const CORBA_char * html, CORBA_Environment * ev)
1420+{
1421+ printf ("impl_insert_html\n");
1422+}
1423+
1424+static CORBA_boolean
1425+impl_search_by_data (PortableServer_Servant servant, const CORBA_long level, const CORBA_char * klass,
1426+ const CORBA_char * key, const CORBA_char * value, CORBA_Environment * ev)
1427+{
1428+ return FALSE;
1429+}
1430+
1431+static void
1432+impl_freeze (PortableServer_Servant servant, CORBA_Environment * ev)
1433+{
1434+}
1435+
1436+static void
1437+impl_thaw (PortableServer_Servant servant, CORBA_Environment * ev)
1438+{
1439+}
1440+
1441+static void
1442+impl_undo_begin (PortableServer_Servant servant, const CORBA_char * undo_name, const CORBA_char * redo_name,
1443+ CORBA_Environment * ev)
1444+{
1445+}
1446+
1447+static void
1448+impl_undo_end (PortableServer_Servant servant, CORBA_Environment * ev)
1449+{
1450+}
1451+
1452+static void
1453+impl_ignore_word (PortableServer_Servant servant, const CORBA_char * word, CORBA_Environment * ev)
1454+{
1455+ EditorEngine *e = gtkhtml_editor_engine_from_servant (servant);
1456+}
1457+
1458+static CORBA_boolean
1459+impl_has_undo (PortableServer_Servant servant, CORBA_Environment * ev)
1460+{
1461+ EditorEngine *e = gtkhtml_editor_engine_from_servant (servant);
1462+
1463+ printf ("hasUndo\n");
1464+ return CORBA_FALSE;
1465+}
1466+
1467+static void
1468+impl_drop_undo (PortableServer_Servant servant, CORBA_Environment * ev)
1469+{
1470+ EditorEngine *e = gtkhtml_editor_engine_from_servant (servant);
1471+
1472+ printf ("dropUndo\n");
1473+}
1474+
1475+static void
1476+engine_object_finalize (GObject *object)
1477+{
1478+ EditorEngine *e = EDITOR_ENGINE (object);
1479+
1480+ bonobo_object_release_unref (e->listener, NULL);
1481+
1482+ G_OBJECT_CLASS (engine_parent_class)->finalize (object);
1483+}
1484+
1485+static void
1486+editor_engine_init (GObject *object)
1487+{
1488+ EditorEngine *e = EDITOR_ENGINE (object);
1489+
1490+ e->listener = CORBA_OBJECT_NIL;
1491+}
1492+
1493+static void
1494+editor_engine_class_init (EditorEngineClass *klass)
1495+{
1496+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
1497+ POA_GNOME_GtkHTML_Editor_Engine__epv *epv = &klass->epv;
1498+
1499+ engine_parent_class = g_type_class_peek_parent (klass);
1500+ object_class->finalize = engine_object_finalize;
1501+
1502+ epv->_set_listener = impl_set_listener;
1503+ epv->_get_listener = impl_get_listener;
1504+ epv->setParagraphData = impl_set_paragraph_data;
1505+ epv->getParagraphData = impl_get_paragraph_data;
1506+ epv->setObjectDataByType = impl_set_object_data_by_type;
1507+ epv->runCommand = impl_run_command;
1508+ epv->isParagraphEmpty = impl_is_paragraph_empty;
1509+ epv->isPreviousParagraphEmpty = impl_is_previous_paragraph_empty;
1510+ epv->searchByData = impl_search_by_data;
1511+ epv->insertHTML = impl_insert_html;
1512+ epv->freeze = impl_freeze;
1513+ epv->thaw = impl_thaw;
1514+ epv->undoBegin = impl_undo_begin;
1515+ epv->undoEnd = impl_undo_end;
1516+ epv->ignoreWord = impl_ignore_word;
1517+ epv->hasUndo = impl_has_undo;
1518+ epv->dropUndo = impl_drop_undo;
1519+}
1520+
1521+BONOBO_TYPE_FUNC_FULL (
1522+ EditorEngine, /* Glib class name */
1523+ GNOME_GtkHTML_Editor_Engine, /* CORBA interface name */
1524+ BONOBO_TYPE_OBJECT, /* parent type */
1525+ editor_engine); /* local prefix ie. 'echo'_class_init */
1526+
1527+EditorEngine *
1528+editor_engine_new (void)
1529+{
1530+ EditorEngine *ee;
1531+
1532+ ee = g_object_new (EDITOR_ENGINE_TYPE, NULL);
1533+
1534+ return ee;
1535+}
1536diff --new-file -u -r --exclude-from=excludelist vimcopy/src/gtkhtml_editor.h vim/src/gtkhtml_editor.h
1537--- vimcopy/src/gtkhtml_editor.h Wed Dec 31 18:00:00 1969
1538+++ vim/src/gtkhtml_editor.h Sat Jul 26 13:16:47 2003
1539@@ -0,0 +1,34 @@
1540+#ifndef GTKHTML_ENGINE_H_
1541+#define GTKHTML_ENGINE_H_
1542+
1543+G_BEGIN_DECLS
1544+
1545+typedef struct _EditorEngine EditorEngine;
1546+
1547+#include <gtk/gtktypeutils.h>
1548+#include <bonobo/bonobo-object.h>
1549+#include "gtkhtml.h"
1550+
1551+#define EDITOR_ENGINE_TYPE (editor_engine_get_type ())
1552+#define EDITOR_ENGINE(o) (GTK_CHECK_CAST ((o), EDITOR_ENGINE_TYPE, EditorEngine))
1553+#define EDITOR_ENGINE_CLASS(k) (GTK_CHECK_CLASS_CAST((k), EDITOR_ENGINE_TYPE, EditorEngineClass))
1554+#define IS_EDITOR_ENGINE(o) (GTK_CHECK_TYPE ((o), EDITOR_ENGINE_TYPE))
1555+#define IS_EDITOR_ENGINE_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), EDITOR_ENGINE_TYPE))
1556+
1557+struct _EditorEngine {
1558+ BonoboObject parent;
1559+ GNOME_GtkHTML_Editor_Listener listener;
1560+};
1561+
1562+typedef struct {
1563+ BonoboObjectClass parent_class;
1564+ POA_GNOME_GtkHTML_Editor_Engine__epv epv;
1565+} EditorEngineClass;
1566+
1567+GtkType editor_engine_get_type (void);
1568+EditorEngine *editor_engine_new (void);
1569+POA_GNOME_GtkHTML_Editor_Engine__epv *editor_engine_get_epv (void);
1570+
1571+G_END_DECLS
1572+
1573+#endif /* GTKHTML_ENGINE_H_ */
1574diff --new-file -u -r --exclude-from=excludelist vimcopy/src/gtkhtml_editor_common.c vim/src/gtkhtml_editor_common.c
1575--- vimcopy/src/gtkhtml_editor_common.c Wed Dec 31 18:00:00 1969
1576+++ vim/src/gtkhtml_editor_common.c Sat Jul 26 13:16:47 2003
1577@@ -0,0 +1,306 @@
1578+/*
1579+ * This file was generated by orbit-idl-2 - DO NOT EDIT!
1580+ */
1581+
1582+#include <string.h>
1583+#define ORBIT2_STUBS_API
1584+#define ORBIT_IDL_C_COMMON
1585+#define Editor_COMMON
1586+#include "gtkhtml.h"
1587+
1588+static const CORBA_unsigned_long ORBit_zero_int = 0;
1589+
1590+#if ( (TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_0 == 'E') \
1591+&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_1 == 'd') \
1592+&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_2 == 'i') \
1593+&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_3 == 't') \
1594+&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_4 == 'o') \
1595+&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_Listener_5 == 'r') \
1596+) && !defined(TC_DEF_TC_GNOME_GtkHTML_Editor_Listener)
1597+#define TC_DEF_TC_GNOME_GtkHTML_Editor_Listener 1
1598+#ifdef ORBIT_IDL_C_IMODULE_Editor
1599+static
1600+#endif
1601+const struct CORBA_TypeCode_struct TC_GNOME_GtkHTML_Editor_Listener_struct = {
1602+ {&ORBit_TypeCode_epv, ORBIT_REFCOUNT_STATIC},
1603+ CORBA_tk_objref,
1604+ 0,
1605+ 0,
1606+ ORBIT_ALIGNOF_CORBA_POINTER,
1607+ 0,
1608+ 0,
1609+ NULL,
1610+ CORBA_OBJECT_NIL,
1611+ "Listener",
1612+ "IDL:GNOME/GtkHTML/Editor/Listener:1.0",
1613+ NULL,
1614+ NULL,
1615+ -1,
1616+ 0,
1617+ 0, 0
1618+};
1619+#endif
1620+#if ( (TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_0 == 'E') \
1621+&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_1 == 'd') \
1622+&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_2 == 'i') \
1623+&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_3 == 't') \
1624+&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_4 == 'o') \
1625+&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_Engine_5 == 'r') \
1626+) && !defined(TC_DEF_TC_GNOME_GtkHTML_Editor_Engine)
1627+#define TC_DEF_TC_GNOME_GtkHTML_Editor_Engine 1
1628+#ifdef ORBIT_IDL_C_IMODULE_Editor
1629+static
1630+#endif
1631+const struct CORBA_TypeCode_struct TC_GNOME_GtkHTML_Editor_Engine_struct = {
1632+ {&ORBit_TypeCode_epv, ORBIT_REFCOUNT_STATIC},
1633+ CORBA_tk_objref,
1634+ 0,
1635+ 0,
1636+ ORBIT_ALIGNOF_CORBA_POINTER,
1637+ 0,
1638+ 0,
1639+ NULL,
1640+ CORBA_OBJECT_NIL,
1641+ "Engine",
1642+ "IDL:GNOME/GtkHTML/Editor/Engine:1.0",
1643+ NULL,
1644+ NULL,
1645+ -1,
1646+ 0,
1647+ 0, 0
1648+};
1649+#endif
1650+#if ( (TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_0 == 'E') \
1651+&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_1 == 'd') \
1652+&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_2 == 'i') \
1653+&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_3 == 't') \
1654+&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_4 == 'o') \
1655+&& (TC_IMPL_TC_GNOME_GtkHTML_Editor_URLRequestEvent_5 == 'r') \
1656+) && !defined(TC_DEF_TC_GNOME_GtkHTML_Editor_URLRequestEvent)
1657+#define TC_DEF_TC_GNOME_GtkHTML_Editor_URLRequestEvent 1
1658+static const char *anon_subnames_array6[] = { "url", "stream" };
1659+static const CORBA_TypeCode anon_subtypes_array7[] =
1660+ { (CORBA_TypeCode) & TC_CORBA_string_struct,
1661+ (CORBA_TypeCode) & TC_Bonobo_Stream_struct };
1662+
1663+#ifdef ORBIT_IDL_C_IMODULE_Editor
1664+static
1665+#endif
1666+const struct CORBA_TypeCode_struct
1667+ TC_GNOME_GtkHTML_Editor_URLRequestEvent_struct = {
1668+ {&ORBit_TypeCode_epv, ORBIT_REFCOUNT_STATIC},
1669+ CORBA_tk_struct,
1670+ 0,
1671+ 0,
1672+ ORBIT_ALIGNOF_CORBA_POINTER,
1673+ 0,
1674+ 2,
1675+ (CORBA_TypeCode *) anon_subtypes_array7,
1676+ CORBA_OBJECT_NIL,
1677+ "URLRequestEvent",
1678+ "IDL:GNOME/GtkHTML/Editor/URLRequestEvent:1.0",
1679+ (char **) anon_subnames_array6,
1680+ NULL,
1681+ -1,
1682+ 0,
1683+ 0, 0
1684+};
1685+#endif
1686+
1687+#ifndef ORBIT_IDL_C_IMODULE_Editor
1688+CORBA_unsigned_long GNOME_GtkHTML_Editor_Listener__classid = 0;
1689+#endif
1690+
1691+#ifndef ORBIT_IDL_C_IMODULE_Editor
1692+CORBA_unsigned_long GNOME_GtkHTML_Editor_Engine__classid = 0;
1693+#endif
1694+
1695+/* Interface type data */
1696+
1697+static ORBit_IArg GNOME_GtkHTML_Editor_Listener_event__arginfo[] = {
1698+ {TC_CORBA_string, ORBit_I_ARG_IN, "name"},
1699+ {TC_CORBA_any, ORBit_I_ARG_IN, "arg"}
1700+};
1701+
1702+#ifdef ORBIT_IDL_C_IMODULE_Editor
1703+static
1704+#endif
1705+ORBit_IMethod GNOME_GtkHTML_Editor_Listener__imethods[] = {
1706+ {
1707+ {2, 2, GNOME_GtkHTML_Editor_Listener_event__arginfo, FALSE},
1708+ {0, 0, NULL, FALSE},
1709+ {0, 0, NULL, FALSE},
1710+ TC_CORBA_any, "event", 5,
1711+ 0}
1712+};
1713+static CORBA_string GNOME_GtkHTML_Editor_Listener__base_itypes[] = {
1714+ "IDL:Bonobo/Unknown:1.0",
1715+ "IDL:omg.org/CORBA/Object:1.0"
1716+};
1717+
1718+#ifdef ORBIT_IDL_C_IMODULE_Editor
1719+static
1720+#endif
1721+ORBit_IInterface GNOME_GtkHTML_Editor_Listener__iinterface = {
1722+ TC_GNOME_GtkHTML_Editor_Listener, {1, 1,
1723+ GNOME_GtkHTML_Editor_Listener__imethods,
1724+ FALSE},
1725+ {2, 2, GNOME_GtkHTML_Editor_Listener__base_itypes, FALSE}
1726+};
1727+
1728+static ORBit_IArg GNOME_GtkHTML_Editor_Engine__set_listener__arginfo[] = {
1729+ {TC_GNOME_GtkHTML_Editor_Listener, ORBit_I_ARG_IN, "value"}
1730+};
1731+static ORBit_IArg GNOME_GtkHTML_Editor_Engine_runCommand__arginfo[] = {
1732+ {TC_CORBA_string, ORBit_I_ARG_IN, "command"}
1733+};
1734+static ORBit_IArg GNOME_GtkHTML_Editor_Engine_getParagraphData__arginfo[] = {
1735+ {TC_CORBA_string, ORBit_I_ARG_IN, "key"}
1736+};
1737+static ORBit_IArg GNOME_GtkHTML_Editor_Engine_setParagraphData__arginfo[] = {
1738+ {TC_CORBA_string, ORBit_I_ARG_IN, "key"},
1739+ {TC_CORBA_string, ORBit_I_ARG_IN, "value"}
1740+};
1741+static ORBit_IArg GNOME_GtkHTML_Editor_Engine_setObjectDataByType__arginfo[] = {
1742+ {TC_CORBA_string, ORBit_I_ARG_IN, "type_name"},
1743+ {TC_CORBA_string, ORBit_I_ARG_IN, "key"},
1744+ {TC_CORBA_string, ORBit_I_ARG_IN, "data"}
1745+};
1746+static ORBit_IArg GNOME_GtkHTML_Editor_Engine_searchByData__arginfo[] = {
1747+ {TC_CORBA_long, ORBit_I_ARG_IN | ORBit_I_COMMON_FIXED_SIZE, "level"},
1748+ {TC_CORBA_string, ORBit_I_ARG_IN, "klass"},
1749+ {TC_CORBA_string, ORBit_I_ARG_IN, "key"},
1750+ {TC_CORBA_string, ORBit_I_ARG_IN, "value"}
1751+};
1752+static ORBit_IArg GNOME_GtkHTML_Editor_Engine_insertHTML__arginfo[] = {
1753+ {TC_CORBA_string, ORBit_I_ARG_IN, "html"}
1754+};
1755+static ORBit_IArg GNOME_GtkHTML_Editor_Engine_undoBegin__arginfo[] = {
1756+ {TC_CORBA_string, ORBit_I_ARG_IN, "undo_name"},
1757+ {TC_CORBA_string, ORBit_I_ARG_IN, "redo_name"}
1758+};
1759+static ORBit_IArg GNOME_GtkHTML_Editor_Engine_ignoreWord__arginfo[] = {
1760+ {TC_CORBA_string, ORBit_I_ARG_IN, "word"}
1761+};
1762+
1763+#ifdef ORBIT_IDL_C_IMODULE_Editor
1764+static
1765+#endif
1766+ORBit_IMethod GNOME_GtkHTML_Editor_Engine__imethods[] = {
1767+ {
1768+ {0, 0, NULL, FALSE},
1769+ {0, 0, NULL, FALSE},
1770+ {0, 0, NULL, FALSE},
1771+ TC_GNOME_GtkHTML_Editor_Listener, "_get_listener", 13,
1772+ 0}
1773+ , {
1774+ {1, 1, GNOME_GtkHTML_Editor_Engine__set_listener__arginfo, FALSE},
1775+ {0, 0, NULL, FALSE},
1776+ {0, 0, NULL, FALSE},
1777+ TC_void, "_set_listener", 13,
1778+ 0}
1779+ , {
1780+ {1, 1, GNOME_GtkHTML_Editor_Engine_runCommand__arginfo, FALSE},
1781+ {0, 0, NULL, FALSE},
1782+ {0, 0, NULL, FALSE},
1783+ TC_CORBA_boolean, "runCommand", 10,
1784+ 0 | ORBit_I_COMMON_FIXED_SIZE}
1785+ , {
1786+ {1, 1, GNOME_GtkHTML_Editor_Engine_getParagraphData__arginfo, FALSE},
1787+ {0, 0, NULL, FALSE},
1788+ {0, 0, NULL, FALSE},
1789+ TC_CORBA_string, "getParagraphData", 16,
1790+ 0}
1791+ , {
1792+ {2, 2, GNOME_GtkHTML_Editor_Engine_setParagraphData__arginfo, FALSE},
1793+ {0, 0, NULL, FALSE},
1794+ {0, 0, NULL, FALSE},
1795+ TC_void, "setParagraphData", 16,
1796+ 0}
1797+ , {
1798+ {3, 3, GNOME_GtkHTML_Editor_Engine_setObjectDataByType__arginfo, FALSE},
1799+ {0, 0, NULL, FALSE},
1800+ {0, 0, NULL, FALSE},
1801+ TC_void, "setObjectDataByType", 19,
1802+ 0}
1803+ , {
1804+ {4, 4, GNOME_GtkHTML_Editor_Engine_searchByData__arginfo, FALSE},
1805+ {0, 0, NULL, FALSE},
1806+ {0, 0, NULL, FALSE},
1807+ TC_CORBA_boolean, "searchByData", 12,
1808+ 0 | ORBit_I_COMMON_FIXED_SIZE}
1809+ , {
1810+ {0, 0, NULL, FALSE},
1811+ {0, 0, NULL, FALSE},
1812+ {0, 0, NULL, FALSE},
1813+ TC_CORBA_boolean, "isParagraphEmpty", 16,
1814+ 0 | ORBit_I_COMMON_FIXED_SIZE}
1815+ , {
1816+ {0, 0, NULL, FALSE},
1817+ {0, 0, NULL, FALSE},
1818+ {0, 0, NULL, FALSE},
1819+ TC_CORBA_boolean, "isPreviousParagraphEmpty", 24,
1820+ 0 | ORBit_I_COMMON_FIXED_SIZE}
1821+ , {
1822+ {1, 1, GNOME_GtkHTML_Editor_Engine_insertHTML__arginfo, FALSE},
1823+ {0, 0, NULL, FALSE},
1824+ {0, 0, NULL, FALSE},
1825+ TC_void, "insertHTML", 10,
1826+ 0}
1827+ , {
1828+ {0, 0, NULL, FALSE},
1829+ {0, 0, NULL, FALSE},
1830+ {0, 0, NULL, FALSE},
1831+ TC_void, "freeze", 6,
1832+ 0}
1833+ , {
1834+ {0, 0, NULL, FALSE},
1835+ {0, 0, NULL, FALSE},
1836+ {0, 0, NULL, FALSE},
1837+ TC_void, "thaw", 4,
1838+ 0}
1839+ , {
1840+ {2, 2, GNOME_GtkHTML_Editor_Engine_undoBegin__arginfo, FALSE},
1841+ {0, 0, NULL, FALSE},
1842+ {0, 0, NULL, FALSE},
1843+ TC_void, "undoBegin", 9,
1844+ 0}
1845+ , {
1846+ {0, 0, NULL, FALSE},
1847+ {0, 0, NULL, FALSE},
1848+ {0, 0, NULL, FALSE},
1849+ TC_void, "undoEnd", 7,
1850+ 0}
1851+ , {
1852+ {1, 1, GNOME_GtkHTML_Editor_Engine_ignoreWord__arginfo, FALSE},
1853+ {0, 0, NULL, FALSE},
1854+ {0, 0, NULL, FALSE},
1855+ TC_void, "ignoreWord", 10,
1856+ 0}
1857+ , {
1858+ {0, 0, NULL, FALSE},
1859+ {0, 0, NULL, FALSE},
1860+ {0, 0, NULL, FALSE},
1861+ TC_void, "dropUndo", 8,
1862+ 0}
1863+ , {
1864+ {0, 0, NULL, FALSE},
1865+ {0, 0, NULL, FALSE},
1866+ {0, 0, NULL, FALSE},
1867+ TC_CORBA_boolean, "hasUndo", 7,
1868+ 0 | ORBit_I_COMMON_FIXED_SIZE}
1869+};
1870+static CORBA_string GNOME_GtkHTML_Editor_Engine__base_itypes[] = {
1871+ "IDL:Bonobo/Unknown:1.0",
1872+ "IDL:omg.org/CORBA/Object:1.0"
1873+};
1874+
1875+#ifdef ORBIT_IDL_C_IMODULE_Editor
1876+static
1877+#endif
1878+ORBit_IInterface GNOME_GtkHTML_Editor_Engine__iinterface = {
1879+ TC_GNOME_GtkHTML_Editor_Engine, {17, 17,
1880+ GNOME_GtkHTML_Editor_Engine__imethods,
1881+ FALSE},
1882+ {2, 2, GNOME_GtkHTML_Editor_Engine__base_itypes, FALSE}
1883+};
1884diff --new-file -u -r --exclude-from=excludelist vimcopy/src/gtkhtml_editor_skels.c vim/src/gtkhtml_editor_skels.c
1885--- vimcopy/src/gtkhtml_editor_skels.c Wed Dec 31 18:00:00 1969
1886+++ vim/src/gtkhtml_editor_skels.c Sat Jul 26 13:16:47 2003
1887@@ -0,0 +1,658 @@
1888+/*
1889+ * This file was generated by orbit-idl-2 - DO NOT EDIT!
1890+ */
1891+
1892+#include <string.h>
1893+#define ORBIT2_STUBS_API
1894+#include "gtkhtml.h"
1895+
1896+void
1897+_ORBIT_skel_small_GNOME_GtkHTML_Editor_Listener_event
1898+ (POA_GNOME_GtkHTML_Editor_Listener * _o_servant, gpointer _o_retval,
1899+ gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
1900+ CORBA_any * (*_impl_event) (PortableServer_Servant _servant,
1901+ const CORBA_char * name,
1902+ const CORBA_any * arg,
1903+ CORBA_Environment * ev))
1904+{
1905+ *(CORBA_any * *)_o_retval =
1906+ _impl_event(_o_servant, *(const CORBA_char * *) _o_args[0],
1907+ (const CORBA_any *) _o_args[1], _o_ev);
1908+}
1909+
1910+void
1911+_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine__get_listener
1912+ (POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval,
1913+ gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
1914+ GNOME_GtkHTML_Editor_Listener(*_impl__get_listener)
1915+ (PortableServer_Servant _servant, CORBA_Environment * ev))
1916+{
1917+ *(GNOME_GtkHTML_Editor_Listener *) _o_retval =
1918+ _impl__get_listener(_o_servant, _o_ev);
1919+}
1920+
1921+void
1922+_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine__set_listener
1923+ (POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval,
1924+ gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
1925+ void (*_impl__set_listener) (PortableServer_Servant _servant,
1926+ const GNOME_GtkHTML_Editor_Listener value,
1927+ CORBA_Environment * ev))
1928+{
1929+ _impl__set_listener(_o_servant,
1930+ *(const GNOME_GtkHTML_Editor_Listener *) _o_args[0],
1931+ _o_ev);
1932+}
1933+
1934+void
1935+_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_runCommand
1936+ (POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval,
1937+ gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
1938+ CORBA_boolean(*_impl_runCommand) (PortableServer_Servant _servant,
1939+ const CORBA_char * command,
1940+ CORBA_Environment * ev))
1941+{
1942+ *(CORBA_boolean *) _o_retval =
1943+ _impl_runCommand(_o_servant, *(const CORBA_char * *) _o_args[0], _o_ev);
1944+}
1945+
1946+void
1947+_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_getParagraphData
1948+ (POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval,
1949+ gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
1950+ CORBA_string(*_impl_getParagraphData) (PortableServer_Servant _servant,
1951+ const CORBA_char * key,
1952+ CORBA_Environment * ev))
1953+{
1954+ *(CORBA_string *) _o_retval =
1955+ _impl_getParagraphData(_o_servant, *(const CORBA_char * *) _o_args[0],
1956+ _o_ev);
1957+}
1958+
1959+void
1960+_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_setParagraphData
1961+ (POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval,
1962+ gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
1963+ void (*_impl_setParagraphData) (PortableServer_Servant _servant,
1964+ const CORBA_char * key,
1965+ const CORBA_char * value,
1966+ CORBA_Environment * ev))
1967+{
1968+ _impl_setParagraphData(_o_servant, *(const CORBA_char * *) _o_args[0],
1969+ *(const CORBA_char * *) _o_args[1], _o_ev);
1970+}
1971+
1972+void
1973+_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_setObjectDataByType
1974+ (POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval,
1975+ gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
1976+ void (*_impl_setObjectDataByType) (PortableServer_Servant _servant,
1977+ const CORBA_char * type_name,
1978+ const CORBA_char * key,
1979+ const CORBA_char * data,
1980+ CORBA_Environment * ev))
1981+{
1982+ _impl_setObjectDataByType(_o_servant, *(const CORBA_char * *) _o_args[0],
1983+ *(const CORBA_char * *) _o_args[1],
1984+ *(const CORBA_char * *) _o_args[2], _o_ev);
1985+}
1986+
1987+void
1988+_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_searchByData
1989+ (POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval,
1990+ gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
1991+ CORBA_boolean(*_impl_searchByData) (PortableServer_Servant _servant,
1992+ const CORBA_long level,
1993+ const CORBA_char * klass,
1994+ const CORBA_char * key,
1995+ const CORBA_char * value,
1996+ CORBA_Environment * ev))
1997+{
1998+ *(CORBA_boolean *) _o_retval =
1999+ _impl_searchByData(_o_servant, *(const CORBA_long *) _o_args[0],
2000+ *(const CORBA_char * *) _o_args[1],
2001+ *(const CORBA_char * *) _o_args[2],
2002+ *(const CORBA_char * *) _o_args[3], _o_ev);
2003+}
2004+
2005+void
2006+_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_isParagraphEmpty
2007+ (POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval,
2008+ gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
2009+ CORBA_boolean(*_impl_isParagraphEmpty) (PortableServer_Servant _servant,
2010+ CORBA_Environment * ev))
2011+{
2012+ *(CORBA_boolean *) _o_retval = _impl_isParagraphEmpty(_o_servant, _o_ev);
2013+}
2014+
2015+void
2016+_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_isPreviousParagraphEmpty
2017+ (POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval,
2018+ gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
2019+ CORBA_boolean(*_impl_isPreviousParagraphEmpty) (PortableServer_Servant
2020+ _servant,
2021+ CORBA_Environment * ev))
2022+{
2023+ *(CORBA_boolean *) _o_retval =
2024+ _impl_isPreviousParagraphEmpty(_o_servant, _o_ev);
2025+}
2026+
2027+void
2028+_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_insertHTML
2029+ (POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval,
2030+ gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
2031+ void (*_impl_insertHTML) (PortableServer_Servant _servant,
2032+ const CORBA_char * html,
2033+ CORBA_Environment * ev))
2034+{
2035+ _impl_insertHTML(_o_servant, *(const CORBA_char * *) _o_args[0], _o_ev);
2036+}
2037+
2038+void
2039+_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_freeze
2040+ (POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval,
2041+ gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
2042+ void (*_impl_freeze) (PortableServer_Servant _servant,
2043+ CORBA_Environment * ev))
2044+{
2045+ _impl_freeze(_o_servant, _o_ev);
2046+}
2047+
2048+void
2049+_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_thaw
2050+ (POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval,
2051+ gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
2052+ void (*_impl_thaw) (PortableServer_Servant _servant,
2053+ CORBA_Environment * ev))
2054+{
2055+ _impl_thaw(_o_servant, _o_ev);
2056+}
2057+
2058+void
2059+_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_undoBegin
2060+ (POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval,
2061+ gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
2062+ void (*_impl_undoBegin) (PortableServer_Servant _servant,
2063+ const CORBA_char * undo_name,
2064+ const CORBA_char * redo_name,
2065+ CORBA_Environment * ev))
2066+{
2067+ _impl_undoBegin(_o_servant, *(const CORBA_char * *) _o_args[0],
2068+ *(const CORBA_char * *) _o_args[1], _o_ev);
2069+}
2070+
2071+void
2072+_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_undoEnd
2073+ (POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval,
2074+ gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
2075+ void (*_impl_undoEnd) (PortableServer_Servant _servant,
2076+ CORBA_Environment * ev))
2077+{
2078+ _impl_undoEnd(_o_servant, _o_ev);
2079+}
2080+
2081+void
2082+_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_ignoreWord
2083+ (POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval,
2084+ gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
2085+ void (*_impl_ignoreWord) (PortableServer_Servant _servant,
2086+ const CORBA_char * word,
2087+ CORBA_Environment * ev))
2088+{
2089+ _impl_ignoreWord(_o_servant, *(const CORBA_char * *) _o_args[0], _o_ev);
2090+}
2091+
2092+void
2093+_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_dropUndo
2094+ (POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval,
2095+ gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
2096+ void (*_impl_dropUndo) (PortableServer_Servant _servant,
2097+ CORBA_Environment * ev))
2098+{
2099+ _impl_dropUndo(_o_servant, _o_ev);
2100+}
2101+
2102+void
2103+_ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_hasUndo
2104+ (POA_GNOME_GtkHTML_Editor_Engine * _o_servant, gpointer _o_retval,
2105+ gpointer * _o_args, CORBA_Context _o_ctx, CORBA_Environment * _o_ev,
2106+ CORBA_boolean(*_impl_hasUndo) (PortableServer_Servant _servant,
2107+ CORBA_Environment * ev))
2108+{
2109+ *(CORBA_boolean *) _o_retval = _impl_hasUndo(_o_servant, _o_ev);
2110+}
2111+static ORBitSmallSkeleton
2112+get_skel_small_GNOME_GtkHTML_Editor_Listener(POA_GNOME_GtkHTML_Editor_Listener
2113+ * servant, const char *opname,
2114+ gpointer * m_data,
2115+ gpointer * impl)
2116+{
2117+ switch (opname[0]) {
2118+ case 'e':
2119+ if (strcmp((opname + 1), "vent"))
2120+ break;
2121+ *impl =
2122+ (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Listener_epv->event;
2123+ *m_data =
2124+ (gpointer) & GNOME_GtkHTML_Editor_Listener__iinterface.methods.
2125+ _buffer[0];
2126+ return (ORBitSmallSkeleton)
2127+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Listener_event;
2128+ break;
2129+ case 'q':
2130+ if (strcmp((opname + 1), "ueryInterface"))
2131+ break;
2132+ *impl = (gpointer) servant->vepv->Bonobo_Unknown_epv->queryInterface;
2133+ *m_data = (gpointer) & Bonobo_Unknown__iinterface.methods._buffer[2];
2134+ return (ORBitSmallSkeleton)
2135+ _ORBIT_skel_small_Bonobo_Unknown_queryInterface;
2136+ break;
2137+ case 'r':
2138+ if (strcmp((opname + 1), "ef"))
2139+ break;
2140+ *impl = (gpointer) servant->vepv->Bonobo_Unknown_epv->ref;
2141+ *m_data = (gpointer) & Bonobo_Unknown__iinterface.methods._buffer[0];
2142+ return (ORBitSmallSkeleton) _ORBIT_skel_small_Bonobo_Unknown_ref;
2143+ break;
2144+ case 'u':
2145+ if (strcmp((opname + 1), "nref"))
2146+ break;
2147+ *impl = (gpointer) servant->vepv->Bonobo_Unknown_epv->unref;
2148+ *m_data = (gpointer) & Bonobo_Unknown__iinterface.methods._buffer[1];
2149+ return (ORBitSmallSkeleton) _ORBIT_skel_small_Bonobo_Unknown_unref;
2150+ break;
2151+ default:
2152+ break;
2153+ }
2154+ return NULL;
2155+}
2156+
2157+void
2158+POA_GNOME_GtkHTML_Editor_Listener__init(PortableServer_Servant servant,
2159+ CORBA_Environment * env)
2160+{
2161+ static PortableServer_ClassInfo class_info =
2162+ { NULL,
2163+(ORBit_small_impl_finder) & get_skel_small_GNOME_GtkHTML_Editor_Listener,
2164+ "IDL:GNOME/GtkHTML/Editor/Listener:1.0",
2165+ &GNOME_GtkHTML_Editor_Listener__classid, NULL,
2166+ &GNOME_GtkHTML_Editor_Listener__iinterface };
2167+ POA_GNOME_GtkHTML_Editor_Listener__vepv *fakevepv = NULL;
2168+
2169+ if (((PortableServer_ServantBase *) servant)->vepv[0]->finalize == 0) {
2170+ ((PortableServer_ServantBase *) servant)->vepv[0]->finalize =
2171+ POA_GNOME_GtkHTML_Editor_Listener__fini;
2172+ }
2173+ PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant),
2174+ env);
2175+ POA_Bonobo_Unknown__init(servant, env);
2176+ ORBit_classinfo_register(&class_info);
2177+ ORBIT_SERVANT_SET_CLASSINFO(servant, &class_info);
2178+
2179+ if (!class_info.vepvmap) {
2180+ class_info.vepvmap =
2181+ g_new0(ORBit_VepvIdx, GNOME_GtkHTML_Editor_Listener__classid + 1);
2182+ class_info.vepvmap[Bonobo_Unknown__classid] =
2183+ (((char *) &(fakevepv->Bonobo_Unknown_epv)) -
2184+ ((char *) (fakevepv))) / sizeof(GFunc);
2185+ class_info.vepvmap[GNOME_GtkHTML_Editor_Listener__classid] =
2186+ (((char *) &(fakevepv->GNOME_GtkHTML_Editor_Listener_epv)) -
2187+ ((char *) (fakevepv))) / sizeof(GFunc);
2188+ }
2189+}
2190+
2191+void
2192+POA_GNOME_GtkHTML_Editor_Listener__fini(PortableServer_Servant servant,
2193+ CORBA_Environment * env)
2194+{
2195+ POA_Bonobo_Unknown__fini(servant, env);
2196+ PortableServer_ServantBase__fini(servant, env);
2197+}
2198+
2199+static ORBitSmallSkeleton
2200+get_skel_small_GNOME_GtkHTML_Editor_Engine(POA_GNOME_GtkHTML_Editor_Engine *
2201+ servant, const char *opname,
2202+ gpointer * m_data, gpointer * impl)
2203+{
2204+ switch (opname[0]) {
2205+ case '_':
2206+ switch (opname[1]) {
2207+ case 'g':
2208+ if (strcmp((opname + 2), "et_listener"))
2209+ break;
2210+ *impl =
2211+ (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->
2212+ _get_listener;
2213+ *m_data =
2214+ (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods.
2215+ _buffer[0];
2216+ return (ORBitSmallSkeleton)
2217+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine__get_listener;
2218+ break;
2219+ case 's':
2220+ if (strcmp((opname + 2), "et_listener"))
2221+ break;
2222+ *impl =
2223+ (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->
2224+ _set_listener;
2225+ *m_data =
2226+ (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods.
2227+ _buffer[1];
2228+ return (ORBitSmallSkeleton)
2229+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine__set_listener;
2230+ break;
2231+ default:
2232+ break;
2233+ }
2234+ break;
2235+ case 'd':
2236+ if (strcmp((opname + 1), "ropUndo"))
2237+ break;
2238+ *impl =
2239+ (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->dropUndo;
2240+ *m_data =
2241+ (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods.
2242+ _buffer[15];
2243+ return (ORBitSmallSkeleton)
2244+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_dropUndo;
2245+ break;
2246+ case 'f':
2247+ if (strcmp((opname + 1), "reeze"))
2248+ break;
2249+ *impl =
2250+ (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->freeze;
2251+ *m_data =
2252+ (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods.
2253+ _buffer[10];
2254+ return (ORBitSmallSkeleton)
2255+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_freeze;
2256+ break;
2257+ case 'g':
2258+ if (strcmp((opname + 1), "etParagraphData"))
2259+ break;
2260+ *impl =
2261+ (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->
2262+ getParagraphData;
2263+ *m_data =
2264+ (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods.
2265+ _buffer[3];
2266+ return (ORBitSmallSkeleton)
2267+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_getParagraphData;
2268+ break;
2269+ case 'h':
2270+ if (strcmp((opname + 1), "asUndo"))
2271+ break;
2272+ *impl =
2273+ (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->hasUndo;
2274+ *m_data =
2275+ (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods.
2276+ _buffer[16];
2277+ return (ORBitSmallSkeleton)
2278+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_hasUndo;
2279+ break;
2280+ case 'i':
2281+ switch (opname[1]) {
2282+ case 'g':
2283+ if (strcmp((opname + 2), "noreWord"))
2284+ break;
2285+ *impl =
2286+ (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->
2287+ ignoreWord;
2288+ *m_data =
2289+ (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods.
2290+ _buffer[14];
2291+ return (ORBitSmallSkeleton)
2292+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_ignoreWord;
2293+ break;
2294+ case 'n':
2295+ if (strcmp((opname + 2), "sertHTML"))
2296+ break;
2297+ *impl =
2298+ (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->
2299+ insertHTML;
2300+ *m_data =
2301+ (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods.
2302+ _buffer[9];
2303+ return (ORBitSmallSkeleton)
2304+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_insertHTML;
2305+ break;
2306+ case 's':
2307+ switch (opname[2]) {
2308+ case 'P':
2309+ switch (opname[3]) {
2310+ case 'a':
2311+ if (strcmp((opname + 4), "ragraphEmpty"))
2312+ break;
2313+ *impl =
2314+ (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->
2315+ isParagraphEmpty;
2316+ *m_data =
2317+ (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.
2318+ methods._buffer[7];
2319+ return (ORBitSmallSkeleton)
2320+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_isParagraphEmpty;
2321+ break;
2322+ case 'r':
2323+ if (strcmp((opname + 4), "eviousParagraphEmpty"))
2324+ break;
2325+ *impl =
2326+ (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->
2327+ isPreviousParagraphEmpty;
2328+ *m_data =
2329+ (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.
2330+ methods._buffer[8];
2331+ return (ORBitSmallSkeleton)
2332+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_isPreviousParagraphEmpty;
2333+ break;
2334+ default:
2335+ break;
2336+ }
2337+ break;
2338+ default:
2339+ break;
2340+ }
2341+ break;
2342+ default:
2343+ break;
2344+ }
2345+ break;
2346+ case 'q':
2347+ if (strcmp((opname + 1), "ueryInterface"))
2348+ break;
2349+ *impl = (gpointer) servant->vepv->Bonobo_Unknown_epv->queryInterface;
2350+ *m_data = (gpointer) & Bonobo_Unknown__iinterface.methods._buffer[2];
2351+ return (ORBitSmallSkeleton)
2352+ _ORBIT_skel_small_Bonobo_Unknown_queryInterface;
2353+ break;
2354+ case 'r':
2355+ switch (opname[1]) {
2356+ case 'e':
2357+ if (strcmp((opname + 2), "f"))
2358+ break;
2359+ *impl = (gpointer) servant->vepv->Bonobo_Unknown_epv->ref;
2360+ *m_data = (gpointer) & Bonobo_Unknown__iinterface.methods._buffer[0];
2361+ return (ORBitSmallSkeleton) _ORBIT_skel_small_Bonobo_Unknown_ref;
2362+ break;
2363+ case 'u':
2364+ if (strcmp((opname + 2), "nCommand"))
2365+ break;
2366+ *impl =
2367+ (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->
2368+ runCommand;
2369+ *m_data =
2370+ (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods.
2371+ _buffer[2];
2372+ return (ORBitSmallSkeleton)
2373+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_runCommand;
2374+ break;
2375+ default:
2376+ break;
2377+ }
2378+ break;
2379+ case 's':
2380+ switch (opname[1]) {
2381+ case 'e':
2382+ switch (opname[2]) {
2383+ case 'a':
2384+ if (strcmp((opname + 3), "rchByData"))
2385+ break;
2386+ *impl =
2387+ (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->
2388+ searchByData;
2389+ *m_data =
2390+ (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods.
2391+ _buffer[6];
2392+ return (ORBitSmallSkeleton)
2393+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_searchByData;
2394+ break;
2395+ case 't':
2396+ switch (opname[3]) {
2397+ case 'O':
2398+ if (strcmp((opname + 4), "bjectDataByType"))
2399+ break;
2400+ *impl =
2401+ (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->
2402+ setObjectDataByType;
2403+ *m_data =
2404+ (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.
2405+ methods._buffer[5];
2406+ return (ORBitSmallSkeleton)
2407+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_setObjectDataByType;
2408+ break;
2409+ case 'P':
2410+ if (strcmp((opname + 4), "aragraphData"))
2411+ break;
2412+ *impl =
2413+ (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->
2414+ setParagraphData;
2415+ *m_data =
2416+ (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.
2417+ methods._buffer[4];
2418+ return (ORBitSmallSkeleton)
2419+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_setParagraphData;
2420+ break;
2421+ default:
2422+ break;
2423+ }
2424+ break;
2425+ default:
2426+ break;
2427+ }
2428+ break;
2429+ default:
2430+ break;
2431+ }
2432+ break;
2433+ case 't':
2434+ if (strcmp((opname + 1), "haw"))
2435+ break;
2436+ *impl = (gpointer) servant->vepv->GNOME_GtkHTML_Editor_Engine_epv->thaw;
2437+ *m_data =
2438+ (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.methods.
2439+ _buffer[11];
2440+ return (ORBitSmallSkeleton)
2441+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_thaw;
2442+ break;
2443+ case 'u':
2444+ switch (opname[1]) {
2445+ case 'n':
2446+ switch (opname[2]) {
2447+ case 'd':
2448+ switch (opname[3]) {
2449+ case 'o':
2450+ switch (opname[4]) {
2451+ case 'B':
2452+ if (strcmp((opname + 5), "egin"))
2453+ break;
2454+ *impl =
2455+ (gpointer) servant->vepv->
2456+ GNOME_GtkHTML_Editor_Engine_epv->undoBegin;
2457+ *m_data =
2458+ (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.
2459+ methods._buffer[12];
2460+ return (ORBitSmallSkeleton)
2461+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_undoBegin;
2462+ break;
2463+ case 'E':
2464+ if (strcmp((opname + 5), "nd"))
2465+ break;
2466+ *impl =
2467+ (gpointer) servant->vepv->
2468+ GNOME_GtkHTML_Editor_Engine_epv->undoEnd;
2469+ *m_data =
2470+ (gpointer) & GNOME_GtkHTML_Editor_Engine__iinterface.
2471+ methods._buffer[13];
2472+ return (ORBitSmallSkeleton)
2473+ _ORBIT_skel_small_GNOME_GtkHTML_Editor_Engine_undoEnd;
2474+ break;
2475+ default:
2476+ break;
2477+ }
2478+ break;
2479+ default:
2480+ break;
2481+ }
2482+ break;
2483+ case 'r':
2484+ if (strcmp((opname + 3), "ef"))
2485+ break;
2486+ *impl = (gpointer) servant->vepv->Bonobo_Unknown_epv->unref;
2487+ *m_data =
2488+ (gpointer) & Bonobo_Unknown__iinterface.methods._buffer[1];
2489+ return (ORBitSmallSkeleton)
2490+ _ORBIT_skel_small_Bonobo_Unknown_unref;
2491+ break;
2492+ default:
2493+ break;
2494+ }
2495+ break;
2496+ default:
2497+ break;
2498+ }
2499+ break;
2500+ default:
2501+ break;
2502+ }
2503+ return NULL;
2504+}
2505+
2506+void
2507+POA_GNOME_GtkHTML_Editor_Engine__init(PortableServer_Servant servant,
2508+ CORBA_Environment * env)
2509+{
2510+ static PortableServer_ClassInfo class_info =
2511+ { NULL,
2512+(ORBit_small_impl_finder) & get_skel_small_GNOME_GtkHTML_Editor_Engine, "IDL:GNOME/GtkHTML/Editor/Engine:1.0",
2513+ &GNOME_GtkHTML_Editor_Engine__classid, NULL,
2514+ &GNOME_GtkHTML_Editor_Engine__iinterface };
2515+ POA_GNOME_GtkHTML_Editor_Engine__vepv *fakevepv = NULL;
2516+
2517+ if (((PortableServer_ServantBase *) servant)->vepv[0]->finalize == 0) {
2518+ ((PortableServer_ServantBase *) servant)->vepv[0]->finalize =
2519+ POA_GNOME_GtkHTML_Editor_Engine__fini;
2520+ }
2521+ PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant),
2522+ env);
2523+ POA_Bonobo_Unknown__init(servant, env);
2524+ ORBit_classinfo_register(&class_info);
2525+ ORBIT_SERVANT_SET_CLASSINFO(servant, &class_info);
2526+
2527+ if (!class_info.vepvmap) {
2528+ class_info.vepvmap =
2529+ g_new0(ORBit_VepvIdx, GNOME_GtkHTML_Editor_Engine__classid + 1);
2530+ class_info.vepvmap[Bonobo_Unknown__classid] =
2531+ (((char *) &(fakevepv->Bonobo_Unknown_epv)) -
2532+ ((char *) (fakevepv))) / sizeof(GFunc);
2533+ class_info.vepvmap[GNOME_GtkHTML_Editor_Engine__classid] =
2534+ (((char *) &(fakevepv->GNOME_GtkHTML_Editor_Engine_epv)) -
2535+ ((char *) (fakevepv))) / sizeof(GFunc);
2536+ }
2537+}
2538+
2539+void
2540+POA_GNOME_GtkHTML_Editor_Engine__fini(PortableServer_Servant servant,
2541+ CORBA_Environment * env)
2542+{
2543+ POA_Bonobo_Unknown__fini(servant, env);
2544+ PortableServer_ServantBase__fini(servant, env);
2545+}
2546diff --new-file -u -r --exclude-from=excludelist vimcopy/src/gtkhtml_editor_stubs.c vim/src/gtkhtml_editor_stubs.c
2547--- vimcopy/src/gtkhtml_editor_stubs.c Wed Dec 31 18:00:00 1969
2548+++ vim/src/gtkhtml_editor_stubs.c Sat Jul 26 13:16:47 2003
2549@@ -0,0 +1,496 @@
2550+/*
2551+ * This file was generated by orbit-idl-2 - DO NOT EDIT!
2552+ */
2553+
2554+#include <string.h>
2555+#define ORBIT2_STUBS_API
2556+#include "gtkhtml.h"
2557+
2558+CORBA_any *
2559+GNOME_GtkHTML_Editor_Listener_event(GNOME_GtkHTML_Editor_Listener _obj,
2560+ const CORBA_char * name,
2561+ const CORBA_any * arg,
2562+ CORBA_Environment * ev)
2563+{
2564+ CORBA_any *_ORBIT_retval;
2565+ POA_GNOME_GtkHTML_Editor_Listener__epv *_ORBIT_epv;
2566+
2567+ if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
2568+ ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Listener__classid) &&
2569+ (_ORBIT_epv =
2570+ (POA_GNOME_GtkHTML_Editor_Listener__epv *) ORBIT_STUB_GetEpv(_obj,
2571+ GNOME_GtkHTML_Editor_Listener__classid))->
2572+ event) {
2573+ ORBIT_STUB_PreCall(_obj);
2574+ _ORBIT_retval =
2575+ _ORBIT_epv->event(ORBIT_STUB_GetServant(_obj), name, arg, ev);
2576+ ORBIT_STUB_PostCall(_obj);
2577+ } else { /* remote marshal */
2578+ gpointer _args[2];
2579+
2580+ _args[0] = (gpointer) & name;
2581+ _args[1] = (gpointer) arg;
2582+ ORBit_small_invoke_stub_n(_obj,
2583+ &GNOME_GtkHTML_Editor_Listener__iinterface.
2584+ methods, 0, &_ORBIT_retval, _args, NULL, ev);
2585+
2586+ }
2587+ return _ORBIT_retval;
2588+}
2589+
2590+GNOME_GtkHTML_Editor_Listener
2591+GNOME_GtkHTML_Editor_Engine__get_listener(GNOME_GtkHTML_Editor_Engine _obj,
2592+ CORBA_Environment * ev)
2593+{
2594+ GNOME_GtkHTML_Editor_Listener _ORBIT_retval;
2595+ POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
2596+
2597+ if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
2598+ ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
2599+ (_ORBIT_epv =
2600+ (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj,
2601+ GNOME_GtkHTML_Editor_Engine__classid))->
2602+ _get_listener) {
2603+ ORBIT_STUB_PreCall(_obj);
2604+ _ORBIT_retval =
2605+ _ORBIT_epv->_get_listener(ORBIT_STUB_GetServant(_obj), ev);
2606+ ORBIT_STUB_PostCall(_obj);
2607+ } else { /* remote marshal */
2608+ ORBit_small_invoke_stub_n(_obj,
2609+ &GNOME_GtkHTML_Editor_Engine__iinterface.
2610+ methods, 0, &_ORBIT_retval, NULL, NULL, ev);
2611+
2612+ }
2613+ return _ORBIT_retval;
2614+}
2615+
2616+void
2617+GNOME_GtkHTML_Editor_Engine__set_listener(GNOME_GtkHTML_Editor_Engine _obj,
2618+ const GNOME_GtkHTML_Editor_Listener
2619+ value, CORBA_Environment * ev)
2620+{
2621+ POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
2622+
2623+ if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
2624+ ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
2625+ (_ORBIT_epv =
2626+ (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj,
2627+ GNOME_GtkHTML_Editor_Engine__classid))->
2628+ _set_listener) {
2629+ ORBIT_STUB_PreCall(_obj);
2630+ _ORBIT_epv->_set_listener(ORBIT_STUB_GetServant(_obj), value, ev);
2631+ ORBIT_STUB_PostCall(_obj);
2632+ } else { /* remote marshal */
2633+ gpointer _args[1];
2634+
2635+ _args[0] = (gpointer) & value;
2636+ ORBit_small_invoke_stub_n(_obj,
2637+ &GNOME_GtkHTML_Editor_Engine__iinterface.
2638+ methods, 1, NULL, _args, NULL, ev);
2639+
2640+ }
2641+}
2642+CORBA_boolean
2643+GNOME_GtkHTML_Editor_Engine_runCommand(GNOME_GtkHTML_Editor_Engine _obj,
2644+ const CORBA_char * command,
2645+ CORBA_Environment * ev)
2646+{
2647+ CORBA_boolean _ORBIT_retval;
2648+ POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
2649+
2650+ if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
2651+ ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
2652+ (_ORBIT_epv =
2653+ (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj,
2654+ GNOME_GtkHTML_Editor_Engine__classid))->
2655+ runCommand) {
2656+ ORBIT_STUB_PreCall(_obj);
2657+ _ORBIT_retval =
2658+ _ORBIT_epv->runCommand(ORBIT_STUB_GetServant(_obj), command, ev);
2659+ ORBIT_STUB_PostCall(_obj);
2660+ } else { /* remote marshal */
2661+ gpointer _args[1];
2662+
2663+ _args[0] = (gpointer) & command;
2664+ ORBit_small_invoke_stub_n(_obj,
2665+ &GNOME_GtkHTML_Editor_Engine__iinterface.
2666+ methods, 2, &_ORBIT_retval, _args, NULL, ev);
2667+
2668+ }
2669+ return _ORBIT_retval;
2670+}
2671+
2672+CORBA_string
2673+GNOME_GtkHTML_Editor_Engine_getParagraphData(GNOME_GtkHTML_Editor_Engine _obj,
2674+ const CORBA_char * key,
2675+ CORBA_Environment * ev)
2676+{
2677+ CORBA_string _ORBIT_retval;
2678+ POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
2679+
2680+ if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
2681+ ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
2682+ (_ORBIT_epv =
2683+ (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj,
2684+ GNOME_GtkHTML_Editor_Engine__classid))->
2685+ getParagraphData) {
2686+ ORBIT_STUB_PreCall(_obj);
2687+ _ORBIT_retval =
2688+ _ORBIT_epv->getParagraphData(ORBIT_STUB_GetServant(_obj), key, ev);
2689+ ORBIT_STUB_PostCall(_obj);
2690+ } else { /* remote marshal */
2691+ gpointer _args[1];
2692+
2693+ _args[0] = (gpointer) & key;
2694+ ORBit_small_invoke_stub_n(_obj,
2695+ &GNOME_GtkHTML_Editor_Engine__iinterface.
2696+ methods, 3, &_ORBIT_retval, _args, NULL, ev);
2697+
2698+ }
2699+ return _ORBIT_retval;
2700+}
2701+
2702+void
2703+GNOME_GtkHTML_Editor_Engine_setParagraphData(GNOME_GtkHTML_Editor_Engine _obj,
2704+ const CORBA_char * key,
2705+ const CORBA_char * value,
2706+ CORBA_Environment * ev)
2707+{
2708+ POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
2709+
2710+ if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
2711+ ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
2712+ (_ORBIT_epv =
2713+ (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj,
2714+ GNOME_GtkHTML_Editor_Engine__classid))->
2715+ setParagraphData) {
2716+ ORBIT_STUB_PreCall(_obj);
2717+ _ORBIT_epv->setParagraphData(ORBIT_STUB_GetServant(_obj), key, value,
2718+ ev);
2719+ ORBIT_STUB_PostCall(_obj);
2720+ } else { /* remote marshal */
2721+ gpointer _args[2];
2722+
2723+ _args[0] = (gpointer) & key;
2724+ _args[1] = (gpointer) & value;
2725+ ORBit_small_invoke_stub_n(_obj,
2726+ &GNOME_GtkHTML_Editor_Engine__iinterface.
2727+ methods, 4, NULL, _args, NULL, ev);
2728+
2729+ }
2730+}
2731+void
2732+GNOME_GtkHTML_Editor_Engine_setObjectDataByType(GNOME_GtkHTML_Editor_Engine
2733+ _obj,
2734+ const CORBA_char * type_name,
2735+ const CORBA_char * key,
2736+ const CORBA_char * data,
2737+ CORBA_Environment * ev)
2738+{
2739+ POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
2740+
2741+ if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
2742+ ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
2743+ (_ORBIT_epv =
2744+ (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj,
2745+ GNOME_GtkHTML_Editor_Engine__classid))->
2746+ setObjectDataByType) {
2747+ ORBIT_STUB_PreCall(_obj);
2748+ _ORBIT_epv->setObjectDataByType(ORBIT_STUB_GetServant(_obj), type_name,
2749+ key, data, ev);
2750+ ORBIT_STUB_PostCall(_obj);
2751+ } else { /* remote marshal */
2752+ gpointer _args[3];
2753+
2754+ _args[0] = (gpointer) & type_name;
2755+ _args[1] = (gpointer) & key;
2756+ _args[2] = (gpointer) & data;
2757+ ORBit_small_invoke_stub_n(_obj,
2758+ &GNOME_GtkHTML_Editor_Engine__iinterface.
2759+ methods, 5, NULL, _args, NULL, ev);
2760+
2761+ }
2762+}
2763+CORBA_boolean
2764+GNOME_GtkHTML_Editor_Engine_searchByData(GNOME_GtkHTML_Editor_Engine _obj,
2765+ const CORBA_long level,
2766+ const CORBA_char * klass,
2767+ const CORBA_char * key,
2768+ const CORBA_char * value,
2769+ CORBA_Environment * ev)
2770+{
2771+ CORBA_boolean _ORBIT_retval;
2772+ POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
2773+
2774+ if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
2775+ ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
2776+ (_ORBIT_epv =
2777+ (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj,
2778+ GNOME_GtkHTML_Editor_Engine__classid))->
2779+ searchByData) {
2780+ ORBIT_STUB_PreCall(_obj);
2781+ _ORBIT_retval =
2782+ _ORBIT_epv->searchByData(ORBIT_STUB_GetServant(_obj), level, klass,
2783+ key, value, ev);
2784+ ORBIT_STUB_PostCall(_obj);
2785+ } else { /* remote marshal */
2786+ gpointer _args[4];
2787+
2788+ _args[0] = (gpointer) & level;
2789+ _args[1] = (gpointer) & klass;
2790+ _args[2] = (gpointer) & key;
2791+ _args[3] = (gpointer) & value;
2792+ ORBit_small_invoke_stub_n(_obj,
2793+ &GNOME_GtkHTML_Editor_Engine__iinterface.
2794+ methods, 6, &_ORBIT_retval, _args, NULL, ev);
2795+
2796+ }
2797+ return _ORBIT_retval;
2798+}
2799+
2800+CORBA_boolean
2801+GNOME_GtkHTML_Editor_Engine_isParagraphEmpty(GNOME_GtkHTML_Editor_Engine _obj,
2802+ CORBA_Environment * ev)
2803+{
2804+ CORBA_boolean _ORBIT_retval;
2805+ POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
2806+
2807+ if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
2808+ ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
2809+ (_ORBIT_epv =
2810+ (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj,
2811+ GNOME_GtkHTML_Editor_Engine__classid))->
2812+ isParagraphEmpty) {
2813+ ORBIT_STUB_PreCall(_obj);
2814+ _ORBIT_retval =
2815+ _ORBIT_epv->isParagraphEmpty(ORBIT_STUB_GetServant(_obj), ev);
2816+ ORBIT_STUB_PostCall(_obj);
2817+ } else { /* remote marshal */
2818+ ORBit_small_invoke_stub_n(_obj,
2819+ &GNOME_GtkHTML_Editor_Engine__iinterface.
2820+ methods, 7, &_ORBIT_retval, NULL, NULL, ev);
2821+
2822+ }
2823+ return _ORBIT_retval;
2824+}
2825+
2826+CORBA_boolean
2827+GNOME_GtkHTML_Editor_Engine_isPreviousParagraphEmpty
2828+ (GNOME_GtkHTML_Editor_Engine _obj, CORBA_Environment * ev)
2829+{
2830+ CORBA_boolean _ORBIT_retval;
2831+ POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
2832+
2833+ if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
2834+ ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
2835+ (_ORBIT_epv =
2836+ (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj,
2837+ GNOME_GtkHTML_Editor_Engine__classid))->
2838+ isPreviousParagraphEmpty) {
2839+ ORBIT_STUB_PreCall(_obj);
2840+ _ORBIT_retval =
2841+ _ORBIT_epv->isPreviousParagraphEmpty(ORBIT_STUB_GetServant(_obj),
2842+ ev);
2843+ ORBIT_STUB_PostCall(_obj);
2844+ } else { /* remote marshal */
2845+ ORBit_small_invoke_stub_n(_obj,
2846+ &GNOME_GtkHTML_Editor_Engine__iinterface.
2847+ methods, 8, &_ORBIT_retval, NULL, NULL, ev);
2848+
2849+ }
2850+ return _ORBIT_retval;
2851+}
2852+
2853+void
2854+GNOME_GtkHTML_Editor_Engine_insertHTML(GNOME_GtkHTML_Editor_Engine _obj,
2855+ const CORBA_char * html,
2856+ CORBA_Environment * ev)
2857+{
2858+ POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
2859+
2860+ if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
2861+ ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
2862+ (_ORBIT_epv =
2863+ (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj,
2864+ GNOME_GtkHTML_Editor_Engine__classid))->
2865+ insertHTML) {
2866+ ORBIT_STUB_PreCall(_obj);
2867+ _ORBIT_epv->insertHTML(ORBIT_STUB_GetServant(_obj), html, ev);
2868+ ORBIT_STUB_PostCall(_obj);
2869+ } else { /* remote marshal */
2870+ gpointer _args[1];
2871+
2872+ _args[0] = (gpointer) & html;
2873+ ORBit_small_invoke_stub_n(_obj,
2874+ &GNOME_GtkHTML_Editor_Engine__iinterface.
2875+ methods, 9, NULL, _args, NULL, ev);
2876+
2877+ }
2878+}
2879+void
2880+GNOME_GtkHTML_Editor_Engine_freeze(GNOME_GtkHTML_Editor_Engine _obj,
2881+ CORBA_Environment * ev)
2882+{
2883+ POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
2884+
2885+ if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
2886+ ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
2887+ (_ORBIT_epv =
2888+ (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj,
2889+ GNOME_GtkHTML_Editor_Engine__classid))->
2890+ freeze) {
2891+ ORBIT_STUB_PreCall(_obj);
2892+ _ORBIT_epv->freeze(ORBIT_STUB_GetServant(_obj), ev);
2893+ ORBIT_STUB_PostCall(_obj);
2894+ } else { /* remote marshal */
2895+ ORBit_small_invoke_stub_n(_obj,
2896+ &GNOME_GtkHTML_Editor_Engine__iinterface.
2897+ methods, 10, NULL, NULL, NULL, ev);
2898+
2899+ }
2900+}
2901+void
2902+GNOME_GtkHTML_Editor_Engine_thaw(GNOME_GtkHTML_Editor_Engine _obj,
2903+ CORBA_Environment * ev)
2904+{
2905+ POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
2906+
2907+ if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
2908+ ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
2909+ (_ORBIT_epv =
2910+ (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj,
2911+ GNOME_GtkHTML_Editor_Engine__classid))->
2912+ thaw) {
2913+ ORBIT_STUB_PreCall(_obj);
2914+ _ORBIT_epv->thaw(ORBIT_STUB_GetServant(_obj), ev);
2915+ ORBIT_STUB_PostCall(_obj);
2916+ } else { /* remote marshal */
2917+ ORBit_small_invoke_stub_n(_obj,
2918+ &GNOME_GtkHTML_Editor_Engine__iinterface.
2919+ methods, 11, NULL, NULL, NULL, ev);
2920+
2921+ }
2922+}
2923+void
2924+GNOME_GtkHTML_Editor_Engine_undoBegin(GNOME_GtkHTML_Editor_Engine _obj,
2925+ const CORBA_char * undo_name,
2926+ const CORBA_char * redo_name,
2927+ CORBA_Environment * ev)
2928+{
2929+ POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
2930+
2931+ if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
2932+ ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
2933+ (_ORBIT_epv =
2934+ (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj,
2935+ GNOME_GtkHTML_Editor_Engine__classid))->
2936+ undoBegin) {
2937+ ORBIT_STUB_PreCall(_obj);
2938+ _ORBIT_epv->undoBegin(ORBIT_STUB_GetServant(_obj), undo_name, redo_name,
2939+ ev);
2940+ ORBIT_STUB_PostCall(_obj);
2941+ } else { /* remote marshal */
2942+ gpointer _args[2];
2943+
2944+ _args[0] = (gpointer) & undo_name;
2945+ _args[1] = (gpointer) & redo_name;
2946+ ORBit_small_invoke_stub_n(_obj,
2947+ &GNOME_GtkHTML_Editor_Engine__iinterface.
2948+ methods, 12, NULL, _args, NULL, ev);
2949+
2950+ }
2951+}
2952+void
2953+GNOME_GtkHTML_Editor_Engine_undoEnd(GNOME_GtkHTML_Editor_Engine _obj,
2954+ CORBA_Environment * ev)
2955+{
2956+ POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
2957+
2958+ if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
2959+ ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
2960+ (_ORBIT_epv =
2961+ (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj,
2962+ GNOME_GtkHTML_Editor_Engine__classid))->
2963+ undoEnd) {
2964+ ORBIT_STUB_PreCall(_obj);
2965+ _ORBIT_epv->undoEnd(ORBIT_STUB_GetServant(_obj), ev);
2966+ ORBIT_STUB_PostCall(_obj);
2967+ } else { /* remote marshal */
2968+ ORBit_small_invoke_stub_n(_obj,
2969+ &GNOME_GtkHTML_Editor_Engine__iinterface.
2970+ methods, 13, NULL, NULL, NULL, ev);
2971+
2972+ }
2973+}
2974+void
2975+GNOME_GtkHTML_Editor_Engine_ignoreWord(GNOME_GtkHTML_Editor_Engine _obj,
2976+ const CORBA_char * word,
2977+ CORBA_Environment * ev)
2978+{
2979+ POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
2980+
2981+ if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
2982+ ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
2983+ (_ORBIT_epv =
2984+ (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj,
2985+ GNOME_GtkHTML_Editor_Engine__classid))->
2986+ ignoreWord) {
2987+ ORBIT_STUB_PreCall(_obj);
2988+ _ORBIT_epv->ignoreWord(ORBIT_STUB_GetServant(_obj), word, ev);
2989+ ORBIT_STUB_PostCall(_obj);
2990+ } else { /* remote marshal */
2991+ gpointer _args[1];
2992+
2993+ _args[0] = (gpointer) & word;
2994+ ORBit_small_invoke_stub_n(_obj,
2995+ &GNOME_GtkHTML_Editor_Engine__iinterface.
2996+ methods, 14, NULL, _args, NULL, ev);
2997+
2998+ }
2999+}
3000+void
3001+GNOME_GtkHTML_Editor_Engine_dropUndo(GNOME_GtkHTML_Editor_Engine _obj,
3002+ CORBA_Environment * ev)
3003+{
3004+ POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
3005+
3006+ if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
3007+ ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
3008+ (_ORBIT_epv =
3009+ (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj,
3010+ GNOME_GtkHTML_Editor_Engine__classid))->
3011+ dropUndo) {
3012+ ORBIT_STUB_PreCall(_obj);
3013+ _ORBIT_epv->dropUndo(ORBIT_STUB_GetServant(_obj), ev);
3014+ ORBIT_STUB_PostCall(_obj);
3015+ } else { /* remote marshal */
3016+ ORBit_small_invoke_stub_n(_obj,
3017+ &GNOME_GtkHTML_Editor_Engine__iinterface.
3018+ methods, 15, NULL, NULL, NULL, ev);
3019+
3020+ }
3021+}
3022+CORBA_boolean
3023+GNOME_GtkHTML_Editor_Engine_hasUndo(GNOME_GtkHTML_Editor_Engine _obj,
3024+ CORBA_Environment * ev)
3025+{
3026+ CORBA_boolean _ORBIT_retval;
3027+ POA_GNOME_GtkHTML_Editor_Engine__epv *_ORBIT_epv;
3028+
3029+ if (ORBit_small_flags & ORBIT_SMALL_FAST_LOCALS &&
3030+ ORBIT_STUB_IsBypass(_obj, GNOME_GtkHTML_Editor_Engine__classid) &&
3031+ (_ORBIT_epv =
3032+ (POA_GNOME_GtkHTML_Editor_Engine__epv *) ORBIT_STUB_GetEpv(_obj,
3033+ GNOME_GtkHTML_Editor_Engine__classid))->
3034+ hasUndo) {
3035+ ORBIT_STUB_PreCall(_obj);
3036+ _ORBIT_retval = _ORBIT_epv->hasUndo(ORBIT_STUB_GetServant(_obj), ev);
3037+ ORBIT_STUB_PostCall(_obj);
3038+ } else { /* remote marshal */
3039+ ORBit_small_invoke_stub_n(_obj,
3040+ &GNOME_GtkHTML_Editor_Engine__iinterface.
3041+ methods, 16, &_ORBIT_retval, NULL, NULL, ev);
3042+
3043+ }
3044+ return _ORBIT_retval;
3045+}
3046diff --new-file -u -r --exclude-from=excludelist vimcopy/src/gui.c vim/src/gui.c
3047--- vimcopy/src/gui.c Mon May 19 09:43:43 2003
3048+++ vim/src/gui.c Sat Jul 26 13:16:47 2003
3049@@ -439,8 +439,12 @@
3050 * Create the GUI shell.
3051 */
3052 gui.in_use = TRUE; /* Must be set after menus have been set up */
3053+#ifdef FEAT_GUI_COMPONENT
3054+ vim_bonobo_wait_for_instantiation();
3055+#else
3056 if (gui_mch_init() == FAIL)
3057 goto error;
3058+#endif
3059
3060 /* Avoid a delay for an error message that was printed in the terminal
3061 * where Vim was started. */
3062@@ -4055,8 +4059,8 @@
3063
3064 #ifdef FEAT_GUI_GTK
3065 /* Need to wake up the main loop */
3066- if (gtk_main_level() > 0)
3067- gtk_main_quit();
3068+ if (MAIN_LEVEL() > 0)
3069+ MAIN_QUIT();
3070 #endif
3071 }
3072 }
3073diff --new-file -u -r --exclude-from=excludelist vimcopy/src/gui.h vim/src/gui.h
3074--- vimcopy/src/gui.h Tue May 6 12:02:22 2003
3075+++ vim/src/gui.h Sat Jul 26 13:16:47 2003
3076@@ -35,6 +35,21 @@
3077 # include <gtk/gtk.h>
3078 #endif
3079
3080+# if defined(FEAT_GUI_GNOME) && defined(FEAT_GUI_COMPONENT)
3081+ #include "libbonoboui.h"
3082+ #include "vim_bonobo_main.h"
3083+ #include "vim_bonobo_factory.h"
3084+ #define MAIN vim_bonobo_main
3085+ #define MAIN_LEVEL vim_bonobo_main_level
3086+ #define MAIN_QUIT vim_bonobo_main_quit
3087+ #define MAIN_ITERATION_DO vim_bonobo_main_iteration_do
3088+# else
3089+ #define MAIN gtk_main
3090+ #define MAIN_LEVEL gtk_main_level
3091+ #define MAIN_QUIT gtk_main_quit
3092+ #define MAIN_ITERATION_DO gtk_main_iteration_do
3093+#endif
3094+
3095 #ifdef FEAT_GUI_BEOS
3096 # include "gui_beos.h"
3097 #endif
3098@@ -392,6 +407,11 @@
3099 GtkWidget *toolbar; /* toolbar */
3100 # endif
3101 # ifdef FEAT_GUI_GNOME
3102+# ifdef FEAT_GUI_COMPONENT
3103+ GtkWidget *vbox;
3104+ BonoboPlug *plug;
3105+ BonoboControl *control;
3106+# endif
3107 GtkWidget *menubar_h; /* menubar handle */
3108 GtkWidget *toolbar_h; /* toolbar handle */
3109 # endif
3110diff --new-file -u -r --exclude-from=excludelist vimcopy/src/gui_gtk.c vim/src/gui_gtk.c
3111--- vimcopy/src/gui_gtk.c Tue Jun 3 13:26:44 2003
3112+++ vim/src/gui_gtk.c Sat Jul 26 14:19:38 2003
3113@@ -39,7 +39,7 @@
3114
3115 #include "vim.h"
3116
3117-#ifdef FEAT_GUI_GNOME
3118+#if 0
3119 /* Gnome redefines _() and N_(). Grrr... */
3120 # ifdef _
3121 # undef _
3122@@ -545,9 +545,302 @@
3123
3124 # endif /* !HAVE_GTK2 */
3125
3126+#ifdef FEAT_GUI_COMPONENT
3127+
3128+
3129+static void
3130+verb_activate( BonoboUIComponent *uic, gpointer data, const char *cname )
3131+{
3132+ gui_menu_cb((vimmenu_T *) data);
3133+
3134+ /* make sure the menu action is taken immediately */
3135+ if (MAIN_LEVEL() > 0)
3136+ MAIN_QUIT();
3137+}
3138+
3139+static void g_string_append_normalized_name( GString * dest, char_u * name )
3140+{
3141+ gchar * cur;
3142+
3143+ if( name == NULL )
3144+ {
3145+ return;
3146+ }
3147+ cur = name;
3148+ while( *cur != '\0' ) {
3149+ gunichar wc;
3150+ wc = g_utf8_get_char(cur);
3151+ if( g_unichar_isalnum( wc ) ) {
3152+ g_string_append_unichar( dest, wc );
3153+ }
3154+ cur = g_utf8_next_char(cur);
3155+ }
3156+}
3157+
3158+static
3159+char * menu_xml_path( vimmenu_T * menu, int only_parent )
3160+{
3161+ GString * normname;
3162+ GString * path;
3163+ char * retpath;
3164+
3165+ normname = g_string_sized_new( 64 );
3166+ path = g_string_sized_new( 128 );
3167+ while( 1 ) {
3168+ if( menu_is_toolbar(menu->name) ) {
3169+ /* "Toolbar" is a standard Bonobo UI element, but Vim uses "ToolBar", so we
3170+ * have to check for this. */
3171+ g_string_prepend( path, "/Toolbar");
3172+ } else {
3173+ g_string_assign( normname, "" );
3174+ g_string_append_normalized_name( normname, menu->dname );
3175+ g_string_prepend( path, normname->str );
3176+ g_string_prepend( path, "/" );
3177+ }
3178+ if( menu->parent == NULL ) {
3179+ if( menu && menu_is_menubar( menu->name ) ) {
3180+ g_string_prepend( path, "/menu" );
3181+ }
3182+ break;
3183+ }
3184+ menu = menu->parent;
3185+ }
3186+ g_string_free( normname, TRUE );
3187+ retpath = path->str;
3188+ g_string_free( path, FALSE );
3189+
3190+ if( only_parent ) {
3191+ gchar * slash;
3192+ slash = g_strrstr(retpath, "/");
3193+ if( slash == retpath )
3194+ slash[1] = '\0';
3195+ else if( slash )
3196+ *slash = '\0';
3197+ }
3198+ return( retpath );
3199+}
3200+
3201+static char *
3202+gtk_image_to_xml_attrs( GtkImage * image)
3203+{
3204+ GString * xml = g_string_sized_new(32);
3205+ GtkImageType type = gtk_image_get_storage_type(image);
3206+ char * attrs;
3207+ char * imagexml;
3208+
3209+ if( type == GTK_IMAGE_STOCK ) {
3210+ GtkIconSize size;
3211+ GtkIconSet * iconset;
3212+ gchar * stockname;
3213+ GdkPixbuf * pixbuf;
3214+
3215+ gtk_image_get_stock(image, &stockname, &size);
3216+ pixbuf = gtk_widget_render_icon(gui.drawarea, stockname, size, NULL);
3217+ imagexml = bonobo_ui_util_pixbuf_to_xml(pixbuf);
3218+ g_string_append_printf(xml, " pixtype=\"pixbuf\" pixname=\"%s\"", imagexml);
3219+ g_object_unref(pixbuf);
3220+ g_free(imagexml);
3221+ } else if( type == GTK_IMAGE_PIXBUF ) {
3222+ imagexml = bonobo_ui_util_pixbuf_to_xml(gtk_image_get_pixbuf(image));
3223+ g_string_append_printf(xml, " pixtype=\"pixbuf\" pixname=\"%s\"", imagexml);
3224+ g_free(imagexml);
3225+ }
3226+ attrs = xml->str;
3227+ g_string_free(xml, FALSE);
3228+ return( attrs );
3229+}
3230+
3231+static
3232+void generate_gui_xml_recurse( vimmenu_T * menu, GString * xml, GSList ** commands, int do_siblings)
3233+{
3234+ GString * normname = g_string_sized_new(16);
3235+ GString * verbname = g_string_sized_new(32);
3236+ char_u * label;
3237+ int use_mnemonic;
3238+ BonoboUIComponent *uic;
3239+ gchar * command;
3240+
3241+ uic = bonobo_control_get_ui_component (BONOBO_CONTROL (gui.control));
3242+
3243+ while( menu )
3244+ {
3245+ use_mnemonic = (p_wak[0] != 'n' );
3246+ label = translate_mnemonic_tag( menu->name, use_mnemonic );
3247+ g_string_assign( normname, "" );
3248+ g_string_append_normalized_name( normname, menu->dname );
3249+ if( menu->children ) {
3250+ if( menu_is_toolbar( menu->name )) {
3251+ g_string_append( xml, "<dockitem name=\"Toolbar\" look=\"icon\" tips=\"1\">");
3252+ generate_gui_xml_recurse( menu->children, xml, commands, TRUE );
3253+ g_string_append( xml, "</dockitem>");
3254+ } else {
3255+ g_string_append_printf( xml, "<submenu name=\"%s\" label=\"%s\">\n", normname->str, label);
3256+
3257+ generate_gui_xml_recurse( menu->children, xml, commands, TRUE );
3258+ g_string_append( xml, "</submenu>\n");
3259+ }
3260+ } else if( menu_is_separator(menu->name)) {
3261+ g_string_append( xml, "<separator />\n" );
3262+ } else if( menu->parent && menu_is_toolbar(menu->parent->name)) {
3263+ char * menupath = menu_xml_path(menu, FALSE);
3264+ GtkImage *image = NULL;
3265+ char * imagexml;
3266+ char_u *tooltip;
3267+
3268+ g_string_assign(verbname, "");
3269+ g_string_append_normalized_name(verbname, menupath);
3270+ vim_free(menupath);
3271+ image = GTK_IMAGE(create_menu_icon(menu, GTK_ICON_SIZE_SMALL_TOOLBAR));
3272+ imagexml = gtk_image_to_xml_attrs(image);
3273+ tooltip = CONVERT_TO_UTF8(menu->strings[MENU_INDEX_TIP]);
3274+ g_string_append_printf( xml, "<toolitem name=\"%s\" label=\"%s\" verb=\"%s\" tip=\"%s\" %s />\n", normname->str, label, verbname->str, tooltip, imagexml);
3275+ gtk_object_sink(GTK_OBJECT(image));
3276+ g_free(imagexml);
3277+ CONVERT_TO_UTF8_FREE(tooltip);
3278+
3279+ command = g_strdup_printf( "<cmd name=\"%s\" sensitive=\"%c\" />\n", verbname->str, menu->sensitive ? '1' : '0');
3280+ *commands = g_slist_prepend( *commands, command );
3281+ bonobo_ui_component_add_verb(uic, verbname->str, verb_activate, menu);
3282+ } else if( menu_is_menubar(menu->name)) {
3283+ char * menupath = menu_xml_path(menu, FALSE);
3284+
3285+ g_string_assign(verbname, "");
3286+ g_string_append_normalized_name(verbname, menupath);
3287+ vim_free(menupath);
3288+
3289+ g_string_append_printf( xml, "<menuitem name=\"%s\" label=\"%s\" verb=\"%s\" />\n", normname->str, label, verbname->str);
3290+
3291+ command = g_strdup_printf( "<cmd name=\"%s\" sensitive=\"%c\" />\n", verbname->str, menu->sensitive ? '1' : '0');
3292+ *commands = g_slist_prepend( *commands, command );
3293+ bonobo_ui_component_add_verb(uic, verbname->str, verb_activate, menu);
3294+ }
3295+ if( label ) {
3296+ vim_free( label );
3297+ }
3298+ if( do_siblings ) {
3299+ menu = menu->next;
3300+ } else {
3301+ menu = NULL;
3302+ }
3303+ }
3304+ g_string_free( normname, TRUE );
3305+}
3306+
3307+static
3308+void set_gui_xml(vimmenu_T * menu)
3309+{
3310+ GSList * commands = NULL;
3311+ GSList * command;
3312+ BonoboUIComponent *uic;
3313+ GString * xml = g_string_sized_new(1024);
3314+ int path_exists;
3315+ uic = bonobo_control_get_ui_component (BONOBO_CONTROL (gui.control));
3316+
3317+ if( bonobo_ui_component_get_container(uic) == CORBA_OBJECT_NIL ) {
3318+ return;
3319+ }
3320+
3321+ while( menu ) {
3322+ if( menu->dirty ) {
3323+ if (menu_is_popup(menu->name)) {
3324+ /* do nothing */
3325+ } else if( menu_is_menubar(menu->name)) {
3326+ char * menupath = menu_xml_path(menu, TRUE);
3327+ path_exists = bonobo_ui_component_path_exists(uic, menupath, NULL);
3328+ g_string_assign(xml, "");
3329+ generate_gui_xml_recurse (menu, xml, &commands, FALSE);
3330+ /*fprintf(stdout, "set %s\n", menupath);*/
3331+ /*fprintf(stdout, "set %s\n%s", menupath, xml->str);*/
3332+ /*fflush(stdout);*/
3333+ bonobo_ui_component_set(uic, menupath, xml->str, NULL);
3334+ g_free(menupath);
3335+ } else if( menu_is_toolbar(menu->name)) {
3336+ char * menupath = menu_xml_path(menu, TRUE);
3337+ path_exists = bonobo_ui_component_path_exists(uic, menupath, NULL);
3338+ g_string_assign(xml, "");
3339+ generate_gui_xml_recurse (menu, xml, &commands, FALSE);
3340+ /*fprintf(stdout, "set %s\n", menupath);*/
3341+ /*fprintf(stdout, "set %s\n%s", menupath, xml->str);*/
3342+ /*fflush(stdout);*/
3343+ bonobo_ui_component_set(uic, menupath, xml->str, NULL);
3344+ g_free(menupath);
3345+ }
3346+ menu->dirty = FALSE;
3347+ }
3348+ menu = menu->next;
3349+ }
3350+ /* the commands are inserted separately into a list, and set one by one,
3351+ * otherwise it's not possible to update a subtree of the UI
3352+ */
3353+ command = commands;
3354+ while( command ) {
3355+ /*fprintf(stdout, "set %s\n%s", "/commands", command->data);
3356+ fflush(stdout);*/
3357+ bonobo_ui_component_set(uic, "/commands", command->data, NULL);
3358+ g_free(command->data);
3359+ command = command->next;
3360+ }
3361+ g_slist_free( commands );
3362+}
3363+
3364+static gboolean update_gui_idle_installed = FALSE;
3365+
3366+static gboolean
3367+update_gui_idle(gpointer data)
3368+{
3369+ BonoboUIComponent *uic;
3370+
3371+ uic = bonobo_control_get_ui_component (BONOBO_CONTROL (gui.control));
3372+ if( bonobo_ui_component_get_container(uic) == CORBA_OBJECT_NIL ) {
3373+ /* we aren't in a container yet; try again later... */
3374+ g_timeout_add(100, &update_gui_idle, NULL);
3375+ return FALSE;
3376+ }
3377+ bonobo_ui_component_freeze(uic, NULL);
3378+ set_gui_xml( (vimmenu_T *)root_menu );
3379+ update_gui_idle_installed = FALSE;
3380+ bonobo_ui_component_thaw(uic, NULL);
3381+ return FALSE; /* don't call me again */
3382+}
3383+
3384+void
3385+update_menu_later(vimmenu_T *menu)
3386+{
3387+ if (!update_gui_idle_installed)
3388+ {
3389+ update_gui_idle_installed = TRUE;
3390+ g_idle_add_full(GDK_PRIORITY_EVENTS + 10,
3391+ &update_gui_idle, NULL, NULL);
3392+ }
3393+ while( menu->parent )
3394+ menu = menu->parent;
3395+ menu->dirty = TRUE;
3396+}
3397+
3398+void update_ui_later()
3399+{
3400+ vimmenu_T *menu = root_menu;
3401+
3402+ if (!update_gui_idle_installed)
3403+ {
3404+ update_gui_idle_installed = TRUE;
3405+ g_idle_add_full(GDK_PRIORITY_EVENTS + 10,
3406+ &update_gui_idle, NULL, NULL);
3407+ }
3408+ while( menu ) {
3409+ menu->dirty = TRUE;
3410+ menu = menu->next;
3411+ }
3412+}
3413+#endif
3414+
3415 void
3416 gui_mch_add_menu(vimmenu_T *menu, int idx)
3417 {
3418+#ifdef FEAT_GUI_COMPONENT
3419+ update_menu_later(menu);
3420+ return;
3421+#else
3422 vimmenu_T *parent;
3423 GtkWidget *parent_widget;
3424
3425@@ -593,6 +886,7 @@
3426 if (vim_strchr(p_go, GO_TEAROFF) != NULL)
3427 gtk_widget_show(menu->tearoff_handle);
3428 gtk_menu_prepend(GTK_MENU(menu->submenu_id), menu->tearoff_handle);
3429+#endif
3430 }
3431
3432 /*ARGSUSED*/
3433@@ -609,8 +903,8 @@
3434 # endif
3435
3436 /* make sure the menu action is taken immediately */
3437- if (gtk_main_level() > 0)
3438- gtk_main_quit();
3439+ if (MAIN_LEVEL() > 0)
3440+ MAIN_QUIT();
3441 }
3442
3443 # if defined(FEAT_TOOLBAR) && !defined(HAVE_GTK2)
3444@@ -715,6 +1009,10 @@
3445 void
3446 gui_mch_add_menu_item(vimmenu_T *menu, int idx)
3447 {
3448+#ifdef FEAT_GUI_COMPONENT
3449+ update_menu_later(menu);
3450+ return;
3451+#else
3452 vimmenu_T *parent;
3453
3454 parent = menu->parent;
3455@@ -817,6 +1115,7 @@
3456 gtk_signal_connect(GTK_OBJECT(menu->id), "activate",
3457 GTK_SIGNAL_FUNC(menu_item_activate), menu);
3458 }
3459+#endif
3460 }
3461 #endif /* FEAT_MENU */
3462
3463@@ -841,6 +1140,10 @@
3464 guint accel_key;
3465 # endif
3466
3467+#ifdef FEAT_GUI_COMPONENT
3468+ return;
3469+#endif
3470+
3471 for (menu = root_menu; menu != NULL; menu = menu->next)
3472 {
3473 if (menu->id == NULL)
3474@@ -897,6 +1200,9 @@
3475 void
3476 gui_mch_toggle_tearoffs(int enable)
3477 {
3478+#ifdef FEAT_GUI_COMPONENT
3479+ return;
3480+#endif
3481 recurse_tearoffs(root_menu, enable);
3482 }
3483 #endif /* FEAT_MENU */
3484@@ -1001,6 +1307,9 @@
3485 void
3486 gui_mch_destroy_menu(vimmenu_T *menu)
3487 {
3488+#ifdef FEAT_GUI_COMPONENT
3489+ return;
3490+#endif
3491 # ifdef FEAT_TOOLBAR
3492 if (menu->parent != NULL && menu_is_toolbar(menu->parent->name))
3493 {
3494@@ -1115,8 +1424,8 @@
3495
3496 gui_drag_scrollbar(sb, value, dragging);
3497
3498- if (gtk_main_level() > 0)
3499- gtk_main_quit();
3500+ if (MAIN_LEVEL() > 0)
3501+ MAIN_QUIT();
3502 }
3503
3504 /* SBAR_VERT or SBAR_HORIZ */
3505@@ -1175,8 +1484,8 @@
3506 vw->browse_fname = (char_u *)g_strdup(gtk_file_selection_get_filename(
3507 GTK_FILE_SELECTION(vw->filedlg)));
3508 gtk_widget_hide(vw->filedlg);
3509- if (gtk_main_level() > 0)
3510- gtk_main_quit();
3511+ if (MAIN_LEVEL() > 0)
3512+ MAIN_QUIT();
3513 }
3514
3515 /*ARGSUSED*/
3516@@ -1191,8 +1500,8 @@
3517 vw->browse_fname = NULL;
3518 }
3519 gtk_widget_hide(vw->filedlg);
3520- if (gtk_main_level() > 0)
3521- gtk_main_quit();
3522+ if (MAIN_LEVEL() > 0)
3523+ MAIN_QUIT();
3524 }
3525
3526 /*ARGSUSED*/
3527@@ -1206,8 +1515,8 @@
3528 }
3529 gui.filedlg = NULL;
3530
3531- if (gtk_main_level() > 0)
3532- gtk_main_quit();
3533+ if (MAIN_LEVEL() > 0)
3534+ MAIN_QUIT();
3535
3536 return FALSE;
3537 }
3538@@ -1290,7 +1599,7 @@
3539
3540 gtk_widget_show(gui.filedlg);
3541 while (gui.filedlg && GTK_WIDGET_DRAWABLE(gui.filedlg))
3542- gtk_main_iteration_do(TRUE);
3543+ MAIN_ITERATION_DO(TRUE);
3544
3545 if (gui.browse_fname == NULL)
3546 return NULL;
3547@@ -1510,8 +1819,8 @@
3548 dlg_destroy_cb(int *p)
3549 {
3550 *p = TRUE; /* set dialog_destroyed to break out of the loop */
3551- if (gtk_main_level() > 0)
3552- gtk_main_quit();
3553+ if (MAIN_LEVEL() > 0)
3554+ MAIN_QUIT();
3555 }
3556
3557 /* ARGSUSED */
3558@@ -1811,7 +2120,7 @@
3559 /* loop here until the dialog goes away */
3560 while (dialog_status == -1 && !dialog_destroyed
3561 && GTK_WIDGET_DRAWABLE(dialog))
3562- gtk_main_iteration_do(TRUE);
3563+ MAIN_ITERATION_DO(TRUE);
3564
3565 if (dialog_status < 0)
3566 dialog_status = 0;
3567@@ -2795,8 +3104,8 @@
3568 CONVERT_FROM_UTF8_FREE(find_text);
3569 #endif
3570
3571- if (rc && gtk_main_level() > 0)
3572- gtk_main_quit(); /* make sure cmd will be handled immediately */
3573+ if (rc && MAIN_LEVEL() > 0)
3574+ MAIN_QUIT(); /* make sure cmd will be handled immediately */
3575 }
3576
3577 /* our usual callback function */
3578diff --new-file -u -r --exclude-from=excludelist vimcopy/src/gui_gtk_x11.c vim/src/gui_gtk_x11.c
3579--- vimcopy/src/gui_gtk_x11.c Tue Jun 3 13:19:03 2003
3580+++ vim/src/gui_gtk_x11.c Sat Jul 26 16:53:24 2003
3581@@ -654,8 +654,8 @@
3582 xev.xproperty.state = PropertyNewValue;
3583 serverEventProc(GDK_WINDOW_XDISPLAY(widget->window), &xev);
3584
3585- if (gtk_main_level() > 0)
3586- gtk_main_quit();
3587+ if (MAIN_LEVEL() > 0)
3588+ MAIN_QUIT();
3589 }
3590 return FALSE;
3591 }
3592@@ -756,6 +756,10 @@
3593 if (blink_state == BLINK_NONE)
3594 gui_mch_start_blink();
3595
3596+#ifdef FEAT_GUI_COMPONENT
3597+ /*gtk_plug_grab_focus(GTK_PLUG(gui.plug));*/
3598+ /*gtk_window_set_focus(GTK_WINDOW(gui.plug), gui.drawarea);*/
3599+#endif
3600 /* make sure keyboard input goes there */
3601 if (gtk_socket_id == 0 || !GTK_WIDGET_HAS_FOCUS(gui.drawarea))
3602 gtk_widget_grab_focus(gui.drawarea);
3603@@ -767,6 +771,11 @@
3604 static gint
3605 leave_notify_event(GtkWidget *widget, GdkEventCrossing *event, gpointer data)
3606 {
3607+#ifdef FEAT_GUI_COMPONENT
3608+ /*gtk_plug_ungrab_focus(GTK_PLUG(gui.plug));*/
3609+ /*gdk_display_keyboard_ungrab (gtk_widget_get_display (gui.drawarea),
3610+ gtk_get_current_event_time ());*/
3611+#endif
3612 if (blink_state != BLINK_NONE)
3613 gui_mch_stop_blink();
3614
3615@@ -777,8 +786,16 @@
3616 static gint
3617 focus_in_event(GtkWidget *widget, GdkEventFocus *event, gpointer data)
3618 {
3619+ GdkEventMask mask;
3620 gui_focus_change(TRUE);
3621
3622+#ifdef FEAT_GUI_COMPONENT
3623+ gtk_widget_grab_focus(gui.drawarea);
3624+ mask = gdk_window_get_events(gui.drawarea->window);
3625+ mask |= GDK_KEY_PRESS | GDK_KEY_RELEASE;
3626+ gdk_window_set_events(gui.drawarea->window, mask);
3627+#endif
3628+
3629 if (blink_state == BLINK_NONE)
3630 gui_mch_start_blink();
3631
3632@@ -793,6 +810,9 @@
3633 static gint
3634 focus_out_event(GtkWidget *widget, GdkEventFocus *event, gpointer data)
3635 {
3636+#ifdef FEAT_GUI_COMPONENT
3637+/* gtk_plug_ungrab_focus(GTK_PLUG(gui.plug));*/
3638+#endif
3639 gui_focus_change(FALSE);
3640
3641 if (blink_state != BLINK_NONE)
3642@@ -1134,8 +1154,8 @@
3643 if (p_mh)
3644 gui_mch_mousehide(TRUE);
3645
3646- if (gtk_main_level() > 0)
3647- gtk_main_quit();
3648+ if (MAIN_LEVEL() > 0)
3649+ MAIN_QUIT();
3650
3651 return TRUE;
3652 }
3653@@ -1170,8 +1190,8 @@
3654 else
3655 clip_lose_selection(&clip_star);
3656
3657- if (gtk_main_level() > 0)
3658- gtk_main_quit();
3659+ if (MAIN_LEVEL() > 0)
3660+ MAIN_QUIT();
3661
3662 return TRUE;
3663 }
3664@@ -1211,9 +1231,8 @@
3665 received_selection = RS_FAIL;
3666 /* clip_free_selection(cbd); ??? */
3667
3668- if (gtk_main_level() > 0)
3669- gtk_main_quit();
3670-
3671+ if (MAIN_LEVEL() > 0)
3672+ MAIN_QUIT(); /* make sure the above will be handled immediately */
3673 return;
3674 }
3675
3676@@ -1294,8 +1313,8 @@
3677 g_free(tmpbuf_utf8);
3678 #endif
3679
3680- if (gtk_main_level() > 0)
3681- gtk_main_quit();
3682+ if (MAIN_LEVEL() > 0)
3683+ MAIN_QUIT(); /* make sure the above will be handled immediately */
3684 }
3685
3686 /*
3687@@ -1455,6 +1474,15 @@
3688 using_gnome = 1;
3689 #endif
3690
3691+
3692+#ifdef FEAT_GUI_COMPONENT
3693+ if( !vim_bonobo_init(&gui_argc, gui_argv))
3694+ {
3695+ /* in component mode, we don't care about trying to continue without
3696+ * a gui; if we can't create the factory, we might as well quit. */
3697+ mch_exit(2);
3698+ }
3699+#else
3700 /* Don't use gtk_init() or gnome_init(), it exits on failure. */
3701 if (!gtk_init_check(&gui_argc, &gui_argv))
3702 {
3703@@ -1462,10 +1490,29 @@
3704 EMSG(_(e_opendisp));
3705 return FAIL;
3706 }
3707+#endif
3708
3709 return OK;
3710 }
3711
3712+#if FEAT_GUI_COMPONENT
3713+static gint
3714+control_activate_event(BonoboControl *control, gboolean activated)
3715+{
3716+ if (activated)
3717+ {
3718+ gui_focus_change (TRUE);
3719+ if (blink_state == BLINK_NONE)
3720+ gui_mch_start_blink();
3721+ } else {
3722+ gui_focus_change (FALSE);
3723+ if (blink_state != BLINK_NONE)
3724+ gui_mch_stop_blink();
3725+ }
3726+ return TRUE;
3727+}
3728+#endif
3729+
3730
3731 /****************************************************************************
3732 * Mouse handling callbacks
3733@@ -1526,8 +1573,8 @@
3734 /* inform the editor engine about the occurence of this event */
3735 gui_send_mouse_event(button, x, y, FALSE, vim_modifiers);
3736
3737- if (gtk_main_level() > 0)
3738- gtk_main_quit();
3739+ if (MAIN_LEVEL() > 0)
3740+ MAIN_QUIT();
3741
3742 /*
3743 * Auto repeat timer handling.
3744@@ -1722,8 +1769,8 @@
3745 vim_modifiers |= MOUSE_ALT;
3746
3747 gui_send_mouse_event(button, x, y, repeated_click, vim_modifiers);
3748- if (gtk_main_level() > 0)
3749- gtk_main_quit(); /* make sure the above will be handled immediately */
3750+ if (MAIN_LEVEL() > 0)
3751+ MAIN_QUIT(); /* make sure the above will be handled immediately */
3752
3753 return TRUE;
3754 }
3755@@ -1771,8 +1818,8 @@
3756 gui_send_mouse_event(button, (int)event->x, (int)event->y,
3757 FALSE, vim_modifiers);
3758
3759- if (gtk_main_level() > 0)
3760- gtk_main_quit(); /* make sure the above will be handled immediately */
3761+ if (MAIN_LEVEL() > 0)
3762+ MAIN_QUIT(); /* make sure the above will be handled immediately */
3763
3764 return TRUE;
3765 }
3766@@ -1807,8 +1854,8 @@
3767 vim_modifiers |= MOUSE_ALT;
3768
3769 gui_send_mouse_event(MOUSE_RELEASE, x, y, FALSE, vim_modifiers);
3770- if (gtk_main_level() > 0)
3771- gtk_main_quit(); /* make sure it will be handled immediately */
3772+ if (MAIN_LEVEL() > 0)
3773+ MAIN_QUIT(); /* make sure the above will be handled immediately */
3774
3775 return TRUE;
3776 }
3777@@ -2031,8 +2078,8 @@
3778 else
3779 add_to_input_buf(dropkey + 3, (int)(sizeof(dropkey) - 3));
3780
3781- if (gtk_main_level() > 0)
3782- gtk_main_quit();
3783+ if (MAIN_LEVEL() > 0)
3784+ MAIN_QUIT(); /* make sure the above will be handled immediately */
3785 }
3786
3787 /*
3788@@ -2498,6 +2545,7 @@
3789 static void
3790 mainwin_realize(GtkWidget *widget, gpointer data)
3791 {
3792+#ifndef FEAT_GUI_COMPONENT
3793 /* If you get an error message here, you still need to unpack the runtime
3794 * archive! */
3795 #ifdef magick
3796@@ -2581,6 +2629,7 @@
3797
3798 #endif /* !HAVE_GTK2 */
3799 }
3800+#endif /* FEAT_GUI_COMPONENT */
3801
3802 #if !(defined(FEAT_GUI_GNOME) && defined(FEAT_SESSION))
3803 /* Register a handler for WM_SAVE_YOURSELF with GDK's low-level X I/F */
3804@@ -2599,7 +2648,7 @@
3805 #endif
3806 setup_save_yourself();
3807
3808-#ifdef FEAT_CLIENTSERVER
3809+#if defined(FEAT_CLIENTSERVER) &&!defined(FEAT_GUI_COMPONENT)
3810 if (serverName == NULL && serverDelayedStartName != NULL)
3811 {
3812 /* This is a :gui command in a plain vim with no previous server */
3813@@ -2647,7 +2696,7 @@
3814 return cursor;
3815 }
3816
3817-#ifdef HAVE_GTK_MULTIHEAD
3818+#if defined(GTK2_MULTIHEAD) && !defined(FEAT_GUI_COMPONENT)
3819 /*ARGSUSED1*/
3820 static void
3821 mainwin_screen_changed_cb(GtkWidget *widget,
3822@@ -2972,7 +3021,11 @@
3823 #ifdef FEAT_GUI_GNOME
3824 if (using_gnome)
3825 {
3826- gui.mainwin = gnome_app_new("Vim", NULL);
3827+# if defined(FEAT_GUI_COMPONENT)
3828+ gui.mainwin = NULL;
3829+# else
3830+ gui.mainwin = gnome_app_new("vim", NULL);
3831+# endif
3832 # ifdef USE_XSMP
3833 /* Use the GNOME save-yourself functionality now. */
3834 xsmp_close();
3835@@ -2983,14 +3036,27 @@
3836 gui.mainwin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
3837 }
3838
3839+#ifndef FEAT_GUI_COMPONENT
3840 gtk_widget_set_name(gui.mainwin, "vim-main-window");
3841+#endif
3842+ vbox = gtk_vbox_new(FALSE, 0);
3843+ gui.vbox = vbox;
3844
3845 #ifdef HAVE_GTK2
3846 /* Create the PangoContext used for drawing all text. */
3847+#ifdef FEAT_GUI_COMPONENT
3848+ gui.text_context = gtk_widget_create_pango_context(GTK_WIDGET(gui.vbox));
3849+#else
3850 gui.text_context = gtk_widget_create_pango_context(gui.mainwin);
3851+#endif
3852 pango_context_set_base_dir(gui.text_context, PANGO_DIRECTION_LTR);
3853 #endif
3854
3855+#ifdef FEAT_GUI_COMPONENT
3856+ bonobo_control_construct (BONOBO_CONTROL (gui.control), GTK_WIDGET(gui.vbox));
3857+ gtk_widget_add_events(GTK_WIDGET(gui.drawarea), GDK_VISIBILITY_NOTIFY_MASK);
3858+ gtk_widget_show_all(GTK_WIDGET(gui.vbox));
3859+#else
3860 #ifndef HAVE_GTK2
3861 gtk_window_set_policy(GTK_WINDOW(gui.mainwin), TRUE, TRUE, TRUE);
3862 #endif
3863@@ -3013,8 +3079,6 @@
3864 gui.accel_group = gtk_accel_group_get_default();
3865 #endif
3866
3867- vbox = gtk_vbox_new(FALSE, 0);
3868-
3869 #ifdef FEAT_GUI_GNOME
3870 if (using_gnome)
3871 {
3872@@ -3030,6 +3094,9 @@
3873 gtk_container_add(GTK_CONTAINER(gui.mainwin), vbox);
3874 gtk_widget_show(vbox);
3875 }
3876+#endif
3877+
3878+#ifndef FEAT_GUI_COMPONENT
3879
3880 #ifdef FEAT_MENU
3881 /*
3882@@ -3135,6 +3202,7 @@
3883 gtk_box_pack_start(GTK_BOX(vbox), gui.toolbar, FALSE, FALSE, 0);
3884 }
3885 #endif /* FEAT_TOOLBAR */
3886+#endif /* FEAT_GUI_COMPONENT */
3887
3888 gui.formwin = gtk_form_new();
3889 gtk_container_border_width(GTK_CONTAINER(gui.formwin), 0);
3890@@ -3162,6 +3230,11 @@
3891 gtk_widget_show(gui.formwin);
3892 gtk_box_pack_start(GTK_BOX(vbox), gui.formwin, TRUE, TRUE, 0);
3893
3894+#ifdef FEAT_GUI_COMPONENT
3895+ GTK_WIDGET_SET_FLAGS (gui.drawarea, GTK_CAN_FOCUS);
3896+ g_signal_connect(G_OBJECT(gui.drawarea), "key_press_event",
3897+ G_CALLBACK(key_press_event), NULL);
3898+#else
3899 /* For GtkSockets, key-presses must go to the focus widget (drawarea)
3900 * and not the window. */
3901 gtk_signal_connect((gtk_socket_id == 0) ? GTK_OBJECT(gui.mainwin)
3902@@ -3176,6 +3249,7 @@
3903 "key_release_event",
3904 G_CALLBACK(&key_release_event), NULL);
3905 #endif
3906+#endif /* FEAT_GUI_COMPONENT */
3907 gtk_signal_connect(GTK_OBJECT(gui.drawarea), "realize",
3908 GTK_SIGNAL_FUNC(drawarea_realize_cb), NULL);
3909 gtk_signal_connect(GTK_OBJECT(gui.drawarea), "unrealize",
3910@@ -3207,16 +3281,27 @@
3911 */
3912 gui.border_offset = gui.border_width;
3913
3914+#ifdef FEAT_GUI_COMPONENT
3915+ gtk_signal_connect(GTK_OBJECT(gui.drawarea), "visibility_notify_event",
3916+ GTK_SIGNAL_FUNC(visibility_event), NULL);
3917+#else
3918 gtk_signal_connect(GTK_OBJECT(gui.mainwin), "visibility_notify_event",
3919 GTK_SIGNAL_FUNC(visibility_event), NULL);
3920+#endif
3921 gtk_signal_connect(GTK_OBJECT(gui.drawarea), "expose_event",
3922 GTK_SIGNAL_FUNC(expose_event), NULL);
3923
3924 /*
3925 * Only install these enter/leave callbacks when 'p' in 'guioptions'.
3926 * Only needed for some window managers.
3927+ *
3928+ * Force this on for bonobo, otherwise the toolbar gets the focus
3929+ * after you click a button, and you can't get the focus back to the
3930+ * drawarea.
3931 */
3932+#ifndef FEAT_GUI_COMPONENT
3933 if (vim_strchr(p_go, GO_POINTER) != NULL)
3934+#endif
3935 {
3936 gtk_signal_connect(GTK_OBJECT(gui.drawarea), "leave_notify_event",
3937 GTK_SIGNAL_FUNC(leave_notify_event), NULL);
3938@@ -3224,10 +3309,19 @@
3939 GTK_SIGNAL_FUNC(enter_notify_event), NULL);
3940 }
3941
3942+#ifdef FEAT_GUI_COMPONENT
3943+ g_signal_connect(G_OBJECT(gui.control), "activate",
3944+ G_CALLBACK (control_activate_event), NULL);
3945+ gtk_signal_connect(GTK_OBJECT(gui.drawarea), "focus_out_event",
3946+ GTK_SIGNAL_FUNC(focus_out_event), NULL);
3947+ gtk_signal_connect(GTK_OBJECT(gui.drawarea), "focus_in_event",
3948+ GTK_SIGNAL_FUNC(focus_in_event), NULL);
3949+#else
3950 gtk_signal_connect(GTK_OBJECT(gui.mainwin), "focus_out_event",
3951 GTK_SIGNAL_FUNC(focus_out_event), NULL);
3952 gtk_signal_connect(GTK_OBJECT(gui.mainwin), "focus_in_event",
3953 GTK_SIGNAL_FUNC(focus_in_event), NULL);
3954+#endif
3955
3956 gtk_signal_connect(GTK_OBJECT(gui.drawarea), "motion_notify_event",
3957 GTK_SIGNAL_FUNC(motion_notify_event), NULL);
3958@@ -3400,7 +3494,7 @@
3959 * otherwise the hints don't work. */
3960 width = gui_get_base_width();
3961 height = gui_get_base_height();
3962-# ifdef HAVE_GTK2
3963+# if defined( HAVE_GTK2 ) && !defined(FEAT_GUI_COMPONENT)
3964 width += get_menu_tool_width();
3965 height += get_menu_tool_height();
3966 # endif
3967@@ -3447,8 +3541,18 @@
3968 form_configure_event(GtkWidget *widget, GdkEventConfigure *event,
3969 gpointer data)
3970 {
3971+ int height;
3972+
3973 gtk_form_freeze(GTK_FORM(gui.formwin));
3974- gui_resize_shell(event->width, event->height);
3975+#ifdef FEAT_GUI_COMPONENT
3976+ /* width_inc and height_inc (see window manager hints, above) aren't
3977+ * respected for embedded controls, so we have to make a slight adjustment
3978+ * to make sure the bottom line doesn't get clipped. */
3979+ height = gui.char_height * ((event->height - 2 )/ gui.char_height);
3980+#else
3981+ height = event->height;
3982+#endif
3983+ gui_resize_shell(event->width, height);
3984 gtk_form_thaw(GTK_FORM(gui.formwin));
3985
3986 return TRUE;
3987@@ -3580,8 +3684,10 @@
3988 * changed them). */
3989 highlight_gui_started(); /* re-init colors and fonts */
3990
3991+#ifndef FEAT_GUI_COMPONENT
3992 gtk_signal_connect(GTK_OBJECT(gui.mainwin), "destroy",
3993 GTK_SIGNAL_FUNC(mainwin_destroy_cb), NULL);
3994+#endif
3995
3996 #ifdef FEAT_HANGULIN
3997 hangul_keyboard_set();
3998@@ -3649,7 +3755,9 @@
3999 NULL);
4000 # endif
4001 #endif
4002- gtk_widget_show(gui.mainwin);
4003+#ifndef FEAT_GUI_COMPONENT
4004+ gtk_widget_show(gui.mainwin);
4005+#endif
4006
4007 #if defined(FEAT_GUI_GNOME) && defined(HAVE_GTK2) && defined(FEAT_MENU)
4008 if (menu_handler != 0)
4009@@ -3679,8 +3787,8 @@
4010 if (gui.mainwin != NULL)
4011 gtk_widget_destroy(gui.mainwin);
4012
4013- if (gtk_main_level() > 0)
4014- gtk_main_quit();
4015+ if (MAIN_LEVEL() > 0)
4016+ MAIN_QUIT(); /* make sure the above will be handled immediately */
4017 }
4018
4019 /*
4020@@ -3727,6 +3835,7 @@
4021 static gboolean
4022 force_shell_resize_idle(gpointer data)
4023 {
4024+ g_warning("force_shell_resize_idle called!");
4025 if (gui.mainwin != NULL
4026 && GTK_WIDGET_REALIZED(gui.mainwin)
4027 && GTK_WIDGET_VISIBLE(gui.mainwin))
4028@@ -3775,7 +3884,7 @@
4029 /* this will cause the proper resizement to happen too */
4030 update_window_manager_hints();
4031
4032-#ifdef HAVE_GTK2
4033+#if defined( HAVE_GTK2 ) && !defined(FEAT_GUI_COMPONENT)
4034 /* With GTK+ 2, changing the size of the form widget doesn't resize
4035 * the window. So lets do it the other way around and resize the
4036 * main window instead. */
4037@@ -3866,6 +3975,7 @@
4038 {
4039 GtkWidget *widget;
4040
4041+#ifndef FEAT_GUI_COMPONENT
4042 # ifdef FEAT_GUI_GNOME
4043 if (using_gnome)
4044 widget = gui.menubar_h;
4045@@ -3882,6 +3992,7 @@
4046
4047 update_window_manager_hints();
4048 }
4049+#endif
4050 }
4051 #endif /* FEAT_MENU */
4052
4053@@ -3933,8 +4044,8 @@
4054
4055 vw->fontname = (char_u *)gtk_font_selection_dialog_get_font_name(fs);
4056 gtk_widget_hide(vw->fontdlg);
4057- if (gtk_main_level() > 0)
4058- gtk_main_quit();
4059+ if (MAIN_LEVEL() > 0)
4060+ MAIN_QUIT(); /* make sure the above will be handled immediately */
4061 }
4062
4063 /*ARGSUSED*/
4064@@ -3944,8 +4055,8 @@
4065 gui_T *vw = (gui_T *)cbdata;
4066
4067 gtk_widget_hide(vw->fontdlg);
4068- if (gtk_main_level() > 0)
4069- gtk_main_quit();
4070+ if (MAIN_LEVEL() > 0)
4071+ MAIN_QUIT(); /* make sure the above will be handled immediately */
4072 }
4073
4074 /*ARGSUSED*/
4075@@ -3955,8 +4066,8 @@
4076 gui_T *vw = (gui_T *)cbdata;
4077
4078 vw->fontdlg = NULL;
4079- if (gtk_main_level() > 0)
4080- gtk_main_quit();
4081+ if (MAIN_LEVEL() > 0)
4082+ MAIN_QUIT(); /* make sure the above will be handled immediately */
4083 }
4084 #endif /* !HAVE_GTK2 */
4085
4086@@ -4123,7 +4234,7 @@
4087
4088 /* Wait for the font dialog to be closed. */
4089 while (gui.fontdlg && GTK_WIDGET_DRAWABLE(gui.fontdlg))
4090- gtk_main_iteration_do(TRUE);
4091+ MAIN_ITERATION_DO(TRUE);
4092
4093 if (gui.fontname != NULL)
4094 {
4095@@ -5637,7 +5748,7 @@
4096 gui_mch_update(void)
4097 {
4098 while (gtk_events_pending() && !vim_is_input_buf_full())
4099- gtk_main_iteration_do(FALSE);
4100+ MAIN_ITERATION_DO(TRUE);
4101 }
4102
4103 static gint
4104@@ -5648,8 +5759,8 @@
4105 /* Just inform the caller about the occurence of it */
4106 *timed_out = TRUE;
4107
4108- if (gtk_main_level() > 0)
4109- gtk_main_quit();
4110+ if (MAIN_LEVEL() > 0)
4111+ MAIN_QUIT(); /* make sure the above will be handled immediately */
4112
4113 return FALSE; /* don't happen again */
4114 }
4115@@ -5669,8 +5780,8 @@
4116
4117 add_to_input_buf(bytes, 3);
4118
4119- if (gtk_main_level() > 0)
4120- gtk_main_quit();
4121+ if (MAIN_LEVEL() > 0)
4122+ MAIN_QUIT();
4123 }
4124 #endif
4125
4126@@ -5737,7 +5848,7 @@
4127 /*
4128 * Loop in GTK+ processing until a timeout or input occurs.
4129 */
4130- gtk_main();
4131+ MAIN();
4132
4133 /* Got char, return immediately */
4134 if (input_available())
4135@@ -5812,6 +5923,7 @@
4136 gdk_window_clear(gui.drawarea->window);
4137 }
4138
4139+
4140 /*
4141 * Redraw any text revealed by scrolling up/down.
4142 */
4143@@ -5926,7 +6038,7 @@
4144 (guint32)GDK_CURRENT_TIME);
4145
4146 while (received_selection == RS_NONE)
4147- gtk_main(); /* wait for selection_received_cb */
4148+ MAIN(); /* wait for selection_received_cb */
4149
4150 if (received_selection != RS_FAIL)
4151 return;
4152@@ -5994,6 +6106,13 @@
4153 void
4154 gui_mch_menu_grey(vimmenu_T *menu, int grey)
4155 {
4156+#ifdef FEAT_GUI_COMPONENT
4157+ if( menu->sensitive != !grey ) {
4158+ menu->sensitive = !grey;
4159+ update_menu_later(menu);
4160+ }
4161+ return;
4162+#endif
4163 if (menu->id == NULL)
4164 return;
4165
4166@@ -6129,6 +6248,40 @@
4167 /* The last set mouse pointer shape is remembered, to be used when it goes
4168 * from hidden to not hidden. */
4169 static int last_shape = 0;
4170+#endif
4171+
4172+#if 0
4173+static BonoboWindow *
4174+bonobo_create_window(void)
4175+{
4176+ BonoboWindow *win;
4177+ BonoboUIContainer *ui_container;
4178+ BonoboUIComponent *ui_component;
4179+
4180+ win = BONOBO_WINDOW (bonobo_window_new ("vim", "vim"));
4181+ ui_container = bonobo_window_get_ui_container (win);
4182+ bonobo_ui_engine_config_set_path (bonobo_window_get_ui_engine (win),
4183+ "/gnome-vim/UIConfig/kvps");
4184+
4185+ /* Create a UI component with which to communicate with the window */
4186+ ui_component = bonobo_ui_component_new_default ();
4187+
4188+ gui.component = ui_component;
4189+
4190+ /* Associate the BonoboUIComponent with the container */
4191+ bonobo_ui_component_set_container (
4192+ ui_component, BONOBO_OBJREF (ui_container), NULL);
4193+
4194+ //bonobo_ui_util_set_ui (ui_component, "",
4195+ //HELLO_SRCDIR HELLO_UI_XML,
4196+ //"bonobo-hello", NULL);
4197+
4198+ /* Associate our verb -> callback mapping with the BonoboWindow */
4199+ /* All the callback's user_data pointers will be set to 'win' */
4200+ //bonobo_ui_component_add_verb_list_with_data (ui_component, hello_verbs, win);
4201+
4202+ return win;
4203+}
4204 #endif
4205
4206 /*
4207diff --new-file -u -r --exclude-from=excludelist vimcopy/src/main.c vim/src/main.c
4208--- vimcopy/src/main.c Tue Jun 3 13:32:56 2003
4209+++ vim/src/main.c Sat Jul 26 13:16:48 2003
4210@@ -79,7 +79,7 @@
4211 # ifdef VIMDLL
4212 _export
4213 # endif
4214-# ifdef FEAT_GUI_MSWIN
4215+# if defined(FEAT_GUI_MSWIN)
4216 # ifdef __BORLANDC__
4217 _cdecl
4218 # endif
4219@@ -239,8 +239,12 @@
4220 TIME_MSG("locale set");
4221 #endif
4222
4223-#ifdef FEAT_GUI
4224+#if defined(FEAT_GUI_COMPONENT)
4225+ gui.dofork = FALSE; /* don't use fork when running as component */
4226+#else
4227+# if defined(FEAT_GUI) && !defined(FEAT_GUI_COMPONENT)
4228 gui.dofork = TRUE; /* default is to use fork() */
4229+# endif
4230 #endif
4231
4232 #if defined(FEAT_XCLIPBOARD) || defined(FEAT_CLIENTSERVER)
4233@@ -439,6 +443,10 @@
4234 ++initstr;
4235 }
4236
4237+#ifdef FEAT_GUI_COMPONENT
4238+ main_start_gui();
4239+#endif
4240+
4241 if (TOLOWER_ASC(initstr[0]) == 'g')
4242 {
4243 main_start_gui();
4244@@ -1760,6 +1768,9 @@
4245 #ifdef FEAT_WINDOWS
4246 curwin = firstwin;
4247 curbuf = curwin->w_buffer;
4248+#endif
4249+#ifdef FEAT_GUI_COMPONENT
4250+ set_curbuf_persistent();
4251 #endif
4252 }
4253 TIME_MSG("opening buffers");
4254diff --new-file -u -r --exclude-from=excludelist vimcopy/src/mbyte.c vim/src/mbyte.c
4255--- vimcopy/src/mbyte.c Wed Jun 4 10:26:32 2003
4256+++ vim/src/mbyte.c Sat Jul 26 13:16:48 2003
4257@@ -3120,8 +3120,8 @@
4258
4259 im_add_to_input((char_u *)str, (int)strlen(str));
4260
4261- if (gtk_main_level() > 0)
4262- gtk_main_quit();
4263+ if (MAIN_LEVEL() > 0)
4264+ MAIN_QUIT();
4265 }
4266
4267 /*
4268@@ -4125,7 +4125,11 @@
4269 if (gui.fontset != NOFONTSET
4270 && gui.fontset->type == GDK_FONT_FONTSET)
4271 {
4272+#ifdef FEAT_GUI_COMPONENT
4273+ widget = gui.drawarea;
4274+#else
4275 widget = gui.mainwin;
4276+#endif
4277 gdk_window_get_size(widget->window, &width, &height);
4278
4279 attrmask |= (int)GDK_IC_STATUS_AREA;
4280@@ -4706,9 +4710,15 @@
4281 while (event_queue != NULL && processing_queued_event)
4282 {
4283 GdkEvent *ev = event_queue->data;
4284-
4285+ GtkWidget *output;
4286+
4287 gboolean *ret;
4288- gtk_signal_emit_by_name((GtkObject*)gui.mainwin, "key_press_event",
4289+#ifdef FEAT_GUI_COMPONENT
4290+ output = gui.drawarea;
4291+#else
4292+ output = gui.mainwin;
4293+#endif
4294+ gtk_signal_emit_by_name((GtkObject*)output, "key_press_event",
4295 ev, &ret);
4296 gdk_event_free(ev);
4297 event_queue = event_queue->next;
4298@@ -4720,8 +4730,8 @@
4299 key_press_event_queue = NULL;
4300 }
4301 }
4302- if (gtk_main_level() > 0)
4303- gtk_main_quit();
4304+ if (MAIN_LEVEL() > 0)
4305+ MAIN_QUIT();
4306 }
4307
4308 /*
4309@@ -4856,7 +4866,11 @@
4310 GtkWidget *widget = gui.drawarea;
4311
4312 attr->style = (GdkIMStyle)xim_input_style;
4313+#ifdef FEAT_GUI_COMPONENT
4314+ attr->client_window = gui.drawarea->window;
4315+#else
4316 attr->client_window = gui.mainwin->window;
4317+#endif
4318
4319 if ((colormap = gtk_widget_get_colormap(widget)) !=
4320 gtk_widget_get_default_colormap())
4321@@ -4903,7 +4917,11 @@
4322 }
4323 else
4324 {
4325+#ifdef FEAT_GUI_COMPONENT
4326+ gdk_window_get_size(gui.drawarea->window, &width, &height);
4327+#else
4328 gdk_window_get_size(gui.mainwin->window, &width, &height);
4329+#endif
4330 attrmask |= (int)GDK_IC_STATUS_AREA_REQ;
4331 attr->status_area.x = 0;
4332 attr->status_area.y = height - gui.char_height - 1;
4333Binary files vimcopy/src/objects/buffer.o and vim/src/objects/buffer.o differ
4334Binary files vimcopy/src/objects/charset.o and vim/src/objects/charset.o differ
4335Binary files vimcopy/src/objects/diff.o and vim/src/objects/diff.o differ
4336Binary files vimcopy/src/objects/digraph.o and vim/src/objects/digraph.o differ
4337Binary files vimcopy/src/objects/edit.o and vim/src/objects/edit.o differ
4338Binary files vimcopy/src/objects/eval.o and vim/src/objects/eval.o differ
4339Binary files vimcopy/src/objects/ex_cmds.o and vim/src/objects/ex_cmds.o differ
4340Binary files vimcopy/src/objects/ex_cmds2.o and vim/src/objects/ex_cmds2.o differ
4341Binary files vimcopy/src/objects/ex_docmd.o and vim/src/objects/ex_docmd.o differ
4342Binary files vimcopy/src/objects/ex_eval.o and vim/src/objects/ex_eval.o differ
4343Binary files vimcopy/src/objects/ex_getln.o and vim/src/objects/ex_getln.o differ
4344Binary files vimcopy/src/objects/fileio.o and vim/src/objects/fileio.o differ
4345Binary files vimcopy/src/objects/fold.o and vim/src/objects/fold.o differ
4346Binary files vimcopy/src/objects/getchar.o and vim/src/objects/getchar.o differ
4347Binary files vimcopy/src/objects/gtkhtml_editor.o and vim/src/objects/gtkhtml_editor.o differ
4348Binary files vimcopy/src/objects/gtkhtml_editor_common.o and vim/src/objects/gtkhtml_editor_common.o differ
4349Binary files vimcopy/src/objects/gtkhtml_editor_skels.o and vim/src/objects/gtkhtml_editor_skels.o differ
4350Binary files vimcopy/src/objects/gtkhtml_editor_stubs.o and vim/src/objects/gtkhtml_editor_stubs.o differ
4351Binary files vimcopy/src/objects/gui.o and vim/src/objects/gui.o differ
4352Binary files vimcopy/src/objects/gui_beval.o and vim/src/objects/gui_beval.o differ
4353Binary files vimcopy/src/objects/gui_gtk.o and vim/src/objects/gui_gtk.o differ
4354Binary files vimcopy/src/objects/gui_gtk_f.o and vim/src/objects/gui_gtk_f.o differ
4355Binary files vimcopy/src/objects/gui_gtk_x11.o and vim/src/objects/gui_gtk_x11.o differ
4356Binary files vimcopy/src/objects/if_cscope.o and vim/src/objects/if_cscope.o differ
4357Binary files vimcopy/src/objects/if_xcmdsrv.o and vim/src/objects/if_xcmdsrv.o differ
4358Binary files vimcopy/src/objects/main.o and vim/src/objects/main.o differ
4359Binary files vimcopy/src/objects/mark.o and vim/src/objects/mark.o differ
4360Binary files vimcopy/src/objects/mbyte.o and vim/src/objects/mbyte.o differ
4361Binary files vimcopy/src/objects/memfile.o and vim/src/objects/memfile.o differ
4362Binary files vimcopy/src/objects/memline.o and vim/src/objects/memline.o differ
4363Binary files vimcopy/src/objects/menu.o and vim/src/objects/menu.o differ
4364Binary files vimcopy/src/objects/message.o and vim/src/objects/message.o differ
4365Binary files vimcopy/src/objects/misc1.o and vim/src/objects/misc1.o differ
4366Binary files vimcopy/src/objects/misc2.o and vim/src/objects/misc2.o differ
4367Binary files vimcopy/src/objects/move.o and vim/src/objects/move.o differ
4368Binary files vimcopy/src/objects/netbeans.o and vim/src/objects/netbeans.o differ
4369Binary files vimcopy/src/objects/normal.o and vim/src/objects/normal.o differ
4370Binary files vimcopy/src/objects/ops.o and vim/src/objects/ops.o differ
4371Binary files vimcopy/src/objects/option.o and vim/src/objects/option.o differ
4372Binary files vimcopy/src/objects/os_unix.o and vim/src/objects/os_unix.o differ
4373Binary files vimcopy/src/objects/pathdef.o and vim/src/objects/pathdef.o differ
4374Binary files vimcopy/src/objects/pty.o and vim/src/objects/pty.o differ
4375Binary files vimcopy/src/objects/quickfix.o and vim/src/objects/quickfix.o differ
4376Binary files vimcopy/src/objects/regexp.o and vim/src/objects/regexp.o differ
4377Binary files vimcopy/src/objects/screen.o and vim/src/objects/screen.o differ
4378Binary files vimcopy/src/objects/search.o and vim/src/objects/search.o differ
4379Binary files vimcopy/src/objects/syntax.o and vim/src/objects/syntax.o differ
4380Binary files vimcopy/src/objects/tag.o and vim/src/objects/tag.o differ
4381Binary files vimcopy/src/objects/term.o and vim/src/objects/term.o differ
4382Binary files vimcopy/src/objects/ui.o and vim/src/objects/ui.o differ
4383Binary files vimcopy/src/objects/undo.o and vim/src/objects/undo.o differ
4384Binary files vimcopy/src/objects/version.o and vim/src/objects/version.o differ
4385Binary files vimcopy/src/objects/vim_bonobo_control.o and vim/src/objects/vim_bonobo_control.o differ
4386Binary files vimcopy/src/objects/vim_bonobo_factory.o and vim/src/objects/vim_bonobo_factory.o differ
4387Binary files vimcopy/src/objects/vim_bonobo_main.o and vim/src/objects/vim_bonobo_main.o differ
4388Binary files vimcopy/src/objects/window.o and vim/src/objects/window.o differ
4389Binary files vimcopy/src/po/af.mo and vim/src/po/af.mo differ
4390Binary files vimcopy/src/po/cs.cp1250.mo and vim/src/po/cs.cp1250.mo differ
4391Binary files vimcopy/src/po/cs.mo and vim/src/po/cs.mo differ
4392Binary files vimcopy/src/po/de.mo and vim/src/po/de.mo differ
4393Binary files vimcopy/src/po/en_gb.mo and vim/src/po/en_gb.mo differ
4394Binary files vimcopy/src/po/es.mo and vim/src/po/es.mo differ
4395Binary files vimcopy/src/po/fr.mo and vim/src/po/fr.mo differ
4396Binary files vimcopy/src/po/it.mo and vim/src/po/it.mo differ
4397Binary files vimcopy/src/po/ja.mo and vim/src/po/ja.mo differ
4398Binary files vimcopy/src/po/ja.sjis.mo and vim/src/po/ja.sjis.mo differ
4399Binary files vimcopy/src/po/ko.mo and vim/src/po/ko.mo differ
4400Binary files vimcopy/src/po/no.mo and vim/src/po/no.mo differ
4401Binary files vimcopy/src/po/pl.cp1250.mo and vim/src/po/pl.cp1250.mo differ
4402Binary files vimcopy/src/po/pl.mo and vim/src/po/pl.mo differ
4403Binary files vimcopy/src/po/sk.cp1250.mo and vim/src/po/sk.cp1250.mo differ
4404Binary files vimcopy/src/po/sk.mo and vim/src/po/sk.mo differ
4405Binary files vimcopy/src/po/uk.mo and vim/src/po/uk.mo differ
4406Binary files vimcopy/src/po/zh_CN.UTF-8.mo and vim/src/po/zh_CN.UTF-8.mo differ
4407Binary files vimcopy/src/po/zh_CN.cp936.mo and vim/src/po/zh_CN.cp936.mo differ
4408diff --new-file -u -r --exclude-from=excludelist vimcopy/src/po/zh_CN.cp936.po vim/src/po/zh_CN.cp936.po
4409--- vimcopy/src/po/zh_CN.cp936.po Mon Jun 2 09:32:25 2003
4410+++ vim/src/po/zh_CN.cp936.po Sat Jul 26 15:06:40 2003
4411@@ -3007,7 +3007,7 @@
4412
4413 #: main.c:2315
4414 msgid "-foreground <color>\tUse <color> for normal text (also: -fg)"
4415