1
1
Fork 0
mirror of https://github.com/FellippeHeitor/InForm.git synced 2024-07-21 11:15:13 +00:00

Major refactoring

This commit is contained in:
Samuel Gomes 2024-01-11 04:51:14 +05:30
parent 4e6a167f15
commit 0918df0d11
21 changed files with 8385 additions and 8228 deletions

View file

@ -1,365 +1,118 @@
'InForm - GUI library for QB64
'Fellippe Heitor, 2016-2019 - fellippe@qb64.org - @fellippeheitor
'
'-----------------------------------------------------------------------------------------------------------------------
' InForm-PE GUI engine for QB64-PE
' Copyright (c) 2024 Samuel Gomes
' Copyright (c) 2023 George McGinn
' Copyright (c) 2022 Fellippe Heitor
'-----------------------------------------------------------------------------------------------------------------------
$IF INFORM_BI = UNDEFINED THEN
$LET INFORM_BI = TRUE
'$INCLUDE:'InFormCommon.bi'
'Control types: -----------------------------------------------
__UI_Type(__UI_Type_Form).Name = "Form"
__UI_Type(__UI_Type_Frame).Name = "Frame"
__UI_Type(__UI_Type_Frame).DefaultWidth = 230
__UI_Type(__UI_Type_Frame).DefaultHeight = 150
__UI_Type(__UI_Type_Button).Name = "Button"
__UI_Type(__UI_Type_Button).DefaultWidth = 80
__UI_Type(__UI_Type_Button).DefaultHeight = 23
__UI_Type(__UI_Type_Label).Name = "Label"
__UI_Type(__UI_Type_Label).DefaultWidth = 150
__UI_Type(__UI_Type_Label).DefaultHeight = 23
__UI_Type(__UI_Type_CheckBox).Name = "CheckBox"
__UI_Type(__UI_Type_CheckBox).DefaultWidth = 150
__UI_Type(__UI_Type_CheckBox).DefaultHeight = 23
__UI_Type(__UI_Type_CheckBox).TurnsInto = __UI_Type_ToggleSwitch
__UI_Type(__UI_Type_RadioButton).Name = "RadioButton"
__UI_Type(__UI_Type_RadioButton).DefaultWidth = 150
__UI_Type(__UI_Type_RadioButton).DefaultHeight = 23
__UI_Type(__UI_Type_TextBox).Name = "TextBox"
__UI_Type(__UI_Type_TextBox).DefaultWidth = 120
__UI_Type(__UI_Type_TextBox).DefaultHeight = 23
__UI_Type(__UI_Type_ProgressBar).Name = "ProgressBar"
__UI_Type(__UI_Type_ProgressBar).DefaultWidth = 300
__UI_Type(__UI_Type_ProgressBar).DefaultHeight = 23
__UI_Type(__UI_Type_ListBox).Name = "ListBox"
__UI_Type(__UI_Type_ListBox).DefaultWidth = 200
__UI_Type(__UI_Type_ListBox).DefaultHeight = 200
__UI_Type(__UI_Type_ListBox).TurnsInto = __UI_Type_DropdownList
__UI_Type(__UI_Type_DropdownList).Name = "DropdownList"
__UI_Type(__UI_Type_DropdownList).DefaultWidth = 200
__UI_Type(__UI_Type_DropdownList).DefaultHeight = 23
__UI_Type(__UI_Type_DropdownList).TurnsInto = __UI_Type_ListBox
__UI_Type(__UI_Type_MenuBar).Name = "MenuBar"
__UI_Type(__UI_Type_MenuBar).TurnsInto = __UI_Type_ContextMenu
__UI_Type(__UI_Type_MenuBar).RestrictResize = __UI_CantResizeV
__UI_Type(__UI_Type_MenuItem).Name = "MenuItem"
__UI_Type(__UI_Type_MenuItem).RestrictResize = __UI_CantResizeV
__UI_Type(__UI_Type_MenuPanel).Name = "MenuPanel"
__UI_Type(__UI_Type_PictureBox).Name = "PictureBox"
__UI_Type(__UI_Type_PictureBox).DefaultWidth = 230
__UI_Type(__UI_Type_PictureBox).DefaultHeight = 150
__UI_Type(__UI_Type_TrackBar).Name = "TrackBar"
__UI_Type(__UI_Type_TrackBar).DefaultWidth = 300
__UI_Type(__UI_Type_TrackBar).DefaultHeight = 40
__UI_Type(__UI_Type_TrackBar).MinimumHeight = 30
__UI_Type(__UI_Type_TrackBar).RestrictResize = __UI_CantResizeV
__UI_Type(__UI_Type_ContextMenu).Name = "ContextMenu"
__UI_Type(__UI_Type_ContextMenu).TurnsInto = __UI_Type_MenuBar
__UI_Type(__UI_Type_ContextMenu).RestrictResize = __UI_CantResize
__UI_Type(__UI_Type_ContextMenu).DefaultWidth = 22
__UI_Type(__UI_Type_ContextMenu).DefaultHeight = 22
__UI_Type(__UI_Type_Font).Name = "Font"
__UI_Type(__UI_Type_ToggleSwitch).Name = "ToggleSwitch"
__UI_Type(__UI_Type_ToggleSwitch).DefaultWidth = 40
__UI_Type(__UI_Type_ToggleSwitch).DefaultHeight = 17
__UI_Type(__UI_Type_ToggleSwitch).TurnsInto = __UI_Type_CheckBox
__UI_Type(__UI_Type_ToggleSwitch).RestrictResize = __UI_CantResize
'--------------------------------------------------------------
$SCREENHIDE
_CONTROLCHR OFF
__UI_RestoreFKeys
__UI_SubMenuDelay = .4
__UI_SnapDistance = 5
__UI_SnapDistanceFromForm = 10
__UI_MaxBorderSize = 10
__UI_Font8Offset = 5
__UI_Font16Offset = 3
__UI_ClipboardCheck$ = "InForm" + STRING$(2, 10) + "BEGIN CONTROL DATA" + CHR$(10) + STRING$(60, 45) + CHR$(10)
__UI_ThemeSetup
__UI_InternalMenus
__UI_LoadForm
__UI_Init
'Main loop
DO
_LIMIT 1
LOOP
SYSTEM
__UI_ErrorHandler:
RESUME NEXT
$IF VERSION < 3.9.1 THEN
$Error This requires the latest version of QB64-PE from https://github.com/QB64-Phoenix-Edition/QB64pe/releases
$END IF
' TODO: Re-factor this file to use include guards. For now, we will just set the preprocessor variable
$LET INFORM_BI = TRUE
DECLARE LIBRARY
FUNCTION __UI_GetPID ALIAS getpid
END DECLARE
DECLARE CUSTOMTYPE LIBRARY
SUB __UI_MemCopy ALIAS memcpy (BYVAL dest AS _OFFSET, BYVAL source AS _OFFSET, BYVAL bytes AS LONG)
END DECLARE
$IF WIN THEN
DECLARE LIBRARY
FUNCTION GetSystemMetrics& (BYVAL WhichMetric&)
END DECLARE
CONST __UI_SM_SWAPBUTTON = 23
$END IF
' InForm theme image IDs
CONST __INFORM_THEME_IMAGE_ARROWS~%% = 1~%%
CONST __INFORM_THEME_IMAGE_BUTTON~%% = 2~%%
CONST __INFORM_THEME_IMAGE_CHECKBOX~%% = 3~%%
CONST __INFORM_THEME_IMAGE_FRAME~%% = 4~%%
CONST __INFORM_THEME_IMAGE_MENUCHECKMARK~%% = 5~%%
CONST __INFORM_THEME_IMAGE_NOTFOUND~%% = 6~%%
CONST __INFORM_THEME_IMAGE_PROGRESSCHUNK~%% = 7~%%
CONST __INFORM_THEME_IMAGE_PROGRESSTRACK~%% = 8~%%
CONST __INFORM_THEME_IMAGE_RADIOBUTTON~%% = 9~%%
CONST __INFORM_THEME_IMAGE_SCROLLBUTTONS~%% = 10~%%
CONST __INFORM_THEME_IMAGE_SCROLLHBUTTONS~%% = 11~%%
CONST __INFORM_THEME_IMAGE_SCROLLHTHUMB~%% = 12~%%
CONST __INFORM_THEME_IMAGE_SCROLLHTRACK~%% = 13~%%
CONST __INFORM_THEME_IMAGE_SCROLLTHUMB~%% = 14~%%
CONST __INFORM_THEME_IMAGE_SCROLLTRACK~%% = 15~%%
CONST __INFORM_THEME_IMAGE_SLIDERDOWN~%% = 16~%%
CONST __INFORM_THEME_IMAGE_SLIDERTRACK~%% = 17~%%
'$INCLUDE:'extensions/HashTable.bi'
$SCREENHIDE
_CONTROLCHR OFF
TYPE __UI_ControlTYPE
ID AS LONG
ParentID AS LONG
PreviousParentID AS LONG
ContextMenuID AS LONG
Type AS INTEGER
Name AS STRING * 40
ParentName AS STRING * 40
SubMenu AS _BYTE
MenuPanelID AS LONG
SourceControl AS LONG
Top AS INTEGER
Left AS INTEGER
Width AS INTEGER
Height AS INTEGER
Canvas AS LONG
HelperCanvas AS LONG
TransparentColor AS _UNSIGNED LONG
Stretch AS _BYTE
PreviousStretch AS _BYTE
Font AS INTEGER
PreviousFont AS INTEGER
BackColor AS _UNSIGNED LONG
ForeColor AS _UNSIGNED LONG
SelectedForeColor AS _UNSIGNED LONG
SelectedBackColor AS _UNSIGNED LONG
BackStyle AS _BYTE
HasBorder AS _BYTE
BorderSize AS INTEGER
Padding AS INTEGER
Encoding AS LONG
Align AS _BYTE
PrevAlign AS _BYTE
VAlign AS _BYTE
PrevVAlign AS _BYTE
BorderColor AS _UNSIGNED LONG
Value AS _FLOAT
PreviousValue AS _FLOAT
Min AS _FLOAT
PrevMin AS _FLOAT
Max AS _FLOAT
PrevMax AS _FLOAT
Interval AS _FLOAT
PrevInterval AS _FLOAT
MinInterval AS _FLOAT
PrevMinInterval AS _FLOAT
HotKey AS INTEGER
HotKeyOffset AS INTEGER
HotKeyPosition AS INTEGER
ShowPercentage AS _BYTE
AutoScroll AS _BYTE
AutoSize AS _BYTE
InputViewStart AS LONG
PreviousInputViewStart AS LONG
LastVisibleItem AS INTEGER
ItemHeight AS INTEGER
HasVScrollbar AS _BYTE
VScrollbarButton2Top AS INTEGER
HoveringVScrollbarButton AS _BYTE
ThumbHeight AS INTEGER
ThumbTop AS INTEGER
VScrollbarRatio AS SINGLE
Cursor AS LONG
PasswordField AS _BYTE
PrevCursor AS LONG
FieldArea AS LONG
PreviousFieldArea AS LONG
TextIsSelected AS _BYTE
BypassSelectOnFocus AS _BYTE
Multiline AS _BYTE
NumericOnly AS _BYTE
FirstVisibleLine AS LONG
PrevFirstVisibleLine AS LONG
CurrentLine AS LONG
PrevCurrentLine AS LONG
VisibleCursor AS LONG
PrevVisibleCursor AS LONG
ControlIsSelected AS _BYTE
LeftOffsetFromFirstSelected AS INTEGER
TopOffsetFromFirstSelected AS INTEGER
SelectionLength AS LONG
SelectionStart AS LONG
WordWrap AS _BYTE
CanResize AS _BYTE
CanHaveFocus AS _BYTE
Disabled AS _BYTE
Hidden AS _BYTE
PreviouslyHidden AS _BYTE
CenteredWindow AS _BYTE
ControlState AS _BYTE
ChildrenRedrawn AS _BYTE
FocusState AS LONG
LastChange AS SINGLE
Redraw AS _BYTE
BulletStyle AS _BYTE
MenuItemGroup AS INTEGER
KeyCombo AS LONG
BoundTo AS LONG
BoundProperty AS LONG
END TYPE
TYPE __UI_Types
Name AS STRING * 16
Count AS LONG
TurnsInto AS INTEGER
DefaultHeight AS INTEGER
MinimumHeight AS INTEGER
DefaultWidth AS INTEGER
MinimumWidth AS INTEGER
RestrictResize AS _BYTE
END TYPE
TYPE __UI_WordWrapHistoryType
StringSlot AS LONG
Width AS INTEGER
LongestLine AS INTEGER
Font AS LONG
TotalLines AS INTEGER
END TYPE
TYPE __UI_KeyCombos
Combo AS STRING * 14 ' "CTRL+SHIFT+F12"
FriendlyCombo AS STRING * 14 ' "Ctrl+Shift+F12"
ControlID AS LONG
END TYPE
REDIM SHARED Caption(0 TO 100) AS STRING
REDIM SHARED __UI_TempCaptions(0 TO 100) AS STRING
REDIM SHARED Text(0 TO 100) AS STRING
REDIM SHARED __UI_TempTexts(0 TO 100) AS STRING
REDIM SHARED Mask(0 TO 100) AS STRING
REDIM SHARED __UI_TempMask(0 TO 100) AS STRING
REDIM SHARED ToolTip(0 TO 100) AS STRING
REDIM SHARED __UI_TempTips(0 TO 100) AS STRING
REDIM SHARED Control(0 TO 100) AS __UI_ControlTYPE
REDIM SHARED ControlDrawOrder(0) AS LONG
REDIM __UI_ThemeImages(0 TO 0) AS HashTableType
REDIM SHARED __UI_WordWrapHistoryTexts(0 TO 100) AS STRING
REDIM SHARED __UI_WordWrapHistoryResults(0 TO 100) AS STRING
REDIM SHARED __UI_WordWrapHistory(0 TO 100) AS __UI_WordWrapHistoryType
REDIM SHARED __UI_ThisLineChars(0) AS LONG, __UI_FocusedTextBoxChars(0) AS LONG
REDIM SHARED __UI_ActiveMenu(0 TO 100) AS LONG, __UI_ParentMenu(0 TO 100) AS LONG
REDIM SHARED __UI_KeyCombo(0 TO 100) AS __UI_KeyCombos
DIM SHARED __UI_TotalKeyCombos AS LONG, __UI_BypassKeyCombos AS _BYTE
DIM SHARED table1252$(0 TO 255), table437$(0 TO 255)
DIM SHARED __UI_MouseLeft AS INTEGER, __UI_MouseTop AS INTEGER
DIM SHARED __UI_MouseWheel AS INTEGER, __UI_MouseButtonsSwap AS _BYTE
DIM SHARED __UI_PrevMouseLeft AS INTEGER, __UI_PrevMouseTop AS INTEGER
DIM SHARED __UI_MouseButton1 AS _BYTE, __UI_MouseButton2 AS _BYTE
DIM SHARED __UI_MouseIsDown AS _BYTE, __UI_MouseDownOnID AS LONG
DIM SHARED __UI_Mouse2IsDown AS _BYTE, __UI_Mouse2DownOnID AS LONG
DIM SHARED __UI_PreviousMouseDownOnID AS LONG
DIM SHARED __UI_KeyIsDown AS _BYTE, __UI_KeyDownOnID AS LONG
DIM SHARED __UI_ShiftIsDown AS _BYTE, __UI_CtrlIsDown AS _BYTE
DIM SHARED __UI_AltIsDown AS _BYTE, __UI_ShowHotKeys AS _BYTE, __UI_AltCombo$
DIM SHARED __UI_LastMouseClick AS SINGLE, __UI_MouseDownOnScrollbar AS SINGLE
DIM SHARED __UI_DragX AS INTEGER, __UI_DragY AS INTEGER
DIM SHARED __UI_DefaultButtonID AS LONG
DIM SHARED __UI_KeyHit AS LONG, __UI_KeepFocus AS _BYTE
DIM SHARED __UI_Focus AS LONG, __UI_PreviousFocus AS LONG, __UI_KeyboardFocus AS _BYTE
DIM SHARED __UI_HoveringID AS LONG, __UI_LastHoveringID AS LONG, __UI_BelowHoveringID AS LONG
DIM SHARED __UI_IsDragging AS _BYTE, __UI_DraggingID AS LONG
DIM SHARED __UI_IsResizing AS _BYTE, __UI_ResizingID AS LONG
DIM SHARED __UI_ResizeHandleHover AS _BYTE
DIM SHARED __UI_IsSelectingText AS _BYTE, __UI_IsSelectingTextOnID AS LONG
DIM SHARED __UI_SelectedText AS STRING, __UI_SelectionLength AS LONG
DIM SHARED __UI_StateHasChanged AS _BYTE
DIM SHARED __UI_DraggingThumb AS _BYTE, __UI_ThumbDragTop AS INTEGER
DIM SHARED __UI_DraggingThumbOnID AS LONG
DIM SHARED __UI_HasInput AS _BYTE, __UI_ProcessInputTimer AS SINGLE
DIM SHARED __UI_UnloadSignal AS _BYTE, __UI_HasResized AS _BYTE
DIM SHARED __UI_ExitTriggered AS _BYTE
DIM SHARED __UI_Loaded AS _BYTE
DIM SHARED __UI_EventsTimer AS INTEGER, __UI_RefreshTimer AS INTEGER
DIM SHARED __UI_ActiveDropdownList AS LONG, __UI_ParentDropdownList AS LONG
DIM SHARED __UI_TotalActiveMenus AS LONG, __UI_ActiveMenuIsContextMenu AS _BYTE
DIM SHARED __UI_SubMenuDelay AS SINGLE, __UI_HoveringSubMenu AS _BYTE
DIM SHARED __UI_TopMenuBarItem AS LONG
DIM SHARED __UI_ActiveTipID AS LONG, __UI_TipTimer AS SINGLE, __UI_PreviousTipID AS LONG
DIM SHARED __UI_ActiveTipTop AS INTEGER, __UI_ActiveTipLeft AS INTEGER
DIM SHARED __UI_FormID AS LONG, __UI_HasMenuBar AS LONG
DIM SHARED __UI_ScrollbarWidth AS INTEGER, __UI_ScrollbarButtonHeight AS INTEGER
DIM SHARED __UI_MenuBarOffset AS INTEGER, __UI_MenuItemOffset AS INTEGER
DIM SHARED __UI_NewMenuBarTextLeft AS INTEGER, __UI_DefaultCaptionIndent AS INTEGER
DIM SHARED __UI_ForceRedraw AS _BYTE, __UI_AutoRefresh AS _BYTE
DIM SHARED __UI_CurrentTitle AS STRING
DIM SHARED __UI_DesignMode AS _BYTE, __UI_FirstSelectedID AS LONG
DIM SHARED __UI_WaitMessage AS STRING, __UI_TotalSelectedControls AS LONG
DIM SHARED __UI_WaitMessageHandle AS LONG, __UI_EditorMode AS _BYTE
DIM SHARED __UI_LastRenderedCharCount AS LONG
DIM SHARED __UI_SelectionRectangleTop AS INTEGER, __UI_SelectionRectangleLeft AS INTEGER
DIM SHARED __UI_SelectionRectangle AS _BYTE
DIM SHARED __UI_CantShowContextMenu AS _BYTE, __UI_ShowPositionAndSize AS _BYTE
DIM SHARED __UI_ShowInvisibleControls AS _BYTE, __UI_Snapped AS _BYTE
DIM SHARED __UI_SnappedByProximityX AS _BYTE, __UI_SnappedByProximityY AS _BYTE
DIM SHARED __UI_SnappedX AS INTEGER, __UI_SnappedY AS INTEGER
DIM SHARED __UI_SnappedXID AS LONG, __UI_SnappedYID AS LONG
DIM SHARED __UI_SnapLines AS _BYTE, __UI_SnapDistance AS INTEGER, __UI_SnapDistanceFromForm AS INTEGER
DIM SHARED __UI_FrameRate AS SINGLE, __UI_Font8Offset AS INTEGER, __UI_Font16Offset AS INTEGER
DIM SHARED __UI_ClipboardCheck$, __UI_MenuBarOffsetV AS INTEGER
DIM SHARED __UI_KeepScreenHidden AS _BYTE, __UI_MaxBorderSize AS INTEGER
DIM SHARED __UI_InternalContextMenus AS LONG, __UI_DidClick AS _BYTE
DIM SHARED __UI_ContextMenuSourceID AS LONG
DIM SHARED __UI_FKey(1 TO 12) AS LONG
'Control types: -----------------------------------------------
DIM SHARED __UI_Type(0 TO 18) AS __UI_Types
__UI_Type(__UI_Type_Form).Name = "Form"
__UI_Type(__UI_Type_Frame).Name = "Frame"
__UI_Type(__UI_Type_Frame).DefaultWidth = 230
__UI_Type(__UI_Type_Frame).DefaultHeight = 150
__UI_Type(__UI_Type_Button).Name = "Button"
__UI_Type(__UI_Type_Button).DefaultWidth = 80
__UI_Type(__UI_Type_Button).DefaultHeight = 23
__UI_Type(__UI_Type_Label).Name = "Label"
__UI_Type(__UI_Type_Label).DefaultWidth = 150
__UI_Type(__UI_Type_Label).DefaultHeight = 23
__UI_Type(__UI_Type_CheckBox).Name = "CheckBox"
__UI_Type(__UI_Type_CheckBox).DefaultWidth = 150
__UI_Type(__UI_Type_CheckBox).DefaultHeight = 23
__UI_Type(__UI_Type_CheckBox).TurnsInto = __UI_Type_ToggleSwitch
__UI_Type(__UI_Type_RadioButton).Name = "RadioButton"
__UI_Type(__UI_Type_RadioButton).DefaultWidth = 150
__UI_Type(__UI_Type_RadioButton).DefaultHeight = 23
__UI_Type(__UI_Type_TextBox).Name = "TextBox"
__UI_Type(__UI_Type_TextBox).DefaultWidth = 120
__UI_Type(__UI_Type_TextBox).DefaultHeight = 23
__UI_Type(__UI_Type_ProgressBar).Name = "ProgressBar"
__UI_Type(__UI_Type_ProgressBar).DefaultWidth = 300
__UI_Type(__UI_Type_ProgressBar).DefaultHeight = 23
__UI_Type(__UI_Type_ListBox).Name = "ListBox"
__UI_Type(__UI_Type_ListBox).DefaultWidth = 200
__UI_Type(__UI_Type_ListBox).DefaultHeight = 200
__UI_Type(__UI_Type_ListBox).TurnsInto = __UI_Type_DropdownList
__UI_Type(__UI_Type_DropdownList).Name = "DropdownList"
__UI_Type(__UI_Type_DropdownList).DefaultWidth = 200
__UI_Type(__UI_Type_DropdownList).DefaultHeight = 23
__UI_Type(__UI_Type_DropdownList).TurnsInto = __UI_Type_ListBox
__UI_Type(__UI_Type_MenuBar).Name = "MenuBar"
__UI_Type(__UI_Type_MenuBar).TurnsInto = __UI_Type_ContextMenu
__UI_Type(__UI_Type_MenuBar).RestrictResize = __UI_CantResizeV
__UI_Type(__UI_Type_MenuItem).Name = "MenuItem"
__UI_Type(__UI_Type_MenuItem).RestrictResize = __UI_CantResizeV
__UI_Type(__UI_Type_MenuPanel).Name = "MenuPanel"
__UI_Type(__UI_Type_PictureBox).Name = "PictureBox"
__UI_Type(__UI_Type_PictureBox).DefaultWidth = 230
__UI_Type(__UI_Type_PictureBox).DefaultHeight = 150
__UI_Type(__UI_Type_TrackBar).Name = "TrackBar"
__UI_Type(__UI_Type_TrackBar).DefaultWidth = 300
__UI_Type(__UI_Type_TrackBar).DefaultHeight = 40
__UI_Type(__UI_Type_TrackBar).MinimumHeight = 30
__UI_Type(__UI_Type_TrackBar).RestrictResize = __UI_CantResizeV
__UI_Type(__UI_Type_ContextMenu).Name = "ContextMenu"
__UI_Type(__UI_Type_ContextMenu).TurnsInto = __UI_Type_MenuBar
__UI_Type(__UI_Type_ContextMenu).RestrictResize = __UI_CantResize
__UI_Type(__UI_Type_ContextMenu).DefaultWidth = 22
__UI_Type(__UI_Type_ContextMenu).DefaultHeight = 22
__UI_Type(__UI_Type_Font).Name = "Font"
__UI_Type(__UI_Type_ToggleSwitch).Name = "ToggleSwitch"
__UI_Type(__UI_Type_ToggleSwitch).DefaultWidth = 40
__UI_Type(__UI_Type_ToggleSwitch).DefaultHeight = 17
__UI_Type(__UI_Type_ToggleSwitch).TurnsInto = __UI_Type_CheckBox
__UI_Type(__UI_Type_ToggleSwitch).RestrictResize = __UI_CantResize
'--------------------------------------------------------------
__UI_RestoreFKeys
CONST FALSE = 0, TRUE = Not FALSE
'$INCLUDE:'InFormVersion.bas'
__UI_SubMenuDelay = .4
__UI_SnapDistance = 5
__UI_SnapDistanceFromForm = 10
__UI_MaxBorderSize = 10
__UI_Font8Offset = 5
__UI_Font16Offset = 3
__UI_ClipboardCheck$ = "InForm" + STRING$(2, 10) + "BEGIN CONTROL DATA" + CHR$(10) + STRING$(60, 45) + CHR$(10)
__UI_ThemeSetup
__UI_InternalMenus
__UI_LoadForm
__UI_Init
'Main loop
DO
_LIMIT 1
LOOP
SYSTEM
__UI_ErrorHandler:
RESUME NEXT
'$INCLUDE:'extensions/Base64.bas'
'$INCLUDE:'extensions/HashTable.bas'

