/*
	Copyright (c) 2024 PTC Inc. and/or Its Subsidiary Companies. All Rights Reserved.
*/

#include <ProToolkit.h>
#include <ProUIDialog.h>
#include <ProUIPushbutton.h>

#define OK     1
#define CANCEL 0

int UsrConfirmAction(char *question, ProBoolean *confirm);
/*-----------------------------------------------------------------*\    
 Example function to show how UsrConfirmAction() is used 
\*-----------------------------------------------------------------*/ 
int UsrExample()
 {
    ProBoolean confirm;
    UsrConfirmAction("Do you really want to delete the table?", &confirm); 
}

/*====================================================================*\ 
FUNCTION : UsrOKAction() PURPOSE  : Action function for the OK button 
\*====================================================================*/ 
static void UsrOKAction(
     char *dialog,
     char *component,
     ProAppData data)
 {
     ProUIDialogExit(dialog, OK);
 }

/*====================================================================*\ 
FUNCTION : UsrCancelAction() 
PURPOSE  : Action function for the Cancel button 
\*====================================================================*/ 
static void UsrCancelAction(
     char *dialog,
     char *component,
     ProAppData data)
 {
     ProUIDialogExit(dialog, CANCEL);
 }

/*====================================================================*\ 
FUNCTION : UsrConfirmAction() 
PURPOSE  : Utility to prompt the user with  question,
and OK and Cancel buttons. 
\*====================================================================*/ 
int UsrConfirmAction(
     char *question,
     ProBoolean *confirm)
 {
     ProLine wline;
     int status;

/*--------------------------------------------------------------------*\ 
    Load the dialog from the resource file 
\*--------------------------------------------------------------------*/ 
    ProUIDialogCreate("confirm","confirm");

/*--------------------------------------------------------------------*\ 
    Set the OK and Cancel button actions 
\*--------------------------------------------------------------------*/ 
    ProUIPushbuttonActivateActionSet("confirm","OK",UsrOKAction, NULL);
    ProUIPushbuttonActivateActionSet("confirm","Cancel",UsrCancelAction,
        NULL);

/*--------------------------------------------------------------------*\ 
    Set the Question test in the label 
\*--------------------------------------------------------------------*/ 
    ProStringToWstring(wline, question);
     ProUILabelTextSet("confirm","Question",wline);

/*--------------------------------------------------------------------*\ 
    Display and activate the dialog 
\*--------------------------------------------------------------------*/ 
    ProUIDialogActivate("confirm", &status);

/*--------------------------------------------------------------------*\ 
    Set confirm according to which button was used to close the dialog 
\*--------------------------------------------------------------------*/ 
    *confirm = (status == OK) ? PRO_B_TRUE : PRO_B_FALSE;

/*--------------------------------------------------------------------*\ 
    Remove the dialog from memory 
\*--------------------------------------------------------------------*/ 
    ProUIDialogDestroy("confirm");

    return(1);
 }