PDA

View Full Version : Rich Text Tale Vol1 : Background colors



fullmetalcoder
1st February 2006, 09:54
Take care it's a confusing film ;) !

I'm sing a QTextEdit to render my text and I would like to color lines for different purposes ( current line, error line, breakpoint...) I have already managed to color lines but there's a twist : the line get colored but that coloration stop after the last character of the QTextBlock while i would like that coloration to reach the rightmost border of the QTextEdit!!!

Hints???

Townk
1st February 2006, 17:12
Hi, first of all let me say that I already download the project that you posted on a previous post :)

I'm trying to do the same thing but with another aproach.
I extends the QTextEdit class and reimplement paintEvent(...) method.
At this point my class behave exactly like QTextEdit with one diference...
I highlight current line and current block of code (text between '{' and '}') from first column to right edge of the widget :D

Ok, you probably thinking: "That's it!"
but I have to tell you: "Houston, we have a problem!"

When I put a large amount of text on my widget (let's say that I open your deveditor.cpp file that has about 1KLOC), it became so slow that I don't think that programers wants to code on this speed.

So... I'm at work now, but when I get home I post the code to you have a look at it, til there, go thinking on a possible solution!

see U

Townk
1st February 2006, 17:49
Ok, I scape a little just to atach the source code, give a try and feedback me!!!

ps.: I include a header that is not on the zip nor is used, so delete the line that includes "highlighter.h" before you compile it!

fullmetalcoder
1st February 2006, 21:29
Thanks gonna try it!

blockd
2nd February 2006, 01:39
I pasted something below that should work pretty fast and if you turn off line wrapping.

Also, I took a quick look at that CodeEditor.zip file -- it looks as if a lot of code was copy-and-paste inherited from

QTextEditPrivate::paint(QPainter *p, QPaintEvent *e) in qtextedit.cpp. I didn't really read anywhere past that.

I don't think you need to go that far. To learn scribe better, I'd been playing around with my own custom editor too and QTextEdit::cursorRect and QTextEdit::cursorForPosition are pretty convenient for custom painting. That way if you have a large document, you can ask it for the cursor at point 0,0 and at the viewport's width,height so your paint event only deals with text that's actually visible (for Right-to-left/BiDi text you'll need to account for the difference). That makes more sense if you think of cursorForPosition returning the closest cursor as if you clicked there. That's why it works even if you don't have any text visible at (viewport()->width(), viewport()->height()). Then you can always get the QTextBlock from the cursor. I did that to make tab-stops visible as dots and it works fine for files thousands of lines long.

Anyway, you'll want to adjust the margins at the side, but this seems to work for non-wrapped text:

editor.h


#ifndef EDITOR_H
#define EDITOR_H

#include <QTextEdit>

class QPaintEvent;

class Editor : public QTextEdit
{
Q_OBJECT

public:
explicit Editor(QWidget *parent = 0);
protected:
void paintEvent(QPaintEvent *event);
private slots:
void highlightCurrentLine();
};

#endif // EDITOR_H


editor.cpp


#include <QtGui>
#include "editor.h"

Editor::Editor(QWidget *parent):
QTextEdit(parent)
{
setLineWrapMode(QTextEdit::NoWrap);
connect(this, SIGNAL(cursorPositionChanged()), this, SLOT(highlightCurrentLine()));
}

void
Editor::highlightCurrentLine()
{
viewport()->update();
}

void
Editor::paintEvent(QPaintEvent *event)
{
QRect rect = cursorRect();
rect.setX(0);
rect.setWidth(viewport()->width());
QPainter painter(viewport());
const QBrush brush(Qt::cyan);
painter.fillRect(rect, brush);
painter.end();
QTextEdit::paintEvent(event);
}


main.cpp


#include "editor.h"
#include <QtGui>

int
main(int argc, char *argv[])
{
QApplication app(argc, argv);
Editor editor;
editor.show();
return app.exec();
}


It might not matter that it doesn't even try to be optimal. You could probably also tell it to update() the effected area(s).

This also won't work right if the text wraps or you want some other sort of multi-line rectangle, but that should be easy enough to change. QTextLayout or QTextEdit::rectForCursor in conjunction with QTextCursor::movePosition should probably come in useful for that.

EDIT: looking a bit more at the CodeEditor.zip file, I'd also not search for matching braces on every paint event.

EDIT: didn't change any of the code, but fixed QTextEdit to QTextCursor::movePosition and made a few small clarifications, like dealing with bidi text.

EDIT: fixed the update code.

Townk
2nd February 2006, 12:28
Man, I'm feelling stupid :p, your way is far way better than mine!!!!
But let's talk about it...
Why I copy paint event from QTextEdit? Becouse my editor shoud has two features that QTextEdit doesn't has:

1. Multiline edit;
2. Persistent selection;

the first one you already say that is hard to work in your solution but the second I'm without any idea!
In persistent selection, user could select a text and continue to edit the document without loose the selection. Why this? Imagine that you split your view and on the top you have some part of the code that is close likely the one you are editing on botton. So, obviously you copy and paste some part of the code, if your selection is persistent, you could select on top view and continue edition on botton without loose your selection. It's something like vim do with split view :D .

Ok, now I'm trying to adapt your solution on this two features but I'm not sure that it will not have to many overide method like mine.

On multiline edition and persistent selection I have to alter the paint context of the document to reflect the alctual selection properly. If I do with my way (as I just copy a lot of code of QTextEdit) I just have to add some condition on "if (hasSelection())" control. But with your solution, I had to add an entire "if" control that will be anbiguous with the QTextEdit:: paintEvent(e) and I have to control what to copy and paste when user hit Ctrl+C/Ctrl+V or when he drag N' drop anything, so... I still have to overide all "drag" and "drop" and "mouse..event" methods from QTextEdit making the diference between your solution and mine only the paintEvent method. As I sayd before, if you do in your way you will do ambiguos check on paintEvent, but copying paintEvent from QTextEdit it's possible to minimize this efect.

At this moment I don't think that even mine or your solution is the ideal one, I'm still looking for it. Probably I'll find something usefull and good enought in the middle of our solutions, till there if anyone has a glue, please report here!

ps.: I'm creating a source forge project to a multi-plataform Qt IDE! Coming soon!!!! :D

fullmetalcoder
2nd February 2006, 16:50
ps.: I'm creating a source forge project to a multi-plataform Qt IDE! Coming soon!!!! :D


I guess we're all working on such a project! :p

I feel stupid : what do you call multiline edit?

Your way worked fine but I'll try blockd's one!

comments soon!

Townk
2nd February 2006, 18:41
guess we're all working on such a project!

Why we do not join efforts to create the best Qt IDE ever made :D ? Have you already start a sourceforge project? If not, I could do this.

About multiline edit: multiline edit is something like column selection on MS Word, let me try to illustrate:

| = will be our cursor


My text01, |my text02, my text03, my text04
My text05, my text06, my text07, my text08
My text09, my text10, my text11, my text12
My text13, my text14, my text15, my text16

In the above text our cursor is on the first line just before "my text02". This is normal edition, now in multiline edition we could have:


My text01, |my text02, my text03, my text04
My text05, |my text06, my text07, my text08
My text09, |my text10, my text11, my text12
My text13, |my text14, my text15, my text16

Our multiline cursor is on all lines at the same time. If you type an 'a' character on first exemple, the resul shoud be like this:


My text01, a|my text02, my text03, my text04
My text05, my text06, my text07, my text08
My text09, my text10, my text11, my text12
My text13, my text14, my text15, my text16

and on the multiline exemple the same action should produce:


My text01, a|my text02, my text03, my text04
My text05, a|my text06, my text07, my text08
My text09, a|my text10, my text11, my text12
My text13, a|my text14, my text15, my text16

Townk
2nd February 2006, 18:43
I forget to mention that I'm already working on blockd's example. At this point I alrerady create persistent selection and I'm going to try multiline edition soon.
When I finish the work I post it here ;)

elcuco
2nd February 2006, 22:09
blockd,

I have seen your code, and I don't get it. You draw the background of a line, and then you call the original code of QTextEdit.

What if that code rewrites the background..?

Not only that, but pressing enter is the only way your code works. (moving up, or down just garbages out the screen). Am I missing something...?

Townk
3rd February 2006, 00:39
[quote]Am I missing something...?[\quote]
Shure you are :D, I rewrite the entire code based on your solution (that is no doubt more elegant than mine) and fix some missing features on your snippet too, like if you scroll the screen with mouse wheel for exemple, you get an undesired behavior.

At now I working on make persistant selection works properly, perhaps tomorrow at the end of the day I post the partial result and probably on weekend I post the entire solution with multiline edition.

By the way are you interted in build some kind of multi platafom Qt IDE?

;)