File diff suppressed because it is too large Load diff

310
InForm/InFormCommon.bi Normal file
View file

@ -0,0 +1,310 @@
'-----------------------------------------------------------------------------------------------------------------------
' Common InForm header. This is included by the main InForm header file
' Copyright (c) 2024 Samuel Gomes
' Copyright (c) 2022 Fellippe Heitor
'-----------------------------------------------------------------------------------------------------------------------
$IF INFORMCOMMON_BI = UNDEFINED THEN
$LET INFORMCOMMON_BI = TRUE
' Do a complier check to ensure we have the minimum version needed
$IF VERSION < 3.11.0 THEN
$ERROR 'This requires the latest version of QB64-PE from https://github.com/QB64-Phoenix-Edition/QB64pe/releases'
$END IF
'$INCLUDE:'InFormVersion.bi'
'$INCLUDE:'extensions/HashTable.bi'
'$INCLUDE:'extensions/MessageBox.bi'
CONST FALSE%% = 0%%, TRUE%% = NOT FALSE
' InForm theme image IDs
CONST __INFORM_THEME_IMAGE_ARROWS~%% = 1~%%
CONST __INFORM_THEME_IMAGE_BUTTON~%% = 2~%%
CONST __INFORM_THEME_IMAGE_CHECKBOX~%% = 3~%%
CONST __INFORM_THEME_IMAGE_FRAME~%% = 4~%%
CONST __INFORM_THEME_IMAGE_MENUCHECKMARK~%% = 5~%%
CONST __INFORM_THEME_IMAGE_NOTFOUND~%% = 6~%%
CONST __INFORM_THEME_IMAGE_PROGRESSCHUNK~%% = 7~%%
CONST __INFORM_THEME_IMAGE_PROGRESSTRACK~%% = 8~%%
CONST __INFORM_THEME_IMAGE_RADIOBUTTON~%% = 9~%%
CONST __INFORM_THEME_IMAGE_SCROLLBUTTONS~%% = 10~%%
CONST __INFORM_THEME_IMAGE_SCROLLHBUTTONS~%% = 11~%%
CONST __INFORM_THEME_IMAGE_SCROLLHTHUMB~%% = 12~%%
CONST __INFORM_THEME_IMAGE_SCROLLHTRACK~%% = 13~%%
CONST __INFORM_THEME_IMAGE_SCROLLTHUMB~%% = 14~%%
CONST __INFORM_THEME_IMAGE_SCROLLTRACK~%% = 15~%%
CONST __INFORM_THEME_IMAGE_SLIDERDOWN~%% = 16~%%
CONST __INFORM_THEME_IMAGE_SLIDERTRACK~%% = 17~%%
'Control types:
CONST __UI_Type_Form%% = 1%%
CONST __UI_Type_Frame%% = 2%%
CONST __UI_Type_Button%% = 3%%
CONST __UI_Type_Label%% = 4%%
CONST __UI_Type_CheckBox%% = 5%%
CONST __UI_Type_RadioButton%% = 6%%
CONST __UI_Type_TextBox%% = 7%%
CONST __UI_Type_ProgressBar%% = 8%%
CONST __UI_Type_ListBox%% = 9%%
CONST __UI_Type_DropdownList%% = 10%%
CONST __UI_Type_MenuBar%% = 11%%
CONST __UI_Type_MenuItem%% = 12%%
CONST __UI_Type_MenuPanel%% = 13%%
CONST __UI_Type_PictureBox%% = 14%%
CONST __UI_Type_TrackBar%% = 15%%
CONST __UI_Type_ContextMenu%% = 16%%
CONST __UI_Type_Font%% = 17%%
CONST __UI_Type_ToggleSwitch%% = 18%%
'Back styles:
CONST __UI_Opaque%% = 0%%
CONST __UI_Transparent%% = -1%%
'Text alignment
CONST __UI_Left%% = 0%%
CONST __UI_Center%% = 1%%
CONST __UI_Right%% = 2%%
CONST __UI_Top%% = 0%%
CONST __UI_Middle%% = 1%%
CONST __UI_Bottom%% = 2%%
'Textbox controls
CONST __UI_NumericWithoutBounds%% = -1%%
CONST __UI_NumericWithBounds%% = 2%%
'BulletStyle
CONST __UI_CheckMark%% = 0%%
CONST __UI_Bullet%% = 1%%
'General constants
CONST __UI_ToolTipTimeOut! = 0.8!
CONST __UI_CantResizeV%% = 1%%
CONST __UI_CantResizeH%% = 2%%
CONST __UI_CantResize%% = 3%%
DECLARE LIBRARY
FUNCTION __UI_GetPID ALIAS getpid
END DECLARE
DECLARE CUSTOMTYPE LIBRARY
SUB __UI_MemCopy ALIAS memcpy (BYVAL dest AS _OFFSET, BYVAL source AS _OFFSET, BYVAL bytes AS LONG)
END DECLARE
$IF WIN THEN
DECLARE LIBRARY
FUNCTION GetSystemMetrics& (BYVAL WhichMetric&)
END DECLARE
CONST __UI_SM_SWAPBUTTON = 23
$END IF
TYPE __UI_ControlTYPE
ID AS LONG
ParentID AS LONG
PreviousParentID AS LONG
ContextMenuID AS LONG
Type AS INTEGER
Name AS STRING * 40
ParentName AS STRING * 40
SubMenu AS _BYTE
MenuPanelID AS LONG
SourceControl AS LONG
Top AS INTEGER
Left AS INTEGER
Width AS INTEGER
Height AS INTEGER
Canvas AS LONG
HelperCanvas AS LONG
TransparentColor AS _UNSIGNED LONG
Stretch AS _BYTE
PreviousStretch AS _BYTE
Font AS INTEGER
PreviousFont AS INTEGER
BackColor AS _UNSIGNED LONG
ForeColor AS _UNSIGNED LONG
SelectedForeColor AS _UNSIGNED LONG
SelectedBackColor AS _UNSIGNED LONG
BackStyle AS _BYTE
HasBorder AS _BYTE
BorderSize AS INTEGER
Padding AS INTEGER
Encoding AS LONG
Align AS _BYTE
PrevAlign AS _BYTE
VAlign AS _BYTE
PrevVAlign AS _BYTE
BorderColor AS _UNSIGNED LONG
Value AS _FLOAT
PreviousValue AS _FLOAT
Min AS _FLOAT
PrevMin AS _FLOAT
Max AS _FLOAT
PrevMax AS _FLOAT
Interval AS _FLOAT
PrevInterval AS _FLOAT
MinInterval AS _FLOAT
PrevMinInterval AS _FLOAT
HotKey AS INTEGER
HotKeyOffset AS INTEGER
HotKeyPosition AS INTEGER
ShowPercentage AS _BYTE
AutoScroll AS _BYTE
AutoSize AS _BYTE
InputViewStart AS LONG
PreviousInputViewStart AS LONG
LastVisibleItem AS INTEGER
ItemHeight AS INTEGER
HasVScrollbar AS _BYTE
VScrollbarButton2Top AS INTEGER
HoveringVScrollbarButton AS _BYTE
ThumbHeight AS INTEGER
ThumbTop AS INTEGER
VScrollbarRatio AS SINGLE
Cursor AS LONG
PasswordField AS _BYTE
PrevCursor AS LONG
FieldArea AS LONG
PreviousFieldArea AS LONG
TextIsSelected AS _BYTE
BypassSelectOnFocus AS _BYTE
Multiline AS _BYTE
NumericOnly AS _BYTE
FirstVisibleLine AS LONG
PrevFirstVisibleLine AS LONG
CurrentLine AS LONG
PrevCurrentLine AS LONG
VisibleCursor AS LONG
PrevVisibleCursor AS LONG
ControlIsSelected AS _BYTE
LeftOffsetFromFirstSelected AS INTEGER
TopOffsetFromFirstSelected AS INTEGER
SelectionLength AS LONG
SelectionStart AS LONG
WordWrap AS _BYTE
CanResize AS _BYTE
CanHaveFocus AS _BYTE
Disabled AS _BYTE
Hidden AS _BYTE
PreviouslyHidden AS _BYTE
CenteredWindow AS _BYTE
ControlState AS _BYTE
ChildrenRedrawn AS _BYTE
FocusState AS LONG
LastChange AS SINGLE
Redraw AS _BYTE
BulletStyle AS _BYTE
MenuItemGroup AS INTEGER
KeyCombo AS LONG
BoundTo AS LONG
BoundProperty AS LONG
END TYPE
TYPE __UI_Types
Name AS STRING * 16
Count AS LONG
TurnsInto AS INTEGER
DefaultHeight AS INTEGER
MinimumHeight AS INTEGER
DefaultWidth AS INTEGER
MinimumWidth AS INTEGER
RestrictResize AS _BYTE
END TYPE
TYPE __UI_WordWrapHistoryType
StringSlot AS LONG
Width AS INTEGER
LongestLine AS INTEGER
Font AS LONG
TotalLines AS INTEGER
END TYPE
TYPE __UI_KeyCombos
Combo AS STRING * 14 ' "CTRL+SHIFT+F12"
FriendlyCombo AS STRING * 14 ' "Ctrl+Shift+F12"
ControlID AS LONG
END TYPE
REDIM SHARED Caption(0 TO 100) AS STRING
REDIM SHARED __UI_TempCaptions(0 TO 100) AS STRING
REDIM SHARED Text(0 TO 100) AS STRING
REDIM SHARED __UI_TempTexts(0 TO 100) AS STRING
REDIM SHARED Mask(0 TO 100) AS STRING
REDIM SHARED __UI_TempMask(0 TO 100) AS STRING
REDIM SHARED ToolTip(0 TO 100) AS STRING
REDIM SHARED __UI_TempTips(0 TO 100) AS STRING
REDIM SHARED Control(0 TO 100) AS __UI_ControlTYPE
REDIM SHARED ControlDrawOrder(0) AS LONG
REDIM __UI_ThemeImages(0 TO 0) AS HashTableType
REDIM SHARED __UI_WordWrapHistoryTexts(0 TO 100) AS STRING
REDIM SHARED __UI_WordWrapHistoryResults(0 TO 100) AS STRING
REDIM SHARED __UI_WordWrapHistory(0 TO 100) AS __UI_WordWrapHistoryType
REDIM SHARED __UI_ThisLineChars(0) AS LONG, __UI_FocusedTextBoxChars(0) AS LONG
REDIM SHARED __UI_ActiveMenu(0 TO 100) AS LONG, __UI_ParentMenu(0 TO 100) AS LONG
REDIM SHARED __UI_KeyCombo(0 TO 100) AS __UI_KeyCombos
DIM SHARED __UI_TotalKeyCombos AS LONG, __UI_BypassKeyCombos AS _BYTE
DIM SHARED table1252$(0 TO 255), table437$(0 TO 255)
DIM SHARED __UI_MouseLeft AS INTEGER, __UI_MouseTop AS INTEGER
DIM SHARED __UI_MouseWheel AS INTEGER, __UI_MouseButtonsSwap AS _BYTE
DIM SHARED __UI_PrevMouseLeft AS INTEGER, __UI_PrevMouseTop AS INTEGER
DIM SHARED __UI_MouseButton1 AS _BYTE, __UI_MouseButton2 AS _BYTE
DIM SHARED __UI_MouseIsDown AS _BYTE, __UI_MouseDownOnID AS LONG
DIM SHARED __UI_Mouse2IsDown AS _BYTE, __UI_Mouse2DownOnID AS LONG
DIM SHARED __UI_PreviousMouseDownOnID AS LONG
DIM SHARED __UI_KeyIsDown AS _BYTE, __UI_KeyDownOnID AS LONG
DIM SHARED __UI_ShiftIsDown AS _BYTE, __UI_CtrlIsDown AS _BYTE
DIM SHARED __UI_AltIsDown AS _BYTE, __UI_ShowHotKeys AS _BYTE, __UI_AltCombo$
DIM SHARED __UI_LastMouseClick AS SINGLE, __UI_MouseDownOnScrollbar AS SINGLE
DIM SHARED __UI_DragX AS INTEGER, __UI_DragY AS INTEGER
DIM SHARED __UI_DefaultButtonID AS LONG
DIM SHARED __UI_KeyHit AS LONG, __UI_KeepFocus AS _BYTE
DIM SHARED __UI_Focus AS LONG, __UI_PreviousFocus AS LONG, __UI_KeyboardFocus AS _BYTE
DIM SHARED __UI_HoveringID AS LONG, __UI_LastHoveringID AS LONG, __UI_BelowHoveringID AS LONG
DIM SHARED __UI_IsDragging AS _BYTE, __UI_DraggingID AS LONG
DIM SHARED __UI_IsResizing AS _BYTE, __UI_ResizingID AS LONG
DIM SHARED __UI_ResizeHandleHover AS _BYTE
DIM SHARED __UI_IsSelectingText AS _BYTE, __UI_IsSelectingTextOnID AS LONG
DIM SHARED __UI_SelectedText AS STRING, __UI_SelectionLength AS LONG
DIM SHARED __UI_StateHasChanged AS _BYTE
DIM SHARED __UI_DraggingThumb AS _BYTE, __UI_ThumbDragTop AS INTEGER
DIM SHARED __UI_DraggingThumbOnID AS LONG
DIM SHARED __UI_HasInput AS _BYTE, __UI_ProcessInputTimer AS SINGLE
DIM SHARED __UI_UnloadSignal AS _BYTE, __UI_HasResized AS _BYTE
DIM SHARED __UI_ExitTriggered AS _BYTE
DIM SHARED __UI_Loaded AS _BYTE
DIM SHARED __UI_EventsTimer AS INTEGER, __UI_RefreshTimer AS INTEGER
DIM SHARED __UI_ActiveDropdownList AS LONG, __UI_ParentDropdownList AS LONG
DIM SHARED __UI_TotalActiveMenus AS LONG, __UI_ActiveMenuIsContextMenu AS _BYTE
DIM SHARED __UI_SubMenuDelay AS SINGLE, __UI_HoveringSubMenu AS _BYTE
DIM SHARED __UI_TopMenuBarItem AS LONG
DIM SHARED __UI_ActiveTipID AS LONG, __UI_TipTimer AS SINGLE, __UI_PreviousTipID AS LONG
DIM SHARED __UI_ActiveTipTop AS INTEGER, __UI_ActiveTipLeft AS INTEGER
DIM SHARED __UI_FormID AS LONG, __UI_HasMenuBar AS LONG
DIM SHARED __UI_ScrollbarWidth AS INTEGER, __UI_ScrollbarButtonHeight AS INTEGER
DIM SHARED __UI_MenuBarOffset AS INTEGER, __UI_MenuItemOffset AS INTEGER
DIM SHARED __UI_NewMenuBarTextLeft AS INTEGER, __UI_DefaultCaptionIndent AS INTEGER
DIM SHARED __UI_ForceRedraw AS _BYTE, __UI_AutoRefresh AS _BYTE
DIM SHARED __UI_CurrentTitle AS STRING
DIM SHARED __UI_DesignMode AS _BYTE, __UI_FirstSelectedID AS LONG
DIM SHARED __UI_WaitMessage AS STRING, __UI_TotalSelectedControls AS LONG
DIM SHARED __UI_WaitMessageHandle AS LONG, __UI_EditorMode AS _BYTE
DIM SHARED __UI_LastRenderedCharCount AS LONG
DIM SHARED __UI_SelectionRectangleTop AS INTEGER, __UI_SelectionRectangleLeft AS INTEGER
DIM SHARED __UI_SelectionRectangle AS _BYTE
DIM SHARED __UI_CantShowContextMenu AS _BYTE, __UI_ShowPositionAndSize AS _BYTE
DIM SHARED __UI_ShowInvisibleControls AS _BYTE, __UI_Snapped AS _BYTE
DIM SHARED __UI_SnappedByProximityX AS _BYTE, __UI_SnappedByProximityY AS _BYTE
DIM SHARED __UI_SnappedX AS INTEGER, __UI_SnappedY AS INTEGER
DIM SHARED __UI_SnappedXID AS LONG, __UI_SnappedYID AS LONG
DIM SHARED __UI_SnapLines AS _BYTE, __UI_SnapDistance AS INTEGER, __UI_SnapDistanceFromForm AS INTEGER
DIM SHARED __UI_FrameRate AS SINGLE, __UI_Font8Offset AS INTEGER, __UI_Font16Offset AS INTEGER
DIM SHARED __UI_ClipboardCheck$, __UI_MenuBarOffsetV AS INTEGER
DIM SHARED __UI_KeepScreenHidden AS _BYTE, __UI_MaxBorderSize AS INTEGER
DIM SHARED __UI_InternalContextMenus AS LONG, __UI_DidClick AS _BYTE
DIM SHARED __UI_ContextMenuSourceID AS LONG
DIM SHARED __UI_FKey(1 TO 12) AS LONG
DIM SHARED __UI_Type(0 TO 18) AS __UI_Types
$END IF

