<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.gnustep.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Martin</id>
	<title>GNUstepWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.gnustep.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Martin"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php/Special:Contributions/Martin"/>
	<updated>2026-04-11T16:25:48Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.7</generator>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=User:Martin&amp;diff=6905</id>
		<title>User:Martin</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=User:Martin&amp;diff=6905"/>
		<updated>2016-11-26T23:15:29Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Building_GNUstep_with_Clang&amp;diff=6904</id>
		<title>Building GNUstep with Clang</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Building_GNUstep_with_Clang&amp;diff=6904"/>
		<updated>2016-11-26T23:15:07Z</updated>

		<summary type="html">&lt;p&gt;Martin: Update link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1) Build using the instructions here: http://clang.llvm.org/get_started.html&lt;br /&gt;
&lt;br /&gt;
2) Once that's done, download the latest version of Hans Boehm's garbage collector here: http://www.hboehm.info/gc/&lt;br /&gt;
&lt;br /&gt;
3) Untar, Build and install boehm-gc.... it should be gc-7.1.tar.gz&lt;br /&gt;
    build it with clang like so:&lt;br /&gt;
              ./configure CC=clang LD=gcc &amp;amp;&amp;amp; make CC=clang LD=gcc&lt;br /&gt;
          make install&lt;br /&gt;
&lt;br /&gt;
4) Build gnustep-make like so and install it:&lt;br /&gt;
&lt;br /&gt;
              ./configure CC=clang LD=gcc &amp;amp;&amp;amp; make CC=clang LD=gcc&lt;br /&gt;
          make install&lt;br /&gt;
&lt;br /&gt;
5) Build libobj2 and install it:&lt;br /&gt;
              make CC=clang CXX=clang++ LD=gcc&lt;br /&gt;
         make install&lt;br /&gt;
              &lt;br /&gt;
5) Build base, gui and back and install them:&lt;br /&gt;
         ./configure CC=clang CXX=clang++ LD=gcc &amp;amp;&amp;amp; make CC=clang CXX=clang++ LD=gcc messages=yes&lt;br /&gt;
         su&lt;br /&gt;
         . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh &amp;amp;&amp;amp; make GNUSTEP_INSTALLATION_DOMAIN=SYSTEM install&lt;br /&gt;
&lt;br /&gt;
That should be all there is too it.  Not much, but a few little details which might serve to make it enough of a pain to discourage some people.&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Unit_Testing&amp;diff=5715</id>
		<title>Unit Testing</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Unit_Testing&amp;diff=5715"/>
		<updated>2009-11-09T19:37:28Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Unit Testing''' is the practice of writing code that tests the code in your application and quickly determines if the code is working properly. The concept of unit testing is implemented in libraries for most modern languages, including Objective-C.&lt;br /&gt;
&lt;br /&gt;
==Common Frameworks==&lt;br /&gt;
There are several unit testing frameworks for Objective-C projects.&lt;br /&gt;
* OCUnit, built in to Apple Xcode and open sourced. Version 27 (pretty old) has been tested with GNUstep&lt;br /&gt;
* UnitKit, common for Mac OS X until OCUnit was built into Xcode. Now ported to Etoile.&lt;br /&gt;
* ObjCUnit, a Mac OS X framework that has been ported to GNUstep.&lt;br /&gt;
* TestKit, an inactive framework&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* Mock objects&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Library_combos&amp;diff=5704</id>
		<title>Library combos</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Library_combos&amp;diff=5704"/>
		<updated>2009-10-22T19:10:46Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Library combos''' are compile-time decisions about which libraries and runtimes to use. Since the only other major libraries are from Apple, this applies only to [[Darwin]] and [[Mac OS X]].&lt;br /&gt;
&lt;br /&gt;
There are three libraries that can be linked to. The [[Objective-C runtime]], the [[Foundation]] implementation, and the [[AppKit]] implementation.&lt;br /&gt;
&lt;br /&gt;
Specifying which libraries to use is done with &amp;lt;code&amp;gt;./configure --with-library-combo=&amp;lt;/code&amp;gt;objcruntime-foundation-applicationkit. Each of the three could have either the value &amp;lt;tt&amp;gt;gnu&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;apple&amp;lt;/tt&amp;gt;, but not all of these are implemented.&lt;br /&gt;
&lt;br /&gt;
The following options are supported:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! Runtime !! Foundation !! AppKit &lt;br /&gt;
|-&lt;br /&gt;
| GNU || GNU || GNU&lt;br /&gt;
|-&lt;br /&gt;
| Apple || GNU || GNU&lt;br /&gt;
|-&lt;br /&gt;
| Apple || Apple || GNU&lt;br /&gt;
|-&lt;br /&gt;
| Apple || Apple || Apple&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Of these, the first and last options are recommended (all GNU or all Apple). The default when building on Darwin and OS X is &amp;lt;tt&amp;gt;apple-apple-apple&amp;lt;/tt&amp;gt;. Even when GNUstep apps use the all Apple option, GNUstep extensions are available to the app.&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Objective-C_runtime&amp;diff=5703</id>
		<title>Objective-C runtime</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Objective-C_runtime&amp;diff=5703"/>
		<updated>2009-10-22T19:09:04Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
The '''Objective-C runtime''' provides C functions and data structures required to execute an Objective C program. It is low-level code that makes your applications work. Every Objective-C program links to the runtime, and the runtime manages objects, looks up methods, and implements the features of Objective-C.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The first Objective-C runtime was created by [[NeXT]] in the 1980s for their implementation of Obj-C and NeXTSTEP. The GNU project re-wrote it in 1992. This runtime was significantly modified in 1993 by Kresten Krab Thorup. Since then, there have been two runtimes evolving in parallel.&lt;br /&gt;
&lt;br /&gt;
When Jobs returned to Apple, he brought with him NeXTSTEP's code. The Obj-C runtime used in Apple's [[Mac OS X]] is inherited from NeXT. Apple has made many changes to it. The biggest change Apple has made is supporting [[Objective-C 2.0]].&lt;br /&gt;
&lt;br /&gt;
The [[Etoile]] project maintained its own extension to the GNU runtime for a few years. This updated runtime added support for many of the features that Apple added. However, David Chisnall added all the features from the Etoile runtime into a framework that runs on top of the GNU runtime. This framework, &amp;lt;tt&amp;gt;ObjectiveC2.framework&amp;lt;/tt&amp;gt; obsoletes the Etoile runtime and makes it easier for regular GNUstep applications to use.&amp;lt;ref&amp;gt;[http://etoileos.com/news/archive/2009/09/10/1744/ The Étoilé Runtime is dead, long live the GNUstep runtime!]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Choosing a runtime==&lt;br /&gt;
* The GNU runtime supports everything needed by traditional Objective-C applications. Apple calls this Objective-C 1.0. Nothing special needs to be done for a GNUstep application to use this runtime.&lt;br /&gt;
* The Apple runtime from 10.0 to 10.4 is another runtime that supports Obj-C 1. Because this runtime is different from the GNUstep runtime, applications from Mac OS X will have to be re-compiled to run on GNUstep (they are not binary-compatible).&lt;br /&gt;
* In Mac OS X 10.5 Apple introduced many new features to the runtime under the name Objective-C 2.0. None of these features were added to the GNUstep runtime.&lt;br /&gt;
* The Etoile runtime added most of the features that Apple announced in Objective-C 2.0, but it was not possible for ordinary GNUstep applications to use. The Etoile runtime has been superseded by the ObjectiveC2 framework.&lt;br /&gt;
* The ObjectiveC2 framework relies on the GNU runtime for most features, yet adds new features on top. It is possible for ordinary GNUstep applications to link to this framework and get the benefits of Objective-C 2.0.&lt;br /&gt;
&lt;br /&gt;
Of course, the Apple runtime is only available on Apple operating systems ([[Darwin]] and [[Mac OS X]]).&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Objective-C_runtime&amp;diff=5702</id>
		<title>Objective-C runtime</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Objective-C_runtime&amp;diff=5702"/>
		<updated>2009-10-22T19:06:21Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
The '''Objective-C runtime''' provides C functions and data structures required to execute an Objective C program. It is low-level code that makes your applications work. Every Objective-C program links to the runtime, and the runtime manages objects, looks up methods, and implements the features of Objective-C.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The first Objective-C runtime was created by [[NeXT]] in the 1980s for their implementation of Obj-C and NeXTSTEP. The GNU project re-wrote it in 1992. This runtime was significantly modified in 1993 by Kresten Krab Thorup. Since then, there have been two runtimes evolving in parallel.&lt;br /&gt;
&lt;br /&gt;
When Jobs returned to Apple, he brought with him NeXTSTEP's code. The Obj-C runtime used in Apple's [[Mac OS X]] is inherited from NeXT. Apple has made many changes to it. The biggest change Apple has made is supporting [[Objective-C 2.0]].&lt;br /&gt;
&lt;br /&gt;
The [[Etoile]] project maintained its own extension to the GNU runtime for a few years. This updated runtime added support for many of the features that Apple added. However, David Chisnall added all the features from the Etoile runtime into a framework that runs on top of the GNU runtime. This framework, &amp;lt;tt&amp;gt;ObjectiveC2.framework&amp;lt;/tt&amp;gt; obsoletes the Etoile runtime and makes it easier for regular GNUstep applications to use.&lt;br /&gt;
&lt;br /&gt;
==Choosing a runtime==&lt;br /&gt;
* The GNU runtime supports everything needed by traditional Objective-C applications. Apple calls this Objective-C 1.0. Nothing special needs to be done for a GNUstep application to use this runtime.&lt;br /&gt;
* The Apple runtime from 10.0 to 10.4 is another runtime that supports Obj-C 1. Because this runtime is different from the GNUstep runtime, applications from Mac OS X will have to be re-compiled to run on GNUstep (they are not binary-compatible).&lt;br /&gt;
* In Mac OS X 10.5 Apple introduced many new features to the runtime under the name Objective-C 2.0. None of these features were added to the GNUstep runtime.&lt;br /&gt;
* The Etoile runtime added most of the features that Apple announced in Objective-C 2.0, but it was not possible for ordinary GNUstep applications to use. The Etoile runtime has been superseded by the ObjectiveC2 framework.&lt;br /&gt;
* The ObjectiveC2 framework relies on the GNU runtime for most features, yet adds new features on top. It is possible for ordinary GNUstep applications to link to this framework and get the benefits of Objective-C 2.0.&lt;br /&gt;
&lt;br /&gt;
Of course, the Apple runtime is only available on Apple operating systems ([[Darwin]] and [[Mac OS X]]).&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Objective-C_runtime&amp;diff=5701</id>
		<title>Objective-C runtime</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Objective-C_runtime&amp;diff=5701"/>
		<updated>2009-10-22T18:52:38Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
The '''Objective-C runtime''' provides C functions and data structures required to execute an Objective C program. It is low-level code that makes your applications work. Every Objective-C program links to the runtime, and the runtime manages objects, looks up methods, and implements the features of Objective-C.&lt;br /&gt;
&lt;br /&gt;
=History=&lt;br /&gt;
The first Objective-C runtime was created by [[NeXT]] in the 1980s for their implementation of Obj-C and NeXTSTEP. The GNU project started to re-write it in 1992. This runtime was significantly modified in 1993 by Kresten Krab Thorup. Since then, there have been two runtimes evolving in parallel.&lt;br /&gt;
&lt;br /&gt;
When Jobs returned to Apple, he brought with him NeXTSTEP's code. The Obj-C runtime used in Apple's [[Mac OS X]] is inherited from NeXT. Apple has made many changes to it. The biggest change Apple has made is supporting [[Objective-C 2.0]].&lt;br /&gt;
&lt;br /&gt;
The [[Etoile]] project maintained its own extension to the GNU runtime for a few years. This updated runtime added support for many of the features that Apple added. However, David Chisnall added all the features from the Etoile runtime into a framework that runs on top of the GNU runtime. This framework, &amp;lt;tt&amp;gt;ObjectiveC2.framework&amp;lt;/tt&amp;gt; obsoletes the Etoile runtime and makes it easier for regular GNUstep applications to use.&lt;br /&gt;
&lt;br /&gt;
= Choosing a runtime =&lt;br /&gt;
The GNU runtime supports everything needed by traditional Objective-C applications. Apple calls this Objective-C 1.0.&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Developer_FAQ&amp;diff=5700</id>
		<title>Developer FAQ</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Developer_FAQ&amp;diff=5700"/>
		<updated>2009-10-22T18:45:27Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* GNU Objective C Compiler and Runtime */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:FAQ]]&lt;br /&gt;
