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