View file

@ -1,3 +0,0 @@
' SemVer (Major.Minor.Patch)
CONST __UI_Version = "1.5.3"

15
InForm/InFormVersion.bi Normal file
View file

@ -0,0 +1,15 @@
'-----------------------------------------------------------------------------------------------------------------------
' InForm SemVer (Major.Minor.Patch). This is included by the common header file
' Copyright (c) 2024 Samuel Gomes
' Copyright (c) 2022 Fellippe Heitor
'-----------------------------------------------------------------------------------------------------------------------
$IF INFORMVERSION_BI = UNDEFINED THEN
$LET INFORMVERSION_BI = TRUE
CONST __UI_VersionMajor = "1"
CONST __UI_VersionMinor = "5"
CONST __UI_VersionPatch = "3"
CONST __UI_Version = __UI_VersionMajor + "." + __UI_VersionMinor + "." + __UI_VersionPatch
$END IF

View file

@ -1,8 +1,13 @@
OPTION _EXPLICIT
OPTION _EXPLICITARRAY
$UNSTABLE:HTTP
'-----------------------------------------------------------------------------------------------------------------------
' InForm-PE GUI engine for QB64-PE
' Copyright (c) 2024 Samuel Gomes
' Copyright (c) 2023 George McGinn
' Copyright (c) 2022 Fellippe Heitor
'-----------------------------------------------------------------------------------------------------------------------
$EXEICON:'.\resources\InForm.ico'
OPTION _EXPLICIT
$EXEICON:'./resources/InForm.ico'
'Controls: --------------------------------------------------------------------
'Main form
@ -332,13 +337,10 @@ $ELSE
$END IF
'$INCLUDE:'extensions/Ini.bi'
'$INCLUDE:'extensions/MessageBox.bi'
'$INCLUDE:'InForm.bi'
'$INCLUDE:'xp.uitheme'
'$INCLUDE:'UiEditor.frm'
'$INCLUDE:'InForm.ui'
'$INCLUDE:'extensions/Ini.bas'
'$INCLUDE:'extensions/MessageBox.bas'
'Event procedures: ---------------------------------------------------------------
SUB __UI_Click (id AS LONG)
@ -577,7 +579,7 @@ SUB __UI_Click (id AS LONG)
SaveForm TRUE, Control(SaveFrmOnlyCB).Value
END IF
CASE HelpMenuAbout
MessageBox "InForm GUI engine for QB64-PE" + CHR$(13) + "Fellippe Heitor, (2016 - 2022) - @FellippeHeitor" + chr$(13) + "George McGinn, 2023 - gbytes58@gmail.com"+ CHR$(13) + "Samuel Gomes, (2023 - 2024) - @a740g" + STRING$(2, 13) + UiEditorTitle$ + " v" + __UI_Version + STRING$(2, 13) + "https://github.com/a740g/InForm-PE", UiEditorTitle$ + " - About", MsgBox_Information
MessageBox "InForm GUI engine for QB64-PE" + CHR$(13) + "Fellippe Heitor, (2016 - 2022) - @FellippeHeitor" + CHR$(13) + "George McGinn, 2023 - gbytes58@gmail.com" + CHR$(13) + "Samuel Gomes, (2023 - 2024) - @a740g" + STRING$(2, 13) + UiEditorTitle$ + " v" + __UI_Version + STRING$(2, 13) + "https://github.com/a740g/InForm-PE", UiEditorTitle$ + " - About", MsgBox_Information
CASE HelpMenuHelp
MessageBox "Design a form and export the resulting code to generate an event-driven QB64-PE program.", UiEditorTitle$ + " - What's all this?", MsgBox_Information
CASE FileMenuExit