blockd
3rd February 2006, 01:18
What if that code rewrites the background..?
It depends. If you're talking about the viewport background (white depending on your palette) to enter text on, then it should be OK -- at least in Qt 4.1. If it's Qt 4.0 then all bets are off (read: time to upgrade), since they seem to have changed a lot of how they paint things.

autoFillBackground() on the viewport is true, and from the docs:

If enabled, this will cause Qt to fill the background using the widget's background role before invoking the paint event. [...] This property was introduced in Qt 4.1. So the background is already filled in before that rectangle is painted. You can also verify that if you use do this in the ctor: viewport()->setBackgroundRole(QPalette::Window), to get a different colour. If they decide to change this behaviour in the future then the code will have to adapt. But I'll admit, I don't think the API to do your own drawing on the document is as flexible and convenient as it could be.

The text-selection highlighting will overwrite that "current line rectangle" like I think it ought to.

If you're talking about the background that you set through a QText(Block)Format, then it really depends some more. Can you do <whatever> in that paintEvent with the QPainter instead?


Not only that, but pressing enter is the only way your code works. (moving up, or down just garbages out the screen). Am I missing something...?
What version of Qt are you using, and if it's Qt 4.1.0 like me, then did you try the exact code I posted or something else? It works for me on X11 and WinXP. The only thing I see is that if you drag text, then it updates the cursor position without a cursorPositionChanged signal being emitted, but that's a Qt library issue -- the cursor stops blinking when dragging text as well. But then it gets that signal once you drop the text.

