I have been thinking about writing a GUI toolkit recently, and after doing some searching on the web, I haven't found much on it it's self. But I believe I have the basic idea down, and I was wondering if you guys who maybe know about this could let me know if I am doing this right before I start with loads of work.
The way I think it's done is:
- Write the code that displays the GUI ( Window, Button etc ) and put it in functions.
- Give the programmer access to the functions.
Sounds very simple to me. Having said that, I would like to point out that by "simple" I do NOT mean "not a lot of work". I just mean that the process is not incredibly complicated.
So, in essence, if I wanted to write a GUI toolkit for the Windows operating system and the ( for simplicity's sake ) C programming language, I could write the assembly code that displays the ( again, simplicity ) empty window, put it in a function, and ( this part I still need to do some research into ) get it to work with C ( as a header file ). Then I just give the file(s) to another C programmer(s) and they just access the functions in the header file, right?
Please keep in mind that this is ALL made for simplicity, I actually would like to make it for the LISP language and make it cross-platform. I just want to get the method defined here. Then I can work on details like making it cross-platform and using it in one ( or more ) languages.
Also, so you know, I'm in the designing stage of it right now. I want to get ( at least most of ) it figured out and researched before I start, as I know this will be a major undertaking.
And thirdly, I know some of you will feel obligated to tell me to "just use one of the toolkits already available" or "just join one of the projects already started". While I appreciate your concern for me and my time, I feel that this would be a very good learning experience for me. As well as, since I'm just in the designing phase right now, I'm not completely sure I'm going to do it. There is a lot more research to do before I decide on it. I'm NOT going to run out tomorrow and try to get the whole thing done in a weekend. I'm taking this seriously.
Having said that, I would appreciated any advice and/or CONSTRUCTIVE criticism on this idea/project.
Whew! That was a lot to get off my chest. Now, it is up to you guys who are willing to help me out with this by sharing your knowledge and/or experience in this area. So please, share with me what you can. I'm ready to know, and thirsty for knowledge.
- WolfShield ( James )