View file

@ -1,6 +1,11 @@
'-----------------------------------------------------------------------------------------------------------------------
' InForm-PE GUI engine for QB64-PE
' Copyright (c) 2024 Samuel Gomes
' Copyright (c) 2023 George McGinn
' Copyright (c) 2022 Fellippe Heitor
'-----------------------------------------------------------------------------------------------------------------------
OPTION _EXPLICIT
OPTION _EXPLICITARRAY
$UNSTABLE:HTTP
DIM SHARED UiEditorPID AS LONG, ExeIcon AS LONG
DIM SHARED AutoNameControls AS _BYTE
@ -83,34 +88,52 @@ ContextMenuIcon = LoadEditorImage(EDITOR_IMAGE_CONTEXTMENU)
__UI_ClearColor ContextMenuIcon, 0, 0
'$INCLUDE:'extensions/GIFPlay.bi'
'$INCLUDE:'extensions/MessageBox.bi'
'$INCLUDE:'InForm.bi'
'$INCLUDE:'UiEditorPreview.frm'
'$INCLUDE:'xp.uitheme'
'$INCLUDE:'InForm.ui'
'$INCLUDE:'extensions/GIFPlay.bas'
'$INCLUDE:'extensions/MessageBox.bas'
'Event procedures: ---------------------------------------------------------------
SUB __UI_Click (id AS LONG)
SELECT CASE id
CASE ELSE
END SELECT
END SUB
SUB __UI_MouseEnter (id AS LONG)
SELECT CASE id
CASE ELSE
END SELECT
END SUB
SUB __UI_MouseLeave (id AS LONG)
SELECT CASE id
CASE ELSE
END SELECT
END SUB
SUB __UI_FocusIn (id AS LONG)
SELECT CASE id
CASE ELSE
END SELECT
END SUB
SUB __UI_FocusOut (id AS LONG)
SELECT CASE id
CASE ELSE
END SELECT
END SUB
SUB __UI_MouseDown (id AS LONG)
SELECT CASE id
CASE ELSE
END SELECT
END SUB
SUB __UI_MouseUp (id AS LONG)
SELECT CASE id
CASE ELSE
END SELECT
END SUB
FUNCTION AddNewMenuBarControl&
@ -2239,9 +2262,15 @@ SUB RefreshContextMenus
END SUB
SUB __UI_TextChanged (id AS LONG)
SELECT CASE id
CASE ELSE
END SELECT
END SUB
SUB __UI_ValueChanged (id AS LONG)
SELECT CASE id
CASE ELSE
END SELECT
END SUB
FUNCTION ReadSequential$ (Txt$, Bytes%)