blockd
3rd February 2006, 01:40
Townk, if the rest of that post applied to me...


...and fix some missing features on your snippet too, like if you scroll the screen with mouse wheel for exemple, you get an undesired behavior.What sort of behaviour? It's working OK on my end when I scroll with the mouse wheel. Is it possible to post a screen shot of the issue?

It might require some tweaking (like only updating the effected areas), but if you move the cursor across many lines, then the rectangle doesn't look like it's updated too smoothly. I.e., don't jump across many lines, but go through all intervening lines say with the up arrow key.



By the way are you interted in build some kind of multi platafom Qt IDE?

I've actually been considering that myself, but I don't know how much time I would have for that right now.

Townk
3rd February 2006, 12:25
Man I think that TT should look a litle closer to Arthur!
The behavior that I report before is notted with WinXP SP2 + Qt 4.1.0, actualy I'm not at work so I cannot put a screenshot of the problem, so I copy and paste your code here in my SuSE 10 + Qt 4.1.1-snapshot-20060127 and looks what it happend on editor.png attached.

Man I don't know what to think!!!!

than I change highlightCurrentLine method to optimize the update to something like this:


void Editor::highlightCurrentLine(bool fullUpdate) {
QRect newCursorRect(0, cursorRect().y(), viewport()->width(), fontMetrics().height());
QRect toUpdate;

if (fullUpdate)
toUpdate = QRect(QPoint(0, 0), size());
else {
if (_currentCursorRect.isValid()) {
toUpdate = newCursorRect.unite(_currentCursorRect);
toUpdate.setHeight(toUpdate.height() + 1);
}
else
toUpdate = newCursorRect;
}
_currentCursorRect = newCursorRect;
update(toUpdate);
}

but now... highlight current line even paint!!!!
I will try to see what is happen and post here after.

Townk
3rd February 2006, 13:00
Ok, now my new method is working (was in another method the problem), but the behavior is the same as blockd's code.
I think I'll fill a bug report to TT guys, what you think?

I'm downloading the last snapshot (4.1.1-snapshot-20060203) to see how our code looks like on it.
When I finish to download and compile I post results here.

blockd
3rd February 2006, 13:33
Townk,

The text will get overridden, but what happens for you if you move the
QTextEdit::paintEvent(e) call to the top of the overridden paintEvent function? And then don't call painter.end() (although it *should* be OK). Then do you still see those issues?

If that "fixes" it, then what happens if you go back to the original code, don't call painter.end(), and put the "QPainter painter(...)" definition between curly braces?

I.e,


void
Editor::paintEvent(QPaintEvent *e)
{
...
{
QPainter painter(...);
... do painting stuff ...
}
QTextEdit::paintEvent(e);
}


Also, is there any change if you call viewport()->update() instead?
Also for QPaintEvent *e, maybe try qDebug() << e->rect() and qDebug() << e->region()
and compare it to the viewport geometry to see what it even thinks it should repaint.

