1.1 What is WXWIDGETS? WXWIDGETS is a kit for developing user interfaces for normal desktop programs and mobile device programs. Because it is a framework, it also eliminates the complexity of the program underline while providing standard programs. WXWIDGETS libraries include a large number of classes and methods for programmers, and even available for programmers to customize certain categories to meet different needs. A typical application window includes standard controls, drawing of special graphics, and responds to input devices from mouse keys. Also communicate with other processes or drives other programs. In other words, the programmer uses WXWIDGETS development software to achieve all the features that modern programs can implement and relatively easy. Although WXWIDGETS is usually become "User Graphical Interface Development Toolkit", but in fact it provides is not limited thereto. Its other features can be applied to all aspects of software development. This feature is important because all WXWDGETS-based applications should be ported to different platforms, not just a graft interface. WXWIDGETS provides various class libraries to support file streams, multithreaded, program settings, inter-process communication, online help, database access, and more.
1.2 Why use WXWIDGETS? WXWIDGETS is different from other similar types of frames (such as MFC, OWL), which has the characteristics of multiplatform. WXWIDGETS provides almost consistent application interface (API) for its various platforms support, which means that programs written on Windows have been recompiled on the Linux platform. . This brings huge economic benefits to avoid waste of manpower forces when the same software needs to be repeated on different platforms. At the same time, it also reduces the burden of programmers because they don't need to remember the application interface of different platforms. In addition, WXWIDGETS enhances the persistence of applications. With the continuous development of the computer industry, the WXWIDGETS framework also continues to update, so that the WXWIDGETS framework can be easily ported to the latest and best system platform. Another difference is WXWIDGETS to provide local appearance (Native Look and Feel). Some frameworks provide the same form effect for different platforms, or use certain predetermined topics to simulate the appearance of similarations from the platform. Relatively, WXWidgets use local window decoration, so the appearance of the program not only seems to be consistent with the main platform, but in fact it is a local appearance. This is very important for users because the program is running, even if there is a different point of the platform standard, it will make users feel bad. To describe this, Figure 1-1 shows a WXWPWIDGETS-based novel creation program running on a WindowsXP platform. It is called StoryLines, used to help novel writing to create their stories.
Figure 1-1 Running under WindowsXP STORYLINES This is a standard Windows program that has a GUI element that meets the standard Windows platform, such as tab (Tab), scroll bar, drop-down list (Drop-Down List) )and many more. Similarly, Figure 1-2 shows the interface of StoreLines runs with Mac OS X. As expected, it uses the AQUA appearance of the Mac OS X standard, there is no menu bar in the window, because in the Mac, habits put the menu bar on the top of the screen. Figure 1-2 StoryLines Figure 1-3 running under Mac OS X is displayed as an interface running on Red Hat Linux as a GTK program. Figure 1-3 Storylines running under Redhat Linux, GTK We can't help but ask, why not use Java? In fact, although Java is very conducive to developing a network program, Java is not a good choice when developing desktop applications. Typically, the C program developed by WXWIDGETS framework is not dependent on the Java virtual machine, so the running speed is faster, with more visual appearance, and is easy to install. At the same time, C supports more system underlying access, and it is easy to integrate with existing C / C code. Due to the above reasons, the desktop application now we usually use is very few part of Java development. Developed using wxwidgets to bring users with higher operating efficiency and more real interface effects. WXWIDGETS is an open source project, which does not need to pay any fees using wxwidgets, which makes wxwidgets with deeper philosophy and strategic significance. The survival period of open source software is very long. As a programmer using WXWIDGETS, you know that the code you rely will never disappear. In use, you can solve it by modifying the source code. If you can get more fun, you can get more fun, the participants of open source projects are usually here, because they love their work, can't wait to share their knowledge and experience with you. This is better than seeking company support staff, because these supporters generally have such a large source of community participants. Select WXWIDGETS, which means you have chosen an incredible wisdom crystal because people involved in developing wxwidgets have a broad background. Many times, you need some functions to fully write code, but it is very likely that these functions have been encapsulated by these developers, and you need to use them correctly in your code. You can also seek help from the active user community from an active user community through the mailing list, and discuss various issues. Perhaps one day, you may also become a member of the successful WXWIDGETS development member! WXWIDGETS has received wide support, including AOL (US Online), AMD, Caltech (California Institute of Technology), NASA (National Aviation and Cosmic Navigation Bureau), The Open Source Applications Foundation (Open Source Project Foundation), Xerox (Le " Famous enterprises and institutions such as application.
WXWIDGETS users all areas, from individual software developers to large software companies, from the computer college to medical research institutions, from ecology to the telecommunications industry. It is also applied to countless open source projects, like the Audacity audio editor, PGADMIN III database design management system, etc. There are many reasons for WXWidgets, and some want to find an alternative to MFC, and some want to make their own procedures to be easily transplanted on each platform. WXWidgets also use the mobile platform as a challenge, currently supporting embedded Linux platforms, Microsoft Pocket PCs, and the upcoming support for Palm OS. 1.3 WXWIDGETS History Review WXWIDGETS project began in 1992, at the time, Julian Smart at the University of Edinburgh was developing a chart drawing tool called Hardy. Since this software can only be deployed on a specific platform such as a Sun workstation or a PC, he began to seek a cross-platform solution. However, there were almost no ready-made cross-platform frameworks to choose, and his school did not plan to invest in this framework, so Julian Smart except for himself, there is no way. In September 1992, after he completed WXWIDGETS 1.0, the school agreed that he was uploaded to the school's FTP space for other developers. The wxwidgets at this time are XView and MFC 1.0, so it causes the Borland C users' dissatisfaction, so Julian Smart has rewritten WXWIDGETS for WXWIDGETs for WIN32 platforms with pure Win32. Since XVIEW is quickly replaced by MotiF, WXWIDGTES provides MOTIF support. Soon, WXWidgets created a small community that was full of passionate communities and established a list of mailing, a large number of new code and patch into WXWIDGETS, Markus Holzem also enabled WXWIDGETS to support XT. Users from WXWidgets have gradually increased, including individuals, institutions, and government departments. The most exciting is that a large number of business users think WXWIDGETS is even better than they have seen and used by similar commercial products. By 1997, with the help of Markus Holzem, the new version of WXWIDGETS 2 API came out. At this point, Wolfram Gloger recommends that WXWIDGETS should support GTK , so WXWIDGETS provides a window style that is consistent with the Gnome desktop system. Robert Roebling has become the main developers of WXGTK, while Wxgtk has now become the most important WXWIDGETS framework in UNIX / Linux environment. In 1998, WINDOWS and GTK two categories were combined, and the version control system (CVS), Vadim Zeitlin was added to the development team and contributed a lot of design and code. At the same time, Stefan Csomor began to develop Mac OS classes. In 1999, Vaclav Slavik showed an impressive WXHTML class and HTML-based help browser. In 2000, Scitech launched WXUniversal development efforts, which adopts WXWIDGTES's own window appearance without relying on any particular platform. Subsequent WXWIDGETS was first used by Scitech in the MGL project, which is a bottom image layer. In 2002, Julian Smart and Robert Roebling increased the WXX11 class with WXUniversal Widgets. WXX11 is suitable for any UNIX / X11 environment and can be used by a lower system.
In July 2003, WXWIDGETS started running in the Windows CE platform, while Robert Roebling demonstrates the WXGTK program running on embedded Linux. In 2004, since Microsoft thought "wxwindows" violated his own trademark rights, "wxwigets" became a new name. Also in 2004, Stefan CsoMor and a large group of developers completed amendments to WXMAC to make it developed on Mac OS to have good appearance and performance. Support for Cocoa is also steadily carried out under the leadership of David Elliot. William Osborne completed the initial phase supported by Palm OS, so that the "minimal" program can run on the Palm OS platform. In March 2005, WXWIDGETS2.6 was officially released, including amendment to each category. WXWIDGETS Future Plan: l Create Kit Management Tools to make WXWIDGETS more easily integrated third-party components.
l Improve support for embedded systems
l Provides a variety of event drive mechanisms
l Provide enhanced controls, such as integrating tree controls and list spaces together
l Develop WXHTML 2 so that it has complete web control capabilities on the platform.
l Provides better compatibility to STL
l Palm OS complete support