![]() |
|
#1
|
||||
|
||||
[GIM][MODULE]Contact ListGIM Module Contact List A GIM add-in Module I have created the interface of the first module for GIM. There have been no callbacks created yet and nothing but the layout and names of the widgets have been created. The reason for this is there is no reason to create any more until we are sure that the information will be needed. At this point feel free to jump in and make any suggestions about the interface. All the widgets should be self explanatory but questions are always welcome. There are still a few things that could be added. For one, I liked the suggestion to be able to add pictures or graphical representations for the information being presented. Now that there is something to look at perhaps these will be easier to expand on. I'll walk through each of the necessary files and what their purpose will be. For now, some are merely mock-ups so the chain will be maintained as these files are fleshed out. Anyone who read my tutorial FLTK && fluid In Motion know I get a kick out of this guy so let's get started on an up swing... ![]() Main File - gim.cpp CPP / C++ / C Code:
That's it. As we grow GIM this will be the launcher code but there will really not be that much to it. The first file it includes will be gim.h that will be our hook to all the data we generate. The second is gim_modules.h that will be the list of the modules a user would like to include in the compilation process. We will look at that next. User Desired Modules - gim_modules.h CPP / C++ / C Code:
Boy, isn't programming fun. I know I am being horribly monotonous but as this grows it will be worth it. (I hope) Let's slog along and check out contact_list.cpp which is the first real part of the module. This should be named as the module is to keep things simple.Main Module Code - contact_list.cpp CPP / C++ / C Code:
GAWHHH. I really need an offline post composer. Main fluid Generated Code - contact_list.cxx CPP / C++ / C Code:
This file in turn includes the header information that is also generated by fluid. The naming convention is the same as above with a .h instead of .cxx. Here is contact_list.h CPP / C++ / C Code:
Last but not least I will give the .fld file that I used to generate the two previous files. If you load it into fluid and use the write code ability of fluid those files will be created for you. For consistency here is contact_list.fld Code:
Now all that is needed is to put all the files in the same directory and compile. I use GNU's g++ from bash and here is my command line. If you use something else, make the needed adjustments. g++ gim.cpp `fltk-config --ldflags --cxxflags` -o contact Well, that is all there is to it. Please let me know if you encounter any problems or make any comments or suggestions here. I may create another thread in the C/C++ forum if the coding seems to warrant it. Other than that, GIM has a module to start. I've had it for tonight. Contact me if you have any questions. Oh yeah, for the truly severe, I realize I misspelled Business, it will be corrected. __________________
"Opportunity is missed by most people because it comes dressed in overalls and looks like work." --Thomas Alva Edison "Those who would give up essential liberty to purchase a little temporary safety, deserve neither liberty nor safety." --Benjamin Franklin "A happy person is not a person in a certain set of circumstances, but rather a person with a certain set of attitudes." --Hugh Downs |
|
#2
|
||||
|
||||
|
Since I don't seem to have the juice to edit the last post here is the zip of all the files that were talked about. Just kind of spaced it out last night.
__________________
"Opportunity is missed by most people because it comes dressed in overalls and looks like work." --Thomas Alva Edison "Those who would give up essential liberty to purchase a little temporary safety, deserve neither liberty nor safety." --Benjamin Franklin "A happy person is not a person in a certain set of circumstances, but rather a person with a certain set of attitudes." --Hugh Downs |
|
#3
|
||||
|
||||
|
I love the layout. It is very well done. It also compiled very cleanly (as it should since there is no call backs
).Here are my questions/suggestions:
I really like this layout. Don't take my comments as criticism. I am just trying to get your vision as I will be starting the data server part of this. __________________
The best damn Sports Blog period. |
|
#4
|
||||||||||||
|
||||||||||||
|
Quote:
Quote:
I would say it needs an additional item FLTK. This will be of course about the module. About the GIM project with contact info. Licensing info about FLTK (not there yet) with contact to full license. Licensing about GNU tools and contact to full license. The contacts will be web addresses (no need to launch) so the user could see all info if they so desire. I just wanted to make it easy for people to find and not break the Golden Rule Quote:
This is my side (interface) and I am trying to find an attractive slightly unique (hence the embossed labels for the groups) look that will eventually set standards for the 'official' look and feel. This was a well thought out list of questions. Some I had not thought about and some I had in my head. Gotta follow the documentation rule unless there is a psychic in the house. I hope this gives you a better idea of how I envision the interface to interact with the user now. Mark edit: One thing I just realized looking at the interface through someone else's eyes. I forgot a company name field. Do'h! __________________
"Opportunity is missed by most people because it comes dressed in overalls and looks like work." --Thomas Alva Edison "Those who would give up essential liberty to purchase a little temporary safety, deserve neither liberty nor safety." --Benjamin Franklin "A happy person is not a person in a certain set of circumstances, but rather a person with a certain set of attitudes." --Hugh Downs Last edited by cable_guy_67 : 23-Nov-2004 at 21:14.
Reason: add comment
|
|
#5
|
||||
|
||||
|
Just a reminder to anyone, this project started out as simply an idea. What we are going through right now is shaping what this project will be. This is a community project, so I encourage anyones comments. If it is not obvious cable_guy and I are stabbing in the dark to find something that works.
That said->
One other idea. Could you post your binary for our friends that are fltk-less (for shame!). I would just like to have everyone that is interested be able to see this without having to install fltk if they don't want to. __________________
The best damn Sports Blog period. |
|
#6
|
|||||||
|
|||||||
|
Quote:
Oh, that won't work now will it. 8-) Enough of that nonsense. I would like to second the above statement. The hardest part for me is to separate myself from my original thought when building a user interface. One of the major positives with doing all this in a community setting is to get as much feedback on things you don't like or would like to act differently. As you can see from my previous post when D put forth a list of questions I had almost immediate answers for all of them. I could have bypassed many by posting a "how the silly thing will work" section so everyone will have an idea what the team leader intends for the interface elements. That being said I need to get my baseball bat and do a few laps with these silly questions below. Quote:
This is not the same as the db login I don't think. I was thinking more of using some type of encryption method on the final file that relates to the specific database. Let's leave this be for now (I'll ghost the submenu) and work on some of the other ideas first. I think gim.h can handle running into an unreadable db already and the security may need to be a totally separate module that could be used by any module that desires security. So this is not the same as the header describes. At least I don't think so. Quote:
"AHhhhhhh! I'm comin' Elizabeth! It's the big one!" :-) Done and Done. I compiled a windows version that has no dependencies on the CygWin dll and it is in the zip below. But just in case here are the file's dependencies: Code:
One other thing to note. I updated my local cvs to 1.1.6 and rebuilt locally so that is what I am using as of today. With a static build it should not matter anyhow but if anyone sees something hinkey let me know. Hey D, if you want to add a linux version knock yourself out and if there is anyone that wants a CygWin version I can whip one up with some minor adjustments. You do have to have your own CygWin dll's though, I know there are some issues about that but this is noncommercial so I will have to look back into that. Mark Download the windows version here __________________
"Opportunity is missed by most people because it comes dressed in overalls and looks like work." --Thomas Alva Edison "Those who would give up essential liberty to purchase a little temporary safety, deserve neither liberty nor safety." --Benjamin Franklin "A happy person is not a person in a certain set of circumstances, but rather a person with a certain set of attitudes." --Hugh Downs |
|
#7
|
||||
|
||||
|
I think we are pretty darn close to being on the same page. I will start posting my data implementation in another thread. There are some UI design differences, but I think at the common tie point we are sufficiently together to make this work.
The reason that I am so critical on a seperation between data implementation and user interface is that I want to do the data portion in at least two different ways. The first is simply a file loaded into a doubly linked list. The second is a client/server database that I have created through an IP Socket interface, so that your data could be accessed from anywhere. This will be down the road a bit, but I want to keep the door open for this. Again, any comments, suggestions, blatant criticisms would be welcome. __________________
The best damn Sports Blog period. |
|
#8
|
||||
|
||||
Crazy Cable Guy ranting and ravingQuote:
I would be much more concerned if there were no opposing views. Thanks D for breaking the trail. We want GIM to be unsmashable, uncrushable, uncrashable and pretty darn clever to boot so for anyone out there reading this I only have one thing to say: Let me set up my soapbox for a moment. "The best thing you can do for GIM is to tell the team leader why you think this is a piece of junk. Not that it is junk, but why it doesn't work for you. Positive reactions are nice but constructive criticism will build a stronger more robust product. Make the team leaders work with the end user since that is who we intend to create for. List your objections clearly and succinctly and get ready for the responses. I, as a team leader and a GID member have been shown that there are two basic truths. One is, remember to put on your thick skinned sweatshirt, and two, humble pie don't taste so bad when the end result is in everyones best interest and there is enough to go around. I don't think we started doing this just because individuals want something for their own use. I personally feel that it has been started because there are a lot of people here that like to do things that others will benefit from. It might sound goofy or self-righteous but I know from first hand experience that there are people here who feel the same way." OK, now that I have THAT out of my system... Quote:
This is the nice thing about there only being this module to start with. We can concentrate on the process to create while making sure the rules will work. I personally don't fully grasp the client/server process fully yet. Now that I have seen the beginnings of gim.h I am starting to see but full understanding is still a ways off. Even if you have no intention of participating in the creation of either side of the GIM project you can be a HUGE help by trying out the software as it grows. We will try to make sure it won't do anything horrible to you. The team leaders had better have compiled, tested, changed, recompiled, tested and tested a little more but there is no way they can possibly catch everything. We really do need the input from the community here to make this as cool as it can be. I for one can't wait to see how far the data side can be taken. The tools are free and at our fingertips. What gets done with them is up to the craftsmen(and women) out there. For as little as zero dollars you can be an amazing help. Mark Whew, that dude is wacked. 8-) __________________
"Opportunity is missed by most people because it comes dressed in overalls and looks like work." --Thomas Alva Edison "Those who would give up essential liberty to purchase a little temporary safety, deserve neither liberty nor safety." --Benjamin Franklin "A happy person is not a person in a certain set of circumstances, but rather a person with a certain set of attitudes." --Hugh Downs |
|
#9
|
||||
|
||||
version 0.0.1bI have made a few changes to the interface and am starting the callbacks. The newest source and binaries can be found at the GIM home page. There is also a description of how each widget should react and interact. I will post hunks of that here as I work on the code for each.
Mark __________________
"Opportunity is missed by most people because it comes dressed in overalls and looks like work." --Thomas Alva Edison "Those who would give up essential liberty to purchase a little temporary safety, deserve neither liberty nor safety." --Benjamin Franklin "A happy person is not a person in a certain set of circumstances, but rather a person with a certain set of attitudes." --Hugh Downs |
|
#10
|
||||
|
||||
|
Quote:
IMHO, the 'guts' of the module simply 1) receives task info from an input buffer, 2) loads an output buffer with the requested data The info passed back it easily tested via a console main(). Strip out the main() and you have your module. The GUI 1) loads the module input buffer with a request, 2) a dummy 'module' loads the output buffer 3) the GUI displays the dummy data. Strip out the dummy routine, you have your GUI. Compile them together, a program! __________________
Age is unimportant -- except in cheese |
Recent GIDBlog
Developing GUIs with wxPython (Part 2) by crystalattice
| Thread Tools | Search this Thread |
| Rate This Thread | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Insert problem in Linked list | ||||