mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 19:29:39 +02:00
* structures bugfixes by Nils Sjoholm
This commit is contained in:
parent
754e2c0c1c
commit
bc1b1f3cdb
@ -215,7 +215,7 @@ Type
|
|||||||
pIntuiMessage = ^tIntuiMessage;
|
pIntuiMessage = ^tIntuiMessage;
|
||||||
tIntuiMessage = packed record
|
tIntuiMessage = packed record
|
||||||
ExecMessage : tMessage;
|
ExecMessage : tMessage;
|
||||||
Class_ : Longint;
|
IClass : Longint;
|
||||||
Code : Word;
|
Code : Word;
|
||||||
Qualifier : Word;
|
Qualifier : Word;
|
||||||
IAddress : Pointer;
|
IAddress : Pointer;
|
||||||
@ -280,27 +280,62 @@ Type
|
|||||||
MoreFlags : Longint;
|
MoreFlags : Longint;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
const
|
||||||
|
|
||||||
|
M_LNM = 20; { linefeed newline mode }
|
||||||
|
PMB_ASM = M_LNM + 1; { internal storage bit for AS flag }
|
||||||
|
PMB_AWM = PMB_ASM + 1; { internal storage bit for AW flag }
|
||||||
|
MAXTABS = 80;
|
||||||
|
IECLASS_MAX = $15;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
pKeyMap = ^tKeyMap;
|
||||||
|
tKeyMap = packed record
|
||||||
|
km_LoKeyMapTypes : Pointer;
|
||||||
|
km_LoKeyMap : Pointer;
|
||||||
|
km_LoCapsable : Pointer;
|
||||||
|
km_LoRepeatable : Pointer;
|
||||||
|
km_HiKeyMapTypes : Pointer;
|
||||||
|
km_HiKeyMap : Pointer;
|
||||||
|
km_HiCapsable : Pointer;
|
||||||
|
km_HiRepeatable : Pointer;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
pConUnit = ^tConUnit;
|
pConUnit = ^tConUnit;
|
||||||
tConUnit = packed record
|
tConUnit = packed record
|
||||||
cu_MP : tMsgPort;
|
cu_MP : tMsgPort;
|
||||||
|
{ ---- read only variables }
|
||||||
cu_Window : Pointer; { (WindowPtr) intuition window bound to this unit }
|
cu_Window : Pointer; { (WindowPtr) intuition window bound to this unit }
|
||||||
cu_XCP : Integer; { character position }
|
cu_XCP : Integer; { character position }
|
||||||
cu_YCP : Integer;
|
cu_YCP : Integer;
|
||||||
cu_XMax : Integer; { max character position }
|
cu_XMax : Integer; { max character position }
|
||||||
cu_YMax : Integer;
|
cu_YMax : Integer;
|
||||||
cu_XRSize : Integer; { character raster size }
|
cu_XRSize : Integer; { character raster size }
|
||||||
cu_YRSize : Integer;
|
cu_YRSize : Integer;
|
||||||
cu_XROrigin : Integer; { raster origin }
|
cu_XROrigin : Integer; { raster origin }
|
||||||
cu_YROrigin : Integer;
|
cu_YROrigin : Integer;
|
||||||
cu_XRExtant : Integer; { raster maxima }
|
cu_XRExtant : Integer; { raster maxima }
|
||||||
cu_YRExtant : Integer;
|
cu_YRExtant : Integer;
|
||||||
cu_XMinShrink : Integer; { smallest area intact from resize process }
|
cu_XMinShrink : Integer; { smallest area intact from resize process }
|
||||||
cu_YMinShrink : Integer;
|
cu_YMinShrink : Integer;
|
||||||
cu_XCCP : Integer; { cursor position }
|
cu_XCCP : Integer; { cursor position }
|
||||||
cu_YCCP : Integer;
|
cu_YCCP : Integer;
|
||||||
cu_KeyMapStruct : Pointer;
|
|
||||||
cu_TabStops : Array [0..80-1] of Word;
|
{ ---- read/write variables (writes must must be protected) }
|
||||||
|
{ ---- storage for AskKeyMap and SetKeyMap }
|
||||||
|
|
||||||
|
cu_KeyMapStruct : tKeyMap;
|
||||||
|
|
||||||
|
{ ---- tab stops }
|
||||||
|
|
||||||
|
cu_TabStops : Array [0..MAXTABS-1] of Word;
|
||||||
|
{ 0 at start, -1 at end of list }
|
||||||
|
|
||||||
|
{ ---- console rastport attributes }
|
||||||
|
|
||||||
cu_Mask : Shortint;
|
cu_Mask : Shortint;
|
||||||
cu_FgPen : Shortint;
|
cu_FgPen : Shortint;
|
||||||
cu_BgPen : Shortint;
|
cu_BgPen : Shortint;
|
||||||
@ -316,8 +351,12 @@ Type
|
|||||||
cu_TxWidth : Word;
|
cu_TxWidth : Word;
|
||||||
cu_TxBaseline : Word;
|
cu_TxBaseline : Word;
|
||||||
cu_TxSpacing : Word;
|
cu_TxSpacing : Word;
|
||||||
cu_Modes : Array [0..(22+7) div 8 - 1] of Byte;
|
|
||||||
cu_RawEvents : Array [0..($15+7) div 8 - 1] of Byte;
|
{ ---- console MODES and RAW EVENTS switches }
|
||||||
|
|
||||||
|
cu_Modes : Array [0..(PMB_AWM+7) div 8 - 1] of Byte;
|
||||||
|
{ one bit per mode }
|
||||||
|
cu_RawEvents : Array [0..(IECLASS_MAX+7) div 8 - 1] of Byte;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
const
|
const
|
||||||
@ -627,10 +666,10 @@ begin
|
|||||||
msg := WaitPort(win^.UserPort);
|
msg := WaitPort(win^.UserPort);
|
||||||
imsg := pIntuiMessage(GetMsg(win^.UserPort));
|
imsg := pIntuiMessage(GetMsg(win^.UserPort));
|
||||||
|
|
||||||
if (imsg^.Class_ = IDCMP_VANILLAKEY) then
|
if (imsg^.IClass = IDCMP_VANILLAKEY) then
|
||||||
key := char(imsg^.Code)
|
key := char(imsg^.Code)
|
||||||
else
|
else
|
||||||
if (imsg^.Class_ = IDCMP_RAWKEY) then
|
if (imsg^.IClass = IDCMP_RAWKEY) then
|
||||||
key := char(imsg^.Code);
|
key := char(imsg^.Code);
|
||||||
|
|
||||||
ReplyMsg(pMessage(imsg));
|
ReplyMsg(pMessage(imsg));
|
||||||
@ -676,7 +715,7 @@ begin
|
|||||||
msg := WaitPort(win^.UserPort);
|
msg := WaitPort(win^.UserPort);
|
||||||
imsg := pIntuiMessage(GetMsg(win^.UserPort));
|
imsg := pIntuiMessage(GetMsg(win^.UserPort));
|
||||||
|
|
||||||
if (imsg^.Class_ = IDCMP_VANILLAKEY) or (imsg^.Class_ = IDCMP_RAWKEY) then
|
if (imsg^.IClass = IDCMP_VANILLAKEY) or (imsg^.IClass = IDCMP_RAWKEY) then
|
||||||
Begin
|
Begin
|
||||||
ispressed := true;
|
ispressed := true;
|
||||||
KeyPress := char(imsg^.Code)
|
KeyPress := char(imsg^.Code)
|
||||||
|
Loading…
Reference in New Issue
Block a user