Qt Message box implementation by Philip Hess.

git-svn-id: trunk@10653 -
This commit is contained in:
sekelsenmat 2007-02-18 20:46:46 +00:00
parent 7c526a7dfe
commit 25344cd643
2 changed files with 82 additions and 0 deletions

View File

@ -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

View File

@ -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