View file

@ -1,6 +1,6 @@
'-----------------------------------------------------------------------------------------------------------------------
' Base64 Encoder and Decoder library
' Copyright (c) 2023 Samuel Gomes
' Base64 encoder, decoder & resource loading library
' Copyright (c) 2024 Samuel Gomes
'-----------------------------------------------------------------------------------------------------------------------
$IF BASE64_BAS = UNDEFINED THEN

View file

@ -1,6 +1,6 @@
'-----------------------------------------------------------------------------------------------------------------------
' Animated GIF Player library
' Copyright (c) 2023 Samuel Gomes
' Copyright (c) 2024 Samuel Gomes
'-----------------------------------------------------------------------------------------------------------------------
$IF GIFPLAY_BAS = UNDEFINED THEN

View file

@ -1,6 +1,6 @@
'-----------------------------------------------------------------------------------------------------------------------
' Animated GIF Player library
' Copyright (c) 2023 Samuel Gomes
' Copyright (c) 2024 Samuel Gomes
'-----------------------------------------------------------------------------------------------------------------------
$IF GIFPLAY_BI = UNDEFINED THEN

View file

@ -1,6 +1,6 @@
'-----------------------------------------------------------------------------------------------------------------------
' A simple hash table for integers and QB64 handles
' Copyright (c) 2023 Samuel Gomes
' A simple hash table for integers and QB64-PE handles
' Copyright (c) 2024 Samuel Gomes
'-----------------------------------------------------------------------------------------------------------------------
$IF HASHTABLE_BAS = UNDEFINED THEN

View file

@ -1,6 +1,6 @@
'-----------------------------------------------------------------------------------------------------------------------
' A simple hash table for integers and QB64 handles
' Copyright (c) 2023 Samuel Gomes
' A simple hash table for integers and QB64-PE handles
' Copyright (c) 2024 Samuel Gomes
'-----------------------------------------------------------------------------------------------------------------------
$IF HASHTABLE_BI = UNDEFINED THEN

View file

@ -1,8 +1,8 @@
'-----------------------------------------------------------------------------------------------------------------------
' INI Manager
' Fellippe Heitor, 2017-2021 - fellippe@qb64.org - @fellippeheitor
' https://github.com/FellippeHeitor/INI-Manager
'
' Add include guards - @a740g
' Copyright (c) 2024 Samuel Gomes
' Copyright (c) 2022 Fellippe Heitor
'-----------------------------------------------------------------------------------------------------------------------
$IF INI_BAS = UNDEFINED THEN
$LET INI_BAS = TRUE

View file

@ -1,8 +1,8 @@
'-----------------------------------------------------------------------------------------------------------------------
' INI Manager
' Fellippe Heitor, 2017-2021 - fellippe@qb64.org - @fellippeheitor
' https://github.com/FellippeHeitor/INI-Manager
'
' Add include guards - @a740g
' Copyright (c) 2024 Samuel Gomes
' Copyright (c) 2022 Fellippe Heitor
'-----------------------------------------------------------------------------------------------------------------------
$IF INI_BI = UNDEFINED THEN
$LET INI_BI = TRUE

View file

@ -1,7 +1,8 @@
' MessageBox compatibility functions
' These basically emulates the legacy InForm MessageBox routines
' All it does is calls the new QB64-PE _MESSAGEBOX$ function
' Copyright (c) 2023 Samuel Gomes
'-----------------------------------------------------------------------------------------------------------------------
' InForm MessageBox compatibility functions. These basically emulates the legacy InForm MessageBox routines
' Copyright (c) 2024 Samuel Gomes
' Copyright (c) 2022 Fellippe Heitor
'-----------------------------------------------------------------------------------------------------------------------
$IF MESSAGEBOX_BAS = UNDEFINED THEN
$LET MESSAGEBOX_BAS = TRUE

View file

@ -1,7 +1,8 @@
' MessageBox compatibility functions
' These basically emulates the legacy InForm MessageBox routines
' All it does is calls the new QB64-PE _MESSAGEBOX$ function
' Copyright (c) 2023 Samuel Gomes
'-----------------------------------------------------------------------------------------------------------------------
' InForm MessageBox compatibility functions. These basically emulates the legacy InForm MessageBox routines
' Copyright (c) 2024 Samuel Gomes
' Copyright (c) 2022 Fellippe Heitor
'-----------------------------------------------------------------------------------------------------------------------
$IF MESSAGEBOX_BI = UNDEFINED THEN
$LET MESSAGEBOX_BI = TRUE

View file

@ -1,6 +1,6 @@
'-----------------------------------------------------------------------------------------------------------------------
' File I/O like routines for memory loaded files
' Copyright (c) 2023 Samuel Gomes
' Copyright (c) 2024 Samuel Gomes
'-----------------------------------------------------------------------------------------------------------------------
$IF STRINGFILE_BAS = UNDEFINED THEN

View file

@ -1,6 +1,6 @@
'-----------------------------------------------------------------------------------------------------------------------
' File I/O like routines for memory loaded files
' Copyright (c) 2023 Samuel Gomes
' Copyright (c) 2024 Samuel Gomes
'-----------------------------------------------------------------------------------------------------------------------
$IF STRINGFILE_BI = UNDEFINED THEN

View file

@ -1,9 +1,16 @@
OPTION _EXPLICIT
'-----------------------------------------------------------------------------------------------------------------------
' VBDOS to InForm form conversion utility
' Copyright (c) 2024 Samuel Gomes
' Copyright (c) 2023 George McGinn
' Copyright (c) 2022 Fellippe Heitor
'-----------------------------------------------------------------------------------------------------------------------
$CONSOLE:ONLY
OPTION _EXPLICIT
CONST FALSE = 0, TRUE = NOT FALSE
CONST FALSE%% = 0%%, TRUE%% = NOT FALSE
'$INCLUDE:'InFormVersion.bas'
'$INCLUDE:'InFormVersion.bi'
PRINT "InForm GUI engine for QB64-PE - v"; __UI_Version
PRINT "VBDOS to InForm form conversion utility"

View file

