The gtk1 widgetset is quite stable. There are still some bugs and missing properties.
The documentation can be found here.
The minimum Gtk 1 version supported is Gtk 1.2.18
- Lazarus known issues (things that will never be fixed) - A list of interface compatibility issues
- Win32/64 Interface - The winapi interface for Windows 95/98/Me/2K/XP/Vista, but not CE
- Windows CE Interface - For Pocket PC and Smartphones
- Carbon Interface - The Carbon interface for Mac OS X
- Cocoa Interface - The Cocoa interface for Mac OS X
- Qt Interface - The Qt4 interface for Unixes, Mac OS X, Windows, and Linux-based PDAs
- Qt5 Interface - The Qt5 interface for Unixes, Mac OS X, Windows, and Linux-based PDAs
- GTK1 Interface - The gtk1 interface for Unixes, Mac OS X (X11), Windows
- GTK2 Interface - The gtk2 interface for Unixes, Mac OS X (X11), Windows
- GTK3 Interface - The gtk3 interface for Unixes, Mac OS X (X11), Windows
- fpGUI Interface - Based on the fpGUI library, which is a cross-platform toolkit completely written in Object Pascal
- Custom Drawn Interface - A cross-platform LCL backend written completely in Object Pascal inside Lazarus. The Lazarus interface to Android.
Platform specific Tips
- Windows Programming Tips - Desktop Windows programming tips.
- Linux Programming Tips - How to execute particular programming tasks in Linux
- OS X Programming Tips - Lazarus installation, useful tools, Unix commands, and more...
- WinCE Programming Tips - Using the telephone API, sending SMSes, and more...
- Android Programming - For Android smartphones and tablets
- iPhone/iPod development - About using Objective Pascal to develop iOS applications
Interfaces Development Articles
- Carbon interface internals - If you want to help improving the Carbon interface
- Windows CE Development Notes - For Pocket PC and Smartphones
- Adding a new interface - How to add a new widget set interface
- LCL Defines - Choosing the right options to recompile LCL
- LCL Internals - Some info about the inner workings of the LCL
- Cocoa Internals - Some info about the inner workings of the Cocoa widgetset
Using the Gtk1 interface under Mac OS X
If you want to build gtk1 applications on Mac OS X you need X11 and GTK 1.2 too:
Apple X11: On a new system: choose "Customize" in the install dialog, check "X11".
On an already installed system:
MacOSX 10.3: download at:
MacOSX 10.4: install X11 from the DVD.
GTK 1.2: Downloading the GTK packages and installing them properly can be a time consuming task. Therefore there are various package managers. One of them is fink:
- Download fink from http://fink.sourceforge.net/download/index.php?phpLang=en; follow the install instructions.
In the Terminal, run
sudo /sw/bin/apt-get install gdk-pixbuf gtk+ gtk+-data gtk+-shlibs gtk-doc gtk-engines
The X11 application is in /Applications/Utilities/X11. You can drag and drop it on the dock so you can start it with one click. X11 on Mac OS X 10.5 (Leopard) is different and starting X11.app is not recommended.
Tip: Most X11 programs, including Lazarus, expect to receive focus when the user clicks on a window. Under Mac OS X this is deactivated. You can activate it for all X11 applications by typing in the terminal:
defaults write com.apple.x11 wm_click_through -bool true
When compiling GTK-related software, you need to add two lines to the fpc.cfg file, to enable use of libraries:
- Install Apple´s X11, available on your Mac OS X Installation Disk.
For Mac OS X 10.2.x you can download X11 on source forge at the X11 on Mac OS X Project.
For Mac OS X 10.3.x (but not for any other Mac OS X version!) also at Apple.
For Mac OS X 10.4 Tiger you must install X11 from your tiger DVD. This is for OS X to be able to display X11 programs. Tip: Drag the X11-Icon from /Applications/Utilities/X11 into the Dock for convenient starting.
- Install Apple´s XCode, available on your Mac OS X Installation Disk or at Apple Developer Connection (requires creation of account, but the free online program is enough). This installs the XCode IDE and all the developer stuff.
- Install fink, available at Sourceforge. This is an OS X 'apt-get'esque package system.
- Check if installation was successful, open a Terminal and type:
This should give you:
- After successfull installation of the above, open a Terminal and type:
sudo apt-get update sudo apt-get install glib glib-shlibs gtk+-shlibs gdk-pixbuf gdk-pixbuf-shlibs
This installs GTK.
- Install fpc and Lazarus as .dmg for Mac OS X. Now your´re ready to run.
If you decide not to use Fink or if your Fink installation is customized
If you install gdk-pixbuf, gtk, and glib libraries not using Fink, or if your Fink installation is customized to install under other than /sw directory, then make sure that the environment variable DYLD_LIBRARY_PATH point to where the libraries are. For instance, it you use MacPorts, the command below should do the trick:
The environment variable should be setup every time before running lazarus, or should be run from shell startup script.
How to get going
- Start X11.
- You get your XTerm. Focus it and type
cd /usr/local/share/lazarus/ ./lazarus
Lazarus as Icon
You can drag and drop the X11 app onto your dock to have a one-click way of starting X11.
To simplify starting Lazarus, in X11, choose Applications | Customize Menu, then click Add. Under Menu Name enter Lazarus, under Command enter the following:
Click Done to close. Now you can start Lazarus from X11 simply by choosing Applications | Lazarus.
BEWARE: if you use the below svn, then use
open -a /Users/yourname/pascal/lazarus/lazarus