FAQ/Does AbiWord use MFC
---++ <nop>DevFAQ: Does AbiWord Use MFC
jo asked if AbiWord uses MFC. I (rhk) am not a developer, but attempted an answer ("no"), see "Original Email and Response"
below. As always, this is a wiki, if you see a problem, fix it, if you have more / better information, add it.
---++ Contents %TOC%
---++ Original Email and Response
from jo (ATecsDOTfullertonDOTedu):
jo, I think you would be much better off asking your questions on the abiword-dev or abiword-user's lists (e.g., abiword-dev@abi source.com, subscribe by sending an email with the word subscribe in the subject and header of an email addressed to abiword -firstname.lastname@example.org). I am not a developer, but just an interested bystander. email@example.com wrote: > I just got your email address from the AbiWord's document. It would be nice if you were more specific (which AbiWord document?) -- I may need to clarify that document so people tend to use the existing resources (the mail lists (above) or the TWiki based FAQ, or ???).> I have just learned MFC with VC++ and look at the source code of AbiWord. > Was it written in MFC? It does not look like using MFC.
AbiWord is written to be a cross-platform application (i.e., to work on Linux, Windows, MacIntosh, and others). There are s everal approaches to doing this,* writing a native version for each platform * using a toolkit (like, I'm not sure of the new name, is it wxwidgets or something like that) that works on several platforms (another is QT, and there are others) * I'm quite certain there are other ways (in addition to those listed above and that below) * AbiWord (iiuc) went their own slightly different way. The code is divided into common code (cross-platform) (using a subset of C++) that works on all platforms, and then platform specific code. The platform specific chunks use an appropriate API or toolkit, such as GTK/Gnome for Linux or the Win32 API on Windows [we use the bare Win32 API wrapped in our own
cross platform class structure, not some other class library such as Microsoft's MFC].> Could you briefly explain what kinds of library packages were used to build GUI > for AbiWord.
AbiWord relies on several libraries for items ranging from various image and file format import/export (PNG, wv, ...) to general libraries such as zlib (compression) or popt (command line parsing). On Windows the GUI is created using standard Win32 calls, resource files (for basic templates), and our custom [cross platform] string handling code to enable multilanguage support. Other platforms use similar techniques, but with platform appropriate mechanisms (such as using libglade instead of Windows resources). Please view the build document (in abi/src/docs/) for more details about which libraries a given platform requires.
> My current goal is to analyze the GUI part of AbiWord source.
Wonderful! I hope you will share the results of your analysis in a logical location -- my suggestion would be the AbiWord TWiki based FAQ (either as an FAQ, or as just one or a series of pages on the TWiki).> To learn about library package that AbiWord used, I would like to find some > documents and books. Wonderful! I hope you will share the results of your analysis in a logical location -- my suggestion would be the AbiWord TWiki based FAQ (either as an FAQ, or as just one or a series of pages on the TWiki). <pre> > To learn about library package that AbiWord used, I would like to find some > documents and books. > Is there any document to explain how to implement AbiWord?
There are some documents, ask on the dev list and review the TWiki and web site, see below:
regards, Randy Kramer
PS: I never like to answer the same question twice, so I'm adding this question to the TWiki based FAQ, just as is. May I suggest / request that, as you gain additional information, you modify that (this) FAQ appropriately to help the next person?