@ -1,70 +1,75 @@
'---------------------------------------------------------------------------------
' *** XP.UITHEME ***
' UI theme mimicking Windows XP's controls style
' Image data embedded into SUB __UI_ImageData$
'---------------------------------------------------------------------------------
'-----------------------------------------------------------------------------------------------------------------------
' InForm-PE GUI theme mimicking Windows XP's controls style
' Copyright (c) 2024 Samuel Gomes
' Copyright (c) 2022 Fellippe Heitor
'-----------------------------------------------------------------------------------------------------------------------
SUB __UI_ThemeSetup
'Metrics
__UI_ScrollbarWidth = 17
__UI_ScrollbarButtonHeight = 17
__UI_MenuBarOffset = 8
__UI_MenuItemOffset = 22
__UI_DefaultCaptionIndent = 5
END SUB
$IF XP_UITHEME = UNDEFINED THEN
$LET XP_UITHEME = TRUE
'---------------------------------------------------------------------------------
FUNCTION __UI_DefaultColor~& (ControlType AS _BYTE, Attribute AS _BYTE)
DIM Colors(1 TO 6) AS _UNSIGNED LONG
'$INCLUDE:'InFormCommon.bi'
'.ForeColor
Colors(1) = _RGB32(0, 0, 0)
SUB __UI_ThemeSetup
'Metrics
__UI_ScrollbarWidth = 17
__UI_ScrollbarButtonHeight = 17
__UI_MenuBarOffset = 8
__UI_MenuItemOffset = 22
__UI_DefaultCaptionIndent = 5
END SUB
'---------------------------------------------------------------------------------
FUNCTION __UI_DefaultColor~& (ControlType AS _BYTE, Attribute AS _BYTE)
DIM Colors(1 TO 6) AS _UNSIGNED LONG
'.ForeColor
Colors(1) = _RGB32(0, 0, 0)
IF ControlType <> __UI_Type_Form AND Control(__UI_FormID).ForeColor <> Colors(1) THEN _
Colors(1) = Control(__UI_FormID).ForeColor
'.BackColor
Colors(2) = _RGB32(235, 233, 237)
'.BackColor
Colors(2) = _RGB32(235, 233, 237)
IF ControlType <> __UI_Type_Form AND Control(__UI_FormID).BackColor <> Colors(2) THEN _
Colors(2) = Control(__UI_FormID).BackColor
'.SelectedForeColor
Colors(3) = _RGB32(255, 255, 255)
'.SelectedForeColor
Colors(3) = _RGB32(255, 255, 255)
IF ControlType <> __UI_Type_Form AND Control(__UI_FormID).SelectedForeColor <> Colors(3) THEN _
Colors(3) = Control(__UI_FormID).SelectedForeColor
'.SelectedBackColor
Colors(4) = _RGB32(78, 150, 216)
'.SelectedBackColor
Colors(4) = _RGB32(78, 150, 216)
IF ControlType <> __UI_Type_Form AND Control(__UI_FormID).SelectedBackColor <> Colors(4) THEN _
Colors(4) = Control(__UI_FormID).SelectedBackColor
'.BorderColor
Colors(5) = _RGB32(167, 166, 170)
'.BorderColor
Colors(5) = _RGB32(167, 166, 170)
IF ControlType <> __UI_Type_Form AND Control(__UI_FormID).BorderColor <> Colors(5) THEN _
Colors(5) = Control(__UI_FormID).BorderColor
'Tip color (global property)
Colors(6) = _RGB32(255, 255, 225)
'Tip color (global property)
Colors(6) = _RGB32(255, 255, 225)
'Specific cases:
SELECT CASE ControlType
CASE __UI_Type_TextBox, __UI_Type_ListBox, __UI_Type_DropdownList
Colors(2) = _RGB32(255, 255, 255)
END SELECT
'Specific cases:
SELECT CASE ControlType
CASE __UI_Type_TextBox, __UI_Type_ListBox, __UI_Type_DropdownList
Colors(2) = _RGB32(255, 255, 255)
END SELECT
__UI_DefaultColor~& = Colors(Attribute)
END FUNCTION
__UI_DefaultColor~& = Colors(Attribute)
END FUNCTION
'---------------------------------------------------------------------------------
FUNCTION __UI_ImageData$ (id AS _UNSIGNED _BYTE)
SELECT CASE id
CASE __INFORM_THEME_IMAGE_ARROWS
CONST SIZE_ARROWS_BMP_5306~& = 5306~&
CONST COMP_ARROWS_BMP_5306%% = -1%%
'---------------------------------------------------------------------------------
FUNCTION __UI_ImageData$ (id AS _UNSIGNED _BYTE)
SELECT CASE id
CASE __INFORM_THEME_IMAGE_ARROWS
CONST SIZE_ARROWS_BMP_5306~& = 5306~&
CONST COMP_ARROWS_BMP_5306%% = -1%%
CONST DATA_ARROWS_BMP_5306 = _
"eNpy8t0lwgAGVUCcA8ScQDwBiBkZFBiYGXCB/xAE45AEYJr+/4fhx6e3g2hMjJAH4QFWR395wuGDwC3V2YTkQXgg1dFXHlMdHcJwNAyLU6IB7ZcB" + _
"BgAACAP//+vAADlwJsIhKzIakR5afb7O/iCXsqnVRx5euqtW33voe3gpmwp9pDNCZoZFhxrncH8f/97DokONc7C/wHso4GdmWHSocU7INBPOHyn/" + _
"hH+4BN+Oerv+LyfwHgpw/kj5J//DzAC3fJnz"
__UI_ImageData = Base64_LoadResourceString(DATA_ARROWS_BMP_5306, SIZE_ARROWS_BMP_5306, COMP_ARROWS_BMP_5306)
__UI_ImageData = Base64_LoadResourceString(DATA_ARROWS_BMP_5306, SIZE_ARROWS_BMP_5306, COMP_ARROWS_BMP_5306)
CASE __INFORM_THEME_IMAGE_BUTTON
CONST SIZE_BUTTON_BMP_7682~& = 7682~&
CONST COMP_BUTTON_BMP_7682%% = -1%%
CASE __INFORM_THEME_IMAGE_BUTTON
CONST SIZE_BUTTON_BMP_7682~& = 7682~&
CONST COMP_BUTTON_BMP_7682%% = -1%%
CONST DATA_BUTTON_BMP_7682 = _
"eNpy8mWSYwCDKiDOAWIhIM4EYkYGBQZmBlwA0I45MEmSRlH016wdWNu20WPbtm22bdu2bds27uZdvKioUL+xOuaMz2lV3fyy8O8P+YP+LSPUDX4/" + _
"P3dT/N8IWPga/Fe9c0MELHoD0lzwCv8O0YcXImqfxazg/w3d9BFd6WQc/wlR+y1QGO2pgQ5d6WSe/MXoL0BZgr8KOnSlc+o3xBxZgpqMSA106Eon" + _
@ -81,11 +86,11 @@ FUNCTION __UI_ImageData$ (id AS _UNSIGNED _BYTE)
"Q1c6TTnxmBge0O48HbrSac1PwuTIoHbn6dCVTltRKqbGhrU7T4eudDpLMzE9PqLdeTp0pdNdmYuZiTHtztOhK52+6gJgaly7z3ToSqe/rhQw+srX" + _
"AOjQlZ0fbqsFJsfUr0nQoXsvnuf/Bu9ttOA="
__UI_ImageData = Base64_LoadResourceString(DATA_BUTTON_BMP_7682, SIZE_BUTTON_BMP_7682, COMP_BUTTON_BMP_7682)
__UI_ImageData = Base64_LoadResourceString(DATA_BUTTON_BMP_7682, SIZE_BUTTON_BMP_7682, COMP_BUTTON_BMP_7682)
CASE __INFORM_THEME_IMAGE_CHECKBOX
CONST SIZE_CHECKBOX_BMP_5530~& = 5530~&
CONST COMP_CHECKBOX_BMP_5530%% = -1%%
CASE __INFORM_THEME_IMAGE_CHECKBOX
CONST SIZE_CHECKBOX_BMP_5530~& = 5530~&
CONST COMP_CHECKBOX_BMP_5530%% = -1%%
CONST DATA_CHECKBOX_BMP_5530 = _
"eNpy8p0lygAGVUCcA8S8QJwBxIwMCgzMDLjAfwiCccgAJ48e+08OJgUA2q0HGNmSKAzAsa2xYq9tb7DeaDdc27YdrO1n27bttj3W5f+6kvyZm9Tr" + _
"qnrmJM1b39Spc27S/zE0/M7USDVrjPKsGiN5ndHVadI3Q6Ps4wmd6RE8Prin+Yge63bvxaYDIWyNxLAzkcKeTBb780WEShVEKl2IdfXwQYPV23cY" + _
@ -98,29 +103,29 @@ FUNCTION __UI_ImageData$ (id AS _UNSIGNED _BYTE)
"TmV4PhrmNZVhX2iY81SG/aRhPlQZzkGRR9kXzoHz0+ZR2Z34PMqM0R/IlrbjwFXkUWYTEydnS72jyeTzxo4mmckYO5poMmnsaELxuLGj2R+NGjua" + _
"veGwsQsYUycZA3fE99pBQT3OQA=="
__UI_ImageData = Base64_LoadResourceString(DATA_CHECKBOX_BMP_5530, SIZE_CHECKBOX_BMP_5530, COMP_CHECKBOX_BMP_5530)
__UI_ImageData = Base64_LoadResourceString(DATA_CHECKBOX_BMP_5530, SIZE_CHECKBOX_BMP_5530, COMP_CHECKBOX_BMP_5530)
CASE __INFORM_THEME_IMAGE_FRAME
CONST SIZE_FRAME_BMP_1882~& = 1882~&
CONST COMP_FRAME_BMP_1882%% = -1%%
CASE __INFORM_THEME_IMAGE_FRAME
CONST SIZE_FRAME_BMP_1882~& = 1882~&
CONST COMP_FRAME_BMP_1882%% = -1%%
CONST DATA_FRAME_BMP_1882 = _
"eNpz8o1iZwCDKiDOAWIxIBYBYkYGBQZmBlzgPwTBOCQBmKb//0H45tVrFOP9Fy+CzUIzE8SmCB+5fBlsDqaZlOOjILMRZlITg8KDFuaCzBw1d9Tc" + _
"UXNHzcVV7tCqnKRZuU6reggAlatSMg=="
__UI_ImageData = Base64_LoadResourceString(DATA_FRAME_BMP_1882, SIZE_FRAME_BMP_1882, COMP_FRAME_BMP_1882)
__UI_ImageData = Base64_LoadResourceString(DATA_FRAME_BMP_1882, SIZE_FRAME_BMP_1882, COMP_FRAME_BMP_1882)
CASE __INFORM_THEME_IMAGE_MENUCHECKMARK
CONST SIZE_MENUCHECKMARK_BMP_710~& = 710~&
CONST COMP_MENUCHECKMARK_BMP_710%% = -1%%
CASE __INFORM_THEME_IMAGE_MENUCHECKMARK
CONST SIZE_MENUCHECKMARK_BMP_710~& = 710~&
CONST COMP_MENUCHECKMARK_BMP_710%% = -1%%
CONST DATA_MENUCHECKMARK_BMP_710 = _
"eNpy8j3GxAAGVUCcA8TsQCwKxIA+xugEQCiIYRUXcXoFlzw5yF+wxeC7Bnrkypm/DB+H42hhZnnvZ/8A9OAeQI637rIvivPeJobYO3axrzsRxXkv" + _
"iT09uAeQ46277As7+w+Yz6hS"
__UI_ImageData = Base64_LoadResourceString(DATA_MENUCHECKMARK_BMP_710, SIZE_MENUCHECKMARK_BMP_710, COMP_MENUCHECKMARK_BMP_710)
__UI_ImageData = Base64_LoadResourceString(DATA_MENUCHECKMARK_BMP_710, SIZE_MENUCHECKMARK_BMP_710, COMP_MENUCHECKMARK_BMP_710)
CASE __INFORM_THEME_IMAGE_NOTFOUND
CONST SIZE_NOTFOUND_BMP_7802~& = 7802~&
CONST COMP_NOTFOUND_BMP_7802%% = -1%%
CASE __INFORM_THEME_IMAGE_NOTFOUND
CONST SIZE_NOTFOUND_BMP_7802~& = 7802~&
CONST COMP_NOTFOUND_BMP_7802%% = -1%%
CONST DATA_NOTFOUND_BMP_7802 = _
"eNrt2TWSG1EQANA2XcDMdujQNzBHhiOYNDzLzHstKTcny5gsM5NYaqtnSri8+qXfwe8anq6uNwz/9ceOxwAAAB0AUAUAzwDgOQBcgqdwBY4LzHb+" + _
"zAUiEAikLcuKcOzJ5jhOGJkG2WT6lE/5lE/5ZmdnMRgMiuyppjDf6Ogo9vf3497enoiealFNoT7qRQXVKtenfMoXDqcPJx/OkeIbGIjhtWszWFe3" + _
@ -130,30 +135,30 @@ FUNCTION __UI_ImageData$ (id AS _UNSIGNED _BYTE)
"BZng5JubmyuycfItLS1hbW3tTuaYviYXJx/Z6urqtgOBwBsyMfJlbTu6rr8lDyNf1kbH9B1ZGPmytt3MfvtADk6+5eXlwzYmvvn5ec9mmuZHD8DI" + _
"V19fT7Y9Xdc/cWxfNQwjYdv2JzhH/AddXsRq"
__UI_ImageData = Base64_LoadResourceString(DATA_NOTFOUND_BMP_7802, SIZE_NOTFOUND_BMP_7802, COMP_NOTFOUND_BMP_7802)
__UI_ImageData = Base64_LoadResourceString(DATA_NOTFOUND_BMP_7802, SIZE_NOTFOUND_BMP_7802, COMP_NOTFOUND_BMP_7802)
CASE __INFORM_THEME_IMAGE_PROGRESSCHUNK
CONST SIZE_PROGRESSCHUNK_BMP_602~& = 602~&
CONST COMP_PROGRESSCHUNK_BMP_602%% = -1%%
CASE __INFORM_THEME_IMAGE_PROGRESSCHUNK
CONST SIZE_PROGRESSCHUNK_BMP_602~& = 602~&
CONST COMP_PROGRESSCHUNK_BMP_602%% = -1%%
CONST DATA_PROGRESSCHUNK_BMP_602 = _
"eNpz8o1iYgCDKiDOAWIuIOYBYkYGBQZmBlzgPwTBOGQAv2ax/8RguRei2PFLVKzzWhY3fgWi5cDY7JkCKn4KwebPULH6TQlUfEscK3Y/bw3BF6D4" + _
"Igzb/PdAwkn7YonGyfvi/ifvR+AUMI5HwVn707Hi7P0ZQBqMwezmwzU4ccvhWhAGs9ddWQbEywliYuMNAO7oIA0="
__UI_ImageData = Base64_LoadResourceString(DATA_PROGRESSCHUNK_BMP_602, SIZE_PROGRESSCHUNK_BMP_602, COMP_PROGRESSCHUNK_BMP_602)
__UI_ImageData = Base64_LoadResourceString(DATA_PROGRESSCHUNK_BMP_602, SIZE_PROGRESSCHUNK_BMP_602, COMP_PROGRESSCHUNK_BMP_602)
CASE __INFORM_THEME_IMAGE_PROGRESSTRACK
CONST SIZE_PROGRESSTRACK_BMP_806~& = 806~&
CONST COMP_PROGRESSTRACK_BMP_806%% = -1%%
CASE __INFORM_THEME_IMAGE_PROGRESSTRACK
CONST SIZE_PROGRESSTRACK_BMP_806~& = 806~&
CONST COMP_PROGRESSTRACK_BMP_806%% = -1%%
CONST DATA_PROGRESSTRACK_BMP_806 = _
"eNpy8lVjZgCDKiDOAWJOIBYGYkYGBQagFA7wH4JgHDLAfyBYtnrN/9q6+v8ZGRkwDOYvB4oDAZguLy8HlEoGGgCEQBD99r4pAPqlUiKFO4N3jsWg" + _
"ZWjXa2trnlprkOrsL6V8dYKc/jDEOQeOswOz97bMWssyc07L9N4do7VlWmuWGWPc39nPzjvfMGF+GP4d7i/VUkryh3yiPEg9cs74DJ8Eqd8L2HdB" + _
"Rg=="
__UI_ImageData = Base64_LoadResourceString(DATA_PROGRESSTRACK_BMP_806, SIZE_PROGRESSTRACK_BMP_806, COMP_PROGRESSTRACK_BMP_806)
__UI_ImageData = Base64_LoadResourceString(DATA_PROGRESSTRACK_BMP_806, SIZE_PROGRESSTRACK_BMP_806, COMP_PROGRESSTRACK_BMP_806)
CASE __INFORM_THEME_IMAGE_RADIOBUTTON
CONST SIZE_RADIOBUTTON_BMP_5530~& = 5530~&
CONST COMP_RADIOBUTTON_BMP_5530%% = -1%%
CASE __INFORM_THEME_IMAGE_RADIOBUTTON
CONST SIZE_RADIOBUTTON_BMP_5530~& = 5530~&
CONST COMP_RADIOBUTTON_BMP_5530%% = -1%%
CONST DATA_RADIOBUTTON_BMP_5530 = _
"eNqc0iEOwjAYBeDHlkkkpkEge4RpdBGcYGIGgUShOAdqvnpHgITb1EyXJ/6QJwDxN3xp2vcX2tL94b4BAOAK4AxgDeBEK+zQ4ler9rGBo9VaP16P" + _
"Z6CBZlqsHyhYjdY2lCjTSJE6ijbOljeyJtGFWv0uyVvLk+wna/2fdVn2P0rW00TF+l6yUc4bZX6iKibJotxPJ/OFqiiSdVbv+B3HeRz35vl/fO/A" + _
@ -171,11 +176,11 @@ FUNCTION __UI_ImageData$ (id AS _UNSIGNED _BYTE)
"xGcPoLk8B+t229JoMsG8wx5tKMkUG0qKs+9o7HfPig0lxznt0UptEiamp1Vx1Cf86e3vxejEhCqOvgg/S/LiMDg6qoqjn8L/iK+fRN/wsCqOOdh3" + _
"tCgndkccc3DuaOD7d0GGYw7MT9ZR8qQ++kI/mcPv0dGfAFRLXXE="
__UI_ImageData = Base64_LoadResourceString(DATA_RADIOBUTTON_BMP_5530, SIZE_RADIOBUTTON_BMP_5530, COMP_RADIOBUTTON_BMP_5530)
__UI_ImageData = Base64_LoadResourceString(DATA_RADIOBUTTON_BMP_5530, SIZE_RADIOBUTTON_BMP_5530, COMP_RADIOBUTTON_BMP_5530)
CASE __INFORM_THEME_IMAGE_SCROLLBUTTONS
CONST SIZE_SCROLLBUTTONS_BMP_9370~& = 9370~&
CONST COMP_SCROLLBUTTONS_BMP_9370%% = -1%%
CASE __INFORM_THEME_IMAGE_SCROLLBUTTONS
CONST SIZE_SCROLLBUTTONS_BMP_9370~& = 9370~&
CONST COMP_SCROLLBUTTONS_BMP_9370%% = -1%%
CONST DATA_SCROLLBUTTONS_BMP_9370 = _
"eNpy8p2lAhADGFQBcQ4QCwJxBxAzMigwMDMAuC8HH7+iIIz+j43TuG7jhjXj2mFT27ZtG2vbmvZk98vmZmZxX93Jnt/TfOf55u1IZfobWsgva/hq" + _
"1lpjTW9uWPnDs1Zy75R9unXMPt48GgKfbx+36qcXzToazeo/G46+sidWpNo+3DE5jGqpNqt8/p2XIcB26C9/atZcaVTt88tyDB5L7Qezuo+4gXkY" + _
@ -189,11 +194,11 @@ FUNCTION __UI_ImageData$ (id AS _UNSIGNED _BYTE)
"O1LOYbwH5VxKHIgtDkSuHjT7elA96H0PImcP2vyH3nnQ5j/aJzyIsNl8yHkQ0b32JPWvoB5UD3r2DeNI9M6DNv/RPuFBhM3mQ8aDiO6lP3vQ7PMe" + _
"VA/6AN9nbCQ="
__UI_ImageData = Base64_LoadResourceString(DATA_SCROLLBUTTONS_BMP_9370, SIZE_SCROLLBUTTONS_BMP_9370, COMP_SCROLLBUTTONS_BMP_9370)
__UI_ImageData = Base64_LoadResourceString(DATA_SCROLLBUTTONS_BMP_9370, SIZE_SCROLLBUTTONS_BMP_9370, COMP_SCROLLBUTTONS_BMP_9370)
CASE __INFORM_THEME_IMAGE_SCROLLHBUTTONS
CONST SIZE_SCROLLHBUTTONS_BMP_9370~& = 9370~&
CONST COMP_SCROLLHBUTTONS_BMP_9370%% = -1%%
CASE __INFORM_THEME_IMAGE_SCROLLHBUTTONS
CONST SIZE_SCROLLHBUTTONS_BMP_9370~& = 9370~&
CONST COMP_SCROLLHBUTTONS_BMP_9370%% = -1%%
CONST DATA_SCROLLHBUTTONS_BMP_9370 = _
"eNpy8p2lAhADGFQBcQ4QCwJxBxAzMigwMDPgAv8hCM4BUF8OPHZFURT+j43TuG7jhjXj2mFTj23btm3bb7erryvN2dnFOeXs5Mtcre/i6I1/yeKI" + _
"yNqsLHeXy0RDjozWZspgZaoMVKQAk6GqNJlpKRDZXBJZGBI49sebJaTW+6uFDkGtzohMtX2iA5jgPDiYaBFZmRLUXFsRHdFnmesXmR+AOwq2AY7P" + _
@ -206,11 +211,11 @@ FUNCTION __UI_ImageData$ (id AS _UNSIGNED _BYTE)
"/diOHWAAEIZQEL7/rRcIRnis+cmLAA1AfPUgy4Nmx1FyDxojGAN55EGL4/geBBNKPYidelA96KAHcf5yGM+D8nvLg2hCmQfBhepB9aDDHkQXyj2I" + _
"JuR70O5AlgcFJpT/hnpQPeisB9GF8gZNyPeg3YF8D6IJ5R5EF6oHWR70AVdotFU="
__UI_ImageData = Base64_LoadResourceString(DATA_SCROLLHBUTTONS_BMP_9370, SIZE_SCROLLHBUTTONS_BMP_9370, COMP_SCROLLHBUTTONS_BMP_9370)
__UI_ImageData = Base64_LoadResourceString(DATA_SCROLLHBUTTONS_BMP_9370, SIZE_SCROLLHBUTTONS_BMP_9370, COMP_SCROLLHBUTTONS_BMP_9370)
CASE __INFORM_THEME_IMAGE_SCROLLHTHUMB
CONST SIZE_SCROLLHTHUMB_BMP_5402~& = 5402~&
CONST COMP_SCROLLHTHUMB_BMP_5402%% = -1%%
CASE __INFORM_THEME_IMAGE_SCROLLHTHUMB
CONST SIZE_SCROLLHTHUMB_BMP_5402~& = 5402~&
CONST COMP_SCROLLHTHUMB_BMP_5402%% = -1%%
CONST DATA_SCROLLHTHUMB_BMP_5402 = _
"eNpy8pUSZQCDKiDOAWIxILYBYkYGBQZmBkAvZoFrRRBE0V2xCOLsAF0GUeJoDCK4u7u7u7t/d9dLDsnFKp8OMzVUOKlianKe9avu/2YK+R9B+udQ" + _
"5xup9Zn6X17Vx5tHa9Hx6JzwQXb0Pr8sDXVLxEC7pr8+FKjlUfW6r0XE17snRUx+vi91vJbankvtL8mV6olP90S8uXJABI+l7g++DyrVU18eiHh1" + _
@ -221,20 +226,20 @@ FUNCTION __UI_ImageData$ (id AS _UNSIGNED _BYTE)
"p2Av8LdmVuDC2dTcaWpOchZ4cmaHTm5clgLnU5wH1izR8Nub+nz7eAq4zm5dhddzJwUCJyTO3+DlNwnofHw+1M6FPgQv8y6B4GVfMp57xtcLferg" + _
"nek3EP+/1HcO3s43/h3BtYFS3wQvszOF/+NNO/fZCxofUVbgwsmau3VonR6d2pbC5d2r+d41Nie/AfoYLw0="
__UI_ImageData = Base64_LoadResourceString(DATA_SCROLLHTHUMB_BMP_5402, SIZE_SCROLLHTHUMB_BMP_5402, COMP_SCROLLHTHUMB_BMP_5402)
__UI_ImageData = Base64_LoadResourceString(DATA_SCROLLHTHUMB_BMP_5402, SIZE_SCROLLHTHUMB_BMP_5402, COMP_SCROLLHTHUMB_BMP_5402)
CASE __INFORM_THEME_IMAGE_SCROLLHTRACK
CONST SIZE_SCROLLHTRACK_BMP_4746~& = 4746~&
CONST COMP_SCROLLHTRACK_BMP_4746%% = -1%%
CASE __INFORM_THEME_IMAGE_SCROLLHTRACK
CONST SIZE_SCROLLHTRACK_BMP_4746~& = 4746~&
CONST COMP_SCROLLHTRACK_BMP_4746%% = -1%%
CONST DATA_SCROLLHTRACK_BMP_4746 = _
"eNpy8u0SYgCDKiDOAWJBIHYBYkYGBQZmBlzgPwTBOGQAQLv1cOBQAEVhuP9+poWJs4ltPdss4o9zF18JB5Uyq7As+R5pxCXhe4h9LnK50OJ8nXMV" + _
"zrly9vk9WCdOmWG71h9WRe73CEzOU9+Dc+WsA6fMuOsQS/Z9LN71MH/VegvuooHdoz9e+YPkB8kPkh8kPwiTDpIOkg6SDgJqkctWew=="
__UI_ImageData = Base64_LoadResourceString(DATA_SCROLLHTRACK_BMP_4746, SIZE_SCROLLHTRACK_BMP_4746, COMP_SCROLLHTRACK_BMP_4746)
__UI_ImageData = Base64_LoadResourceString(DATA_SCROLLHTRACK_BMP_4746, SIZE_SCROLLHTRACK_BMP_4746, COMP_SCROLLHTRACK_BMP_4746)
CASE __INFORM_THEME_IMAGE_SCROLLTHUMB
CONST SIZE_SCROLLTHUMB_BMP_5402~& = 5402~&
CONST COMP_SCROLLTHUMB_BMP_5402%% = -1%%
CASE __INFORM_THEME_IMAGE_SCROLLTHUMB
CONST SIZE_SCROLLTHUMB_BMP_5402~& = 5402~&
CONST COMP_SCROLLTHUMB_BMP_5402%% = -1%%
CONST DATA_SCROLLTHUMB_BMP_5402 = _
"eNpy8pUSZQCDKiDOAWJ+II4AYkYGBQZmBkD7ZYFbZwwE4Vv1EBX3BsVLlElcZlGZmZmZIczMzJypPv1aVQ4aynmrzMP9vOuxsnFmC2U/9iYi1FEl" + _
"9bWq7v1tlT2/rNJnl1Ty9KKJ94jvVPHyqho/3ZMGOqX2CsE2fb6vkOgufiFjRfS2aKLhqyYbv80ovhur+yz1NIloy3v8g20tlbrqpe6GTLxGnTVS" + _
@ -245,20 +250,20 @@ FUNCTION __UI_ImageData$ (id AS _UNSIGNED _BYTE)
"5/esh0O6emgr+1JHwVMvkQtjLKGhXjxC2V29KQ+fOV/+z8YnPBMxH8t9m1kcw1LX2Pb8J6F1k3qG/a112yuSfU7wCja659z55s43dE7C2H3y4r6N" + _
"yrt/2tGXOyec9yZy4b4DxCNBXw=="
__UI_ImageData = Base64_LoadResourceString(DATA_SCROLLTHUMB_BMP_5402, SIZE_SCROLLTHUMB_BMP_5402, COMP_SCROLLTHUMB_BMP_5402)
__UI_ImageData = Base64_LoadResourceString(DATA_SCROLLTHUMB_BMP_5402, SIZE_SCROLLTHUMB_BMP_5402, COMP_SCROLLTHUMB_BMP_5402)
CASE __INFORM_THEME_IMAGE_SCROLLTRACK
CONST SIZE_SCROLLTRACK_BMP_4746~& = 4746~&
CONST COMP_SCROLLTRACK_BMP_4746%% = -1%%
CASE __INFORM_THEME_IMAGE_SCROLLTRACK
CONST SIZE_SCROLLTRACK_BMP_4746~& = 4746~&
CONST COMP_SCROLLTRACK_BMP_4746%% = -1%%
CONST DATA_SCROLLTRACK_BMP_4746 = _
"eNpy8u0SYgCDKiDOAWJBIHYBYkYGBQZmBlzgPwTBOGQAQDt1bYBAGARRuP9+aAGHBHd3d4cH3HbwRycTvGznC5dNH55357y9DBkyZDgavVSMQyPB" + _
"qZXyuvVy3Pt5mBZhXoPtAPZTOC6s8wauB7C8vQwZMmS4GnY3gt34n90f5nBawWVrt7cT3C/W42r/y7J9AA0ZMmTIkCFDhowvXIhmng=="
__UI_ImageData = Base64_LoadResourceString(DATA_SCROLLTRACK_BMP_4746, SIZE_SCROLLTRACK_BMP_4746, COMP_SCROLLTRACK_BMP_4746)
__UI_ImageData = Base64_LoadResourceString(DATA_SCROLLTRACK_BMP_4746, SIZE_SCROLLTRACK_BMP_4746, COMP_SCROLLTRACK_BMP_4746)
CASE __INFORM_THEME_IMAGE_SLIDERDOWN
CONST SIZE_SLIDERDOWN_BMP_4742~& = 4742~&
CONST COMP_SLIDERDOWN_BMP_4742%% = -1%%
CASE __INFORM_THEME_IMAGE_SLIDERDOWN
CONST SIZE_SLIDERDOWN_BMP_4742~& = 4742~&
CONST COMP_SLIDERDOWN_BMP_4742%% = -1%%
CONST DATA_SLIDERDOWN_BMP_4742 = _
"eNpy8m0TYgCDKiDOAWJuIM4EYkYGBQZmBoBwgf8QBOOQAQDt1QOMnFEcBPDGrG3bto24tm3btm3bPdu2bdue3hRvlVvU2CSz/H3+Tx7KAfJ5Y27J" + _
"d5UxsHfCWzMLPNEzVOkMbB0QGh+PJzr69EpdfGYWwuIT4BsWLnxZjolOTUNwbJyCN3Vxh5GDMxKysunEu7x/pm8EKw9vJGXnILE0dIy0D4qJhV94" + _
@ -271,18 +276,22 @@ FUNCTION __UI_ImageData$ (id AS _UNSIGNED _BYTE)
"ujnaeqzSbtY+V0fbzb/cLnBZhJHWo9FUvznnQib1HjVA7Yt1RTdXuq/CXOd5oB9hNVJkqOVwNNQt9ffri26+cX8Ieu5/vstCkTnOc+k5rxp38yPr" + _
"gYo/"
__UI_ImageData = Base64_LoadResourceString(DATA_SLIDERDOWN_BMP_4742, SIZE_SLIDERDOWN_BMP_4742, COMP_SLIDERDOWN_BMP_4742)
__UI_ImageData = Base64_LoadResourceString(DATA_SLIDERDOWN_BMP_4742, SIZE_SLIDERDOWN_BMP_4742, COMP_SLIDERDOWN_BMP_4742)
CASE __INFORM_THEME_IMAGE_SLIDERTRACK
CONST SIZE_SLIDERTRACK_BMP_222~& = 222~&
CONST COMP_SLIDERTRACK_BMP_222%% = -1%%
CASE __INFORM_THEME_IMAGE_SLIDERTRACK
CONST SIZE_SLIDERTRACK_BMP_222~& = 222~&
CONST COMP_SLIDERTRACK_BMP_222%% = -1%%
CONST DATA_SLIDERTRACK_BMP_222 = _
"eNpy8r3HAAFVQJwDxKxQzMigwMDMgAv8hyA4B1DJOCMwDABQ9P5zrRvUa+2l1lLbNl+cPW/7NE6l0SSWziBxfT7ZX2843G5a7TbD3ZHT/cHj/cZs" + _
"szPdbFmdzqzPF/7/P75QmEKpLHl6r9XtEU0mxQ+P/icARUtgHg=="
__UI_ImageData = Base64_LoadResourceString(DATA_SLIDERTRACK_BMP_222, SIZE_SLIDERTRACK_BMP_222, COMP_SLIDERTRACK_BMP_222)
__UI_ImageData = Base64_LoadResourceString(DATA_SLIDERTRACK_BMP_222, SIZE_SLIDERTRACK_BMP_222, COMP_SLIDERTRACK_BMP_222)
CASE ELSE
ERROR 51
END SELECT
END FUNCTION
CASE ELSE
ERROR 51
END SELECT
END FUNCTION
'$INCLUDE:'extensions/Base64.bas'
$END IF

View file

@ -1,8 +1,8 @@
MIT License
Copyright (c) 2023-2024 Samuel Gomes
Copyright (c) 2023, George McGinn
Copyright (c) 2016-2022 Fellippe Heitor
Copyright (c) 2024 Samuel Gomes
Copyright (c) 2023 George McGinn
Copyright (c) 2022 Fellippe Heitor
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal