From 1f11a69562dbfc16ddf45af5004d32b975c45e9a Mon Sep 17 00:00:00 2001 From: sekelsenmat Date: Sat, 22 Sep 2007 19:47:39 +0000 Subject: [PATCH] Moved the trayicon example to the examples folder. Also updated it and made verified its compatibility with Turbo Delphi Explorer. git-svn-id: trunk@12139 - --- .gitattributes | 10 ++ examples/trayicon/createbundle.sh | 54 ++++++++++ examples/trayicon/frmtest.dfm | 33 ++++++ examples/trayicon/frmtest.lfm | 60 +++++++++++ examples/trayicon/frmtest.lrs | 19 ++++ examples/trayicon/frmtest.pas | 173 ++++++++++++++++++++++++++++++ examples/trayicon/icon.ico | Bin 0 -> 478 bytes examples/trayicon/magnifier.res | Bin 0 -> 29508 bytes examples/trayicon/wndtray.dpr | 41 +++++++ examples/trayicon/wndtray.lpi | 68 ++++++++++++ examples/trayicon/wndtray.lps | 37 +++++++ 11 files changed, 495 insertions(+) create mode 100644 examples/trayicon/createbundle.sh create mode 100644 examples/trayicon/frmtest.dfm create mode 100644 examples/trayicon/frmtest.lfm create mode 100644 examples/trayicon/frmtest.lrs create mode 100644 examples/trayicon/frmtest.pas create mode 100644 examples/trayicon/icon.ico create mode 100644 examples/trayicon/magnifier.res create mode 100644 examples/trayicon/wndtray.dpr create mode 100644 examples/trayicon/wndtray.lpi create mode 100644 examples/trayicon/wndtray.lps diff --git a/.gitattributes b/.gitattributes index 7c2fe3e983..175bbeadf3 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1643,6 +1643,16 @@ examples/toolbar.lpi svneol=native#text/plain examples/toolbar.pp svneol=native#text/pascal examples/trackbar.lpi svneol=native#text/plain examples/trackbar.pp svneol=native#text/pascal +examples/trayicon/createbundle.sh -text +examples/trayicon/frmtest.dfm -text +examples/trayicon/frmtest.lfm -text +examples/trayicon/frmtest.lrs -text +examples/trayicon/frmtest.pas -text +examples/trayicon/icon.ico -text +examples/trayicon/magnifier.res -text +examples/trayicon/wndtray.dpr -text +examples/trayicon/wndtray.lpi -text +examples/trayicon/wndtray.lps -text examples/treeview/README.txt svneol=native#text/plain examples/treeview/TV_Add_Remove.dpr svneol=native#text/pascal examples/treeview/TV_Add_Remove.res svneol=native#unset diff --git a/examples/trayicon/createbundle.sh b/examples/trayicon/createbundle.sh new file mode 100644 index 0000000000..bd4594084a --- /dev/null +++ b/examples/trayicon/createbundle.sh @@ -0,0 +1,54 @@ +#!/bin/sh +# Force Bourne shell in case tcsh is default. +# + +appname=Wndtray +appfolder=$appname.app +macosfolder=$appfolder/Contents/MacOS +plistfile=$appfolder/Contents/Info.plist +appfile=wndtray +# +if ! [ -e $appfile ] +then + echo "$appfile does not exist" +elif [ -e $appfolder ] +then + echo "$appfolder already exists" +else + echo "Creating $appfolder..." + mkdir $appfolder + mkdir $appfolder/Contents + mkdir $appfolder/Contents/MacOS + mkdir $appfolder/Contents/Resources +# +# Instead of copying executable into .app folder after each compile, +# simply create a symbolic link to executable. + ln -s ../../../$appname $macosfolder/$appname +# Copy the resource files to the correct place + cp icon.ico $appfolder/Contents/Resources +# +# Create PkgInfo file. + echo "APPL????" >$appfolder/Contents/PkgInfo +# +# Create information property list file (Info.plist). + echo '' >$plistfile + echo '' >>$plistfile + echo '' >>$plistfile + echo '' >>$plistfile + echo ' CFBundleDevelopmentRegion' >>$plistfile + echo ' English' >>$plistfile + echo ' CFBundleExecutable' >>$plistfile + echo ' '$appname'' >>$plistfile + echo ' CFBundleInfoDictionaryVersion' >>$plistfile + echo ' 6.0' >>$plistfile + echo ' CFBundlePackageType' >>$plistfile + echo ' APPL' >>$plistfile + echo ' CFBundleSignature' >>$plistfile + echo ' ????' >>$plistfile + echo ' CFBundleVersion' >>$plistfile + echo ' 1.0' >>$plistfile + echo ' CSResourcesFileMapped' >>$plistfile + echo ' ' >>$plistfile + echo '' >>$plistfile + echo '' >>$plistfile +fi diff --git a/examples/trayicon/frmtest.dfm b/examples/trayicon/frmtest.dfm new file mode 100644 index 0000000000..4a40c77bdd --- /dev/null +++ b/examples/trayicon/frmtest.dfm @@ -0,0 +1,33 @@ +object Form1: TForm1 + Caption = 'Form1' + ClientHeight = 300 + ClientWidth = 400 + OnCreate = FormCreate + PixelsPerInch = 96 + Left = 290 + Height = 300 + Top = 175 + Width = 400 + object Button1: TButton + Caption = 'Show' + OnClick = Button1Click + TabOrder = 0 + Left = 75 + Height = 25 + Top = 56 + Width = 75 + end + object Button2: TButton + Caption = 'Hide' + OnClick = Button2Click + TabOrder = 1 + Left = 75 + Height = 25 + Top = 95 + Width = 75 + end + object SystrayIcon: TTrayIcon + left = 221 + top = 145 + end +end diff --git a/examples/trayicon/frmtest.lfm b/examples/trayicon/frmtest.lfm new file mode 100644 index 0000000000..41a3523c84 --- /dev/null +++ b/examples/trayicon/frmtest.lfm @@ -0,0 +1,60 @@ +object Form1: TForm1 + Left = 290 + Height = 300 + Top = 175 + Width = 400 + HorzScrollBar.Page = 399 + VertScrollBar.Page = 299 + ActiveControl = Button1 + Caption = 'Form1' + ClientHeight = 300 + ClientWidth = 400 + OnCreate = FormCreate + object Button1: TButton + Left = 56 + Height = 33 + Top = 56 + Width = 94 + BorderSpacing.InnerBorder = 4 + Caption = 'Show' + OnClick = Button1Click + TabOrder = 0 + end + object Button2: TButton + Left = 56 + Height = 33 + Top = 112 + Width = 94 + BorderSpacing.InnerBorder = 4 + Caption = 'Hide' + OnClick = Button2Click + TabOrder = 1 + end + object Button3: TButton + Left = 224 + Height = 33 + Top = 56 + Width = 94 + BorderSpacing.InnerBorder = 4 + Caption = 'Paint Test' + OnClick = Button3Click + TabOrder = 2 + end + object PopupMenu: TPopupMenu + left = 180 + top = 260 + object MenuItem1: TMenuItem + Caption = 'New Item1' + end + object MenuItem3: TMenuItem + Caption = 'New Item3' + end + object MenuItem2: TMenuItem + Caption = 'New Item2' + end + end + object SystrayIcon: TTrayIcon + left = 221 + top = 145 + end +end diff --git a/examples/trayicon/frmtest.lrs b/examples/trayicon/frmtest.lrs new file mode 100644 index 0000000000..225e22bfe4 --- /dev/null +++ b/examples/trayicon/frmtest.lrs @@ -0,0 +1,19 @@ +{ This is an automatically generated lazarus resource file } + +LazarusResources.Add('TForm1','FORMDATA',[ + 'TPF0'#6'TForm1'#5'Form1'#4'Left'#3'"'#1#6'Height'#3','#1#3'Top'#3#175#0#5'Wi' + +'dth'#3#144#1#18'HorzScrollBar.Page'#3#143#1#18'VertScrollBar.Page'#3'+'#1#13 + +'ActiveControl'#7#7'Button1'#7'Caption'#6#5'Form1'#12'ClientHeight'#3','#1#11 + +'ClientWidth'#3#144#1#8'OnCreate'#7#10'FormCreate'#0#7'TButton'#7'Button1'#4 + +'Left'#2'8'#6'Height'#2'!'#3'Top'#2'8'#5'Width'#2'^'#25'BorderSpacing.InnerB' + +'order'#2#4#7'Caption'#6#4'Show'#7'OnClick'#7#12'Button1Click'#8'TabOrder'#2 + +#0#0#0#7'TButton'#7'Button2'#4'Left'#2'8'#6'Height'#2'!'#3'Top'#2'p'#5'Width' + +#2'^'#25'BorderSpacing.InnerBorder'#2#4#7'Caption'#6#4'Hide'#7'OnClick'#7#12 + +'Button2Click'#8'TabOrder'#2#1#0#0#7'TButton'#7'Button3'#4'Left'#3#224#0#6'H' + +'eight'#2'!'#3'Top'#2'8'#5'Width'#2'^'#25'BorderSpacing.InnerBorder'#2#4#7'C' + +'aption'#6#10'Paint Test'#7'OnClick'#7#12'Button3Click'#8'TabOrder'#2#2#0#0 + +#10'TPopupMenu'#9'PopupMenu'#4'left'#3#180#0#3'top'#3#4#1#0#9'TMenuItem'#9'M' + +'enuItem1'#7'Caption'#6#9'New Item1'#0#0#9'TMenuItem'#9'MenuItem3'#7'Caption' + +#6#9'New Item3'#0#0#9'TMenuItem'#9'MenuItem2'#7'Caption'#6#9'New Item2'#0#0#0 + +#9'TTrayIcon'#11'SystrayIcon'#4'left'#3#221#0#3'top'#3#145#0#0#0#0 +]); diff --git a/examples/trayicon/frmtest.pas b/examples/trayicon/frmtest.pas new file mode 100644 index 0000000000..179fc0f1cb --- /dev/null +++ b/examples/trayicon/frmtest.pas @@ -0,0 +1,173 @@ +{ + frmtest.dpr + + ***************************************************************************** + * * + * This demonstration program is public domain, which means no copyright, * + * but also no warranty! * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * + * * + ***************************************************************************** + + Author: Felipe Monteiro de Carvalho +} +unit frmtest; + +{$ifdef fpc} + {$mode delphi}{$H+} +{$endif} + +interface + +uses + Classes, SysUtils, +{$ifdef fpc} + LResources, +{$endif} + Forms, Controls, Graphics, Dialogs, Buttons, StdCtrls, Menus, + ExtCtrls; + +type + + { TForm1 } + + TForm1 = class(TForm) + Button1: TButton; + Button2: TButton; + Button3: TButton; + MenuItem1: TMenuItem; + MenuItem2: TMenuItem; + MenuItem3: TMenuItem; + PopupMenu: TPopupMenu; + SystrayIcon: TTrayIcon; + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure Button3Click(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure HandleClick(Sender: TObject); + private + { private declarations } + procedure DoPaint(Sender: TObject); + public + { public declarations } + end; + +var + Form1: TForm1; + +{$ifndef fpc} + {$R frmtest.dfm} +{$endif} + +implementation + +{$ifdef Windows} +uses Windows; +{$endif} +{$IFDEF Darwin} +uses FPCMacOSAll; +{$ENDIF} + +{ TForm1 } + +procedure TForm1.Button1Click(Sender: TObject); +begin + SystrayIcon.Visible := True; +end; + +procedure TForm1.Button2Click(Sender: TObject); +begin + SystrayIcon.Visible := False; +end; + +procedure TForm1.Button3Click(Sender: TObject); +var + MyImage, SecondImage: TIcon; +begin + MyImage := TIcon.Create; + SecondImage := TIcon.Create; + + MyImage.LoadFromFile('icon.ico'); + SecondImage.Height := 22; + SecondImage.Width := 22; + {$IFDEF FPC} + SecondImage.Canvas.Draw(0, 0, MyImage); + {$ENDIF} + Canvas.Draw(0, 0, SecondImage); + + SecondImage.Free; + MyImage.Free; +end; + +procedure TForm1.FormCreate(Sender: TObject); +const + IDI_ICON1 = 101; + IDI_ICON2 = 115; + BundleResourceFolder = '/Contents/Resources/'; +var +{$IFDEF Darwin} + pathRef: CFURLRef; + pathCFStr: CFStringRef; + pathStr: shortstring; +{$ENDIF} + pathMedia: string; +begin + pathMedia := ''; + + // Under Mac OS X we need to get the location of the bundle +{$IFDEF Darwin} + pathRef := CFBundleCopyBundleURL(CFBundleGetMainBundle()); + pathCFStr := CFURLCopyFileSystemPath(pathRef, kCFURLPOSIXPathStyle); + CFStringGetPascalString(pathCFStr, @pathStr, 255, CFStringGetSystemEncoding()); + CFRelease(pathRef); + CFRelease(pathCFStr); + + pathMedia := pathStr + BundleResourceFolder; +{$ENDIF} + +{$ifdef Windows} + SystrayIcon.Icon.Handle := LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1)); + +// Loading from a file should also work +// SystrayIcon.Icon.LoadFromFile('icon.ico'); +{$else} + SystrayIcon.Icon.LoadFromFile(pathMedia + 'icon.ico'); +{$endif} + + SystrayIcon.Hint := 'my tool tip'; + + SystrayIcon.OnClick := HandleClick; + +// SystrayIcon.OnPaint := DoPaint; + + SystrayIcon.PopUpMenu := PopupMenu; +end; + +procedure TForm1.HandleClick(Sender: TObject); +begin + Application.MessageBox('Text', 'Caption', 0); +end; + +procedure TForm1.DoPaint(Sender: TObject); +var + MyImage: TIcon; +begin + MyImage := TIcon.Create; + MyImage.LoadFromFile('icon.ico'); + {$IFDEF FPC} + SystrayIcon.Canvas.Draw(0, 0, MyImage); + {$ENDIF} + MyImage.Free; + WriteLn('Paint'); +end; + +initialization +{$ifdef fpc} + {$I frmtest.lrs} +{$endif} + +end. + diff --git a/examples/trayicon/icon.ico b/examples/trayicon/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..3fe34ad0842d726e411413d9aa48862e37c25efc GIT binary patch literal 478 zcmb_Y!3uyN6r0iq)Wv)6)FJ4X`e>W(bW-R3O8N9B J55JcG;{>6H7&ia_ literal 0 HcmV?d00001 diff --git a/examples/trayicon/magnifier.res b/examples/trayicon/magnifier.res new file mode 100644 index 0000000000000000000000000000000000000000..7e9cbe18345aac63c93df189d60d37e819150226 GIT binary patch literal 29508 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 literal 0 HcmV?d00001 diff --git a/examples/trayicon/wndtray.dpr b/examples/trayicon/wndtray.dpr new file mode 100644 index 0000000000..ed6c36d189 --- /dev/null +++ b/examples/trayicon/wndtray.dpr @@ -0,0 +1,41 @@ +{ + wndtray.dpr + + ***************************************************************************** + * * + * This demonstration program is public domain, witch means no copyright, * + * but also no warranty! * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * + * * + ***************************************************************************** + + Author: Felipe Monteiro de Carvalho +} +program wndtray; + +{$ifdef fpc} + {$mode objfpc}{$H+} +{$endif} + +uses +{$ifdef fpc} + Interfaces, +{$endif} + Forms, + frmtest in 'frmtest.pas'; + +{ add your units here } + +{$ifdef Windows} + {$R magnifier.res} +{$endif} + +begin + Application.Initialize; + Application.CreateForm(TForm1, Form1); + Application.Run; +end. + diff --git a/examples/trayicon/wndtray.lpi b/examples/trayicon/wndtray.lpi new file mode 100644 index 0000000000..413c08a18a --- /dev/null +++ b/examples/trayicon/wndtray.lpi @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/trayicon/wndtray.lps b/examples/trayicon/wndtray.lps new file mode 100644 index 0000000000..2f22376808 --- /dev/null +++ b/examples/trayicon/wndtray.lps @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +