Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / qt / 2007-01

Good progress on TBitmap

29 messages · 5 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Felipe Monteiro de Carvalho

Hello,

Today I did good progress on implementing TBitmap for Qt widgetset. Now the Virtual Magnifying Glass can show a copy of the screen on the background. The only problem is that the Glass doesn't move, and transparent bitmaps don't seam to be supported yet.

Keyboard messages are handled quite nicely.

I also standarized debug messages. I defined that all Handles should be shown using dbghex, so they will all be shown on the same Hex format. I use the debug messages a lot on development =)

thanks,

Felipe Monteiro de Carvalho
Hess, Philip J
to Felipe Monteiro de Carvalho

Keep up the good work, Felipe and Jesus. Many improvements in the Qt widgetset!

Sounds like I need to get cracking on the things I promised Den now that qt4.pas 1.26 is part of Lazarus.

Thanks.

-Phil

Earlier message 22 lines
-----Original Message----- From: on behalf of Felipe Monteiro de Carvalho Sent: Sat 1/27/2007 8:47 AM To: Items specific to the Qt widget set Subject: [Qt] Good progress on TBitmap Hello, Today I did good progress on implementing TBitmap for Qt widgetset. Now the Virtual Magnifying Glass can show a copy of the screen on the background. The only problem is that the Glass doesn't move, and transparent bitmaps don't seam to be supported yet. Keyboard messages are handled quite nicely. I also standarized debug messages. I defined that all Handles should be shown using dbghex, so they will all be shown on the same Hex format. I use the debug messages a lot on development =) thanks, -- Felipe Monteiro de Carvalho
Jesus Reyes
to Felipe Monteiro de Carvalho: Today I did good progress on implementing TBitmap for Qt widgetset. Now the Virtual…

--- Felipe Monteiro de Carvalho
escribi?:

Show quoted text 18 lines
Hello, Today I did good progress on implementing TBitmap for Qt widgetset. Now the Virtual Magnifying Glass can show a copy of the screen on the background. The only problem is that the Glass doesn't move, and transparent bitmaps don't seam to be supported yet. Keyboard messages are handled quite nicely. I also standarized debug messages. I defined that all Handles should be shown using dbghex, so they will all be shown on the same Hex format. I use the debug messages a lot on development =) thanks, -- Felipe Monteiro de Carvalho

Nice.

Felipe what do you use for editing?, I see there is apparently a UTF8 encoded char in the code, take a look at:
http://www.freepascal.org/cgi-bin/viewcvs.cgi/trunk/lcl/interfaces/qt/qtwinapi.inc?root=lazarus&rev=10517&view=diff&r1=10517&r2=10516&p1=trunk/lcl/interfaces/qt/qtwinapi.inc&p2=/trunk/lcl/interfaces/qt/qtwinapi.inc ... "Specifically it??s utilized", this is a problem when you select a block of text that include such chars in lazarus, at least in my system after releasing the left mouse button while selecting, it crashes lazarus all time, that's why I removed many of these in my previous patch.

Though this is probably a problem that needs solution, I think we should use only ascii chars in source code. what do you think?

Jesus Reyes A.

___________________________________________________________ Do You Yahoo!?
La mejor conexi?n a Internet y <b >2GB</b> extra a tu correo por $100 al mes. http://net.yahoo.com.mx

Felipe Monteiro de Carvalho
to Jesus Reyes
Jesus Reyes wrote
Felipe what do you use for editing?

I use Lazarus, but my Mandriva 2007 is configured for UTF-8, so I guess lazarus is using this too (support for iso was dropped on new mandriva).

Show quoted text 5 lines
... "Specifically it??s utilized", this is a problem when you select a block of text that include such chars in lazarus, at least in my system after releasing the left mouse button while selecting, it crashes lazarus all time, that's why I removed many of these in my previous patch.

Ops, sorry =)

I never had such problem.

Though this is probably a problem that needs solution, I think we should use only ascii chars in source code. what do you think?

Isn?t the apostrophe part of ASCII?? Strange ... It?s just that I often type "It?s", maybe I could change that to "Its" or something like that...

