Concept-Hierarchy/src/z_UIMessages.bas
2024-06-07 20:06:17 +03:00

95 lines
3.1 KiB
QBasic

Attribute VB_Name = "z_UIMessages"
' Messaging module
Option Private Module
Option Explicit
Public Enum MsgCode
MSG_OK = 0
EM_VISIO_INPUT
EM_FILENAME_EMPTY
EM_INVALID_SELECTION
EM_ERROR_LOADING_FILE
EM_INVALID_FILE_FORMAT
EM_WORD_MAX_LEVELS
EM_INVALID_STRUCTURE
EM_CANNOT_TRANSFORM_DEEP
EM_INVALID_FORMAT
IM_EXPORT_OK
IM_IMPORT_OK
IM_NEW_TEMPLATE
' QM_CODE_DELETE_CONFIRM
End Enum
Private g_UI As API_UserInteraction
Public Function UserInteraction() As API_UserInteraction
If g_UI Is Nothing Then _
Set g_UI = New API_UserInteraction
Set UserInteraction = g_UI
End Function
Public Function SetUserInteraction(newUI As API_UserInteraction)
Set g_UI = newUI
End Function
Public Function UIShowMessage(theCode As MsgCode, ParamArray params() As Variant)
Dim unwrapped As Variant: unwrapped = params
unwrapped = FixForwardedParams(unwrapped)
Select Case theCode
Case EM_VISIO_INPUT
Call MsgBox("Ðåæèì ââîäà èç Visio íå òðåáóåò óêàçàíèÿ âõîäà", vbInformation)
Case EM_FILENAME_EMPTY
Call MsgBox("Íå óêàçàí ïóòü ê âõîäíîìó ôàéëó", vbExclamation)
Case EM_INVALID_SELECTION
Call MsgBox("Äëÿ äàííîé îïåðàöèè íåîáõîäèìî âûäåëèòü îäíó êîðíåâóþ ôîðìó", vbExclamation)
Case EM_ERROR_LOADING_FILE
Call MsgBox("Îøèáêà ïðè çàãðóçêå ôàéëà", vbExclamation)
Case EM_INVALID_FILE_FORMAT
Call MsgBox("Îøèáêà ïðè çàãðóçêå äàííûõ!" & vbNewLine & _
"Ïðîâåðüòå ñîîòâåòñòâèå âõîäà çàäàííîìó ôîðìàòó", vbExclamation)
Case EM_WORD_MAX_LEVELS
Call MsgBox("Ýêñïîðò â Word âîçìîæåí òîëüêî äëÿ 9 è ìåíåå óðîâíåé!", vbCritical)
Case EM_INVALID_STRUCTURE
Call MsgBox("Íåêîððåêòíàÿ ñòðóêòóðà èåðàðõèè", vbCritical)
Case EM_CANNOT_TRANSFORM_DEEP
Call MsgBox("Òðàíñôîðìèðîâàòü ìîæíî òîëüêî óçëû íå èìåþùèå ""âíóêîâ""", vbCritical)
Case EM_INVALID_FORMAT
Call MsgBox(Fmt("Ñîäåðæèìîå ôàéëà {1} íå ñîîòâåòñòâóåò òðåáóåìîìó ôîðìàòó", unwrapped), vbExclamation)
Case IM_EXPORT_OK
Call MsgBox(Fmt("Ýêñïîðò ïðîøåë óñïåøíî!" & vbNewLine & _
"Âñåãî óçëîâ: {1}" & vbNewLine & _
"Ìàêñèìàëüíàÿ ãëóáèíà: {2}", unwrapped), vbInformation)
Case IM_IMPORT_OK
Call MsgBox(Fmt("Èìïîðò äàííûõ ïðîøåë óñïåøíî!" & vbNewLine & _
"Âñåãî óçëîâ: {1}" & vbNewLine & _
"Ìàêñèìàëüíàÿ ãëóáèíà: {2}" & vbNewLine & _
"Ðàçìåð ëèñòà: {3} x {4}", unwrapped), vbInformation)
Case IM_NEW_TEMPLATE
Call MsgBox(Fmt("Íîâûå øàáëîí ñîçäàí óñïåøíî: {1}", unwrapped), vbInformation)
Case Else
Call MsgBox("Invalid message code", vbCritical)
End Select
End Function
Public Function UIAskQuestion(theCode As MsgCode, ParamArray params() As Variant) As Boolean
Dim unwrapped As Variant: unwrapped = params
unwrapped = FixForwardedParams(unwrapped)
Dim answer&: answer = vbNo
Select Case theCode
' Case QM_CODE_DELETE_CONFIRM
' answer = MsgBox("Are you sure you want to delete ALL macros from target file?", vbYesNo + vbQuestion)
Case Else
Call MsgBox("Invalid message code", vbCritical)
End Select
UIAskQuestion = answer = vbYes
End Function