mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-24 01:09:39 +02:00
Qt Message box implementation by Philip Hess.
git-svn-id: trunk@10653 -
This commit is contained in:
parent
7c526a7dfe
commit
25344cd643
@ -62,4 +62,78 @@ begin
|
||||
Desc.AlphaShift := 0;
|
||||
end;
|
||||
|
||||
function TQtWidgetSet.PromptUser(const DialogCaption : string;
|
||||
const DialogMessage : string;
|
||||
DialogType : LongInt;
|
||||
Buttons : PLongInt;
|
||||
ButtonCount : LongInt;
|
||||
DefaultIndex : LongInt;
|
||||
EscapeResult : LongInt) : LongInt;
|
||||
{Note: Qt appears to map Esc key to Cancel button, so no need for EscapeResult.}
|
||||
var
|
||||
QBtns : QMessageBoxStandardButtons;
|
||||
DefQBtn : QMessageBoxStandardButton;
|
||||
CurQBtn : QMessageBoxStandardButton;
|
||||
BtnIdx : LongInt;
|
||||
CaptionStr : WideString;
|
||||
MessageStr : WideString;
|
||||
QResult : QMessageBoxStandardButton;
|
||||
begin
|
||||
QBtns := 0;
|
||||
DefQBtn := QMessageBoxNoButton;
|
||||
{Convert LCL "id" button values to Qt values}
|
||||
for BtnIdx := 0 to ButtonCount-1 do
|
||||
begin
|
||||
case Buttons[BtnIdx] of
|
||||
idButtonYes : CurQBtn := QMessageBoxYes;
|
||||
idButtonNo : CurQBtn := QMessageBoxNo;
|
||||
idButtonOK : CurQBtn := QMessageBoxOk;
|
||||
idButtonCancel : CurQBtn := QMessageBoxCancel;
|
||||
idButtonAbort : CurQBtn := QMessageBoxAbort;
|
||||
idButtonRetry : CurQBtn := QMessageBoxRetry;
|
||||
idButtonIgnore : CurQBtn := QMessageBoxIgnore;
|
||||
// idButtonAll : no equivalent
|
||||
idButtonNoToAll : CurQBtn := QMessageBoxNoToAll;
|
||||
idButtonYesToAll : CurQBtn := QMessageBoxYesToAll;
|
||||
idButtonHelp : CurQBtn := QMessageBoxHelp;
|
||||
idButtonClose : CurQBtn := QMessageBoxClose;
|
||||
else
|
||||
CurQBtn := QMessageBoxNoButton;
|
||||
end;
|
||||
QBtns := QBtns or CurQBtn;
|
||||
if BtnIdx = DefaultIndex then {Default button?}
|
||||
DefQBtn := CurQBtn;
|
||||
end;
|
||||
|
||||
CaptionStr := DialogCaption;
|
||||
MessageStr := DialogMessage;
|
||||
|
||||
case DialogType of
|
||||
idDialogWarning :
|
||||
QResult := QMessageBox_warning(nil, @CaptionStr, @MessageStr, QBtns, DefQBtn);
|
||||
idDialogError :
|
||||
QResult := QMessageBox_critical(nil, @CaptionStr, @MessageStr, QBtns, DefQBtn);
|
||||
idDialogInfo :
|
||||
QResult := QMessageBox_information(nil, @CaptionStr, @MessageStr, QBtns, DefQBtn);
|
||||
idDialogConfirm :
|
||||
QResult := QMessageBox_question(nil, @CaptionStr, @MessageStr, QBtns, DefQBtn);
|
||||
end;
|
||||
|
||||
{Convert Qt result to LCL "id" dialog result}
|
||||
case QResult of
|
||||
QMessageBoxOk : Result := idButtonOK;
|
||||
QMessageBoxCancel : Result := idButtonCancel;
|
||||
QMessageBoxAbort : Result := idButtonAbort;
|
||||
QMessageBoxRetry : Result := idButtonRetry;
|
||||
QMessageBoxIgnore : Result := idButtonIgnore;
|
||||
QMessageBoxYes : Result := idButtonYes;
|
||||
QMessageBoxNo : Result := idButtonNo;
|
||||
// QMessageBoxAll : no equivalent
|
||||
QMessageBoxNoToAll : Result := idButtonNoToAll;
|
||||
QMessageBoxYesToAll : Result := idButtonYesToAll;
|
||||
else
|
||||
Result := -1;
|
||||
end;
|
||||
end; {TQtWidgetSet.PromptUser}
|
||||
|
||||
//##apiwiz##eps## // Do not remove, no wizard declaration after this line
|
||||
|
@ -32,4 +32,12 @@
|
||||
|
||||
procedure FillStandardDescription(var Desc: TRawImageDescription);
|
||||
|
||||
function PromptUser(const DialogCaption : string;
|
||||
const DialogMessage : string;
|
||||
DialogType : LongInt;
|
||||
Buttons : PLongInt;
|
||||
ButtonCount : LongInt;
|
||||
DefaultIndex : LongInt;
|
||||
EscapeResult : LongInt) : LongInt; override;
|
||||
|
||||
//##apiwiz##eps## // Do not remove, no wizard declaration after this line
|
||||
|
Loading…
Reference in New Issue
Block a user