thanks,

Felipe Monteiro de Carvalho
Hess, Philip J
to Felipe Monteiro de Carvalho

There are 2 chars in there, hex C2 and B4.

C2 is ?
B4 is acute accent
Normal apostrophe is hex 27.

Might be just a typo?

Thanks.

-Phil

Earlier message 33 lines
-----Original Message----- From: on behalf of Felipe Monteiro de Carvalho Sent: Sat 1/27/2007 2:47 PM To: Items specific to the Qt widget set Subject: Re: [Qt] Good progress on TBitmap On 1/27/07, Jesus Reyes wrote: > Felipe what do you use for editing? I use Lazarus, but my Mandriva 2007 is configured for UTF-8, so I guess lazarus is using this too (support for iso was dropped on new mandriva). > ... "Specifically it??s utilized", this is a problem when you select > a block of text that include such chars in lazarus, at least in my > system after releasing the left mouse button while selecting, it > crashes lazarus all time, that's why I removed many of these in my > previous patch. Ops, sorry =) I never had such problem. > Though this is probably a problem that needs solution, I think we > should use only ascii chars in source code. what do you think? Isn?t the apostrophe part of ASCII?? Strange ... It?s just that I often type "It?s", maybe I could change that to "Its" or something like that... thanks, -- Felipe Monteiro de Carvalho
Jesus Reyes
to Felipe Monteiro de Carvalho: I use Lazarus, but my Mandriva 2007 is configured for UTF-8, so I guess lazarus is using…

--- Felipe Monteiro de Carvalho
escribi?:

Show quoted text 7 lines
Isn?t the apostrophe part of ASCII?? Strange ... It?s just that I often type "It?s", maybe I could change that to "Its" or something like that... thanks, -- Felipe Monteiro de Carvalho

No, you should be using ', the starting string char aphostrophe ;) the other is called acute accent (iirc).

Jesus Reyes A.

___________________________________________________________ Do You Yahoo!?
La mejor conexi?n a Internet y <b >2GB</b> extra a tu correo por $100 al mes. http://net.yahoo.com.mx

Jesus Reyes
to Felipe Monteiro de Carvalho: Today I did good progress on implementing TBitmap for Qt widgetset. Now the Virtual…

--- Felipe Monteiro de Carvalho
escribi?:

Show quoted text 8 lines
Hello, Today I did good progress on implementing TBitmap for Qt widgetset. Now the Virtual Magnifying Glass can show a copy of the screen on the background. The only problem is that the Glass doesn't move, and transparent bitmaps don't seam to be supported yet.

After r10518 I been getting at program exit:
QPaintDevice: Cannot destroy paint device that is being painted do you know what's wrong?.
this code (attached) was working ok (well, picture was without transparency).

Show quoted text 7 lines
Keyboard messages are handled quite nicely. I also standarized debug messages. I defined that all Handles should be shown using dbghex, so they will all be shown on the same Hex format. I use the debug messages a lot on development =)

What you think about going yet one step further and use DebugLn('msg',[vars]); as standard syntax for logging?

thanks, -- Felipe Monteiro de Carvalho

Jesus Reyes A.

___________________________________________________________ Do You Yahoo!?
La mejor conexi?n a Internet y <b >2GB</b> extra a tu correo por $100 al mes. http://net.yahoo.com.mx -------------- next part --------------
A non-text attachment was scrubbed...
Name: second.tar.bz2
Type: application/bzip2
Size: 15203 bytes
Desc: 431353293-second.tar.bz2
URL: <http://lists.lazarus.freepascal.org/pipermail/qt/attachments/20070127/c840391b/attachment.bin>

Felipe Monteiro de Carvalho
to Jesus Reyes: --- Felipe Monteiro de Carvalho escribi?: After r10518 I been getting at program exit:…

I was trying to get this code running:

procedure TPainter.Paint;
var
  bmpDisplay, bmpOutput: TBitmap;
  ScreenDC: HDC;
