implemented OnChange for TRadioButton, TCheckBox, TToggleBox and some more docking stuff

git-svn-id: trunk@5531 -
This commit is contained in:
mattias 2004-05-30 14:02:31 +00:00
parent e915ff0e18
commit caf487c9e8
16 changed files with 688 additions and 290 deletions

199
Makefile
View File

@ -1,15 +1,24 @@
#
# Don't edit, this file is generated by FPCMake Version 1.1 [2004/03/14]
# Don't edit, this file is generated by FPCMake Version 1.1 [2004/05/29]
#
default: all
MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom
override PATH:=$(subst \,/,$(PATH))
BSDs = freebsd netbsd openbsd darwin
UNIXs = linux $(BSDs) sunos qnx
FORCE:
.PHONY: FORCE
override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
ifneq ($(findstring darwin,$(OSTYPE)),)
inUnix=1 #darwin
SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
else
ifeq ($(findstring ;,$(PATH)),)
inUnix=1
SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
else
SEARCHPATH:=$(subst ;, ,$(PATH))
endif
endif
SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
ifeq ($(PWD),)
@ -37,22 +46,13 @@ ifneq ($(findstring cygdrive,$(PATH)),)
inCygWin=1
endif
endif
ifeq ($(OS_TARGET),freebsd)
BSDhier=1
endif
ifeq ($(OS_TARGET),netbsd)
BSDhier=1
endif
ifeq ($(OS_TARGET),openbsd)
BSDhier=1
endif
ifdef inUnix
BATCHEXT=.sh
SRCBATCHEXT=.sh
else
ifdef inOS2
BATCHEXT=.cmd
SRCBATCHEXT=.cmd
else
BATCHEXT=.bat
SRCBATCHEXT=.bat
endif
endif
ifdef inUnix
@ -154,6 +154,12 @@ ifeq ($(findstring $(OS_TARGET),$(MAKEFILETARGETS)),)
$(error The Makefile doesn't support target $(OS_TARGET), please run fpcmake first)
endif
endif
ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
BSDhier=1
endif
ifeq ($(OS_TARGET),linux)
linuxHier=1
endif
export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE CROSSCOMPILE
ifdef FPCDIR
override FPCDIR:=$(subst \,/,$(FPCDIR))
@ -232,6 +238,7 @@ override TARGET_PROGRAMS+=lazarus
override TARGET_EXAMPLEDIRS+=examples
override CLEAN_FILES+=$(wildcard ./designer/*$(OEXT)) $(wildcard ./designer/*$(PPUEXT)) $(wildcard ./debugger/*$(OEXT)) $(wildcard ./debugger/*$(PPUEXT)) $(wildcard ./packager/*$(OEXT)) $(wildcard ./packager/*$(PPUEXT)) $(wildcard ./doceditor/*$(OEXT)) $(wildcard ./doceditor/*$(PPUEXT))
override INSTALL_BASEDIR=share/lazarus
override INSTALL_FPCPACKAGE=n
override DIST_DESTDIR=$(BASEDIR)/dist
override COMPILER_OPTIONS+=-gl
override COMPILER_INCLUDEDIR+=debugger designer packager include include/$(OS_TARGET)
@ -244,42 +251,12 @@ ifdef REQUIRE_PACKAGESDIR
override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
endif
ifdef ZIPINSTALL
ifeq ($(OS_TARGET),linux)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),freebsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),netbsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),openbsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),sunos)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),qnx)
UNIXINSTALLDIR=1
ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
UNIXHier=1
endif
else
ifeq ($(OS_SOURCE),linux)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_SOURCE),freebsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_SOURCE),netbsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_SOURCE),openbsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),sunos)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),qnx)
UNIXINSTALLDIR=1
ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
UNIXHier=1
endif
endif
ifndef INSTALL_PREFIX
@ -288,7 +265,7 @@ INSTALL_PREFIX=$(PREFIX)
endif
endif
ifndef INSTALL_PREFIX
ifdef UNIXINSTALLDIR
ifdef UNIXHier
INSTALL_PREFIX=/usr/local
else
ifdef INSTALL_FPCPACKAGE
@ -307,7 +284,7 @@ DIST_DESTDIR:=$(BASEDIR)
endif
export DIST_DESTDIR
ifndef INSTALL_BASEDIR
ifdef UNIXINSTALLDIR
ifdef UNIXHier
ifdef INSTALL_FPCPACKAGE
INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
else
@ -318,7 +295,7 @@ INSTALL_BASEDIR:=$(INSTALL_PREFIX)
endif
endif
ifndef INSTALL_BINDIR
ifdef UNIXINSTALLDIR
ifdef UNIXHier
ifdef CROSSCOMPILE
INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
else
@ -348,19 +325,23 @@ endif
endif
endif
ifndef INSTALL_LIBDIR
ifdef UNIXINSTALLDIR
ifdef UNIXHier
INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
else
INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
endif
endif
ifndef INSTALL_SOURCEDIR
ifdef UNIXINSTALLDIR
ifdef UNIXHier
ifdef BSDhier
SRCPREFIXDIR=share/src
else
ifdef linuxHier
SRCPREFIXDIR=share/src
else
SRCPREFIXDIR=src
endif
endif
ifdef INSTALL_FPCPACKAGE
ifdef INSTALL_FPCSUBDIR
INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
@ -383,12 +364,16 @@ endif
endif
endif
ifndef INSTALL_DOCDIR
ifdef UNIXINSTALLDIR
ifdef UNIXHier
ifdef BSDhier
DOCPREFIXDIR=share/doc
else
ifdef linuxHier
DOCPREFIXDIR=share/doc
else
DOCPREFIXDIR=doc
endif
endif
ifdef INSTALL_FPCPACKAGE
INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
else
@ -403,20 +388,28 @@ endif
endif
endif
ifndef INSTALL_EXAMPLEDIR
ifdef UNIXINSTALLDIR
ifdef UNIXHier
ifdef INSTALL_FPCPACKAGE
ifdef BSDhier
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
else
ifdef linuxHier
INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
else
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
endif
endif
else
ifdef BSDhier
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
else
ifdef linuxHier
INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
else
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
endif
endif
endif
else
ifdef INSTALL_FPCPACKAGE
INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
@ -440,7 +433,19 @@ CROSSBINDIR=
endif
ifeq ($(OS_SOURCE),linux)
ifndef GCCLIBDIR
GCCLIBDIR:=$(shell dirname `gcc -print-libgcc-file-name`)
ifeq ($(CPU_TARGET),i386)
ifneq ($(findstring x86_64,$(shell uname -a)),)
ifeq ($(BINUTILSPREFIX),)
GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
else
GCCLIBDIR:=$(shell dirname `$(BINUTILSPREFIX)gcc -print-libgcc-file-name`)
endif
else
GCCLIBDIR:=$(shell dirname `$(BINUTILSPREFIX)gcc -print-libgcc-file-name`)
endif
else
GCCLIBDIR:=$(shell dirname `$(BINUTILSPREFIX)gcc -print-libgcc-file-name`)
endif
endif
ifndef OTHERLIBDIR
OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }')
@ -452,6 +457,7 @@ OTHERLIBDIR+=/usr/pkg/lib
endif
export GCCLIBDIR OTHERLIB
endif
BATCHEXT=.bat
LOADEREXT=.as
EXEEXT=.exe
PPLEXT=.ppl
@ -484,24 +490,28 @@ ASMEXT=.asm
SHAREDLIBEXT=.dll
endif
ifeq ($(OS_TARGET),linux)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.lnx
ZIPSUFFIX=linux
endif
ifeq ($(OS_TARGET),freebsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.freebsd
ZIPSUFFIX=freebsd
endif
ifeq ($(OS_TARGET),netbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.netbsd
ZIPSUFFIX=netbsd
endif
ifeq ($(OS_TARGET),openbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.openbsd
@ -513,6 +523,7 @@ FPCMADE=fpcmade.w32
ZIPSUFFIX=w32
endif
ifeq ($(OS_TARGET),os2)
BATCHEXT=.cmd
AOUTEXT=.out
STATICLIBPREFIX=
SHAREDLIBEXT=.dll
@ -521,6 +532,7 @@ ZIPSUFFIX=os2
ECHO=echo
endif
ifeq ($(OS_TARGET),emx)
BATCHEXT=.cmd
AOUTEXT=.out
STATICLIBPREFIX=
SHAREDLIBEXT=.dll
@ -538,16 +550,19 @@ EXEEXT=.ttp
FPCMADE=fpcmade.ata
endif
ifeq ($(OS_TARGET),beos)
BATCHEXT=.sh
EXEEXT=
FPCMADE=fpcmade.be
ZIPSUFFIX=be
endif
ifeq ($(OS_TARGET),sunos)
BATCHEXT=.sh
EXEEXT=
FPCMADE=fpcmade.sun
ZIPSUFFIX=sun
endif
ifeq ($(OS_TARGET),qnx)
BATCHEXT=.sh
EXEEXT=
FPCMADE=fpcmade.qnx
ZIPSUFFIX=qnx
@ -559,11 +574,14 @@ FPCMADE=fpcmade.nw
ZIPSUFFIX=nw
endif
ifeq ($(OS_TARGET),macos)
BATCHEXT=
EXEEXT=
FPCMADE=fpcmade.macos
ZIPSUFFIX=macos
DEBUGSYMEXT=.xcoff
endif
ifeq ($(OS_TARGET),darwin)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.darwin
@ -592,24 +610,28 @@ FPCMADE=fpcmade.dos
ZIPSUFFIX=watcom
endif
ifeq ($(OS_TARGET),linux)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.lnx
ZIPSUFFIX=linux
endif
ifeq ($(OS_TARGET),freebsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.freebsd
ZIPSUFFIX=freebsd
endif
ifeq ($(OS_TARGET),netbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.netbsd
ZIPSUFFIX=netbsd
endif
ifeq ($(OS_TARGET),openbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.openbsd
@ -626,6 +648,7 @@ FPCMADE=fpcmade.w32
ZIPSUFFIX=w32
endif
ifeq ($(OS_TARGET),os2)
BATCHEXT=.cmd
PPUEXT=.ppo
ASMEXT=.so2
OEXT=.oo2
@ -658,6 +681,7 @@ EXEEXT=.ttp
FPCMADE=fpcmade.ata
endif
ifeq ($(OS_TARGET),beos)
BATCHEXT=.sh
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
@ -668,6 +692,7 @@ FPCMADE=fpcmade.be
ZIPSUFFIX=be
endif
ifeq ($(OS_TARGET),sunos)
BATCHEXT=.sh
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
@ -678,6 +703,7 @@ FPCMADE=fpcmade.sun
ZIPSUFFIX=sun
endif
ifeq ($(OS_TARGET),qnx)
BATCHEXT=.sh
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
@ -700,13 +726,15 @@ ZIPSUFFIX=nw
EXEEXT=.nlm
endif
ifeq ($(OS_TARGET),macos)
BATCHEXT=
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
SMARTEXT=.sl
STATICLIBEXT=.a
EXEEXT=
FPCMADE=fpcmade.mcc
DEBUGSYMEXT=.xcoff
FPCMADE=fpcmade.macos
endif
endif
ifndef ECHO
@ -714,7 +742,7 @@ ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ECHO),)
ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ECHO),)
ECHO=
ECHO= __missing_command__
else
ECHO:=$(firstword $(ECHO))
endif
@ -728,7 +756,7 @@ DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(DATE),)
DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(DATE),)
DATE=
DATE= __missing_command__
else
DATE:=$(firstword $(DATE))
endif
@ -742,7 +770,7 @@ GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(GINSTALL),)
GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(GINSTALL),)
GINSTALL=
GINSTALL= __missing_command__
else
GINSTALL:=$(firstword $(GINSTALL))
endif
@ -754,7 +782,7 @@ export GINSTALL
ifndef CPPROG
CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(CPPROG),)
CPPROG=
CPPROG= __missing_command__
else
CPPROG:=$(firstword $(CPPROG))
endif
@ -763,7 +791,7 @@ export CPPROG
ifndef RMPROG
RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(RMPROG),)
RMPROG=
RMPROG= __missing_command__
else
RMPROG:=$(firstword $(RMPROG))
endif
@ -772,7 +800,7 @@ export RMPROG
ifndef MVPROG
MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(MVPROG),)
MVPROG=
MVPROG= __missing_command__
else
MVPROG:=$(firstword $(MVPROG))
endif
@ -821,7 +849,7 @@ export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
ifndef PPUMOVE
PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(PPUMOVE),)
PPUMOVE=
PPUMOVE= __missing_command__
else
PPUMOVE:=$(firstword $(PPUMOVE))
endif
@ -830,7 +858,7 @@ export PPUMOVE
ifndef FPCMAKE
FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(FPCMAKE),)
FPCMAKE=
FPCMAKE= __missing_command__
else
FPCMAKE:=$(firstword $(FPCMAKE))
endif
@ -839,7 +867,7 @@ export FPCMAKE
ifndef ZIPPROG
ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ZIPPROG),)
ZIPPROG=
ZIPPROG= __missing_command__
else
ZIPPROG:=$(firstword $(ZIPPROG))
endif
@ -848,7 +876,7 @@ export ZIPPROG
ifndef TARPROG
TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(TARPROG),)
TARPROG=
TARPROG= __missing_command__
else
TARPROG:=$(firstword $(TARPROG))
endif
@ -899,7 +927,7 @@ AS=$(ASPROG)
LD=$(LDPROG)
RC=$(RCPROG)
AR=$(ARPROG)
PPAS=ppas$(BATCHEXT)
PPAS=ppas$(SRCBATCHEXT)
ifdef inUnix
LDCONFIG=ldconfig
else
@ -1095,6 +1123,21 @@ REQUIRE_PACKAGES_IBASE=1
REQUIRE_PACKAGES_SQLITE=1
endif
endif
ifeq ($(OS_TARGET),freebsd)
ifeq ($(CPU_TARGET),x86_64)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
REQUIRE_PACKAGES_NETDB=1
REQUIRE_PACKAGES_LIBASYNC=1
REQUIRE_PACKAGES_PTHREADS=1
REQUIRE_PACKAGES_FCL=1
REQUIRE_PACKAGES_REGEXPR=1
REQUIRE_PACKAGES_PASJPEG=1
REQUIRE_PACKAGES_MYSQL=1
REQUIRE_PACKAGES_IBASE=1
REQUIRE_PACKAGES_SQLITE=1
endif
endif
ifeq ($(OS_TARGET),beos)
ifeq ($(CPU_TARGET),i386)
REQUIRE_PACKAGES_RTL=1
@ -1655,8 +1698,12 @@ ifdef RELEASE
ifeq ($(CPU_TARGET),i386)
FPCCPUOPT:=-OG2p3
else
ifeq ($(CPU_TARGET),powerpc)
FPCCPUOPT:=-O1
else
FPCCPUOPT:=
endif
endif
override FPCOPT+=-Xs $(FPCCPUOPT) -n
override FPCOPTDEF+=RELEASE
endif
@ -1744,7 +1791,7 @@ EXECPPAS:=@$(PPAS)
endif
endif
.PHONY: fpc_exes
ifdef TARGET_PROGRAMS
ifneq ($(TARGET_PROGRAMS),)
override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
override ALLTARGET+=fpc_exes
@ -1763,7 +1810,7 @@ override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
endif
.PHONY: fpc_examples
ifdef TARGET_EXAMPLES
ifneq ($(TARGET_EXAMPLES),)
HASEXAMPLES=1
override EXAMPLESOURCEFILES:=$(wildcard $(addsuffix .pp,$(TARGET_EXAMPLES)) $(addsuffix .pas,$(TARGET_EXAMPLES)) $(addsuffix .dpr,$(TARGET_EXAMPLES)))
override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(TARGET_EXAMPLES))
@ -1776,7 +1823,7 @@ ifeq ($(OS_TARGET),emx)
override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))
endif
endif
ifdef TARGET_EXAMPLEDIRS
ifneq ($(TARGET_EXAMPLEDIRS),)
HASEXAMPLES=1
endif
fpc_examples: all $(EXAMPLEFILES) $(addsuffix _all,$(TARGET_EXAMPLEDIRS))
@ -1912,7 +1959,7 @@ USEZIPWRAPPER=1
endif
ifdef USEZIPWRAPPER
ZIPPATHSEP=$(PATHSEP)
ZIPWRAPPER=$(subst /,$(PATHSEP),$(DIST_DESTDIR)/fpczip$(BATCHEXT))
ZIPWRAPPER=$(subst /,$(PATHSEP),$(DIST_DESTDIR)/fpczip$(SRCBATCHEXT))
else
ZIPPATHSEP=/
endif
@ -1966,6 +2013,9 @@ override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
endif
ifdef CLEANPPUFILES
override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
ifdef DEBUGSYMEXT
override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
endif
override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
endif
@ -1989,6 +2039,7 @@ ifdef LIB_NAME
-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
endif
-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
fpc_distclean: clean
ifdef COMPILER_UNITTARGETDIR
TARGETDIRCLEAN=fpc_clean
@ -2000,9 +2051,13 @@ endif
-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-$(DELTREE) *$(SMARTEXT)
-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-$(DEL) *_ppas$(BATCHEXT)
ifdef AOUTEXT
-$(DEL) *$(AOUTEXT)
endif
ifdef DEBUGSYMEXT
-$(DEL) *$(DEBUGSYMEXT)
endif
.PHONY: fpc_baseinfo
override INFORULES+=fpc_baseinfo
fpc_baseinfo:

View File

@ -34,6 +34,7 @@ files=$(wildcard ./designer/*$(OEXT)) $(wildcard ./designer/*$(PPUEXT)) \
$(wildcard ./doceditor/*$(OEXT)) $(wildcard ./doceditor/*$(PPUEXT))
[install]
fpcpackage=n
basedir=share/lazarus
[dist]

View File

@ -3607,7 +3607,8 @@ const
sutObjPas = 2;
sutLineInfo = 3;
sutHeapTrc = 4;
sutNone = 5;
sutSysThrds = 5;
sutNone = 6;
var
OldInput: TFindDeclarationInput;
SystemAlias: string;
@ -3646,9 +3647,18 @@ begin
CurUnitType:=sutLineInfo
else if UpAtomIs('HEAPTRC') then
CurUnitType:=sutHeapTrc
else if UpAtomIs('SYSTHRDS') then
CurUnitType:=sutSysThrds
else
CurUnitType:=sutNone;
// try hidden units
if (CurUnitType>sutSysThrds)
and Scanner.InitialValues.IsDefined(ExternalMacroStart+'UseSysThrds')
then begin
// try hidden used unit 'systhrds'
Result:=FindIdentifierInUsedUnit('SysThrds',Params);
if Result then exit;
end;
if (CurUnitType>sutHeapTrc)
and Scanner.InitialValues.IsDefined(ExternalMacroStart+'UseHeapTrcUnit')
then begin

View File

@ -256,6 +256,7 @@ type
function ReadNextSwitchDirective: boolean;
function LongSwitchDirective: boolean;
function ModeDirective: boolean;
function ThreadingDirective: boolean;
procedure BuildDirectiveFuncList;
procedure PushIncludeLink(ACleanedPos, ASrcPos: integer; ACode: Pointer);
function PopIncludeLink: TSourceLink;
@ -1977,6 +1978,7 @@ begin
Add('INCLUDE',{$ifdef FPC}@{$endif}IncludeDirective);
Add('INCLUDEPATH',{$ifdef FPC}@{$endif}IncludePathDirective);
Add('MODE',{$ifdef FPC}@{$endif}ModeDirective);
Add('THREADING',{$ifdef FPC}@{$endif}ThreadingDirective);
end;
FSkipDirectiveFuncList:=TKeyWordFunctionList.Create;
with FSkipDirectiveFuncList do begin
@ -2055,6 +2057,24 @@ begin
Result:=true;
end;
function TLinkScanner.ThreadingDirective: boolean;
var
ValStart: integer;
begin
SkipSpace;
ValStart:=SrcPos;
while (SrcPos<=SrcLen) and (IsWordChar[Src[SrcPos]]) do
inc(SrcPos);
if CompareUpToken('ON',Src,ValStart,SrcPos) then begin
// define THREADING
Values.Variables[ExternalMacroStart+'UseSysThrds']:='1';
end else begin
// undefine THREADING
Values.Undefine(ExternalMacroStart+'UseSysThrds');
end;
Result:=true;
end;
function TLinkScanner.ReadNextSwitchDirective: boolean;
var DirStart, DirLen: integer;
begin

View File

@ -1,15 +1,24 @@
#
# Don't edit, this file is generated by FPCMake Version 1.1 [2004/03/14]
# Don't edit, this file is generated by FPCMake Version 1.1 [2004/05/29]
#
default: all
MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom
override PATH:=$(subst \,/,$(PATH))
BSDs = freebsd netbsd openbsd darwin
UNIXs = linux $(BSDs) sunos qnx
FORCE:
.PHONY: FORCE
override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
ifneq ($(findstring darwin,$(OSTYPE)),)
inUnix=1 #darwin
SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
else
ifeq ($(findstring ;,$(PATH)),)
inUnix=1
SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
else
SEARCHPATH:=$(subst ;, ,$(PATH))
endif
endif
SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
ifeq ($(PWD),)
@ -37,22 +46,13 @@ ifneq ($(findstring cygdrive,$(PATH)),)
inCygWin=1
endif
endif
ifeq ($(OS_TARGET),freebsd)
BSDhier=1
endif
ifeq ($(OS_TARGET),netbsd)
BSDhier=1
endif
ifeq ($(OS_TARGET),openbsd)
BSDhier=1
endif
ifdef inUnix
BATCHEXT=.sh
SRCBATCHEXT=.sh
else
ifdef inOS2
BATCHEXT=.cmd
SRCBATCHEXT=.cmd
else
BATCHEXT=.bat
SRCBATCHEXT=.bat
endif
endif
ifdef inUnix
@ -154,6 +154,12 @@ ifeq ($(findstring $(OS_TARGET),$(MAKEFILETARGETS)),)
$(error The Makefile doesn't support target $(OS_TARGET), please run fpcmake first)
endif
endif
ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
BSDhier=1
endif
ifeq ($(OS_TARGET),linux)
linuxHier=1
endif
export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE CROSSCOMPILE
ifdef FPCDIR
override FPCDIR:=$(subst \,/,$(FPCDIR))
@ -257,10 +263,9 @@ endif
endif
override TARGET_DIRS+=interfaces
override TARGET_UNITS+=alllclunits
override TARGET_IMPLICITUNITS+=actnlist arrow avglvltree buttons calendar checklst clipbrd clistbox comctrls commctrl controls dbctrls dbgrids dialogs dynamicarray dynhasharray editbtn extctrls extdlgs extendedstrings filectrl fpcadds forms graphics graphmath graphtype grids imglist interfacebase lazlinkedlist lclintf lclproc lclmemmanager lclstrconsts lcltype lmessages lresources maskedit menus pairsplitter postscriptprinter printers spin stdactns stdctrls stringhashlist textstrings toolwin utrace vclglobals
override TARGET_IMPLICITUNITS+=actnlist arrow avglvltree buttons calendar checklst clipbrd clistbox comctrls commctrl controls dbctrls dbgrids dialogs dynamicarray dynhasharray editbtn extctrls extdlgs extendedstrings extgraphics filectrl fpcadds forms graphics graphmath graphtype grids imglist interfacebase lazlinkedlist lclintf lclproc lclmemmanager lclstrconsts lcltype lmessages lresources maskedit menus pairsplitter postscriptprinter printers spin stdactns stdctrls stringhashlist textstrings toolwin utrace vclglobals
override TARGET_RSTS+=lclstrconsts
override CLEAN_FILES+=$(wildcard $(COMPILER_UNITTARGETDIR)/*$(OEXT)) $(wildcard $(COMPILER_UNITTARGETDIR)/*$(PPUEXT)) $(wildcard $(COMPILER_UNITTARGETDIR)/*$(RSTEXT)) $(wildcard ./units/*$(OEXT)) $(wildcard ./units/*$(PPUEXT)) $(wildcard ./units/*$(RSTEXT)) $(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT))
override INSTALL_BUILDUNIT=alllclunits
override COMPILER_OPTIONS+=-gl
override COMPILER_INCLUDEDIR+=include
override COMPILER_UNITDIR+=. $(NONWIN32) widgetset
@ -272,42 +277,12 @@ ifdef REQUIRE_PACKAGESDIR
override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
endif
ifdef ZIPINSTALL
ifeq ($(OS_TARGET),linux)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),freebsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),netbsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),openbsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),sunos)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),qnx)
UNIXINSTALLDIR=1
ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
UNIXHier=1
endif
else
ifeq ($(OS_SOURCE),linux)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_SOURCE),freebsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_SOURCE),netbsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_SOURCE),openbsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),sunos)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),qnx)
UNIXINSTALLDIR=1
ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
UNIXHier=1
endif
endif
ifndef INSTALL_PREFIX
@ -316,7 +291,7 @@ INSTALL_PREFIX=$(PREFIX)
endif
endif
ifndef INSTALL_PREFIX
ifdef UNIXINSTALLDIR
ifdef UNIXHier
INSTALL_PREFIX=/usr/local
else
ifdef INSTALL_FPCPACKAGE
@ -335,7 +310,7 @@ DIST_DESTDIR:=$(BASEDIR)
endif
export DIST_DESTDIR
ifndef INSTALL_BASEDIR
ifdef UNIXINSTALLDIR
ifdef UNIXHier
ifdef INSTALL_FPCPACKAGE
INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
else
@ -346,7 +321,7 @@ INSTALL_BASEDIR:=$(INSTALL_PREFIX)
endif
endif
ifndef INSTALL_BINDIR
ifdef UNIXINSTALLDIR
ifdef UNIXHier
ifdef CROSSCOMPILE
INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
else
@ -376,19 +351,23 @@ endif
endif
endif
ifndef INSTALL_LIBDIR
ifdef UNIXINSTALLDIR
ifdef UNIXHier
INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
else
INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
endif
endif
ifndef INSTALL_SOURCEDIR
ifdef UNIXINSTALLDIR
ifdef UNIXHier
ifdef BSDhier
SRCPREFIXDIR=share/src
else
ifdef linuxHier
SRCPREFIXDIR=share/src
else
SRCPREFIXDIR=src
endif
endif
ifdef INSTALL_FPCPACKAGE
ifdef INSTALL_FPCSUBDIR
INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
@ -411,12 +390,16 @@ endif
endif
endif
ifndef INSTALL_DOCDIR
ifdef UNIXINSTALLDIR
ifdef UNIXHier
ifdef BSDhier
DOCPREFIXDIR=share/doc
else
ifdef linuxHier
DOCPREFIXDIR=share/doc
else
DOCPREFIXDIR=doc
endif
endif
ifdef INSTALL_FPCPACKAGE
INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
else
@ -431,20 +414,28 @@ endif
endif
endif
ifndef INSTALL_EXAMPLEDIR
ifdef UNIXINSTALLDIR
ifdef UNIXHier
ifdef INSTALL_FPCPACKAGE
ifdef BSDhier
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
else
ifdef linuxHier
INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
else
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
endif
endif
else
ifdef BSDhier
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
else
ifdef linuxHier
INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
else
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
endif
endif
endif
else
ifdef INSTALL_FPCPACKAGE
INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
@ -468,7 +459,19 @@ CROSSBINDIR=
endif
ifeq ($(OS_SOURCE),linux)
ifndef GCCLIBDIR
GCCLIBDIR:=$(shell dirname `gcc -print-libgcc-file-name`)
ifeq ($(CPU_TARGET),i386)
ifneq ($(findstring x86_64,$(shell uname -a)),)
ifeq ($(BINUTILSPREFIX),)
GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
else
GCCLIBDIR:=$(shell dirname `$(BINUTILSPREFIX)gcc -print-libgcc-file-name`)
endif
else
GCCLIBDIR:=$(shell dirname `$(BINUTILSPREFIX)gcc -print-libgcc-file-name`)
endif
else
GCCLIBDIR:=$(shell dirname `$(BINUTILSPREFIX)gcc -print-libgcc-file-name`)
endif
endif
ifndef OTHERLIBDIR
OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }')
@ -480,6 +483,7 @@ OTHERLIBDIR+=/usr/pkg/lib
endif
export GCCLIBDIR OTHERLIB
endif
BATCHEXT=.bat
LOADEREXT=.as
EXEEXT=.exe
PPLEXT=.ppl
@ -512,24 +516,28 @@ ASMEXT=.asm
SHAREDLIBEXT=.dll
endif
ifeq ($(OS_TARGET),linux)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.lnx
ZIPSUFFIX=linux
endif
ifeq ($(OS_TARGET),freebsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.freebsd
ZIPSUFFIX=freebsd
endif
ifeq ($(OS_TARGET),netbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.netbsd
ZIPSUFFIX=netbsd
endif
ifeq ($(OS_TARGET),openbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.openbsd
@ -541,6 +549,7 @@ FPCMADE=fpcmade.w32
ZIPSUFFIX=w32
endif
ifeq ($(OS_TARGET),os2)
BATCHEXT=.cmd
AOUTEXT=.out
STATICLIBPREFIX=
SHAREDLIBEXT=.dll
@ -549,6 +558,7 @@ ZIPSUFFIX=os2
ECHO=echo
endif
ifeq ($(OS_TARGET),emx)
BATCHEXT=.cmd
AOUTEXT=.out
STATICLIBPREFIX=
SHAREDLIBEXT=.dll
@ -566,16 +576,19 @@ EXEEXT=.ttp
FPCMADE=fpcmade.ata
endif
ifeq ($(OS_TARGET),beos)
BATCHEXT=.sh
EXEEXT=
FPCMADE=fpcmade.be
ZIPSUFFIX=be
endif
ifeq ($(OS_TARGET),sunos)
BATCHEXT=.sh
EXEEXT=
FPCMADE=fpcmade.sun
ZIPSUFFIX=sun
endif
ifeq ($(OS_TARGET),qnx)
BATCHEXT=.sh
EXEEXT=
FPCMADE=fpcmade.qnx
ZIPSUFFIX=qnx
@ -587,11 +600,14 @@ FPCMADE=fpcmade.nw
ZIPSUFFIX=nw
endif
ifeq ($(OS_TARGET),macos)
BATCHEXT=
EXEEXT=
FPCMADE=fpcmade.macos
ZIPSUFFIX=macos
DEBUGSYMEXT=.xcoff
endif
ifeq ($(OS_TARGET),darwin)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.darwin
@ -620,24 +636,28 @@ FPCMADE=fpcmade.dos
ZIPSUFFIX=watcom
endif
ifeq ($(OS_TARGET),linux)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.lnx
ZIPSUFFIX=linux
endif
ifeq ($(OS_TARGET),freebsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.freebsd
ZIPSUFFIX=freebsd
endif
ifeq ($(OS_TARGET),netbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.netbsd
ZIPSUFFIX=netbsd
endif
ifeq ($(OS_TARGET),openbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.openbsd
@ -654,6 +674,7 @@ FPCMADE=fpcmade.w32
ZIPSUFFIX=w32
endif
ifeq ($(OS_TARGET),os2)
BATCHEXT=.cmd
PPUEXT=.ppo
ASMEXT=.so2
OEXT=.oo2
@ -686,6 +707,7 @@ EXEEXT=.ttp
FPCMADE=fpcmade.ata
endif
ifeq ($(OS_TARGET),beos)
BATCHEXT=.sh
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
@ -696,6 +718,7 @@ FPCMADE=fpcmade.be
ZIPSUFFIX=be
endif
ifeq ($(OS_TARGET),sunos)
BATCHEXT=.sh
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
@ -706,6 +729,7 @@ FPCMADE=fpcmade.sun
ZIPSUFFIX=sun
endif
ifeq ($(OS_TARGET),qnx)
BATCHEXT=.sh
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
@ -728,13 +752,15 @@ ZIPSUFFIX=nw
EXEEXT=.nlm
endif
ifeq ($(OS_TARGET),macos)
BATCHEXT=
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
SMARTEXT=.sl
STATICLIBEXT=.a
EXEEXT=
FPCMADE=fpcmade.mcc
DEBUGSYMEXT=.xcoff
FPCMADE=fpcmade.macos
endif
endif
ifndef ECHO
@ -742,7 +768,7 @@ ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ECHO),)
ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ECHO),)
ECHO=
ECHO= __missing_command__
else
ECHO:=$(firstword $(ECHO))
endif
@ -756,7 +782,7 @@ DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(DATE),)
DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(DATE),)
DATE=
DATE= __missing_command__
else
DATE:=$(firstword $(DATE))
endif
@ -770,7 +796,7 @@ GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(GINSTALL),)
GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(GINSTALL),)
GINSTALL=
GINSTALL= __missing_command__
else
GINSTALL:=$(firstword $(GINSTALL))
endif
@ -782,7 +808,7 @@ export GINSTALL
ifndef CPPROG
CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(CPPROG),)
CPPROG=
CPPROG= __missing_command__
else
CPPROG:=$(firstword $(CPPROG))
endif
@ -791,7 +817,7 @@ export CPPROG
ifndef RMPROG
RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(RMPROG),)
RMPROG=
RMPROG= __missing_command__
else
RMPROG:=$(firstword $(RMPROG))
endif
@ -800,7 +826,7 @@ export RMPROG
ifndef MVPROG
MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(MVPROG),)
MVPROG=
MVPROG= __missing_command__
else
MVPROG:=$(firstword $(MVPROG))
endif
@ -849,7 +875,7 @@ export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
ifndef PPUMOVE
PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(PPUMOVE),)
PPUMOVE=
PPUMOVE= __missing_command__
else
PPUMOVE:=$(firstword $(PPUMOVE))
endif
@ -858,7 +884,7 @@ export PPUMOVE
ifndef FPCMAKE
FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(FPCMAKE),)
FPCMAKE=
FPCMAKE= __missing_command__
else
FPCMAKE:=$(firstword $(FPCMAKE))
endif
@ -867,7 +893,7 @@ export FPCMAKE
ifndef ZIPPROG
ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ZIPPROG),)
ZIPPROG=
ZIPPROG= __missing_command__
else
ZIPPROG:=$(firstword $(ZIPPROG))
endif
@ -876,7 +902,7 @@ export ZIPPROG
ifndef TARPROG
TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(TARPROG),)
TARPROG=
TARPROG= __missing_command__
else
TARPROG:=$(firstword $(TARPROG))
endif
@ -927,7 +953,7 @@ AS=$(ASPROG)
LD=$(LDPROG)
RC=$(RCPROG)
AR=$(ARPROG)
PPAS=ppas$(BATCHEXT)
PPAS=ppas$(SRCBATCHEXT)
ifdef inUnix
LDCONFIG=ldconfig
else
@ -1142,6 +1168,23 @@ REQUIRE_PACKAGES_OPENGL=1
REQUIRE_PACKAGES_GTK=1
endif
endif
ifeq ($(OS_TARGET),freebsd)
ifeq ($(CPU_TARGET),x86_64)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
REQUIRE_PACKAGES_NETDB=1
REQUIRE_PACKAGES_LIBASYNC=1
REQUIRE_PACKAGES_PTHREADS=1
REQUIRE_PACKAGES_FCL=1
REQUIRE_PACKAGES_PASJPEG=1
REQUIRE_PACKAGES_MYSQL=1
REQUIRE_PACKAGES_IBASE=1
REQUIRE_PACKAGES_SQLITE=1
REQUIRE_PACKAGES_X11=1
REQUIRE_PACKAGES_OPENGL=1
REQUIRE_PACKAGES_GTK=1
endif
endif
ifeq ($(OS_TARGET),beos)
ifeq ($(CPU_TARGET),i386)
REQUIRE_PACKAGES_RTL=1
@ -1779,8 +1822,12 @@ ifdef RELEASE
ifeq ($(CPU_TARGET),i386)
FPCCPUOPT:=-OG2p3
else
ifeq ($(CPU_TARGET),powerpc)
FPCCPUOPT:=-O1
else
FPCCPUOPT:=
endif
endif
override FPCOPT+=-Xs $(FPCCPUOPT) -n
override FPCOPTDEF+=RELEASE
endif
@ -1868,7 +1915,7 @@ EXECPPAS:=@$(PPAS)
endif
endif
.PHONY: fpc_units
ifdef TARGET_UNITS
ifneq ($(TARGET_UNITS),)
override ALLTARGET+=fpc_units
override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
@ -2012,7 +2059,7 @@ USEZIPWRAPPER=1
endif
ifdef USEZIPWRAPPER
ZIPPATHSEP=$(PATHSEP)
ZIPWRAPPER=$(subst /,$(PATHSEP),$(DIST_DESTDIR)/fpczip$(BATCHEXT))
ZIPWRAPPER=$(subst /,$(PATHSEP),$(DIST_DESTDIR)/fpczip$(SRCBATCHEXT))
else
ZIPPATHSEP=/
endif
@ -2066,6 +2113,9 @@ override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
endif
ifdef CLEANPPUFILES
override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
ifdef DEBUGSYMEXT
override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
endif
override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
endif
@ -2089,6 +2139,7 @@ ifdef LIB_NAME
-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
endif
-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
fpc_distclean: clean
ifdef COMPILER_UNITTARGETDIR
TARGETDIRCLEAN=fpc_clean
@ -2100,9 +2151,13 @@ endif
-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-$(DELTREE) *$(SMARTEXT)
-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-$(DEL) *_ppas$(BATCHEXT)
ifdef AOUTEXT
-$(DEL) *$(AOUTEXT)
endif
ifdef DEBUGSYMEXT
-$(DEL) *$(DEBUGSYMEXT)
endif
.PHONY: fpc_baseinfo
override INFORULES+=fpc_baseinfo
fpc_baseinfo:

View File

@ -85,7 +85,7 @@ unitdir=. $(NONWIN32) widgetset
includedir=include
[install]
buildunit=alllclunits
#buildunit=alllclunits
[clean]
files=$(wildcard $(COMPILER_UNITTARGETDIR)/*$(OEXT)) \

View File

@ -244,9 +244,9 @@ type
TWndMethod = procedure(var TheMessage : TLMessage) of Object;
TControlStyleType = (
csAcceptsControls,
csAcceptsControls, // can have childs
csCaptureMouse,
csDesignInteractive,
csDesignInteractive, // wants mouse events in design mode
csClickEvents,
csFramed,
csSetCaption,
@ -264,6 +264,8 @@ type
csActionClient,
csMenuEvents,
csNoFocus,
csNeedsBorderPaint, // not implemented
csParentBackground, // not implemented
csDesignNoSmoothResize, // no WYSIWYG resizing in designer
csDesignFixedBounds // control can not be moved nor resized in designer
);
@ -455,6 +457,8 @@ type
NewTarget: TWinControl; var Allow: Boolean) of object;
TStartDockEvent = procedure(Sender: TObject;
var DragObject: TDragDockObject) of object;
TGetSiteInfoEvent = procedure(Sender: TObject; DockClient: TControl;
var InfluenceRect: TRect; MousePos: TPoint; var CanDock: Boolean) of object;
TDragDockObject = class(TBaseDragControlObject)
private
@ -759,8 +763,6 @@ type
function GetBoundsRect : TRect;
function GetClientHeight: Integer;
function GetClientWidth: Integer;
function GetFloating: Boolean;
function GetFloatingDockSiteClass: TWinControlClass;
function GetLRDockWidth: Integer;
function GetMouseCapture : Boolean;
function GetTBDockHeight: Integer;
@ -839,6 +841,11 @@ type
procedure ChangeScale(M,D : Integer); dynamic;
Function CanAutoSize(var NewWidth, NewHeight : Integer): Boolean; virtual;
procedure SetAlignedBounds(aLeft, aTop, aWidth, aHeight: integer); virtual;
Function GetClientOrigin : TPoint; virtual;
Function GetClientRect: TRect; virtual;
Function GetScrolledClientRect: TRect; virtual;
function GetChildsRect(Scrolled: boolean): TRect; virtual;
function GetClientScrollOffset: TPoint; virtual;
protected
// protected messages
procedure WMLButtonDown(Var Message: TLMLButtonDown); message LM_LBUTTONDOWN;
@ -870,59 +877,64 @@ type
procedure CMParentColorChanged(var Message : TLMessage); message CM_PARENTCOLORCHANGED;
procedure CMParentShowHintChanged(var Message : TLMessage); message CM_PARENTSHOWHINTCHANGED;
procedure CMVisibleChanged(var Message : TLMessage); message CM_VISIBLECHANGED;
protected
// drag and drop
function GetDockEdge(const MousePos: TPoint): TAlign; dynamic;
function GetFloating: Boolean; virtual;
function GetFloatingDockSiteClass: TWinControlClass; virtual;
procedure BeginAutoDrag; dynamic;
procedure DefaultDockImage(DragDockObject: TDragDockObject; Erase: Boolean); dynamic;
procedure DockTrackNoTarget(Source: TDragDockObject; X, Y: Integer); dynamic;
procedure DoDock(NewDockSite: TWinControl; var ARect: TRect); dynamic;
procedure DoDragMsg(var DragMsg: TCMDrag); virtual;
procedure DoEndDock(Target: TObject; X, Y: Integer); dynamic;
procedure DoEndDrag(Target: TObject; X,Y : Integer); dynamic;
procedure DoStartDock(var DragObject: TDragObject); dynamic;
procedure DoStartDrag(var DragObject: TDragObject); dynamic;
procedure DragCanceled; dynamic;
procedure DragOver(Source: TObject; X,Y: Integer; State: TDragState;
var Accept: Boolean); dynamic;
procedure DrawDragDockImage(DragDockObject: TDragDockObject); dynamic;
procedure EraseDragDockImage(DragDockObject: TDragDockObject); dynamic;
procedure PositionDockRect(DragDockObject: TDragDockObject); dynamic;
procedure SendDockNotification; virtual;
procedure SetDragMode(Value: TDragMode); virtual;
protected
// mouse
procedure Click; dynamic;
procedure DblClick; dynamic;
procedure TripleClick; dynamic;
procedure QuadClick; dynamic;
procedure MouseDown(Button: TMouseButton; Shift:TShiftState; X,Y:Integer); dynamic;
procedure MouseMove(Shift: TShiftState; X,Y: Integer); Dynamic;
procedure MouseUp(Button: TMouseButton; Shift:TShiftState; X,Y:Integer); dynamic;
procedure MouseEnter; virtual;
procedure MouseLeave; virtual;
protected
procedure Changed;
function GetPalette: HPalette; virtual;
function ChildClassAllowed(ChildClass: TClass): boolean; virtual;
procedure Loaded; override;
procedure AssignTo(Dest: TPersistent); override;
procedure BeginAutoDrag; dynamic;
procedure DoEndDock(Target: TObject; X, Y: Integer); dynamic;
procedure DoDock(NewDockSite: TWinControl; var ARect: TRect); dynamic;
procedure DoStartDock(var DragObject: TDragObject); dynamic;
function GetDockEdge(const MousePos: TPoint): TAlign; dynamic;
procedure PositionDockRect(DragDockObject: TDragDockObject); dynamic;
procedure Click; dynamic;
procedure DblClick; dynamic;
procedure TripleClick; dynamic;
procedure QuadClick; dynamic;
procedure DoDragMsg(var DragMsg: TCMDrag); virtual;
procedure DoStartDrag(var DragObject: TDragObject); dynamic;
procedure DragOver(Source: TObject; X,Y: Integer; State: TDragState;
var Accept: Boolean); dynamic;
procedure DragCanceled; dynamic;
procedure DoEndDrag(Target: TObject; X,Y : Integer); dynamic;
procedure InvalidateControl(IsVisible, IsOpaque : Boolean);
procedure InvalidateControl(IsVisible, IsOpaque, IgnoreWinControls: Boolean);
procedure SendDockNotification(Msg: Cardinal; WParam: WParam; LParam: LParam); virtual;
procedure FontChanged(Sender: TObject); virtual;
function GetAction: TBasicAction; virtual;
function GetActionLinkClass: TControlActionLinkClass; dynamic;
function RealGetText: TCaption; virtual;
procedure RealSetText(const Value: TCaption); virtual;
procedure SetAction(Value: TBasicAction); virtual;
procedure SetColor(Value : TColor); virtual;
procedure SetDragMode (Value: TDragMode); virtual;
procedure SetEnabled(Value: Boolean); virtual;
procedure SetHint(const Value: String); virtual;
procedure SetName(const Value: TComponentName); override;
procedure SetParent(AParent: TWinControl); virtual;
Procedure SetParentComponent(Value: TComponent); override;
procedure WndProc(var TheMessage: TLMessage); virtual;
procedure MouseDown(Button: TMouseButton; Shift:TShiftState; X,Y:Integer); dynamic;
procedure MouseMove(Shift: TShiftState; X,Y: Integer); Dynamic;
procedure MouseUp(Button: TMouseButton; Shift:TShiftState; X,Y:Integer); dynamic;
procedure MouseEnter; virtual;
procedure MouseLeave; virtual;
procedure CaptureChanged; virtual;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
Function CanTab: Boolean; virtual;
Function Focused: Boolean; dynamic;
Procedure SetFocus; virtual;
Function GetClientOrigin : TPoint; virtual;
Function GetClientRect: TRect; virtual;
Function GetScrolledClientRect: TRect; virtual;
function GetChildsRect(Scrolled: boolean): TRect; virtual;
function GetClientScrollOffset: TPoint; virtual;
function GetDeviceContext(var WindowHandle: HWnd): HDC; virtual;
Function GetEnabled: Boolean; virtual;
Function GetPopupMenu: TPopupMenu; dynamic;
@ -933,6 +945,9 @@ type
procedure RemoveControlHandler(HandlerType: TControlHandlerType;
AMethod: TMethod);
procedure DoContextPopup(const MousePos: TPoint; var Handled: Boolean); virtual;
protected
// actions
function GetActionLinkClass: TControlActionLinkClass; dynamic;
procedure ActionChange(Sender: TObject; CheckDefaults: Boolean); dynamic;
protected
// optional properties (not every descendent supports them)
@ -964,15 +979,12 @@ type
property OnStartDock: TStartDockEvent read FOnStartDock write FOnStartDock;
property OnStartDrag: TStartDragEvent read FOnStartDrag write FOnStartDrag;
public
FCompStyle: Byte; // enables (valid) use of 'IN' operator
Function PerformTab(ForwardTab: boolean): Boolean; Virtual;
// use overload to simulate default
procedure BeginDrag(Immediate: Boolean; Threshold: Integer);
procedure BeginDrag(Immediate: Boolean);
procedure BringToFront;
function ColorIsStored: boolean; virtual;
constructor Create(AOwner: TComponent);override;
destructor Destroy; override;
FCompStyle: Byte; // enables (valid) use of 'IN' operator (this is a hack
// for speed. It will be replaced by the use of the widgetset classes.
// So, don't use it anymore)
public
// drag and dock
Procedure DragDrop(Source: TObject; X,Y: Integer); Dynamic;
procedure Dock(NewDockSite: TWinControl; ARect: TRect); dynamic;
function ManualDock(NewDockSite: TWinControl;
DropControl: TControl {$IFNDEF VER1_0}= nil{$ENDIF};
@ -980,6 +992,14 @@ type
function ManualFloat(ScreenPos: TRect): Boolean;
function ReplaceDockedControl(Control: TControl; NewDockSite: TWinControl;
DropControl: TControl; ControlSide: TAlign): Boolean;
public
constructor Create(AOwner: TComponent);override;
destructor Destroy; override;
Function PerformTab(ForwardTab: boolean): Boolean; Virtual;
procedure BeginDrag(Immediate: Boolean; Threshold: Integer);
procedure BeginDrag(Immediate: Boolean);
procedure BringToFront;
function ColorIsStored: boolean; virtual;
function HasParent: Boolean; override;
function IsParentOf(AControl: TControl): boolean; virtual;
procedure Refresh;
@ -987,9 +1007,8 @@ type
Procedure Invalidate; virtual;
procedure AddControl; virtual;
function CheckChildClassAllowed(ChildClass: TClass;
ExceptionOnInvalid: boolean): boolean;
ExceptionOnInvalid: boolean): boolean;
procedure CheckNewParent(AParent: TWinControl); virtual;
Procedure DragDrop(Source: TObject; X,Y: Integer); Dynamic;
procedure SendToBack;
procedure SetBounds(aLeft, aTop, aWidth, aHeight: integer); virtual;
procedure SetInitialBounds(aLeft, aTop, aWidth, aHeight: integer); virtual;
@ -1072,7 +1091,7 @@ type
// Moved to LCLType ot avoid unit circles
// TCreateParams is part of th interface
// TCreateParams is part of the interface
TCreateParams = LCLType.TCreateParams;
TBorderWidth = 0..MaxInt;
@ -1250,6 +1269,7 @@ type
FChildSizing: TControlChildSizing;
FControls: TList;
FDefWndProc: Pointer;
FDockClients: TList;
//FDockSite: Boolean;
FDoubleBuffered: Boolean;
FClientWidth: Integer;
@ -1291,7 +1311,7 @@ type
function GetTabOrder: TTabOrder;
function GetVisibleDockClientCount: Integer;
procedure SetChildSizing(const AValue: TControlChildSizing);
procedure SetDockSite(const AValue: Boolean);
procedure SetDockSite(const NewDockSite: Boolean);
procedure SetHandle(NewHandle: HWND);
procedure SetBorderWidth(Value : TBorderWidth);
procedure SetParentCtl3D(Value : Boolean);
@ -2269,6 +2289,9 @@ end.
{ =============================================================================
$Log$
Revision 1.205 2004/05/30 14:02:30 mattias
implemented OnChange for TRadioButton, TCheckBox, TToggleBox and some more docking stuff
Revision 1.204 2004/05/22 14:35:32 mattias
fixed button return key

View File

@ -95,7 +95,9 @@ end;
procedure TControl.DoDock(NewDockSite: TWinControl; var ARect: TRect);
begin
// ToDo: DoDock
BoundsRect := ARect;
if (NewDockSite = nil) then Parent := nil;
end;
procedure TControl.DoStartDock(var DragObject: TDragObject);
@ -108,7 +110,8 @@ end;
function TControl.GetDockEdge(const MousePos: TPoint): TAlign;
Calculate the dock side depending on current MousePos.
MousePos is relative to control's Left, top.
Important: MousePos is relative to this control's Left, Top.
------------------------------------------------------------------------------}
function TControl.GetDockEdge(const MousePos: TPoint): TAlign;
var
@ -141,9 +144,43 @@ begin
end;
end;
{------------------------------------------------------------------------------
procedure TControl.PositionDockRect(DragDockObject: TDragDockObject);
------------------------------------------------------------------------------}
procedure TControl.PositionDockRect(DragDockObject: TDragDockObject);
var
NewWidth: LongInt;
NewHeight: LongInt;
NewLeft: LongInt;
NewTop: LongInt;
WinDragTarget: TWinControl;
begin
// ToDo
with DragDockObject do begin
if (DragTarget is TWinControl) and TWinControl(DragTarget).UseDockManager
then begin
WinDragTarget:=TWinControl(DragTarget);
GetWindowRect(WinDragTarget.Handle, FDockRect);
if (WinDragTarget.DockManager<>nil) then
WinDragTarget.DockManager.PositionDockRect(Control,DropOnControl,
DropAlign,FDockRect);
end else begin
NewWidth := Control.UndockWidth;
NewHeight := Control.UndockHeight;
NewLeft := DragPos.X;
NewTop := DragPos.Y;
with FDockRect do
begin
Left := NewLeft;
Top := NewTop;
Right := Left + NewWidth;
Bottom := Top + NewHeight;
end;
// let user adjust dock rect
AdjustDockRect(FDockRect);
end;
end;
end;
{------------------------------------------------------------------------------
@ -443,6 +480,9 @@ begin
Result := ClientRect.Right;
end;
{------------------------------------------------------------------------------
function TControl.GetFloating: Boolean;
------------------------------------------------------------------------------}
function TControl.GetFloating: Boolean;
var
CurHostDockSite: TWinControl;
@ -452,11 +492,17 @@ begin
and (CurHostDockSite is FloatingDockSiteClass);
end;
{------------------------------------------------------------------------------
function TControl.GetFloatingDockSiteClass: TWinControlClass;
------------------------------------------------------------------------------}
function TControl.GetFloatingDockSiteClass: TWinControlClass;
begin
Result := FFloatingDockSiteClass;
end;
{------------------------------------------------------------------------------
function TControl.GetLRDockWidth: Integer;
------------------------------------------------------------------------------}
function TControl.GetLRDockWidth: Integer;
begin
if FLRDockWidth>0 then
@ -905,7 +951,6 @@ end;
{------------------------------------------------------------------------------
TControl.GetClientOrigin
------------------------------------------------------------------------------}
function TControl.GetClientOrigin: TPoint;
@ -926,10 +971,9 @@ Begin
//Assert(False, Format('Trace:[TControl.GetClientOrigin] %s --> (%d, %d)', [Classname, Result.X, Result.Y]));
end;
{------------------------------------------------------------------------------}
{ TControl.ScreenToClient
}
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------
TControl.ScreenToClient
------------------------------------------------------------------------------}
Function TControl.ScreenToClient(const Point : TPoint) : TPoint;
var
P : TPoint;
@ -942,7 +986,6 @@ end;
{------------------------------------------------------------------------------
Function TControl.ClientToScreen(const Point : TPoint) : TPoint;
------------------------------------------------------------------------------}
Function TControl.ClientToScreen(const Point : TPoint) : TPoint;
var
@ -953,47 +996,46 @@ begin
Result.Y := Point.Y + P.Y;
end;
{------------------------------------------------------------------------------}
{ TControl.SendDockNotification
}
{------------------------------------------------------------------------------}
Procedure TControl.SendDockNotification(Msg: Cardinal; WParam: WParam; LParam: LParam);
{------------------------------------------------------------------------------
TControl.SendDockNotification
------------------------------------------------------------------------------}
procedure TControl.SendDockNotification;
begin
if (FHostDockSite<>nil) and (DragObject=nil)
and (ComponentState*[csLoading,csDestroying] = []) then
begin
// ToDo
//FHostDockSite.Perform
end;
end;
{------------------------------------------------------------------------------}
{ TControl.DblClick
}
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------
TControl.DblClick
------------------------------------------------------------------------------}
procedure TControl.DblClick;
begin
If Assigned(FOnDblClick) then FOnDblClick(Self);
end;
{------------------------------------------------------------------------------}
{ TControl.TripleClick
}
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------
TControl.TripleClick
------------------------------------------------------------------------------}
procedure TControl.TripleClick;
begin
If Assigned(FOnTripleClick) then FOnTripleClick(Self);
end;
{------------------------------------------------------------------------------}
{ TControl.QuadClick
}
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------
TControl.QuadClick
------------------------------------------------------------------------------}
procedure TControl.QuadClick;
begin
If Assigned(FOnQuadClick) then FOnQuadClick(Self);
end;
{------------------------------------------------------------------------------}
{ TControl.DoDragMsg
}
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------
TControl.DoDragMsg
------------------------------------------------------------------------------}
Procedure TControl.DoDragMsg(var DragMsg: TCMDrag);
var
Accepts: Boolean;
@ -1372,7 +1414,8 @@ begin
else begin
if TheMessage.Msg = CM_VISIBLECHANGED
then begin
with TheMessage do SendDockNotification(Msg,WParam,LParam);
// ToDo: call a real method, do not create a win32 message
//with TheMessage do SendDockNotification(Msg,WParam,LParam);
end;
end;
end;
@ -2248,9 +2291,36 @@ begin
CNSendMessage(LM_DRAGINFOCHANGED,Self,Nil);
end;
{------------------------------------------------------------------------------}
{ TControl SetLeft }
{------------------------------------------------------------------------------}
procedure TControl.DrawDragDockImage(DragDockObject: TDragDockObject);
begin
DefaultDockImage(DragDockObject, False);
end;
procedure TControl.EraseDragDockImage(DragDockObject: TDragDockObject);
begin
DefaultDockImage(DragDockObject, True);
end;
{------------------------------------------------------------------------------
TControl DefaultDockImage
------------------------------------------------------------------------------}
procedure TControl.DefaultDockImage(DragDockObject: TDragDockObject;
Erase: Boolean);
begin
// ToDo: draw or erase dock image
end;
{------------------------------------------------------------------------------
TControl DockTrackNoTarget
------------------------------------------------------------------------------}
procedure TControl.DockTrackNoTarget(Source: TDragDockObject; X, Y: Integer);
begin
PositionDockRect(Source);
end;
{------------------------------------------------------------------------------
TControl SetLeft
------------------------------------------------------------------------------}
procedure TControl.SetLeft(Value: Integer);
begin
{$IFDEF CHECK_POSITION}
@ -2259,9 +2329,9 @@ begin
SetBounds(Value, FTop, FWidth, FHeight);
end;
{------------------------------------------------------------------------------}
{ TControl SetTop }
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------
TControl SetTop
------------------------------------------------------------------------------}
procedure TControl.SetTop(Value: Integer);
begin
{$IFDEF CHECK_POSITION}
@ -2270,9 +2340,9 @@ begin
SetBounds(FLeft, Value, FWidth, FHeight);
end;
{------------------------------------------------------------------------------}
{ TControl SetWidth }
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------
TControl SetWidth
------------------------------------------------------------------------------}
procedure TControl.SetWidth(Value: Integer);
begin
{$IFDEF CHECK_POSITION}
@ -2552,15 +2622,75 @@ begin
end;
procedure TControl.Dock(NewDockSite: TWinControl; ARect: TRect);
procedure RaiseAlreadyDocking;
begin
RaiseGDBException('TControl.Dock '+Name+':'+ClassName+' csDocking in FControlState');
end;
var
OldHostDockSite: TWinControl;
begin
// ToDo
if (csDocking in FControlState) then
RaiseAlreadyDocking;
// dock
Include(FControlState, csDocking);
try
OldHostDockSite:=HostDockSite;
if OldHostDockSite<>NewDockSite then begin
// HostDockSite will change -> prepare
if (OldHostDockSite<>nil) and (OldHostDockSite.FDockClients<>nil) then
OldHostDockSite.FDockClients.Remove(Self);
if (NewDockSite<>nil) and (NewDockSite.FDockClients<>nil) then
NewDockSite.FDockClients.Add(Self);
end;
DoDock(NewDockSite,ARect);
if FHostDockSite<>NewDockSite then
begin
// HostDockSite has changed -> commit
OldHostDockSite := FHostDockSite;
FHostDockSite := NewDockSite;
if NewDockSite<>nil then NewDockSite.DoAddDockClient(Self,ARect);
if OldHostDockSite<>nil then OldHostDockSite.DoRemoveDockClient(Self);
end;
finally
Exclude(FControlState, csDocking);
end;
end;
function TControl.ManualDock(NewDockSite: TWinControl; DropControl: TControl;
ControlSide: TAlign): Boolean;
var
NewBounds: TRect;
begin
// ToDo
Result:=false;
if (NewDockSite=nil) then begin
// undock / float this control
if (HostDockSite<>nil) and HostDockSite.UseDockManager
and (HostDockSite.DockManager<>nil) then begin
HostDockSite.DockManager.GetControlBounds(Self,NewBounds);
// ToDo
RaiseGDBException('MapWindowPoints not yet implemented');
//MapWindowPoints(HostDockSite.Handle, 0, NewBounds.TopLeft, 2);
end
else begin
NewBounds.Left:=Left;
NewBounds.Top:=Top;
if Parent<>nil then
NewBounds.TopLeft := Parent.ClientToScreen(NewBounds.TopLeft);
end;
NewBounds := Bounds(NewBounds.Left,NewBounds.Top,UndockWidth,UndockHeight);
Result := ManualFloat(NewBounds);
end
else
begin
// dock / unfloat this control
// ToDo
RaiseGDBException('TControl.ManualDock docking not yet implemented');
end;
end;
function TControl.ManualFloat(ScreenPos: TRect): Boolean;
@ -2924,6 +3054,9 @@ end;
{ =============================================================================
$Log$
Revision 1.187 2004/05/30 14:02:30 mattias
implemented OnChange for TRadioButton, TCheckBox, TToggleBox and some more docking stuff
Revision 1.186 2004/05/15 20:17:09 mattias
replaced WMSize by DoSetBounds

View File

@ -30,16 +30,10 @@
- lots of unknown issues
TODO:
- check for Delphi compatibility
- test if fState / Checked is always set right
Bugs:
- Seems as if you can't (yet) use the State/Checked properties in
the OnClick handler. Not sure if there some bug inside this class
or if the Callback is called before the state of the component has
been updated.
}
{------------------------------------------------------------------------------
@ -49,7 +43,7 @@
Set new state of the checkbox.
------------------------------------------------------------------------------}
procedure TCustomCheckBox.SetState(Value : TCheckBoxState);
procedure TCustomCheckBox.SetState(Value: TCheckBoxState);
begin
if FState <> Value then
begin
@ -66,11 +60,27 @@ end;
Get current state of the checkbox. To get the real state a call to the
interface is made here.
------------------------------------------------------------------------------}
function TCustomCheckBox.GetState : TCheckBoxState;
function TCustomCheckBox.GetState: TCheckBoxState;
begin
fState:=RetrieveState;
Result := fState;
end;
procedure TCustomCheckBox.DoChange(var Msg);
var
NewState: TCheckBoxState;
begin
NewState:=RetrieveState;
if FState=NewState then exit;
FState:=RetrieveState;
DoOnChange;
end;
function TCustomCheckBox.RetrieveState: TCheckBoxState;
begin
Result:=FState;
if HandleAllocated
then CNSendMessage (LM_GETVALUE, Self, @fState); // get the actual state of the component
GetState := fState;
then CNSendMessage (LM_GETVALUE, Self, @Result); // get the actual state of the component
end;
{------------------------------------------------------------------------------
@ -198,6 +208,9 @@ end;
{
$Log$
Revision 1.21 2004/05/30 14:02:30 mattias
implemented OnChange for TRadioButton, TCheckBox, TToggleBox and some more docking stuff
Revision 1.20 2004/04/18 23:55:39 marc
* Applied patch from Ladislav Michl
* Changed the way TControl.Text is resolved

View File

@ -154,33 +154,52 @@ end;
procedure TDragDockObject.SetBrush(Value: TBrush);
begin
if FBrush=nil then FBrush:=TBrush.Create;
FBrush.Assign(Value);
end;
procedure TDragDockObject.AdjustDockRect(ARect: TRect);
begin
function AbsMin(Value1, Value2: Integer): Integer;
begin
if Abs(Value1) < Abs(Value2) then Result := Value1
else Result := Value2;
end;
var
DeltaX, DeltaY: Integer;
begin
if (FDragPos.x<ARect.Left) or (FDragPos.x>ARect.Right) then
DeltaX := AbsMin(ARect.Left-FDragPos.x,ARect.Right-FDragPos.x)
else
DeltaX := 0;
if (FDragPos.y<ARect.Top) or (FDragPos.y>ARect.Bottom) then
DeltaY := AbsMin(ARect.Top-FDragPos.y,ARect.Bottom-FDragPos.y)
else
DeltaY := 0;
if (DeltaX<>0) or (DeltaY<>0) then
OffsetRect(FDockRect, -DeltaX, -DeltaY);
end;
procedure TDragDockObject.DrawDragDockImage;
begin
FControl.DrawDragDockImage(Self);
end;
procedure TDragDockObject.EndDrag(Target: TObject; X, Y: Integer);
begin
inherited EndDrag(Target, X, Y);
FControl.DoEndDock(Target, X, Y);
end;
procedure TDragDockObject.EraseDragDockImage;
begin
FControl.EraseDragDockImage(Self);
end;
function TDragDockObject.GetDragCursor(Accepted: Boolean; X, Y: Integer
): TCursor;
begin
Result:=inherited GetDragCursor(Accepted, X, Y);
Result := crDefault;
end;
function TDragDockObject.GetFrameWidth: Integer;
@ -195,6 +214,7 @@ end;
destructor TDragDockObject.Destroy;
begin
FreeThenNil(FBrush);
inherited Destroy;
end;

View File

@ -2447,15 +2447,18 @@ end;
function TWinControl.GetDockClientCount: Integer;
begin
// ToDo
Result:=0;
if FDockClients<>nil then
Result := FDockClients.Count
else
Result := 0;
end;
function TWinControl.GetDockClients(Index: Integer): TControl;
begin
// ToDo
RaiseGDBException('not implemented');
Result:=nil;
if FDockClients<>nil then
Result := TControl(FDockClients[Index])
else
Result := nil;
end;
{------------------------------------------------------------------------------}
@ -2568,6 +2571,7 @@ begin
FreeThenNil(FBrush);
FreeThenNil(FChildSizing);
FreeThenNil(FDockClients);
//DebugLn('[TWinControl.Destroy] D ',Name,':',ClassName);
inherited Destroy;
//DebugLn('[TWinControl.Destroy] END ',Name,':',ClassName);
@ -3334,9 +3338,12 @@ begin
end;
function TWinControl.GetVisibleDockClientCount: Integer;
var
i: integer;
begin
// ToDo
Result:=0;
Result := 0;
for i:=FDockClients.Count-1 downto 0 do
if TControl(FDockClients[I]).Visible then inc(Result);
end;
procedure TWinControl.SetChildSizing(const AValue: TControlChildSizing);
@ -3345,10 +3352,26 @@ begin
FChildSizing.Assign(AValue);
end;
procedure TWinControl.SetDockSite(const AValue: Boolean);
procedure TWinControl.SetDockSite(const NewDockSite: Boolean);
begin
if FDockSite=AValue then exit;
FDockSite:=AValue;
if FDockSite=NewDockSite then exit;
FDockSite := NewDockSite;
if not (csDesigning in ComponentState) then begin
// ToDo
RaiseGDBException('RegisterDockSite not yet implemented');
//RegisterDockSite(Self,NewDockSite);
if not NewDockSite then begin
FreeThenNil(FDockClients);
FDockClients := nil;
FDockManager := nil;
end
else begin
if FDockClients = nil then FDockClients := TList.Create;
// ToDo
RaiseGDBException('CreateDockManager not yet implemented');
//FDockManager := CreateDockManager;
end;
end;
end;
{------------------------------------------------------------------------------
@ -3554,6 +3577,9 @@ end;
{ =============================================================================
$Log$
Revision 1.234 2004/05/30 14:02:30 mattias
implemented OnChange for TRadioButton, TCheckBox, TToggleBox and some more docking stuff
Revision 1.233 2004/05/22 14:35:32 mattias
fixed button return key

View File

@ -301,7 +301,7 @@ begin
Mess.Msg := LM_ACTIVATE;
Mess.Result := 0;
DeliverMessage(Data, Mess);
//DebugLn('gtkactivateCB ',Result);
//DebugLn('gtkactivateCB ',TWinControl(Data).Name,':',TWinControl(Data).ClassName);
Result := CallBackDefaultReturn;
end;
@ -386,6 +386,24 @@ end;
{$Ifdef GTK1}
function gtktoggledCB( widget: PGtkWidget; data: gPointer): GBoolean; cdecl;
var
Mess : TLMessage;
begin
Result:= True;
EventTrace('toggled', data);
if LockOnChange(PgtkObject(Widget),0) > 0 then Exit;
Mess.Msg := LM_CHANGED;
Mess.Result := 0;
DeliverMessage(Data, Mess);
//DebugLn('gtktoggledCB ',TWinControl(Data).Name,':',TWinControl(Data).ClassName);
Result := CallBackDefaultReturn;
end;
function gtkDrawAfter(Widget: PGtkWidget; area: PGDKRectangle;
data: gPointer) : GBoolean; cdecl;
var
@ -3087,6 +3105,9 @@ end;
{ =============================================================================
$Log$
Revision 1.233 2004/05/30 14:02:30 mattias
implemented OnChange for TRadioButton, TCheckBox, TToggleBox and some more docking stuff
Revision 1.232 2004/05/22 14:35:32 mattias
fixed button return key

View File

@ -4489,6 +4489,8 @@ begin
else
if ALCLObject is TCustomMemo then
ConnectSenderSignal(gCore, 'changed', @gtkchanged_editbox)
else if ALCLObject is TCustomCheckbox then
ConnectSenderSignal(gObject, 'toggled', @gtktoggledCB)
else
ConnectSenderSignal(gObject, 'changed', @gtkchanged_editbox);
end;
@ -5111,6 +5113,11 @@ begin
Begin
SetCallback(LM_CLICKED, AGTKObject, ALCLObject);
End;
csRadioButton, csCheckBox, csToggleBox:
begin
SetCallback(LM_CHANGED, AGTKObject, ALCLObject);
end;
csCalendar:
Begin
@ -9204,6 +9211,9 @@ end;
{ =============================================================================
$Log$
Revision 1.506 2004/05/30 14:02:31 mattias
implemented OnChange for TRadioButton, TCheckBox, TToggleBox and some more docking stuff
Revision 1.505 2004/05/22 14:59:23 mattias
fixed multi update of TStatusBar

View File

@ -95,6 +95,7 @@ function gtkactivateCB(widget: PGtkWidget; data: gPointer): GBoolean; cdecl;
function gtkchangedCB( widget: PGtkWidget; data: gPointer): GBoolean; cdecl;
function gtkchanged_editbox( widget: PGtkWidget; data: gPointer): GBoolean; cdecl;
function gtkdaychanged(Widget: PGtkWidget; data: gPointer): GBoolean; cdecl;
function gtktoggledCB( widget: PGtkWidget; data: gPointer): GBoolean; cdecl;
{$IfNdef GTK2}
function gtkDrawAfter(Widget: PGtkWidget; area: PGDKRectangle;
data: gPointer): GBoolean; cdecl;

View File

@ -35,7 +35,7 @@ uses
////////////////////////////////////////////////////
// StdCtrls,
////////////////////////////////////////////////////
WSStdCtrls, WSLCLClasses;
WSStdCtrls, WSLCLClasses, GtkInt;
type

View File

@ -773,8 +773,10 @@ type
FState: TCheckBoxState;
FShortCut : TLMShortcut;
procedure SetState(Value: TCheckBoxState);
function GetState : TCheckBoxState;
function GetState: TCheckBoxState;
procedure DoChange(var Msg); message LM_CHANGED;
protected
function RetrieveState: TCheckBoxState;
procedure InitializeWnd; override;
procedure Toggle; virtual;
function GetChecked: Boolean; override;
@ -786,8 +788,9 @@ type
public
property AllowGrayed: Boolean read FAllowGrayed write FAllowGrayed;
property State: TCheckBoxState read GetState write SetState;
published
property TabStop default true;
property UseOnChange;
property OnChange;
end;
{$IFNDef NewCheckBox}
@ -800,19 +803,20 @@ type
constructor Create(AOwner: TComponent); override;
published
property Action;
property AllowGrayed;
property Align;
property AllowGrayed;
property Anchors;
property AutoSize;
property Caption;
property Constraints;
property Checked;
property Constraints;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property Hint;
property OnChange;
property OnChangeBounds;
property OnClick;
property OnDragDrop;
property OnDragOver;
@ -822,7 +826,6 @@ type
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnChangeBounds;
property OnResize;
property OnStartDrag;
property ParentShowHint;
@ -928,18 +931,12 @@ type
property Anchors;
property Caption;
property Checked;
property State;
property Visible;
property Enabled;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property Hint;
property ParentShowHint;
property PopupMenu;
property ShowHint;
property TabOrder;
property TabStop;
property OnChange;
property OnClick;
property OnDragDrop;
property OnDragOver;
@ -950,6 +947,14 @@ type
property OnMouseMove;
property OnMouseUp;
property OnStartDrag;
property ParentShowHint;
property PopupMenu;
property ShowHint;
property State;
property TabOrder;
property TabStop;
property UseOnChange;
property Visible;
end;
@ -963,24 +968,19 @@ type
constructor Create(TheOwner: TComponent); override;
published
property Align;
property AllowGrayed;
property Anchors;
property AutoSize;
property AllowGrayed;
property Caption;
property Checked;
property Constraints;
property State;
property Visible;
property Enabled;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property Hint;
property ParentShowHint;
property PopupMenu;
property ShowHint;
property TabOrder;
property TabStop;
property OnChange;
property OnChangeBounds;
property OnClick;
property OnDragDrop;
property OnDragOver;
@ -988,13 +988,20 @@ type
property OnEnter;
property OnExit;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnMouseEnter;
property OnMouseLeave;
property OnChangeBounds;
property OnMouseMove;
property OnMouseUp;
property OnResize;
property OnStartDrag;
property ParentShowHint;
property PopupMenu;
property ShowHint;
property State;
property TabOrder;
property TabStop;
property UseOnChange;
property Visible;
end;
@ -1549,6 +1556,9 @@ end.
{ =============================================================================
$Log$
Revision 1.146 2004/05/30 14:02:30 mattias
implemented OnChange for TRadioButton, TCheckBox, TToggleBox and some more docking stuff
Revision 1.145 2004/05/21 18:34:44 mattias
readded protected TWinControl.BorderStyle