[Gnome-devtools] Recent gIDE changes
- From: Dave Camp <dave helixcode com>
- To: gnome-devtools helixcode com
- Cc: gide-list gide pn org
- Subject: [Gnome-devtools] Recent gIDE changes
- Date: 21 Nov 2000 05:06:04 +0500
During comdex I made a number of changes to gIDE. I'll be committing
these changes tonight (hopefully), into the bonobo-gide branch. I'm
sending this mail to give a quick overview of the changes involved:
The major change I made is to the editor. I replaced the current editor
with one that uses bonobo to load and interact with the editor. Right
now there is a scintilla-based implementation of the editor in the gdl/
module. The editor implements three interfaces: Bonobo::Control (for
embedding the UI), Bonobo::PersistFile (for loading and saving files)
and Development::EditorBuffer (which will probably be renamed at some
point, and is used for manipulating the contents of the buffer).
Replacing the editor required these major changes:
* I removed all of the editor code from gIDE. This included things like
the highlighting, text widgets, and all of the gI_document.c
implementation code. This also meant deriving GideDocument from a
different base class.
* Moved gI_text functions into gI_document. This split was really
somewhat artificial, and made no sense with the new code. So
gI_text.[ch] are now obsolete.
* Re-implemented gI_document with the bonobo stuff. This included
adding all the gI_text and gtk_editable functions that needed
implementing.
* Fixed up all the calling code.
Besides the editor code, I made a few other changes:
* Made the main window use EPaned rather than GtkPaned. EPaned is just
so much nicer :)
* Made plugin menu adding work again. Plugin menu removing and toolbar
manipulation doesn't work though :)
There are a number of things left to be done. Some of these are on my
todo list for the short term, some could use some help if people wanted
to do it:
* The plugins should be reworked to do their own menu merging with the
new bonobo UI code.
* It should be possible to write plugins as CORBA objects rather than C
code/gmodules.
* There are some editor bugs, particularly in the deletion code.
* The code should be scanned again to make sure that nothing is trying
to treat a GideDocument as a GtkEditable/GtkEditor/GtkSCText.
* Some inefficiencies need to be cleaned up. What used to be a local
function call or array reference is now an RPC call. I did a very basic
conversion, and didn't clean up any inefficiencies.
So what used to be:
for (i = 0; i < gI_text_get_length (document); i++) {
char *text = gtk_editable_get_chars (GTK_EDITABLE (document), i, i +
1);
}
is now:
for (i = 0; i < gI_document_get_length (document); i++) {
char *text = gI_document_get_chars (document, i, i + 1);
}
but SHOULD be:
int length = gI_document_get_length (document);
for (i = 0; i < length; i++) {
/* I'll be adding buffering code to make this relatively efficient
*/
char *text = gI_document_get_chars (document, i, i + 1);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]