begin
  bmpDisplay := TBitmap.Create;
  bmpOutput := TBitmap.Create;
  try
    bmpOutput.Width := 500;
    bmpOutput.Height := 500;
    bmpOutput.Canvas.Rectangle(Form2.RectX, Form2.RectY, 100, 100);
    Canvas.Draw(0, 0, bmpOutput);
  finally
    bmpDisplay.Free;
    bmpOutput.Free;
  end;
  inherited Paint;
end;

Where TPainter is a TCustomControl descendent created on a form.

So I added this function (read the comments on it to understand what I was thinking when I wrote it):

{------------------------------------------------------------------------------ Function: TQtDeviceContext.setImage
Params: None
Returns: Nothing

This function will destroy the previous DC handle and generate a new one based on an image. This is necessary because when painting is being done to a TBitmap, LCL will create a completely abstract DC, using GetDC(0), and latter use SelectObject to associate that DC with the Image.
------------------------------------------------------------------------------} procedure TQtDeviceContext.setImage(AImage: TQtImage); begin

  vImage := AImage.Handle;
  QPainter_destroy(Widget);
  Widget := QPainter_Create(vImage);
end;

Maybe this function is the cause?

More debugging and thinking is necessary ...

Is there any regression on the functionality? Your app seams to work here ... and without a console I don't see error messages.

What you think about going yet one step further and use DebugLn('msg',[vars]); as standard syntax for logging?

If it produces the same hex output for handles sure, but we need someone to go througth all the code and change this ...

Felipe Monteiro de Carvalho
Jesús Reyes A.
to Felipe Monteiro de Carvalho

----- Original Message -----

Earlier message 41 lines
From: "Felipe Monteiro de Carvalho" To: "Items specific to the Qt widget set" Sent: Saturday, January 27, 2007 2:43 PM Subject: Re: [Qt] Good progress on TBitmap > ------------------------------------------------------------------------------} > procedure TQtDeviceContext.setImage(AImage: TQtImage); > begin > vImage := AImage.Handle; > > QPainter_destroy(Widget); > > Widget := QPainter_Create(vImage); > end; > > Maybe this function is the cause? > > More debugging and thinking is necessary ... Indeed. > > Is there any regression on the functionality? Your app seams to work > here ... and without a console I don't see error messages. > Don't know, here also it works, but at closing app I get the message. Are you using windows (I tested only in linux)?, you can try disabling gui application in compiler options to see the output. > -- > Felipe Monteiro de Carvalho Jesus Reyes A. __________________________________________________ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ?gratis! Reg?strate ya - http://correo.yahoo.com.mx/
Felipe Monteiro de Carvalho
to Jesús Reyes A.
Jes?s Reyes A. wrote
Don't know, here also it works, but at closing app I get the message. Are you using windows (I tested only in linux)?, you can try disabling gui application in compiler options to see the output.

I?m also using Linux ... I just wanted to know the priority for solving this. If it breaks your apps of course it has more priority then just an error message =)

Felipe Monteiro de Carvalho
Jesús Reyes A.
to Felipe Monteiro de Carvalho

----- Original Message -----

Earlier message 35 lines
From: "Felipe Monteiro de Carvalho" To: "Items specific to the Qt widget set" Sent: Saturday, January 27, 2007 5:53 PM Subject: Re: [Qt] Good progress on TBitmap On 1/27/07, Jes?s Reyes A. wrote: > Don't know, here also it works, but at closing app I get the message. > Are you using windows (I tested only in linux)?, you can try disabling gui > application > in compiler options to see the output. I?m also using Linux ... I just wanted to know the priority for solving this. If it breaks your apps of course it has more priority then just an error message =) -- Felipe Monteiro de Carvalho -------------------------------------- How is it then that you don't have console output?. Just open one and run the program there, how do you see the debug output when it's enabled?. Could it be my personal qt version, sys config, or something else that cause the message?. The problem doesn't appear to crash the program, it's just like a warning and it's not high priority for me. However it's something to take care as it looks Qt doesn't like our methods :) Jesus Reyes A. __________________________________________________ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ?gratis! Reg?strate ya - http://correo.yahoo.com.mx/
Felipe Monteiro de Carvalho
to Jesús Reyes A.
On 1/27/07, Jes?s Reyes A. wrote: How is it then that you don't have console output?