&lt;br /&gt;
Please send corrections to gnustep-maintainer@gnu.org. Also look at the [[User FAQ]] for more user oriented questions.&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Is it easy to port OPENSTEP programs to GNUstep? ===&lt;br /&gt;
&lt;br /&gt;
It is probably easy for simple programs. There are some portability tools to make this easier, or rewrite the Makefiles yourself. You will also have to translate the NIB files (if there are any) to GNUstep model files using the nib2gmodel program. See the [[Writing portable code#Porting_from_Cocoa_or_OPENSTEP_.28NS.2A.29_to_GNUstep|portability]] page for details.&lt;br /&gt;
&lt;br /&gt;
=== How about porting between Cocoa and GNUstep? ===&lt;br /&gt;
&lt;br /&gt;
It's easier from GNUstep to Cocoa than Cocoa to GNUstep. Cocoa is constantly changing, much faster than GNUstep could hope to keep up. They have added extensions and new classes that aren't available in GNUstep yet. Plus there are some other issues. See the [[Writing portable code#Porting_from_Cocoa_or_OPENSTEP_.28NS.2A.29_to_GNUstep|portability]] page for details.&lt;br /&gt;
&lt;br /&gt;
=== Tools for porting ===&lt;br /&gt;
&lt;br /&gt;
While the programming interface should be almost transparent between systems (expect for the unimplemented parts, of course), there are a variety of other files and tools that are necessary for porting programs.&lt;br /&gt;
&lt;br /&gt;
* '''nib2gmodel:''' This program coverts nib files from any system, such as Cocoa or OPENSTEP to a gmodel format file. Gmodel can be read directly by GNUstep or you can convert this to a more GNUstep-native gorm format (using the Gorm interface modeller).&lt;br /&gt;
* '''Renaissance:''' GNUstep Renaissance allows you to describe your user interfaces (that is, the windows in your application, and the buttons, boxes, textfields, etc in the windows) in simple and intuitive XML files, using an open, standard format describing the logic of the interface. It has a number of advantages over the proprietary nib format: portability, open standard, easy localization, themeability, and intelligent autolayout.&lt;br /&gt;
* '''[[Gorm]]:''' The equivalent of the Interface Builder in GNUstep. As of version 1.1.0 Gorm allows reading and writing of Mac OS 10.2 or later Cocoa NIB files.  Please see http://lists.gnu.org/archive/html/discuss-gnustep/2006-09/msg00008.html.&lt;br /&gt;
* '''OpenStep2GNUConverter and nfmake:''' Two programs that allow you to convert PB files to GNUstep makefiles or compile a program on GNUstep directly from PB files. They probably work only for OPENSTEP systems and are a little out-of-date.&lt;br /&gt;
* '''StepTalk:''' A portable scripting environment that lets your do scripting in almost any language you like.&lt;br /&gt;
&lt;br /&gt;
=== Can I transfer archived data from GNUstep to Cocoa? ===&lt;br /&gt;
&lt;br /&gt;
Apple's archiving format is proprietary and not documented, so this poses a problem for anyone wanting to implement compatibility with it. However, even if we reverse engineered the format, there are enough differences between the class and ivar layouts to make this sort of compatibility difficult. Not to mention the fact that we would constantly have to keep up with the changes Apple made. Also Apple's archiving format, as far as we know, would not be compatible between different machines because of endiness issues, although GNUstep doesn't have this problem.&lt;br /&gt;
&lt;br /&gt;
The new keyed archiving using XML file formats is much more portable, and GNUstep is trying to maintain compatibility with Apple for this type of archiving.&lt;br /&gt;
&lt;br /&gt;
=== Does distributed objects work between GNUstep and Cocoa? ===&lt;br /&gt;
&lt;br /&gt;
See the answer to the previous question (on archive compatibility) for why this won't work either.&lt;br /&gt;
&lt;br /&gt;
=== Is there an Interface Builder for GNUstep? ===&lt;br /&gt;
&lt;br /&gt;
There is an Interface Builder for GNUstep called [[Gorm]]. A lot of work has been put into it and it works very well. The project manager [[ProjectCenter]] is also available. There is also [[ProjectManager]].&lt;br /&gt;
&lt;br /&gt;
=== Can I use my original NIB files? ===&lt;br /&gt;
It is currently possible to use newer keyed archiving files which were created on Mac OS 10.2 or later.  &lt;br /&gt;
&lt;br /&gt;
Older nibs, such as those from Mac OS 10.1 or from OPENSTEP which don't use keyed archiving aren't readable since Apple/NeXT never documented their nib format.  These nibs must be translated into keyed nibs for use with GNUstep, if you have Mac OS 10.2 or later this is a simple matter of loading them into IB and saving them as keyed nibs.  Alternatively, if you only have OPENSTEP you can use nib2gmodel to translate them into gmodel format.&lt;br /&gt;
&lt;br /&gt;
=== Can one use the hybrid &amp;quot;Objective-C++&amp;quot; ? ===&lt;br /&gt;
&lt;br /&gt;
Yes.  As of release 4.1 the GNU C Compiler (GCC) supports &amp;quot;Objective-C++&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Is there a plan to support the Java/YellowBox Bindings? ===&lt;br /&gt;
&lt;br /&gt;
Yes. The GNustep Java library/bridge called JIGS is available now. JIGS is a free (LGPL) Java Interface for GNUstep; it can automatically wrap Objective-C libraries based on GNUstep, making them accessible directly to the Java programmer as if they were Java libraries. As a side effect, it is also possible to use the whole engine in the reverse way: JIGS provides a high level API to allow Objective-C programmers to start java virtual machines inside GNUstep Objective-C code and access java objects in the java virtual machine transparently, as if they were objective-C objects. &lt;br /&gt;
&lt;br /&gt;
=== What if I compile GNUstep under OPENSTEP/MacOS X? ===&lt;br /&gt;
&lt;br /&gt;
GNUstep uses the X-windows display postscript extension. The interface to that is not the same as the interface to the OPENSTEP/MacOS-X windows server. While someone could write a backend library to provide the interface, nobody has bothered to date.&lt;br /&gt;
&lt;br /&gt;
You can, however, use a GNUstep program with an X11 server running on MacOSX.&lt;br /&gt;
&lt;br /&gt;
=== Is the Objective C API for GTK related? ===&lt;br /&gt;
&lt;br /&gt;
No. GNUstep applications provide their GUI via the OpenStep API, which provides fully object-oriented access to GUI manipulation.&lt;br /&gt;
&lt;br /&gt;
The object-oriented nature of the libraries and language make it much easier for new users to create their own subclasses rather than simply using the supplied widgets as in other frameworks. &lt;br /&gt;
&lt;br /&gt;
=== How about implementing parts of the Application Kit with GTK? ===&lt;br /&gt;
&lt;br /&gt;
Yes and No - The GNUstep architecture provides a single, platform-independent, API for handling all aspects of GUI interaction (implemented in the gstep-gui library), with a backend architecture that permits you to have different display models (display postscript, X-windows, win32, berlin ...) while letting you use the same code for printing as for displaying. Use of GTK in the frontend gui library would remove some of those advantages without adding any.&lt;br /&gt;
&lt;br /&gt;
That being said, a backend library could be implemented using gtk if anyone wanted to do so. Since the frontend library handles most of the work involved in implementing the OpenStep API, the backend is a relatively thin layer and the advantages of GTK over direct xlib or win32 calls is likely to be minimal. If/when GTK is ported to more systems, a backend written using it could be a valuable asset - volunteers are, as always, welcome. &lt;br /&gt;
&lt;br /&gt;
== Compiling and Developing ==&lt;br /&gt;
&lt;br /&gt;
=== How can I get started programming? ===&lt;br /&gt;
Good question.  Please refer to the tutorials for some suggestions.  Also look at Apple's documentation (pointers in the Resources section on the GNUstep web site.)&lt;br /&gt;
&lt;br /&gt;
=== Why doesn't GDB support Objective-C? ===&lt;br /&gt;
As of GDB 6.0, gdb supports debugging of Objective-C code.&lt;br /&gt;
&lt;br /&gt;
== How can I help with GNUstep? ==&lt;br /&gt;
&lt;br /&gt;
The first task is probably just to get familiar with it, then there's a lot you can do. Write library code or applications to get a feel for it. See the [[GNUstepWiki:Community_Portal|community portal]] for an overview of what a GNUstep developer should know.&lt;br /&gt;
&lt;br /&gt;
Another simple way to get familiar with GNUstep is to help write documentation. A lot of documentation is written in the source code itself, and autogenerated. You could also improve on several of the manuals that explain the overall usage of GNUstep. &lt;br /&gt;
&lt;br /&gt;
Here are the next steps: &lt;br /&gt;
* Start off by fixing [http://savannah.gnu.org/bugs/?group_id=99 bugs]&lt;br /&gt;
* Look at the [[#How_do_I_update_the_task_list.3F|list of tasks]] for longer term work and check [[Ideas]] for other ideas.&lt;br /&gt;
* For a bigger challenge, finish off part of the [[Roadmap]]&lt;br /&gt;
&lt;br /&gt;
=== How do I start writing applications? ===&lt;br /&gt;
&lt;br /&gt;
You can either look at the links on the GNUstep website for applications that have been started, and email their owners to volunteer to help, or you can start your own project.&lt;br /&gt;
&lt;br /&gt;
Let people know what you are doing. Break your project up into the smallest units you can. Feed back frequent updates to the maintainers. Ask questions in the discussion mailing list.&lt;br /&gt;
&lt;br /&gt;
=== Helping develop GNUstep === &lt;br /&gt;
&lt;br /&gt;
There is plenty of unimplemented stuff in the gui library and backend libraries that volunteers can work on, just browse through the code and see if it conforms to the documentation.&lt;br /&gt;
&lt;br /&gt;
Do remember that any changes beyond a few lines of code (or documentation) require a disclaimer or copyright assignment to the Free Software Foundation before they can be incorporated into the project. [[#How_do_I_assign_my_contribution.3F|See below]].&lt;br /&gt;
&lt;br /&gt;
Don't start with large-scale reorganization of anything -- instead, get a general idea in mind of what you want to do, and proceed as much as possible with incremental changes that don't break anything - that way you can make those incremental changes available to the rest of the community at frequent intervals.&lt;br /&gt;
&lt;br /&gt;
Don't be afraid to give up - there is no shame in finding out that you have take on too large/complex a project. It's much better to 'resign' and take on a smaller job than to just stop without telling anyone.&lt;br /&gt;
&lt;br /&gt;
Please document the code you add or change (using autogsdoc comments that begin with a slash and two asterices) and maybe write a testcase for it. But PLEASE, do not copy from the Apple documentation or any other copyrighted documentation. &lt;br /&gt;
&lt;br /&gt;
Specific tasks are noted in the developers section on the GNUstep website.&lt;br /&gt;
&lt;br /&gt;
=== Helping document GNUstep ===&lt;br /&gt;
&lt;br /&gt;
All class documentation is written directly in the source code itself and translated using the autogsdoc program. See the source code and documentation for autogsdoc for information on documenting the classes.&lt;br /&gt;
&lt;br /&gt;
Newcomers could write documentation for individual classes by comparing the OpenStep specification, the MacOS-X documentation, and the GNUstep source. Documentation should clearly note where individual methods are specific to OpenStep, MacOS-X or are GNustep extensions.&lt;br /&gt;
&lt;br /&gt;
More experienced people could write documentation on general programming topics, and tutorials for new users. Contributors to the wiki are welcome!&lt;br /&gt;
&lt;br /&gt;
Anyone willing to write documentation, either tutorials for using GNUstep, or reference documentation for individual classes, should either write it in gsdoc or as plain ascii text for someone else to format into gsdoc.&lt;br /&gt;
&lt;br /&gt;
GNUstep documentation should have copyright assigned to the Free Software Foundation.&lt;br /&gt;
&lt;br /&gt;
=== How do I assign my contribution? ===&lt;br /&gt;
&lt;br /&gt;
Everyone who contributes more than 20 lines of code or so needs to sign a copyright assignment so that the FSF can have legal control of the copyright. This makes it easier to defend against any copyright infringement suits. Contact the GNUstep maintainer for instructions on how to do this or download and fill out the form http://www.gnustep.org/resources/request-assign.future (instructions are included).&lt;br /&gt;
&lt;br /&gt;
=== How do I update the task list? ===&lt;br /&gt;
&lt;br /&gt;
The [http://savannah.gnu.org/pm/?group_id=99 task list] is supposed to tell people what jobs are waiting to be done. Feel free to add to it or update the tasks that are there (you need to create a login for yourself first).&lt;br /&gt;
&lt;br /&gt;
One job of major importance that pretty much anyone can do is to look for jobs to add to the task list. In the case of methods from the OpenStep specification or the MacOS-X documentation not being present in the GNUstep libraries, it is also helpful to add the method prototypes to the library header files.&lt;br /&gt;
&lt;br /&gt;
Send any changes or additions to bug-gnustep@gnu.org.&lt;br /&gt;
&lt;br /&gt;
A beginner can look through the MacOS-X documentation, the OpenStep specification and the GNUstep source and contribute task items.&lt;br /&gt;
&lt;br /&gt;
If a class or method is&lt;br /&gt;
&lt;br /&gt;
* in MacOS-X and OpenStep but is not in GNUstep, it's a high priority TODO and should at least be added to the GNUstep headers and a dummy version added to the source with a FIXME comment.&lt;br /&gt;
* in MacOS-X but not OpenStep or GNUstep, it's a low priority TODO. It should be added to the GNUstep headers bracketed in #ifndef STRICT_OPENSTEP&lt;br /&gt;
* in OpenStep but not in MacOS-X or GNUstep, it's a low priority TODO. It should be added to the GNUstep headers bracketed in #ifndef STRICT_MACOS_X&lt;br /&gt;
&lt;br /&gt;
There are a couple of people working on this already, so it's a good idea to get in touch with Adam or Richard to coordinate efforts.&lt;br /&gt;
&lt;br /&gt;
=== How do I start writing tests? ===&lt;br /&gt;
&lt;br /&gt;
You can write testcases - where the libraries fail tests, you could either fix the problem, or add it to the task list.&lt;br /&gt;
&lt;br /&gt;
To write testcases, you need to use svn to install the latest GNUstep sourcecode you can find. Then checkout the 'gnustep/tools/testsuite' module from svn.&lt;br /&gt;
&lt;br /&gt;
=== How can I help with the GNUstep website? ===&lt;br /&gt;
&lt;br /&gt;
'''Please consider contributing to this Wiki as opposed to the website.'''&lt;br /&gt;
Contact Adam Fedor fedor@gnu.org, the maintainer.&lt;br /&gt;
&lt;br /&gt;
The GNUstep website is kept as a CVS module, but the largest portions of it (the FAQ and the Documentation) are actually generated from files in the individual GNUstep packages.&lt;br /&gt;
&lt;br /&gt;
If you want to update the FAQ or documentation - grab the latest snapshot of the GNUstep core you can find, update it from the svn repository, and work with the contents of the appropriate documentation directory.&lt;br /&gt;
&lt;br /&gt;
If you want to work on other parts of the website, you can grab a copy of the website via anonymous CVS. See http://savannah.gnu.org/cvs/?group_id=99 for instructions on how to do that.&lt;br /&gt;
&lt;br /&gt;
The main task with the website is to figure out which bits are out-of-date (or wrong) and update/mark-as-outdated as required.&lt;br /&gt;
&lt;br /&gt;
=== How can I take part with a GNUstep autobuilder for the testfarm? ===&lt;br /&gt;
* General Procedure&lt;br /&gt;
** Make sure your build system  have a gcc compiler with objc support.&lt;br /&gt;
*** run &amp;quot;gcc -v&amp;quot; to see if obc is on the list of --enable-language option&lt;br /&gt;
** (Preferred Option): Get the source code via SVN:&lt;br /&gt;
*** svn co http://svn.gna.org/svn/gnustep/autotest gnustep-testfarm&lt;br /&gt;
** (Alternate Option): ...Or download the source code and test files&lt;br /&gt;
*** mkdir gnustep-testfarm &amp;amp;&amp;amp; cd gnustep-testfarm&lt;br /&gt;
*** wget http://ftp.gnustep.org/pub/daily-snapshots/startup.current.tar.bz2&lt;br /&gt;
*** wget http://ftp.gnustep.org/pub/daily-snapshots/core.current.tar.bz2&lt;br /&gt;
*** wget http://ftp.gnustep.org/pub/daily-snapshots/tests.current.tar.bz2&lt;br /&gt;
*** tar xjf startup.current.tar.bz2 ; tar xjf core.current.tar.bz2; tar xjf tests.current.tar.bz2&lt;br /&gt;
** cd startup/scripts&lt;br /&gt;
** ./test-gnustep&lt;br /&gt;
&lt;br /&gt;
The results get posted to http://www.gnustep.org/developers/testfarm.html &lt;br /&gt;
The test script will automatically update using SVN if possible.&lt;br /&gt;
&lt;br /&gt;
== GNU Objective C Compiler and Runtime ==&lt;br /&gt;
&lt;br /&gt;
=== What is the Objective C Runtime? ===&lt;br /&gt;
&lt;br /&gt;
The [[Objective-C runtime]] Library provides C functions and data structures required to execute an Objective C program.&lt;br /&gt;
&lt;br /&gt;
The GNU Objective C Runtime Library offers everything NeXT's runtime does, including Categories, Protocols, `+poseAs:', thread-safety, class initialization on demand, delayed loading of classes, and initialization of static instances (such as @&amp;quot;&amp;quot;-style string objects).&lt;br /&gt;
&lt;br /&gt;
It also has several differences over NeXT's implementation:&lt;br /&gt;
&lt;br /&gt;
* GNU's runtime provides &amp;quot;selector-types&amp;quot; along with each selector; NeXT's does not. A selector-type is a string that describes the C variable types for the method's return and argument values. Among other uses, selector-types is extremely helpful for fast distributed objects implementations, (see GNUstep Base Library Section, below).&lt;br /&gt;
&lt;br /&gt;
* Many of the GNU functions have different names than their corresponding NeXT functions; the GNU names conform to the GNU coding standards. The GNUstep base library contains a compatibility header that works with both runtimes. You should use functions there or use OpenStep Foundation methods/functions instead of the basic runtime functions so that you code can run with either system.&lt;br /&gt;
&lt;br /&gt;
Apple has recently added new functionality to their runtime, including built-in exception handling, etc. Hopefully these will be ported to the GNU runtime in the future.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Where can I get a gcc compiler with Objective C support? ===&lt;br /&gt;
*TBA.&lt;br /&gt;
=== How I can compile my own gcc compiler with objective-C support ? ===&lt;br /&gt;
* TBA.&lt;br /&gt;
=== How I check if my gcc compiler has good objective C environment ? ===&lt;br /&gt;
* TBA.&lt;br /&gt;
&lt;br /&gt;
== GNUstep Base Library ==&lt;br /&gt;
&lt;br /&gt;
=== What is the GNUstep Base Library? ===&lt;br /&gt;
&lt;br /&gt;
The GNUstep Base Library is a library of general-purpose, non-graphical Objective C objects. For example, it includes classes for strings, object collections, byte streams, typed coders, invocations, notifications, notification dispatchers, moments in time, network ports, remote object messaging support (distributed objects), event loops etc.&lt;br /&gt;
&lt;br /&gt;
It provides functionality that aims to implement the non-graphical portion of the OpenStep standard (the Foundation library).&lt;br /&gt;
&lt;br /&gt;
=== What is its current state of development? ===&lt;br /&gt;
&lt;br /&gt;
GNUstep base is currently stable and, to the best of our knowledge, implements all of the OpenStep functionality (except for a few classes that we feel are not useful). It also implements most all of the new Cocoa classes. However we do some things, like scripting, differently, so we don't implement all the Cocoa classes.&lt;br /&gt;
&lt;br /&gt;
=== What are the features of GNU Distributed Objects? ===&lt;br /&gt;
&lt;br /&gt;
GNU Distributed Objects has many of the features of other distributed objects implementations, but, since it is free software, it can be ported to platforms for which other distributed objects implementations are not available.&lt;br /&gt;
&lt;br /&gt;
NOTE: The GNU distributed object facilities have the same ease-of-use as Apple's; be warned, however, that they are not compatible with each other. They have different class hierarchies, different instance variables, different method names, different implementation strategies and different network message formats. You cannot communicate with a Apple NSConnection using a GNU NSConnection.&lt;br /&gt;
Here are some differences between GNU distributed objects and Apple's distributed objects: Apple NSDistantObject asks it's remote target for the method encoding types and caches the results; GNU NSDistantObject gets the types directly from the local GNU &amp;quot;typed selector&amp;quot; mechanism if the information is known locally and only queries the remote target or caching encoding types when using a method that is not known to the local process. The NSProxy for the remote root object always has name and, once set, you cannot change the root object of a NSConnection; the GNU Proxy for the remote root object has a target address value just like all other Proxy's, and you can change the root object as many times as you like. &lt;br /&gt;
&lt;br /&gt;
== GNUstep GUI Library ==&lt;br /&gt;
&lt;br /&gt;
=== What is the GUI Library? ===&lt;br /&gt;
&lt;br /&gt;
The GNUstep GUI Library is a library of objects useful for writing graphical applications. For example, it includes classes for drawing and manipulating graphics objects on the screen: windows, menus, buttons, sliders, text fields, and events. There are also many peripheral classes that offer operating-system-independent interfaces to images, cursors, colors, fonts, pasteboards, printing. There are also workspace support classes such as data links, open/save panels, context-dependent help, spell checking.&lt;br /&gt;
&lt;br /&gt;
It provides functionality that aims to implement the `AppKit' portion of the OpenStep standard. However the implementation has been written to take advantage of GNUstep enhancements wherever possible.&lt;br /&gt;
&lt;br /&gt;
=== Explain the organization of the front- and back-ends ===&lt;br /&gt;
&lt;br /&gt;
The GNUstep GUI Library is divided into a front- and back-end. The front-end contains the majority of implementation, but leaves out the low-level drawing and event code. A back-end can override whatever methods necessary in order to implement low-level drawing event receiving. Different back-ends will make GNUstep available on various platforms. The default GNU back-end will run on top of X-Window. Other back-ends could allow GNUstep to run on OpenGL and WIN32 graphics/event platforms. Much work will be saved by this clean separation between front- and back-end, because it allows different platforms to share the large amount of front-end code.&lt;br /&gt;
&lt;br /&gt;
=== What is the current state of development of the front-end? ===&lt;br /&gt;
Many of the classes are well implemented, if not thoroughly tested. See the GNUstep web sites and read status information contained in the distribution for the most up-to-date information.&lt;br /&gt;
&lt;br /&gt;
=== What is the current state of development of the back-ends? ===&lt;br /&gt;
&lt;br /&gt;
There are several backends currently available:&lt;br /&gt;
&lt;br /&gt;
* '''xlib:''' This backend runs on X11 and uses standard xlib calls for implementing drawing. It works well, but is limited in many areas due to the limitations of xlib drawing. &lt;br /&gt;
* '''art:''' This is a very good backend that draws using the libart package and freetype with near PostScript quality and functionality. It is currently the standard backend (as long as the required libraries are installed). &lt;br /&gt;
* '''w32:''' This backend works on Windows and uses basic Windows drawing &lt;br /&gt;
* '''cairo:''' An up-and-coming backend. It still relies on unpublished functions in the cairo library so using it is not for the beginner. &lt;br /&gt;
&lt;br /&gt;
== GNUstep DisplayGhostScript Server ==&lt;br /&gt;
&lt;br /&gt;
=== What is the Display Ghostscript Server? ===&lt;br /&gt;
&lt;br /&gt;
It is a free implementation of a Display PostScript server based on the GNU Ghostscript program developed by Aladdin Enterprises and now owned by artofcode LLC.&lt;br /&gt;
&lt;br /&gt;
At one point, GNUstep was using this for display purposes. However the development of DGS has stopped as it is too difficult to maintain and no one wanted to work on it. Now we are using other means of drawing.&lt;br /&gt;
&lt;br /&gt;
=== What is its current state of development? ===&lt;br /&gt;
&lt;br /&gt;
GNU contracted with Aladdin Enterprises to add some key features to GNU Ghostscript so it could be used as a DPS server. This work has mostly been done, although Aladdin did not completely finish the work that they were contracted for. (Because the work took longer than specified and was not completed, Aladdin agreed to waive approximately $10,000 in promised fees for the work that was actually done and delivered.) DGS works fairly well with a single context. Alpha channel and compositing doesn't work.&lt;br /&gt;
&lt;br /&gt;
Further development on DGS has been abandoned in favor of libraries such as Cairo and libart.&lt;br /&gt;
&lt;br /&gt;
=== What is the relationship between the Display Ghostscript Server and X-Window? ===&lt;br /&gt;
&lt;br /&gt;
Display Ghostscript runs on top of X-Window.&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Objective-C_runtime&amp;diff=5699</id>
		<title>Objective-C runtime</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Objective-C_runtime&amp;diff=5699"/>
		<updated>2009-10-22T18:42:24Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
The '''Objective-C runtime''' provides C functions and data structures required to execute an Objective C program. It is low-level code that makes your applications work. Every Objective-C program links to the runtime, and the runtime manages objects, looks up methods, and implements the features of Objective-C.&lt;br /&gt;
=History=&lt;br /&gt;
The first Objective-C runtime was created by [[NeXT]] in the 1980s for their implementation of Obj-C and NeXTSTEP. The GNU project started to re-write it in 1992. This runtime was significantly modified in 1993 by Kresten Krab Thorup. Since then, there have been two runtimes evolving in parallel.&lt;br /&gt;
&lt;br /&gt;
When Jobs returned to Apple, he brought with him NeXTSTEP's code. The Obj-C runtime used in Apple's [[Mac OS X]] is inherited from NeXT. Apple has made many changes to it.&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Objective-C_runtime&amp;diff=5698</id>
		<title>Objective-C runtime</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Objective-C_runtime&amp;diff=5698"/>
		<updated>2009-10-22T18:41:22Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
The '''Objective-C runtime''' provides C functions and data structures required to execute an Objective C program.. It is low-level code that makes your applications work. Every Objective-C program links to the runtime, and the runtime manages objects, looks up methods, and implements the features of Objective-C.&lt;br /&gt;
=History=&lt;br /&gt;
The first Objective-C runtime was created by [[NeXT]] in the 1980s for their implementation of Obj-C and NeXTSTEP. The GNU project started to re-write it in 1992. This runtime was significantly modified in 1993 by Kresten Krab Thorup. Since then, there have been two runtimes evolving in parallel.&lt;br /&gt;
&lt;br /&gt;
When Jobs returned to Apple, he brought with him NeXTSTEP's code. The Obj-C runtime used in Apple's [[Mac OS X]] is inherited from NeXT. Apple has made many changes to it.&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Library_combos&amp;diff=5697</id>
		<title>Library combos</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Library_combos&amp;diff=5697"/>
		<updated>2009-10-22T18:36:37Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Library combos''' are compile-time decisions about which libraries and runtimes to use. Since the only other major libraries are from Apple, this applies only to [[Darwin]] and [[Mac OS X]].&lt;br /&gt;
&lt;br /&gt;
There are three libraries that can be linked to. The [[Objective-C runtime]], the [[Foundation]] implementation, and the [[AppKit]] implementation.&lt;br /&gt;
&lt;br /&gt;
Specifying which libraries to use is done with &amp;lt;code&amp;gt;./configure --with-library-combo=&amp;lt;/code&amp;gt;objcruntime-foundation-applicationkit. Each of the three could have either the value &amp;lt;tt&amp;gt;gnu&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;apple&amp;lt;/tt&amp;gt;, but not all of these are implemented.&lt;br /&gt;
&lt;br /&gt;
The following options are supported:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! Runtime !! Foundation !! AppKit &lt;br /&gt;
|-&lt;br /&gt;
| GNU || GNU || GNU&lt;br /&gt;
|-&lt;br /&gt;
| Apple || GNU || GNU&lt;br /&gt;
|-&lt;br /&gt;
| Apple || Apple || GNU&lt;br /&gt;
|-&lt;br /&gt;
| Apple || Apple || Apple&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Of these, the first and last options are recommended (all GNU or all Apple). The default when building on Darwin and OS X is &amp;lt;tt&amp;gt;apple-apple-apple&amp;lt;/tt&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Platform_compatibility&amp;diff=5696</id>
		<title>Platform compatibility</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Platform_compatibility&amp;diff=5696"/>
		<updated>2009-10-22T18:27:04Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* Darwin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
Following are procedures for installing GNUstep on different Operating Systems.&lt;br /&gt;
* You may also want to take a look at the [[dependencies]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= BSD-based systems =&lt;br /&gt;
To keep this list as brief as possible, information about these systems can [[Platform:BSD|be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= HP/UX  =&lt;br /&gt;
* GNUstep-core-1.0, please see http://en.wikibooks.org/wiki/CPAM_with_TWW/References_Manual#GNUstep_and_CPAM. look for the gnustep-core-1.0.sb and gnustep-core-1.0.pb file for building and packaging information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Linux-based systems =&lt;br /&gt;
To keep this list as brief as possible, information about these systems can [[Platform:Linux|be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Solaris =&lt;br /&gt;
Take a look at the required and recommended [[dependencies]]. Most of these can be found at [http://www.blastwave.org/ BlastWave] (which I personally recommend) or [http://www.sunfreeware.com/ Sun Freeware].&lt;br /&gt;
The notable exception are [http://www.haible.de/bruno/packages-ffcall.html ffcall]/[http://sources.redhat.com/libffi/ libffi], [http://www.apple.com/macosx/features/bonjour/ Bonjour] and [http://www.portaudio.com/ portaudio] (as of 2008-05-23).&lt;br /&gt;
&lt;br /&gt;
If you plan on compiling those from source, make sure to enable the creation of SHARED libraries. ''Bonjour'' and ''ffcall'' compile right out of the box. For ''portaudio'' to compile, you will need to grab a daily-snapshot and you need to install [http://www.blastwave.org/packages.php/osndsys Open Sound System headers].&lt;br /&gt;
&lt;br /&gt;
Then, if you follow the installation instructions for GNUstep, you should not run into any problems.&lt;br /&gt;
&lt;br /&gt;
=== Intel ===&lt;br /&gt;
&lt;br /&gt;
''Intentionally left blank''.&lt;br /&gt;
&lt;br /&gt;
=== Sparc ===&lt;br /&gt;
&lt;br /&gt;
* http://www.linuks.mine.nu/gnustep/solaris is one of package sources to create Solaris packages for GNUstep.&lt;br /&gt;
* GNUstep-core-1.0, please see http://en.wikibooks.org/wiki/CPAM_with_TWW#GNUstep_and_TWW_HPMS. look for the gnustep-core-1.0.sb and gnustep-core-1.0.pb file for building and packaging information.&lt;br /&gt;
&lt;br /&gt;
=== GNUstep Solaris 10 U2 vmware appliance ===&lt;br /&gt;
&lt;br /&gt;
* [http://developers.sun.com/solaris/downloads/solaris_apps/index.jsp Download sol u2 image], you need to have a Sun site account.&lt;br /&gt;
* You can run this image in VMware server or VMware player 1.0.3.&lt;br /&gt;
* Install Sun Studio 11 with latest patches.&lt;br /&gt;
* Objective Compiler&lt;br /&gt;
** compile your own&lt;br /&gt;
** get it from [http://www.blastwave.org/ BlastWave] using pkg-get.&lt;br /&gt;
* download all the GNUstep tar balls and follow build instruction.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= OpenSolaris =&lt;br /&gt;
&lt;br /&gt;
This will be an add-on packages to OpenSolaris distributions using TWW tools to create SPARC/Intel packages in SVR4 formats. &amp;quot;pkg-inst gnustep-user-1.0 gnustep-developer-1.0 gnustep-apps-1.0&amp;quot; will install GNUstep user,developer and GNUstep native applications. pkg-rm will perform the reverse of installation.&lt;br /&gt;
&lt;br /&gt;
It will have a nice name like GNUstep O.S. (OpenSolaris).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Darwin =&lt;br /&gt;
Two issues differentiate Darwin from its FreeBSD cousin.&lt;br /&gt;
# Darwin uses the Apple [[Objective-C runtime]], not the GNU version&lt;br /&gt;
# Darwin uses the Apple version of GCC, not the GNU version&lt;br /&gt;
&lt;br /&gt;
See [[Platform:BSD#Darwin]].&lt;br /&gt;
&lt;br /&gt;
= Windows =&lt;br /&gt;
&lt;br /&gt;
There are many Unix Environment solutions for windows. Currently GNUstep is using [http://www.mingw.org/ MingW] as its UNIX environment foundation for Windows.&lt;br /&gt;
&lt;br /&gt;
=== MingW ===&lt;br /&gt;
&lt;br /&gt;
See [[Installation on Windows]] for details on MingW setup. Also look at precompiled binary installer, available from [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/ GNUstep's ftp site].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Others =&lt;br /&gt;
To keep this list as brief as possible, information about these systems can [[Platform:Other|be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Objective-C_runtime&amp;diff=5695</id>
		<title>Objective-C runtime</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Objective-C_runtime&amp;diff=5695"/>
		<updated>2009-10-22T18:25:30Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
The '''Objective-C runtime''' is low-level code that makes your applications work. Every Objective-C program links to the runtime, and the runtime manages objects, looks up methods, and implements the features of Objective-C.&lt;br /&gt;
=History=&lt;br /&gt;
The first Objective-C runtime was created by [[NeXT]] in the 1980s for their implementation of Obj-C and NeXTSTEP. The GNU project started to re-write it in 1992. This runtime was significantly modified in 1993 by Kresten Krab Thorup. Since then, there have been two runtimes evolving in parallel.&lt;br /&gt;
&lt;br /&gt;
When Jobs returned to Apple, he brought with him NeXTSTEP's code. The Obj-C runtime used in Apple's [[Mac OS X]] is inherited from NeXT. Apple has made many changes to it.&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Library_combos&amp;diff=5694</id>
		<title>Library combos</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Library_combos&amp;diff=5694"/>
		<updated>2009-10-22T18:20:25Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Library combos''' are compile-time decisions about which libraries and runtimes to use. Since the only other major libraries are from Apple, this applies only to [[Darwin]] and [[Mac OS X]].&lt;br /&gt;
&lt;br /&gt;
There are three libraries that can be linked to. The [[Objective-C runtime]], the [[Foundation]] implementation, and the [[AppKit]] implementation.&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Platform_compatibility&amp;diff=5693</id>
		<title>Platform compatibility</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Platform_compatibility&amp;diff=5693"/>
		<updated>2009-10-22T18:00:38Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
Following are procedures for installing GNUstep on different Operating Systems.&lt;br /&gt;
* You may also want to take a look at the [[dependencies]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= BSD-based systems =&lt;br /&gt;
To keep this list as brief as possible, information about these systems can [[Platform:BSD|be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= HP/UX  =&lt;br /&gt;
* GNUstep-core-1.0, please see http://en.wikibooks.org/wiki/CPAM_with_TWW/References_Manual#GNUstep_and_CPAM. look for the gnustep-core-1.0.sb and gnustep-core-1.0.pb file for building and packaging information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Linux-based systems =&lt;br /&gt;
To keep this list as brief as possible, information about these systems can [[Platform:Linux|be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Solaris =&lt;br /&gt;
Take a look at the required and recommended [[dependencies]]. Most of these can be found at [http://www.blastwave.org/ BlastWave] (which I personally recommend) or [http://www.sunfreeware.com/ Sun Freeware].&lt;br /&gt;
The notable exception are [http://www.haible.de/bruno/packages-ffcall.html ffcall]/[http://sources.redhat.com/libffi/ libffi], [http://www.apple.com/macosx/features/bonjour/ Bonjour] and [http://www.portaudio.com/ portaudio] (as of 2008-05-23).&lt;br /&gt;
&lt;br /&gt;
If you plan on compiling those from source, make sure to enable the creation of SHARED libraries. ''Bonjour'' and ''ffcall'' compile right out of the box. For ''portaudio'' to compile, you will need to grab a daily-snapshot and you need to install [http://www.blastwave.org/packages.php/osndsys Open Sound System headers].&lt;br /&gt;
&lt;br /&gt;
Then, if you follow the installation instructions for GNUstep, you should not run into any problems.&lt;br /&gt;
&lt;br /&gt;
=== Intel ===&lt;br /&gt;
&lt;br /&gt;
''Intentionally left blank''.&lt;br /&gt;
&lt;br /&gt;
=== Sparc ===&lt;br /&gt;
&lt;br /&gt;
* http://www.linuks.mine.nu/gnustep/solaris is one of package sources to create Solaris packages for GNUstep.&lt;br /&gt;
* GNUstep-core-1.0, please see http://en.wikibooks.org/wiki/CPAM_with_TWW#GNUstep_and_TWW_HPMS. look for the gnustep-core-1.0.sb and gnustep-core-1.0.pb file for building and packaging information.&lt;br /&gt;
&lt;br /&gt;
=== GNUstep Solaris 10 U2 vmware appliance ===&lt;br /&gt;
&lt;br /&gt;
* [http://developers.sun.com/solaris/downloads/solaris_apps/index.jsp Download sol u2 image], you need to have a Sun site account.&lt;br /&gt;
* You can run this image in VMware server or VMware player 1.0.3.&lt;br /&gt;
* Install Sun Studio 11 with latest patches.&lt;br /&gt;
* Objective Compiler&lt;br /&gt;
** compile your own&lt;br /&gt;
** get it from [http://www.blastwave.org/ BlastWave] using pkg-get.&lt;br /&gt;
* download all the GNUstep tar balls and follow build instruction.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= OpenSolaris =&lt;br /&gt;
&lt;br /&gt;
This will be an add-on packages to OpenSolaris distributions using TWW tools to create SPARC/Intel packages in SVR4 formats. &amp;quot;pkg-inst gnustep-user-1.0 gnustep-developer-1.0 gnustep-apps-1.0&amp;quot; will install GNUstep user,developer and GNUstep native applications. pkg-rm will perform the reverse of installation.&lt;br /&gt;
&lt;br /&gt;
It will have a nice name like GNUstep O.S. (OpenSolaris).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Darwin =&lt;br /&gt;
Two issues differentiate Darwin from its FreeBSD cousin.&lt;br /&gt;
# Darwin uses the Apple [[Objective-C runtime]], not the GNU version&lt;br /&gt;
# Darwin uses the Apple version of GCC, not the GNU version&lt;br /&gt;
&lt;br /&gt;
It is recommended to compile GNUstep with the GNU version of GCC, not Apple's version. (See the file &amp;lt;tt&amp;gt;README.Darwin&amp;lt;/tt&amp;gt; for more info. Furthermore, since Darwin includes Apple's runtime, you must decide which to use at compile time. For more information, see [[Library combos]].&lt;br /&gt;
&lt;br /&gt;
= Windows =&lt;br /&gt;
&lt;br /&gt;
There are many Unix Environment solutions for windows. Currently GNUstep is using [http://www.mingw.org/ MingW] as its UNIX environment foundation for Windows.&lt;br /&gt;
&lt;br /&gt;
=== MingW ===&lt;br /&gt;
&lt;br /&gt;
See [[Installation on Windows]] for details on MingW setup. Also look at precompiled binary installer, available from [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/ GNUstep's ftp site].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Others =&lt;br /&gt;
To keep this list as brief as possible, information about these systems can [[Platform:Other|be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Talk:Emacs.app&amp;diff=5691</id>
		<title>Talk:Emacs.app</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Talk:Emacs.app&amp;diff=5691"/>
		<updated>2009-10-21T18:29:14Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Version==&lt;br /&gt;
Since the latest version is a branch of the original (since July 2008), I think the download link to the 9.0r1 should be removed. --[[User:Martin|Martin]] 20:29, 21 October 2009 (CEST)&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Cross_Compiling&amp;diff=5258</id>
		<title>Cross Compiling</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Cross_Compiling&amp;diff=5258"/>
		<updated>2008-06-09T02:52:57Z</updated>

		<summary type="html">&lt;p&gt;Martin: cleanup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cross Compiling and GNUstep depends on what you want to achieve.&lt;br /&gt;
&lt;br /&gt;
The following is based on [http://groups.google.com/group/gnu.gnustep.discuss/browse_frm/thread/06920400aed740d2 this discussion] on the mailing list.&lt;br /&gt;
&lt;br /&gt;
== I have a GNUstep source running on Linux/GNUstep and want the same application to run on OSX ==&lt;br /&gt;
&lt;br /&gt;
You have several options - more or less complex.&lt;br /&gt;
&lt;br /&gt;
=== Copy source files to OSX and use gnustep-make ===&lt;br /&gt;
&lt;br /&gt;
The simplest, and best option is obviously to install [[Media:FOSDEM2007Make-2.0.pdf|gnustep-make]] on your Mac.&lt;br /&gt;
&lt;br /&gt;
  curl ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-2.0.5.tar.gz&lt;br /&gt;
  ./configure&lt;br /&gt;
  make&lt;br /&gt;
  sudo make install&lt;br /&gt;
&lt;br /&gt;
and then compile your project by typing 'make'.  You get a native Apple OSX application compiled against the Apple OSX ObjC frameworks ... using   &lt;br /&gt;
the same GNUmakefiles you were using on GNU/Linux/*BSD/Windows. :-)&lt;br /&gt;
--N. Pero&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additionally to the already suggested use of Xcode, you can build GNUstep on OS X with the apple-apple-apple combo.&lt;br /&gt;
While this might need a tweak or two to work, this gives you a thin layer of GNUstep (its additions) onto what Cocoa already provides. &lt;br /&gt;
--Markus Hitter&lt;br /&gt;
&lt;br /&gt;
=== Copy source files to OSX  and build using Xcode ===&lt;br /&gt;
&lt;br /&gt;
Add a wrapping Xcode project (in addition to the GNUstep makefile) and configure it to compile directly on OSX for OSX using the OSX Cocoa frameworks.&lt;br /&gt;
You can share the sources e.g. through SVN.&lt;br /&gt;
There is no problem having GNUmakefiles and some .xcodeproj in the same source code directory. &lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
1. SWK Browser from the GNUstep SWK project, DataBuilder from &lt;br /&gt;
2. GSCoreData (look into the sources at www.gna.org) &lt;br /&gt;
&lt;br /&gt;
Development is done by either working on Linux and using GORM/Project Center and compiling for Linux, or on OSX opening the project in Xcode.&lt;br /&gt;
The only thing to keep in mind is that you must also update the Xcode project or the GNUmakefile if you add source files or resources. &lt;br /&gt;
The GNUstep .app bundle is different and runs on Linux only.&lt;br /&gt;
The OSX .app bundle runs only on OSX, i.e. there is no single bundle that covers all architectures (unless you do some additional tricks). &lt;br /&gt;
&lt;br /&gt;
=== Install GNUstep on OSX using MacPorts ===&lt;br /&gt;
&lt;br /&gt;
Then, you can set up an identical build environment on both machines. &lt;br /&gt;
The drawback is that you don't have a &amp;quot;native&amp;quot; OSX application which you can easily launch by a double-click on the .app icon. &lt;br /&gt;
&lt;br /&gt;
Benoit Astruc writes:        I think I have done this : &lt;br /&gt;
- I installed GNUstep Make and BaseAdditions on Mac OS X 10.3 (it was 2 years ago so not the Make 2.0 version, I don't know if it works with &lt;br /&gt;
the new version), &lt;br /&gt;
- I used a GNUmakefile like this one : &lt;br /&gt;
  # This usually happens when you source GNUstep.sh, then run ./configure, &lt;br /&gt;
  # then log out, then log in again and try to compile &lt;br /&gt;
  ifeq ($(GNUSTEP_MAKEFILES),) &lt;br /&gt;
     $(error You need to run the GNUstep configuration script before compiling!) &lt;br /&gt;
  endif &lt;br /&gt;
  include $(GNUSTEP_MAKEFILES)/common.make &lt;br /&gt;
  APP_NAME = WRP &lt;br /&gt;
  WRP_MAIN_MODEL_FILE = MainMenu &lt;br /&gt;
  WRP_APPLICATION_ICON = WRP.icns &lt;br /&gt;
  WRP_PRINCIPAL_CLASS = NSApplication &lt;br /&gt;
  WRP_RESOURCE_FILES = gui/* Images/* Resources/* &lt;br /&gt;
  WRP_OBJC_FILES = main.m \ &lt;br /&gt;
  ... &lt;br /&gt;
  snip a bunch of sources files &lt;br /&gt;
  ... &lt;br /&gt;
  DEGeneralPrefsController.m \ &lt;br /&gt;
  GSStringCat.m &lt;br /&gt;
  include GNUmakefile.preamble &lt;br /&gt;
  include $(GNUSTEP_MAKEFILES)/application.make &lt;br /&gt;
&lt;br /&gt;
There was a trick however, the first time I had to write manually some file, WRPInfo.plist if I remember well, and then it was used. &lt;br /&gt;
I don't do anything on this app since 2 years ago so I don't remember well, but I am pretty sure I had nothing more to do.&lt;br /&gt;
And the result was a perfectly Mac OS X app build with GNUstep make. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Real cross-compiling (building on Linux for MacOS X) ===&lt;br /&gt;
&lt;br /&gt;
This means that you have a gcc version on your Linux machine that emits executables that run on OSX. Unfortunately, OSX uses MACH-O binaries and building a cross-compiling gcc is very tricky. &lt;br /&gt;
So I would not consider this as a reasonable option.&lt;br /&gt;
&lt;br /&gt;
== I have an Xcode project and want to run on Linux ==&lt;br /&gt;
&lt;br /&gt;
a) your target machine has a compiler &lt;br /&gt;
Here, you have to check that you are not using too specific &lt;br /&gt;
frameworks. Then, add a GNUmakefile. Copy the files to your Linux &lt;br /&gt;
system and run the GNUstep makefile. &lt;br /&gt;
&lt;br /&gt;
b) your target machine is an embedded system &lt;br /&gt;
In this case, you need a cross-compiler on the build host. This can be &lt;br /&gt;
a full Linux machine or a OSX machine (but it is more difficult to get &lt;br /&gt;
a working cross-compiler running on OSX).&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=User:Martin/myskin.css&amp;diff=5109</id>
		<title>User:Martin/myskin.css</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=User:Martin/myskin.css&amp;diff=5109"/>
		<updated>2008-03-11T17:26:44Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;*/&lt;br /&gt;
@import url(&amp;quot;http://www.bleb.org/software/maemo/wikipedia/myskin.css&amp;quot;);&lt;br /&gt;
/* &amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; */&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=NSMutableString&amp;diff=5108</id>
		<title>NSMutableString</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=NSMutableString&amp;diff=5108"/>
		<updated>2008-03-10T21:56:48Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.gnustep.org/resources/documentation/Developer/Base/Reference/NSString.html#class$NSMutableString NSMutableString] inherits from [[NSString]], but includes methods for changing the string.&lt;br /&gt;
&lt;br /&gt;
== Editing Strings ==&lt;br /&gt;
&lt;br /&gt;
=== Adding To Strings ===&lt;br /&gt;
&lt;br /&gt;
Strings can be added on to by appending the new substring to the end, or by inserting it any where in the middle.&lt;br /&gt;
&lt;br /&gt;
==== Appending Strings ====&lt;br /&gt;
&lt;br /&gt;
The simplest way to edit a string is by appending to the end of the string, as shown here:&lt;br /&gt;
&lt;br /&gt;
  NSMutableString *str = @&amp;quot;short string&amp;quot;;&lt;br /&gt;
  [str appendString: @&amp;quot; made longer&amp;quot;];&lt;br /&gt;
  // str is now = @&amp;quot;short string made longer&amp;quot;&lt;br /&gt;
&lt;br /&gt;
C style formating flags can also be used as follows:&lt;br /&gt;
&lt;br /&gt;
  NSMutableString *str = @&amp;quot;short string&amp;quot;;&lt;br /&gt;
  [str appendFormat: @&amp;quot; made longer %@.&amp;quot;, @&amp;quot;with formating&amp;quot;];&lt;br /&gt;
  // str is now = @&amp;quot;short string made longer with formating.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Inserting Substrings ====&lt;br /&gt;
&lt;br /&gt;
The more advanced method of adding to strings in by insertion, as demonstrated here:&lt;br /&gt;
&lt;br /&gt;
  NSMutableString *str = @&amp;quot;a string&amp;quot;;&lt;br /&gt;
  [str insertString: @&amp;quot;new &amp;quot; atIndex: 2];&lt;br /&gt;
  // str is now = @&amp;quot;a new string&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Replacing Substrings ===&lt;br /&gt;
&lt;br /&gt;
A certain substring can be replaced with a new one as follows:&lt;br /&gt;
&lt;br /&gt;
  NSMutableString *str = @&amp;quot;a old string&amp;quot;;&lt;br /&gt;
  [str replaceString: @&amp;quot;old&amp;quot; withString: @&amp;quot;new];&lt;br /&gt;
  // str is now = @&amp;quot;a new string&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This can also be done with ranges:&lt;br /&gt;
&lt;br /&gt;
  NSMutableString *str = @&amp;quot;a old string&amp;quot;;&lt;br /&gt;
  NSRange range = {2, 3};&lt;br /&gt;
  // start at index 2 and include the next 3 characters&lt;br /&gt;
  [str replaceCharactersInRange: range withString: @&amp;quot;new];&lt;br /&gt;
  // str is now = @&amp;quot;a new string&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Foundation]]&lt;br /&gt;
[[Category:Snippets]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=DesktopServicesKit&amp;diff=4883</id>
		<title>DesktopServicesKit</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=DesktopServicesKit&amp;diff=4883"/>
		<updated>2007-10-28T03:47:42Z</updated>

		<summary type="html">&lt;p&gt;Martin: add link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Proposal for a Desktop Services Framework ==&lt;br /&gt;
&lt;br /&gt;
With [[Camaelon]] theming, GNUstep applications may be able to offer an &amp;quot;almost native&amp;quot; experience in alien environments like Windows and MacOS.&lt;br /&gt;
&lt;br /&gt;
To avoid significant and repetitive modifications to applications which may require some support from the native desktop environment or provide services to other applications (classic low-threshhold activities such as handling MIME and file types, all the way through to native file dialogs and gateways into local accessibility services), it may be sensible to begin work on a DesktopServicesKit.&lt;br /&gt;
&lt;br /&gt;
The following is a limited list of common desktop services offered (to one extent or another) by environments like KDE, GNOME, Windows, MacOS, Etoile and ...:&lt;br /&gt;
* desktop notifications and information&lt;br /&gt;
* file and directory dialogs&lt;br /&gt;
* printing services and dialogs&lt;br /&gt;
* registration of MIME and file-type handling capabilities&lt;br /&gt;
* native application helper launch and termination &lt;br /&gt;
* gateway from GNUstep accessibility framework (does it exist yet?) to local platform&lt;br /&gt;
* privilege escalations&lt;br /&gt;
&lt;br /&gt;
This would logically be complemented by a rather lighter System Services Framework to deal with native operating system issues such as networking, disk, volume, filesystem and file metadata, capabilities and permissions management, authentication services, etc.&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Writing_portable_code&amp;diff=4882</id>
		<title>Writing portable code</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Writing_portable_code&amp;diff=4882"/>
		<updated>2007-10-28T03:36:34Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* Xcode conversion */ add link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GNUstep opens up some fairly interesting opportunities to target a number of platforms with the same source code, for example porting Mac OS X Cocoa applications to Linux, the BSDs, other Unices and (ultimately) Windows without significant re-engineering effort or degraded end-user functionality. &lt;br /&gt;
&lt;br /&gt;
Some portability gotchas are listed below (please update when you run into a new one!):&lt;br /&gt;
&lt;br /&gt;
== Porting Applications ==&lt;br /&gt;
&lt;br /&gt;
=== Porting from NeXTSTEP (NX*) to GNUstep ===&lt;br /&gt;
&lt;br /&gt;
For this you should have access to an old OPENSTEP installation, or find a friend who has one, otherwise you're simply better off just rewriting the application from scratch. There are some scripts which can be used to convert an application from NeXTSTEP to OPENSTEP located in &amp;lt;tt&amp;gt;/NextDeveloper/OpenStepConversion/ConversionScripts&amp;lt;/tt&amp;gt;. They use a scripting language called &amp;quot;tops&amp;quot;.  I haven't been able, as yet, to locate a version of tops for Linux or any other operating system other than Mac OS X or OPENSTEP/Mach or NeXTSTEP. There are a few conversion applications which basically just use the tops scripts to do the conversion.  They are actually two versions of the same program, but the second one doesn't run on NeXT, so here's both.  These are:&lt;br /&gt;
&lt;br /&gt;
* [ftp://next-ftp.peak.org/openstep/mach/apps/devtools/Conversion.0.5.NI.tar.gz]&lt;br /&gt;
* [ftp://next-ftp.peak.org/openstep/mach/apps/devtools/ConversionII.1.0.I.tar.gz]&lt;br /&gt;
&lt;br /&gt;
You should be able to point it at the project directory you wish to convert and start the conversion.  The GUI is very straightforward. You can also run the tops scripts on a Mac simply by saying:&lt;br /&gt;
&lt;br /&gt;
   tops -verbose -scriptfile {scriptfilename} {filestoconvert}&lt;br /&gt;
&lt;br /&gt;
All of the files are converted in place.  You must run all of the tops scripts in the ConversionScripts directory against the application code.  It is considerably simply to use the existing applications.  Unfortunately these scripts do not exist on Mac OS X, otherwise porting the Conversion application might be useful.&lt;br /&gt;
&lt;br /&gt;
When you start the scripts, if you're running them on black hardware you should go get a cup of coffee and watch a movie with your wife or go code something else for a while.   The conversion will take a good long while on an older machine.   I haven't timed it on the Mac, though.  Once this is done, there is still a long way to go.  Read on.&lt;br /&gt;
&lt;br /&gt;
OPENSTEP4.2/Mach had a class called NSCStringText.  This class was primarily for apps which were converted from NeXTSTEP to use as a stop-gap measure in OpenStep.  This is one of the main reasons why it isn't in GNUstep.  You will need to make sure that any classes modified by the scripts to use NSCStringText will use NSText and it's related classes as appropriate. OPENSTEP4.2/Mac also had some other extensions on the OpenStep standard such as NXStreams.  You will also need to convert any and all instances of NXStream to use NSData instead in order to make your app work with GNUstep.&lt;br /&gt;
&lt;br /&gt;
If your app is fairly small, you shouldn't be in for a great shock, but if your app is heavily reliant on the old Text object from NeXTSTEP, you have a lot of work ahead.  Other gaps which the scripts might leave are problems with NSUserDefaults which it can't fix on it's own.&lt;br /&gt;
&lt;br /&gt;
=== Porting from Cocoa or OPENSTEP (NS*) to GNUstep ===&lt;br /&gt;
&lt;br /&gt;
Porting from Cocoa or OPENSTEP to GNUstep has different aspects. First there is the compatibility of the basic Foundation Kit and Application Kit. We support a lot of classes, but not all of them and the same is true for specific methods, specifically newly introduced classes and methods in Cocoa may still be missing as GNUstep started out aiming at OpenStep compatibility.&lt;br /&gt;
&lt;br /&gt;
Second you have all the additional frameworks and libraries programmers on Mac OS X take for granted, for some of them free replacements exists, for most they are still missing. Mac OS X developers should try and avoid CoreFoundation as this will complicate your dependency situation on non-Mac hosts, even if that part of CoreFoundation has actually been ported. GNUstep Base and the FoundationKit offer many parts of the CoreFoundation functionality in a natural [[Objective-C]] manner. To be a bit more specific:&lt;br /&gt;
&lt;br /&gt;
* don't use Core* (CoreFoundation, CoreSound, CoreAnimation, ...)&lt;br /&gt;
* don't use KeyChain&lt;br /&gt;
* don't use Carbon&lt;br /&gt;
* don't use Quartz&lt;br /&gt;
* don't use QuickTime&lt;br /&gt;
* don't use WebKit (GCC 4.1 and up support ObjC++, but currently, there exists no WebKit port for GNUstep)&lt;br /&gt;
* don't use altivec features or the vecLib.framework (a collection of functions for vector manipulation, an Apple specific extension)&lt;br /&gt;
* don't use anything else we do not provide&lt;br /&gt;
&lt;br /&gt;
If you committed none of these portability evils, the rest is relatively straightforward:&lt;br /&gt;
&lt;br /&gt;
# [[Writing Makefiles|Write a new GNUstep make file]] for the project (very easy, still there is currently no automatic way to do so).&lt;br /&gt;
# Make sure the Nib files are readable by GNUstep.&lt;br /&gt;
## When saving a NIB file in project builder, ensure that &amp;quot;10.2 or later&amp;quot; format is selected. Also, ensure that &amp;quot;Use text archive format&amp;quot; is NOT checked, as this created problems.&lt;br /&gt;
## Another option is to load them into Gorm and convert them into .gorm files. If they're from OPENSTEP or Mac OS X 10.1 or earlier, see [[#Porting_.nib_files_from_OPENSTEP_or_Mac_OS_X_10.1_and_earlier|below]].&lt;br /&gt;
# Provide an Info.plist.&lt;br /&gt;
&lt;br /&gt;
=== Porting from GNUstep to Cocoa ===&lt;br /&gt;
&lt;br /&gt;
This should be an easy transition since GNUstep implements most of Cocoa, except for the very Apple specific classes such as the scripting extensions. Since Gorm does not yet save .nib files, you will need to create the interfaces using IB.   Also there is a gorm reading/parsing framework for Cocoa in the works as well, so please stay tuned.&lt;br /&gt;
&lt;br /&gt;
Will need to:&lt;br /&gt;
&lt;br /&gt;
* Make a Project Builder project for your app or&lt;br /&gt;
* an Xcode project for your app&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
* Open Xcode.&lt;br /&gt;
* Choose Application (if your project is an application)&lt;br /&gt;
* Enter the name and location you wish the Project to reside at&lt;br /&gt;
* Copy your files from your GNUstep application into the new project&lt;br /&gt;
* Using the &amp;quot;Add Existing Files&amp;quot; option to add these file to your project.&lt;br /&gt;
&lt;br /&gt;
You should preserve your original directory structure if you want to distribute one package for both GNUstep and Cocoa.&lt;br /&gt;
&lt;br /&gt;
== Stumbling Blocks ==&lt;br /&gt;
&lt;br /&gt;
=== Apple's Cocoa.h ===&lt;br /&gt;
&lt;br /&gt;
It is there to enable pre-compiled headers and speed up compile time thusly. Anyway, it contains just two lines:&lt;br /&gt;
&lt;br /&gt;
 #import &amp;lt;Foundation/Foundation.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;AppKit/AppKit.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On older GNUstep systems, you may have to work around this by providing your own or replace your include of &amp;lt;Cocoa/Cocoa.h&amp;gt; with just the above, which will also work on OS-X.&lt;br /&gt;
&lt;br /&gt;
=== Distinguishing Between Cocoa and GNUstep ===&lt;br /&gt;
&lt;br /&gt;
 #ifdef GNUSTEP&lt;br /&gt;
     ''/* GNUstep code goes here ... */''&lt;br /&gt;
 #else&lt;br /&gt;
     ''/* OS-X Cocoa native code goes here ... */''&lt;br /&gt;
 #endif&lt;br /&gt;
&lt;br /&gt;
=== Porting .nib files from OPENSTEP or Mac OS X 10.1 and earlier ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, this is a simple matter of loading the .nibs into InterfaceBuilder.app and saving them in the new format. Another possibility is using nib2gmodel, the only one when porting from OPENSTEP, and mind you, you need to do the converting ''there''. First, get [http://freshmeat.net/projects/nib2gmodel/ nib2gmodel], follow the included instructions to build and install it.  Once that's done you're ready to begin:&lt;br /&gt;
&lt;br /&gt;
Run the nib2gmodel program on your nib:&lt;br /&gt;
&lt;br /&gt;
   nib2gmodel mygui.nib mygui.gmodel&lt;br /&gt;
&lt;br /&gt;
This should create the .gmodel as a plist.   I recommend that you convert the gmodel to a &amp;quot;normal&amp;quot; plist instead of an XML plist.  You can do that by doing this on OS X:&lt;br /&gt;
&lt;br /&gt;
   pl &amp;lt; mygui.gmodel -output mygui.ser&lt;br /&gt;
   pl &amp;gt; mygui.gmodel -input mygui.ser&lt;br /&gt;
   rm mygui.ser&lt;br /&gt;
&lt;br /&gt;
Now you can either use the gmodel as it is, or you can convert it to a .gorm file.&lt;br /&gt;
&lt;br /&gt;
==== Gmodel to .gorm conversion ====&lt;br /&gt;
&lt;br /&gt;
NOTE: Conversion from gmodel to .gorm is experimental and will probably remain so for a while.   It currently works in the majority of cases, but there are still improvements which need to be made.&lt;br /&gt;
&lt;br /&gt;
Conversion to a .gorm file is relatively straightforward:&lt;br /&gt;
&lt;br /&gt;
* Start Gorm.app.&lt;br /&gt;
* Choose Gorm-&amp;gt;Document-&amp;gt;Open and find the gmodel you wish to load.&lt;br /&gt;
* Gorm will prompt you to either define the superclass for classes it doesn't know about or to parse the headers. &lt;br /&gt;
&lt;br /&gt;
After you've defined all of the unknown classes, Gorm should complete the conversion.  Once this is done you should save the result to make sure you don't loose your work.&lt;br /&gt;
&lt;br /&gt;
=== Xcode conversion ===&lt;br /&gt;
&lt;br /&gt;
* how to convert Xcode project to GNUstep project (creating a GNUstep [http://www.gnustep.it/nicola/Tutorials/WritingMakefiles/index.html Makefile] or [[ProjectCenter]])&lt;br /&gt;
&lt;br /&gt;
* [[pbxbuild]]&lt;br /&gt;
&lt;br /&gt;
* PBTOMAKE. [http://www.macdevcenter.com/pub/a/mac/2004/04/20/xcodetounix.html xcodetounix] (download at [http://members.bellatlantic.net/%7Evze35xda/software.html]) is a tool for converting Xcode and Project Builder files to generic Unix Makefiles.  It would probably be a good start for converting to a GNUstep makefile.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
=== Do not rely on tools available in development environment ===&lt;br /&gt;
&lt;br /&gt;
All the world is not Linux or FreeBSD or Windows. System constants may be different on different platforms. Paths to command-line tools, the parameters they accept and locations of temporary directories may be different to what you are used to on your platform.&lt;br /&gt;
&lt;br /&gt;
* [[Foundation|GNUstep Base]] and the [[Foundation|FoundationKit]] offer some of this functionality &amp;quot;for free&amp;quot;.&lt;br /&gt;
* Try not to hard code paths and so on into your code, use macros (not recommended), or even better an abstraction mechanism.&lt;br /&gt;
* Avoid hard-coding system constants, or platform-specific ones where POSIX or commonly-accepted ones exist (and we're not talking about glibc here :-)&lt;br /&gt;
* Try to avoid advanced features of the linker, such as weak symbols, which may not be present on non-ELF systems.  While this will work perfectly on most systems, it is not portable to all systems, most notably Windows.&lt;br /&gt;
&lt;br /&gt;
=== When platform-specific code cannot be avoided ===&lt;br /&gt;
&lt;br /&gt;
There are cases where you may need to write platform-specific code, especially in the case of desktop applications and services which make use of facilities not standardised by POSIX or by the FoundationKit and AppKit  specifications, at least use [[Identifying the target platform|standard platform macros]].&lt;br /&gt;
&lt;br /&gt;
These platform-specific, or even desktop-specific requirements could be re-used by other projects - and even enhance desktop-integration efforts for GNUstep applications - by abstracting out common code into currently hypothetical [[PlatformKit]] and [[DesktopServicesKit]] frameworks.&lt;br /&gt;
&lt;br /&gt;
[[Category:Project procedures]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Pbxbuild&amp;diff=4858</id>
		<title>Pbxbuild</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Pbxbuild&amp;diff=4858"/>
		<updated>2007-10-17T05:05:56Z</updated>

		<summary type="html">&lt;p&gt;Martin: add category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Pbxbuild''' (not to be confused with [http://www.hmug.org/man/1/pbxbuild.php the OS X tool of the same name]) is used to take Xcode project files and build the code. It does this by creating GNUmakefiles, and using [[Make]] to build those.&lt;br /&gt;
&lt;br /&gt;
It reads &amp;lt;tt&amp;gt;.xcodeproj&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;.xcode&amp;lt;/tt&amp;gt; files and parses them to determine the structure. Then it re-creates that structure with a makefile. It does not inspect the source code, so it cannot guarantee that an OS X project will compile on GNUstep.&lt;br /&gt;
&lt;br /&gt;
Hans Baier created pbxbuild in 2006, and it's distributed  with the GNUstep tools.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Pbxbuild&amp;diff=4857</id>
		<title>Pbxbuild</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Pbxbuild&amp;diff=4857"/>
		<updated>2007-10-17T04:55:21Z</updated>

		<summary type="html">&lt;p&gt;Martin: Created article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Pbxbuild''' (not to be confused with [http://www.hmug.org/man/1/pbxbuild.php the OS X tool of the same name]) is used to take Xcode project files and build the code. It does this by creating GNUmakefiles, and using [[Make]] to build those.&lt;br /&gt;
&lt;br /&gt;
It reads &amp;lt;tt&amp;gt;.xcodeproj&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;.xcode&amp;lt;/tt&amp;gt; files and parses them to determine the structure. Then it re-creates that structure with a makefile. It does not inspect the source code, so it cannot guarantee that an OS X project will compile on GNUstep.&lt;br /&gt;
&lt;br /&gt;
Hans Baier created pbxbuild in 2006, and it's distributed  with the GNUstep tools.&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Application_wish_list&amp;diff=4737</id>
		<title>Application wish list</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Application_wish_list&amp;diff=4737"/>
		<updated>2007-05-20T15:10:07Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* Networking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What applications do you want for GNUstep? Please check the [[:Category:Applications|list of applications]] before adding.&lt;br /&gt;
&lt;br /&gt;
== Database ==&lt;br /&gt;
&lt;br /&gt;
=== Database management ===&lt;br /&gt;
&lt;br /&gt;
A desktop software (like [http://www.flex.ro/pgaccess/ PgAccess] for example) to manage database. This program could use the GDL2 (Gnustep Database Library). It could be a good exercice and demonstration of this very good library.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
=== Project Management app ===&lt;br /&gt;
&lt;br /&gt;
Something like [http://mrproject.codefactory.se/screenshots.php MrProject]. It has to be simple, not overbloated as MS Project.&lt;br /&gt;
&lt;br /&gt;
=== nib2gmodel/nib2gorm without OPENSTEP/MacOSX ===&lt;br /&gt;
GORM can open NIB files created with MacOSX 10.2 and later.  OPENSTEP/MacOSX is still needed for older NIB files.&lt;br /&gt;
&lt;br /&gt;
=== CVS app ===&lt;br /&gt;
&lt;br /&gt;
Port CVL.&lt;br /&gt;
&lt;br /&gt;
=== F-Script ===&lt;br /&gt;
[http://www.fscript.org/ F-Script] is useful for examining applications' properties and various Objective-C objects. It's FOSS, but I don't think there's a GNUstep port yet.&lt;br /&gt;
&lt;br /&gt;
== Graphics ==&lt;br /&gt;
&lt;br /&gt;
=== Blender ===&lt;br /&gt;
&lt;br /&gt;
Blender has recently (since October 2002) gone GPL. Consisting of porting the Blender GUI/WM abstract library GHOST, using NSOpenGLContext, or a CoreGraphics implementation one day. Objective-C++ might be needed for implementing GHOST, but probably can be worked around easily enough. There is an OSX port, probably using CoreGraphics.&lt;br /&gt;
&lt;br /&gt;
[http://www.blender.org/ Blender Foundation Homepage]&lt;br /&gt;
&lt;br /&gt;
Most of Blender is written in C++ doesn't seem to use CoreGraphics but Apple's GL.&lt;br /&gt;
&lt;br /&gt;
=== OmniGraffle clone ===&lt;br /&gt;
&lt;br /&gt;
(I don't really know what this is, but people have said they want one. Someone please add a description! :)&lt;br /&gt;
&lt;br /&gt;
This is for diagram, UML ....&lt;br /&gt;
I 'm thinking to write it. But not *right now*.&lt;br /&gt;
It will have probably a Gorm-feel&lt;br /&gt;
&lt;br /&gt;
[http://www.omnigroup.com/applications/omnigraffle/ OmniGraffle] was a clone of Lighthouse Design's Diagram.app, which was a re-working of the NeXT Developer Example Sketch.app, adding rubber-banding / angular connection lines.&lt;br /&gt;
&lt;br /&gt;
=== OmniOutliner clone ===&lt;br /&gt;
&lt;br /&gt;
This is a really cool app which can be used for anything. Mostly i think it is used to organise your minds while being creative (some kind of knowledge manager).&lt;br /&gt;
&lt;br /&gt;
The inspiration for this was Jayson Adams' Millennium Software's NoteBook.app, which lives again as the (commercial) program [http://www.aquaminds.com/ NoteTaker].&lt;br /&gt;
&lt;br /&gt;
=== Painting app (photoshop) ===&lt;br /&gt;
&lt;br /&gt;
Bitmap drawing app.&lt;br /&gt;
&lt;br /&gt;
Think Photoshop, not [http://www.gimp.org/ The Gimp].&lt;br /&gt;
&lt;br /&gt;
In fact, forget that. Something new.&lt;br /&gt;
&lt;br /&gt;
Something usable - can do Photoshop, but easy to learn. The Gimp can nearly do photoshop, but who can use it?&lt;br /&gt;
&lt;br /&gt;
It would be great if it consisted of two parts - a very small very useful image viewer/manager (eg gqview) and the actual editor plugin (the big part). So installing image-core would give a very small useful app, then adding image-edit would make it into photoshop.&lt;br /&gt;
&lt;br /&gt;
When opening an image file eg by clicking on it or running image-core thefile.jpg then only the core apps should start, so it starts real quick. If i right-click and choose edit or something .. THEN the other stuff is pulled in.&lt;br /&gt;
&lt;br /&gt;
Or whatever. Just an idea. But makes development path cool. Could also have a vector plugin, or whatever.&lt;br /&gt;
&lt;br /&gt;
Maybe we should wait, when (if?) Gimp gets '[http://gegl.org/ gegl]'ed.&lt;br /&gt;
then having a decent photoshop like app would be as simple as writing a gui for the gegl foundation.&lt;br /&gt;
+ gives us a nice featureset + plugins!&lt;br /&gt;
&lt;br /&gt;
Maliwan project is aiming to achieve the same goal of GEGL. Right now GEGL isn't even half complete but we can still reimplement it base on GEGL's design. lastlife is waiting for you in irc if you want to discuss the idea. Maliwan is planned to be the heart of the BluTulip which is the actual application.&lt;br /&gt;
&lt;br /&gt;
* porting http://seashore.sourceforge.net/ from their website: Seashore is an open source image editor for Cocoa. It features gradients, textures and anti-aliasing for both text and brush strokes. It supports multiple layers and alpha channel editing. It is based around the GIMP's technology and uses the same native file format.&lt;br /&gt;
&lt;br /&gt;
a screenshot is here: [http://seashore.sourceforge.net/screenshot.php] which looks very clean and easy to use.&lt;br /&gt;
&lt;br /&gt;
=== Pixen (Pixel Art Tool) ===&lt;br /&gt;
&lt;br /&gt;
[http://www.opensword.org/ Pixen] is a decent, open source pixel art tool and there aren't alot of free or professional programs like it. There is also a compliment tool by the same guys for mapping called Reptile.&lt;br /&gt;
&lt;br /&gt;
A port can be found [http://home.gna.org/gsimageapps/ here].&lt;br /&gt;
&lt;br /&gt;
== MultiMedia ==&lt;br /&gt;
&lt;br /&gt;
=== iTunes/Rhythmbox clone ===&lt;br /&gt;
&lt;br /&gt;
It would be nice to see a music or video player with real music/media management like [http://www.gnome.org/projects/rhythmbox/ Rhythmbox] or [http://www.apple.com/itunes/ iTunes]. iTunes has started to support management of movies and videoclips, so maybe media management is the way to go?&lt;br /&gt;
&lt;br /&gt;
=== DivX/XViD/DVD/VCD Player ===&lt;br /&gt;
&lt;br /&gt;
I see that there was at least an attempt to port mplayer at one point but it seems to be dead. Maybe [http://www.videolan.org/ VLC] which does have an OSX version, could be ported.&lt;br /&gt;
&lt;br /&gt;
: ''Looks cool, but requires CoreFoundation'' -- cbv&lt;br /&gt;
&lt;br /&gt;
I'd like to see [http://www.dtek.chalmers.se/groups/dvd/ Ogle] (a DVD player) ported. [[User:Martin|Martin]]&lt;br /&gt;
&lt;br /&gt;
: ''As far as I can see, Ogle (the actual player) doesn't really need porting, only Ogle-gui (the user interface add-on), which is GTK2 based'' -- cbv&lt;br /&gt;
&lt;br /&gt;
== Networking ==&lt;br /&gt;
&lt;br /&gt;
=== ICQ ===&lt;br /&gt;
&lt;br /&gt;
And other instant messengers.&lt;br /&gt;
&lt;br /&gt;
* Check http://freshmeat.net/projects/fireapp/&lt;br /&gt;
* See [[Grouch]].&lt;br /&gt;
&lt;br /&gt;
=== Web browser ===&lt;br /&gt;
&lt;br /&gt;
Seems to be a popular request :).&lt;br /&gt;
&lt;br /&gt;
* Work is on the way to bring [[SimpleWebKit]], a small WebKit compatible library up to working condition.  [[SimpleWebKit]] is part of the GNUstep project and can be found in the SVN.  This library will allow the creation of a simple web browser, such as [[Vespucci.app]].&lt;br /&gt;
&lt;br /&gt;
* The WebKit project has also offered their support to anyone who wishes to port WebKit to GNUstep, [http://lists.gnu.org/archive/html/discuss-gnustep/2007-03/msg00290.html see this e-mail].  This framework would allow the creation of a fully functional web browser.&lt;br /&gt;
&lt;br /&gt;
=== Web services app ===&lt;br /&gt;
A [http://www.karelia.com/developer/watson/ Watson] / Sherlock clone would be useful to me.&lt;br /&gt;
&lt;br /&gt;
=== Video conferencing software ===&lt;br /&gt;
&lt;br /&gt;
There's [http://www.gnomemeeting.org/ Ekiga] (excellent piece of software) which it no longer dependent on the GNOME libraries to work but looses some functionality.&lt;br /&gt;
* Would be nice to have a GNUstep native application that could use the same protocols (SIP and H.323).&lt;br /&gt;
&lt;br /&gt;
== PIM ==&lt;br /&gt;
&lt;br /&gt;
=== Task management app ===&lt;br /&gt;
&lt;br /&gt;
Chronographer (lobbying by ludovic) + libical&lt;br /&gt;
or&lt;br /&gt;
~TaskManager (lobbying by Fabien) + libical&lt;br /&gt;
&lt;br /&gt;
Check SKYRIX libs (Opengroupware)&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
===Keychain===&lt;br /&gt;
I want a better Keychain. I need an architecture and app to securely store not just usernames and passwords, but also other useful data. Think associated email / verification method, SSH passwords and keys, email public and private keys, and user-defined name-value pairs (for unforeseen uses, this facilitates micro-formats, like a standard for voicemail PIN etc). And a pony!&lt;br /&gt;
&lt;br /&gt;
Apple indicates that their KeyChain is derived from the open-source Common Data Security Architecture, so such a project would not have to start from scratch. I'm unsure how useful the third-party open-source [http://sourceforge.net/projects/keychain Keychain Framework] would be.&lt;br /&gt;
&lt;br /&gt;
''The above mentioned keychain on SourceForge depends on Apple's own 'Security' framework. I'm not sure how much of it is publicly available (and if so, portable)'' -- cbv&lt;br /&gt;
&lt;br /&gt;
== Text Processing / Office ==&lt;br /&gt;
&lt;br /&gt;
=== Abiword (Word Processor) ===&lt;br /&gt;
&lt;br /&gt;
A port of the Cocoa version of [http://www.abisource.com/ AbiWord] would be great, considering a word processor is a pretty vital application, and that Abiword is a pretty good one.&lt;br /&gt;
&lt;br /&gt;
=== Spreadsheet ===&lt;br /&gt;
&lt;br /&gt;
A spreadsheet application would be great for GNUstep.  A clone of Lotus Improv or Lighthouse Design's Parasheet would be a nice thing for GNUstep to have.&lt;br /&gt;
&lt;br /&gt;
: You could look at porting [http://www.materialarts.com/FlexiSheet/ FlexiSheet]; it's the only Cocoa FOSS spreadsheet I know of. Coincidentally, it has a couple of ideas borrowed from Lotus Improv.&lt;br /&gt;
&lt;br /&gt;
=== CSS/html editor ===&lt;br /&gt;
&lt;br /&gt;
A cool html/css editor - emphasis on the css structural side.&lt;br /&gt;
&lt;br /&gt;
Object oriented properties application to CSS element definitions, and insert those properties into HTML in web pages. Don't worry about WYSIWIG - that's what web browsers are for, displaying web pages. Just make a object-oriented CSS/HTML editor.&lt;br /&gt;
&lt;br /&gt;
Maybe port [http://www.w3.org/People/Berners-Lee/WorldWideWeb.html Nexus] for that?&lt;br /&gt;
&lt;br /&gt;
''This might actually be feasible, however, Nexus is based on [http://www.w3.org/Library/ libwww] and its source is, well, very NeXTSTEP'ish...'' -- cbv&lt;br /&gt;
&lt;br /&gt;
=== A simple DTP application ===&lt;br /&gt;
&lt;br /&gt;
A simple frame-based application for desktop publishing. Something like [http://www.calamus.net/ Calamus] ([http://www.calamus.net/man/index_us.htm here] is the documentation of tools and modules). Nothing fancy, just application that can lay out frames, control text flow, use paragraph styles and master pages.&lt;br /&gt;
&lt;br /&gt;
I'd rather see TeXView.app come back myself.... I think it's far more feasible (doing a decent page layout app is _hard_ just as Donald E. Knuth). Perhaps better still would be to take advantage of LyX's ``GUI-independence'' and provide a GNUstep front-end for it, http://www.lyx.org .&lt;br /&gt;
&lt;br /&gt;
No, nothing like LyX or TeX. I have in mind a ''visual'' page layout editing tool with features as described above (similar to PageMaker). LyX and TeX are a bit different approaches and should be alternatives to Frame based DTP application.&lt;br /&gt;
&lt;br /&gt;
 - Stefan&lt;br /&gt;
&lt;br /&gt;
I think a heavy-weight drawing package w/ page layout features would be a better solution here (this is the workflow I'm using on my NeXT Cube now), then it could be tied into an XML-based workflow in a fashion like to Apple's new Keynote, perhaps in a fashion like to Pages-by-Pages. To describe my workflow a bit---I now use Altsys Virtuoso on my NeXT Cube w/ Omega (Unicode-aware TeX variant) for most of my page layout. IME, if a document gets too large to manage w/ Altsys Virtuoso, it might as well go into TeX... Not that I'd mind seeing a replacement for PasteUp.app, I just think that a drawing program is more immediately important / useful.&lt;br /&gt;
&lt;br /&gt;
For simple DTP utility, I'd dearly love to see a re-creation of [http://members.aol.com/willadams/gnustep/apps/type/touchtype.html TouchType.app]&lt;br /&gt;
&lt;br /&gt;
 - William&lt;br /&gt;
&lt;br /&gt;
Maybe you should take a look at [http://www.texmacs.org/ TeXmacs]. Looks promising and is in great need of a GNUstep frontend.&lt;br /&gt;
&lt;br /&gt;
 - david.&lt;br /&gt;
&lt;br /&gt;
Interesting. I'd seen TeXMacs mentioned on comp.text.tex quite often, but hadn't realized it had gotten as far as it had. Interesting counterpoint to LyX.&lt;br /&gt;
 - William&lt;br /&gt;
&lt;br /&gt;
One really interesting thing would be to have a fame class which would useful enough so it could be used to put together a simple DTP Application but which would be flexible enough that it could be available to any application - the text control is a standard control for windows managers like MS Windows or Gnome. If there were an equivalent &amp;quot;flowing graphic control&amp;quot;, you'd have a powerful building block indeed (note that in MS windows, the text control is actually poor enough that no credible application can built around besides notepad).&lt;br /&gt;
Also, for a programming text editor, scintilla is great. One thing to consider is that for DTP/HTML editor, what you would want would be a *superset* of the scintilla interface. It would be great to add all the different features in such a way that you didn't have interfaces duplicating each other's functionalities.&lt;br /&gt;
&lt;br /&gt;
-- JosephSolbrig&lt;br /&gt;
&lt;br /&gt;
=== Digital Librarian-like ===&lt;br /&gt;
&lt;br /&gt;
I would really, really like a Digital Librarian for GNUstep. Basically, imagine an application that manage your documents the same way iTunes manage your music or iPhoto your photos... (to take well-known OSX apps as example ;-)&lt;br /&gt;
&lt;br /&gt;
It would provide 1) automatic management of the documents by projects/ideas/whatever metadata 2) index your documents to let you search quickly in it 3) handles bibliography&lt;br /&gt;
As a postgrad student I have a LOT of articles in PDF/PS/DVI/html on my hard drive, and such an application would be really nice to help managing that.&lt;br /&gt;
&lt;br /&gt;
* How about something like [http://debian.uni-essen.de/misc/GNUstep/Apps/GNUlibrarian/ GNULibrarian]?  I was just browsing the other day and found it! [[User:Stefanbidi|Stefanbidi]]&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
&lt;br /&gt;
=== Old NeXTSTEP/OPENSTEP apps ===&lt;br /&gt;
See [http://www.levenez.com/NeXTSTEP/meApps.html this side (in French)] for a list.&lt;br /&gt;
&lt;br /&gt;
=== Frontend for different platform to [http://www.granddictionnaire.com/ Grand Dictionnaire (in French)] ===&lt;br /&gt;
&lt;br /&gt;
=== Keyboard switcher application ===&lt;br /&gt;
&lt;br /&gt;
=== Google.app ===&lt;br /&gt;
&lt;br /&gt;
* Complete with ApplicationServices&lt;br /&gt;
* WebBrowser integration&lt;br /&gt;
* Using proper NS* classes for HTML retrieval&lt;br /&gt;
* Ability to select which Google server (www.google.ca, www.google.co.jp)&lt;br /&gt;
* Google News, Google Groups, Google Images too.&lt;br /&gt;
&lt;br /&gt;
Hns: his looks more like a general WebBrowser than a special Google.app&lt;br /&gt;
&lt;br /&gt;
=== DMG.app? ===&lt;br /&gt;
&lt;br /&gt;
* Installer/extractor/viewer for DMG images.&lt;br /&gt;
* Create DMG packages&lt;br /&gt;
* Useful for OSX source packages&lt;br /&gt;
&lt;br /&gt;
''Note:'' The DMG format is Apple proprietary and undocumented. Basically, DMG support is only available under OSX and its unlikely to change.&lt;br /&gt;
&lt;br /&gt;
=== CronniX - A cron front end ===&lt;br /&gt;
&lt;br /&gt;
http://www.abstracture.de/projects-en/cronnix&lt;br /&gt;
&lt;br /&gt;
That won't be easily portable, as different OSs use a different cron setup. Eg. BSD has (and uses) both, /etc/crontab __and__ /var/cron/tabs/&amp;lt;username&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
=== PfaEdit - A font editor ===&lt;br /&gt;
&lt;br /&gt;
PfaEdit has its name changed to [http://fontforge.sourceforge.net/ FontForge].&lt;br /&gt;
&lt;br /&gt;
Actually, Cenon (see above) is able to do some limited font editing. Not to knock pfaedit, I use it a lot and think it's a way cool program. Wonder if the two could be merged somehow.&lt;br /&gt;
&lt;br /&gt;
=== GuileServices / StepTalk Services ===&lt;br /&gt;
&lt;br /&gt;
On NeXTSTEP there was an application (service?) called [http://www.doubleu.com/TickleServices.html TickleServices] that allowed you to write your own services in the Tcl language. Something along these lines, but using guile/steptalk would be a nice addition to gnustep.&lt;br /&gt;
&lt;br /&gt;
=== Printer.app ===&lt;br /&gt;
&lt;br /&gt;
An application/framework for managing printers, printer properties and print queues. (CUPS frontend?) (NOTE: To an extent, GNUstep already has CUPS support, and has number of builtin classes and panels for managing printers and printer settings. They may just need to be extended a little for different uses and environments.)&lt;br /&gt;
&lt;br /&gt;
=== Growl! (Global notification system) ===&lt;br /&gt;
&lt;br /&gt;
[http://growl.info/ Growl!] uses distributed notification center to display a graphic message on screen. Every application can send messages to it, for example, when new emails arrive, buddies sign in the instant messager, a task end, etc. It is very easy to implement.&lt;br /&gt;
&lt;br /&gt;
''Parts require CoreFoundation and/or WebKit'' -- cbv&lt;br /&gt;
&lt;br /&gt;
Perhaps the CoreFoundation bits could be handled by [http://developer.apple.com/opensource/cflite.html CF-Lite].&lt;br /&gt;
&lt;br /&gt;
''Since about version 299 CoreFoundation doesn't compile properly anymore on systems other than Darwin.'' -- [[User:Cbv|cbv]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=KVO_Bindings_Project&amp;diff=4732</id>
		<title>KVO Bindings Project</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=KVO_Bindings_Project&amp;diff=4732"/>
		<updated>2007-05-13T03:44:53Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== People ==&lt;br /&gt;
&lt;br /&gt;
Student: Christopher Farber&lt;br /&gt;
&lt;br /&gt;
Mentor: Nicola Pero&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
KVO and bindings lead to faster, easier application development, and cleaner code. It also brings GNUstep closer to compiling most [[Cocoa]] code without modification. Key Value Observing is necessary to implement bindings, and would increase the flexibility of GNUstep's KeyValueCoding implementation. Bindings support would eliminate the need for most outlets and controller code that deals with updating the GUI controls, while reinforcing the separation between Controller and View in the Model-View-Controller design pattern.&lt;br /&gt;
&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
Creating the classes: &lt;br /&gt;
* NSController&lt;br /&gt;
* NSArrayController&lt;br /&gt;
* NSObjectController&lt;br /&gt;
* NSValueTransformer&lt;br /&gt;
Adding bindings support for existing classes; for example NSTextField, NSPopUpButton, and NSProgressIndicator&lt;br /&gt;
== Milestones ==&lt;br /&gt;
&lt;br /&gt;
{To be agreed}&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
None (project not officially started)&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Summer_Of_Code_2007&amp;diff=4731</id>
		<title>Summer Of Code 2007</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Summer_Of_Code_2007&amp;diff=4731"/>
		<updated>2007-05-13T03:39:40Z</updated>

		<summary type="html">&lt;p&gt;Martin: link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [http://code.google.com/soc/ Summer Of Code] is a Google program that offers student developers stipends to create new freely available programs or to help currently established projects. This year, GNUstep had two projects accepted:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Project&lt;br /&gt;
! Student&lt;br /&gt;
! Mentor&lt;br /&gt;
|-&lt;br /&gt;
| [[Text_System_Project|Improving GNUstep AppKit components and the Text System]]&lt;br /&gt;
| Christopher Elsmore&lt;br /&gt;
| David Chisnall&lt;br /&gt;
|-&lt;br /&gt;
| [[KVO Bindings Project|Key Value Observing and Bindings implementation]]&lt;br /&gt;
| Christopher Farber&lt;br /&gt;
| Nicola Pero&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The original [[Summer_Of_Code_Ideas|proposed ideas]] are maintained for historical interest, and for students thinking of applying next year.  &lt;br /&gt;
&lt;br /&gt;
=== Mentors ===&lt;br /&gt;
&lt;br /&gt;
The following agreed to provide additional mentoring, and answer questions for students in addition to their assigned mentors:&lt;br /&gt;
&lt;br /&gt;
* Adam Fedor (Also main administrator)&lt;br /&gt;
* Nicolas Roard&lt;br /&gt;
* Richard Frith-Macdonald&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=ApplicationKitCompatibility&amp;diff=4727</id>
		<title>ApplicationKitCompatibility</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=ApplicationKitCompatibility&amp;diff=4727"/>
		<updated>2007-04-30T00:28:21Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Class / method&lt;br /&gt;
! MacOS X version&lt;br /&gt;
! Status&lt;br /&gt;
! Comments&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;CIColor&amp;lt;/tt&amp;gt; Additions &lt;br /&gt;
| 10.4 &lt;br /&gt;
| Not Implemented &lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;CIImage&amp;lt;/tt&amp;gt; Additions&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSActionCell&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAffineTransform&amp;lt;/tt&amp;gt; Additions&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAlert&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;alertWithError&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAnimation&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAppleScript&amp;lt;/tt&amp;gt; Addition&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;activateIgnoringOtherApps&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| The app is always activated unconditionally&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;runModalForWindow relativeToWindow&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Currently just centers window on the screen&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;beginModalSessionForWindow relativeToWindow&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;runModalSession&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Apple's docs state that, before processing the events, it makes the session window key and orders the window front. This method does not attempt to do this because: 1) we don't want to interfere with use of other apps during modal session for this app; 2) occasionally other windows are active and should be usable during modal sessions (e.g., a popup dialog from a modal window); 3) most of the time &amp;lt;tt&amp;gt;beginModalSessionForWindow&amp;lt;/tt&amp;gt; will have been called in advance. If the latter is not the case, you may need to order the window front yourself in advance.&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;beginSheet modalForWindow modalDelegate didEndSelector contextInfo&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Under GNUstep, the sheet aspect is not implemented (just centers window on the screen), but &amp;lt;tt&amp;gt;modalDelegate&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;didEndSelector&amp;lt;/tt&amp;gt; is called if both non-nil.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;endSheet&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;endSheet returnCode&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;preventWindowOrdering&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;hide&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| On OS X this activates the next app that is running, however on GNUstep this is up to the window manager&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;orderedDocuments&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;orderedWindows&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| OS X scripting method to return windows in front-to-back on-screen order for scriptable windows. The GNUstep implementation returns all the windows excluding &amp;lt;tt&amp;gt;NSPanel&amp;lt;/tt&amp;gt;s. some backends may return an array in an unspecified order.&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;cancelUserAttentionRequest&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.1&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;requestUserAttention&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.1&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;replyToOpenToPrint&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSArrayController&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSATSTypesetter&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;appendBezierPathWithPackedGlyphs&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;getLineDash count phase&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: How big is the pattern array?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;stroke&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: I don't see how this should work with color changes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;fill&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: I don't see how this should work with color changes&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;colorizeByMappingGray toColor blackMapping whiteMapping&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Does nothing&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;initWithBitmapDataPlanes pixelsWide pixelsHigh bitsPerSample samplesPerPixel hasAlpha isPlanar colorSpaceName bitmapFormat bytesPerRow bitsPerPixel&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;initForIncrementalLoad&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;bitmapFormat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;representationOfImageRepsInArray usingType properties&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: returns only the first image in the array, and only works for &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; or subclasses thereof.&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;incrementalLoadFromData complete&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;colorAtX Y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColorAtX Y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;getPixel atX y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setPixel atX y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;boxType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setBoxType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setTitle&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;displayColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: why the following? Are we displaying now, or marking for &amp;lt;em&amp;gt;later display&amp;lt;/em&amp;gt;?? Given the name, I think we are displaying &amp;lt;em&amp;gt;now&amp;lt;/em&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;titleheight&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| Nextish look requires 21 here ( hardcode )&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;frameOfInsideOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| xxx what does this one do?&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnContentWidthForColumnWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnWidthForColumnContentWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColumnResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnResizingType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setPrefersAllColumnUserResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;prefersAllColumnUserResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setWidth ofColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;widthOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColumnsAutoSave&amp;lt;em&amp;gt;Name&amp;lt;/em&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| I cannot find &amp;lt;tt&amp;gt;setColumnsAutoSave&amp;lt;/tt&amp;gt; at [http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSBrowser_Class/Reference/Reference.html Apple's docs], but I can find &amp;lt;tt&amp;gt;setColumnsAutoSaveName&amp;lt;/tt&amp;gt;. [[User:Martin|Martin]] 06:59, 17 March 2007 (CET)&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnAutoSaveName&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;removeSavedColumnsWithAutoSaveName&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser delegate&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;browser shouldSizeColumn forUserResize toWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser delegate&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;browser sizeToFitWidthOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser notification&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;NSBrowserColumnConfigurationDidChangeNotification&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowserCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;image&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| or use NSCell/image??&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowserCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setImage&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| or use NSCell/setImage??&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBundle&amp;lt;/tt&amp;gt; additions / &amp;lt;tt&amp;gt;contextHelpForKey&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| [http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSBundle_AppKitAdditions/Reference/Reference.html Apple's docs] list the changes&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSButton&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSButtonCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;alternateMnemonic&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| Mnemonics are not supported in Mac OS X.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSButtonCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;alternateMnemonicLocation&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSButtonCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;attributedAlternateTitle&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSButtonCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setAlternateMnemonicLocation&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSButtonCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setAlternateTitleWithMnemonic&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| TODO: We should underline this character&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSButtonCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setAttributedAlternateTitle&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO wiki [http://www.sonappart.net/gnustep/AppKit_Compat.html that]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=ApplicationKitCompatibility&amp;diff=4726</id>
		<title>ApplicationKitCompatibility</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=ApplicationKitCompatibility&amp;diff=4726"/>
		<updated>2007-04-30T00:26:14Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Class / method&lt;br /&gt;
! MacOS X version&lt;br /&gt;
! Status&lt;br /&gt;
! Comments&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;CIColor&amp;lt;/tt&amp;gt; Additions &lt;br /&gt;
| 10.4 &lt;br /&gt;
| Not Implemented &lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;CIImage&amp;lt;/tt&amp;gt; Additions&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSActionCell&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAffineTransform&amp;lt;/tt&amp;gt; Additions&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAlert&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;alertWithError&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAnimation&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAppleScript&amp;lt;/tt&amp;gt; Addition&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;activateIgnoringOtherApps&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| The app is always activated unconditionally&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;runModalForWindow relativeToWindow&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Currently just centers window on the screen&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;beginModalSessionForWindow relativeToWindow&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;runModalSession&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Apple's docs state that, before processing the events, it makes the session window key and orders the window front. This method does not attempt to do this because: 1) we don't want to interfere with use of other apps during modal session for this app; 2) occasionally other windows are active and should be usable during modal sessions (e.g., a popup dialog from a modal window); 3) most of the time &amp;lt;tt&amp;gt;beginModalSessionForWindow&amp;lt;/tt&amp;gt; will have been called in advance. If the latter is not the case, you may need to order the window front yourself in advance.&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;beginSheet modalForWindow modalDelegate didEndSelector contextInfo&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Under GNUstep, the sheet aspect is not implemented (just centers window on the screen), but &amp;lt;tt&amp;gt;modalDelegate&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;didEndSelector&amp;lt;/tt&amp;gt; is called if both non-nil.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;endSheet&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;endSheet returnCode&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;preventWindowOrdering&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;hide&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| On OS X this activates the next app that is running, however on GNUstep this is up to the window manager&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;orderedDocuments&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;orderedWindows&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| OS X scripting method to return windows in front-to-back on-screen order for scriptable windows. The GNUstep implementation returns all the windows excluding &amp;lt;tt&amp;gt;NSPanel&amp;lt;/tt&amp;gt;s. some backends may return an array in an unspecified order.&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;cancelUserAttentionRequest&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.1&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;requestUserAttention&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.1&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;replyToOpenToPrint&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSArrayController&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSATSTypesetter&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;appendBezierPathWithPackedGlyphs&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;getLineDash count phase&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: How big is the pattern array?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;stroke&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: I don't see how this should work with color changes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;fill&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: I don't see how this should work with color changes&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;colorizeByMappingGray toColor blackMapping whiteMapping&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Does nothing&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;initWithBitmapDataPlanes pixelsWide pixelsHigh bitsPerSample samplesPerPixel hasAlpha isPlanar colorSpaceName bitmapFormat bytesPerRow bitsPerPixel&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;initForIncrementalLoad&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;bitmapFormat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;representationOfImageRepsInArray usingType properties&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: returns only the first image in the array, and only works for &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; or subclasses thereof.&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;incrementalLoadFromData complete&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;colorAtX Y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColorAtX Y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;getPixel atX y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setPixel atX y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;boxType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setBoxType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setTitle&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;displayColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: why the following? Are we displaying now, or marking for &amp;lt;em&amp;gt;later display&amp;lt;/em&amp;gt;?? Given the name, I think we are displaying &amp;lt;em&amp;gt;now&amp;lt;/em&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;titleheight&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| Nextish look requires 21 here ( hardcode )&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;frameOfInsideOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| xxx what does this one do?&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnContentWidthForColumnWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnWidthForColumnContentWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColumnResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnResizingType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setPrefersAllColumnUserResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;prefersAllColumnUserResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setWidth ofColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;widthOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColumnsAutoSave&amp;lt;em&amp;gt;Name&amp;lt;/em&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| I cannot find &amp;lt;tt&amp;gt;setColumnsAutoSave&amp;lt;/tt&amp;gt; at [http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSBrowser_Class/Reference/Reference.html Apple's docs], but I can find &amp;lt;tt&amp;gt;setColumnsAutoSaveName&amp;lt;/tt&amp;gt;. [[User:Martin|Martin]] 06:59, 17 March 2007 (CET)&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnAutoSaveName&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;removeSavedColumnsWithAutoSaveName&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser delegate&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;browser shouldSizeColumn forUserResize toWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser delegate&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;browser sizeToFitWidthOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser notification&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;NSBrowserColumnConfigurationDidChangeNotification&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowserCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;image&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| or use NSCell/image??&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowserCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setImage&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| or use NSCell/setImage??&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBundle&amp;lt;/tt&amp;gt; additions / &amp;lt;tt&amp;gt;contextHelpForKey&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| [http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSBundle_AppKitAdditions/Reference/Reference.html Apple's docs] list the changes&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSButton&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSButtonCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;alternateMnemonic&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| Mnemonics are not supported in Mac OS X.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSButtonCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;alternateMnemonicLocation&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSButtonCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;attributedAlternateTitle&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSButtonCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setAlternateMnemonicLocation&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSButtonCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setAlternateTitleWithMnemonic&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| TODO: We should underline this character&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO wiki [http://www.sonappart.net/gnustep/AppKit_Compat.html that]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=ApplicationKitCompatibility&amp;diff=4725</id>
		<title>ApplicationKitCompatibility</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=ApplicationKitCompatibility&amp;diff=4725"/>
		<updated>2007-04-30T00:19:28Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Class / method&lt;br /&gt;
! MacOS X version&lt;br /&gt;
! Status&lt;br /&gt;
! Comments&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;CIColor&amp;lt;/tt&amp;gt; Additions &lt;br /&gt;
| 10.4 &lt;br /&gt;
| Not Implemented &lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;CIImage&amp;lt;/tt&amp;gt; Additions&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSActionCell&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAffineTransform&amp;lt;/tt&amp;gt; Additions&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAlert&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;alertWithError&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAnimation&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAppleScript&amp;lt;/tt&amp;gt; Addition&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;activateIgnoringOtherApps&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| The app is always activated unconditionally&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;runModalForWindow relativeToWindow&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Currently just centers window on the screen&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;beginModalSessionForWindow relativeToWindow&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;runModalSession&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Apple's docs state that, before processing the events, it makes the session window key and orders the window front. This method does not attempt to do this because: 1) we don't want to interfere with use of other apps during modal session for this app; 2) occasionally other windows are active and should be usable during modal sessions (e.g., a popup dialog from a modal window); 3) most of the time &amp;lt;tt&amp;gt;beginModalSessionForWindow&amp;lt;/tt&amp;gt; will have been called in advance. If the latter is not the case, you may need to order the window front yourself in advance.&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;beginSheet modalForWindow modalDelegate didEndSelector contextInfo&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Under GNUstep, the sheet aspect is not implemented (just centers window on the screen), but &amp;lt;tt&amp;gt;modalDelegate&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;didEndSelector&amp;lt;/tt&amp;gt; is called if both non-nil.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;endSheet&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;endSheet returnCode&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;preventWindowOrdering&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;hide&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| On OS X this activates the next app that is running, however on GNUstep this is up to the window manager&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;orderedDocuments&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;orderedWindows&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| OS X scripting method to return windows in front-to-back on-screen order for scriptable windows. The GNUstep implementation returns all the windows excluding &amp;lt;tt&amp;gt;NSPanel&amp;lt;/tt&amp;gt;s. some backends may return an array in an unspecified order.&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;cancelUserAttentionRequest&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.1&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;requestUserAttention&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.1&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;replyToOpenToPrint&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSArrayController&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSATSTypesetter&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;appendBezierPathWithPackedGlyphs&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;getLineDash count phase&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: How big is the pattern array?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;stroke&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: I don't see how this should work with color changes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;fill&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: I don't see how this should work with color changes&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;colorizeByMappingGray toColor blackMapping whiteMapping&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Does nothing&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;initWithBitmapDataPlanes pixelsWide pixelsHigh bitsPerSample samplesPerPixel hasAlpha isPlanar colorSpaceName bitmapFormat bytesPerRow bitsPerPixel&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;initForIncrementalLoad&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;bitmapFormat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;representationOfImageRepsInArray usingType properties&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: returns only the first image in the array, and only works for &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; or subclasses thereof.&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;incrementalLoadFromData complete&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;colorAtX Y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColorAtX Y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;getPixel atX y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setPixel atX y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;boxType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setBoxType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setTitle&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;displayColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: why the following? Are we displaying now, or marking for &amp;lt;em&amp;gt;later display&amp;lt;/em&amp;gt;?? Given the name, I think we are displaying &amp;lt;em&amp;gt;now&amp;lt;/em&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;titleheight&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| Nextish look requires 21 here ( hardcode )&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;frameOfInsideOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| xxx what does this one do?&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnContentWidthForColumnWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnWidthForColumnContentWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColumnResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnResizingType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setPrefersAllColumnUserResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;prefersAllColumnUserResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setWidth ofColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;widthOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColumnsAutoSave&amp;lt;em&amp;gt;Name&amp;lt;/em&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| I cannot find &amp;lt;tt&amp;gt;setColumnsAutoSave&amp;lt;/tt&amp;gt; at [http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSBrowser_Class/Reference/Reference.html Apple's docs], but I can find &amp;lt;tt&amp;gt;setColumnsAutoSaveName&amp;lt;/tt&amp;gt;. [[User:Martin|Martin]] 06:59, 17 March 2007 (CET)&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnAutoSaveName&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;removeSavedColumnsWithAutoSaveName&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser delegate&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;browser shouldSizeColumn forUserResize toWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser delegate&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;browser sizeToFitWidthOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser notification&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;NSBrowserColumnConfigurationDidChangeNotification&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowserCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;image&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| or use NSCell/image??&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowserCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setImage&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| or use NSCell/setImage??&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBundle&amp;lt;/tt&amp;gt; additions / &amp;lt;tt&amp;gt;contextHelpForKey&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| [http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSBundle_AppKitAdditions/Reference/Reference.html Apple's docs] list the changes&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSButton&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSButtonCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;alternateMnemonic&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| Mnemonics are not supported in Mac OS X.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSButtonCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;alternateMnemonicLocation&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO wiki [http://www.sonappart.net/gnustep/AppKit_Compat.html that]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=ApplicationKitCompatibility&amp;diff=4721</id>
		<title>ApplicationKitCompatibility</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=ApplicationKitCompatibility&amp;diff=4721"/>
		<updated>2007-04-23T03:51:41Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Class / method&lt;br /&gt;
! MacOS X version&lt;br /&gt;
! Status&lt;br /&gt;
! Comments&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;CIColor&amp;lt;/tt&amp;gt; Additions &lt;br /&gt;
| 10.4 &lt;br /&gt;
| Not Implemented &lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;CIImage&amp;lt;/tt&amp;gt; Additions&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSActionCell&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAffineTransform&amp;lt;/tt&amp;gt; Additions&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAlert&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;alertWithError&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAnimation&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAppleScript&amp;lt;/tt&amp;gt; Addition&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;activateIgnoringOtherApps&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| The app is always activated unconditionally&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;runModalForWindow relativeToWindow&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Currently just centers window on the screen&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;beginModalSessionForWindow relativeToWindow&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;runModalSession&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Apple's docs state that, before processing the events, it makes the session window key and orders the window front. This method does not attempt to do this because: 1) we don't want to interfere with use of other apps during modal session for this app; 2) occasionally other windows are active and should be usable during modal sessions (e.g., a popup dialog from a modal window); 3) most of the time &amp;lt;tt&amp;gt;beginModalSessionForWindow&amp;lt;/tt&amp;gt; will have been called in advance. If the latter is not the case, you may need to order the window front yourself in advance.&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;beginSheet modalForWindow modalDelegate didEndSelector contextInfo&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Under GNUstep, the sheet aspect is not implemented (just centers window on the screen), but &amp;lt;tt&amp;gt;modalDelegate&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;didEndSelector&amp;lt;/tt&amp;gt; is called if both non-nil.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;endSheet&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;endSheet returnCode&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;preventWindowOrdering&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;hide&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| On OS X this activates the next app that is running, however on GNUstep this is up to the window manager&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;orderedDocuments&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;orderedWindows&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| OS X scripting method to return windows in front-to-back on-screen order for scriptable windows. The GNUstep implementation returns all the windows excluding &amp;lt;tt&amp;gt;NSPanel&amp;lt;/tt&amp;gt;s. some backends may return an array in an unspecified order.&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;cancelUserAttentionRequest&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.1&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;requestUserAttention&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.1&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;replyToOpenToPrint&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSArrayController&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSATSTypesetter&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;appendBezierPathWithPackedGlyphs&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;getLineDash count phase&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: How big is the pattern array?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;stroke&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: I don't see how this should work with color changes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;fill&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: I don't see how this should work with color changes&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;colorizeByMappingGray toColor blackMapping whiteMapping&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Does nothing&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;initWithBitmapDataPlanes pixelsWide pixelsHigh bitsPerSample samplesPerPixel hasAlpha isPlanar colorSpaceName bitmapFormat bytesPerRow bitsPerPixel&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;initForIncrementalLoad&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;bitmapFormat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;representationOfImageRepsInArray usingType properties&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: returns only the first image in the array, and only works for &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; or subclasses thereof.&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;incrementalLoadFromData complete&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;colorAtX Y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColorAtX Y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;getPixel atX y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setPixel atX y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;boxType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setBoxType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setTitle&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;displayColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: why the following? Are we displaying now, or marking for &amp;lt;em&amp;gt;later display&amp;lt;/em&amp;gt;?? Given the name, I think we are displaying &amp;lt;em&amp;gt;now&amp;lt;/em&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;titleheight&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| Nextish look requires 21 here ( hardcode )&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;frameOfInsideOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| xxx what does this one do?&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnContentWidthForColumnWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnWidthForColumnContentWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColumnResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnResizingType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setPrefersAllColumnUserResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;prefersAllColumnUserResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setWidth ofColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;widthOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColumnsAutoSave&amp;lt;em&amp;gt;Name&amp;lt;/em&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| I cannot find &amp;lt;tt&amp;gt;setColumnsAutoSave&amp;lt;/tt&amp;gt; at [http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSBrowser_Class/Reference/Reference.html Apple's docs], but I can find &amp;lt;tt&amp;gt;setColumnsAutoSaveName&amp;lt;/tt&amp;gt;. [[User:Martin|Martin]] 06:59, 17 March 2007 (CET)&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnAutoSaveName&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;removeSavedColumnsWithAutoSaveName&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser delegate&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;browser shouldSizeColumn forUserResize toWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser delegate&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;browser sizeToFitWidthOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser notification&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;NSBrowserColumnConfigurationDidChangeNotification&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowserCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;image&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| or use NSCell/image??&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowserCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setImage&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| or use NSCell/setImage??&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBundle&amp;lt;/tt&amp;gt; additions / &amp;lt;tt&amp;gt;contextHelpForKey&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| [http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSBundle_AppKitAdditions/Reference/Reference.html Apple's docs] list the changes&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSButton&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO wiki [http://www.sonappart.net/gnustep/AppKit_Compat.html that]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=ApplicationKitCompatibility&amp;diff=4720</id>
		<title>ApplicationKitCompatibility</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=ApplicationKitCompatibility&amp;diff=4720"/>
		<updated>2007-04-23T03:48:37Z</updated>

		<summary type="html">&lt;p&gt;Martin: typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Class / method&lt;br /&gt;
! MacOS X version&lt;br /&gt;
! Status&lt;br /&gt;
! Comments&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;CIColor&amp;lt;/tt&amp;gt; Additions &lt;br /&gt;
| 10.4 &lt;br /&gt;
| Not Implemented &lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;CIImage&amp;lt;/tt&amp;gt; Additions&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSActionCell&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAffineTransform&amp;lt;/tt&amp;gt; Additions&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAlert&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;alertWithError&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAnimation&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAppleScript&amp;lt;/tt&amp;gt; Addition&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;activateIgnoringOtherApps&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| The app is always activated unconditionally&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;runModalForWindow relativeToWindow&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Currently just centers window on the screen&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;beginModalSessionForWindow relativeToWindow&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;runModalSession&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Apple's docs state that, before processing the events, it makes the session window key and orders the window front. This method does not attempt to do this because: 1) we don't want to interfere with use of other apps during modal session for this app; 2) occasionally other windows are active and should be usable during modal sessions (e.g., a popup dialog from a modal window); 3) most of the time &amp;lt;tt&amp;gt;beginModalSessionForWindow&amp;lt;/tt&amp;gt; will have been called in advance. If the latter is not the case, you may need to order the window front yourself in advance.&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;beginSheet modalForWindow modalDelegate didEndSelector contextInfo&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Under GNUstep, the sheet aspect is not implemented (just centers window on the screen), but &amp;lt;tt&amp;gt;modalDelegate&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;didEndSelector&amp;lt;/tt&amp;gt; is called if both non-nil.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;endSheet&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;endSheet returnCode&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;preventWindowOrdering&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;hide&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| On OS X this activates the next app that is running, however on GNUstep this is up to the window manager&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;orderedDocuments&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;orderedWindows&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| OS X scripting method to return windows in front-to-back on-screen order for scriptable windows. The GNUstep implementation returns all the windows excluding &amp;lt;tt&amp;gt;NSPanel&amp;lt;/tt&amp;gt;s. some backends may return an array in an unspecified order.&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;cancelUserAttentionRequest&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.1&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;requestUserAttention&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.1&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;replyToOpenToPrint&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSArrayController&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSATSTypesetter&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;appendBezierPathWithPackedGlyphs&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;getLineDash count phase&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: How big is the pattern array?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;stroke&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: I don't see how this should work with color changes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;fill&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: I don't see how this should work with color changes&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;colorizeByMappingGray toColor blackMapping whiteMapping&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Does nothing&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;initWithBitmapDataPlanes pixelsWide pixelsHigh bitsPerSample samplesPerPixel hasAlpha isPlanar colorSpaceName bitmapFormat bytesPerRow bitsPerPixel&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;initForIncrementalLoad&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;bitmapFormat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;representationOfImageRepsInArray usingType properties&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: returns only the first image in the array, and only works for &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; or subclasses thereof.&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;incrementalLoadFromData complete&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;colorAtX Y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColorAtX Y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;getPixel atX y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setPixel atX y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;boxType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setBoxType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setTitle&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;displayColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: why the following? Are we displaying now, or marking for &amp;lt;em&amp;gt;later display&amp;lt;/em&amp;gt;?? Given the name, I think we are displaying &amp;lt;em&amp;gt;now&amp;lt;/em&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;titleheight&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| Nextish look requires 21 here ( hardcode )&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;frameOfInsideOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| xxx what does this one do?&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnContentWidthForColumnWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnWidthForColumnContentWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColumnResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnResizingType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setPrefersAllColumnUserResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;prefersAllColumnUserResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setWidth ofColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;widthOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColumnsAutoSave&amp;lt;em&amp;gt;Name&amp;lt;/em&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| I cannot find &amp;lt;tt&amp;gt;setColumnsAutoSave&amp;lt;/tt&amp;gt; at [http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSBrowser_Class/Reference/Reference.html Apple's docs], but I can find &amp;lt;tt&amp;gt;setColumnsAutoSaveName&amp;lt;/tt&amp;gt;. [[User:Martin|Martin]] 06:59, 17 March 2007 (CET)&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnAutoSaveName&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;removeSavedColumnsWithAutoSaveName&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser delegate&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;browser shouldSizeColumn forUserResize toWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser delegate&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;browser sizeToFitWidthOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser notification&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;NSBrowserColumnConfigurationDidChangeNotification&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowserCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;image&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| or use NSCell/image??&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowserCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setImage&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| or use NSCell/setImage??&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBundle&amp;lt;/tt&amp;gt; additions / &amp;lt;tt&amp;gt;contextHelpForKey&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| [http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSBundle_AppKitAdditions/Reference/Reference.html Apple's docs] list the changes&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO wiki [http://www.sonappart.net/gnustep/AppKit_Compat.html that]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=ApplicationKitCompatibility&amp;diff=4719</id>
		<title>ApplicationKitCompatibility</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=ApplicationKitCompatibility&amp;diff=4719"/>
		<updated>2007-04-23T03:44:03Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Class / method&lt;br /&gt;
! MacOS X version&lt;br /&gt;
! Status&lt;br /&gt;
! Comments&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;CIColor&amp;lt;/tt&amp;gt; Additions &lt;br /&gt;
| 10.4 &lt;br /&gt;
| Not Implemented &lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;CIImage&amp;lt;/tt&amp;gt; Additions&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSActionCell&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAffineTransform&amp;lt;/tt&amp;gt; Additions&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAlert&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;alertWithError&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAnimation&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAppleScript&amp;lt;/tt&amp;gt; Addition&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;activateIgnoringOtherApps&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| The app is always activated unconditionally&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;runModalForWindow relativeToWindow&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Currently just centers window on the screen&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;beginModalSessionForWindow relativeToWindow&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;runModalSession&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Apple's docs state that, before processing the events, it makes the session window key and orders the window front. This method does not attempt to do this because: 1) we don't want to interfere with use of other apps during modal session for this app; 2) occasionally other windows are active and should be usable during modal sessions (e.g., a popup dialog from a modal window); 3) most of the time &amp;lt;tt&amp;gt;beginModalSessionForWindow&amp;lt;/tt&amp;gt; will have been called in advance. If the latter is not the case, you may need to order the window front yourself in advance.&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;beginSheet modalForWindow modalDelegate didEndSelector contextInfo&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Under GNUstep, the sheet aspect is not implemented (just centers window on the screen), but &amp;lt;tt&amp;gt;modalDelegate&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;didEndSelector&amp;lt;/tt&amp;gt; is called if both non-nil.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;endSheet&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;endSheet returnCode&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;preventWindowOrdering&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;hide&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| On OS X this activates the next app that is running, however on GNUstep this is up to the window manager&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;orderedDocuments&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;orderedWindows&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| OS X scripting method to return windows in front-to-back on-screen order for scriptable windows. The GNUstep implementation returns all the windows excluding &amp;lt;tt&amp;gt;NSPanel&amp;lt;/tt&amp;gt;s. some backends may return an array in an unspecified order.&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;cancelUserAttentionRequest&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.1&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;requestUserAttention&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.1&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;replyToOpenToPrint&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSArrayController&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSATSTypesetter&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;appendBezierPathWithPackedGlyphs&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;getLineDash count phase&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: How big is the pattern array?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;stroke&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: I don't see how this should work with color changes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;fill&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: I don't see how this should work with color changes&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;colorizeByMappingGray toColor blackMapping whiteMapping&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Does nothing&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;initWithBitmapDataPlanes pixelsWide pixelsHigh bitsPerSample samplesPerPixel hasAlpha isPlanar colorSpaceName bitmapFormat bytesPerRow bitsPerPixel&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;initForIncrementalLoad&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;bitmapFormat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;representationOfImageRepsInArray usingType properties&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: returns only the first image in the array, and only works for &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; or subclasses thereof.&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;incrementalLoadFromData complete&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;colorAtX Y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColorAtX Y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;getPixel atX y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setPixel atX y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;boxType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setBoxType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setTitle&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;displayColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: why the following? Are we displaying now, or marking for &amp;lt;em&amp;gt;later display&amp;lt;/em&amp;gt;?? Given the name, I think we are displaying &amp;lt;em&amp;gt;now&amp;lt;/em&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;titleheight&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| Nextish look requires 21 here ( hardcode )&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;frameOfInsideOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| xxx what does this one do?&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnContentWidthForColumnWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnWidthForColumnContentWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColumnResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnResizingType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setPrefersAllColumnUserResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;prefersAllColumnUserResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setWidth ofColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;widthOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColumnsAutoSave&amp;lt;em&amp;gt;Name&amp;lt;/em&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| I cannot find &amp;lt;tt&amp;gt;setColumnsAutoSave&amp;lt;/tt&amp;gt; at [http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSBrowser_Class/Reference/Reference.html Apple's docs], but I can find &amp;lt;tt&amp;gt;setColumnsAutoSaveName&amp;lt;/tt&amp;gt;. [[User:Martin|Martin]] 06:59, 17 March 2007 (CET)&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnAutoSaveName&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;removeSavedColumnsWithAutosaveName&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser delegate&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;browser shouldSizeColumn forUserResize toWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser delegate&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;browser sizeToFitWidthOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser notification&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;NSBrowserColumnConfigurationDidChangeNotification&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowserCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;image&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| or use NSCell/image??&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowserCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setImage&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| or use NSCell/setImage??&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBundleAdditions&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;contextHelpForKey&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| [http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSBundle_AppKitAdditions/Reference/Reference.html Apple's docs] list the changes&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO wiki [http://www.sonappart.net/gnustep/AppKit_Compat.html that]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=ApplicationKitCompatibility&amp;diff=4687</id>
		<title>ApplicationKitCompatibility</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=ApplicationKitCompatibility&amp;diff=4687"/>
		<updated>2007-04-11T23:58:04Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Class / method&lt;br /&gt;
! MacOS X version&lt;br /&gt;
! Status&lt;br /&gt;
! Comments&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;CIColor&amp;lt;/tt&amp;gt; Additions &lt;br /&gt;
| 10.4 &lt;br /&gt;
| Not Implemented &lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;CIImage&amp;lt;/tt&amp;gt; Additions&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSActionCell&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAffineTransform&amp;lt;/tt&amp;gt; Additions&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAlert&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;alertWithError&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAnimation&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAppleScript&amp;lt;/tt&amp;gt; Addition&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;activateIgnoringOtherApps&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| The app is always activated unconditionally&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;runModalForWindow relativeToWindow&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Currently just centers window on the screen&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;beginModalSessionForWindow relativeToWindow&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;runModalSession&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Apple's docs state that, before processing the events, it makes the session window key and orders the window front. This method does not attempt to do this because: 1) we don't want to interfere with use of other apps during modal session for this app; 2) occasionally other windows are active and should be usable during modal sessions (e.g., a popup dialog from a modal window); 3) most of the time &amp;lt;tt&amp;gt;beginModalSessionForWindow&amp;lt;/tt&amp;gt; will have been called in advance. If the latter is not the case, you may need to order the window front yourself in advance.&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;beginSheet modalForWindow modalDelegate didEndSelector contextInfo&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Under GNUstep, the sheet aspect is not implemented (just centers window on the screen), but &amp;lt;tt&amp;gt;modalDelegate&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;didEndSelector&amp;lt;/tt&amp;gt; is called if both non-nil.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;endSheet&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;endSheet returnCode&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;preventWindowOrdering&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;hide&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| On OS X this activates the next app that is running, however on GNUstep this is up to the window manager&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;orderedDocuments&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;orderedWindows&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| OS X scripting method to return windows in front-to-back on-screen order for scriptable windows. The GNUstep implementation returns all the windows excluding &amp;lt;tt&amp;gt;NSPanel&amp;lt;/tt&amp;gt;s. some backends may return an array in an unspecified order.&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;cancelUserAttentionRequest&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.1&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;requestUserAttention&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.1&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;replyToOpenToPrint&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSArrayController&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSATSTypesetter&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;appendBezierPathWithPackedGlyphs&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;getLineDash count phase&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: How big is the pattern array?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;stroke&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: I don't see how this should work with color changes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;fill&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: I don't see how this should work with color changes&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;colorizeByMappingGray toColor blackMapping whiteMapping&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Does nothing&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;initWithBitmapDataPlanes pixelsWide pixelsHigh bitsPerSample samplesPerPixel hasAlpha isPlanar colorSpaceName bitmapFormat bytesPerRow bitsPerPixel&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;initForIncrementalLoad&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;bitmapFormat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;representationOfImageRepsInArray usingType properties&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: returns only the first image in the array, and only works for &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; or subclasses thereof.&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;incrementalLoadFromData complete&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;colorAtX Y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColorAtX Y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;getPixel atX y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setPixel atX y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;boxType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setBoxType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setTitle&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;displayColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: why the following? Are we displaying now, or marking for &amp;lt;em&amp;gt;later display&amp;lt;/em&amp;gt;?? Given the name, I think we are displaying &amp;lt;em&amp;gt;now&amp;lt;/em&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;titleheight&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| Nextish look requires 21 here ( hardcode )&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;frameOfInsideOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| xxx what does this one do?&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnContentWidthForColumnWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnWidthForColumnContentWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColumnResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnResizingType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setPrefersAllColumnUserResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;prefersAllColumnUserResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setWidth ofColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;widthOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColumnsAutoSave&amp;lt;em&amp;gt;Name&amp;lt;/em&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| I cannot find &amp;lt;tt&amp;gt;setColumnsAutoSave&amp;lt;/tt&amp;gt; at [http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSBrowser_Class/Reference/Reference.html Apple's docs], but I can find &amp;lt;tt&amp;gt;setColumnsAutoSaveName&amp;lt;/tt&amp;gt;. [[User:Martin|Martin]] 06:59, 17 March 2007 (CET)&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnAutoSaveName&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;removeSavedColumnsWithAutosaveName&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser delegate&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;browser shouldSizeColumn forUserResize toWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser delegate&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;browser sizeToFitWidthOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser notification&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;NSBrowserColumnConfigurationDidChangeNotification&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowserCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;image&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| or use NSCell/image??&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowserCell&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setImage&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| or use NSCell/setImage??&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO wiki [http://www.sonappart.net/gnustep/AppKit_Compat.html that]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=ApplicationKitCompatibility&amp;diff=4686</id>
		<title>ApplicationKitCompatibility</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=ApplicationKitCompatibility&amp;diff=4686"/>
		<updated>2007-04-11T23:47:55Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Class / method&lt;br /&gt;
! MacOS X version&lt;br /&gt;
! Status&lt;br /&gt;
! Comments&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;CIColor&amp;lt;/tt&amp;gt; Additions &lt;br /&gt;
| 10.4 &lt;br /&gt;
| Not Implemented &lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;CIImage&amp;lt;/tt&amp;gt; Additions&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSActionCell&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAffineTransform&amp;lt;/tt&amp;gt; Additions&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAlert&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;alertWithError&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAnimation&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAppleScript&amp;lt;/tt&amp;gt; Addition&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;activateIgnoringOtherApps&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| The app is always activated unconditionally&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;runModalForWindow relativeToWindow&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Currently just centers window on the screen&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;beginModalSessionForWindow relativeToWindow&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;runModalSession&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Apple's docs state that, before processing the events, it makes the session window key and orders the window front. This method does not attempt to do this because: 1) we don't want to interfere with use of other apps during modal session for this app; 2) occasionally other windows are active and should be usable during modal sessions (e.g., a popup dialog from a modal window); 3) most of the time &amp;lt;tt&amp;gt;beginModalSessionForWindow&amp;lt;/tt&amp;gt; will have been called in advance. If the latter is not the case, you may need to order the window front yourself in advance.&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;beginSheet modalForWindow modalDelegate didEndSelector contextInfo&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Under GNUstep, the sheet aspect is not implemented (just centers window on the screen), but &amp;lt;tt&amp;gt;modalDelegate&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;didEndSelector&amp;lt;/tt&amp;gt; is called if both non-nil.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;endSheet&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;endSheet returnCode&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;preventWindowOrdering&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;hide&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| On OS X this activates the next app that is running, however on GNUstep this is up to the window manager&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;orderedDocuments&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;orderedWindows&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| OS X scripting method to return windows in front-to-back on-screen order for scriptable windows. The GNUstep implementation returns all the windows excluding &amp;lt;tt&amp;gt;NSPanel&amp;lt;/tt&amp;gt;s. some backends may return an array in an unspecified order.&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;cancelUserAttentionRequest&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.1&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;requestUserAttention&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.1&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;replyToOpenToPrint&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSArrayController&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSATSTypesetter&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;appendBezierPathWithPackedGlyphs&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;getLineDash count phase&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: How big is the pattern array?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;stroke&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: I don't see how this should work with color changes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;fill&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: I don't see how this should work with color changes&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;colorizeByMappingGray toColor blackMapping whiteMapping&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Does nothing&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;initWithBitmapDataPlanes pixelsWide pixelsHigh bitsPerSample samplesPerPixel hasAlpha isPlanar colorSpaceName bitmapFormat bytesPerRow bitsPerPixel&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;initForIncrementalLoad&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;bitmapFormat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;representationOfImageRepsInArray usingType properties&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: returns only the first image in the array, and only works for &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; or subclasses thereof.&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;incrementalLoadFromData complete&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;colorAtX Y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColorAtX Y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;getPixel atX y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setPixel atX y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;boxType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setBoxType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setTitle&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;displayColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: why the following? Are we displaying now, or marking for &amp;lt;em&amp;gt;later display&amp;lt;/em&amp;gt;?? Given the name, I think we are displaying &amp;lt;em&amp;gt;now&amp;lt;/em&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;titleheight&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| Nextish look requires 21 here ( hardcode )&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;frameOfInsideOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| xxx what does this one do?&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnContentWidthForColumnWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnWidthForColumnContentWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColumnResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnResizingType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setPrefersAllColumnUserResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;prefersAllColumnUserResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setWidth ofColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;widthOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColumnsAutoSave&amp;lt;em&amp;gt;Name&amp;lt;/em&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| I cannot find &amp;lt;tt&amp;gt;setColumnsAutoSave&amp;lt;/tt&amp;gt; at [http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSBrowser_Class/Reference/Reference.html Apple's docs], but I can find &amp;lt;tt&amp;gt;setColumnsAutoSaveName&amp;lt;/tt&amp;gt;. [[User:Martin|Martin]] 06:59, 17 March 2007 (CET)&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnAutoSaveName&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;removeSavedColumnsWithAutosaveName&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser delegate&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;browser shouldSizeColumn forUserResize toWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser delegate&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;browser sizeToFitWidthOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser notification&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;NSBrowserColumnConfigurationDidChangeNotification&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO wiki [http://www.sonappart.net/gnustep/AppKit_Compat.html that]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=ApplicationKitCompatibility&amp;diff=4685</id>
		<title>ApplicationKitCompatibility</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=ApplicationKitCompatibility&amp;diff=4685"/>
		<updated>2007-04-11T23:42:56Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Class / method&lt;br /&gt;
! MacOS X version&lt;br /&gt;
! Status&lt;br /&gt;
! Comments&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;CIColor&amp;lt;/tt&amp;gt; Additions &lt;br /&gt;
| 10.4 &lt;br /&gt;
| Not Implemented &lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;CIImage&amp;lt;/tt&amp;gt; Additions&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSActionCell&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAffineTransform&amp;lt;/tt&amp;gt; Additions&lt;br /&gt;
| 10.0&lt;br /&gt;
| Looks Good&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAlert&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;alertWithError&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAnimation&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSAppleScript&amp;lt;/tt&amp;gt; Addition&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;activateIgnoringOtherApps&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| The app is always activated unconditionally&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;runModalForWindow relativeToWindow&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Currently just centers window on the screen&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;beginModalSessionForWindow relativeToWindow&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;runModalSession&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Apple's docs state that, before processing the events, it makes the session window key and orders the window front. This method does not attempt to do this because: 1) we don't want to interfere with use of other apps during modal session for this app; 2) occasionally other windows are active and should be usable during modal sessions (e.g., a popup dialog from a modal window); 3) most of the time &amp;lt;tt&amp;gt;beginModalSessionForWindow&amp;lt;/tt&amp;gt; will have been called in advance. If the latter is not the case, you may need to order the window front yourself in advance.&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;beginSheet modalForWindow modalDelegate didEndSelector contextInfo&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Under GNUstep, the sheet aspect is not implemented (just centers window on the screen), but &amp;lt;tt&amp;gt;modalDelegate&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;didEndSelector&amp;lt;/tt&amp;gt; is called if both non-nil.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;endSheet&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;endSheet returnCode&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;preventWindowOrdering&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;hide&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| On OS X this activates the next app that is running, however on GNUstep this is up to the window manager&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;orderedDocuments&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;orderedWindows&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| OS X scripting method to return windows in front-to-back on-screen order for scriptable windows. The GNUstep implementation returns all the windows excluding &amp;lt;tt&amp;gt;NSPanel&amp;lt;/tt&amp;gt;s. some backends may return an array in an unspecified order.&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;cancelUserAttentionRequest&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.1&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;requestUserAttention&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.1&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSApplication&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;replyToOpenToPrint&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSArrayController&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSATSTypesetter&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;appendBezierPathWithPackedGlyphs&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;getLineDash count phase&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: How big is the pattern array?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;stroke&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: I don't see how this should work with color changes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBezierPath&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;fill&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: I don't see how this should work with color changes&lt;br /&gt;
|- style=&amp;quot;background-color:yellow;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;colorizeByMappingGray toColor blackMapping whiteMapping&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Behaves Differently&lt;br /&gt;
| Does nothing&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;initWithBitmapDataPlanes pixelsWide pixelsHigh bitsPerSample samplesPerPixel hasAlpha isPlanar colorSpaceName bitmapFormat bytesPerRow bitsPerPixel&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;initForIncrementalLoad&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;bitmapFormat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;representationOfImageRepsInArray usingType properties&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: returns only the first image in the array, and only works for &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; or subclasses thereof.&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;incrementalLoadFromData complete&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.2&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;colorAtX Y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColorAtX Y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;getPixel atX y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBitmapImageRep&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setPixel atX y&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.4&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;boxType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setBoxType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBox&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setTitle&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;displayColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| FIXME: why the following? Are we displaying now, or marking for &amp;lt;em&amp;gt;later display&amp;lt;/em&amp;gt;?? Given the name, I think we are displaying &amp;lt;em&amp;gt;now&amp;lt;/em&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;titleheight&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| Nextish look requires 21 here ( hardcode )&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;frameOfInsideOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.0&lt;br /&gt;
| ?&lt;br /&gt;
| xxx what does this one do?&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnContentWidthForColumnWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnWidthForColumnContentWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColumnResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnResizingType&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setPrefersAllColumnUserResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;prefersAllColumnUserResizing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setWidth ofColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;widthOfColumn&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;setColumnsAutoSave&amp;lt;em&amp;gt;Name&amp;lt;/em&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| I cannot find &amp;lt;tt&amp;gt;setColumnsAutoSave&amp;lt;/tt&amp;gt; at [http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSBrowser_Class/Reference/Reference.html Apple's docs], but I can find &amp;lt;tt&amp;gt;setColumnsAutoSaveName&amp;lt;/tt&amp;gt;. [[User:Martin|Martin]] 06:59, 17 March 2007 (CET)&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;columnAutoSaveName&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;removeSavedColumnsWithAutosaveName&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
| &amp;lt;tt&amp;gt;NSBrowser delegate&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;browser shouldSizeColumn forUserResize toWidth&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 10.3&lt;br /&gt;
| Not Implemented&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO wiki [http://www.sonappart.net/gnustep/AppKit_Compat.html that]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=NSData&amp;diff=4673</id>
		<title>NSData</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=NSData&amp;diff=4673"/>
		<updated>2007-04-09T05:20:40Z</updated>

		<summary type="html">&lt;p&gt;Martin: rewording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''NSData''' is a class in Foundation for working with binary data that does not fit any specific type. Methods are provided that work with generic data, such as reading and writing files, working with data in memory, and obtaining data over the network.&lt;br /&gt;
&lt;br /&gt;
The data that an NSData object holds can come from a file, from a memory location, or from the network. Methods are provided that can move the data between all three of these. NSData is immutable, so a similar mutable type '''NSMutableData''' is provided (also in &amp;lt;tt&amp;gt;NSData.h&amp;lt;/tt&amp;gt;). GNUstep defines extensions to NSData for use with shared memory. Also GNUstep adds methods to calculate a checksum and obtain various representations of the data (e.g. hexadecimal).&lt;br /&gt;
&lt;br /&gt;
NSData inherits from [[NSObject]]. It is declared in &amp;lt;tt&amp;gt;Foundation/NSData.h&amp;lt;/tt&amp;gt; and conforms to [[NSCoding]], [[NSCopying]], and NSMutableCopying.&lt;br /&gt;
&lt;br /&gt;
[[Category:Foundation]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=NSData&amp;diff=4672</id>
		<title>NSData</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=NSData&amp;diff=4672"/>
		<updated>2007-04-09T05:19:19Z</updated>

		<summary type="html">&lt;p&gt;Martin: overview&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''NSData''' is a class in Foundation for working with binary data that does not fit any specific type. Methods are provided that work with generic data, such as reading and writing files, working with data in memory, and obtaining data over the network.&lt;br /&gt;
&lt;br /&gt;
The data that an NSData object holds can come from a file, from a memory location, or from the network. Methods are provided that can move the data between all three of these. NSData is immutable, so a similar mutable type '''NSMutableData''' is provided (also in &amp;lt;tt&amp;gt;NSData.h&amp;lt;/tt&amp;gt;). GNUstep also defines extensions to NSData for use with shared memory. Also GNUstep adds methods to calculate a checksum and obtain various representations of the data (e.g. hexadecimal).&lt;br /&gt;
&lt;br /&gt;
NSData inherits from [[NSObject]]. It is declared in &amp;lt;tt&amp;gt;Foundation/NSData.h&amp;lt;/tt&amp;gt; and conforms to [[NSCoding]], [[NSCopying]], and NSMutableCopying.&lt;br /&gt;
&lt;br /&gt;
[[Category:Foundation]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=NSBundle&amp;diff=4671</id>
		<title>NSBundle</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=NSBundle&amp;diff=4671"/>
		<updated>2007-04-09T05:12:07Z</updated>

		<summary type="html">&lt;p&gt;Martin: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''NSBundle''' is a class in Foundation for the manipulation of bundles. Bundles are specialized directories that collect related resources for an application or framework (or even an ordinary file) and present them to a user as a single, opaque file. Common resources are images, NIB or GORM interface files, localizations, and executable binaries.&lt;br /&gt;
&lt;br /&gt;
NSBundle is mostly used to find the executable code for a given bundle (and vice versa), to choose appropriate [[localization]]s, and to locate other resources in a bundle's directory. Currently GNUstep defines two methods in addition to those from OpenStep:  &amp;lt;tt&amp;gt;bundleForLibrary&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;pathForLibraryResource&amp;lt;/tt&amp;gt;. However, these two extensions are experimental and might change.&lt;br /&gt;
&lt;br /&gt;
NSBundle inherits from [[NSObject]] and is declared in &amp;lt;tt&amp;gt;Foundation/NSBundle.h&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Category:Foundation]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=NSBundle&amp;diff=4670</id>
		<title>NSBundle</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=NSBundle&amp;diff=4670"/>
		<updated>2007-04-09T05:00:54Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''NSBundle''' is a class in Foundation for the manipulation of bundles. Bundles are specialized directories that collect related resources for an application or framework (or even an ordinary file) and present them to a user as a single, opaque file. Common resources are images, NIB or GORM interface files, localizations, and executable binaries.&lt;br /&gt;
&lt;br /&gt;
NSBundle is mostly used to find the executable code for a given bundle (and vice versa), to choose appropriate [[localization]]s, and to locate other resources in a bundle's directory. Currently GNUstep defines two methods in addition to those from OpenStep:  &amp;lt;tt&amp;gt;bundleForLibrary&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;pathForLibraryResource&amp;lt;/tt&amp;gt;. However, these two extensions are experimental and might change.&lt;br /&gt;
&lt;br /&gt;
NSBundle inherits from [[NSObject]] and is defined in &amp;lt;tt&amp;gt;Foundation/NSBundle.h&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Category:Foundation]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=NSBundle&amp;diff=4669</id>
		<title>NSBundle</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=NSBundle&amp;diff=4669"/>
		<updated>2007-04-09T04:56:31Z</updated>

		<summary type="html">&lt;p&gt;Martin: Introduction in layman's terms and note GS extensions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''NSBundle''' is a class in Foundation for the manipulation of bundles. Bundles are specialized directories that collect related resources for an application or framework (or even an ordinary file) and present them to a user as a single, opaque file. Common resources are images, NIB or GORM interface files, localizations, and executable binaries.&lt;br /&gt;
&lt;br /&gt;
NSBundle is mostly used to find the executable code for a given bundle (and vice versa), to choose appropriate [[localization]]s, and to locate other resources in a bundle's directory. Currently GNUstep defines two methods in addition to those from OpenStep:  &amp;lt;tt&amp;gt;bundleForLibrary&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;pathForLibraryResource&amp;lt;/tt&amp;gt;. However, these two extensions are experimental and might change.&lt;br /&gt;
&lt;br /&gt;
[[Category:Foundation]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Window_manager&amp;diff=4663</id>
		<title>Window manager</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Window_manager&amp;diff=4663"/>
		<updated>2007-04-04T20:06:47Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In Windows and Mac OS X the window manager is tied into the OS. That's not the case for Linux or BSD. [[Window Maker]] is the recommended window manager for GNUstep, but a standard feature-set is needed. GNUstep-based applications have additional needs beyond traditional window managers, like handling the dock icon or the menus. Collecting the requirements here will lead to a specification, so any window manager can clearly state whether or not it is GNUstep-compliant.&lt;br /&gt;
&lt;br /&gt;
=WM Attributes=&lt;br /&gt;
Headers/x11/XGServerWindow.h defines&lt;br /&gt;
  unsigned long flags&lt;br /&gt;
  unsigned long window_style&lt;br /&gt;
  unsigned long window_level&lt;br /&gt;
  unsigned long reserved&lt;br /&gt;
  Pixmap miniaturize_pixmap;    // pixmap for miniaturize button&lt;br /&gt;
  Pixmap close_pixmap;          // pixmap for close button.&lt;br /&gt;
  Pixmap miniaturize_mask;      // miniaturize pixmap mask&lt;br /&gt;
  Pixmap close_mask;            // close pixmap mask&lt;br /&gt;
  unsigned long extra_flags;&lt;br /&gt;
&lt;br /&gt;
  #define GSWindowStyleAttr                   (1&amp;lt;&amp;lt;0)&lt;br /&gt;
  #define GSWindowLevelAttr                   (1&amp;lt;&amp;lt;1)&lt;br /&gt;
  #define GSMiniaturizePixmapAttr             (1&amp;lt;&amp;lt;3)&lt;br /&gt;
  #define GSClosePixmapAttr                   (1&amp;lt;&amp;lt;4)&lt;br /&gt;
  #define GSMiniaturizeMaskAttr               (1&amp;lt;&amp;lt;5)&lt;br /&gt;
  #define GSCloseMaskAttr                     (1&amp;lt;&amp;lt;6)&lt;br /&gt;
  #define GSExtraFlagsAttr                    (1&amp;lt;&amp;lt;7)&lt;br /&gt;
  #define GSDocumentEditedFlag                (1&amp;lt;&amp;lt;0)&lt;br /&gt;
  #define GSWindowWillResizeNotificationsFlag (1&amp;lt;&amp;lt;1)&lt;br /&gt;
  #define GSWindowWillMoveNotificationsFlag   (1&amp;lt;&amp;lt;2)&lt;br /&gt;
  #define GSNoApplicationIconFlag             (1&amp;lt;&amp;lt;5)&lt;br /&gt;
  #define WMFHideOtherApplications            10&lt;br /&gt;
  #define WMFHideApplication                  12&lt;br /&gt;
&lt;br /&gt;
[http://interfacewm.sourceforge.net/ Interface WM] defines the following, but they might not be necessary:&lt;br /&gt;
  Atom gnustep_wm_attr;&lt;br /&gt;
  Atom gnustep_titlebar_state;&lt;br /&gt;
  Atom gnustep_wm_miniaturizable_window;&lt;br /&gt;
&lt;br /&gt;
=Window Level=&lt;br /&gt;
GNUstep needs arbitrary window levels. [http://standards.freedesktop.org/wm-spec/wm-spec-latest.html Extended Window Manager Hints] defines these two:&lt;br /&gt;
  _NET_WM_STATE_ABOVE, ATOM&lt;br /&gt;
  _NET_WM_STATE_BELOW, ATOM&lt;br /&gt;
&lt;br /&gt;
The rest depends on the function of a window. To obtain good interoperability between different Desktop Environments, the following layered stacking order is recommended, from the bottom to the top:&lt;br /&gt;
# windows of type &amp;lt;tt&amp;gt;_NET_WM_TYPE_DESKTOP&amp;lt;/tt&amp;gt;&lt;br /&gt;
# windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_BELOW&amp;lt;/tt&amp;gt;&lt;br /&gt;
# windows not belonging in any other layer&lt;br /&gt;
# windows of type &amp;lt;tt&amp;gt;_NET_WM_TYPE_DOCK&amp;lt;/tt&amp;gt; (unless they have state &amp;lt;tt&amp;gt;_NET_WM_TYPE_BELOW&amp;lt;/tt&amp;gt;) and windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_ABOVE&amp;lt;/tt&amp;gt;&lt;br /&gt;
# focused windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_FULLSCREEN&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows that are transient for another window should be kept above this window.&lt;br /&gt;
&lt;br /&gt;
The window manager may choose to put some windows in different stacking positions, for example to allow the user to bring currently active window to the top and return it back when the window loses focus.&lt;br /&gt;
&lt;br /&gt;
=Window Style=&lt;br /&gt;
Window style is more or less unchanged, except GNUstep want to display edited document: &amp;lt;tt&amp;gt;GSDocumentEditedFlag&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Window Type=&lt;br /&gt;
EWMH defines:&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DESKTOP, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DOCK, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_TOOLBAR, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_UTILITY, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_SPLASH, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DIALOG, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DROPDOWN_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_POPUP_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_TOOLTIP, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_NOTIFICATION, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_COMBO, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DND, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_NORMAL, ATOM&lt;br /&gt;
&lt;br /&gt;
Comments from Yen-Ju Chen: &amp;quot;GNUstep has no such definition and use window level for this purpose. Personally, I wish GNUstep had a better way to tell which window is for which functions, like app icon, floating panel, menu, key window, main window. The window level is not that reliable when people want to do some tricks. It may not match EWMH one-to-one, but it will be useful for various reasons.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=App Icon=&lt;br /&gt;
GNUstep used to have &amp;lt;tt&amp;gt;NSDockWindowLevel&amp;lt;/tt&amp;gt;, but it is deprecated. So to know which window is the app icon, you have to first find a GNUstep window, check its &amp;lt;tt&amp;gt;group_leader&amp;lt;/tt&amp;gt;, (See &amp;lt;tt&amp;gt;XWMHints&amp;lt;/tt&amp;gt; in X protocols), then check its &amp;lt;tt&amp;gt;icon_window&amp;lt;/tt&amp;gt; which points to app icon. Again, it will be easier if there is hint (see above).&lt;br /&gt;
&lt;br /&gt;
EWMH defines &amp;lt;tt&amp;gt;_NET_WM_ICON&amp;lt;/tt&amp;gt; for app icon image. GNUstep supports it, but I am not sure if it is updated when the app icon image is changed. And if people use app icon as a &amp;lt;tt&amp;gt;NSWindow&amp;lt;/tt&amp;gt; and draw directly on it, there is no way the window manager will know. The solution is that if there is a notification that the icon is redrawn, the window manager or GNUstep can copy (or take a screenshot of) the image from that &amp;lt;tt&amp;gt;NSWindow&amp;lt;/tt&amp;gt; and put it into &amp;lt;tt&amp;gt;_NET_WM_ICON&amp;lt;/tt&amp;gt;. It requires something like &amp;lt;tt&amp;gt;XCopyArea()&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Focus=&lt;br /&gt;
X has focused and unfocused window, GNUstep has key window and main window, plus menu and app icon. I don't know how the chain of focus should go when the window and menu are up and down. But again, if there is a hint for the main window, key window, main menu, etc, it will be easy for the window manager to know where the focus should go. A documentation of how the focus should shift from which to which may help.&lt;br /&gt;
&lt;br /&gt;
=Menus=&lt;br /&gt;
Again, because there are no real hints about which one is the main menu and submenu besides window level, it is hard to find the correct one. So menus are treated as regular windows in most cases.&lt;br /&gt;
&lt;br /&gt;
Besides the focus issue, there is also a boundary issue. Say the user puts the mouse on the right edge of the screen and clicks the right button (bringing up a menu): the main menu will be off of the right boundary. GNUstep tries to move it back, and some window managers also try to move it back. When a window is moved, the mouse tracking may be offset. After the main menu is open, a user clicks on a submenu, which will also be off of the right boundary. Then should the window manager move both the main menu and submenu to the left? Does GNUstep do that? It is not clear which one should do what.&lt;br /&gt;
&lt;br /&gt;
And now, some people like to have a horizontal menu (like Mac OS X) instead of a vertical menu (like NEXTSTEP). They behave differently for submenus. For a horizontal menu, the submenu will close on an action fire. For a vertical menu, the submenu will stay open after an action fire. So I guess only GNUstep can handle it.&lt;br /&gt;
&lt;br /&gt;
=Window Resizing and Moving=&lt;br /&gt;
GNUstep defines:&lt;br /&gt;
  #define GSWindowWillResizeNotificationsFlag  (1&amp;lt;&amp;lt;1)&lt;br /&gt;
  #define GSWindowWillMoveNotificationsFlag    (1&amp;lt;&amp;lt;2)&lt;br /&gt;
I didn't see it in Window Maker, therefore, I don't know whether it is really supported. But it may be key for some windows turning black when resizing.&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Talk:NSString&amp;diff=4662</id>
		<title>Talk:NSString</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Talk:NSString&amp;diff=4662"/>
		<updated>2007-04-04T19:54:51Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I have changed the &amp;quot;Constant Strings&amp;quot; section to the &amp;quot;Constructing Strings&amp;quot; section, and add more ways to create a string object.&lt;br /&gt;
&lt;br /&gt;
--[[User:Kendall|Kendall]] 02:50, 4 April 2007 (CEST)&lt;br /&gt;
:: Nice job. [[User:Martin|Martin]] 21:54, 4 April 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Window_manager&amp;diff=4661</id>
		<title>Window manager</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Window_manager&amp;diff=4661"/>
		<updated>2007-04-04T19:43:57Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* Window Level */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In Windows and Mac OS X the window manager is tied into the OS. That's not the case for Linux or BSD. [[Window Maker]] is the recommended window manager for GNUstep, but a standard feature-set is needed. GNUstep-based applications have additional needs beyond traditional window managers, like handling the dock icon or the menus. Collecting the requirements here will lead to a specification, so any window manager can clearly state whether or not it is GNUstep-compliant.&lt;br /&gt;
&lt;br /&gt;
=Backend WM Attributes=&lt;br /&gt;
Headers/x11/XGServerWindow.h defines&lt;br /&gt;
  unsigned long flags&lt;br /&gt;
  unsigned long window_style&lt;br /&gt;
  unsigned long window_level&lt;br /&gt;
  unsigned long reserved&lt;br /&gt;
  Pixmap miniaturize_pixmap;    // pixmap for miniaturize button&lt;br /&gt;
  Pixmap close_pixmap;          // pixmap for close button.&lt;br /&gt;
  Pixmap miniaturize_mask;      // miniaturize pixmap mask&lt;br /&gt;
  Pixmap close_mask;            // close pixmap mask&lt;br /&gt;
  unsigned long extra_flags;&lt;br /&gt;
&lt;br /&gt;
  #define GSWindowStyleAttr                   (1&amp;lt;&amp;lt;0)&lt;br /&gt;
  #define GSWindowLevelAttr                   (1&amp;lt;&amp;lt;1)&lt;br /&gt;
  #define GSMiniaturizePixmapAttr             (1&amp;lt;&amp;lt;3)&lt;br /&gt;
  #define GSClosePixmapAttr                   (1&amp;lt;&amp;lt;4)&lt;br /&gt;
  #define GSMiniaturizeMaskAttr               (1&amp;lt;&amp;lt;5)&lt;br /&gt;
  #define GSCloseMaskAttr                     (1&amp;lt;&amp;lt;6)&lt;br /&gt;
  #define GSExtraFlagsAttr                    (1&amp;lt;&amp;lt;7)&lt;br /&gt;
  #define GSDocumentEditedFlag                (1&amp;lt;&amp;lt;0)&lt;br /&gt;
  #define GSWindowWillResizeNotificationsFlag (1&amp;lt;&amp;lt;1)&lt;br /&gt;
  #define GSWindowWillMoveNotificationsFlag   (1&amp;lt;&amp;lt;2)&lt;br /&gt;
  #define GSNoApplicationIconFlag             (1&amp;lt;&amp;lt;5)&lt;br /&gt;
  #define WMFHideOtherApplications            10&lt;br /&gt;
  #define WMFHideApplication                  12&lt;br /&gt;
&lt;br /&gt;
=Window Level=&lt;br /&gt;
GNUstep needs arbitrary window levels. [http://standards.freedesktop.org/wm-spec/wm-spec-latest.html Extended Window Manager Hints] defines these two:&lt;br /&gt;
  _NET_WM_STATE_ABOVE, ATOM&lt;br /&gt;
  _NET_WM_STATE_BELOW, ATOM&lt;br /&gt;
&lt;br /&gt;
The rest depends on the function of a window. To obtain good interoperability between different Desktop Environments, the following layered stacking order is recommended, from the bottom to the top:&lt;br /&gt;
# windows of type &amp;lt;tt&amp;gt;_NET_WM_TYPE_DESKTOP&amp;lt;/tt&amp;gt;&lt;br /&gt;
# windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_BELOW&amp;lt;/tt&amp;gt;&lt;br /&gt;
# windows not belonging in any other layer&lt;br /&gt;
# windows of type &amp;lt;tt&amp;gt;_NET_WM_TYPE_DOCK&amp;lt;/tt&amp;gt; (unless they have state &amp;lt;tt&amp;gt;_NET_WM_TYPE_BELOW&amp;lt;/tt&amp;gt;) and windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_ABOVE&amp;lt;/tt&amp;gt;&lt;br /&gt;
# focused windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_FULLSCREEN&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows that are transient for another window should be kept above this window.&lt;br /&gt;
&lt;br /&gt;
The window manager may choose to put some windows in different stacking positions, for example to allow the user to bring currently active window to the top and return it back when the window loses focus.&lt;br /&gt;
&lt;br /&gt;
=Window Style=&lt;br /&gt;
Window style is more or less unchanged, except GNUstep want to display edited document: &amp;lt;tt&amp;gt;GSDocumentEditedFlag&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Window Type=&lt;br /&gt;
EWMH defines:&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DESKTOP, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DOCK, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_TOOLBAR, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_UTILITY, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_SPLASH, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DIALOG, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DROPDOWN_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_POPUP_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_TOOLTIP, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_NOTIFICATION, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_COMBO, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DND, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_NORMAL, ATOM&lt;br /&gt;
&lt;br /&gt;
Comments from Yen-Ju Chen: &amp;quot;GNUstep has no such definition and use window level for this purpose. Personally, I wish GNUstep had a better way to tell which window is for which functions, like app icon, floating panel, menu, key window, main window. The window level is not that reliable when people want to do some tricks. It may not match EWMH one-to-one, but it will be useful for various reasons.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=App Icon=&lt;br /&gt;
GNUstep used to have &amp;lt;tt&amp;gt;NSDockWindowLevel&amp;lt;/tt&amp;gt;, but it is deprecated. So to know which window is the app icon, you have to first find a GNUstep window, check its &amp;lt;tt&amp;gt;group_leader&amp;lt;/tt&amp;gt;, (See &amp;lt;tt&amp;gt;XWMHints&amp;lt;/tt&amp;gt; in X protocols), then check its &amp;lt;tt&amp;gt;icon_window&amp;lt;/tt&amp;gt; which points to app icon. Again, it will be easier if there is hint (see above).&lt;br /&gt;
&lt;br /&gt;
EWMH defines &amp;lt;tt&amp;gt;_NET_WM_ICON&amp;lt;/tt&amp;gt; for app icon image. GNUstep supports it, but I am not sure if it is updated when the app icon image is changed. And if people use app icon as a &amp;lt;tt&amp;gt;NSWindow&amp;lt;/tt&amp;gt; and draw directly on it, there is no way the window manager will know. The solution is that if there is a notification that the icon is redrawn, the window manager or GNUstep can copy (or take a screenshot of) the image from that &amp;lt;tt&amp;gt;NSWindow&amp;lt;/tt&amp;gt; and put it into &amp;lt;tt&amp;gt;_NET_WM_ICON&amp;lt;/tt&amp;gt;. It requires something like &amp;lt;tt&amp;gt;XCopyArea()&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Focus=&lt;br /&gt;
X has focused and unfocused window, GNUstep has key window and main window, plus menu and app icon. I don't know how the chain of focus should go when the window and menu are up and down. But again, if there is a hint for the main window, key window, main menu, etc, it will be easy for the window manager to know where the focus should go. A documentation of how the focus should shift from which to which may help.&lt;br /&gt;
&lt;br /&gt;
=Menus=&lt;br /&gt;
Again, because there are no real hints about which one is the main menu and submenu besides window level, it is hard to find the correct one. So menus are treated as regular windows in most cases.&lt;br /&gt;
&lt;br /&gt;
Besides the focus issue, there is also a boundary issue. Say the user puts the mouse on the right edge of the screen and clicks the right button (bringing up a menu): the main menu will be off of the right boundary. GNUstep tries to move it back, and some window managers also try to move it back. When a window is moved, the mouse tracking may be offset. After the main menu is open, a user clicks on a submenu, which will also be off of the right boundary. Then should the window manager move both the main menu and submenu to the left? Does GNUstep do that? It is not clear which one should do what.&lt;br /&gt;
&lt;br /&gt;
And now, some people like to have a horizontal menu (like Mac OS X) instead of a vertical menu (like NEXTSTEP). They behave differently for submenus. For a horizontal menu, the submenu will close on an action fire. For a vertical menu, the submenu will stay open after an action fire. So I guess only GNUstep can handle it.&lt;br /&gt;
&lt;br /&gt;
=Window Resizing and Moving=&lt;br /&gt;
GNUstep defines:&lt;br /&gt;
  #define GSWindowWillResizeNotificationsFlag  (1&amp;lt;&amp;lt;1)&lt;br /&gt;
  #define GSWindowWillMoveNotificationsFlag    (1&amp;lt;&amp;lt;2)&lt;br /&gt;
I didn't see it in Window Maker, therefore, I don't know whether it is really supported. But it may be key for some windows turning black when resizing.&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Window_manager&amp;diff=4616</id>
		<title>Window manager</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Window_manager&amp;diff=4616"/>
		<updated>2007-03-30T04:26:06Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In Windows and Mac OS X the window manager is tied into the OS. That's not the case for Linux or BSD. [[Window Maker]] is the recommended window manager for GNUstep, but a standard feature-set is needed. GNUstep-based applications have additional needs beyond traditional window managers, like handling the dock icon or the menus. Collecting the requirements here will lead to a specification, so any window manager can clearly state whether or not it is GNUstep-compliant.&lt;br /&gt;
&lt;br /&gt;
=Backend WM Attributes=&lt;br /&gt;
Headers/x11/XGServerWindow.h defines&lt;br /&gt;
  unsigned long flags&lt;br /&gt;
  unsigned long window_style&lt;br /&gt;
  unsigned long window_level&lt;br /&gt;
  unsigned long reserved&lt;br /&gt;
  Pixmap miniaturize_pixmap;    // pixmap for miniaturize button&lt;br /&gt;
  Pixmap close_pixmap;          // pixmap for close button.&lt;br /&gt;
  Pixmap miniaturize_mask;      // miniaturize pixmap mask&lt;br /&gt;
  Pixmap close_mask;            // close pixmap mask&lt;br /&gt;
  unsigned long extra_flags;&lt;br /&gt;
&lt;br /&gt;
  #define GSWindowStyleAttr                   (1&amp;lt;&amp;lt;0)&lt;br /&gt;
  #define GSWindowLevelAttr                   (1&amp;lt;&amp;lt;1)&lt;br /&gt;
  #define GSMiniaturizePixmapAttr             (1&amp;lt;&amp;lt;3)&lt;br /&gt;
  #define GSClosePixmapAttr                   (1&amp;lt;&amp;lt;4)&lt;br /&gt;
  #define GSMiniaturizeMaskAttr               (1&amp;lt;&amp;lt;5)&lt;br /&gt;
  #define GSCloseMaskAttr                     (1&amp;lt;&amp;lt;6)&lt;br /&gt;
  #define GSExtraFlagsAttr                    (1&amp;lt;&amp;lt;7)&lt;br /&gt;
  #define GSDocumentEditedFlag                (1&amp;lt;&amp;lt;0)&lt;br /&gt;
  #define GSWindowWillResizeNotificationsFlag (1&amp;lt;&amp;lt;1)&lt;br /&gt;
  #define GSWindowWillMoveNotificationsFlag   (1&amp;lt;&amp;lt;2)&lt;br /&gt;
  #define GSNoApplicationIconFlag             (1&amp;lt;&amp;lt;5)&lt;br /&gt;
  #define WMFHideOtherApplications            10&lt;br /&gt;
  #define WMFHideApplication                  12&lt;br /&gt;
&lt;br /&gt;
=Window Level=&lt;br /&gt;
GNUstep needs arbitrary window levels. EWMH defines these two:&lt;br /&gt;
  _NET_WM_STATE_ABOVE, ATOM&lt;br /&gt;
  _NET_WM_STATE_BELOW, ATOM&lt;br /&gt;
&lt;br /&gt;
The rest depends on the function of a window. To obtain good interoperability between different Desktop Environments, the following layered stacking order is recommended, from the bottom to the top:&lt;br /&gt;
# windows of type &amp;lt;tt&amp;gt;_NET_WM_TYPE_DESKTOP&amp;lt;/tt&amp;gt;&lt;br /&gt;
# windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_BELOW&amp;lt;/tt&amp;gt;&lt;br /&gt;
# windows not belonging in any other layer&lt;br /&gt;
# windows of type &amp;lt;tt&amp;gt;_NET_WM_TYPE_DOCK&amp;lt;/tt&amp;gt; (unless they have state &amp;lt;tt&amp;gt;_NET_WM_TYPE_BELOW&amp;lt;/tt&amp;gt;) and windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_ABOVE&amp;lt;/tt&amp;gt;&lt;br /&gt;
# focused windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_FULLSCREEN&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows that are transient for another window should be kept above this window.&lt;br /&gt;
&lt;br /&gt;
The window manager may choose to put some windows in different stacking positions, for example to allow the user to bring currently active window to the top and return it back when the window loses focus.&lt;br /&gt;
&lt;br /&gt;
=Window Style=&lt;br /&gt;
Window style is more or less unchanged, except GNUstep want to display edited document: &amp;lt;tt&amp;gt;GSDocumentEditedFlag&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Window Type=&lt;br /&gt;
EWMH defines:&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DESKTOP, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DOCK, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_TOOLBAR, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_UTILITY, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_SPLASH, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DIALOG, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DROPDOWN_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_POPUP_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_TOOLTIP, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_NOTIFICATION, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_COMBO, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DND, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_NORMAL, ATOM&lt;br /&gt;
&lt;br /&gt;
Comments from Yen-Ju Chen: &amp;quot;GNUstep has no such definition and use window level for this purpose. Personally, I wish GNUstep had a better way to tell which window is for which functions, like app icon, floating panel, menu, key window, main window. The window level is not that reliable when people want to do some tricks. It may not match EWMH one-to-one, but it will be useful for various reasons.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=App Icon=&lt;br /&gt;
GNUstep used to have &amp;lt;tt&amp;gt;NSDockWindowLevel&amp;lt;/tt&amp;gt;, but it is deprecated. So to know which window is the app icon, you have to first find a GNUstep window, check its &amp;lt;tt&amp;gt;group_leader&amp;lt;/tt&amp;gt;, (See &amp;lt;tt&amp;gt;XWMHints&amp;lt;/tt&amp;gt; in X protocols), then check its &amp;lt;tt&amp;gt;icon_window&amp;lt;/tt&amp;gt; which points to app icon. Again, it will be easier if there is hint (see above).&lt;br /&gt;
&lt;br /&gt;
EWMH defines &amp;lt;tt&amp;gt;_NET_WM_ICON&amp;lt;/tt&amp;gt; for app icon image. GNUstep supports it, but I am not sure if it is updated when the app icon image is changed. And if people use app icon as a &amp;lt;tt&amp;gt;NSWindow&amp;lt;/tt&amp;gt; and draw directly on it, there is no way the window manager will know. The solution is that if there is a notification that the icon is redrawn, the window manager or GNUstep can copy (or take a screenshot of) the image from that &amp;lt;tt&amp;gt;NSWindow&amp;lt;/tt&amp;gt; and put it into &amp;lt;tt&amp;gt;_NET_WM_ICON&amp;lt;/tt&amp;gt;. It requires something like &amp;lt;tt&amp;gt;XCopyArea()&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Focus=&lt;br /&gt;
X has focused and unfocused window, GNUstep has key window and main window, plus menu and app icon. I don't know how the chain of focus should go when the window and menu are up and down. But again, if there is a hint for the main window, key window, main menu, etc, it will be easy for the window manager to know where the focus should go. A documentation of how the focus should shift from which to which may help.&lt;br /&gt;
&lt;br /&gt;
=Menus=&lt;br /&gt;
Again, because there are no real hints about which one is the main menu and submenu besides window level, it is hard to find the correct one. So menus are treated as regular windows in most cases.&lt;br /&gt;
&lt;br /&gt;
Besides the focus issue, there is also a boundary issue. Say the user puts the mouse on the right edge of the screen and clicks the right button (bringing up a menu): the main menu will be off of the right boundary. GNUstep tries to move it back, and some window managers also try to move it back. When a window is moved, the mouse tracking may be offset. After the main menu is open, a user clicks on a submenu, which will also be off of the right boundary. Then should the window manager move both the main menu and submenu to the left? Does GNUstep do that? It is not clear which one should do what.&lt;br /&gt;
&lt;br /&gt;
And now, some people like to have a horizontal menu (like Mac OS X) instead of a vertical menu (like NEXTSTEP). They behave differently for submenus. For a horizontal menu, the submenu will close on an action fire. For a vertical menu, the submenu will stay open after an action fire. So I guess only GNUstep can handle it.&lt;br /&gt;
&lt;br /&gt;
=Window Resizing and Moving=&lt;br /&gt;
GNUstep defines:&lt;br /&gt;
  #define GSWindowWillResizeNotificationsFlag  (1&amp;lt;&amp;lt;1)&lt;br /&gt;
  #define GSWindowWillMoveNotificationsFlag    (1&amp;lt;&amp;lt;2)&lt;br /&gt;
I didn't see it in Window Maker, therefore, I don't know whether it is really supported. But it may be key for some windows turning black when resizing.&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Window_manager&amp;diff=4615</id>
		<title>Window manager</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Window_manager&amp;diff=4615"/>
		<updated>2007-03-30T04:23:43Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* Menu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In Windows and Mac OS X the window manager is tied into the OS. That's not the case for Linux or BSD. [[Window Maker]] is the recommended window manager for GNUstep, but a standard feature-set is needed. GNUstep-based applications have additional needs beyond traditional window managers, like handling the dock icon or the menus. Collecting the requirements here will lead to a specification, so any window manager can clearly state whether or not it is GNUstep-compliant.&lt;br /&gt;
&lt;br /&gt;
=Backend WM Attributes=&lt;br /&gt;
Headers/x11/XGServerWindow.h defines&lt;br /&gt;
  unsigned long flags&lt;br /&gt;
  unsigned long window_style&lt;br /&gt;
  unsigned long window_level&lt;br /&gt;
  unsigned long reserved&lt;br /&gt;
  Pixmap miniaturize_pixmap;    // pixmap for miniaturize button&lt;br /&gt;
  Pixmap close_pixmap;          // pixmap for close button.&lt;br /&gt;
  Pixmap miniaturize_mask;      // miniaturize pixmap mask&lt;br /&gt;
  Pixmap close_mask;            // close pixmap mask&lt;br /&gt;
  unsigned long extra_flags;&lt;br /&gt;
&lt;br /&gt;
  #define GSWindowStyleAttr                   (1&amp;lt;&amp;lt;0)&lt;br /&gt;
  #define GSWindowLevelAttr                   (1&amp;lt;&amp;lt;1)&lt;br /&gt;
  #define GSMiniaturizePixmapAttr             (1&amp;lt;&amp;lt;3)&lt;br /&gt;
  #define GSClosePixmapAttr                   (1&amp;lt;&amp;lt;4)&lt;br /&gt;
  #define GSMiniaturizeMaskAttr               (1&amp;lt;&amp;lt;5)&lt;br /&gt;
  #define GSCloseMaskAttr                     (1&amp;lt;&amp;lt;6)&lt;br /&gt;
  #define GSExtraFlagsAttr                    (1&amp;lt;&amp;lt;7)&lt;br /&gt;
  #define GSDocumentEditedFlag                (1&amp;lt;&amp;lt;0)&lt;br /&gt;
  #define GSWindowWillResizeNotificationsFlag (1&amp;lt;&amp;lt;1)&lt;br /&gt;
  #define GSWindowWillMoveNotificationsFlag   (1&amp;lt;&amp;lt;2)&lt;br /&gt;
  #define GSNoApplicationIconFlag             (1&amp;lt;&amp;lt;5)&lt;br /&gt;
  #define WMFHideOtherApplications            10&lt;br /&gt;
  #define WMFHideApplication                  12&lt;br /&gt;
&lt;br /&gt;
=Window Level=&lt;br /&gt;
GNUstep needs arbitrary window levels. EWMH defines these two:&lt;br /&gt;
  _NET_WM_STATE_ABOVE, ATOM&lt;br /&gt;
  _NET_WM_STATE_BELOW, ATOM&lt;br /&gt;
&lt;br /&gt;
The rest depends on the function of a window. To obtain good interoperability between different Desktop Environments, the following layered stacking order is recommended, from the bottom to the top:&lt;br /&gt;
# windows of type &amp;lt;tt&amp;gt;_NET_WM_TYPE_DESKTOP&amp;lt;/tt&amp;gt;&lt;br /&gt;
# windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_BELOW&amp;lt;/tt&amp;gt;&lt;br /&gt;
# windows not belonging in any other layer&lt;br /&gt;
# windows of type &amp;lt;tt&amp;gt;_NET_WM_TYPE_DOCK&amp;lt;/tt&amp;gt; (unless they have state &amp;lt;tt&amp;gt;_NET_WM_TYPE_BELOW&amp;lt;/tt&amp;gt;) and windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_ABOVE&amp;lt;/tt&amp;gt;&lt;br /&gt;
# focused windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_FULLSCREEN&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows that are transient for another window should be kept above this window.&lt;br /&gt;
&lt;br /&gt;
The window manager may choose to put some windows in different stacking positions, for example to allow the user to bring currently active window to the top and return it back when the window loses focus.&lt;br /&gt;
&lt;br /&gt;
=Window Style=&lt;br /&gt;
Window style is more or less unchanged, except GNUstep want to display edited document: &amp;lt;tt&amp;gt;GSDocumentEditedFlag&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Window Type=&lt;br /&gt;
EWMH defines:&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DESKTOP, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DOCK, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_TOOLBAR, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_UTILITY, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_SPLASH, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DIALOG, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DROPDOWN_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_POPUP_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_TOOLTIP, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_NOTIFICATION, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_COMBO, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DND, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_NORMAL, ATOM&lt;br /&gt;
&lt;br /&gt;
Comments from Yen-Ju Chen: &amp;quot;GNUstep has no such definition and use window level for this purpose. Personally, I wish GNUstep had a better way to tell which window is for which functions, like app icon, floating panel, menu, key window, main window. The window level is not that reliable when people want to do some tricks. It may not match EWMH one-to-one, but it will be useful for various reasons.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=App Icon=&lt;br /&gt;
GNUstep used to have &amp;lt;tt&amp;gt;NSDockWindowLevel&amp;lt;/tt&amp;gt;, but it is deprecated. So to know which window is the app icon, you have to first find a GNUstep window, check its &amp;lt;tt&amp;gt;group_leader&amp;lt;/tt&amp;gt;, (See &amp;lt;tt&amp;gt;XWMHints&amp;lt;/tt&amp;gt; in X protocols), then check its &amp;lt;tt&amp;gt;icon_window&amp;lt;/tt&amp;gt; which points to app icon. Again, it will be easier if there is hint (see above).&lt;br /&gt;
&lt;br /&gt;
EWMH defines &amp;lt;tt&amp;gt;_NET_WM_ICON&amp;lt;/tt&amp;gt; for app icon image. GNUstep supports it, but I am not sure if it is updated when the app icon image is changed. And if people use app icon as a &amp;lt;tt&amp;gt;NSWindow&amp;lt;/tt&amp;gt; and draw directly on it, there is no way the window manager will know. The solution is that if there is a notification that the icon is redrawn, the window manager or GNUstep can copy (or take a screenshot of) the image from that &amp;lt;tt&amp;gt;NSWindow&amp;lt;/tt&amp;gt; and put it into &amp;lt;tt&amp;gt;_NET_WM_ICON&amp;lt;/tt&amp;gt;. It requires something like &amp;lt;tt&amp;gt;XCopyArea()&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Focus=&lt;br /&gt;
X has focused and unfocused window, GNUstep has key window and main window, plus menu and app icon. I don't know how the chain of focus should go when the window and menu are up and down. But again, if there is a hint for the main window, key window, main menu, etc, it will be easy for the window manager to know where the focus should go. A documentation of how the focus should shift from which to which may help.&lt;br /&gt;
&lt;br /&gt;
=Menus=&lt;br /&gt;
Again, because there are no real hints about which one is the main menu and submenu besides window level, it is hard to find the correct one. So menus are treated as regular windows in most cases.&lt;br /&gt;
&lt;br /&gt;
Besides the focus issue, there is also a boundary issue. Say the user puts the mouse on the right edge of the screen and clicks the right button (bringing up a menu): the main menu will be off of the right boundary. GNUstep tries to move it back, and some window managers also try to move it back. When a window is moved, the mouse tracking may be offset. After the main menu is open, a user clicks on a submenu, which will also be off of the right boundary. Then should the window manager move both the main menu and submenu to the left? Does GNUstep do that? It is not clear which one should do what.&lt;br /&gt;
&lt;br /&gt;
And now, some people like to have a horizontal menu (like Mac OS X) instead of a vertical menu (like NEXTSTEP). They behave differently for submenus. For a horizontal menu, the submenu will close on an action fire. For a vertical menu, the submenu will stay open after an action fire. So I guess only GNUstep can handle it.&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Window_manager&amp;diff=4614</id>
		<title>Window manager</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Window_manager&amp;diff=4614"/>
		<updated>2007-03-30T04:16:28Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In Windows and Mac OS X the window manager is tied into the OS. That's not the case for Linux or BSD. [[Window Maker]] is the recommended window manager for GNUstep, but a standard feature-set is needed. GNUstep-based applications have additional needs beyond traditional window managers, like handling the dock icon or the menus. Collecting the requirements here will lead to a specification, so any window manager can clearly state whether or not it is GNUstep-compliant.&lt;br /&gt;
&lt;br /&gt;
=Backend WM Attributes=&lt;br /&gt;
Headers/x11/XGServerWindow.h defines&lt;br /&gt;
  unsigned long flags&lt;br /&gt;
  unsigned long window_style&lt;br /&gt;
  unsigned long window_level&lt;br /&gt;
  unsigned long reserved&lt;br /&gt;
  Pixmap miniaturize_pixmap;    // pixmap for miniaturize button&lt;br /&gt;
  Pixmap close_pixmap;          // pixmap for close button.&lt;br /&gt;
  Pixmap miniaturize_mask;      // miniaturize pixmap mask&lt;br /&gt;
  Pixmap close_mask;            // close pixmap mask&lt;br /&gt;
  unsigned long extra_flags;&lt;br /&gt;
&lt;br /&gt;
  #define GSWindowStyleAttr                   (1&amp;lt;&amp;lt;0)&lt;br /&gt;
  #define GSWindowLevelAttr                   (1&amp;lt;&amp;lt;1)&lt;br /&gt;
  #define GSMiniaturizePixmapAttr             (1&amp;lt;&amp;lt;3)&lt;br /&gt;
  #define GSClosePixmapAttr                   (1&amp;lt;&amp;lt;4)&lt;br /&gt;
  #define GSMiniaturizeMaskAttr               (1&amp;lt;&amp;lt;5)&lt;br /&gt;
  #define GSCloseMaskAttr                     (1&amp;lt;&amp;lt;6)&lt;br /&gt;
  #define GSExtraFlagsAttr                    (1&amp;lt;&amp;lt;7)&lt;br /&gt;
  #define GSDocumentEditedFlag                (1&amp;lt;&amp;lt;0)&lt;br /&gt;
  #define GSWindowWillResizeNotificationsFlag (1&amp;lt;&amp;lt;1)&lt;br /&gt;
  #define GSWindowWillMoveNotificationsFlag   (1&amp;lt;&amp;lt;2)&lt;br /&gt;
  #define GSNoApplicationIconFlag             (1&amp;lt;&amp;lt;5)&lt;br /&gt;
  #define WMFHideOtherApplications            10&lt;br /&gt;
  #define WMFHideApplication                  12&lt;br /&gt;
&lt;br /&gt;
=Window Level=&lt;br /&gt;
GNUstep needs arbitrary window levels. EWMH defines these two:&lt;br /&gt;
  _NET_WM_STATE_ABOVE, ATOM&lt;br /&gt;
  _NET_WM_STATE_BELOW, ATOM&lt;br /&gt;
&lt;br /&gt;
The rest depends on the function of a window. To obtain good interoperability between different Desktop Environments, the following layered stacking order is recommended, from the bottom to the top:&lt;br /&gt;
# windows of type &amp;lt;tt&amp;gt;_NET_WM_TYPE_DESKTOP&amp;lt;/tt&amp;gt;&lt;br /&gt;
# windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_BELOW&amp;lt;/tt&amp;gt;&lt;br /&gt;
# windows not belonging in any other layer&lt;br /&gt;
# windows of type &amp;lt;tt&amp;gt;_NET_WM_TYPE_DOCK&amp;lt;/tt&amp;gt; (unless they have state &amp;lt;tt&amp;gt;_NET_WM_TYPE_BELOW&amp;lt;/tt&amp;gt;) and windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_ABOVE&amp;lt;/tt&amp;gt;&lt;br /&gt;
# focused windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_FULLSCREEN&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows that are transient for another window should be kept above this window.&lt;br /&gt;
&lt;br /&gt;
The window manager may choose to put some windows in different stacking positions, for example to allow the user to bring currently active window to the top and return it back when the window loses focus.&lt;br /&gt;
&lt;br /&gt;
=Window Style=&lt;br /&gt;
Window style is more or less unchanged, except GNUstep want to display edited document: &amp;lt;tt&amp;gt;GSDocumentEditedFlag&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Window Type=&lt;br /&gt;
EWMH defines:&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DESKTOP, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DOCK, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_TOOLBAR, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_UTILITY, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_SPLASH, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DIALOG, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DROPDOWN_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_POPUP_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_TOOLTIP, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_NOTIFICATION, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_COMBO, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DND, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_NORMAL, ATOM&lt;br /&gt;
&lt;br /&gt;
Comments from Yen-Ju Chen: &amp;quot;GNUstep has no such definition and use window level for this purpose. Personally, I wish GNUstep had a better way to tell which window is for which functions, like app icon, floating panel, menu, key window, main window. The window level is not that reliable when people want to do some tricks. It may not match EWMH one-to-one, but it will be useful for various reasons.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=App Icon=&lt;br /&gt;
GNUstep used to have &amp;lt;tt&amp;gt;NSDockWindowLevel&amp;lt;/tt&amp;gt;, but it is deprecated. So to know which window is the app icon, you have to first find a GNUstep window, check its &amp;lt;tt&amp;gt;group_leader&amp;lt;/tt&amp;gt;, (See &amp;lt;tt&amp;gt;XWMHints&amp;lt;/tt&amp;gt; in X protocols), then check its &amp;lt;tt&amp;gt;icon_window&amp;lt;/tt&amp;gt; which points to app icon. Again, it will be easier if there is hint (see above).&lt;br /&gt;
&lt;br /&gt;
EWMH defines &amp;lt;tt&amp;gt;_NET_WM_ICON&amp;lt;/tt&amp;gt; for app icon image. GNUstep supports it, but I am not sure if it is updated when the app icon image is changed. And if people use app icon as a &amp;lt;tt&amp;gt;NSWindow&amp;lt;/tt&amp;gt; and draw directly on it, there is no way the window manager will know. The solution is that if there is a notification that the icon is redrawn, the window manager or GNUstep can copy (or take a screenshot of) the image from that &amp;lt;tt&amp;gt;NSWindow&amp;lt;/tt&amp;gt; and put it into &amp;lt;tt&amp;gt;_NET_WM_ICON&amp;lt;/tt&amp;gt;. It requires something like &amp;lt;tt&amp;gt;XCopyArea()&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Focus=&lt;br /&gt;
X has focused and unfocused window, GNUstep has key window and main window, plus menu and app icon. I don't know how the chain of focus should go when the window and menu are up and down. But again, if there is a hint for the main window, key window, main menu, etc, it will be easy for the window manager to know where the focus should go. A documentation of how the focus should shift from which to which may help.&lt;br /&gt;
&lt;br /&gt;
=Menu=&lt;br /&gt;
Again, because there are no real hints about which one is the main menu and submenu besides window level, it is hard to find the correct one. So menus are treated as regular windows in most cases.&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Window_manager&amp;diff=4613</id>
		<title>Window manager</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Window_manager&amp;diff=4613"/>
		<updated>2007-03-30T04:08:18Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In Windows and Mac OS X the window manager is tied into the OS. That's not the case for Linux or BSD. [[Window Maker]] is the recommended window manager for GNUstep, but a standard feature-set is needed. GNUstep-based applications have additional needs beyond traditional window managers, like handling the dock icon or the menus. Collecting the requirements here will lead to a specification, so any window manager can clearly state whether or not it is GNUstep-compliant.&lt;br /&gt;
&lt;br /&gt;
=Backend WM Attributes=&lt;br /&gt;
Headers/x11/XGServerWindow.h defines&lt;br /&gt;
  unsigned long flags&lt;br /&gt;
  unsigned long window_style&lt;br /&gt;
  unsigned long window_level&lt;br /&gt;
  unsigned long reserved&lt;br /&gt;
  Pixmap miniaturize_pixmap;    // pixmap for miniaturize button&lt;br /&gt;
  Pixmap close_pixmap;          // pixmap for close button.&lt;br /&gt;
  Pixmap miniaturize_mask;      // miniaturize pixmap mask&lt;br /&gt;
  Pixmap close_mask;            // close pixmap mask&lt;br /&gt;
  unsigned long extra_flags;&lt;br /&gt;
&lt;br /&gt;
  #define GSWindowStyleAttr                   (1&amp;lt;&amp;lt;0)&lt;br /&gt;
  #define GSWindowLevelAttr                   (1&amp;lt;&amp;lt;1)&lt;br /&gt;
  #define GSMiniaturizePixmapAttr             (1&amp;lt;&amp;lt;3)&lt;br /&gt;
  #define GSClosePixmapAttr                   (1&amp;lt;&amp;lt;4)&lt;br /&gt;
  #define GSMiniaturizeMaskAttr               (1&amp;lt;&amp;lt;5)&lt;br /&gt;
  #define GSCloseMaskAttr                     (1&amp;lt;&amp;lt;6)&lt;br /&gt;
  #define GSExtraFlagsAttr                    (1&amp;lt;&amp;lt;7)&lt;br /&gt;
  #define GSDocumentEditedFlag                (1&amp;lt;&amp;lt;0)&lt;br /&gt;
  #define GSWindowWillResizeNotificationsFlag (1&amp;lt;&amp;lt;1)&lt;br /&gt;
  #define GSWindowWillMoveNotificationsFlag   (1&amp;lt;&amp;lt;2)&lt;br /&gt;
  #define GSNoApplicationIconFlag             (1&amp;lt;&amp;lt;5)&lt;br /&gt;
  #define WMFHideOtherApplications            10&lt;br /&gt;
  #define WMFHideApplication                  12&lt;br /&gt;
&lt;br /&gt;
=Window Level=&lt;br /&gt;
GNUstep needs arbitrary window levels. EWMH defines these two:&lt;br /&gt;
  _NET_WM_STATE_ABOVE, ATOM&lt;br /&gt;
  _NET_WM_STATE_BELOW, ATOM&lt;br /&gt;
&lt;br /&gt;
The rest depends on the function of a window. To obtain good interoperability between different Desktop Environments, the following layered stacking order is recommended, from the bottom to the top:&lt;br /&gt;
# windows of type &amp;lt;tt&amp;gt;_NET_WM_TYPE_DESKTOP&amp;lt;/tt&amp;gt;&lt;br /&gt;
# windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_BELOW&amp;lt;/tt&amp;gt;&lt;br /&gt;
# windows not belonging in any other layer&lt;br /&gt;
# windows of type &amp;lt;tt&amp;gt;_NET_WM_TYPE_DOCK&amp;lt;/tt&amp;gt; (unless they have state &amp;lt;tt&amp;gt;_NET_WM_TYPE_BELOW&amp;lt;/tt&amp;gt;) and windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_ABOVE&amp;lt;/tt&amp;gt;&lt;br /&gt;
# focused windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_FULLSCREEN&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows that are transient for another window should be kept above this window.&lt;br /&gt;
&lt;br /&gt;
The window manager may choose to put some windows in different stacking positions, for example to allow the user to bring currently active window to the top and return it back when the window loses focus.&lt;br /&gt;
&lt;br /&gt;
=Window Style=&lt;br /&gt;
Window style is more or less unchanged, except GNUstep want to display edited document: &amp;lt;tt&amp;gt;GSDocumentEditedFlag&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Window Type=&lt;br /&gt;
EWMH defines:&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DESKTOP, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DOCK, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_TOOLBAR, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_UTILITY, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_SPLASH, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DIALOG, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DROPDOWN_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_POPUP_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_TOOLTIP, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_NOTIFICATION, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_COMBO, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DND, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_NORMAL, ATOM&lt;br /&gt;
&lt;br /&gt;
Comments from Yen-Ju Chen: &amp;quot;GNUstep has no such definition and use window level for this purpose. Personally, I wish GNUstep had a better way to tell which window is for which functions, like app icon, floating panel, menu, key window, main window. The window level is not that reliable when people want to do some tricks. It may not match EWMH one-to-one, but it will be useful for various reasons.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=App Icon=&lt;br /&gt;
GNUstep used to have &amp;lt;tt&amp;gt;NSDockWindowLevel&amp;lt;/tt&amp;gt;, but it is deprecated. So to know which window is the app icon, you have to first find a GNUstep window, check its &amp;lt;tt&amp;gt;group_leader&amp;lt;/tt&amp;gt;, (See &amp;lt;tt&amp;gt;XWMHints&amp;lt;/tt&amp;gt; in X protocols), then check its &amp;lt;tt&amp;gt;icon_window&amp;lt;/tt&amp;gt; which points to app icon. Again, it will be easier if there is hint (see above).&lt;br /&gt;
&lt;br /&gt;
EWMH defines &amp;lt;tt&amp;gt;_NET_WM_ICON&amp;lt;/tt&amp;gt; for app icon image. GNUstep supports it, but I am not sure if it is updated when the app icon image is changed. And if people use app icon as a &amp;lt;tt&amp;gt;NSWindow&amp;lt;/tt&amp;gt; and draw directly on it, there is no way the window manager will know. The solution is that if there is a notification that the icon is redrawn, the window manager or GNUstep can copy (or take a screenshot of) the image from that &amp;lt;tt&amp;gt;NSWindow&amp;lt;/tt&amp;gt; and put it into &amp;lt;tt&amp;gt;_NET_WM_ICON&amp;lt;/tt&amp;gt;. It requires something like &amp;lt;tt&amp;gt;XCopyArea()&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Focus=&lt;br /&gt;
X has focused and unfocused window, GNUstep has key window and main window, plus menu and app icon. I don't know how the chain of focus should go when the window and menu are up and down. But again, if there is a hint for the main window, key window, main menu, etc, it will be easy for the window manager to know where the focus should go. A documentation of how the focus should shift from which to which may help.&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Window_manager&amp;diff=4612</id>
		<title>Window manager</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Window_manager&amp;diff=4612"/>
		<updated>2007-03-30T04:03:15Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* App Icon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In Windows and Mac OS X the window manager is tied into the OS. That's not the case for Linux or BSD. [[Window Maker]] is the recommended window manager for GNUstep, but a standard feature-set is needed. GNUstep-based applications have additional needs beyond traditional window managers, like handling the dock icon or the menus. Collecting the requirements here will lead to a specification, so any window manager can clearly state whether or not it is GNUstep-compliant.&lt;br /&gt;
&lt;br /&gt;
=Backend WM Attributes=&lt;br /&gt;
Headers/x11/XGServerWindow.h defines&lt;br /&gt;
  unsigned long flags&lt;br /&gt;
  unsigned long window_style&lt;br /&gt;
  unsigned long window_level&lt;br /&gt;
  unsigned long reserved&lt;br /&gt;
  Pixmap miniaturize_pixmap;    // pixmap for miniaturize button&lt;br /&gt;
  Pixmap close_pixmap;          // pixmap for close button.&lt;br /&gt;
  Pixmap miniaturize_mask;      // miniaturize pixmap mask&lt;br /&gt;
  Pixmap close_mask;            // close pixmap mask&lt;br /&gt;
  unsigned long extra_flags;&lt;br /&gt;
&lt;br /&gt;
  #define GSWindowStyleAttr                   (1&amp;lt;&amp;lt;0)&lt;br /&gt;
  #define GSWindowLevelAttr                   (1&amp;lt;&amp;lt;1)&lt;br /&gt;
  #define GSMiniaturizePixmapAttr             (1&amp;lt;&amp;lt;3)&lt;br /&gt;
  #define GSClosePixmapAttr                   (1&amp;lt;&amp;lt;4)&lt;br /&gt;
  #define GSMiniaturizeMaskAttr               (1&amp;lt;&amp;lt;5)&lt;br /&gt;
  #define GSCloseMaskAttr                     (1&amp;lt;&amp;lt;6)&lt;br /&gt;
  #define GSExtraFlagsAttr                    (1&amp;lt;&amp;lt;7)&lt;br /&gt;
  #define GSDocumentEditedFlag                (1&amp;lt;&amp;lt;0)&lt;br /&gt;
  #define GSWindowWillResizeNotificationsFlag (1&amp;lt;&amp;lt;1)&lt;br /&gt;
  #define GSWindowWillMoveNotificationsFlag   (1&amp;lt;&amp;lt;2)&lt;br /&gt;
  #define GSNoApplicationIconFlag             (1&amp;lt;&amp;lt;5)&lt;br /&gt;
  #define WMFHideOtherApplications            10&lt;br /&gt;
  #define WMFHideApplication                  12&lt;br /&gt;
&lt;br /&gt;
=Window Level=&lt;br /&gt;
GNUstep needs arbitrary window levels. EWMH defines these two:&lt;br /&gt;
  _NET_WM_STATE_ABOVE, ATOM&lt;br /&gt;
  _NET_WM_STATE_BELOW, ATOM&lt;br /&gt;
&lt;br /&gt;
The rest depends on the function of a window. To obtain good interoperability between different Desktop Environments, the following layered stacking order is recommended, from the bottom to the top:&lt;br /&gt;
# windows of type &amp;lt;tt&amp;gt;_NET_WM_TYPE_DESKTOP&amp;lt;/tt&amp;gt;&lt;br /&gt;
# windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_BELOW&amp;lt;/tt&amp;gt;&lt;br /&gt;
# windows not belonging in any other layer&lt;br /&gt;
# windows of type &amp;lt;tt&amp;gt;_NET_WM_TYPE_DOCK&amp;lt;/tt&amp;gt; (unless they have state &amp;lt;tt&amp;gt;_NET_WM_TYPE_BELOW&amp;lt;/tt&amp;gt;) and windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_ABOVE&amp;lt;/tt&amp;gt;&lt;br /&gt;
# focused windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_FULLSCREEN&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows that are transient for another window should be kept above this window.&lt;br /&gt;
&lt;br /&gt;
The window manager may choose to put some windows in different stacking positions, for example to allow the user to bring currently active window to the top and return it back when the window loses focus.&lt;br /&gt;
&lt;br /&gt;
=Window Style=&lt;br /&gt;
Window style is more or less unchanged, except GNUstep want to display edited document: &amp;lt;tt&amp;gt;GSDocumentEditedFlag&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Window Type=&lt;br /&gt;
EWMH defines:&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DESKTOP, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DOCK, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_TOOLBAR, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_UTILITY, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_SPLASH, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DIALOG, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DROPDOWN_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_POPUP_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_TOOLTIP, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_NOTIFICATION, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_COMBO, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DND, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_NORMAL, ATOM&lt;br /&gt;
&lt;br /&gt;
Comments from Yen-Ju Chen: &amp;quot;GNUstep has no such definition and use window level for this purpose. Personally, I wish GNUstep had a better way to tell which window is for which functions, like app icon, floating panel, menu, key window, main window. The window level is not that reliable when people want to do some tricks. It may not match EWMH one-to-one, but it will be useful for various reasons.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=App Icon=&lt;br /&gt;
GNUstep used to have &amp;lt;tt&amp;gt;NSDockWindowLevel&amp;lt;/tt&amp;gt;, but it is deprecated. So to know which window is the app icon, you have to first find a GNUstep window, check its &amp;lt;tt&amp;gt;group_leader&amp;lt;/tt&amp;gt;, (See &amp;lt;tt&amp;gt;XWMHints&amp;lt;/tt&amp;gt; in X protocols), then check its &amp;lt;tt&amp;gt;icon_window&amp;lt;/tt&amp;gt; which points to app icon. Again, it will be easier if there is hint (see above).&lt;br /&gt;
&lt;br /&gt;
EWMH defines &amp;lt;tt&amp;gt;_NET_WM_ICON&amp;lt;/tt&amp;gt; for app icon image. GNUstep supports it, but I am not sure if it is updated when the app icon image is changed. And if people use app icon as a &amp;lt;tt&amp;gt;NSWindow&amp;lt;/tt&amp;gt; and draw directly on it, there is no way the window manager will know. The solution is that if there is a notification that the icon is redrawn, the window manager or GNUstep can copy (or take a screenshot of) the image from that &amp;lt;tt&amp;gt;NSWindow&amp;lt;/tt&amp;gt; and put it into &amp;lt;tt&amp;gt;_NET_WM_ICON&amp;lt;/tt&amp;gt;. It requires something like &amp;lt;tt&amp;gt;XCopyArea()&amp;lt;/tt&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Window_manager&amp;diff=4611</id>
		<title>Window manager</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Window_manager&amp;diff=4611"/>
		<updated>2007-03-30T03:58:11Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In Windows and Mac OS X the window manager is tied into the OS. That's not the case for Linux or BSD. [[Window Maker]] is the recommended window manager for GNUstep, but a standard feature-set is needed. GNUstep-based applications have additional needs beyond traditional window managers, like handling the dock icon or the menus. Collecting the requirements here will lead to a specification, so any window manager can clearly state whether or not it is GNUstep-compliant.&lt;br /&gt;
&lt;br /&gt;
=Backend WM Attributes=&lt;br /&gt;
Headers/x11/XGServerWindow.h defines&lt;br /&gt;
  unsigned long flags&lt;br /&gt;
  unsigned long window_style&lt;br /&gt;
  unsigned long window_level&lt;br /&gt;
  unsigned long reserved&lt;br /&gt;
  Pixmap miniaturize_pixmap;    // pixmap for miniaturize button&lt;br /&gt;
  Pixmap close_pixmap;          // pixmap for close button.&lt;br /&gt;
  Pixmap miniaturize_mask;      // miniaturize pixmap mask&lt;br /&gt;
  Pixmap close_mask;            // close pixmap mask&lt;br /&gt;
  unsigned long extra_flags;&lt;br /&gt;
&lt;br /&gt;
  #define GSWindowStyleAttr                   (1&amp;lt;&amp;lt;0)&lt;br /&gt;
  #define GSWindowLevelAttr                   (1&amp;lt;&amp;lt;1)&lt;br /&gt;
  #define GSMiniaturizePixmapAttr             (1&amp;lt;&amp;lt;3)&lt;br /&gt;
  #define GSClosePixmapAttr                   (1&amp;lt;&amp;lt;4)&lt;br /&gt;
  #define GSMiniaturizeMaskAttr               (1&amp;lt;&amp;lt;5)&lt;br /&gt;
  #define GSCloseMaskAttr                     (1&amp;lt;&amp;lt;6)&lt;br /&gt;
  #define GSExtraFlagsAttr                    (1&amp;lt;&amp;lt;7)&lt;br /&gt;
  #define GSDocumentEditedFlag                (1&amp;lt;&amp;lt;0)&lt;br /&gt;
  #define GSWindowWillResizeNotificationsFlag (1&amp;lt;&amp;lt;1)&lt;br /&gt;
  #define GSWindowWillMoveNotificationsFlag   (1&amp;lt;&amp;lt;2)&lt;br /&gt;
  #define GSNoApplicationIconFlag             (1&amp;lt;&amp;lt;5)&lt;br /&gt;
  #define WMFHideOtherApplications            10&lt;br /&gt;
  #define WMFHideApplication                  12&lt;br /&gt;
&lt;br /&gt;
=Window Level=&lt;br /&gt;
GNUstep needs arbitrary window levels. EWMH defines these two:&lt;br /&gt;
  _NET_WM_STATE_ABOVE, ATOM&lt;br /&gt;
  _NET_WM_STATE_BELOW, ATOM&lt;br /&gt;
&lt;br /&gt;
The rest depends on the function of a window. To obtain good interoperability between different Desktop Environments, the following layered stacking order is recommended, from the bottom to the top:&lt;br /&gt;
# windows of type &amp;lt;tt&amp;gt;_NET_WM_TYPE_DESKTOP&amp;lt;/tt&amp;gt;&lt;br /&gt;
# windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_BELOW&amp;lt;/tt&amp;gt;&lt;br /&gt;
# windows not belonging in any other layer&lt;br /&gt;
# windows of type &amp;lt;tt&amp;gt;_NET_WM_TYPE_DOCK&amp;lt;/tt&amp;gt; (unless they have state &amp;lt;tt&amp;gt;_NET_WM_TYPE_BELOW&amp;lt;/tt&amp;gt;) and windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_ABOVE&amp;lt;/tt&amp;gt;&lt;br /&gt;
# focused windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_FULLSCREEN&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows that are transient for another window should be kept above this window.&lt;br /&gt;
&lt;br /&gt;
The window manager may choose to put some windows in different stacking positions, for example to allow the user to bring currently active window to the top and return it back when the window loses focus.&lt;br /&gt;
&lt;br /&gt;
=Window Style=&lt;br /&gt;
Window style is more or less unchanged, except GNUstep want to display edited document: &amp;lt;tt&amp;gt;GSDocumentEditedFlag&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Window Type=&lt;br /&gt;
EWMH defines:&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DESKTOP, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DOCK, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_TOOLBAR, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_UTILITY, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_SPLASH, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DIALOG, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DROPDOWN_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_POPUP_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_TOOLTIP, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_NOTIFICATION, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_COMBO, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DND, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_NORMAL, ATOM&lt;br /&gt;
&lt;br /&gt;
Comments from Yen-Ju Chen: &amp;quot;GNUstep has no such definition and use window level for this purpose. Personally, I wish GNUstep had a better way to tell which window is for which functions, like app icon, floating panel, menu, key window, main window. The window level is not that reliable when people want to do some tricks. It may not match EWMH one-to-one, but it will be useful for various reasons.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=App Icon=&lt;br /&gt;
GNUstep used to have &amp;lt;tt&amp;gt;NSDockWindowLevel&amp;lt;/tt&amp;gt;, but it is deprecated. So to know which window is the app icon, you have to first find a GNUstep window, check its &amp;lt;tt&amp;gt;group_leader&amp;lt;/tt&amp;gt;, (See &amp;lt;tt&amp;gt;XWMHints&amp;lt;/tt&amp;gt; in X protocols), then check its &amp;lt;tt&amp;gt;icon_window&amp;lt;/tt&amp;gt; which points to app icon. Again, it will be easier if there is hint (see above).&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Window_manager&amp;diff=4610</id>
		<title>Window manager</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Window_manager&amp;diff=4610"/>
		<updated>2007-03-30T03:40:18Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* Window Type */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In Windows and Mac OS X the window manager is tied into the OS. That's not the case for Linux or BSD. [[Window Maker]] is the recommended window manager for GNUstep, but a standard feature-set is needed. GNUstep-based applications have additional needs beyond traditional window managers, like handling the dock icon or the menus. Collecting the requirements here will lead to a specification, so any window manager can clearly state whether or not it is GNUstep-compliant.&lt;br /&gt;
&lt;br /&gt;
=Backend WM Attributes=&lt;br /&gt;
Headers/x11/XGServerWindow.h defines&lt;br /&gt;
  unsigned long flags&lt;br /&gt;
  unsigned long window_style&lt;br /&gt;
  unsigned long window_level&lt;br /&gt;
  unsigned long reserved&lt;br /&gt;
  Pixmap miniaturize_pixmap;    // pixmap for miniaturize button&lt;br /&gt;
  Pixmap close_pixmap;          // pixmap for close button.&lt;br /&gt;
  Pixmap miniaturize_mask;      // miniaturize pixmap mask&lt;br /&gt;
  Pixmap close_mask;            // close pixmap mask&lt;br /&gt;
  unsigned long extra_flags;&lt;br /&gt;
&lt;br /&gt;
  #define GSWindowStyleAttr                   (1&amp;lt;&amp;lt;0)&lt;br /&gt;
  #define GSWindowLevelAttr                   (1&amp;lt;&amp;lt;1)&lt;br /&gt;
  #define GSMiniaturizePixmapAttr             (1&amp;lt;&amp;lt;3)&lt;br /&gt;
  #define GSClosePixmapAttr                   (1&amp;lt;&amp;lt;4)&lt;br /&gt;
  #define GSMiniaturizeMaskAttr               (1&amp;lt;&amp;lt;5)&lt;br /&gt;
  #define GSCloseMaskAttr                     (1&amp;lt;&amp;lt;6)&lt;br /&gt;
  #define GSExtraFlagsAttr                    (1&amp;lt;&amp;lt;7)&lt;br /&gt;
  #define GSDocumentEditedFlag                (1&amp;lt;&amp;lt;0)&lt;br /&gt;
  #define GSWindowWillResizeNotificationsFlag (1&amp;lt;&amp;lt;1)&lt;br /&gt;
  #define GSWindowWillMoveNotificationsFlag   (1&amp;lt;&amp;lt;2)&lt;br /&gt;
  #define GSNoApplicationIconFlag             (1&amp;lt;&amp;lt;5)&lt;br /&gt;
  #define WMFHideOtherApplications            10&lt;br /&gt;
  #define WMFHideApplication                  12&lt;br /&gt;
&lt;br /&gt;
=Window Level=&lt;br /&gt;
GNUstep needs arbitrary window levels. EWMH defines these two:&lt;br /&gt;
  _NET_WM_STATE_ABOVE, ATOM&lt;br /&gt;
  _NET_WM_STATE_BELOW, ATOM&lt;br /&gt;
&lt;br /&gt;
The rest depends on the function of a window. To obtain good interoperability between different Desktop Environments, the following layered stacking order is recommended, from the bottom to the top:&lt;br /&gt;
# windows of type &amp;lt;tt&amp;gt;_NET_WM_TYPE_DESKTOP&amp;lt;/tt&amp;gt;&lt;br /&gt;
# windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_BELOW&amp;lt;/tt&amp;gt;&lt;br /&gt;
# windows not belonging in any other layer&lt;br /&gt;
# windows of type &amp;lt;tt&amp;gt;_NET_WM_TYPE_DOCK&amp;lt;/tt&amp;gt; (unless they have state &amp;lt;tt&amp;gt;_NET_WM_TYPE_BELOW&amp;lt;/tt&amp;gt;) and windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_ABOVE&amp;lt;/tt&amp;gt;&lt;br /&gt;
# focused windows having state &amp;lt;tt&amp;gt;_NET_WM_STATE_FULLSCREEN&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows that are transient for another window should be kept above this window.&lt;br /&gt;
&lt;br /&gt;
The window manager may choose to put some windows in different stacking positions, for example to allow the user to bring currently active window to the top and return it back when the window loses focus.&lt;br /&gt;
&lt;br /&gt;
=Window Style=&lt;br /&gt;
Window style is more or less unchanged, except GNUstep want to display edited document: &amp;lt;tt&amp;gt;GSDocumentEditedFlag&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Window Type=&lt;br /&gt;
EWMH defines:&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DESKTOP, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DOCK, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_TOOLBAR, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_UTILITY, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_SPLASH, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DIALOG, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DROPDOWN_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_POPUP_MENU, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_TOOLTIP, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_NOTIFICATION, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_COMBO, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_DND, ATOM&lt;br /&gt;
  _NET_WM_WINDOW_TYPE_NORMAL, ATOM&lt;br /&gt;
&lt;br /&gt;
Comments from Yen-Ju Chen: &amp;quot;GNUstep has no such definition and use window level for this purpose. Personally, I wish GNUstep had a better way to tell which window is for which functions, like app icon, floating panel, menu, key window, main window. The window level is not that reliable when people want to do some tricks. It may not match EWMH one-to-one, but it will be useful for various reasons.&amp;quot;&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
</feed>