Set appearance, identity and the app icon
Separate the IDE toolbar style from your application’s look, then choose portable identity and icon resources.
Two style choices, two different owners#
The IDE offers Ribbon and Classic command layouts; that changes your workspace, not your exported app. Project → Project Settings → Appearance chooses macOS or Classic for the application itself. An omitted application.appearance means macOS; new VB6 imports choose Classic. An older imported project is not silently restyled.
Classic affects control rendering, borders, tabs and date controls. It does not change event signatures or replace your application logic. Use named system colors such as ButtonFace and WindowBackground when colors should follow the chosen look. Literal hex colors intentionally remain literal. Check text clipping and keyboard focus in both appearances.
Edit the values users will see#
| Project setting | Stored value / runtime use |
|---|---|
| Version, Build | Application version and build, distinct from the McBasic™ build. |
| Company | application.company; read through App.CompanyName. |
| Copyright | application.copyright; read through App.LegalCopyright and shown in About. |
| Appearance | application.appearance: macOS or Classic. |
| Icon | application.icon: a declared logical resource, not an arbitrary absolute path. |
Company and copyright are limited to 200 UTF-16 code units and cannot contain control characters. Check what you entered before distributing; filling these fields does not establish ownership or a software license.
Choose one resource that can travel#
A square PNG is the simplest shared input for Mac and Windows. ICNS is Mac-only; ICO is Windows-only. A format that does not suit the destination triggers MCB2407 and a fallback icon. Linux L1 does not embed this icon in the executable. Keep the image declared in the project resources.
A VB6 IconForm can contribute an ICO resource automatically. That works for Windows but needs a suitable PNG/ICNS for Mac. Inspect the final exported artifact, not only the preview inside Project Settings.
Distinguish control dragging from external drops#
DragMode 1 starts a control drag automatically; 0 leaves it manual. DragIcon is an optional resource. Drag/DragOver/DragDrop for a control inside the app are separate from DragData/DragEffect for files or text coming from outside. The parameter lists are different; do not copy the external-drop handler into the control-drag event.
Private Sub pnlDrop_DragOver(ByVal Source As Control, ByVal X As Single, ByVal Y As Single, ByVal State As Integer)
If State = vbEnter Then lblStatus.Caption = "Release to identify " & Source.Name
End Sub
Private Sub pnlDrop_DragDrop(ByVal Source As Control, ByVal X As Single, ByVal Y As Single)
lblStatus.Caption = "Dropped " & Source.Name & " at " & X & ", " & Y
End SubX/Y use the receiving surface’s coordinate system. State reports vbEnter, vbLeave or vbOver. Dragging does not move the control automatically: the example intentionally reports a drop without repositioning it. The complete project sets every property and event binding.
20f4bfed6b · Build manifestSources & maintenance
Original web explanation, reviewed against these repository sources. API tables and example files follow the implementation.
macos/McBasicIDE/Sources/ProjectSettingsSheet.swiftsrc/McBasic.Workspace/ProjectReader.cstests/McBasic.Compiler.Tests/ApplicationAppearanceChecks.cstests/McBasic.Compiler.Tests/AppIconChecks.cstests/McBasic.Compiler.Tests/VbControlDragChecks.cssrc/McBasic.Runtime/McSystemColors.cs