I have consele output. It's just that I expected a crash, AV message box or something more serious =)

The problem doesn't appear to crash the program, it's just like a warning and it's not high priority for me. However it's something to take care as it looks Qt doesn't like our methods :)

My first idea was that it didn't like us destroying the painter during paint time. So I tested not to destroy it on SetImage. Instead save it as another variable (OldWidget), and destroy that if not nil on the destructor of the DC ...

It didn't work ... so I'm not sure what is the problem.

Felipe Monteiro de Carvalho
Felipe Monteiro de Carvalho
to Felipe Monteiro de Carvalho

Is there a way of stepping into my program with Lazarus while seing the console output of it???

When opening Lazarus with a console I can see my debug messages, but Lazarus drops too many debug messages of it's own on the console =)

Felipe Monteiro de Carvalho
Jesús Reyes A.
to Felipe Monteiro de Carvalho

----- Original Message -----

Earlier message 25 lines
From: "Felipe Monteiro de Carvalho" To: "Items specific to the Qt widget set" Sent: Saturday, January 27, 2007 6:23 PM Subject: Re: [Qt] Good progress on TBitmap > Is there a way of stepping into my program with Lazarus while seing > the console output of it??? > > When opening Lazarus with a console I can see my debug messages, but > Lazarus drops too many debug messages of it's own on the console =) > Appart from a remote debugging session or output the gui output to other pc runing x11, I don't know. I almost never debug within lazarus :( > -- > Felipe Monteiro de Carvalho Jesus Reyes A. __________________________________________________ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ?gratis! Reg?strate ya - http://correo.yahoo.com.mx/
Felipe Monteiro de Carvalho
to Jesús Reyes A.

Ok, sorry, I made a try and wasn't able to quickly solve this problem ... will need some research.

On another unrelated matter, I just commited a fix for MouseMove events, they should be fully working now =) (At least for QWidget), and that means my glass is moving!! =) And amplifying the screen.

It seams there is very little to go to make the magnifier fully working.

