diff --git a/bepascal/source/bepascal/pas/src/be/app/messenger.pp b/bepascal/source/bepascal/pas/src/be/app/messenger.pp index c8117ea..a5b6eaa 100644 --- a/bepascal/source/bepascal/pas/src/be/app/messenger.pp +++ b/bepascal/source/bepascal/pas/src/be/app/messenger.pp @@ -49,8 +49,8 @@ type function BMessenger_Create(AObject : TBeObject) : TCplusObject; cdecl; external BePascalLibName name 'BMessenger_Create'; function BMessenger_Create_1(AObject : TBeObject; mime_sig : PChar; team : Team_id; var err : Status_t) : TCplusObject; cdecl; external BePascalLibName name 'BMessenger_Create_1'; -function BMessenger_Create_2(AObject : TBeObject; handler : BHandler; looper : BLooper; var err : Status_t) : TCplusObject; cdecl; external BePascalLibName name 'BMessenger_Create_2'; -function BMessenger_Create_3(AObject : TBeObject; from : BMessenger) : TCplusObject; cdecl; external BePascalLibName name 'BMessenger_Create_3'; +function BMessenger_Create_2(AObject : TBeObject; handler : TCplusObject; looper : TCplusObject; var err : Status_t) : TCplusObject; cdecl; external BePascalLibName name 'BMessenger_Create_2'; +function BMessenger_Create_3(AObject : TBeObject; from : TCplusObject) : TCplusObject; cdecl; external BePascalLibName name 'BMessenger_Create_3'; procedure BMessenger_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMessenger_Free'; function BMessenger_IsTargetLocal(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BMessenger_IsTargetLocal'; function BMessenger_Target(AObject : TCPlusObject; looper : TCplusObject) : BHandler; cdecl; external BePascalLibName name 'BMessenger_Target'; @@ -96,7 +96,15 @@ end; constructor BMessenger.Create(handler : BHandler; looper : BLooper; var err : Status_t); begin - CPlusObject := BMessenger_Create_2(Self, handler, looper, err); + if Assigned(handler) and Assigned(looper) then + CPlusObject := BMessenger_Create_2(Self, handler.CPlusObject, + looper.CPlusObject, err) + else if Assigned(handler) and not(Assigned(looper)) then + CPlusObject := BMessenger_Create_2(Self, handler.CPlusObject, + nil, err) + else if not(Assigned(handler)) and Assigned(looper) then + CPlusObject := BMessenger_Create_2(Self, nil, looper.CPlusObject, + err) end; constructor BMessenger.Create(from : BMessenger); diff --git a/bepascal/source/bepascal/pas/src/be/interface/bitmap.pp b/bepascal/source/bepascal/pas/src/be/interface/bitmap.pp index 3bf0080..d7105c0 100644 --- a/bepascal/source/bepascal/pas/src/be/interface/bitmap.pp +++ b/bepascal/source/bepascal/pas/src/be/interface/bitmap.pp @@ -45,9 +45,11 @@ type BBitmap = class(BArchivable) private public + // OCO B_MAIN_SCREEN_ID is a record. It is not possible to assign a record + // as a default value in fpc 1.9.5. constructor Create(_bounds : BRect; flags : Longword; depth : color_space; - bytesPerRow_ : Longint {$ifndef VER1_0}= B_ANY_BYTES_PER_ROW{$endif}; - screenID : screen_id {$ifndef VER1_0}= B_MAIN_SCREEN_ID{$endif}); + bytesPerRow_ : Longint (*{$ifndef VER1_0}= B_ANY_BYTES_PER_ROW{$endif}*); + screenID : screen_id (*{$ifndef VER1_0}= B_MAIN_SCREEN_ID{$endif}*)); constructor Create(_bounds : BRect; depth : color_space; accepts_views : Boolean {$ifndef VER1_0}= false{$endif}; need_contiguous : Boolean {$ifndef VER1_0}= false{$endif}); @@ -341,4 +343,4 @@ begin Result := BBitmap_Perform(CPlusObject, d, arg); end; -end. \ No newline at end of file +end. diff --git a/bepascal/source/bepascal/pas/src/be/interface/view.pp b/bepascal/source/bepascal/pas/src/be/interface/view.pp index 03e1d15..d372316 100644 --- a/bepascal/source/bepascal/pas/src/be/interface/view.pp +++ b/bepascal/source/bepascal/pas/src/be/interface/view.pp @@ -455,9 +455,11 @@ type BBitmap = class(BArchivable) private public + // OCO B_MAIN_SCREEN_ID is a record. It is not possible to assign a record + // as a default value in fpc 1.9.5. constructor Create(_bounds : BRect; flags : Longword; depth : color_space; - bytesPerRow_ : Longint {$ifndef VER1_0}= B_ANY_BYTES_PER_ROW{$endif}; - screenID : screen_id {$ifndef VER1_0}= B_MAIN_SCREEN_ID{$endif}); + bytesPerRow_ : Longint (*{$ifndef VER1_0}= B_ANY_BYTES_PER_ROW{$endif}*); + screenID : screen_id (*{$ifndef VER1_0}= B_MAIN_SCREEN_ID{$endif}*)); constructor Create(_bounds : BRect; depth : color_space; accepts_views : Boolean {$ifndef VER1_0}= false{$endif}; need_contiguous : Boolean {$ifndef VER1_0}= false{$endif});