fullmetalcoder
3rd February 2006, 13:38
Why we do not join efforts to create the best Qt IDE ever made :D ? Have you already start a sourceforge project? If not, I could do this.


Pretty good idea, I was about to ask exactly yhe same question ! :D That is to say I go for that!!! I didn't started any sourceforge project so we may use the one you started.

:eek: DAMN!!! Multi line edit seems to be a very interesting feature but quite hard to implement!

I already started to embed my editor widget in a real IDE app. screenshots (and alpha version maybe) are coming soon(on next Monday I hope!)

The strange behaviour you encountered are quite confusing, can you post full source code?

Townk
3rd February 2006, 14:16
Ok guys, let me update you:

4.1.1-snapshot-20060203 not compiled yet :p

This is the original paint event that I'm using:


void Editor::paintEvent( QPaintEvent *event) {
QTextEdit::paintEvent(event);

QPainter painter(viewport());
painter.fillRect(_currentCursorRect, palette().brush(QPalette::AlternateBase)) ;
painter.end();
}

so I try this two ways with the very same result as the above:


void Editor::paintEvent( QPaintEvent *event) {
QTextEdit::paintEvent(event);

QPainter painter(viewport());
painter.fillRect(_currentCursorRect, palette().brush(QPalette::AlternateBase)) ;
}

and


void Editor::paintEvent( QPaintEvent *event) {
{
QPainter painter(viewport());
painter.fillRect(_currentCursorRect, palette().brush(QPalette::AlternateBase)) ;
}
QTextEdit::paintEvent(event);
}

Than I have an idea! I put a debug message on the firs line of paintEVent like this:


void Editor::paintEvent( QPaintEvent *event) {
qDebug() << "Event rect: " << event->rect();
qDebug() << "Event region: " << event->region();

QPainter painter(viewport());
painter.fillRect(_currentCursorRect, palette().brush(QPalette::AlternateBase)) ;
painter.end();

QTextEdit::paintEvent(event);
}

What I see is that width of the "event->rect()" or "event->region()" is always 9 when I move arround.
I read that paint engine do not paint imediatly when an update is called, instead, it query the paint to do the job when the main loop gains control. So what I'm thinking is that some other stuff (like the blink timer) is overiden the update rect passed by the highlightCurrentLine method when we move arround with cursor keys or mouse clicks.
Well, its a gess, any other ideas?

Townk
3rd February 2006, 15:16
4.1.1-snapshot-20060203 finish to compile.
I recompile the code and get the same result. When I move cursor without enter key, the event->rect() has 9 of width whats make paintEvent paint only arround the cursor not the entire line!!!

I'll report a bug to TT guys.

blockd
4th February 2006, 00:30
My bad... I can see the problem with the latest snapshot of 4.1.1. However, it's gone if I replace update() with viewport()->update() like I suggested. I'm going to edit my code example upthread to reflect this.

Townk
4th February 2006, 02:26
Hey blockd, it's confirmed!
viewport()->update() works like a charm!
tks for the tip!

Try to make persistent selection and multiline edition works and post results here!

Xagen
4th February 2006, 11:10
Hey, guys!
I have wroted one good text editor from two yours.
I'll post it here later, ok?

Xagen
4th February 2006, 15:34
Here it is!

Townk
4th February 2006, 15:46
Looks very nice!!!!

Hey, I'm creating a sourceforge project to the Qt IDE, but if more people here will participate I think it's a good idea to ask for a name :p

In my opinion the IDE name should be something with a meaning like some greek word or anything like that. Particulary I do not like names like: QIDE, qwhateveryouwanttocall, kmyapplicationforkde and so on.

Well, I'm thinkning on a good and powerful name, til I get some sujestions please, post your ideas here!!!! :D

Xagen
4th February 2006, 15:54
I'll think about it, ok?!

Townk
4th February 2006, 16:08
Hey blockd, just to simplify your snippet your could ripp off the highlightCurrentLine method and on constructor you could do


connect(this, SIGNAL(cursorPositionChanged()), viewport(), SLOT(update()) );

just to simplify the snippet :p

Xagen
4th February 2006, 16:59
Looks very nice!!!!

Hey, I'm creating a sourceforge project to the Qt IDE, but if more people here will participate I think it's a good idea to ask for a name :p

