added SysKey messages to gtk intf and LCL

git-svn-id: trunk@6312 -
This commit is contained in:
mattias 2004-11-29 01:12:36 +00:00
parent 83f7725cc0
commit 2679c1cd94
3 changed files with 106 additions and 38 deletions

View File

@ -1415,15 +1415,21 @@ type
procedure WMExit(var Message: TLMExit); message LM_EXIT; procedure WMExit(var Message: TLMExit); message LM_EXIT;
procedure WMMouseWheel(var Message: TLMMouseEvent); message LM_MOUSEWHEEL; procedure WMMouseWheel(var Message: TLMMouseEvent); message LM_MOUSEWHEEL;
procedure WMKeyDown(var Message: TLMKeyDown); message LM_KEYDOWN; procedure WMKeyDown(var Message: TLMKeyDown); message LM_KEYDOWN;
procedure WMSysKeyDown(var Message: TLMKeyDown); message LM_SYSKEYDOWN;
procedure WMKeyUp(var Message: TLMKeyUp); message LM_KEYUP; procedure WMKeyUp(var Message: TLMKeyUp); message LM_KEYUP;
procedure WMSysKeyUp(var Message: TLMKeyUp); message LM_SYSKEYUP;
procedure WMChar(var Message: TLMChar); message LM_CHAR; procedure WMChar(var Message: TLMChar); message LM_CHAR;
procedure WMSysChar(var Message: TLMChar); message LM_SYSCHAR;
procedure WMPaint(var Msg: TLMPaint); message LM_PAINT; procedure WMPaint(var Msg: TLMPaint); message LM_PAINT;
procedure WMDestroy(var Message: TLMDestroy); message LM_DESTROY; procedure WMDestroy(var Message: TLMDestroy); message LM_DESTROY;
procedure WMMove(var Message: TLMMove); message LM_MOVE; procedure WMMove(var Message: TLMMove); message LM_MOVE;
procedure WMSize(var Message: TLMSize); message LM_SIZE; procedure WMSize(var Message: TLMSize); message LM_SIZE;
procedure CNKeyDown(var Message: TLMKeyDown); message CN_KEYDOWN; procedure CNKeyDown(var Message: TLMKeyDown); message CN_KEYDOWN;
procedure CNSysKeyDown(var Message: TLMKeyDown); message CN_SYSKEYDOWN;
procedure CNKeyUp(var Message: TLMKeyUp); message CN_KEYUP; procedure CNKeyUp(var Message: TLMKeyUp); message CN_KEYUP;
procedure CNSysKeyUp(var Message: TLMKeyUp); message CN_SYSKEYUP;
procedure CNChar(var Message: TLMKeyUp); message CN_CHAR; procedure CNChar(var Message: TLMKeyUp); message CN_CHAR;
procedure CNSysChar(var Message: TLMKeyUp); message CN_SYSCHAR;
protected protected
// drag and drop // drag and drop
procedure DoAddDockClient(Client: TControl; const ARect: TRect); dynamic; procedure DoAddDockClient(Client: TControl; const ARect: TRect); dynamic;
@ -1447,6 +1453,7 @@ type
function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; dynamic; function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; dynamic;
function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; dynamic; function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; dynamic;
function DoKeyDown(var Message: TLMKey): Boolean; function DoKeyDown(var Message: TLMKey): Boolean;
function DoRemainginKeyDown(var Message: TLMKeyDown): Boolean;
function DoKeyPress(var Message: TLMKey): Boolean; function DoKeyPress(var Message: TLMKey): Boolean;
function DoUTF8KeyPress(var UTF8Key: TUTF8Char): boolean; dynamic; function DoUTF8KeyPress(var UTF8Key: TUTF8Char): boolean; dynamic;
function DoKeyUp(var Message: TLMKey): Boolean; function DoKeyUp(var Message: TLMKey): Boolean;
@ -2496,6 +2503,9 @@ end.
{ ============================================================================= { =============================================================================
$Log$ $Log$
Revision 1.257 2004/11/29 01:12:36 mattias
added SysKey messages to gtk intf and LCL
Revision 1.256 2004/11/05 22:08:53 mattias Revision 1.256 2004/11/05 22:08:53 mattias
implemented auto sizing: child to parent sizing implemented auto sizing: child to parent sizing

View File

@ -2304,6 +2304,39 @@ begin
Result := False; Result := False;
end; end;
{------------------------------------------------------------------------------
TWinControl DoRemainginKeyDown
Returns True if key handled
------------------------------------------------------------------------------}
function TWinControl.DoRemainginKeyDown(var Message: TLMKeyDown): Boolean;
var
ShiftState: TShiftState;
begin
Result:=true;
ShiftState := KeyDataToShiftState(Message.KeyData);
// handle LCL special keys
ControlKeyDown(Message.CharCode,ShiftState);
if Message.CharCode=VK_UNKNOWN then exit;
//DebugLn('TWinControl.WMKeyDown ',Name,':',ClassName);
if not (csNoStdEvents in ControlStyle) then
begin
KeyDownAfterInterface(Message.CharCode, ShiftState);
if Message.CharCode=VK_UNKNOWN then exit;
// Note: Message.CharCode can now be different or even 0
end;
// let application handle the remaining key
if Application<>nil then
Application.NotifyKeyDownHandler(Self, Message.CharCode, ShiftState);
if Message.CharCode = VK_UNKNOWN then Exit;
Result := False;
end;
{------------------------------------------------------------------------------ {------------------------------------------------------------------------------
TWinControl DoKeyPress TWinControl DoKeyPress
@ -3180,6 +3213,22 @@ begin
if not DoKeyDown(Message) then {inherited}; // there is nothing to inherit if not DoKeyDown(Message) then {inherited}; // there is nothing to inherit
end; end;
{------------------------------------------------------------------------------
procedure TWinControl.CNSysKeyDown(var Message: TLMKeyDown);
------------------------------------------------------------------------------}
procedure TWinControl.CNSysKeyDown(var Message: TLMKeyDown);
begin
if not DoKeyDown(Message) then {inherited}; // there is nothing to inherit
end;
{------------------------------------------------------------------------------
procedure TWinControl.CNSysKeyUp(var Message: TLMKeyUp);
------------------------------------------------------------------------------}
procedure TWinControl.CNSysKeyUp(var Message: TLMKeyUp);
begin
end;
{------------------------------------------------------------------------------ {------------------------------------------------------------------------------
Method: TWinControl.CNKeyUp Method: TWinControl.CNKeyUp
Params: Msg: The message Params: Msg: The message
@ -3198,7 +3247,7 @@ end;
Returns: nothing Returns: nothing
event handler. event handler.
WMChar is sent by the interface befor it has handled the keypress by itself. CNChar is sent by the interface before it has handled the keypress itself.
------------------------------------------------------------------------------} ------------------------------------------------------------------------------}
procedure TWinControl.CNChar(var Message: TLMKeyUp); procedure TWinControl.CNChar(var Message: TLMKeyUp);
var var
@ -3224,6 +3273,11 @@ begin
end; end;
end; end;
procedure TWinControl.CNSysChar(var Message: TLMKeyUp);
begin
if not DoKeyPress(Message) then {inherited}; // there is nothing to inherit
end;
{------------------------------------------------------------------------------ {------------------------------------------------------------------------------
Method: TWinControl.WMNofity Method: TWinControl.WMNofity
Params: Msg: The message Params: Msg: The message
@ -3324,6 +3378,11 @@ begin
Assert(False, Format('Trace:[TWinControl.WMChar] %s', [ClassName])); Assert(False, Format('Trace:[TWinControl.WMChar] %s', [ClassName]));
end; end;
procedure TWinControl.WMSysChar(var Message: TLMChar);
begin
end;
{------------------------------------------------------------------------------ {------------------------------------------------------------------------------
Method: TWinControl.WMKeyDown Method: TWinControl.WMKeyDown
Params: Msg: The message Params: Msg: The message
@ -3332,27 +3391,21 @@ end;
Event handler for keys not handled by the interface Event handler for keys not handled by the interface
------------------------------------------------------------------------------} ------------------------------------------------------------------------------}
Procedure TWinControl.WMKeyDown(Var Message: TLMKeyDown); Procedure TWinControl.WMKeyDown(Var Message: TLMKeyDown);
var
ShiftState: TShiftState;
begin begin
ShiftState := KeyDataToShiftState(Message.KeyData); DoRemainginKeyDown(Message);
end;
// handle LCL special keys procedure TWinControl.WMSysKeyDown(var Message: TLMKeyDown);
ControlKeyDown(Message.CharCode,ShiftState); begin
if Message.CharCode=VK_UNKNOWN then exit; DoRemainginKeyDown(Message);
end;
//DebugLn('TWinControl.WMKeyDown ',Name,':',ClassName); {------------------------------------------------------------------------------
if not (csNoStdEvents in ControlStyle) then procedure TWinControl.WMSysKeyUp(var Message: TLMKeyUp);
begin ------------------------------------------------------------------------------}
KeyDownAfterInterface(Message.CharCode, ShiftState); procedure TWinControl.WMSysKeyUp(var Message: TLMKeyUp);
if Message.CharCode=VK_UNKNOWN then exit; begin
// Note: Message.CharCode can now be different or even 0 if not DoKeyUp(Message) then {inherited}; // there is nothing to inherit
end;
// let application handle the remaining key
if Application<>nil then
Application.NotifyKeyDownHandler(Self, Message.CharCode, ShiftState);
if Message.CharCode = VK_UNKNOWN then Exit;
end; end;
{------------------------------------------------------------------------------ {------------------------------------------------------------------------------
@ -3364,7 +3417,6 @@ end;
------------------------------------------------------------------------------} ------------------------------------------------------------------------------}
Procedure TWinControl.WMKeyUp(Var Message: TLMKeyUp); Procedure TWinControl.WMKeyUp(Var Message: TLMKeyUp);
Begin Begin
Assert(False, Format('Trace:[TWinControl.WMKeyUp] %s', [ClassName]));
if not DoKeyUp(Message) then {inherited}; // there is nothing to inherit if not DoKeyUp(Message) then {inherited}; // there is nothing to inherit
end; end;
@ -4128,6 +4180,9 @@ end;
{ ============================================================================= { =============================================================================
$Log$ $Log$
Revision 1.291 2004/11/29 01:12:36 mattias
added SysKey messages to gtk intf and LCL
Revision 1.290 2004/11/28 01:03:26 mattias Revision 1.290 2004/11/28 01:03:26 mattias
do not send OnExit/OnEnter during destroy, design or loading do not send OnExit/OnEnter during destroy, design or loading

View File

@ -2098,14 +2098,14 @@ begin
Msg.CharCode := VKey.VKey; Msg.CharCode := VKey.VKey;
if BeforeEvent then begin if BeforeEvent then begin
//if SysKey then if SysKey then
// Msg.msg := CN_SYSKEYUP Msg.msg := CN_SYSKEYUP
//else else
Msg.msg := CN_KEYUP; Msg.msg := CN_KEYUP;
end else begin end else begin
//if SysKey then if SysKey then
// Msg.msg := LM_SYSKEYUP Msg.msg := LM_SYSKEYUP
//else else
Msg.msg := LM_KEYUP; Msg.msg := LM_KEYUP;
end; end;
@ -2134,14 +2134,14 @@ begin
Msg.CharCode := VKey.VKey; Msg.CharCode := VKey.VKey;
if BeforeEvent then begin if BeforeEvent then begin
//if SysKey then if SysKey then
// Msg.msg := CN_SYSKEYDOWN Msg.msg := CN_SYSKEYDOWN
//else else
Msg.msg := CN_KEYDOWN; Msg.msg := CN_KEYDOWN;
end else begin end else begin
//if SysKey then if SysKey then
// Msg.msg := LM_SYSKEYDOWN Msg.msg := LM_SYSKEYDOWN
//else else
Msg.msg := LM_KEYDOWN; Msg.msg := LM_KEYDOWN;
end; end;
@ -2185,14 +2185,14 @@ begin
Msg.KeyData := CommonKeyData; Msg.KeyData := CommonKeyData;
if BeforeEvent then begin if BeforeEvent then begin
//if SysKey then if SysKey then
// Msg.msg := CN_SYSCHAR Msg.msg := CN_SYSCHAR
//else else
Msg.msg := CN_CHAR Msg.msg := CN_CHAR
end else begin end else begin
//if SysKey then if SysKey then
// Msg.msg := LM_SYSCHAR Msg.msg := LM_SYSCHAR
//else else
Msg.msg := LM_CHAR; Msg.msg := LM_CHAR;
end; end;
@ -7884,6 +7884,9 @@ end;
{ ============================================================================= { =============================================================================
$Log$ $Log$
Revision 1.323 2004/11/29 01:12:36 mattias
added SysKey messages to gtk intf and LCL
Revision 1.322 2004/11/28 00:55:44 mattias Revision 1.322 2004/11/28 00:55:44 mattias
deactivated sending SYSKey messages in gtk intf - they are not used anyway deactivated sending SYSKey messages in gtk intf - they are not used anyway