Concept-Subjects/src/Declarations.bas
2024-06-07 20:13:55 +03:00

117 lines
3.0 KiB
QBasic

Attribute VB_Name = "Declarations"
Option Explicit
Public Enum TItem
T_ITEM_UNKNOWN = 0
[_First] = 1
T_ITEM_FRONT = 1
T_ITEM_PROBLEM = 2
T_ITEM_SUBJECT_TYPE = 3
T_ITEM_GROUP = 4
T_ITEM_ORGAN = 5
T_ITEM_PERSON = 6
[_Last] = 6
End Enum
Public Enum TSubjectType
T_SUBJECT_UNKNOWN = 0
[_First] = 1
T_SUBJECT_SOLVER = 1
T_SUBJECT_INVOLVED = 2
T_SUBJECT_POTENTIAL = 3
[_Last] = 3
End Enum
Public Const SHAPE_FRONT = "Ôðîíò"
Public Const SHAPE_PROBLEM = "Ïðîáëåìà"
Public Const SHAPE_SUBJECT_TYPE = "Âèä ñóáúåêòîâ"
Public Const SHAPE_ORGAN = "Îðãàíèçàöèÿ"
Public Const SHAPE_PERSON = "Ïåðñîíà"
Public Const SHAPE_GROUP = "Ãðóïïà"
Public Const XL_TYPE_FRONT = "Ôðîíò"
Public Const XL_TYPE_PROBLEM = "Ïðîáëåìà"
Public Const XL_TYPE_SUBJECT_TYPE = "Âèä ñóáúåêòîâ"
Public Const XL_TYPE_ORGAN = "Îðãàíèçàöèÿ"
Public Const XL_TYPE_PERSON = "Ïåðñîíà"
Public Const XL_TYPE_GROUP = "Ãðóïïà"
Public Const SHP_TITLE = "Íàçâàíèå"
Public Const MAX_STRUCTURE_DEPTH = 20
Public Const CELLSU_POSTYPE = "User.ThesisVariant"
Public Const CELLSU_CONTAINER_MARGINS = "User.msvSDContainerMargin"
Public Const PROBLEM_PREFIX = "Ïðîáëåìà"
Public Const FRONT_PREFIX = "Ôðîíò ðåøåíèÿ ïðîáëåì"
Public Const DEPSILON = 3
' Layout manager options
Public Const LM_MARGINS_EPSILON = 0.5 / 25.4 ' Increase margins to ammount for line width etc.
Public Const LM_VERTICAL_GAP = 2 / 25.4
Public Const LM_HORIZONTAL_GAP = 2 / 25.4
Public Const PAGE_VERTICAL_GAP = 4 / 25.4
Public Const PAGE_HORIZONTAL_GAP = 4 / 25.4
Public Const PAGE_TITLE_GAP = 25 / 25.4 ' Blank space in left corner for schema title
Public Const HEIGHT_DOUBLE_THRESHOLD = 130
Public Const HEIGHT_TRIPLE_THRESHOLD = 250
Public Type PageProps
width_ As Double
height_ As Double
frontHeight_ As Double
problemHeight_ As Double
leftGap_ As Double
columnGap_ As Double
addHeader_ As Boolean
multipage_ As Boolean
End Type
' Custom errors
Public Enum CustomErrors
ERR_XL_INVALID_TYPE = vbObjectError + 1000
' ERR_SYNC_DOC
End Enum
' ===== Excel input ==========
Public Const EXCEL_FIRST_ROW = 2
Public Enum DataSourceStructure
S_ITEM_ID = 1
S_ITEM_LEVEL = 2
S_ITEM_TYPE = 3
S_ITEM_TEXT_THEME = 4
S_ITEM_TEXT_SUBJECT = 5
End Enum
Public Function TextToItemType(sText$) As TItem
Select Case sText
Case XL_TYPE_FRONT: TextToItemType = T_ITEM_FRONT
Case XL_TYPE_PROBLEM: TextToItemType = T_ITEM_PROBLEM
Case XL_TYPE_SUBJECT_TYPE: TextToItemType = T_ITEM_SUBJECT_TYPE
Case XL_TYPE_GROUP: TextToItemType = T_ITEM_GROUP
Case XL_TYPE_ORGAN: TextToItemType = T_ITEM_ORGAN
Case XL_TYPE_PERSON: TextToItemType = T_ITEM_PERSON
Case Else: TextToItemType = T_ITEM_UNKNOWN
End Select
End Function
Public Function TextToSubjectType(sText$) As TSubjectType
Select Case sText
Case "Ñóáúåêòû ðåøåíèÿ ïðîáëåìû": TextToSubjectType = T_SUBJECT_SOLVER
Case "Ñóáúåêòû ïðîáëåìíîé äåÿòåëüíîñòè": TextToSubjectType = T_SUBJECT_INVOLVED
Case "Ïîòåíöèàëüíûå ñóáúåêòû": TextToSubjectType = T_SUBJECT_POTENTIAL
Case Else: TextToSubjectType = T_SUBJECT_POTENTIAL
End Select
End Function