In my opinion the IDE name should be something with a meaning like some greek word or anything like that. Particulary I do not like names like: QIDE, qwhateveryouwanttocall, kmyapplicationforkde and so on.

Well, I'm thinkning on a good and powerful name, til I get some sujestions please, post your ideas here!!!! :D

All serious IDE's have names like these:
Eclipse, CodeForge, Visual Studio:), KDevelop, Anjuta, SlickEdit...

I'm from non-english speaking country and it's difficult to me to find the name for the application, but look at these:

Nimble IDE
EdgeWise IDE :)

blockd
4th February 2006, 18:15
Hey blockd, just to simplify your snippet your could ripp off the highlightCurrentLine method and on constructor you could do


connect(this, SIGNAL(cursorPositionChanged()), viewport(), SLOT(update()) );

just to simplify the snippet :p

True, but the main reason I wrote it that way was because you could possibly do more in the highlightCurrentLine() slot before calling an update, like determine the region to update. :)

Townk
4th February 2006, 18:31
Ok guys, let me talk about that IDE:

First question I want to answer is: Why do another C++ IDE since we have KDevelop for Linux and even Eclipse CDT for multiplataform purpose?
I think that this answer is not so simple, but lets go. I beleave that KDevelop is one of the best IDE for C++ ever made (by the way I'm using it), BUT, it has so many features that to a beginer or to create a simple and quick project its not easy to get there. With this I get to Eclipse that has a diferent aproach that is easyly things, so, why not use Eclipse instead? Becouse CDT plugin do not suport Qt programming as I want it! Than my last reason is that:
Qt is so powerful that is a shame that no one start some kind of project like this I'm proposing.

Second question: How do we has to procede?
I think that a good aproach is create separated modules like editor, project manager, code complete and than join them to build the IDE and for each custom widget that is developed I think that we should think in create it to use it inside the Designer, so, each form UI that we develop we can use Designer to do that, besides it facilitate creation of UI we will use all the power of Qt to build a greate Qt IDE.

With this modules in mind I want to propose the editor widget like this:



class QCodeEdit : public QWidget {
Q_OBJECT

public:
QCodeEdit(QWidget *parent = 0);
~QCodeEdit();

public slots:
void setHighlightCurrentLine(bool highlight);
void setMultilineEdit(bool multiline);
void setPersistentSelection(bool persistent);

void setLinesPannelVisible(bool shown);
void setIconBordPannelVidible(bool shown);
void setIconMarksPannelVisible(bool shown);

void append(const QString& text);
void clear();
void copy();
void cut();
void paste();
void selectAll();
void setCurrentFont(const QFont& f);
void setFontFamily(const QString& fontFamily);
void setFontPointSize(qreal s);
void setText(const QString& text);

signals:
void copyAvailable(bool yes);
void cursorPositionChanged();
void redoAvailable(bool available);
void selectionChanged();
void textChanged();
void undoAvailable(bool available);
void codeFolded(int line);
void codeCompleteRequest(int viewportX, int viewportY, const QString& wordToComplete);
};


I can't think in other signals or slots, but if you have some other ideas...

I think it's all I want to talk. Sorry by my bad english, is that I'm just thinking and writing :p

Any comment?
Oh, how about we create a topic for this IDE discution?

elcuco
4th February 2006, 18:33
Reguarding the name:

Don't put IDE on the name. The best application names have nothing to do with functionality:

Power Point
Excel
Mozilla
Amarok
k3b

Choose a cool name which gives people time to think (what does Ubuntu mean...?)

Now, if we all are attaching files to text editors, on the thread "a Text Editor with line numbers... " I added some minimalistic highligh engine. I used some ideas spoken here, so IMHO it's just fear to mention that.

Townk,
Reguarding the reasons, you forgor this one:
When you are compiling Qt applications you would like to see Qt tools. Using Eclipse or VS is shooting oneself in the leg.

I would like to see such project born and become usefull. I also beleave you re correct, and if such beast should be done, it should be done in a modular way. This way, the code can be modified easily and one can use code snipets from other projects.

Townk
4th February 2006, 18:36
Don't put IDE on the name. The best application names have nothing to do with functionality:

Power Point
Excel
Mozilla
Amarok
k3b

Choose a cool name which gives people time to think (what does Ubuntu mean...?)


Totaly agree with that!

Xagen
4th February 2006, 18:38
I think that we don't need only qt-oriented IDE. We need crossplatform "multi-oriented" IDE (This could be realized with plugin support for different types of projects).

Xagen
4th February 2006, 18:41
Totaly agree with that!

Also we have no need to use the 'IDE' in the title (application name)

fullmetalcoder
6th February 2006, 10:32
Hi guys!
I'm back after a week-end with no internet connection but I used that time attempting to build a trully powerfull editor (have a look at thread "text editor with line numbers" for more info and download)

About the name: When I was working alone on mine project I think that DevQt could be a decent name but reguarding to what you all said it appear that it's no that good!:D


Choose a cool name which gives people time to think (what does Ubuntu mean...?)

Totally agree and BTW could you tell me (I'm so stupid!:p ) what does Ubuntu mean???



First question I want to answer is: Why do another C++ IDE since we have KDevelop for Linux and even Eclipse CDT for multiplataform purpose?
I think that this answer is not so simple, but lets go.

The answer is quite simple, IMO: KDevelop may be VERY nice but it's not multi-platform;
Eclipse could have been nice as well but it's written in Java so it's SLOOOOOOOOW!!!:rolleyes:
Moreover none of all the multi-platform IDE you can find has a build-in support for Qt4 : they all need plugins or extra tools!
Finally I think it would be great to get involved in such a project : it's the best way to learn and to make your current knowledge usefull!

Back to the project itself : it MUST be modular and plugins aren't a bad idea but they'll come later on! I'm not a great fan of the designer because it handles layouts very badly and thus can't create harmoniously resizable widgets but, well... why not?
I have already done a minimalist handling of .pro files : it read the file and translate it to a
QMap<QString, QStringList>
the Qstring being the name of the variable and the QStringList its content.
I'm planning to handle conditionnals as well but it's gonna be much harder!!!

edit: posted the screenshot(damn resizing I have to do! it was 1024*768 and the only image processing program I could use was M$ paint!!!) and source

Townk
6th February 2006, 20:10
Looks very good FullmetalCoder, I'll look into the code later ;)

But, seeing this screenshot and what you are doing, makes me wonder:

Are you using the EVONSAF methodology to develop your project (rsrsrsr, :D )?

Before you ask EVONSAF means:
Enorme
VOntade de
SAir
Fazendo

that is an anacronism to "Huge Wish to Get Doing" in protuguese.

How about, project documentation? Diagrams? Even plans for your IDE?
I think if you spend a little time on these things your project shoud be as good as it looks like. Just a tip ;)

But, anyway... excelent work so far (at least visualy).

fullmetalcoder
7th February 2006, 15:43
Hey, guys!
I have wroted one good text editor from two yours.
I'll post it here later, ok?

I tried yours and I've a few comments:
- when you take code from other people its surely nice to mention it but when they're distributed under GPL, as was mine, you MUST keep the copyright notice!!! And you didn't AFAIK! I'm not gonna trial you but I advise you to consider following the rulesthat make open source possible!:p
- please drop the Qx / QxPrivate architecture ( MemoX / MemoXPrivate in your case) : it's awful !!! :mad:
- obviously you didn't read that hread very well : your current line highlighting is not fixed!:rolleyes:



How about, project documentation? Diagrams? Even plans for your IDE?
I think if you spend a little time on these things your project shoud be as good as it looks like.


I made a short diagram (by hand and no UML or stuffs like that!) of the project after two version heavily inspired from the WYSIWYG editor example provided by the Trolls and I used it to craft the current version; If you wish to start the devolepement of what's coming to be OUR IDE :D , I can make a more understandable one and post it here so as to allow a common and harmonious developement process!

Townk
8th February 2006, 16:14
Yo guys, I don't know what you think about this, but I want to call our IDE of: "Sphere"
I don't know why nor how I think in this name, but it doesn't out off my mind :p

Well, _PLEASE_ give me a name to I finish the registration of the project on Sourceforge!!!!

fullmetalcoder
9th February 2006, 16:05
Yo guys, I don't know what you think about this, but I want to call our IDE of: "Sphere"
I don't know why nor how I think in this name, but it doesn't out off my mind :p

Well, _PLEASE_ give me a name to I finish the registration of the project on Sourceforge!!!!
Sphere ??? It doesn't really appeal to me (what about Canopy?:D :p )!

Do you like "CodeSailor" or "Bumblebee"? why those rather than others? Dunno, maybe I think coding is much like sailing or I like the comparision between coder and bumblebee! ;)

It seems we're going a little off-topic! I'm gonna open a IDE developpement thread!