fixed LM_SETSIZE in InitializeWnd

git-svn-id: trunk@4332 -
This commit is contained in:
mattias 2003-06-28 12:10:02 +00:00
parent 49e6db0445
commit 9ef16aa5dc
7 changed files with 186 additions and 42 deletions

2
.gitattributes vendored
View File

@ -193,6 +193,7 @@ designer/sizecompsdlg.pp svneol=native#text/pascal
designer/taborderdlg.lfm svneol=native#text/plain
designer/taborderdlg.lrs svneol=native#text/pascal
designer/taborderdlg.pas svneol=native#text/pascal
docs/CrossCompile.txt svneol=native#text/plain
docs/ExtendingTheIDE.txt svneol=native#text/plain
docs/LazarusIDEInternals.pdf -text svneol=unset#application/pdf
docs/Packages.txt svneol=native#text/plain
@ -932,6 +933,7 @@ packager/ufrmaddcomponent.pas svneol=native#text/pascal
tools/apiwizz/apiwizard.pp svneol=native#text/pascal
tools/apiwizz/apiwizz.pp svneol=native#text/pascal
tools/check_ide_libs.sh -text svneol=native#application/x-sh
tools/install/build_fpc_rpm.sh -text svneol=native#application/x-sh
tools/install/create_fpc_deb.sh -text svneol=native#application/x-sh
tools/install/create_fpc_export_tgz.sh -text svneol=native#application/x-sh
tools/install/create_fpc_rpm.sh -text svneol=native#application/x-sh

48
docs/CrossCompile.txt Normal file
View File

@ -0,0 +1,48 @@
Hints to cross compile win32 binaries under linux
UNDER CONSTRUCTION
Thanks to Vincent Snijders for the hints.
1. Download the GNU Binary Utility Development Utilities. Most packages are
outdated. So probably you want to compile them yourself:
Download sources:
[]$ export CVSROOT=:pserver:anoncvs@sources.redhat.com:/cvs/src
[]$ cvs login # password is anoncvs
[]$ cvs -z3 co binutils
Configure:
[]$ rm -rf build-binutils # remove up old build directory
[]$ mkdir build-binutils # create a build directory (important)
[]$ cd build-binutils
[]$ ../src/configure --prefix=/usr/bin/crosswin32 --target=i386-pc-winnt
Build:
[]$ make
Install:
[]$ su # become root to install
[]$ rm -rf /usr/bin/crosswin32 # remove old install
[]$ rm -rf /usr/bin/{asw,ldw,windres,dlltool}
[]$ make install
[]$ ln -s /usr/bin/crosswin32/bin/i386-pc-winnt-as /usr/bin/asw
[]$ ln -s /usr/bin/crosswin32/bin/i386-pc-winnt-ld /usr/bin/ldw
ToDo: dlltool, windres
4. Download or compile the win32 units (ppw,ow files for rtl, fcl). These files
must be compatible (depending on the compiler probably 1.0.8 as of now).
Install them next to the linux units in /usr/lib/fpc/1.0.x/units.
4.1 Download the win32 units: Currently you can download the win32 snapshots at
ftp://ftp.freepascal.org/pub/fpc/snapshot/v10/win32-i386/
4.2 Compile the win32 units:
Download the fpc sources. If you have already download them for linux, you can
use them also for win32, because the compiled files have different names.
ToDo: rtl, fcl, ...

View File

@ -70,7 +70,14 @@ properly:
ToDo: Write me.
See www.freepascal.org.
See http://www.freepascal.org/down-win32.html. You can find a list of mirrors
at http://www.freepascal.org/sdown.html. Download for example fpc as one big
file, unzip it and run the install.exe. Then extend your PATH variable to the
fpc directory. For example under win98: Edit autoexec.bat and add the line
PATH=%PATH%;C:\pp\bin\bin\win32
Then restart win98.
ToDo: explain how to download fpc sources and build the compiler
--------------------------------------------------------------------------------

View File

