mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-15 12:49:24 +02:00
added SysKey messages to gtk intf and LCL
git-svn-id: trunk@6312 -
This commit is contained in:
parent
83f7725cc0
commit
2679c1cd94
@ -1415,15 +1415,21 @@ type
|
||||
procedure WMExit(var Message: TLMExit); message LM_EXIT;
|
||||
procedure WMMouseWheel(var Message: TLMMouseEvent); message LM_MOUSEWHEEL;
|
||||
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 WMSysKeyUp(var Message: TLMKeyUp); message LM_SYSKEYUP;
|
||||
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 WMDestroy(var Message: TLMDestroy); message LM_DESTROY;
|
||||
procedure WMMove(var Message: TLMMove); message LM_MOVE;
|
||||
procedure WMSize(var Message: TLMSize); message LM_SIZE;
|
||||
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 CNSysKeyUp(var Message: TLMKeyUp); message CN_SYSKEYUP;
|
||||
procedure CNChar(var Message: TLMKeyUp); message CN_CHAR;
|
||||
procedure CNSysChar(var Message: TLMKeyUp); message CN_SYSCHAR;
|
||||
protected
|
||||
// drag and drop
|
||||
procedure DoAddDockClient(Client: TControl; const ARect: TRect); dynamic;
|
||||
@ -1447,6 +1453,7 @@ type
|
||||
function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; dynamic;
|
||||
function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; dynamic;
|
||||
function DoKeyDown(var Message: TLMKey): Boolean;
|
||||
function DoRemainginKeyDown(var Message: TLMKeyDown): Boolean;
|
||||
function DoKeyPress(var Message: TLMKey): Boolean;
|
||||
function DoUTF8KeyPress(var UTF8Key: TUTF8Char): boolean; dynamic;
|
||||
function DoKeyUp(var Message: TLMKey): Boolean;
|
||||
@ -2496,6 +2503,9 @@ end.
|
||||
{ =============================================================================
|
||||
|
||||
$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
|
||||
implemented auto sizing: child to parent sizing
|
||||
|
||||
|
@ -2304,6 +2304,39 @@ begin
|
||||
Result := False;
|
||||
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
|
||||
|
||||
@ -3180,6 +3213,22 @@ begin
|
||||
if not DoKeyDown(Message) then {inherited}; // there is nothing to inherit
|
||||
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
|
||||
Params: Msg: The message
|
||||
@ -3198,7 +3247,7 @@ end;
|
||||
Returns: nothing
|
||||
|
||||
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);
|
||||
var
|
||||
@ -3224,6 +3273,11 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TWinControl.CNSysChar(var Message: TLMKeyUp);
|
||||
begin
|
||||
if not DoKeyPress(Message) then {inherited}; // there is nothing to inherit
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Method: TWinControl.WMNofity
|
||||
Params: Msg: The message
|
||||
@ -3324,6 +3378,11 @@ begin
|
||||
Assert(False, Format('Trace:[TWinControl.WMChar] %s', [ClassName]));
|
||||
end;
|
||||
|
||||
procedure TWinControl.WMSysChar(var Message: TLMChar);
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Method: TWinControl.WMKeyDown
|
||||
Params: Msg: The message
|
||||
@ -3332,27 +3391,21 @@ end;
|
||||
Event handler for keys not handled by the interface
|
||||
------------------------------------------------------------------------------}
|
||||
Procedure TWinControl.WMKeyDown(Var Message: TLMKeyDown);
|
||||
var
|
||||
ShiftState: TShiftState;
|
||||
begin
|
||||
ShiftState := KeyDataToShiftState(Message.KeyData);
|
||||
DoRemainginKeyDown(Message);
|
||||
end;
|
||||
|
||||
// handle LCL special keys
|
||||
ControlKeyDown(Message.CharCode,ShiftState);
|
||||
if Message.CharCode=VK_UNKNOWN then exit;
|
||||
procedure TWinControl.WMSysKeyDown(var Message: TLMKeyDown);
|
||||
begin
|
||||
DoRemainginKeyDown(Message);
|
||||
end;
|
||||
|
||||
//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;
|
||||
{------------------------------------------------------------------------------
|
||||
procedure TWinControl.WMSysKeyUp(var Message: TLMKeyUp);
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TWinControl.WMSysKeyUp(var Message: TLMKeyUp);
|
||||
begin
|
||||
if not DoKeyUp(Message) then {inherited}; // there is nothing to inherit
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
@ -3364,7 +3417,6 @@ end;
|
||||
------------------------------------------------------------------------------}
|
||||
Procedure TWinControl.WMKeyUp(Var Message: TLMKeyUp);
|
||||
Begin
|
||||
Assert(False, Format('Trace:[TWinControl.WMKeyUp] %s', [ClassName]));
|
||||
if not DoKeyUp(Message) then {inherited}; // there is nothing to inherit
|
||||
end;
|
||||
|
||||
@ -4128,6 +4180,9 @@ end;
|
||||
{ =============================================================================
|
||||
|
||||
$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
|
||||
do not send OnExit/OnEnter during destroy, design or loading
|
||||
|
||||
|
@ -2098,14 +2098,14 @@ begin
|
||||
|
||||
Msg.CharCode := VKey.VKey;
|
||||
if BeforeEvent then begin
|
||||
//if SysKey then
|
||||
// Msg.msg := CN_SYSKEYUP
|
||||
//else
|
||||
if SysKey then
|
||||
Msg.msg := CN_SYSKEYUP
|
||||
else
|
||||
Msg.msg := CN_KEYUP;
|
||||
end else begin
|
||||
//if SysKey then
|
||||
// Msg.msg := LM_SYSKEYUP
|
||||
//else
|
||||
if SysKey then
|
||||
Msg.msg := LM_SYSKEYUP
|
||||
else
|
||||
Msg.msg := LM_KEYUP;
|
||||
end;
|
||||
|
||||
@ -2134,14 +2134,14 @@ begin
|
||||
Msg.CharCode := VKey.VKey;
|
||||
|
||||
if BeforeEvent then begin
|
||||
//if SysKey then
|
||||
// Msg.msg := CN_SYSKEYDOWN
|
||||
//else
|
||||
if SysKey then
|
||||
Msg.msg := CN_SYSKEYDOWN
|
||||
else
|
||||
Msg.msg := CN_KEYDOWN;
|
||||
end else begin
|
||||
//if SysKey then
|
||||
// Msg.msg := LM_SYSKEYDOWN
|
||||
//else
|
||||
if SysKey then
|
||||
Msg.msg := LM_SYSKEYDOWN
|
||||
else
|
||||
Msg.msg := LM_KEYDOWN;
|
||||
end;
|
||||
|
||||
@ -2185,14 +2185,14 @@ begin
|
||||
Msg.KeyData := CommonKeyData;
|
||||
|
||||
if BeforeEvent then begin
|
||||
//if SysKey then
|
||||
// Msg.msg := CN_SYSCHAR
|
||||
//else
|
||||
if SysKey then
|
||||
Msg.msg := CN_SYSCHAR
|
||||
else
|
||||
Msg.msg := CN_CHAR
|
||||
end else begin
|
||||
//if SysKey then
|
||||
// Msg.msg := LM_SYSCHAR
|
||||
//else
|
||||
if SysKey then
|
||||
Msg.msg := LM_SYSCHAR
|
||||
else
|
||||
Msg.msg := LM_CHAR;
|
||||
end;
|
||||
|
||||
@ -7884,6 +7884,9 @@ end;
|
||||
{ =============================================================================
|
||||
|
||||
$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
|
||||
deactivated sending SYSKey messages in gtk intf - they are not used anyway
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user