A batch of newbie questions.



Hello,

I'm new to gtk+, new to developing graphical applications under linux, new to developing graphical applications in general, and new to programming projects with goals other than learning. I've been interested in programming for a long time, I've read several books on C, and I'm comfortable with the language, but I don't have any practical experience with the "GNU auto*" tools for developing software. I've done my fair share of configure, make, make install, but I've never used any of the auto* packages to develop my own software.

I think I'm finally ready to take the plunge.

I have an idea for a graphical app I'd like to write. It's a frontend for another piece of free software called vcdimager, which currently lacks an OSS FE that fully exposes all of its capabilities. Several other apps, good and bad, have given me a ideas for the UI and I have a few napkin sketches. They're in the process of being refined, but before I jump into writing code I have a few technical and non-technical questions that I'd like to pose to experienced developers.

Here are my goals for the frontend:

Short term goals:
-Expose the advanced features of the underlying command-line software (VCD Imager). -Present those features in a way that's easy for beginners to learn, but that doesn't restrict the activities of more advanced users. -Interoperate with the gnome desktop, at least to some degree (include a launcher icon, at least).

Long term goals:
-Port the application to other operating systems that already run VCD Imager. -Add support for non-English languages. I'm familiar enough with Spanish to do that translation myself, but I would like to accept user-submitted translations for other languages.
-Investigate and utilize whatever accessibility technologies are available.

Non-goals:
-Support DVD creation. This is a VCD-only tool.

---------------------------------
Here are the questions:

I really like glade from what I've seen so far, but does it generate gtk+ 2.0/2.2 code? A couple answers to unrelated questions in the glade FAQ (http://glade.gnome.org/FAQ) hint that it only generates gtk+ 1.0/1.2 code, but there isn't a definitive answer as far as I can tell. If it doesn't, is there a similar tool out there that does?

I tried out the Anjuta IDE and at first glance it seems adequate for my purposes. It has presets for gtk+ projects so that's a plus. However, when I start a new project, it generates makefiles, configure scripts, and other things that I'm not yet familiar enough with GNU auto* to identify. Glade does this as well. Does that mean they won't play nicely together (e.g. overwrite each other's files)?

Anjuta has presets for gtk+ projects. It also has presets for gnome 2.0 projects and "libglade 2.0" projects. What is the difference between a gtk+ project, a gnome 2.0 project, and a "libglade 2.0" project? Are they mutually exclusive?

Why is it called a _lib_ glade project? I was under the impression that glade was a tool for generating skeleton UI code for gtk+ applications that would then link against gtk+ libraries. Do apps designed with glade have to link against libglade as well as gtk+? If so, what does libglade provide?

Just from playing around with glade, it seems that writing a "gnome" app means writing a gtk+ app that uses any number of gnome-specific components. Is this correct?

Do any of my software choices (Anjuta, glade, GNU auto*) or library dependencies (gtk+ 2.0, gnome2 [?], libglade [?]) limit my ability to write a portable/localizable program?

I've downloaded and read the GNOME Human Interface Guidelines. Is there anything else along that line that I should read before getting started? Is there anything else I should read in general?

Any other suggestions or comments?


Thank you very much for your time,

Eric


_________________________________________________________________
MSN 8 with e-mail virus protection service: 2 months FREE* http://join.msn.com/?page=features/virus




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]