@ -2570,8 +2570,6 @@ end;
created. Place cached property code here.
------------------------------------------------------------------------------}
procedure TWinControl.InitializeWnd;
var
R: TRect;
begin
Assert(False, Format('Trace:[TWinControl.InitializeWnd] %s', [ClassName]));
// set all cached properties
@ -2579,10 +2577,9 @@ begin
// MWE:All of this should be handled to the interface create routine
Assert(False, 'Trace:TODO: [TWinControl.InitializeWnd] move this code to the interface');
R:= Rect(Left, Top, Width, Height);
//writeln('[TWinControl.InitializeWnd] ',Name,':',ClassName,' ',Left,',',Top,',',Width,',',Height);
FBoundsRealized:=Bounds(Left, Top, Width, Height);
CNSendMessage(LM_SETSIZE, Self, @R);
CNSendMessage(LM_SETSIZE, Self, @FBoundsRealized);
CNSendMessage(LM_SHOWHIDE, Self, nil);
CNSendMessage(LM_SETCOLOR, Self, nil);
Exclude(FFlags,wcfColorChanged);
@ -2874,6 +2871,9 @@ end;
{ =============================================================================
$Log$
Revision 1.145 2003/06/28 12:10:02 mattias
fixed LM_SETSIZE in InitializeWnd
Revision 1.144 2003/06/27 23:42:38 mattias
fixed TScrollBar resizing

View File

@ -2161,14 +2161,15 @@ begin
SetFocus(Handle);
end;
LM_SetSize :
LM_SetSize:
begin
Assert(False, Format('Trace: [TgtkObject.IntSendMessage3] %s --> LM_SetSize(%d, %d, %d, %d)', [Sender.ClassNAme, PRect(Data)^.Left,PRect(Data)^.Top,PRect(Data)^.Right,PRect(Data)^.Bottom]));
//writeln('[IntSendMessage3.lm_setsize] Left=',PRect(Data)^.Left,' Top=',PRect(Data)^.Top,
// ' Right=',PRect(Data)^.Right,' Bottom=',PRect(Data)^.Bottom);
//writeln('[LM_SetSize] A ',Sender.ClassName,' ',PgtkWidget(Handle)^.window<>nil);
ResizeChild(Sender,PRect(Data)^.Left,PRect(Data)^.Top,
PRect(Data)^.Right,PRect(Data)^.Bottom);
PRect(Data)^.Right-PRect(Data)^.Left,
PRect(Data)^.Bottom-PRect(Data)^.Top);
//writeln('[LM_SetSize] B ',Sender.ClassName,' ',PgtkWidget(Handle)^.window<>nil);
end;
@ -2176,9 +2177,9 @@ begin
LM_TB_BUTTONCOUNT:
begin
if (Sender is TToolbar)
then Result := pgtkToolbar(handle)^.num_Children
else Result := -1;
if (Sender is TToolbar)
then Result := pgtkToolbar(Handle)^.num_Children
else Result := -1;
end;
//SH: think of TCanvas.handle!!!!
@ -7488,6 +7489,9 @@ end;
{ =============================================================================
$Log$
Revision 1.385 2003/06/28 12:10:02 mattias
fixed LM_SETSIZE in InitializeWnd
Revision 1.384 2003/06/27 23:42:38 mattias
fixed TScrollBar resizing

View File

@ -0,0 +1,104 @@
#!/bin/bash
set -x
set -e
#------------------------------------------------------------------------------
# parse parameters
#------------------------------------------------------------------------------
Usage="Usage: $0 [nodocs] [notemp] <FPCSrcDir> <release>"
WithDOCS=yes
if [ "x$1" = "xnodocs" ]; then
WithDOCS=no
shift
fi
WithTempDir=yes
if [ "x$1" = "xnotemp" ]; then
WithTempDir=no
shift
fi
FPCSourceDir=$1
shift
if [ "x$FPCSourceDir" = "x" ]; then
echo $Usage
exit -1
fi
LazRelease=$1
shift
if [ "x$LazRelease" = "x" ]; then
echo $Usage
exit -1
fi
#------------------------------------------------------------------------------
# patching
#------------------------------------------------------------------------------
# create a temporary copy of the fpc sources to patch it
TmpDir=/tmp/fpc_patchdir
if [ "$WithTempDir" = "yes" ]; then
rm -rf $TmpDir
cp -a $FPCSourceDir $TmpDir
else
TmpDir=$FPCSourceDir
fi
# retrieve the version information
VersionFile="$TmpDir/compiler/version.pas"
CompilerVersion=`cat $VersionFile | grep ' *version_nr *=.*;' | sed -e 's/[^0-9]//g'`
CompilerRelease=`cat $VersionFile | grep ' *release_nr *=.*;' | sed -e 's/[^0-9]//g'`
CompilerPatch=`cat $VersionFile | grep ' *patch_nr *=.*;' | sed -e 's/[^0-9]//g'`
LazVersion="$CompilerVersion.$CompilerRelease.$CompilerPatch"
SpecFile=$TmpDir/install/fpc.spec
SrcPatch=fpcsrc-patch
# patch sources
patch -p2 -d $TmpDir/ < $SrcPatch
# change spec file
cat $SpecFile | \
sed -e 's/^Version: .*/Version: '"$LazVersion/" \
-e 's/^Release: .*/Release: '"$LazRelease/" \
> $SpecFile.New
# -e 's/^\%{fpcdir}\/samplecfg .*/%{fpcdir}\/samplecfg %{_libdir}\/fpc\/\\\$version/' \
mv $SpecFile.New $SpecFile
if [ "$WithDOCS" = "no" ]; then
cat $SpecFile | \
sed -e 's/^\(.*\bmake\b.*\bdocs\b\)/#\1/g' \
-e 's/^\(%doc.*\*\.pdf\)/#\1/g' \
> $SpecFile.New
mv $SpecFile.New $SpecFile
fi
# change Makefile for new rpmbuild, if not already done
cd $TmpDir
grep rpmbuild Makefile \
|| cat Makefile | \
sed -e 's/rpm\( --nodeps -ba .*\)$/rpm\1 || rpmbuild\1/g' \
> New.Makefile
mv New.Makefile Makefile
cd -
#------------------------------------------------------------------------------
# compile
#------------------------------------------------------------------------------
cd $TmpDir
#make rtl
#make compiler
if [ "$WithDOCS" = "no" ]; then
make rpm NODOCS=1
else
make rpm
fi
cd -
# end.

View File

@ -1,8 +1,15 @@
#!/bin/bash
#
# Author: Mattias Gaertner
#
# Script to download fpc and create the rpms 'fpc' and 'fpcsrc'.
set -x
set -e
#------------------------------------------------------------------------------
# parse parameters
#------------------------------------------------------------------------------
Usage="Usage: $0 devel|stable [nodocs]"
FPCVersion=$1
@ -66,41 +73,13 @@ cd $TmpDir
tar xzf $SrcTGZ
cd -
# patch sources
patch -p2 -d $TmpDir/fpc/ < $SrcPatch
# change spec file
cat $SpecFile | \
sed -e 's/^Version: .*/Version: '"$LazVersion/" \
-e 's/^Release: .*/Release: '"$LazRelease/" \
> $SpecFile.New
# -e 's/^\%{fpcdir}\/samplecfg .*/%{fpcdir}\/samplecfg %{_libdir}\/fpc\/\\\$version/' \
mv $SpecFile.New $SpecFile
if [ "$WithDOCS" = "no" ]; then
cat $SpecFile | \
sed -e 's/^\(.*\bmake\b.*\bdocs\b\)/#\1/g' \
> $SpecFile.New
mv $SpecFile.New $SpecFile
fi
# change Makefile for new rpmbuild
cd $TmpDir/fpc
cat Makefile | \
sed -e 's/rpm\( --nodeps -ba .*\)$/rpm\1 || rpmbuild\1/g' \
> New.Makefile
mv New.Makefile Makefile
cd -
# compile
cd $TmpDir/fpc
make rtl
make compiler
Params="notemp $TmpDir/fpc $LazRelease"
if [ "$WithDOCS" = "no" ]; then
make rpm NODOCS=1
else
make rpm
Params="nodocs $Params"
fi
cd -
./build_fpc_rpm.sh $Params
echo