mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-07-04 09:59:24 +02:00
Qt:
- fix problem with grabbing mouse capture for TCustomControl - remove toolbar and toolbutton implementation into ifdefs since ToolBar and ToolButton are TCustomControl descendants and fully implemented by LCL means git-svn-id: trunk@12148 -
This commit is contained in:
parent
60d836ccf8
commit
55a9f353b2
@ -93,7 +93,7 @@ procedure TToolButton.MouseUp(Button: TMouseButton; Shift: TShiftState;
|
|||||||
X, Y: Integer);
|
X, Y: Integer);
|
||||||
var DropDownMenuDropped:boolean;
|
var DropDownMenuDropped:boolean;
|
||||||
begin
|
begin
|
||||||
//DebugLn('TToolButton.MouseUp ',Name,':',ClassName,' ',ord(Button),' ',X,',',Y);
|
//DebugLn('TToolButton.MouseUp ',Name,':',ClassName,' ',dbgs(ord(Button)),' ',dbgs(X),',',dbgs(Y));
|
||||||
if (Button=mbLeft) and (tbfPressed in FToolButtonFlags) then begin
|
if (Button=mbLeft) and (tbfPressed in FToolButtonFlags) then begin
|
||||||
Exclude(FToolButtonFlags,tbfPressed);
|
Exclude(FToolButtonFlags,tbfPressed);
|
||||||
Invalidate;
|
Invalidate;
|
||||||
@ -174,6 +174,7 @@ begin
|
|||||||
// calculate button area(s)
|
// calculate button area(s)
|
||||||
ButtonRect:=PaintRect;
|
ButtonRect:=PaintRect;
|
||||||
FLastButtonDrawFlags:=GetButtonDrawFlags;
|
FLastButtonDrawFlags:=GetButtonDrawFlags;
|
||||||
|
|
||||||
if (FLastButtonDrawFlags and DFCS_PUSHED) <> 0 then
|
if (FLastButtonDrawFlags and DFCS_PUSHED) <> 0 then
|
||||||
OffsetRect(ButtonRect, 1, 1);
|
OffsetRect(ButtonRect, 1, 1);
|
||||||
if Style=tbsDropDown then begin
|
if Style=tbsDropDown then begin
|
||||||
@ -360,9 +361,10 @@ begin
|
|||||||
//DebugLn('TToolButton.MouseLeave ',Name);
|
//DebugLn('TToolButton.MouseLeave ',Name);
|
||||||
inherited MouseLeave;
|
inherited MouseLeave;
|
||||||
SetMouseInControl(false);
|
SetMouseInControl(false);
|
||||||
if (not MouseCapture) and (tbfPressed in FToolButtonFlags) then begin
|
if (not MouseCapture) and (tbfPressed in FToolButtonFlags) then
|
||||||
Invalidate;
|
begin
|
||||||
Exclude(FToolButtonFlags,tbfPressed);
|
Exclude(FToolButtonFlags,tbfPressed);
|
||||||
|
Invalidate;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -79,6 +79,7 @@ type
|
|||||||
FParams: TCreateParams;
|
FParams: TCreateParams;
|
||||||
FDefaultCursor: QCursorH;
|
FDefaultCursor: QCursorH;
|
||||||
FKeysToEat: TByteSet;
|
FKeysToEat: TByteSet;
|
||||||
|
FText: WideString;
|
||||||
|
|
||||||
function GetProps(const AnIndex: String): pointer;
|
function GetProps(const AnIndex: String): pointer;
|
||||||
function GetWidget: QWidgetH;
|
function GetWidget: QWidgetH;
|
||||||
@ -120,7 +121,7 @@ type
|
|||||||
procedure SlotHover(Sender: QObjectH; Event: QEventH); cdecl;
|
procedure SlotHover(Sender: QObjectH; Event: QEventH); cdecl;
|
||||||
function SlotKey(Sender: QObjectH; Event: QEventH): Boolean; cdecl;
|
function SlotKey(Sender: QObjectH; Event: QEventH): Boolean; cdecl;
|
||||||
procedure SlotMouse(Sender: QObjectH; Event: QEventH); cdecl;
|
procedure SlotMouse(Sender: QObjectH; Event: QEventH); cdecl;
|
||||||
procedure SlotMouseEnter(Event: QEventH); cdecl;
|
procedure SlotMouseEnter(Sender: QObjectH; Event: QEventH); cdecl;
|
||||||
procedure SlotMouseMove(Event: QEventH); cdecl;
|
procedure SlotMouseMove(Event: QEventH); cdecl;
|
||||||
procedure SlotMouseWheel(Sender: QObjectH; Event: QEventH); cdecl;
|
procedure SlotMouseWheel(Sender: QObjectH; Event: QEventH); cdecl;
|
||||||
procedure SlotMove(Event: QEventH); cdecl;
|
procedure SlotMove(Event: QEventH); cdecl;
|
||||||
@ -147,8 +148,8 @@ type
|
|||||||
function getGeometry: TRect; virtual;
|
function getGeometry: TRect; virtual;
|
||||||
function getVisible: Boolean; virtual;
|
function getVisible: Boolean; virtual;
|
||||||
function getText: WideString; virtual;
|
function getText: WideString; virtual;
|
||||||
procedure grabMouse;
|
procedure grabMouse; virtual;
|
||||||
function hasFocus: Boolean;
|
function hasFocus: Boolean; virtual;
|
||||||
procedure lowerWidget;
|
procedure lowerWidget;
|
||||||
procedure move(ANewLeft, ANewTop: Integer);
|
procedure move(ANewLeft, ANewTop: Integer);
|
||||||
procedure raiseWidget;
|
procedure raiseWidget;
|
||||||
@ -273,6 +274,8 @@ type
|
|||||||
function verticalScrollBar: TQtScrollBar;
|
function verticalScrollBar: TQtScrollBar;
|
||||||
function viewport: TQtWidget;
|
function viewport: TQtWidget;
|
||||||
function getClientBounds: TRect; override;
|
function getClientBounds: TRect; override;
|
||||||
|
procedure grabMouse; override;
|
||||||
|
function hasFocus: Boolean; override;
|
||||||
procedure SetColor(const Value: PQColor); override;
|
procedure SetColor(const Value: PQColor); override;
|
||||||
procedure setCornerWidget(AWidget: TQtWidget);
|
procedure setCornerWidget(AWidget: TQtWidget);
|
||||||
procedure setHorizontalScrollBar(AScrollBar: TQtScrollBar);
|
procedure setHorizontalScrollBar(AScrollBar: TQtScrollBar);
|
||||||
@ -955,13 +958,11 @@ type
|
|||||||
TQtPage = class(TQtWidget)
|
TQtPage = class(TQtWidget)
|
||||||
protected
|
protected
|
||||||
FIcon: QIconH;
|
FIcon: QIconH;
|
||||||
FText: WideString;
|
|
||||||
function CreateWidget(const AParams: TCreateParams):QWidgetH; override;
|
function CreateWidget(const AParams: TCreateParams):QWidgetH; override;
|
||||||
public
|
public
|
||||||
function getIcon: QIconH;
|
function getIcon: QIconH;
|
||||||
function getIndex: Integer;
|
function getIndex: Integer;
|
||||||
function getTabWidget: QTabWidgetH;
|
function getTabWidget: QTabWidgetH;
|
||||||
function getText: WideString; override;
|
|
||||||
procedure setIcon(const AIcon: QIconH);
|
procedure setIcon(const AIcon: QIconH);
|
||||||
procedure setText(const W: WideString); override;
|
procedure setText(const W: WideString); override;
|
||||||
end;
|
end;
|
||||||
@ -1316,7 +1317,8 @@ begin
|
|||||||
Result := True;
|
Result := True;
|
||||||
end;
|
end;
|
||||||
QEventDestroy: SlotDestroy;
|
QEventDestroy: SlotDestroy;
|
||||||
QEventEnter: SlotMouseEnter(Event);
|
QEventEnter,
|
||||||
|
QEventLeave: SlotMouseEnter(Sender, Event);
|
||||||
QEventFocusIn: SlotFocus(Event, True);
|
QEventFocusIn: SlotFocus(Event, True);
|
||||||
QEventFocusOut:
|
QEventFocusOut:
|
||||||
begin
|
begin
|
||||||
@ -1337,7 +1339,6 @@ begin
|
|||||||
begin
|
begin
|
||||||
Result := SlotKey(Sender, Event) or (LCLObject is TCustomControl);
|
Result := SlotKey(Sender, Event) or (LCLObject is TCustomControl);
|
||||||
end;
|
end;
|
||||||
QEventLeave: SlotMouseEnter(Event);
|
|
||||||
|
|
||||||
QEventMouseButtonPress,
|
QEventMouseButtonPress,
|
||||||
QEventMouseButtonRelease,
|
QEventMouseButtonRelease,
|
||||||
@ -1797,7 +1798,7 @@ begin
|
|||||||
DeliverMessage(Msg);
|
DeliverMessage(Msg);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TQtWidget.SlotMouseEnter(Event: QEventH); cdecl;
|
procedure TQtWidget.SlotMouseEnter(Sender: QObjectH; Event: QEventH); cdecl;
|
||||||
var
|
var
|
||||||
Msg: TLMessage;
|
Msg: TLMessage;
|
||||||
begin
|
begin
|
||||||
@ -2189,7 +2190,7 @@ end;
|
|||||||
|
|
||||||
function TQtWidget.getText: WideString;
|
function TQtWidget.getText: WideString;
|
||||||
begin
|
begin
|
||||||
Result := '';
|
Result := FText;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TQtWidget.getClientBounds: TRect;
|
function TQtWidget.getClientBounds: TRect;
|
||||||
@ -2294,7 +2295,7 @@ end;
|
|||||||
|
|
||||||
procedure TQtWidget.setText(const W: WideString);
|
procedure TQtWidget.setText(const W: WideString);
|
||||||
begin
|
begin
|
||||||
// nothing
|
FText := W;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TQtWidget.setWindowFlags(_type: QtWindowFlags);
|
procedure TQtWidget.setWindowFlags(_type: QtWindowFlags);
|
||||||
@ -6403,6 +6404,16 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TQtAbstractScrollArea.grabMouse;
|
||||||
|
begin
|
||||||
|
viewport.grabMouse;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TQtAbstractScrollArea.hasFocus: Boolean;
|
||||||
|
begin
|
||||||
|
Result := inherited hasFocus or viewport.hasFocus;
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Function: TQtAbstractScrollArea.viewportNeeded
|
Function: TQtAbstractScrollArea.viewportNeeded
|
||||||
Params: None
|
Params: None
|
||||||
@ -6668,11 +6679,6 @@ begin
|
|||||||
Result := nil;
|
Result := nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TQtPage.getText: WideString;
|
|
||||||
begin
|
|
||||||
Result := FText;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TQtPage.setIcon(const AIcon: QIconH);
|
procedure TQtPage.setIcon(const AIcon: QIconH);
|
||||||
var
|
var
|
||||||
AParent: QTabWidgetH;
|
AParent: QTabWidgetH;
|
||||||
@ -6687,7 +6693,7 @@ procedure TQtPage.setText(const W: WideString);
|
|||||||
var
|
var
|
||||||
AParent: QTabWidgetH;
|
AParent: QTabWidgetH;
|
||||||
begin
|
begin
|
||||||
FText := W;
|
inherited setText(W);
|
||||||
AParent := getTabWidget;
|
AParent := getTabWidget;
|
||||||
if AParent <> nil then
|
if AParent <> nil then
|
||||||
QTabWidget_setTabText(AParent, getIndex, @W);
|
QTabWidget_setTabText(AParent, getIndex, @W);
|
||||||
|
@ -195,8 +195,10 @@ type
|
|||||||
private
|
private
|
||||||
protected
|
protected
|
||||||
public
|
public
|
||||||
|
{$ifdef WSToolBar}
|
||||||
class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): HWND; override;
|
class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): HWND; override;
|
||||||
class procedure SetColor(const AWinControl: TWinControl); override;
|
class procedure SetColor(const AWinControl: TWinControl); override;
|
||||||
|
{$endif}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TQtWSToolBar }
|
{ TQtWSToolBar }
|
||||||
@ -205,8 +207,10 @@ type
|
|||||||
private
|
private
|
||||||
protected
|
protected
|
||||||
public
|
public
|
||||||
|
{$ifdef WSToolBar}
|
||||||
class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): HWND; override;
|
class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): HWND; override;
|
||||||
class procedure SetColor(const AWinControl: TWinControl); override;
|
class procedure SetColor(const AWinControl: TWinControl); override;
|
||||||
|
{$endif}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TQtWSTrackBar }
|
{ TQtWSTrackBar }
|
||||||
@ -263,6 +267,7 @@ const
|
|||||||
|
|
||||||
{ TQtWSToolButton }
|
{ TQtWSToolButton }
|
||||||
|
|
||||||
|
{$ifdef WSToolBar}
|
||||||
class function TQtWSToolButton.CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): HWND;
|
class function TQtWSToolButton.CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): HWND;
|
||||||
var
|
var
|
||||||
QtToolButton: TQtToolButton;
|
QtToolButton: TQtToolButton;
|
||||||
@ -273,7 +278,6 @@ begin
|
|||||||
Result := THandle(QtToolButton);
|
Result := THandle(QtToolButton);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Method: TQtWSToolButton.SetColor
|
Method: TQtWSToolButton.SetColor
|
||||||
Params: None
|
Params: None
|
||||||
@ -335,6 +339,7 @@ begin
|
|||||||
// Set color of the widget to QColor
|
// Set color of the widget to QColor
|
||||||
TQtToolBar(AWinControl.Handle).SetColor(@QColor);
|
TQtToolBar(AWinControl.Handle).SetColor(@QColor);
|
||||||
end;
|
end;
|
||||||
|
{$endif}
|
||||||
|
|
||||||
{ TQtWSTrackBar }
|
{ TQtWSTrackBar }
|
||||||
|
|
||||||
@ -1281,10 +1286,12 @@ initialization
|
|||||||
RegisterWSComponent(TCustomProgressBar, TQtWSProgressBar);
|
RegisterWSComponent(TCustomProgressBar, TQtWSProgressBar);
|
||||||
// RegisterWSComponent(TCustomUpDown, TQtWSCustomUpDown);
|
// RegisterWSComponent(TCustomUpDown, TQtWSCustomUpDown);
|
||||||
// RegisterWSComponent(TCustomUpDown, TQtWSUpDown);
|
// RegisterWSComponent(TCustomUpDown, TQtWSUpDown);
|
||||||
RegisterWSComponent(TToolButton, TQtWSToolButton);
|
// RegisterWSComponent(TToolButton, TQtWSToolButton);
|
||||||
RegisterWSComponent(TToolBar, TQtWSToolBar);
|
// RegisterWSComponent(TToolBar, TQtWSToolBar);
|
||||||
// RegisterWSComponent(TCustomToolButton, TQtWSToolButton);
|
{$ifdef WSToolBar}
|
||||||
// RegisterWSComponent(TCustomToolBar, TQtWSToolBar);
|
RegisterWSComponent(TCustomToolButton, TQtWSToolButton);
|
||||||
|
RegisterWSComponent(TCustomToolBar, TQtWSToolBar);
|
||||||
|
{$endif}
|
||||||
RegisterWSComponent(TCustomTrackBar, TQtWSTrackBar);
|
RegisterWSComponent(TCustomTrackBar, TQtWSTrackBar);
|
||||||
// RegisterWSComponent(TCustomTreeView, TQtWSCustomTreeView);
|
// RegisterWSComponent(TCustomTreeView, TQtWSCustomTreeView);
|
||||||
// RegisterWSComponent(TCustomTreeView, TQtWSTreeView);
|
// RegisterWSComponent(TCustomTreeView, TQtWSTreeView);
|
||||||
|
Loading…
Reference in New Issue
Block a user