Jim,
All Mac GUI apps should have an .app bundle. Here's how I created one for the
Carbon-based Laz IDE:
1. First made copy of GTK-based Lazarus in case Carbon-based IDE doesn't work.
Can use Finder or command line: cp -p lazarus lazarus-gtk
2. Started GTK-based Lazarus, then in Configure "Build Lazarus":
- Set everything to None, except Laz IDE.
- Set LCL interface to carbon.
- Unchecked Restart box since we don't want to start unbundled executable.
- Entered this in Options: -k'-framework' -k'carbon'
- Clicked Build button.
3. Exited GTK-based Lazarus.
4. Created .icns file. I just posted lazarus.icns to BugTracker, but you can
also create this yourself with Icon Composer from mainicon.ico (in images
folder).
5. Created app bundle with script:
./create_app_mac.sh lazarus Lazarus
This will create Lazarus.app (with proper uppercase first char) and if it finds
lazarus.icns will copy icon file into bundle. If the bundle has an icon file
you'll see this on the dock when it's run.
Script is available from:
http://web.fastermac.net/~MacPgmr/Lazarus/
6. Double-click Lazarus in Finder to start Carbon-based IDE. You can also drag
and drop it onto Dock to start it from there.
Thanks.
-Phil
-Original Message-
From: James Chandler Jr [mailto:[EMAIL PROTECTED]
Sent: Sun 10/14/2007 4:45 PM
To: lazarus@miraclec.com
Subject: [lazarus] Philip Hess' Carbon IDE WIKI idea
Hi Phil
The wiki sounds like a good idea.
Adriaan van Os helped us get a middle-sized PC Lazarus app moved into
an xcode project. The carbon components this project uses, are
working great. The low-level message loop is behaving nicely, doing
what one would expect it to do responding to keyboard, mouse,
updating controls, all that good stuff.
The stuff our program exercises, include Main Menu (with check-items,
and numerous hierarchical menus), Right-click menus, TForm,
ShowModal, multiple TPanels in a TForm, TButton, TSpeedButton,
Multiple TPaintBox in a TPanel, TScrollBar, TBevel, TLabel with
default Black Text, TLabel with Colored Text/Background, TComboBox,
TProgressBar, TMemo, TEdit, TProgressBar, TOpenDialog, TTimer.
Dunno if every feature of each mentioned control is perfect (since I
haven't tested every available feature of each control), but they are
working exactly as they should in our use of each control.
We still need to do some work on it, but here are some screenshots:
http://www.errnum.com/html/MacACWScreenShots.html
Have done Mac programming a long time, off'n'on, but am very ignorant
of a lot of modern Mac details, especially the unix and command-line
tools.
Maybe I'm doing something wrong, but when I double-click
startlazarus, it runs the IDE from the Terminal. A lot of things seem
to work, but no top menu (except the Terminal top menu), and the
message loop doesn't seem to be fully running.
For instance, clicking on a lot of the buttons will open an
appropriate window, but once the window is open, it doesn't do much
and can't be dismissed.
Am not complaining. Far from it. Am only describing it, in case the
current IDE version is supposed to be doing more and I haven't done
something necessary to get it running better.
Do the developers generally run 'all command line all the time', or
do they work on the IDE project in an XCode project?
Does the IDE ultimately need to be built into a bundle to become
double-clickable with a menu and fully functional message loop and such?
The carbon application.run loop is already so well-behaved on our
middle-sized program, that it seems that the code ought to be pretty
close to 'prime time' to run the IDE pretty fully (albeit with
perhaps some initially missing features and bugs to clean up)?
Its looking great. Congrats to all the folks who programmed this.
jcjr
On Oct 14, 2007, at 12:48 PM, Hess, Philip J wrote:
> Tom is right. Almost everything is implemented and working with the
> Carbon widgetset. Even printing works. For now, you can use the
> Unix CUPS-based printer dialogs and TPrinter implementation. The
> dialogs aren't native like the Open, Save, etc. dialogs, but they
> do work fine now. The TPrinter implementation does use the Carbon
> API and is limited to the 4 font families built into the Postscript
> interpreter (Courier, Times, Helvetica, Symbol, which are very
> similar to the TrueType Courier New, Times New Roman, Arial,
> Symbol) but it does print correctly.
>
> One thing that's needed now is testing of the integration of Carbon
> with large, existing apps. For example, the Laz IDE is a good test
> of integration. The Laz IDE can be compiled with the Carbon
> widgetset and it actually works pretty well. There are a few big
> issues still and a lot of little cosmetic ones with IDE dialog
> sizes (too small to fit some of the controls with Carbon), but you
> can try it out and see the future.
>
> I'm thinking of creating a wiki page devoted to getting t