Re: GNOME::Editor
- From: Miguel de Icaza <miguel nuclecu unam mx>
- To: martijn earthling net
- CC: gnome-devel-list gnome org
- Subject: Re: GNOME::Editor
- Date: Tue, 2 Mar 1999 15:18:09 -0600
> I need an editor for photon, and I don't think it's any use for me
> to write yet another editor, so I intend to reuse existing ones.
>
> The way I want to communicate with the editor would be through CORBA.
> I'll probably need some extra functionality that is specific to
> photon in the interface, but there would also be a lot of functionality
> that isn't photon specific. So, I thought there should be a GNOME::Editor
> interface from which I could derive.
A GNOME::Editor interface is indeed very important.
I looked at your interface, and I think we can improve it a bit.
First of all, you do not want to have the Editor interface handle
various "file instances" which is what your FileID tag does.
I suggest you have an EditorFactory object (you derive this from
GNOME::GenericFactory, look in $prefix/share/idl/gnome-factory.idl).
So, you need each GNOME editor to implement two interfaces: the
GNOME::GenericFactory which will return object references to
GNOME::TextEditor.
module GNOME {
inteface TextFactory {
Object find_file (in string path);
};
interface TextEditor {
exception NotFound {};
exception SaveError {};
void open (in string path) raises (NotFound);
void save (void) raises (SaveError);
void save_as (in string path) raises(SaveError);
void close (void);
void goto_line (in unsigned long line);
void scroll_to_line (in FileID id, in long line);
};
interface SourceEditor {
void jump_to_fn (in string name);
};
}
To get this working with the gnorba libraries you want to use:
[some_editor_factory]
type=exe
repo_id=IDL:GNOME/GenericFactory:1.0 IDL:GNOME/EditorFactory:1.0
description=Some Text editor
location_info=some_editor_program
[gedit_text_editor]
type=factory
repo_id=IDL:GNOME/EditorFactory:1.0
description=Some Text editor window.
location_info=some_editor_factory
So your application would just need to call:
editor = goad_server_activate_with_id (NULL, "some_text_editor", 0, NULL);
GNORBA will launch the factory for you and invoke the factory method
to get a new reference to the editor interface for your specific
instance.
Miguel.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]