1 <html xmlns
="http://www.w3.org/1999/xhtml">
3 <meta name
="generator" content
="HTML Tidy for Linux (vers 25 March 2009), see www.w3.org" />
6 <meta http
-equiv
="Content-Type" content
="text/html; charset=us-ascii" />
7 <link href
="title.css" rel
="stylesheet" type
="text/css" />
11 <?php
include("dock.php"); ?
>
12 <?php
include("header.php"); ?
>
15 <table
class="inner" border
="0" cellpadding
="1" cellspacing
="1">
17 <td content
="content" colspan
="2" valign
="top">
21 <h3
>WINGs Is Not GNUstep
</h3
>
23 <p
>While GNUstep is our ideal development framework
, it
's overkill for a window manager like Window Maker. We had a
24 need for a quick, lightweight toolkit to handle basic window manager tasks, which is how WINGs was born, and why it has
25 become an integral part of Window Maker's core
.</p
>
27 <p
>Unlike the general uses of the GNUstep development environment
, the WINGs toolkit was designed
as a specific
28 solution
for Window Maker
. It is not implemented in an
object-oriented language
, but was designed with OO schemas in
29 mind
. It is encapsulated in objects that have various
methods (functions
), which in turn can be accessed like
real
30 objects (i
.e it
's unknown what they contain, and they only have the interface functions to alter their data). As much
31 as C will allow, that is. What really matters is that it's functional
and small enough
for our purposes
.</p
>
33 <p
>Surprisingly
, there have been several developers who think WINGs is mature
and functional enough to write full
34 fledged applications with it
. For developers who are interested in creating
real applications
, we would encourage them
35 to look at GNUstep instead
. GNUstep is written in Objective
-C
, and anyone with a solid C++ background shouldn
't need
36 more than an hour to begin programming in Objective-C. For more information on this, please visit the <a href=
37 "http://www.gnustep.org/developers/documentation.html">GNUstep Developer Documentation</a> section.</p>
39 <p>So, what does WINGs do for us, specifically? It contains many necessary widgets, such as the buttons, file browser,
40 color chooser, and text editor dialog that are all used for creating the UI. It is currently missing a few important
41 items, such as DnD, treeview, and application menus, but those will be integrated in future releases.</p>
43 <p>One of the more important aspects of WINGs is that it now provides proplist functionality. proplist, short for
44 <a href="http://en.wikipedia.org/wiki/Property_list">property list</a>, is what Window Maker uses to generate and
45 maintain structured configuration files. This data is stored as plain ASCII text under a user's ~
/GNUstep directory
.
46 These files are what make up the menus
, the current state
and appearance of the desktop
, the Dock
, the Clip
, and the
47 values set in WPrefs
.</p
>
49 <p
>As an example
, here is a short snippet from the proplist version of the
default menu
:</p
>
55 ("Info Panel", INFO_PANEL
),
57 ("System Console", EXEC
, xconsole
),
58 ("System Load", SHEXEC
, "xosview || xload"),
59 ("Process List", EXEC
, "xterm -e top"),
60 ("Manual Browser", EXEC
, xman
)
62 (Run
..., EXEC
, "%a(Run,Type command to run:)"),
68 <h3
>External sources of information
</h3
>
70 <p
>As this section evolves
, we will be providing more documentation on the internals of WINGs
. For the time being
,
71 developers interested in WINGs should see Alexey Voinov
's <a href=
72 "http://voins.program.ru/windowmaker/wingsman.html">WINGsman documentation project</a>. Starters may find <a href=
73 "http:///www.quantitativefinanceservices.com/OpenDir/WINGslib/WINGToc.html">this tutorial</a>, which includes a library
74 listing based on Voinov's work
, useful
. We
'll try to cover some examples and/or more tutorials on how to program small
75 applications in WINGs in the near future. For anyone already using WINGs for a project, please <a href=
76 "lists.php">contact us</a>, as we'd like to get an idea of its popularity
and practical uses
, as well
as some
77 additional material to place here
.</p
><br
/>
84 <?php
include("footer.php"); ?
>