Felipe Monteiro de Carvalho
Den Jean
to Hess, Philip J: QPixMap_toMacGCImageRef and QPixmap_fromMacCGImageRef: Both functions are in QtGui, but I…
Philip J wrote
Both functions are in QtGui, but I think it's CGImageRef that the compiler doesn't understand. Where is CGImageRef defined?
grep -r CGImageRef src/* :
src/gui/kernel/qwindowdefs.h:typedef struct CGImage *CGImageRef;

but I cannot find the definition of CGImage

....

src/gui/painting/qpaintengine_raster.cpp:#ifdef
kCGBitmapByteOrder32Host //only needed because CGImage.h added symbols in the minor version

but I do not find/have CGImage.h

I will just define it as a pointer

regards,

Den Jean

Hess, Philip J
to Felipe Monteiro de Carvalho: Ok, sorry, I made a try and wasn't able to quickly solve this problem ... will need some…

Felipe: Let me know when you want me to test the Magnifier with Qt on OS X. I tried it with the existing Magnifier 3.2.1 source but it crashes.

Thanks.

-Phil

Earlier message 16 lines
-----Original Message----- From: on behalf of Felipe Monteiro de Carvalho Sent: Sat 1/27/2007 7:41 PM To: Items specific to the Qt widget set Subject: Re: [Qt] Good progress on TBitmap Ok, sorry, I made a try and wasn't able to quickly solve this problem ... will need some research. On another unrelated matter, I just commited a fix for MouseMove events, they should be fully working now =) (At least for QWidget), and that means my glass is moving!! =) And amplifying the screen. It seams there is very little to go to make the magnifier fully working. -- Felipe Monteiro de Carvalho
Felipe Monteiro de Carvalho
to Hess, Philip J
Philip J wrote
Felipe: Let me know when you want me to test the Magnifier with Qt on OS X. I tried it with the existing Magnifier 3.2.1 source but it crashes.

I did some modifications, so althougth buggy, it already runs =) So I think it's ready for a pre-eliminary test.

Use the CVS magnifier source code, combined with latest Lazarus source code.

thanks,

Felipe Monteiro de Carvalho
Felipe Monteiro de Carvalho
to Felipe Monteiro de Carvalho
Felipe Monteiro de Carvalho wrote
I did some modifications, so althougth buggy, it already runs =) So I think it's ready for a pre-eliminary test.

Ops ... I almost forgot something. There is no Mac OS X implementation for TTrayIcon component yet.

TrayIcon is an interresting component in the sence it's not really widgetset dependent, it's instead windowing system dependent, so a Gtk or Qt implementation will never be cross-platform ...

It will be necessary to write a Carbon implementation for TTrayIcon, that is used by all widgetsets running on Mac OS X.

Felipe Monteiro de Carvalho
Hess, Philip J
to Felipe Monteiro de Carvalho: I did some modifications, so althougth buggy, it already runs =) So I think it's ready…

I don't think I have a CVS client on any of my computers so I guess I'll have to look into that. All the projects I work with use Subversion.

Earlier message 17 lines
-----Original Message----- From: on behalf of Felipe Monteiro de Carvalho Sent: Sun 1/28/2007 7:29 PM To: Items specific to the Qt widget set Subject: Re: [Qt] Good progress on TBitmap On 1/28/07, Hess, Philip J wrote: > Felipe: Let me know when you want me to test the Magnifier with Qt on OS X. I tried it with the existing Magnifier 3.2.1 source but it crashes. I did some modifications, so althougth buggy, it already runs =) So I think it's ready for a pre-eliminary test. Use the CVS magnifier source code, combined with latest Lazarus source code. thanks, -- Felipe Monteiro de Carvalho
Hess, Philip J
to Felipe Monteiro de Carvalho: On 1/28/07, Felipe Monteiro de Carvalho Ops ... I almost forgot something. There is no…

On OS X, the equivalent to the Windows tray is the little row of "Menu Extras" (Apple term) or "menulets" (common term) on the far right side of the menu bar at the top of the screen (clock, battery, etc.). These are "plugins", actually regular little programs that the user can run. Double-clicking a .menu plugin puts it on the menu. Holding down the Apple key and dragging and dropping it off the menu uninstalls it.

Not sure how to write one of these or how to make it interact with the Magnifier program. If I have some time I'll look into it.

http://en.wikipedia.org/wiki/Menu_extra

Thanks.

Earlier message 23 lines
-----Original Message----- From: on behalf of Felipe Monteiro de Carvalho Sent: Sun 1/28/2007 7:45 PM To: Items specific to the Qt widget set Subject: Re: [Qt] Good progress on TBitmap On 1/28/07, Felipe Monteiro de Carvalho wrote: > I did some modifications, so althougth buggy, it already runs =) So I > think it's ready for a pre-eliminary test. Ops ... I almost forgot something. There is no Mac OS X implementation for TTrayIcon component yet. TrayIcon is an interresting component in the sence it's not really widgetset dependent, it's instead windowing system dependent, so a Gtk or Qt implementation will never be cross-platform ... It will be necessary to write a Carbon implementation for TTrayIcon, that is used by all widgetsets running on Mac OS X. -- Felipe Monteiro de Carvalho
Felipe Monteiro de Carvalho
to Hess, Philip J
Philip J wrote
On OS X, the equivalent to the Windows tray is the little row of "Menu Extras"

Ummm ... I think I read somewhere on Apple docs that the Menu extra should only be used by Apple software or something like this ...

I was thinking of using the Dock menu:

http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/XHIGMenus/chapter_16_section_6.html

But the menu extras certainly would be better

Felipe Monteiro de Carvalho
Felipe Monteiro de Carvalho
to Felipe Monteiro de Carvalho
Felipe Monteiro de Carvalho wrote
Ummm ... I think I read somewhere on Apple docs that the Menu extra should only be used by Apple software or something like this ...

I found:

http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/XHIGMenus/chapter_16_section_4.html#//apple_ref/doc/uid/TP30000356-TPXREF103

On the very bottom:

Menu Bar Extras

Reserved for use by Apple, the right side of the menu bar may contain items that provide feedback on and access to certain hardware or network settings. Menu bar extras display some type of status in the menu bar and have a menu to change settings. The icon for the battery strength indicator, for example, dynamically displays the current state of the battery for a portable computer, and the menu has common battery settings. Users can display or hide a menu bar extra in the appropriate preferences pane.

Important: Don't create your own menu bar extras. Use the Dock menu functions to open a menu from your application's icon in the Dock.

If there is not enough room in the menu bar to display all menus, menu bar extras are removed automatically by Mac OS X to make room for application menus, which take precedence. Because of this, and because users can choose to hide menu bar extras, you should not rely on their presence.

------------------------------------------------

Maybe it?s possible to create a menu extra, but apple won?t be happy =)

Felipe Monteiro de Carvalho
Hess, Philip J
to Felipe Monteiro de Carvalho: Ummm ... I think I read somewhere on Apple docs that the Menu extra should only be used…

Yes, I think you're right - a dock menu that appears when the user holds down the mouse over the running Magnifier's "tile" on the dock probably would be better than Menu extras. The question is how to add these menu items with Qt or FPC. The Carbon framework has a
SetApplicationDockTileMenu function that can be used to add menu items to the app's tile. This is available in the FPCMacOSAll.pas unit.

One other issue is the app's main bar. In OS X, when an app has the focus its menu appears at the top of the screen. This is unlike Windows or Linux, where an app doesn't have to have a menu. Not sure how this would affect the interaction of the Magnifier with any other apps. For example, when you activate the Magnifier, its menu bar would replace that of the app you're working with...

Thanks.

Earlier message 23 lines
-----Original Message----- From: [mailto:] On Behalf Of Felipe Monteiro de Carvalho Sent: Monday, January 29, 2007 5:28 AM To: Items specific to the Qt widget set Subject: Re: [Qt] Good progress on TBitmap On 1/28/07, Hess, Philip J wrote: > On OS X, the equivalent to the Windows tray is the little row of "Menu Extras" Ummm ... I think I read somewhere on Apple docs that the Menu extra should only be used by Apple software or something like this ... I was thinking of using the Dock menu: http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHI Guidelines/XHIGMenus/chapter_16_section_6.html But the menu extras certainly would be better -- Felipe Monteiro de Carvalho
Felipe Monteiro de Carvalho
to Hess, Philip J
Philip J wrote
Yes, I think you're right - a dock menu that appears when the user holds down the mouse over the running Magnifier's "tile" on the dock probably would be better than Menu extras.

Actually I'm not sure. According to wikipedia, Apple provides a API, even if incomplete, to create menu extras icons .... and that is contradictory with the text on apple docs. Maybe at one point they changed their mind?

The question is how to add these menu items with Qt or FPC. The Carbon framework has a SetApplicationDockTileMenu function that can be used to add menu items to the app's tile. This is available in the FPCMacOSAll.pas unit.

This would be implemented on Carbon, on TTrayIcon code, and become transparent to the developers using TTrayIcon. That should work without code changes on all widgetsets running on Mac OS X.

One other issue is the app's main bar. In OS X, when an app has the focus its menu appears at the top of the screen. This is unlike Windows or Linux, where an app doesn't have to have a menu.

Apple has a magnfying glass of it's own. One could look at how it solves this problem.

Felipe Monteiro de Carvalho
Hess, Philip J
to Felipe Monteiro de Carvalho

Probably not all widgetsets. Executables running under X11 don't have their own dock tile, I don't think. I'll check on this to make sure. That would probably limit the dock menu to Carbon and Qt apps.

Are you referring to OS X's "Zoom" feature for accessibility? I don't believe this works quite like the Magnifier, but I could be mistaken. When I fooled around with it, it seemed like primarily a keystroke-oriented zoom-in / zoom-out thing. If OS X has an actual magnifying glass I haven't found it yet.

Thanks.

-Phil

Earlier message 39 lines
-----Original Message----- From: [mailto:] On Behalf Of Felipe Monteiro de Carvalho Sent: Monday, January 29, 2007 11:30 AM To: Items specific to the Qt widget set Subject: Re: [Qt] Good progress on TBitmap On 1/29/07, Hess, Philip J wrote: > Yes, I think you're right - a dock menu that appears when the user holds > down the mouse over the running Magnifier's "tile" on the dock probably > would be better than Menu extras. Actually I'm not sure. According to wikipedia, Apple provides a API, even if incomplete, to create menu extras icons .... and that is contradictory with the text on apple docs. Maybe at one point they changed their mind? > The question is how to add these menu > items with Qt or FPC. The Carbon framework has a > SetApplicationDockTileMenu function that can be used to add menu items > to the app's tile. This is available in the FPCMacOSAll.pas unit. This would be implemented on Carbon, on TTrayIcon code, and become transparent to the developers using TTrayIcon. That should work without code changes on all widgetsets running on Mac OS X. > One other issue is the app's main bar. In OS X, when an app has the > focus its menu appears at the top of the screen. This is unlike Windows > or Linux, where an app doesn't have to have a menu. Apple has a magnfying glass of it's own. One could look at how it solves this problem. -- Felipe Monteiro de Carvalho
Felipe Monteiro de Carvalho
to Hess, Philip J
Philip J wrote
Probably not all widgetsets. Executables running under X11 don't have their own dock tile, I don't think. I'll check on this to make sure. That would probably limit the dock menu to Carbon and Qt apps.

ummm .... that would be a reason to prefer the menu bar extras, isn't it?

Are you referring to OS X's "Zoom" feature for accessibility?

Since I only read about it, and never actually used or saw in action, I don't really know what I am refering to =)

Felipe Monteiro de Carvalho
Hess, Philip J
to Felipe Monteiro de Carvalho

A GTK2 app that's compiled against GTK2 libraries that don't depend on X11 would also qualify as a native app along with Carbon and Qt. I'm assuming that few developers would ever distribute a GTK/X11-based app on OS X because of the hassle of using fink to download and install the GTK libraries. (As well as the general ugliness of the resulting app.)

It's important to remember that almost all OS X users are real end users, few programmers, their computers are running desktop software not acting as servers, etc. These are users with high standards and expect a lot in the way of ease of installation and operation from their software.

I believe the typical Mac user buys 3x more software (real money) than the typical Windows user. Not sure why this is. Maybe fewer pirates, maybe more affluent, probably something to do with not accepting free crapware that the PC hardware companies preload onto their machine in exchange for payment from the crapware makers... Mac users put out a lot of money for software that they expect will meet the high standards of the free Apple apps included with OS X.

I've been able to link a GTK2 widgetset executable created by Laz against the GTK2 libraries included with the OS X version of Gimp. This is one possible way of getting GTK2 libraries installed on an end user's machine that's much easier than using fink. Gimp uses the drag-and-drop installation that OS X supports: Open the package and drag and drop Gimp anywhere you like. Close package. Done with installation. Currently the Gimp's GTK2 2.6.10 libraries require X11, but I would assume this would be a program that would be one of the first to move to X11-free GTK2 libraries when they become available.

Thanks.

-Phil

Earlier message 23 lines
-----Original Message----- From: [mailto:] On Behalf Of Felipe Monteiro de Carvalho Sent: Monday, January 29, 2007 2:03 PM To: Items specific to the Qt widget set Subject: Re: [Qt] Good progress on TBitmap On 1/29/07, Hess, Philip J wrote: > Probably not all widgetsets. Executables running under X11 don't have > their own dock tile, I don't think. I'll check on this to make sure. > That would probably limit the dock menu to Carbon and Qt apps. ummm .... that would be a reason to prefer the menu bar extras, isn't it? > Are you referring to OS X's "Zoom" feature for accessibility? Since I only read about it, and never actually used or saw in action, I don't really know what I am refering to =) -- Felipe Monteiro de Carvalho