97 lines
3.4 KiB
QBasic
97 lines
3.4 KiB
QBasic
Attribute VB_Name = "z_UIMessages"
|
|
' Ìîäóëü âûâîäà ñîîáùåíèé è âçàèìîäåéñòâèÿ ñ ïîëüçîâàòåëåì
|
|
Option Private Module
|
|
Option Explicit
|
|
|
|
'# Êîäû ñîîáùåíèé
|
|
Public Enum MsgCode
|
|
MSG_OK = 0
|
|
|
|
EM_DOC_READONLY
|
|
EM_RULE_FAILED
|
|
EM_NO_OPEN_DOCS
|
|
EM_PATH_EMPTY
|
|
EM_MISSING_FILE
|
|
|
|
IM_RULES_COMPLETE
|
|
IM_STYLES_FIXED
|
|
IM_FORMAT_CLEARED
|
|
IM_UPDATE_BANNED_FAIL
|
|
IM_UPDATE_BANNED_SUCCESS
|
|
|
|
QM_SAVE_DOC
|
|
QM_WARN_COMMENTS
|
|
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 ProcessErrorMessages(expectedErrors As Scripting.Dictionary)
|
|
If Err.Number = 0 Then _
|
|
Exit Function
|
|
|
|
Call Unload(CSE_ProgressBar)
|
|
If Not expectedErrors.Exists(Err.Number) Then _
|
|
Call Err.Raise(Err.Number)
|
|
|
|
Select Case Err.Number
|
|
' Case EM_LINK_NO_FILE: Call UserInteraction.ShowMessage(Err.Number, Err.Source)
|
|
End Select
|
|
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_DOC_READONLY
|
|
Call MsgBox("Ôàéë îòêðûò â ðåæèìå ÷òåíèÿ!" & vbNewLine & "Ïîæàëóéñòà, ñîõðàíèòå ôàéë â ðåæèìå ðåäàêòèðîâàíèÿ", vbExclamation)
|
|
Case EM_RULE_FAILED
|
|
Call MsgBox(Fmt("Ïðàâèëî {1} áûëî çàâåðøåíî ñ îøèáêîé! Ïîæàëóéñòà, ïðîèíôîðìèðóéòå ðàçðàáîò÷èêà", unwrapped), vbExclamation)
|
|
Case EM_NO_OPEN_DOCS: Call MsgBox("Îòñóòñòâóþò îòêðûòûå äîêóìåíòû Word", vbExclamation)
|
|
Case EM_PATH_EMPTY: Call MsgBox("Ïóòü ê ôàéëó íå óêàçàí!", vbExclamation)
|
|
Case EM_MISSING_FILE: Call MsgBox(Fmt("Îòñóòñòâóåò äîñòóï ê ôàéëó: {1}", unwrapped), vbExclamation)
|
|
|
|
Case IM_RULES_COMPLETE
|
|
Call MsgBox(Fmt("Âðåìÿ âûïîëíåíèÿ: {1} ms" & vbNewLine & vbNewLine & _
|
|
"Íàéäåíî îøèáîê: {2}" & vbNewLine & _
|
|
"Âíåñåíî ïðàâîê: {3}", unwrapped), vbInformation)
|
|
Case IM_STYLES_FIXED: Call MsgBox("Ïðîâåðêà ñòèëåé ïðîøëà óñïåøíî!", vbInformation)
|
|
Case IM_FORMAT_CLEARED: Call MsgBox("Î÷èñòêà çàâåðøåíà", vbInformation)
|
|
Case IM_UPDATE_BANNED_SUCCESS: Call MsgBox("Îáíîâëåíèå ëîêàëüíîãî ñïèñêà óñïåøíî", vbInformation)
|
|
Case IM_UPDATE_BANNED_FAIL: Call MsgBox("Îáíîâëåíèå íå ïðîøëî. Ïðîâåðüòå ïîäêëþ÷åíèå ê \\fs1.concept.ru", vbInformation)
|
|
|
|
Case Else
|
|
Call MsgBox("Íåâåðíûé êîä ñîîáùåíèÿ", 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 As Long: answer = vbNo
|
|
Select Case theCode
|
|
Case QM_SAVE_DOC
|
|
answer = MsgBox("Âíèìàíèå!! Ïðè ïðîâåðêå äîêóìåíòà â ñëó÷àå ñáîÿ âîçìîæíà ïîòåðÿ äàííûõ." & vbNewLine _
|
|
& "Âû õîòèòå ñîõðàíèòü äîêóìåíò ïåðåä ïðîâåðêîé?", vbYesNo + vbQuestion)
|
|
|
|
Case QM_WARN_COMMENTS
|
|
answer = MsgBox("Âíèìàíèå!! Îáíàðóæåíû êîììåíòàðèè â äîêóìåíòå. Ýòî ìîæåò ïðèâåñòè ê ñáîþ ïðîãðàììû." & vbNewLine _
|
|
& "Êîììåíòàðèè áóäóò óäàëåíû, Âû õîòèòå ïðîäîëæèòü?", vbYesNo + vbQuestion, "Çàïóñê ïðîâåðêè")
|
|
|
|
Case Else
|
|
Call MsgBox("Íåâåðíûé êîä ñîîáùåíèÿ", vbCritical)
|
|
End Select
|
|
UIAskQuestion = answer = vbYes
|
|
End Function
|