Re: [lazarus] no widestring support in FreeBSD4
On Thu, 18 May 2006 05:22:34 +0200 Marc Santhoff [EMAIL PROTECTED] wrote: Hi, since I'm sort of a lazy updater I didn't notice earlier: Lazarus doesn't compile on FreeBSD 4 any more, since some newer functions are missing. Linking ../lazarus /home/marc/fpc-2.0.2/lib/fpc/2.0.2/units/i386-freebsd/rtl/cwstring.o: In function `CWSTRING_LOWERWIDESTRING$WIDESTRING$$WIDESTRING': /home/marc/fpc-2.0.2/lib/fpc/2.0.2/units/i386-freebsd/rtl/cwstring.o(.tex t+0x460): undefined reference to `towlower' /home/marc/fpc-2.0.2/lib/fpc/2.0.2/units/i386-freebsd/rtl/cwstring.o: In function `CWSTRING_UPPERWIDESTRING$WIDESTRING$$WIDESTRING': /home/marc/fpc-2.0.2/lib/fpc/2.0.2/units/i386-freebsd/rtl/cwstring.o(.tex t+0x4e0): undefined reference to `towupper' /home/marc/fpc-2.0.2/lib/fpc/2.0.2/units/i386-freebsd/rtl/cwstring.o: In function `CWSTRING_COMPAREWIDESTRING$WIDESTRING$WIDESTRING$$LONGINT': /home/marc/fpc-2.0.2/lib/fpc/2.0.2/units/i386-freebsd/rtl/cwstring.o(.tex t+0x79c): undefined reference to `wcscoll' lazarus.pp(113,1) Error: Error while linking Error: /home/marc/fpc-2.0.2/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled) gmake[2]: *** [lazarus] Fehler 1 I were able to find at least towlower and towupper in the sources of FreeBSD 5 and I'm asking myself how I can deal with that. The drawback for me is, I'm nailed to version 4 for sime time. My Questions: Can the use of cwstring be switched off? If not, what would be the most appropriate way of handling the missing functions? (I'd tend to write them in pascal into an .inc included by $ifdef-ing) cwstring is only used in lcl/translations.pas. I added an {$IFNDEF DisableCWString}. Please update from svn an compile with -dDisableCWString. Mattias _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Lazarus Help System Requirements
That is an excellent tip! We should mention it somewhere on the Wiki. Graeme. On 5/17/06, L505 [EMAIL PROTECTED] wrote: On 5/17/06, L505 [EMAIL PROTECTED] wrote: The reason I currently use Google to search for freepascal documentation on the RTL instead of using my local copy of my help documents, is because Google itself is my database that powers the search of the freepascal documentation. Some of you just Just for interest sake, how do you use Google? Using the site: command in the search box...? eg: site:freepascal.org GetPropValue Exactly: site:freepascal.org docs The keyword docs helps filter out mailing list stuff and other pages.. if you just want to target in on the Documentatoin just type in Docs keyword in addition to the site. So: site:freepascal.org docs getpropvalue instead of just site:freepascal.org getpropvalue And don't always use this: site:www.freepascal.org Skip the www prefix, incase you find something in community.freepascal, etc. _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives -- There's no place like 127.0.0.1 _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] wince patch
On Thu, 18 May 2006 02:21:33 +0330 roozbeh gholizadeh [EMAIL PROTECTED] wrote: This patch: * adds arrow unit and tarrow support * fixes timage,now images being displayed * add spinedit unit * add checklist unit for tchecklist box * fixed some missed pchar to pwidechar conversions * updated for new rtl * new winapiemu unit for emulating missing windows apis Thanks. Applied. I renamed the winapiemu to wincewinapiemu to make it more unique. There were some rejects i wincewscomctrls, but it seems that were only line endings. Please test. Mattias _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] New SUSE 10.1 can't link gdk
On Wed, 17 May 2006 13:26:47 -0700 johnf [EMAIL PROTECTED] wrote: On Wednesday 17 May 2006 12:53, Mattias Gaertner wrote: On Wed, 17 May 2006 11:55:48 -0700 johnf [EMAIL PROTECTED] wrote: On Wednesday 17 May 2006 11:31, Mattias Gaertner wrote: On Wed, 17 May 2006 20:20:56 +0200 Den Jean [EMAIL PROTECTED] wrote: On Wednesday 17 May 2006 20:08, johnf wrote: What is next? I had the same error due to a fpc.cfg containing -Fu/usr/lib/fpc/2.0.0/units/$fpctarget -Fu/usr/lib/fpc/2.0.0/units/$fpctarget/* -Fu/usr/lib/fpc/2.0.0/units/$fpctarget/rtl instead of -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/* -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl when compiling with a fpc 2.0.0. The paths are different on Suse, but the problem may be similar The above are only unit paths. Then the error would be cannot find unit. If there is a linker error the compiler leaves the link.res file. Please have a look and see if the path to libgdk.so is there. Mattias Where might the link.res be created? If you compiled lazarus, then in the main directory. If you compiled one of your projects, then in the project directory. Mattias The 4 line has 'SEARCH_DIR(/opt/gnome/lib)' See attached link.res and a list of lib's from /opt/gnome/lib So, the path is given to ld, and the file is there. But ld still can't find it. Please add the linker option --verbose (Project Compiler Options Linking Options). This gives a lot of output. Save the messages to a file (Right click on the message window Save all messages to file). Search for gdk in the file. Mattias _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Help Framework proposal
On Wed, 17 May 2006 15:52:29 -0300 Felipe Monteiro de Carvalho [EMAIL PROTECTED] wrote: On 5/17/06, Mattias Gaertner [EMAIL PROTECTED] wrote: It's on my ToDo list to make a few things easier to override and write some examples. But I'm not sure, how many types of help systems will be written. According to the threads in the list it seems only a few (chm and open document. html and fpdoc already exists). So there is not much gain providing interfaces too. The framework should be created looking in the future, and that is being flexible to whatever db or viewer people invent. Temporary solutions tend to become permanent. We can add interfaces whenever we want. Or do you mean, there should be only interfaces and no classes? Mattias _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Lazarus Help System Requirements
On 5/17/06, L505 [EMAIL PROTECTED] wrote: So: site:freepascal.org docs getpropvalue instead of just site:freepascal.org getpropvalue Okay, to extent on your example and make it even easier to do searching I have created two dynamic bookmarks. I have tested them in Mozilla Firefox, but should also work in Netscape. Not sure about IE (please let me know). You create a new bookmark on your Bookmark Toolbar. When you click the bookmark, it prompts you for your keyword(s) to search and launches Google . There should be no wrapping of text so please fix this when you create you bookmarks. Bookmark #1 Name: Search FPC docs (includes mailing lists) URL Location: javascript:Qr=document.getSelection();if(!Qr){void(Qr=prompt('Enter your Keywords...',''))};if(Qr)location.href='http://www.google.com/search?hl=enq=site:freepascal.org+'+escape(Qr) Bookmark #2 Name: Search FPC docs only URL Location: javascript:Qr=document.getSelection();if(!Qr){void(Qr=prompt('Enter your Keywords...',''))};if(Qr)location.href='http://www.google.com/search?hl=enq=site:freepascal.org+docs+'+escape(Qr) Have fun!! Regards, Graeme. -- There's no place like 127.0.0.1 _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] fpcUnit patch
On Wed, 17 May 2006 13:20:16 +0200 Graeme Geldenhuys [EMAIL PROTECTED] wrote: Hi, Please find attached another contribution for the fpcUnit users. Changes apply to the components/fpcunit directory. This patch needs to be applied from the root Lazarus directory. Fixes: * Resized the height of the form to better fit a large list of tests. * Added a new image to the image treeview imagelist. Also included the .xpm file in the archive which might need to go into the Lazarus/images directory (not sure). * Enabled feedback while long tests are executing. The grey ball on each tree node now turns Blue while a test is running. Once the test is completed it change to Red, Magenta or Green based on the test outcome. * The progress bar also has better feedback. You can now see in move while tests are running. Thanks. Applied. Mattias _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Lazarus Help System Requirements
Graeme Geldenhuys wrote: That is an excellent tip! We should mention it somewhere on the Wiki. Graeme. On 5/17/06, L505 [EMAIL PROTECTED] wrote: On 5/17/06, L505 [EMAIL PROTECTED] wrote: The reason I currently use Google to search for freepascal documentation on the RTL instead of using my local copy of my help documents, is because Google itself is my database that powers the search of the freepascal documentation. Some of you just Just for interest sake, how do you use Google? Using the site: command in the search box...? eg: site:freepascal.org GetPropValue Exactly: site:freepascal.org docs The keyword docs helps filter out mailing list stuff and other pages.. if you just want to target in on the Documentatoin just type in Docs keyword in addition to the site. So: site:freepascal.org docs getpropvalue instead of just site:freepascal.org getpropvalue And don't always use this: site:www.freepascal.org Skip the www prefix, incase you find something in community.freepascal, etc. Can anybody explain, why googling with: site:lazarus-ccr.sourceforge.net dynamicarray only gives two hits, but not http://lazarus-ccr.sourceforge.net/docs/lcl/dynamicarray/index.html It is a pity, that the most up to date docs are not completely indexed. Vincent. _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Lazarus Help System Requirements
On 5/18/06, Vincent Snijders [EMAIL PROTECTED] wrote: Can anybody explain, why googling with: site:lazarus-ccr.sourceforge.net dynamicarray only gives two hits, but not http://lazarus-ccr.sourceforge.net/docs/lcl/dynamicarray/index.html It is a pity, that the most up to date docs are not completely indexed. I was just thinking along the same lines. Google is so busy, it takes a long while to keep indexes up-to-date against constant changing sites. This is going to be the only drawback of using Google to search docs. Graeme. -- There's no place like 127.0.0.1 _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Lazarus Help System Parts
On Sun, 14 May 2006 00:56:04 +0200 Graeme Geldenhuys [EMAIL PROTECTED] wrote: On 13/05/06, Mattias Gaertner [EMAIL PROTECTED] wrote: If you mean Delphi's HelpIntfs.pas: It merely contains 6 interfaces with 25 methods. It can only show a TOC and help for ID/Keyword/Topic. Which is pretty much all you want from any help system. I expect more. That's what 99% of all help files under Windows offer. No different mime types, I don't know all the internals of Delphi and Kylix, but I would guess the IDE uses the same Help Interface defined in HelpIntf unit and they managed it. Kylix can figure out which help system to launch... Kylix comes with a help viewer for Man Pages and HyperHelp. Depending on what keyword is highlighted in the editor, pressing F1 launches the correct helpsystem. I don't know how Delphi internally maps identifiers to keywords. For example identifiers like 'Align' depends on the context. You can search for Align in all help databases and present the user all possibilities. Or you can do a find declaration, see that Align of TButton of lcl/buttons.pp is meant and only show the two Align items of the LCL: TButton.Align and TControl.Align. That's why you need the possibility to define contexts. Of course for simple projects with a few help pages you can use whatever you want. Here we need some easy functions with some good defaults. no help for messages, source codes, Again, how does Delphi and Kylix manage to do this, or does this mean they use a different help interface for the IDE compared to the HelpIntfs unit shipped in VCL/CLX? I don't know. no configuration data. This might sound dumb, but what would you want to configure? All that the user cares about is being able to press F1 and see a help viewer appear with the appropriate content. If the help consists of html pages and the help viewer simply starts a browser, then you might setup which browser and the command line parameters. Or the language, or where to save te bookmarks. Have a look at ideintf/helphtml.pas. It defines a HTML database class and a HTML viewer class. I will continue working through that example thanks... I'm currently looking, what to move into the LCL and for what to put into pascal interfaces. We want to release 0.9.16 this weekend, so I will probably do that not before next week. Mattias _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Lazarus Help System Requirements
Graeme Geldenhuys wrote: On 5/18/06, Vincent Snijders [EMAIL PROTECTED] wrote: Can anybody explain, why googling with: site:lazarus-ccr.sourceforge.net dynamicarray only gives two hits, but not http://lazarus-ccr.sourceforge.net/docs/lcl/dynamicarray/index.html It is a pity, that the most up to date docs are not completely indexed. I was just thinking along the same lines. Google is so busy, it takes a long while to keep indexes up-to-date against constant changing sites. I think this particular page has been there for months now. Other pages for over a year. So that is not a good explanation. Vincent _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Speedbutton property transparant default value should be false.
On Sat, 13 May 2006 21:04:18 +0200 Marien van Westen [EMAIL PROTECTED] wrote: Hello, I noticed that in the last snapshot the Speedbuttons have a property transparant (is this a recent change?) The default value is True, but placing a speedbutton on a form results in a button without borders. I suggest to make the default value for Transparant False. Or is there another reason to make it True? Delphi compatibility. It is planned to setup the default values for newly created components in the designer via the Object Inspector. If there is a volunteer, who wnats to add this feature, please ask, and I can help. Greetings Marien P.S. Lazarus is improving every day. I think about replacing Delphi by Lazarus for my lectures on programming ! :) Mattias _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] no widestring support in FreeBSD4
Am Donnerstag, den 18.05.2006, 08:24 +0200 schrieb Mattias Gaertner: On Thu, 18 May 2006 05:22:34 +0200 Marc Santhoff [EMAIL PROTECTED] wrote: My Questions: Can the use of cwstring be switched off? If not, what would be the most appropriate way of handling the missing functions? (I'd tend to write them in pascal into an .inc included by $ifdef-ing) cwstring is only used in lcl/translations.pas. I added an {$IFNDEF DisableCWString}. Please update from svn an compile with -dDisableCWString. Anything working nicely again, thank you very much! Regards, Marc _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Request for PR noise !
On st , 2006-05-17 at 08:48 -0500, [EMAIL PROTECTED] wrote: I one of the ones who think that a new name is MUST, Lazarus seems fine for a project name, but I share the idea that taking the project to corporate world, will require a new name. And what makes you think Lazarus aims for corporate world? Ales _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Lazarus Help System Requirements
Can anybody explain, why googling with: site:lazarus-ccr.sourceforge.net dynamicarray only gives two hits, but not http://lazarus-ccr.sourceforge.net/docs/lcl/dynamicarray/index.html It is a pity, that the most up to date docs are not completely indexed. I was just thinking along the same lines. Google is so busy, it takes a long while to keep indexes up-to-date against constant changing sites. This is going to be the only drawback of using Google to search docs. That's the catch22 - I deal with this problem every month with websites. Google indexes 200,000-500,000 pages one month and then next month it drops down to 1,000 or even 200. It's a roller coaster just like the stock market. This would be where having your own help doc indexing system would help. But to put less load on the freepascal/lazarus servers it is obviously wise to have a client side program indexing system like chm/local db/whatever. Still, more important than indexing the docs is writing them - if they weren't written, there wouldn't be anything to index - and Michael and others have done excellent job there. How about google desktop search? LOL I haven't tried that one.. place google desktop search on the FPC docs directory and see what happens? _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
[lazarus] Changing TImageList.Add from direct to copying
On Fri, 12 May 2006 13:47:00 -0300 Andreas Berger [EMAIL PROTECTED] wrote: Andreas Berger wrote: I am porting an application from Delphi that depends heavily on images added at runtime to a TImageList. However, the Add method does not seem to work in Lazarus. Here is an example: normalImages := TImageList.Create(AOwner); normalImages.Height := 33; normalImages.Width := 33; normalImages.Masked := false; . . . image := TBitmap.Create; image.LoadFromFile(f); currImages.Add(image, Nil); . . . normalImages.GetBitmap(baseImage * uc_NumOptions + imageIndex, image.Picture.Bitmap); // This copies nothing into image It also does not work if I place a TImageList on a form and add the images (as above) at runtime. However, if I place a TImageList on the form and store the images into it via the object inspector then the above line works ok. I assume that the Add function does not work correctly. Andreas Ok I found the problem. Lazarus simply adds the image to the list without making a copy, so when I deleted the image after adding it (like is done in delphi) the image vanished :) . Is this an error? Sorry for the late response. There AddCopy and AddDirect methods. At the moment Add calls AddDirect. Delphi's TImageList uses for historical reasons one image for the whole list and has therefore no AddDirect. The whole Lazarus code uses AddDirect and never AddCopy, so it seems Add as AddCopy is a Delphi atavism. I asked on the devel list if we should change it - no response so far. It's a difficult decision. Comments? Mattias _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Lazarus Help System Requirements
On 5/18/06, L505 [EMAIL PROTECTED] wrote: excellent job there. How about google desktop search? LOL I haven't tried that one.. place google desktop search on the FPC docs directory and see what happens? Excellent, never though of that either. That should work brilliantly. Now the only snag, is Google Desktop Search available for Linux yet? Regards, Graeme. -- There's no place like 127.0.0.1 _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Lazarus Help System Requirements
On 5/18/06, Vincent Snijders [EMAIL PROTECTED] wrote: Can anybody explain, why googling with: site:lazarus-ccr.sourceforge.net dynamicarray only gives two hits, but not http://lazarus-ccr.sourceforge.net/docs/lcl/dynamicarray/index.html I think this particular page has been there for months now. Other pages for over a year. So that is not a good explanation. Do those pages not maybe contain some metatags (I think that is what they are called) or tags that Google doesn't like, so doesn't index them fully. I know you get metatags to tell search engines more about your site and what not to index. Just a guess. Regards, Graeme. -- There's no place like 127.0.0.1 _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Lazarus Help System Requirements
On Thu, 18 May 2006 09:43:27 +0200 Vincent Snijders [EMAIL PROTECTED] wrote: Graeme Geldenhuys wrote: That is an excellent tip! We should mention it somewhere on the Wiki. Graeme. On 5/17/06, L505 [EMAIL PROTECTED] wrote: On 5/17/06, L505 [EMAIL PROTECTED] wrote: The reason I currently use Google to search for freepascal documentation on the RTL instead of using my local copy of my help documents, is because Google itself is my database that powers the search of the freepascal documentation. Some of you just Just for interest sake, how do you use Google? Using the site: command in the search box...? eg: site:freepascal.org GetPropValue Exactly: site:freepascal.org docs The keyword docs helps filter out mailing list stuff and other pages.. if you just want to target in on the Documentatoin just type in Docs keyword in addition to the site. So: site:freepascal.org docs getpropvalue instead of just site:freepascal.org getpropvalue And don't always use this: site:www.freepascal.org Skip the www prefix, incase you find something in community.freepascal, etc. Can anybody explain, why googling with: site:lazarus-ccr.sourceforge.net dynamicarray only gives two hits, but not http://lazarus-ccr.sourceforge.net/docs/lcl/dynamicarray/index.html It is a pity, that the most up to date docs are not completely indexed. The google cache date of the LCL page is 26 Jul 2005 13:42:36 GMT. Mattias _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Changing TImageList.Add from direct to copying
I asked on the devel list if we should change it - no response so far. It's a difficult decision. Though Lazarus officially is not intended to clone Delphi, but in fact most (or all) of Lazarus users were come from Delphi world. I think it'd be better if Lazarus can mimic Delphi as close as possible especially for default components, as long as it's not too principal. :) -Bee- has Bee.ography at http://beeography.wordpress.com _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Changing TImageList.Add from direct to copying
Mattias Gaertner wrote: Ok I found the problem. Lazarus simply adds the image to the list without making a copy, so when I deleted the image after adding it (like is done in delphi) the image vanished :) . Is this an error? Sorry for the late response. There AddCopy and AddDirect methods. At the moment Add calls AddDirect. Delphi's TImageList uses for historical reasons one image for the whole list and has therefore no AddDirect. The whole Lazarus code uses AddDirect and never AddCopy, so it seems Add as AddCopy is a Delphi atavism. I asked on the devel list if we should change it - no response so far. It's a difficult decision. Thanks for the reply. I had already discovered this. The only thing that needs to be done to make it function like Delphi is to make a copy of the bitmap and mask and save the copy in the imagelist. For now, in Lazarus, I am simply not freeing the image after adding it to the list. Just an interresting fact. I am porting a large program that is still in development to Lazarus. This means that every change I make in order to have it work in Lazarus must also be done in Delphi since until all is done the Delphi version goes to the clients. For this reason I tried to create an Imagelist like Lazarus in Delphi where the list is a simple TList pointing to the bitmaps. And you know what? Delphi can't handle it, at least not on my machine (Win98 with 512MB). I place around 700 small images in the list and Delphi crashes around 400-500. Lazarus has no problem. _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: Focus problem - EncloseSelectionDialog
Any idea on this issue? (Anyone interested can test what I mean with the actual svn source of laz; I'm under win32). 2006/5/17, Alexandre Leclerc [EMAIL PROTECTED]: I send a patch for EncloseSelectionDialog couple days ago to fixe a taborder / focus problem. This almost worked. But I see that the focus is not yet active on the radiogroup. I tried to fixe that again with an explicit form event but this is worst. procedure TEncloseSelectionDialog.FormActivate(Sender: TObject); begin TypeRadiogroup.SetFocus; end; When this code is added, there is no 'cursor' at all on the form. No focus at all and can't even use tad key to make the focus move arround. I can't see how to fix that. We must use the mouse to put the focus back in the form properly. I think to issue is maybe related to the focus problem when trying to dock forms in pannels of another form. This is almost the same problem: must use the mouse to put the focus back. -- Alexandre Leclerc -- Alexandre Leclerc _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Lazarus Help System Requirements
2006/5/17, L505 [EMAIL PROTECTED]: Our psp devel mailing list has grown more in 2006 already than expected. But be warned that PSP is not a perfect copy of Websnap/intraweb. PSP is definitely not copying Borland because we found that Websnap architecture was too complex. Although, many HTML helpers and visual tools are being worked on, and we are working on more plug-ins for lazarus and MSEGUI/MSEIDE and other text editors to make web development more organized and easier. I must say I had a lot of fun reading your 'PWU For Corporate Idiots'. As for the Websnap thing, I did not tought about it; but I once imagined that as we have support for gtk / qt / win32... we could have a layer for 'psp' so as to generate forms in web format. (And push it a little bit more and you can have a full AJAX application compiled with lazarus. But this kind of stuff is no more freepascal.) So a CGI that generate a perfect replresentation of a screen designed in lazarus could be done all from lazarus itself. Add the same features for reports,etc. That would be awesome. You switch from gtk destination to psp destination and the same project that was a stand-alone app becomes a cgi that can generate itself its visual representation and call back itself to process the commands. (That would require some javascrip... ajax crap). Any-way this might not be the good place to talk about that. And this 'vision' is only mine. As far as I can see it, psp is actually a nice technology kit to build cgi apps for the web. Best regards. -- Alexandre Leclerc _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
[lazarus] Converting a GdkPixbuf into a TBitmap
Hello, I am testing some gdk functions, and I'd like to connect them to LCL. My current gtk code is this one: Pixbuf := gdk_pixbuf_get_from_drawable(nil, gdk_screen_get_root_window(gdk_screen_get_default), gdk_window_get_colormap(gdk_screen_get_root_window(gdk_screen_get_default)), 0, 0, 0, 0, CXScreen - 1, CYScreen -1); gdk_pixbuf_save(Pixbuf, '/home/felipe/tmp/tmp.png', 'png', nil); This takes a screenshot of the screen. This works. Now, I'd like to save that Pixbuf into a TBitmap, so I can display it in a lazarus form. How can I do that? Do I need to manually copy the memory of the image into the TBitmap? Or just using gtk functions is enougth? I attempted to draw the pixbuf into a created, but empty TBitmap: GDIObject := PgdiObject(bmpDisplay.Handle); gdk_draw_pixbuf(GDIObject^.GDIPixmapObject, nil, Pixbuf, 0, 0, 0, 0, CXScreen - 1, CYScreen -1, GDK_RGB_DITHER_NONE, 0, 0); But this doesn't work. In case anyone wants to test this, I declared my own gdk functions, because they are Gtk2.2+ specific. uses gdk2, gtkdef, gdk2pixbuf, gtk2, glib2; procedure gdk_display_get_pointer(display : PGdkDisplay; screen :PGdkScreen; x :Pgint; y : Pgint; mask : PGdkModifierType); cdecl; external gdklib; function gdk_display_get_default:PGdkDisplay; cdecl; external gdklib; procedure gdk_draw_pixbuf(drawable : PGdkDrawable; gc : PGdkGC; pixbuf : PGdkPixbuf; src_x, src_y, dest_x, dest_y, width, height : gint; dither : TGdkRgbDither; x_dither, y_dither : gint); cdecl; external gdklib; function gdk_screen_get_default: PGdkScreen; cdecl; external gdklib; thanks, -- Felipe Monteiro de Carvalho _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] New Install on GNU/Linux
Did you read my suggestion? I think your problem is the missing /etc/fpc.cfg and the lazarus source tarball (which can be downloaded from sf too) won't help you there. Of course, I read your suggestion. My /etc/fpc.cfg is ok (I think), it is almost the same as for lazarus 0.9.6 . I will check again, anyway. Thanks. This forum is quick !! Gustavo ps: send me your /etc/fpc.cfg . _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Focus problem -- where is it handled in the lcl?
On Thu, 18 May 2006 14:08:19 -0400 Alexandre Leclerc [EMAIL PROTECTED] wrote: Ok, can someone point me where the focus events / mouse click events and all that low level stuff for visual components (including forms) are handled in the source files? TControl, TWinControl, TCustomForm and the widgetsets. I'd like to solve this issue so that it will potentielly: - solve my simple focus problem; - solve the form docking focus problem. Mattias _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Lazarus Help System Requirements
As for the Websnap thing, I did not tought about it; but I once imagined that as we have support for gtk / qt / win32... we could have a layer for 'psp' so as to generate forms in web format. (And push it a little bit more and you can have a full AJAX application compiled with lazarus. But this kind of stuff is no more freepascal.) So a CGI that generate a perfect replresentation of a screen designed in lazarus could be done all from lazarus itself. Add the same features for reports,etc. That would be awesome. You switch from gtk destination to psp destination and the same project that was a stand-alone app becomes a cgi that can generate itself its visual representation and call back itself to process the commands. (That would require some javascrip... ajax crap). With CSS absolute pixel positioning (rather than relative positioning) to have things land on the screen at your desired destination using X/Y coordinates.. But as soon as you get into x/y coordinate positioning it means your app might be better off as a real thin client application anyway. But Ajax means no shipping of the application. At least it means that right now - in the future ajax might be able to read special config files in the form of cookies, or something - to me it seems sort of like reinventing thin clients.. but are there other advantages I'm missing of ajax, other than you don't have to ship it like you do a thin client (and you don't have to compile it). A good example of a thin client that works well, but is not ajax - AVG antivirus for windows. It is a real software application that connects to the internet every day to upgrade your virus definition. And it works perfectly. There was no need for AVG to become an ajax app because being a real app worked too - AVG could be an ajax app - you could log on to the AVG website and have it check your PC for viruses - but if it works well as a non-ajax app why not just ship it as a non-web program. Well I guess it means that AVG is stuck shipping their app, and that they could have used ajax if they didn't want to ship it - or they could have used VBScript based website. But is shipping really that hard of an effort? Shipping an app is a hard effort, but is it worth the effort? I think in many cases it's worth shipping an app - maybe in the cases where it is not worth shipping an app ajax is the solution? Well one advantage of AJAX is that no shipping or installing of the program is needed - but eventually if Ajax becomes complex enough that it can store data on your PC, such as config files, skins, etc, then I think it is essentially reinventing the thin client.. I mean let's say it uses cookies to store your skin or your configuration for the ajax app - well isn't this just a config file? So it really is just shipping a config file onto your computer in the form of a cookie - but if it gets complex enough that the cookie is to simplified and it needs to store other Lots of the work I do on the web actually requires my web pages to have tons of text on the pages so that my sites become popular on the search engines - so the whole AJAX thing is kind of wishy washy to me for those things.. but it is not always just about getting your thousands of text pages on the engines.. But I mean it also begs the question - if you are going to make an AJAX app why not just compile a lazarus application and send it to your users - have TCP/IP in the program connect to your web server, compile your lazarus app on all platforms and ship the EXE/ELF/BSDexe. I guess AJAX requires no shipping of the application, and no installation of the application. Right now my main focus with web development is building websites with 200,000-500,000 pages of content - or at least thousands of pages of content - so ajax doesn't help there much, but it could be useful for things like banking websites where people need to see a proper graph of their investments, and proper sessions on the website without sending an HTTP request for each little thing they do on the site (the whole point of ajax) Any-way this might not be the good place to talk about that. And this 'vision' is only mine. As far as I can see it, psp is actually a nice technology kit to build cgi apps for the web. You can join the mailing list if you like.. http://psp.furtopia.org/cgi-bin/psp/maillist.psp We have done some work with CSS/HTML to get direct positioning available on the screen - we try to use CSS whereever possibel and only use Javascript where absolutely needed Actually, Tony on our team has made a web application that is sort of like Ajax - it uses javascript and CSS/HTMl and is an mp3 player that works right inside the web browser, like a real software application works. In this case, Tony may have invented Ajax himself, but he just really wasn't calling it Ajax. I'm sort of a mix myself - I can see Ajax advantages but I also like building huge 200,000 page websites with
[lazarus] Show hint from code
Hi all, Is there a way from code to tell a widget to show it's hint NOW regardless of the location of the pointer ? I am specifically interested in achieving this with TTrayIcon under Linux/GTK1 so my trayicon app can pop-up status messages. I cannot find anything that suggests it's possible but I thought I would ask anyway. Am I going to have to create a custom widget to get nice message popups ? A.J. -- there's nothing as inspirational for a hacker as a cat obscuring a bug by sitting in front of the monitor - Boudewijn Rempt A.J. Venter Chief Software Architect OpenLab International www.getopenlab.com www.silentcoder.co.za +27 82 726 5103 _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
[lazarus] Focus problem -- where is it handled in the lcl?
Ok, can someone point me where the focus events / mouse click events and all that low level stuff for visual components (including forms) are handled in the source files? I'd like to solve this issue so that it will potentielly: - solve my simple focus problem; - solve the form docking focus problem. Regards. -- Alexandre Leclerc _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] New SUSE 10.1 can't link gdk
On Thursday 18 May 2006 00:38, Mattias Gaertner wrote: On Wed, 17 May 2006 13:26:47 -0700 johnf [EMAIL PROTECTED] wrote: On Wednesday 17 May 2006 12:53, Mattias Gaertner wrote: On Wed, 17 May 2006 11:55:48 -0700 johnf [EMAIL PROTECTED] wrote: On Wednesday 17 May 2006 11:31, Mattias Gaertner wrote: On Wed, 17 May 2006 20:20:56 +0200 Den Jean [EMAIL PROTECTED] wrote: On Wednesday 17 May 2006 20:08, johnf wrote: What is next? I had the same error due to a fpc.cfg containing -Fu/usr/lib/fpc/2.0.0/units/$fpctarget -Fu/usr/lib/fpc/2.0.0/units/$fpctarget/* -Fu/usr/lib/fpc/2.0.0/units/$fpctarget/rtl instead of -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/* -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl when compiling with a fpc 2.0.0. The paths are different on Suse, but the problem may be similar The above are only unit paths. Then the error would be cannot find unit. If there is a linker error the compiler leaves the link.res file. Please have a look and see if the path to libgdk.so is there. Mattias Where might the link.res be created? If you compiled lazarus, then in the main directory. If you compiled one of your projects, then in the project directory. Mattias The 4 line has 'SEARCH_DIR(/opt/gnome/lib)' See attached link.res and a list of lib's from /opt/gnome/lib So, the path is given to ld, and the file is there. But ld still can't find it. Please add the linker option --verbose (Project Compiler Options Linking Options). This gives a lot of output. Save the messages to a file (Right click on the message window Save all messages to file). Search for gdk in the file. Mattias About 12 midnight I decided to re-install the OS and install all libs. Then I check and created a soft link to the lib__.so (I have forgotten which was missing). It appears that all is compiling now. But do believe that something is wrong with the SUSE 10.1 upgrade/install. Just something to be aware of. John John _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Focus problem -- where is it handled in the lcl?
2006/5/18, Mattias Gaertner [EMAIL PROTECTED]: On Thu, 18 May 2006 14:08:19 -0400 Alexandre Leclerc [EMAIL PROTECTED] wrote: Ok, can someone point me where the focus events / mouse click events and all that low level stuff for visual components (including forms) are handled in the source files? TControl, TWinControl, TCustomForm and the widgetsets. Just a question like that... what must I understand by widgetsets? The buttons, panels, etc? -- Alexandre Leclerc _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Focus problem -- where is it handled in the lcl?
On Thu, 18 May 2006 17:04:32 -0400 Alexandre Leclerc [EMAIL PROTECTED] wrote: 2006/5/18, Mattias Gaertner [EMAIL PROTECTED]: On Thu, 18 May 2006 14:08:19 -0400 Alexandre Leclerc [EMAIL PROTECTED] wrote: Ok, can someone point me where the focus events / mouse click events and all that low level stuff for visual components (including forms) are handled in the source files? TControl, TWinControl, TCustomForm and the widgetsets. Just a question like that... what must I understand by widgetsets? The buttons, panels, etc? The directories lcl/interfaces/xxx. Under windows it is normally win32. Under linux it is normally gtk. Mattias _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
[lazarus] [patch] label with accent (and umlaut)
Hi patch to bug 996 works both GTK and GTK2, Darek Index: interfaces/gtk/gtkwinapi.inc === --- interfaces/gtk/gtkwinapi.inc(wersja 9299) +++ interfaces/gtk/gtkwinapi.inc(kopia robocza) @@ -2887,8 +2887,6 @@ theRect.Right := theRect.Left + LineWidth; theRect.Bottom := theRect.Top + NumLines*TM.tmHeight; - if NumLines1 then -Inc(theRect.Bottom, (NumLines-1)*TM.tmDescent);// space between lines //debugln('TGtkWidgetSet.DrawText A ',dbgs(theRect),' TM.tmHeight=',dbgs(TM.tmHeight),' LineWidth=',dbgs(LineWidth),' NumLines=',dbgs(NumLines)); end; @@ -3045,9 +3043,6 @@ end else If (Lines nil) and (NumLines 0) then begin For I := 0 to NumLines - 1 do begin -if I0 then - Inc(theRect.Top, TM.tmDescent);// space between lines - If (((Flags and DT_EditControl) = DT_EditControl) and (tm.tmHeight (theRect.Bottom - theRect.Top))) or (theRect.Top theRect.Bottom) @@ -3918,15 +3913,16 @@ if UseFontnil then begin LineLen := FindChar(#10,Str,Count); UpdateDCTextMetric(TDeviceContext(DC)); - LineHeight:=GetTextHeight(DCTextMetric); + LineHeight:=DCTextMetric.TextMetric.tmHeight; +// LineHeight:=GetTextHeight(DCTextMetric); if Buffered then begin TxtPt.X := 0; -TxtPt.Y := LineHeight; +TxtPt.Y := DCTextMetric.TextMetric.tmAscent;; end else begin TopY := Y; TxtPt.X := X + DCOrigin.X; -TxtPt.Y := TopY + LineHeight + DCOrigin.Y; +TxtPt.Y := TopY + DCTextMetric.TextMetric.tmAscent + DCOrigin.Y; end; SelectGDKTextProps(DC); LineStart:=Str; @@ -6504,17 +6500,27 @@ {$ENDIF} end; Result := True; - gdkRect.X := Rect^.Left; - gdkRect.Y := Rect^.Top; - gdkRect.Width := (Rect^.Right - Rect^.Left); - gdkRect.Height := (Rect^.Bottom - Rect^.Top); - PaintWidget:=GetFixedWidget(Widget); if PaintWidget=nil then PaintWidget:=Widget; + if Rect = nil then begin +gdkRect.X := 0;//PaintWidget^.Allocation.X; +gdkRect.Y := 0;//PaintWidget^.Allocation.Y; +gdkRect.Width:=PaintWidget^.Allocation.Width; +gdkRect.Height:=PaintWidget^.Allocation.Height; + + end else begin +gdkRect.X := Rect^.Left; +gdkRect.Y := Rect^.Top; +gdkRect.Width := (Rect^.Right - Rect^.Left); +gdkRect.Height := (Rect^.Bottom - Rect^.Top); + end; + + {$IfDef GTK2} if (PaintWidgetnil) and GTK_WIDGET_NO_WINDOW(PaintWidget) and (not GtkWidgetIsA(PGTKWidget(PaintWidget),GTKAPIWidget_GetType)) + and (Rectnil) then begin Inc(gdkRect.X, PaintWidget^.Allocation.x); Inc(gdkRect.Y, PaintWidget^.Allocation.y); Index: interfaces/gtk/gtkobject.inc === --- interfaces/gtk/gtkobject.inc(wersja 9299) +++ interfaces/gtk/gtkobject.inc(kopia robocza) @@ -1446,13 +1446,9 @@ PangoDescStr := AFont.Name; DescOpts := ''; if FSBold in AFont.Style then -DescOpts := DescOpts + ' bold'; +DescOpts := DescOpts + ' Bold'; if FSItalic in AFont.Style then -DescOpts := DescOpts + ' italic'; - if FSUnderline in AFont.Style then -DescOpts := DescOpts + ' underline'; - if FSStrikeOut in AFont.Style then -DescOpts := DescOpts + ' strikethrough'; +DescOpts := DescOpts + ' Italic'; PangoDescStr := PangoDescStr+DescOpts+' '+IntToStr(AFont.Size); //DebugLn('TGtkWidgetSet.SetWidgetFont PangoDescStr=',PangoDescStr,''); @@ -6530,7 +6526,7 @@ #0'{'#0'A'#0'B'#0'C'#0'D'#0'E'#0'F'#0'G'#0'H'#0'I'#0'J'#0'K'#0'L'#0'M'#0'N' +#0'O'#0'P'#0'Q'#0'R'#0'S'#0'T'#0'U'#0'V'#0'W'#0'X'#0'Y'#0'Z'#0'X'#0'Y'#0'Z' +#0'a'#0'b'#0'c'#0'd'#0'e'#0'f'#0'g'#0'h'#0'i'#0'j'#0'k'#0'l'#0'm'#0'n'#0'o' -+#0'p'#0'q'#0'r'#0's'#0't'#0'u'#0'v'#0'w'#0'x'#0'y'#0'z'#0'|'#0'_'#0'}' + +#0'p'#0'q'#0'r'#0#220#0't'#0'u'#195#150#0'w'#0#223#0'y'#195#147#0'|'#0'_'#0'}' ); var UseFont : PGDKFont; @@ -7233,4 +7229,4 @@ {$IFDEF ASSERT_IS_ON} {$UNDEF ASSERT_IS_ON} {$C-} -{$ENDIF} \ No newline at end of file +{$ENDIF} Index: interfaces/gtk2/gtk2winapi.inc === --- interfaces/gtk2/gtk2winapi.inc (wersja 9299) +++ interfaces/gtk2/gtk2winapi.inc (kopia robocza) @@ -82,7 +82,7 @@ Exit; end; - if CompareText(lfFacename,'default')=0 then begin + if (CompareText(lfFacename,'default')=0) and (lfHeight=0) then begin LoadDefaultFont; Result := HFONT(GdiObject); exit; @@ -112,8 +112,8 @@ else FullString:=IntToStr(aSize); FullString := AFamily + ' ' + aStyle + ' ' + FullString; - + GdiObject^.GDIFontObject := pango_font_description_from_string(PChar(FullString)); @@ -131,10 +131,10 @@ //
Re: [lazarus] Show hint from code
On 5/18/06, A.J. Venter [EMAIL PROTECTED] wrote: Hi all, Is there a way from code to tell a widget to show it's hint NOW regardless of the location of the pointer ? I am specifically interested in achieving this with TTrayIcon under Linux/GTK1 so my trayicon app can pop-up status messages. Actually, status messages is a to do for TTrayIcon. On Windows XP we can use ballons to show status messages. A research needs to be done about what people use on other operating systems / windows versions. A small window may be a good choice, as it´s very portable. thanks, -- Felipe Monteiro de Carvalho _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Focus problem -- where is it handled in the lcl?
2006/5/18, Mattias Gaertner [EMAIL PROTECTED]: On Thu, 18 May 2006 17:04:32 -0400 Alexandre Leclerc [EMAIL PROTECTED] wrote: 2006/5/18, Mattias Gaertner [EMAIL PROTECTED]: On Thu, 18 May 2006 14:08:19 -0400 Alexandre Leclerc [EMAIL PROTECTED] wrote: Ok, can someone point me where the focus events / mouse click events and all that low level stuff for visual components (including forms) are handled in the source files? TControl, TWinControl, TCustomForm and the widgetsets. Just a question like that... what must I understand by widgetsets? The buttons, panels, etc? The directories lcl/interfaces/xxx. Under windows it is normally win32. Under linux it is normally gtk. Ok, it is now clear for me (I believe). So I can understand the thing like that: OS_WidgetSet --- LCL_Interfaces --- Standard_Controls So the Standard_Controls is what is cross-plateform if there is an LCL implementation of it and also what tends to be Delphi-Compatible. -- Alexandre Leclerc _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Show hint from code
Actually, status messages is a to do for TTrayIcon. On Windows XP we can use ballons to show status messages. A research needs to be done about what people use on other operating systems / windows versions. A small window may be a good choice, as it´s very portable. For what it helps, I did quite a bit of research and couldn't actually find anything in the GTK1.2 docs - in fact there is no mention of a trayicon component there (I assume it comes from somewhere close by though). I reckon the answer here is to go look at the code for something like an old version of gaim or such that uses gtk1 status mesages, and then implement it with calls to the handle - if I find the answer, I'll send you a patch. A bigger issue for me right now is that it no longer works with GTK2 - it causes an instant segfault - oddly the backtrace shows it's calling on the GTK1 units ! I don't know why it would be linking they tray icon against gtk1 if my app is being linked to gtk2 - possibly because I run lazarus in gtk1, but I cannot test this theory since the current lazarus builds segfault in gtk2 (I did a backtrace, all I could figure out is the segfault is somewhere in the pango libs, presumably this means there is a font bug in gtk2 that hits the IDE pretty hard). Ciao A.J. -- there's nothing as inspirational for a hacker as a cat obscuring a bug by sitting in front of the monitor - Boudewijn Rempt A.J. Venter Chief Software Architect OpenLab International www.getopenlab.com www.silentcoder.co.za +27 82 726 5103 _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Show hint from code
On 5/18/06, A.J. Venter [EMAIL PROTECTED] wrote: For what it helps, I did quite a bit of research and couldn't actually find anything in the GTK1.2 docs - in fact there is no mention of a trayicon component there (I assume it comes from somewhere close by though). I found at a gtk mailling list some info about tray icons on gtk 2. Here it is: http://mail.gnome.org/archives/gtk-devel-list/2005-August/msg00168.html Also some info about it on KDE: http://bugs.kde.org/show_bug.cgi?id=108076 I reckon the answer here is to go look at the code for something like an old version of gaim or such that uses gtk1 status mesages, and then implement it with calls to the handle - if I find the answer, I'll send you a patch. I think the best solution here is not to copy or work on top of them, but to implement our own notification system. I think that a small, borderless LCL Window could do the trick. We can add some methods on TTrayIcon to interact with this window. Here is a list of things we might want in out notification system: * text * popup title * icon (picture) * time until the notification expires (add possibility to never expire?). Add a possibility to link this to hint expire time? * a X button to close the notification The appearance is another question. Simple rectangle is the most obvious. Some way to change the appearance could be good. Since I´m thinking of using a TForm for this, we could just give the TForm for the user and let it play with it to create better looking notifications. A bigger issue for me right now is that it no longer works with GTK2 - it causes an instant segfault - oddly the backtrace shows it's calling on the GTK1 units ! I don't know why it would be linking they tray icon against gtk1 if my app is being linked to gtk2 - possibly because I run lazarus in gtk1, but I cannot test this theory since the current lazarus builds segfault in gtk2 No, this isn´t the cause. I just noticed this too. Until recently my gtk1 Lazarus was correctly compiling TTrayIcon for Gtk2. Maybe Gtk2 define changed? I am not on Linux now, but latter I will take a look. -- Felipe Monteiro de Carvalho _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Show hint from code
Also, on the opposite direction of giving full access to the notification, we may want to limit access to it, to get a consistent user experience. -- Felipe Monteiro de Carvalho _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Focus problem -- where is it handled in the lcl?
On Thu, 18 May 2006 18:03:51 -0400 Alexandre Leclerc [EMAIL PROTECTED] wrote: 2006/5/18, Mattias Gaertner [EMAIL PROTECTED]: On Thu, 18 May 2006 17:04:32 -0400 Alexandre Leclerc [EMAIL PROTECTED] wrote: 2006/5/18, Mattias Gaertner [EMAIL PROTECTED]: On Thu, 18 May 2006 14:08:19 -0400 Alexandre Leclerc [EMAIL PROTECTED] wrote: Ok, can someone point me where the focus events / mouse click events and all that low level stuff for visual components (including forms) are handled in the source files? TControl, TWinControl, TCustomForm and the widgetsets. Just a question like that... what must I understand by widgetsets? The buttons, panels, etc? The directories lcl/interfaces/xxx. Under windows it is normally win32. Under linux it is normally gtk. Ok, it is now clear for me (I believe). So I can understand the thing like that: OS_WidgetSet --- LCL_Interfaces --- Standard_Controls So the Standard_Controls is what is cross-plateform if there is an LCL implementation of it and also what tends to be Delphi-Compatible. Correct. Mattias _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Show hint from code
I think the best solution here is not to copy or work on top of them, but to implement our own notification system. I think that a small, borderless LCL Window could do the trick. We can add some methods on TTrayIcon to interact with this window. You may well be right, although I have no idea how to do a borderless window. My catch is I need this for a project due end of the month - so I'll help you anyway I can :) Here is a list of things we might want in out notification system: * text * popup title * icon (picture) * time until the notification expires (add possibility to never expire?). Add a possibility to link this to hint expire time? * a X button to close the notification KDE just closes on click or after a timeout - no need for an X. What I would suggest would be the coolest however is to make our window a derivative of TIPiPRO htmlpanel. That way, you can use html to format the messages, embed pix, embed links whatever. Then just add an onclick so if you click outside any hotclicks, the messagewindow is close before the timeout. The appearance is another question. Simple rectangle is the most obvious. I wouldn't bother with much else right now, rounded windows may look pretty but they are very hard to do without relying on stuff like X composite extensions. Some way to change the appearance could be good. Since I´m thinking of using a TForm for this, we could just give the TForm for the user and let it play with it to create better looking notifications. That might well be the best approach - that way he can embed what HE needs, be it an html panel or timage. A bigger issue for me right now is that it no longer works with GTK2 - it causes an instant segfault - oddly the backtrace shows it's calling on the GTK1 units ! I don't know why it would be linking they tray icon against gtk1 if my app is being linked to gtk2 - possibly because I run lazarus in gtk1, but I cannot test this theory since the current lazarus builds segfault in gtk2 No, this isn´t the cause. I just noticed this too. Until recently my gtk1 Lazarus was correctly compiling TTrayIcon for Gtk2. Maybe Gtk2 define changed? I am not on Linux now, but latter I will take a look. Thanks It would be nicer to have wole done in GTK2, but that is not urgent, I don't need gtk2 for developing it. Ciao A.J. -- there's nothing as inspirational for a hacker as a cat obscuring a bug by sitting in front of the monitor - Boudewijn Rempt A.J. Venter Chief Software Architect OpenLab International www.getopenlab.com www.silentcoder.co.za +27 82 726 5103 _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Show hint from code
On 5/18/06, A.J. Venter [EMAIL PROTECTED] wrote: You may well be right, although I have no idea how to do a borderless window. My catch is I need this for a project due end of the month - so I'll help you anyway I can :) MyForm.BorderStyle := bsNone; I think the start point should be a new unit, for the notification form. The form should be fully code generated. What is a good name for this unit? NotificationForm? My idea is to have 4 areas on the form: Title(TCaption)X button (TButton) TImageDisplay Area(either a TCaption or a custom control) It could be implemented in such a way that if Title and X button are disabled, then DisplayArea and TImage move to the top of the form. If TImage is disabled, Display Area moves to the left. I'm not sure what alignment properties to use here. Also, should this window be created everytime it's shown? If not, then it needs to be created at some point. Also a system to have the display area contain either a caption or a custom control needs to be created. KDE just closes on click or after a timeout - no need for an X. Ummm ... better to make it optional. I find it more confortable for the user to see the X. It can be confused and not know how to close the note immediately. Also Windows balloon has it, and they do a lot of expensive usability researches =) What I would suggest would be the coolest however is to make our window a derivative of TIPiPRO htmlpanel. Ummm ... better to allow adding any component you like. I don't want to add any dependencies. I wouldn't bother with much else right now, rounded windows may look pretty but they are very hard to do without relying on stuff like X composite extensions. Yes, let's make it work. Latter someone can make it pretty. Thanks It would be nicer to have wole done in GTK2, but that is not urgent, I don't need gtk2 for developing it. Just tested latest subversion lazarus + trayicon. It's working normally. Looking back, I think I should have written it on pure X11. This would avoid many problems, like having to rewrite on gtk2, qt, reling on Handles that can change their meaning in the future, etc. But now it is working well, and Murphy says that if you change something that is working, it will stop working =) -- Felipe Monteiro de Carvalho _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Who needs Unicode controls.
On 5/14/06, Mattias Gaertner [EMAIL PROTECTED] wrote: The question is: should the LCL use the 'native' string type and let the applications write three times the code. Or should the LCL use UTF-8 and map internally in the interfaces and let the applications write once and compile anywhere. Hello, What was the outcome of this question? I prefer using utf-8, se we have write once and compile anywhere. Writing 3 times the code quickly becomes annoying as more translations are added and the software becomes big. One problem, however, is what to do on Windows 9x and on Gtk 1. We would need to convert utf-8 to iso. But to which iso? A easy solution is to just convert to western european iso. thanks, -- Felipe Monteiro de Carvalho _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Show hint from code
On Friday 19 May 2006 01:02, Felipe Monteiro de Carvalho wrote: On 5/18/06, A.J. Venter [EMAIL PROTECTED] wrote: You may well be right, although I have no idea how to do a borderless window. My catch is I need this for a project due end of the month - so I'll help you anyway I can :) MyForm.BorderStyle := bsNone; Odd, I thought that didn't work under gtk1/2 I think the start point should be a new unit, for the notification form. The form should be fully code generated. What is a good name for this unit? NotificationForm? Well status message will be too easily confusable with statusbar messages. What I would suggest is that it be a completely separate COMPONENT. Then TrayIcon can have a handle to map to one. The reason I am thinking of this is that it would mean anybody with a different need could map one to just about any other component, hook it up to the onshowhint event and use it for more bigger fold-out hints where those are needed ? Thoughts anyone ? So perhaps then the right name would be something like NotificationHint or such ? My idea is to have 4 areas on the form: Title(TCaption)X button (TButton) TImageDisplay Area(either a TCaption or a custom control) It could be implemented in such a way that if Title and X button are disabled, then DisplayArea and TImage move to the top of the form. If TImage is disabled, Display Area moves to the left. I'm not sure what alignment properties to use here. I like this. Also, should this window be created everytime it's shown? If not, then it needs to be created at some point. I would say much rather have it created when whatever form it's attached to is created, like any other component. In the case of a tray-icon, it will then be created (hidden) along with the form the icon is connected to. So the programmer just needs to worry about show and hide methods - it should get created/destroyed along with the form it's used on. Also a system to have the display area contain either a caption or a custom control needs to be created. I would use tcaption for now unless it really wouldn't work. It's allready canvas drawn, works well and stably - and means we get it out faster. KDE just closes on click or after a timeout - no need for an X. Ummm ... better to make it optional. I find it more confortable for the user to see the X. It can be confused and not know how to close the note immediately. Also Windows balloon has it, and they do a lot of expensive usability researches =) Indeed, good point. Optional is the right way - then the coder can link it to the desktop his users will be on - active for windows, disabled for KDE etc. to integrate better into the over-all environment. I would leave the task of figuring out what desktop you are on with the coder using it however - some apps will only ever run on one platform/desktop - some on nearly every lazarus supported one - we cannot really dictate this. What I would suggest would be the coolest however is to make our window a derivative of TIPiPRO htmlpanel. Ummm ... better to allow adding any component you like. I don't want to add any dependencies. In retrospect, you are probably right. I wouldn't bother with much else right now, rounded windows may look pretty but they are very hard to do without relying on stuff like X composite extensions. Yes, let's make it work. Latter someone can make it pretty. Aye, there are lots of little widget-set specific stunts you can use to get really funky window effects, but if somebody really wants those and (doesn't mind not compiling against others) - he can code it in through the handle. Just tested latest subversion lazarus + trayicon. It's working normally. Did you make any changes ? I'll test mine tomorrow (it's very late here) Looking back, I think I should have written it on pure X11. This would avoid many problems, like having to rewrite on gtk2, qt, reling on Handles that can change their meaning in the future, etc. But now it is working well, and Murphy says that if you change something that is working, it will stop working =) Pure X11 however will have meant sacrificing a lot. For starters the options for people to add some widget specifics using handles, even bigger - you would STILL need custom implementations for other platforms (e.g windows and carbon) - better then to be able to make maximum use of the underlying platform. More work - but better IMHO. Kina like my ScreenSize component uses two completely different approaches. Under X platforms it uses Xlib calls to get the screen dimensions, under windows it uses win32 api calls - but it provides a single clean component that gives the same results on either, so your app can compile and get the values regardless of what you are working on. That approach is probably the thing that introduces the single biggest delay in lazarus' growth rate - but at the same time it's also lazarus'
Re: [lazarus] Who needs Unicode controls.
One problem, however, is what to do on Windows 9x and on Gtk 1. We would need to convert utf-8 to iso. But to which iso? A easy solution is to just convert to western european iso. Actually there must be ways of getting the current running environment's preferred character set. Under Linux you could use the LANG environment variable to determine what language the desktop is in, and call the best character set for that, surely the windows API must provide something similar ? A.J. -- there's nothing as inspirational for a hacker as a cat obscuring a bug by sitting in front of the monitor - Boudewijn Rempt A.J. Venter Chief Software Architect OpenLab International www.getopenlab.com www.silentcoder.co.za +27 82 726 5103 _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Show hint from code
Thanks It would be nicer to have wole done in GTK2, but that is not urgent, I don't need gtk2 for developing it. Just tested latest subversion lazarus + trayicon. It's working normally. Not working here: Stack trace include: TApplication.HandleException Access violation Stack trace: $0820BE55 $08205B49 TWIDGETTRAYICON__CREATEFORM, line 179 of wsgtktrayicon.pas $08205C59 TWIDGETTRAYICON__SHOW, line 254 of wsgtktrayicon.pas $08202C76 TTRAYICON__SHOW, line 159 of trayicon.pas $0807CF6B TWOLEMAINFORM__FORMACTIVATE, line 252 of wolemain.pas $0807314A TCUSTOMFORM__ACTIVATE, line 482 of ./include/customform.inc $080730C5 TCUSTOMFORM__WMACTIVATE, line 455 of ./include/customform.inc $08061DE7 $080F4A8E TCONTROL__WNDPROC, line 1534 of ./include/control.inc $080EC469 TWINCONTROL__WNDPROC, line 3378 of ./include/wincontrol.inc $08073CE9 TCUSTOMFORM__WNDPROC, line 918 of ./include/customform.inc $081BE2A5 DELIVERMESSAGE, line 3469 of /home/silentcoder/lazarus/lcl/interfaces/gtk/gtkproc.inc $081C61E2 GTKFRMACTIVATEAFTER, line 522 of /home/silentcoder/lazarus/lcl/interfaces/gtk/gtkcallback.inc $B7BB1120 IPHTMLPV_init, line 51 of iphtml.pas $B7A55A2B IPHTMLPV_init, line 51 of iphtml.pas $B7A6B180 IPHTMLPV_init, line 51 of iphtml.pas $B7A6B92D IPHTMLPV_init, line 51 of iphtml.pas (wole:12919): Gtk-WARNING **: Error loading icon: Unable to load image-loading module: /usr/lib/gtk-2.0/2.4.0/loaders/svg_loader.so: libgsf-1.so.1: cannot open shared object file: No such file or directory (wole:12919): Gtk-WARNING **: Error loading icon: Unable to load image-loading module: /usr/lib/gtk-2.0/2.4.0/loaders/svg_loader.so: libgsf-1.so.1: cannot open shared object file: No such file or directory (wole:12919): GLib-GObject-WARNING **: gsignal.c:1788: instance `0x8401bb0' has no handler with id `664' (wole:12919): GLib-GObject-WARNING **: gsignal.c:1788: instance `0x840b838' has no handler with id `667' (wole:12919): GLib-GObject-WARNING **: gsignal.c:1788: instance `0x840bc90' has no handler with id `670' -- there's nothing as inspirational for a hacker as a cat obscuring a bug by sitting in front of the monitor - Boudewijn Rempt A.J. Venter Chief Software Architect OpenLab International www.getopenlab.com www.silentcoder.co.za +27 82 726 5103 _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Show hint from code
On 5/18/06, Felipe Monteiro de Carvalho [EMAIL PROTECTED] wrote: Also a system to have the display area contain either a caption or a custom control needs to be created. A simple way to do this is by having a TCaption on the display area, and the user can pass an empty text to it, and put it's own control on top of it. -- Felipe Monteiro de Carvalho _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Show hint from code
Kina like my ScreenSize component uses two completely different approaches. Under X platforms it uses Xlib calls to get the screen dimensions, under Where can I get this component? Does it provide multi-monitor support on X11? I use some very special methods on the magnifier to have multi-monitor support on Windows, but on Unix I just call Screen.Width and Screen.Height, and I don't know how good their multimonitor support is. Anyway, enough philosophies, let me know if I can help you with the coding on this. Do you want to write this unit? If you have any problems, I can help. If not, I will put on my to do list, but I cannot guarantee it will be ready soon (too many things to do). I just wanted to make sure we both agree on what is being implemented, and now I am. Did you make any changes ? I'll test mine tomorrow (it's very late here) No, I did a svn update, then I went to the command line, and did make clean all Next I recompiled only LCL for Gtk2 (from the IDE), and it worked. thanks, -- Felipe Monteiro de Carvalho _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Show hint from code
Where can I get this component? Does it provide multi-monitor support on X11? It's in my olpack svn co svn://silentcoder.co.za/lazarus/olpack I think olpack depends on gamepack (same dir) as well (if I remember right). I use some very special methods on the magnifier to have multi-monitor support on Windows, but on Unix I just call Screen.Width and Screen.Height, and I don't know how good their multimonitor support is. Actually, that's pretty much all I use as well but I can tell you that it is quite sufficient actually. On X it works perfectly because of the way xinerama works. Xinerama effectively just expands your desktop across the monitors - if the res's are different this tends to cause a bit of havoc actually as you can litterally drag a window half-way between to screens and end up with one half the window twice the PHYSICAL size of the other. Twinview from nvidia cards provides some nicer options though - mine is cloned since my secondary monitor is my TV anyway and I only use the feature to watch movies on the big screen. Anyway, enough philosophies, let me know if I can help you with the coding on this. Do you want to write this unit? If you have any problems, I can help. If not, I will put on my to do list, but I cannot guarantee it will be ready soon (too many things to do). I just wanted to make sure we both agree on what is being implemented, and now I am. Well I'll make a start on it at least, and buzz you if I get stuck. I cannot imagine it can be TOO hard. Did you make any changes ? I'll test mine tomorrow (it's very late here) No, I did a svn update, then I went to the command line, and did make clean all Doesn't work here. Next I recompiled only LCL for Gtk2 (from the IDE), and it worked. My lazarus hangs when I do that, I have to rerun make, then rebuild with gtk1, gives me enough gtk2 for my apps to be compiled - but it might prevent the GTK2 def from being passed to trayicon ? If so that's a bug either in lazarus or in ttrayicon, I'm not sure. On a hunch I opened the ttrayicon.lpk file, changed it's compiler options to use gtk2, reinstalled, rebuilt wole for gtk2 - same result. Same stack trace as well. So it doesn't matter what the component's compiler options say - which makes sense, it ought to receive it from the parent app. But it also ought to do so regardless of whether the LCL is using the same widget set as the project target. I reckon I should fix the lazarus issue first but I am stumped as to what could be causing it. Even a gdb backtrace didn't tell me anything usefull, just that it's pango that crashed. Lazarus's own backtraces are talking bull, complaining about crashes in whichever component was the last to be added, remove the component and it just moves one step back in history - e.g. it doesn't show me what is REALLY wrong. Mattias you wouldn't have any theories perhaps ? If I have any idea where to look for the cause of the bug I would be happy to fix it. -- there's nothing as inspirational for a hacker as a cat obscuring a bug by sitting in front of the monitor - Boudewijn Rempt A.J. Venter Chief Software Architect OpenLab International www.getopenlab.com www.silentcoder.co.za +27 82 726 5103 _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
[lazarus] how to test my changes in the lcl in a small app?
I did made some changes to the lcl, but would like to test before posting. But I don't see any effets when compiling my app. There is something I'm missing? do I have to: make clear ? make lcl ? -- Alexandre Leclerc _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Request for PR noise !
[EMAIL PROTECTED] writes: Florian Klaempfl wrote:Lv wrote: So if you guys want to change the name, where does it leave users likeme presenting papers at conferences and citing Lazarus in technicalpapers as my software of choice? Nice to hear that not all users believe into the imo stupid idea to change thename. I don't think either that the "board of directors" of lazarus (Michael H., Matthias, Marc, Vincents, Micha et al.) consider a name change :) Just for the record, I also think a name change is uncalled for. A name change would have serious consequences - and we could start promoting everything from zero since the new name will be even less known then Lazarus. The word Lazarus is neither offensive or more ambiguous than other well known projects and companies.One more comment: Cheetah is the simbol of FPC, not lazarus. A cheetah on a column is Lazarus. Now you don't see anyone calling FPC cheetah, nor calling Linux Pinguin. I agree with Andreas (and thank the "board of directors" and their fine insight in dismissing this idea as being a total waste of time and effort) The drawbacks from a name change are phenomenal!!! 1) Loss of current user base who don't keep up on the mailing list and all of sudden can't find their product under the name they know (and hopefully love) 2) Loss of new user base. I have actively promoted Lazarus, whenever asked, as a great tool/environment with my contacts. Don't know how many have looked at it yet, but I'm going to be very embarrassed if they do finally take my advice and check it out, and it's called something different than what I was advertising. 3) I suspect would require a lot of effort in renaming all sorts of directories/web sites/links, blah blah blah on a global basis 4) Same as #3 above on each existing users's personal computer(s) All this for some "cosmetics"? Much better that we quit talking about this and get back to making a really great product that will really "sell" itself based on it's stability and functionality, not on whether it is called S__T or Lazarus. Just my two cents. Let's get back to work making Lazarus GREAT! Dave