├── AndroidDesignExtensions.xojo_resources ├── Pictures ├── Divider.png ├── Xojo16.png ├── Xojo32.png ├── Background.jpg ├── Screenshot.jpg ├── Xojo16_mono.png ├── Xojo32_mono.png └── mwx-logo-clear.png ├── .gitignore ├── Build Automation.xojo_code ├── .github └── FUNDING.yml ├── LICENSE.txt ├── AndroidDesignExtensions ├── DeviceXC.xojo_code ├── XojoExtensionsXC.xojo_code ├── PictureXC.xojo_code ├── ContainerXC.xojo_code ├── SegmentedButtonXC.xojo_code ├── SwitchXC.xojo_code ├── PopupMenuXC.xojo_code ├── MoviePlayerXC.xojo_code ├── MessageBoxXC.xojo_code ├── LabelXC.xojo_code ├── SliderXC.xojo_code └── WindowInsetsCompatTypes.xojo_code ├── Resources ├── Divider.xojo_image ├── Background.xojo_image └── mwxlogoclear.xojo_image ├── Screens ├── FontScreen.xojo_code ├── ButtonScreen.xojo_code ├── ControlScreen.xojo_code ├── TextAreaScreen.xojo_code ├── LabelScreen.xojo_code ├── IndicatorScreen.xojo_code ├── TabPanelScreen.xojo_code ├── TextFieldScreen.xojo_code ├── Templates │ ├── TemplateScreenWithBackButton.xojo_code │ └── TemplateScreen.xojo_code ├── MapScreen.xojo_code ├── ImageScreen.xojo_code ├── ActivityScreen.xojo_code ├── FolderScreen.xojo_code ├── SystemImagesScreen.xojo_code ├── ScrollableAreaScreen.xojo_code └── AppScreen.xojo_code ├── Controls ├── AppearanceSwitch.xojo_code ├── TestButton.xojo_code ├── AppearanceButton.xojo_code ├── AppearanceProgressBar.xojo_code ├── AppearanceSlider.xojo_code ├── PropertyLabel.xojo_code ├── AppearanceLabel.xojo_code ├── FontLabel.xojo_code ├── AppearanceTextArea.xojo_code ├── ColorButton.xojo_code └── AppearanceTextField.xojo_code └── Containers ├── Panel1Container.xojo_code ├── Panel2Container.xojo_code ├── ScrollableContainer.xojo_code └── TabPanelContainer.xojo_code /AndroidDesignExtensions.xojo_resources: -------------------------------------------------------------------------------- 1 | ICNS -------------------------------------------------------------------------------- /Pictures/Divider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XojoGermany/AndroidDesignExtensions/HEAD/Pictures/Divider.png -------------------------------------------------------------------------------- /Pictures/Xojo16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XojoGermany/AndroidDesignExtensions/HEAD/Pictures/Xojo16.png -------------------------------------------------------------------------------- /Pictures/Xojo32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XojoGermany/AndroidDesignExtensions/HEAD/Pictures/Xojo32.png -------------------------------------------------------------------------------- /Pictures/Background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XojoGermany/AndroidDesignExtensions/HEAD/Pictures/Background.jpg -------------------------------------------------------------------------------- /Pictures/Screenshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XojoGermany/AndroidDesignExtensions/HEAD/Pictures/Screenshot.jpg -------------------------------------------------------------------------------- /Pictures/Xojo16_mono.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XojoGermany/AndroidDesignExtensions/HEAD/Pictures/Xojo16_mono.png -------------------------------------------------------------------------------- /Pictures/Xojo32_mono.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XojoGermany/AndroidDesignExtensions/HEAD/Pictures/Xojo32_mono.png -------------------------------------------------------------------------------- /Pictures/mwx-logo-clear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XojoGermany/AndroidDesignExtensions/HEAD/Pictures/mwx-logo-clear.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Xojo (formerly REALbasic and Real Studio) 2 | 3 | Builds* 4 | *.debug 5 | *.debug.app 6 | Debug*.exe 7 | Debug*/Debug*.exe 8 | Debug*/Debug*\ Libs 9 | *.rbuistate 10 | *.xojo_uistate 11 | *.obsolete* 12 | .DS_Store 13 | -------------------------------------------------------------------------------- /Build Automation.xojo_code: -------------------------------------------------------------------------------- 1 | #tag BuildAutomation 2 | Begin BuildStepList Linux 3 | Begin BuildProjectStep Build 4 | End 5 | End 6 | Begin BuildStepList Mac OS X 7 | Begin BuildProjectStep Build 8 | End 9 | Begin SignProjectStep Sign 10 | DeveloperID= 11 | End 12 | End 13 | Begin BuildStepList Windows 14 | Begin BuildProjectStep Build 15 | End 16 | End 17 | Begin BuildStepList Android 18 | Begin BuildProjectStep Build 19 | End 20 | End 21 | #tag EndBuildAutomation 22 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 13 | custom: ['https://paypal.me/MTrippensee'] 14 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /AndroidDesignExtensions/DeviceXC.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Module 2 | Protected Module DeviceXC 3 | #tag CompatibilityFlags = ( TargetAndroid and ( Target64Bit ) ) 4 | #tag Method, Flags = &h0, Description = 47657473207468652075696420666F722074686973206465766963652E 5 | Function GetUidXC() As Integer 6 | #If TargetAndroid 7 | 8 | Declare Function getuid Lib "android.system.Os" As Int32 9 | Return getuid 10 | 11 | #EndIf 12 | End Function 13 | #tag EndMethod 14 | 15 | 16 | #tag ViewBehavior 17 | #tag ViewProperty 18 | Name="Name" 19 | Visible=true 20 | Group="ID" 21 | InitialValue="" 22 | Type="String" 23 | EditorType="" 24 | #tag EndViewProperty 25 | #tag ViewProperty 26 | Name="Index" 27 | Visible=true 28 | Group="ID" 29 | InitialValue="-2147483648" 30 | Type="Integer" 31 | EditorType="" 32 | #tag EndViewProperty 33 | #tag ViewProperty 34 | Name="Super" 35 | Visible=true 36 | Group="ID" 37 | InitialValue="" 38 | Type="String" 39 | EditorType="" 40 | #tag EndViewProperty 41 | #tag ViewProperty 42 | Name="Left" 43 | Visible=true 44 | Group="Position" 45 | InitialValue="0" 46 | Type="Integer" 47 | EditorType="" 48 | #tag EndViewProperty 49 | #tag ViewProperty 50 | Name="Top" 51 | Visible=true 52 | Group="Position" 53 | InitialValue="0" 54 | Type="Integer" 55 | EditorType="" 56 | #tag EndViewProperty 57 | #tag EndViewBehavior 58 | End Module 59 | #tag EndModule 60 | -------------------------------------------------------------------------------- /AndroidDesignExtensions/XojoExtensionsXC.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Module 2 | Protected Module XojoExtensionsXC 3 | #tag CompatibilityFlags = ( TargetAndroid and ( Target64Bit ) ) 4 | #tag Method, Flags = &h0 5 | Function SaveSystemImage(systemImage As String, size As Double = 48, c As Color = &c000000) As FolderItem 6 | Var oFile As FolderItem = SpecialFolder.Documents.Child(systemImage + c.ToString + ".png") 7 | 8 | If oFile Is Nil Or Not oFile.Exists Then 9 | 10 | Var oPic As Picture = Picture.SystemImage(systemImage, size, c) 11 | oPic.Save(oFile, Picture.Formats.PNG) 12 | 13 | End If 14 | 15 | Return oFile 16 | End Function 17 | #tag EndMethod 18 | 19 | 20 | #tag Constant, Name = kAndroidVersionNotSupported, Type = String, Dynamic = False, Default = \"Android version not supported.", Scope = Public 21 | #tag EndConstant 22 | 23 | 24 | #tag ViewBehavior 25 | #tag ViewProperty 26 | Name="Name" 27 | Visible=true 28 | Group="ID" 29 | InitialValue="" 30 | Type="String" 31 | EditorType="" 32 | #tag EndViewProperty 33 | #tag ViewProperty 34 | Name="Index" 35 | Visible=true 36 | Group="ID" 37 | InitialValue="-2147483648" 38 | Type="Integer" 39 | EditorType="" 40 | #tag EndViewProperty 41 | #tag ViewProperty 42 | Name="Super" 43 | Visible=true 44 | Group="ID" 45 | InitialValue="" 46 | Type="String" 47 | EditorType="" 48 | #tag EndViewProperty 49 | #tag ViewProperty 50 | Name="Left" 51 | Visible=true 52 | Group="Position" 53 | InitialValue="0" 54 | Type="Integer" 55 | EditorType="" 56 | #tag EndViewProperty 57 | #tag ViewProperty 58 | Name="Top" 59 | Visible=true 60 | Group="Position" 61 | InitialValue="0" 62 | Type="Integer" 63 | EditorType="" 64 | #tag EndViewProperty 65 | #tag EndViewBehavior 66 | End Module 67 | #tag EndModule 68 | -------------------------------------------------------------------------------- /AndroidDesignExtensions/PictureXC.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Module 2 | Protected Module PictureXC 3 | #tag Method, Flags = &h0, Description = 5072696E74732074686520506963747572652E 4 | Sub PrintXC(Extends pic As Picture, scaleMode As ScaleModesXC = ScaleModesXC.Fit) 5 | #If TargetAndroid 6 | 7 | Declare Function PrintHelper Lib "androidx.print.PrintHelper:Kotlin" Alias _ 8 | "androidx.print.PrintHelper(context as android.content.Context)" (context As Ptr) As Ptr 9 | 10 | Declare Sub printBitmap Lib "androidx.print.PrintHelper.instance:Kotlin" Alias _ 11 | "printBitmap(jobname.toString(), bitmap as android.graphics.Bitmap)" (printHelper As Ptr, jobName As CString, bitmap As Ptr) 12 | 13 | Declare Sub setScaleMode Lib "androidx.print.PrintHelper.instance:Kotlin" Alias _ 14 | "setScaleMode(scalemode.toInt())" (printHelper As Ptr, scaleMode As Int32) 15 | 16 | Var oPrintHelper As Ptr = PrintHelper(oCurrentScreen.Handle) 17 | 18 | setScaleMode(oPrintHelper, Integer(scaleMode)) 19 | 20 | printBitmap(oPrintHelper, "Xojo Print", pic.Handle(Picture.HandleTypes.AndroidBitmap)) 21 | 22 | #Else 23 | 24 | #Pragma Unused scaleMode 25 | 26 | #EndIf 27 | End Sub 28 | #tag EndMethod 29 | 30 | 31 | #tag Enum, Name = ScaleModesXC, Type = Integer, Flags = &h0 32 | Fit = 1 33 | Fill = 2 34 | #tag EndEnum 35 | 36 | 37 | #tag ViewBehavior 38 | #tag ViewProperty 39 | Name="Name" 40 | Visible=true 41 | Group="ID" 42 | InitialValue="" 43 | Type="String" 44 | EditorType="" 45 | #tag EndViewProperty 46 | #tag ViewProperty 47 | Name="Index" 48 | Visible=true 49 | Group="ID" 50 | InitialValue="-2147483648" 51 | Type="Integer" 52 | EditorType="" 53 | #tag EndViewProperty 54 | #tag ViewProperty 55 | Name="Super" 56 | Visible=true 57 | Group="ID" 58 | InitialValue="" 59 | Type="String" 60 | EditorType="" 61 | #tag EndViewProperty 62 | #tag ViewProperty 63 | Name="Left" 64 | Visible=true 65 | Group="Position" 66 | InitialValue="0" 67 | Type="Integer" 68 | EditorType="" 69 | #tag EndViewProperty 70 | #tag ViewProperty 71 | Name="Top" 72 | Visible=true 73 | Group="Position" 74 | InitialValue="0" 75 | Type="Integer" 76 | EditorType="" 77 | #tag EndViewProperty 78 | #tag EndViewBehavior 79 | End Module 80 | #tag EndModule 81 | -------------------------------------------------------------------------------- /Resources/Divider.xojo_image: -------------------------------------------------------------------------------- 1 | #tag MultiImage 2 | Image Divider 3 | #tag ImageRepresentation 4 | SaveInfo = APHRcwIABwBsBAAAYm9va2wEAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAMAAAQAAAADAwAAAAQAAAUAAAABAQAAVXNlcnMAAAAQAAAAAQEAAG1hcnRpbnRyaXBwZW5zZWUHAAAAAQEAAExpYnJhcnkAEAAAAAEBAABNb2JpbGUgRG9jdW1lbnRzEwAAAAEBAABjb21+YXBwbGV+Q2xvdWREb2NzAAQAAAABAQAAWG9qbwYAAAABAQAAR2l0aHViAAAXAAAAAQEAAEFuZHJvaWREZXNpZ25FeHRlbnNpb25zAAgAAAABAQAAUGljdHVyZXMLAAAAAQEAAERpdmlkZXIucG5nACgAAAABBgAAEAAAACAAAAA4AAAASAAAAGAAAAB8AAAAiAAAAJgAAAC4AAAAyAAAAAgAAAAEAwAAwTgAAAAAAAAIAAAABAMAAGrLAwAAAAAACAAAAAQDAABxywMAAAAAAAgAAAAEAwAAU94DAAAAAAAIAAAABAMAAMYHBAAAAAAACAAAAAQDAACfTgQAAAAAAAgAAAAEAwAAVG8IAAAAAAAIAAAABAMAALByCAAAAAAACAAAAAQDAABdcwgAAAAAAAgAAAAEAwAAeKEyAQAAAAAoAAAAAQYAAAwBAAAcAQAALAEAADwBAABMAQAAXAEAAGwBAAB8AQAAjAEAAJwBAAAIAAAAAAQAAEHFsvtP9l5KGAAAAAECAAABAAAAAAAAAB8CAAAAAAAAHwIAAAAAAAAAAAAAAQUAAAgAAAAEAwAACAAAAAAAAAAEAAAAAwMAAPUBAAAIAAAAAQkAAGZpbGU6Ly8vDAAAAAEBAABNYWNpbnRvc2ggSEQIAAAABAMAAABQoRtzAAAACAAAAAAEAABBxi/IBoAAACQAAAABAQAANkUxREQ3MjMtNzcwOS00MEQyLTlGNEQtREREMDExRUY0RDVEGAAAAAECAACBAAAAAQAAAO8TAAABAAAA7xMAAAEAAAABAAAAAQEAAC8AAAAaAAAAAQEAAE5TVVJMRG9jdW1lbnRJZGVudGlmaWVyS2V5AAAEAAAAAwMAAEPuAAAzAAAAAQIAAGRuaWIAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAHBuZz8/Pz8AAAAAAAAAAAD8AAAA/v///wEAAAAAAAAAFAAAAAQQAADcAAAAAAAAAAUQAACsAQAAAAAAABAQAADsAQAAAAAAAEAQAADcAQAAAAAAAAIgAADAAgAAAAAAAAUgAAAwAgAAAAAAABAgAABAAgAAAAAAABEgAAB0AgAAAAAAABIgAABUAgAAAAAAABMgAABkAgAAAAAAACAgAACgAgAAAAAAADAgAAAMAgAAAAAAAAHAAAAUAgAAAAAAABHAAAAgAAAAAAAAABLAAAAkAgAAAAAAAAHQAAAMAgAAAAAAABDQAAAEAAAAAAAAABfwAADIAAAAAAAAACLwAAD8AgAAAAAAAMwCAIDwAgAAAAAAAAAA 5 | FullPath = /Users/martintrippensee/Library/Mobile Documents/com~apple~CloudDocs/Xojo/Github/AndroidDesignExtensions/Pictures/Divider.png 6 | PartialPath = Pictures\Divider.png 7 | #tag ImageSpecification 8 | Comment = 9 | Device = 31 10 | HSize = 50.00 11 | Orientation = Any 12 | Platform = 15 13 | PPI = 72 14 | VSize = 50.00 15 | #tag EndImageSpecification 16 | #tag EndImageRepresentation 17 | #tag ImageRepresentation 18 | #tag ImageSpecification 19 | Comment = 20 | Device = 31 21 | HSize = 50.00 22 | Orientation = Any 23 | Platform = 15 24 | PPI = 144 25 | VSize = 50.00 26 | #tag EndImageSpecification 27 | #tag EndImageRepresentation 28 | #tag ImageRepresentation 29 | #tag ImageSpecification 30 | Comment = 31 | Device = 31 32 | HSize = 50.00 33 | Orientation = Any 34 | Platform = 15 35 | PPI = 216 36 | VSize = 50.00 37 | #tag EndImageSpecification 38 | #tag EndImageRepresentation 39 | End Image 40 | #tag EndMultiImage 41 | -------------------------------------------------------------------------------- /Resources/Background.xojo_image: -------------------------------------------------------------------------------- 1 | #tag MultiImage 2 | Image Background 3 | #tag ImageRepresentation 4 | SaveInfo = APHRcwIABwBwBAAAYm9va3AEAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAMAAAQAAAADAwAAAAQAAAUAAAABAQAAVXNlcnMAAAAQAAAAAQEAAG1hcnRpbnRyaXBwZW5zZWUHAAAAAQEAAExpYnJhcnkAEAAAAAEBAABNb2JpbGUgRG9jdW1lbnRzEwAAAAEBAABjb21+YXBwbGV+Q2xvdWREb2NzAAQAAAABAQAAWG9qbwYAAAABAQAAR2l0aHViAAAXAAAAAQEAAEFuZHJvaWREZXNpZ25FeHRlbnNpb25zAAgAAAABAQAAUGljdHVyZXMOAAAAAQEAAEJhY2tncm91bmQuanBnAAAoAAAAAQYAABAAAAAgAAAAOAAAAEgAAABgAAAAfAAAAIgAAACYAAAAuAAAAMgAAAAIAAAABAMAAME4AAAAAAAACAAAAAQDAABqywMAAAAAAAgAAAAEAwAAccsDAAAAAAAIAAAABAMAAFPeAwAAAAAACAAAAAQDAADGBwQAAAAAAAgAAAAEAwAAn04EAAAAAAAIAAAABAMAAFRvCAAAAAAACAAAAAQDAACwcggAAAAAAAgAAAAEAwAAXXMIAAAAAAAIAAAABAMAAJTHPAEAAAAAKAAAAAEGAAAQAQAAIAEAADABAABAAQAAUAEAAGABAABwAQAAgAEAAJABAACgAQAACAAAAAAEAABBxbY6OHmK8RgAAAABAgAAAQAAAAAAAAAfAgAAAAAAAB8CAAAAAAAAAAAAAAEFAAAIAAAABAMAAAgAAAAAAAAABAAAAAMDAAD1AQAACAAAAAEJAABmaWxlOi8vLwwAAAABAQAATWFjaW50b3NoIEhECAAAAAQDAAAAUKEbcwAAAAgAAAAABAAAQcYvyAaAAAAkAAAAAQEAADZFMURENzIzLTc3MDktNDBEMi05RjRELURERDAxMUVGNEQ1RBgAAAABAgAAgQAAAAEAAADvEwAAAQAAAO8TAAABAAAAAQAAAAEBAAAvAAAAGgAAAAEBAABOU1VSTERvY3VtZW50SWRlbnRpZmllcktleQAABAAAAAMDAADt7wAAMwAAAAECAABkbmliAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABqcGc/Pz8/AAAAAAAAAAAA/AAAAP7///8BAAAAAAAAABQAAAAEEAAA4AAAAAAAAAAFEAAAsAEAAAAAAAAQEAAA8AEAAAAAAABAEAAA4AEAAAAAAAACIAAAxAIAAAAAAAAFIAAANAIAAAAAAAAQIAAARAIAAAAAAAARIAAAeAIAAAAAAAASIAAAWAIAAAAAAAATIAAAaAIAAAAAAAAgIAAApAIAAAAAAAAwIAAAEAIAAAAAAAABwAAAGAIAAAAAAAARwAAAIAAAAAAAAAASwAAAKAIAAAAAAAAB0AAAEAIAAAAAAAAQ0AAABAAAAAAAAAAX8AAAyAAAAAAAAAAi8AAAAAMAAAAAAADQAgCA9AIAAAAAAAAAAA== 5 | FullPath = /Users/martintrippensee/Library/Mobile Documents/com~apple~CloudDocs/Xojo/Github/AndroidDesignExtensions/Pictures/Background.jpg 6 | PartialPath = Pictures\Background.jpg 7 | #tag ImageSpecification 8 | Comment = 9 | Device = 31 10 | HSize = 1080.00 11 | Orientation = Any 12 | Platform = 15 13 | PPI = 72 14 | VSize = 1920.00 15 | #tag EndImageSpecification 16 | #tag EndImageRepresentation 17 | #tag ImageRepresentation 18 | #tag ImageSpecification 19 | Comment = 20 | Device = 31 21 | HSize = 1080.00 22 | Orientation = Any 23 | Platform = 15 24 | PPI = 144 25 | VSize = 1920.00 26 | #tag EndImageSpecification 27 | #tag EndImageRepresentation 28 | #tag ImageRepresentation 29 | #tag ImageSpecification 30 | Comment = 31 | Device = 31 32 | HSize = 1080.00 33 | Orientation = Any 34 | Platform = 15 35 | PPI = 216 36 | VSize = 1920.00 37 | #tag EndImageSpecification 38 | #tag EndImageRepresentation 39 | End Image 40 | #tag EndMultiImage 41 | -------------------------------------------------------------------------------- /Resources/mwxlogoclear.xojo_image: -------------------------------------------------------------------------------- 1 | #tag MultiImage 2 | Image mwxlogoclear 3 | #tag ImageRepresentation 4 | SaveInfo = APHRcwIABwB0BAAAYm9va3QEAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAMAAAQAAAADAwAAAAQAAAUAAAABAQAAVXNlcnMAAAAQAAAAAQEAAG1hcnRpbnRyaXBwZW5zZWUHAAAAAQEAAExpYnJhcnkAEAAAAAEBAABNb2JpbGUgRG9jdW1lbnRzEwAAAAEBAABjb21+YXBwbGV+Q2xvdWREb2NzAAQAAAABAQAAWG9qbwYAAAABAQAAR2l0aHViAAAXAAAAAQEAAEFuZHJvaWREZXNpZ25FeHRlbnNpb25zAAgAAAABAQAAUGljdHVyZXMSAAAAAQEAAG13eC1sb2dvLWNsZWFyLnBuZwAAKAAAAAEGAAAQAAAAIAAAADgAAABIAAAAYAAAAHwAAACIAAAAmAAAALgAAADIAAAACAAAAAQDAADcaQYAAAAAAAgAAAAEAwAAyKoJAAAAAAAIAAAABAMAAM2qCQAAAAAACAAAAAQDAADltwkAAAAAAAgAAAAEAwAA/7cJAAAAAAAIAAAABAMAANb4CQAAAAAACAAAAAQDAABGhRQIAgAAAAgAAAAEAwAAlhoaDgIAAAAIAAAABAMAAMyfHw4CAAAACAAAAAQDAAAdoB8OAgAAACgAAAABBgAAFAEAACQBAAA0AQAARAEAAFQBAABkAQAAdAEAAIQBAACUAQAApAEAAAgAAAAABAAAQbfxthAAAAAYAAAAAQIAAAEAAAAAAAAAHwIAAAAAAAAfAgAAAAAAAAAAAAABBQAACAAAAAQDAAAIAAAAAAAAAAQAAAADAwAA9QEAAAgAAAABCQAAZmlsZTovLy8MAAAAAQEAAE1hY2ludG9zaCBIRAgAAAAEAwAAABBINzoAAAAIAAAAAAQAAEHE7Eu9AAAAJAAAAAEBAAA4MTMxRTgxRi0zMjAwLTM1NTMtOUQ0MC05M0M2NEUxNTVDMUUYAAAAAQIAAIEAAAABAAAA7xMAAAEAAADvEwAAAQAAAAEAAAABAQAALwAAABoAAAABAQAATlNVUkxEb2N1bWVudElkZW50aWZpZXJLZXkAAAQAAAADAwAAjoIBADMAAAABAgAAZG5pYgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAcG5nZkdOUAAAAAAAAAAAAPwAAAD+////AQAAAAAAAAAUAAAABBAAAOQAAAAAAAAABRAAALQBAAAAAAAAEBAAAPQBAAAAAAAAQBAAAOQBAAAAAAAAAiAAAMgCAAAAAAAABSAAADgCAAAAAAAAECAAAEgCAAAAAAAAESAAAHwCAAAAAAAAEiAAAFwCAAAAAAAAEyAAAGwCAAAAAAAAICAAAKgCAAAAAAAAMCAAABQCAAAAAAAAAcAAABwCAAAAAAAAEcAAACAAAAAAAAAAEsAAACwCAAAAAAAAAdAAABQCAAAAAAAAENAAAAQAAAAAAAAAF/AAAMgAAAAAAAAAIvAAAAQDAAAAAAAA1AIAgPgCAAAAAAAAAAA= 5 | FullPath = /Users/martintrippensee/Library/Mobile Documents/com~apple~CloudDocs/Xojo/Github/AndroidDesignExtensions/Pictures/mwx-logo-clear.png 6 | PartialPath = Pictures\mwx-logo-clear.png 7 | #tag ImageSpecification 8 | Comment = 9 | Device = 63 10 | HSize = 413.00 11 | Orientation = Any 12 | Platform = 31 13 | PPI = 72 14 | VSize = 539.00 15 | #tag EndImageSpecification 16 | #tag EndImageRepresentation 17 | #tag ImageRepresentation 18 | #tag ImageSpecification 19 | Comment = 20 | Device = 63 21 | HSize = 413.00 22 | Orientation = Any 23 | Platform = 31 24 | PPI = 144 25 | VSize = 539.00 26 | #tag EndImageSpecification 27 | #tag EndImageRepresentation 28 | #tag ImageRepresentation 29 | #tag ImageSpecification 30 | Comment = 31 | Device = 63 32 | HSize = 413.00 33 | Orientation = Any 34 | Platform = 31 35 | PPI = 216 36 | VSize = 539.00 37 | #tag EndImageSpecification 38 | #tag EndImageRepresentation 39 | End Image 40 | #tag EndMultiImage 41 | -------------------------------------------------------------------------------- /AndroidDesignExtensions/ContainerXC.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Module 2 | Protected Module ContainerXC 3 | #tag CompatibilityFlags = ( TargetAndroid and ( Target64Bit ) ) 4 | #tag Method, Flags = &h0 5 | Function GetCurrentFocusedControlXC(Extends myContainer As MobileContainer) As MobileUIControl 6 | #Pragma Unused myContainer 7 | 8 | #If TargetAndroid 9 | 10 | Var iCurrentFocusObjID As Integer = myContainer.GetCurrentFocusIDXC 11 | Var iObjID As Integer 12 | 13 | For Each obj As MobileControl In myContainer.Controls 14 | 15 | ' Check for MobileUIControl 16 | If Not (obj IsA MobileUIControl) Then Continue 17 | 18 | ' Check for MobileContainer 19 | If obj IsA MobileContainer Then Continue 20 | 21 | iObjID = MobileUIControl(obj).GetIDXC 22 | 23 | If iCurrentFocusObjID = iObjID Then 24 | 25 | Return MobileUIControl(obj) 26 | 27 | End If 28 | 29 | Next 30 | 31 | Return Nil 32 | 33 | #EndIf 34 | End Function 35 | #tag EndMethod 36 | 37 | #tag Method, Flags = &h0, Description = 52657475726E73207468652063757272656E7420666F637573656420766965772773206964656E7469666965722E 38 | Function GetCurrentFocusIDXC(Extends myContainer As MobileContainer) As Integer 39 | #Pragma Unused myContainer 40 | 41 | #If TargetAndroid 42 | 43 | Declare Function getCurrentFocusID Lib "Object:myContainer:MobileContainer" Alias "getActivity()!!.getCurrentFocus()!!.getId" As Int32 44 | 45 | Try 46 | 47 | Return getCurrentFocusID 48 | 49 | Catch error As NilObjectException 50 | 51 | Return -1 ' No selection 52 | 53 | End Try 54 | 55 | #EndIf 56 | End Function 57 | #tag EndMethod 58 | 59 | 60 | #tag ViewBehavior 61 | #tag ViewProperty 62 | Name="Name" 63 | Visible=true 64 | Group="ID" 65 | InitialValue="" 66 | Type="String" 67 | EditorType="" 68 | #tag EndViewProperty 69 | #tag ViewProperty 70 | Name="Index" 71 | Visible=true 72 | Group="ID" 73 | InitialValue="-2147483648" 74 | Type="Integer" 75 | EditorType="" 76 | #tag EndViewProperty 77 | #tag ViewProperty 78 | Name="Super" 79 | Visible=true 80 | Group="ID" 81 | InitialValue="" 82 | Type="String" 83 | EditorType="" 84 | #tag EndViewProperty 85 | #tag ViewProperty 86 | Name="Left" 87 | Visible=true 88 | Group="Position" 89 | InitialValue="0" 90 | Type="Integer" 91 | EditorType="" 92 | #tag EndViewProperty 93 | #tag ViewProperty 94 | Name="Top" 95 | Visible=true 96 | Group="Position" 97 | InitialValue="0" 98 | Type="Integer" 99 | EditorType="" 100 | #tag EndViewProperty 101 | #tag EndViewBehavior 102 | End Module 103 | #tag EndModule 104 | -------------------------------------------------------------------------------- /Screens/FontScreen.xojo_code: -------------------------------------------------------------------------------- 1 | #tag MobileScreen 2 | Begin TemplateScreenWithBackButton FontScreen 3 | Compatibility = "" 4 | Device = 1 5 | HasBackButton = True 6 | HasNavigationBar= True 7 | Modal = False 8 | Orientation = 0 9 | Title = "Fonts" 10 | Begin MobileScrollableArea FontScrollableArea 11 | AccessibilityHint= "" 12 | AccessibilityLabel= "" 13 | Enabled = True 14 | Height = 700 15 | Left = 0 16 | LockBottom = True 17 | LockedInPosition= False 18 | LockLeft = True 19 | LockRight = True 20 | LockTop = True 21 | Scope = 2 22 | ScrollContent = 1534883839 23 | Top = 0 24 | Visible = True 25 | Width = 360 26 | End 27 | End 28 | #tag EndMobileScreen 29 | 30 | #tag ScreenCode 31 | #tag EndScreenCode 32 | 33 | #tag ViewBehavior 34 | #tag ViewProperty 35 | Name="HasBackButton" 36 | Visible=true 37 | Group="Behavior" 38 | InitialValue="False" 39 | Type="Boolean" 40 | EditorType="" 41 | #tag EndViewProperty 42 | #tag ViewProperty 43 | Name="Name" 44 | Visible=true 45 | Group="ID" 46 | InitialValue="" 47 | Type="String" 48 | EditorType="" 49 | #tag EndViewProperty 50 | #tag ViewProperty 51 | Name="Index" 52 | Visible=true 53 | Group="ID" 54 | InitialValue="-2147483648" 55 | Type="Integer" 56 | EditorType="" 57 | #tag EndViewProperty 58 | #tag ViewProperty 59 | Name="Super" 60 | Visible=true 61 | Group="ID" 62 | InitialValue="" 63 | Type="String" 64 | EditorType="" 65 | #tag EndViewProperty 66 | #tag ViewProperty 67 | Name="Left" 68 | Visible=true 69 | Group="Position" 70 | InitialValue="0" 71 | Type="Integer" 72 | EditorType="" 73 | #tag EndViewProperty 74 | #tag ViewProperty 75 | Name="Top" 76 | Visible=true 77 | Group="Position" 78 | InitialValue="0" 79 | Type="Integer" 80 | EditorType="" 81 | #tag EndViewProperty 82 | #tag ViewProperty 83 | Name="ControlCount" 84 | Visible=false 85 | Group="Behavior" 86 | InitialValue="" 87 | Type="Integer" 88 | EditorType="" 89 | #tag EndViewProperty 90 | #tag ViewProperty 91 | Name="Title" 92 | Visible=true 93 | Group="Behavior" 94 | InitialValue="Untitled" 95 | Type="String" 96 | EditorType="MultiLineEditor" 97 | #tag EndViewProperty 98 | #tag ViewProperty 99 | Name="HasNavigationBar" 100 | Visible=true 101 | Group="Behavior" 102 | InitialValue="True" 103 | Type="Boolean" 104 | EditorType="" 105 | #tag EndViewProperty 106 | #tag ViewProperty 107 | Name="Modal" 108 | Visible=false 109 | Group="Behavior" 110 | InitialValue="" 111 | Type="Boolean" 112 | EditorType="" 113 | #tag EndViewProperty 114 | #tag ViewProperty 115 | Name="NavigationBarHeight" 116 | Visible=false 117 | Group="Behavior" 118 | InitialValue="" 119 | Type="Integer" 120 | EditorType="" 121 | #tag EndViewProperty 122 | #tag EndViewBehavior 123 | -------------------------------------------------------------------------------- /Screens/ButtonScreen.xojo_code: -------------------------------------------------------------------------------- 1 | #tag MobileScreen 2 | Begin TemplateScreenWithBackButton ButtonScreen 3 | Compatibility = "" 4 | Device = 1 5 | HasBackButton = True 6 | HasNavigationBar= True 7 | Modal = False 8 | Orientation = 0 9 | Title = "Buttons" 10 | Begin MobileScrollableArea ButtonScrollableArea 11 | AccessibilityHint= "" 12 | AccessibilityLabel= "" 13 | Enabled = True 14 | Height = 700 15 | Left = 0 16 | LockBottom = True 17 | LockedInPosition= False 18 | LockLeft = True 19 | LockRight = True 20 | LockTop = True 21 | Scope = 2 22 | ScrollContent = 578543615 23 | Top = 0 24 | Visible = True 25 | Width = 360 26 | End 27 | End 28 | #tag EndMobileScreen 29 | 30 | #tag ScreenCode 31 | #tag EndScreenCode 32 | 33 | #tag ViewBehavior 34 | #tag ViewProperty 35 | Name="HasBackButton" 36 | Visible=true 37 | Group="Behavior" 38 | InitialValue="False" 39 | Type="Boolean" 40 | EditorType="" 41 | #tag EndViewProperty 42 | #tag ViewProperty 43 | Name="Name" 44 | Visible=true 45 | Group="ID" 46 | InitialValue="" 47 | Type="String" 48 | EditorType="" 49 | #tag EndViewProperty 50 | #tag ViewProperty 51 | Name="Index" 52 | Visible=true 53 | Group="ID" 54 | InitialValue="-2147483648" 55 | Type="Integer" 56 | EditorType="" 57 | #tag EndViewProperty 58 | #tag ViewProperty 59 | Name="Super" 60 | Visible=true 61 | Group="ID" 62 | InitialValue="" 63 | Type="String" 64 | EditorType="" 65 | #tag EndViewProperty 66 | #tag ViewProperty 67 | Name="Left" 68 | Visible=true 69 | Group="Position" 70 | InitialValue="0" 71 | Type="Integer" 72 | EditorType="" 73 | #tag EndViewProperty 74 | #tag ViewProperty 75 | Name="Top" 76 | Visible=true 77 | Group="Position" 78 | InitialValue="0" 79 | Type="Integer" 80 | EditorType="" 81 | #tag EndViewProperty 82 | #tag ViewProperty 83 | Name="ControlCount" 84 | Visible=false 85 | Group="Behavior" 86 | InitialValue="" 87 | Type="Integer" 88 | EditorType="" 89 | #tag EndViewProperty 90 | #tag ViewProperty 91 | Name="Title" 92 | Visible=true 93 | Group="Behavior" 94 | InitialValue="Untitled" 95 | Type="String" 96 | EditorType="MultiLineEditor" 97 | #tag EndViewProperty 98 | #tag ViewProperty 99 | Name="HasNavigationBar" 100 | Visible=true 101 | Group="Behavior" 102 | InitialValue="True" 103 | Type="Boolean" 104 | EditorType="" 105 | #tag EndViewProperty 106 | #tag ViewProperty 107 | Name="Modal" 108 | Visible=false 109 | Group="Behavior" 110 | InitialValue="" 111 | Type="Boolean" 112 | EditorType="" 113 | #tag EndViewProperty 114 | #tag ViewProperty 115 | Name="NavigationBarHeight" 116 | Visible=false 117 | Group="Behavior" 118 | InitialValue="" 119 | Type="Integer" 120 | EditorType="" 121 | #tag EndViewProperty 122 | #tag EndViewBehavior 123 | -------------------------------------------------------------------------------- /Screens/ControlScreen.xojo_code: -------------------------------------------------------------------------------- 1 | #tag MobileScreen 2 | Begin TemplateScreenWithBackButton ControlScreen 3 | Compatibility = "" 4 | Device = 1 5 | HasBackButton = True 6 | HasNavigationBar= True 7 | Modal = False 8 | Orientation = 0 9 | Title = "Controls" 10 | Begin MobileScrollableArea ControlScrollableArea 11 | AccessibilityHint= "" 12 | AccessibilityLabel= "" 13 | Enabled = True 14 | Height = 700 15 | Left = 0 16 | LockBottom = True 17 | LockedInPosition= False 18 | LockLeft = True 19 | LockRight = True 20 | LockTop = True 21 | Scope = 2 22 | ScrollContent = 448548863 23 | Top = 0 24 | Visible = True 25 | Width = 360 26 | End 27 | End 28 | #tag EndMobileScreen 29 | 30 | #tag ScreenCode 31 | #tag EndScreenCode 32 | 33 | #tag ViewBehavior 34 | #tag ViewProperty 35 | Name="HasBackButton" 36 | Visible=true 37 | Group="Behavior" 38 | InitialValue="False" 39 | Type="Boolean" 40 | EditorType="" 41 | #tag EndViewProperty 42 | #tag ViewProperty 43 | Name="Name" 44 | Visible=true 45 | Group="ID" 46 | InitialValue="" 47 | Type="String" 48 | EditorType="" 49 | #tag EndViewProperty 50 | #tag ViewProperty 51 | Name="Index" 52 | Visible=true 53 | Group="ID" 54 | InitialValue="-2147483648" 55 | Type="Integer" 56 | EditorType="" 57 | #tag EndViewProperty 58 | #tag ViewProperty 59 | Name="Super" 60 | Visible=true 61 | Group="ID" 62 | InitialValue="" 63 | Type="String" 64 | EditorType="" 65 | #tag EndViewProperty 66 | #tag ViewProperty 67 | Name="Left" 68 | Visible=true 69 | Group="Position" 70 | InitialValue="0" 71 | Type="Integer" 72 | EditorType="" 73 | #tag EndViewProperty 74 | #tag ViewProperty 75 | Name="Top" 76 | Visible=true 77 | Group="Position" 78 | InitialValue="0" 79 | Type="Integer" 80 | EditorType="" 81 | #tag EndViewProperty 82 | #tag ViewProperty 83 | Name="ControlCount" 84 | Visible=false 85 | Group="Behavior" 86 | InitialValue="" 87 | Type="Integer" 88 | EditorType="" 89 | #tag EndViewProperty 90 | #tag ViewProperty 91 | Name="Title" 92 | Visible=true 93 | Group="Behavior" 94 | InitialValue="Untitled" 95 | Type="String" 96 | EditorType="MultiLineEditor" 97 | #tag EndViewProperty 98 | #tag ViewProperty 99 | Name="HasNavigationBar" 100 | Visible=true 101 | Group="Behavior" 102 | InitialValue="True" 103 | Type="Boolean" 104 | EditorType="" 105 | #tag EndViewProperty 106 | #tag ViewProperty 107 | Name="Modal" 108 | Visible=false 109 | Group="Behavior" 110 | InitialValue="" 111 | Type="Boolean" 112 | EditorType="" 113 | #tag EndViewProperty 114 | #tag ViewProperty 115 | Name="NavigationBarHeight" 116 | Visible=false 117 | Group="Behavior" 118 | InitialValue="" 119 | Type="Integer" 120 | EditorType="" 121 | #tag EndViewProperty 122 | #tag EndViewBehavior 123 | -------------------------------------------------------------------------------- /Screens/TextAreaScreen.xojo_code: -------------------------------------------------------------------------------- 1 | #tag MobileScreen 2 | Begin TemplateScreenWithBackButton TextAreaScreen 3 | Compatibility = "" 4 | Device = 1 5 | HasBackButton = True 6 | HasNavigationBar= True 7 | Modal = False 8 | Orientation = 0 9 | Title = "Text Areas" 10 | Begin MobileScrollableArea ScrollableArea1 11 | AccessibilityHint= "" 12 | AccessibilityLabel= "" 13 | Enabled = True 14 | Height = 700 15 | Left = 0 16 | LockBottom = True 17 | LockedInPosition= False 18 | LockLeft = True 19 | LockRight = True 20 | LockTop = True 21 | Scope = 2 22 | ScrollContent = 1683423231 23 | Top = 0 24 | Visible = True 25 | Width = 360 26 | End 27 | End 28 | #tag EndMobileScreen 29 | 30 | #tag ScreenCode 31 | #tag EndScreenCode 32 | 33 | #tag ViewBehavior 34 | #tag ViewProperty 35 | Name="HasBackButton" 36 | Visible=true 37 | Group="Behavior" 38 | InitialValue="False" 39 | Type="Boolean" 40 | EditorType="" 41 | #tag EndViewProperty 42 | #tag ViewProperty 43 | Name="Name" 44 | Visible=true 45 | Group="ID" 46 | InitialValue="" 47 | Type="String" 48 | EditorType="" 49 | #tag EndViewProperty 50 | #tag ViewProperty 51 | Name="Index" 52 | Visible=true 53 | Group="ID" 54 | InitialValue="-2147483648" 55 | Type="Integer" 56 | EditorType="" 57 | #tag EndViewProperty 58 | #tag ViewProperty 59 | Name="Super" 60 | Visible=true 61 | Group="ID" 62 | InitialValue="" 63 | Type="String" 64 | EditorType="" 65 | #tag EndViewProperty 66 | #tag ViewProperty 67 | Name="Left" 68 | Visible=true 69 | Group="Position" 70 | InitialValue="0" 71 | Type="Integer" 72 | EditorType="" 73 | #tag EndViewProperty 74 | #tag ViewProperty 75 | Name="Top" 76 | Visible=true 77 | Group="Position" 78 | InitialValue="0" 79 | Type="Integer" 80 | EditorType="" 81 | #tag EndViewProperty 82 | #tag ViewProperty 83 | Name="ControlCount" 84 | Visible=false 85 | Group="Behavior" 86 | InitialValue="" 87 | Type="Integer" 88 | EditorType="" 89 | #tag EndViewProperty 90 | #tag ViewProperty 91 | Name="Title" 92 | Visible=true 93 | Group="Behavior" 94 | InitialValue="Untitled" 95 | Type="String" 96 | EditorType="MultiLineEditor" 97 | #tag EndViewProperty 98 | #tag ViewProperty 99 | Name="HasNavigationBar" 100 | Visible=true 101 | Group="Behavior" 102 | InitialValue="True" 103 | Type="Boolean" 104 | EditorType="" 105 | #tag EndViewProperty 106 | #tag ViewProperty 107 | Name="Modal" 108 | Visible=false 109 | Group="Behavior" 110 | InitialValue="" 111 | Type="Boolean" 112 | EditorType="" 113 | #tag EndViewProperty 114 | #tag ViewProperty 115 | Name="NavigationBarHeight" 116 | Visible=false 117 | Group="Behavior" 118 | InitialValue="" 119 | Type="Integer" 120 | EditorType="" 121 | #tag EndViewProperty 122 | #tag EndViewBehavior 123 | -------------------------------------------------------------------------------- /Screens/LabelScreen.xojo_code: -------------------------------------------------------------------------------- 1 | #tag MobileScreen 2 | Begin TemplateScreenWithBackButton LabelScreen 3 | Compatibility = "(TargetConsole and (Target32Bit or Target64Bit)) or (TargetWeb and (Target32Bit or Target64Bit)) or (TargetDesktop and (Target32Bit or Target64Bit)) or (TargetIOS and (Target64Bit)) or (TargetAndroid and (Target64Bit))" 4 | Device = 1 5 | HasBackButton = True 6 | HasNavigationBar= True 7 | Modal = False 8 | Orientation = 0 9 | Title = "Labels" 10 | Begin MobileScrollableArea ScrollableArea1 11 | AccessibilityHint= "" 12 | AccessibilityLabel= "" 13 | Enabled = True 14 | Height = 700 15 | Left = 0 16 | LockBottom = True 17 | LockedInPosition= False 18 | LockLeft = True 19 | LockRight = True 20 | LockTop = True 21 | Scope = 2 22 | ScrollContent = 2120970239 23 | Top = 0 24 | Visible = True 25 | Width = 360 26 | End 27 | End 28 | #tag EndMobileScreen 29 | 30 | #tag ScreenCode 31 | #tag EndScreenCode 32 | 33 | #tag ViewBehavior 34 | #tag ViewProperty 35 | Name="HasBackButton" 36 | Visible=true 37 | Group="Behavior" 38 | InitialValue="False" 39 | Type="Boolean" 40 | EditorType="" 41 | #tag EndViewProperty 42 | #tag ViewProperty 43 | Name="Name" 44 | Visible=true 45 | Group="ID" 46 | InitialValue="" 47 | Type="String" 48 | EditorType="" 49 | #tag EndViewProperty 50 | #tag ViewProperty 51 | Name="Index" 52 | Visible=true 53 | Group="ID" 54 | InitialValue="-2147483648" 55 | Type="Integer" 56 | EditorType="" 57 | #tag EndViewProperty 58 | #tag ViewProperty 59 | Name="Super" 60 | Visible=true 61 | Group="ID" 62 | InitialValue="" 63 | Type="String" 64 | EditorType="" 65 | #tag EndViewProperty 66 | #tag ViewProperty 67 | Name="Left" 68 | Visible=true 69 | Group="Position" 70 | InitialValue="0" 71 | Type="Integer" 72 | EditorType="" 73 | #tag EndViewProperty 74 | #tag ViewProperty 75 | Name="Top" 76 | Visible=true 77 | Group="Position" 78 | InitialValue="0" 79 | Type="Integer" 80 | EditorType="" 81 | #tag EndViewProperty 82 | #tag ViewProperty 83 | Name="ControlCount" 84 | Visible=false 85 | Group="Behavior" 86 | InitialValue="" 87 | Type="Integer" 88 | EditorType="" 89 | #tag EndViewProperty 90 | #tag ViewProperty 91 | Name="Title" 92 | Visible=true 93 | Group="Behavior" 94 | InitialValue="Untitled" 95 | Type="String" 96 | EditorType="MultiLineEditor" 97 | #tag EndViewProperty 98 | #tag ViewProperty 99 | Name="HasNavigationBar" 100 | Visible=true 101 | Group="Behavior" 102 | InitialValue="True" 103 | Type="Boolean" 104 | EditorType="" 105 | #tag EndViewProperty 106 | #tag ViewProperty 107 | Name="Modal" 108 | Visible=false 109 | Group="Behavior" 110 | InitialValue="" 111 | Type="Boolean" 112 | EditorType="" 113 | #tag EndViewProperty 114 | #tag ViewProperty 115 | Name="NavigationBarHeight" 116 | Visible=false 117 | Group="Behavior" 118 | InitialValue="" 119 | Type="Integer" 120 | EditorType="" 121 | #tag EndViewProperty 122 | #tag EndViewBehavior 123 | -------------------------------------------------------------------------------- /Screens/IndicatorScreen.xojo_code: -------------------------------------------------------------------------------- 1 | #tag MobileScreen 2 | Begin TemplateScreenWithBackButton IndicatorScreen 3 | Compatibility = "(TargetConsole and (Target32Bit or Target64Bit)) or (TargetWeb and (Target32Bit or Target64Bit)) or (TargetDesktop and (Target32Bit or Target64Bit)) or (TargetIOS and (Target64Bit)) or (TargetAndroid and (Target64Bit))" 4 | Device = 1 5 | HasBackButton = True 6 | HasNavigationBar= True 7 | Modal = False 8 | Orientation = 0 9 | Title = "Indicators" 10 | Begin MobileScrollableArea ScrollableArea1 11 | AccessibilityHint= "" 12 | AccessibilityLabel= "" 13 | Enabled = True 14 | Height = 700 15 | Left = 0 16 | LockBottom = True 17 | LockedInPosition= False 18 | LockLeft = True 19 | LockRight = True 20 | LockTop = True 21 | Scope = 2 22 | ScrollContent = 1284966399 23 | Top = 0 24 | Visible = True 25 | Width = 360 26 | End 27 | End 28 | #tag EndMobileScreen 29 | 30 | #tag ScreenCode 31 | #tag EndScreenCode 32 | 33 | #tag ViewBehavior 34 | #tag ViewProperty 35 | Name="HasBackButton" 36 | Visible=true 37 | Group="Behavior" 38 | InitialValue="False" 39 | Type="Boolean" 40 | EditorType="" 41 | #tag EndViewProperty 42 | #tag ViewProperty 43 | Name="Name" 44 | Visible=true 45 | Group="ID" 46 | InitialValue="" 47 | Type="String" 48 | EditorType="" 49 | #tag EndViewProperty 50 | #tag ViewProperty 51 | Name="Index" 52 | Visible=true 53 | Group="ID" 54 | InitialValue="-2147483648" 55 | Type="Integer" 56 | EditorType="" 57 | #tag EndViewProperty 58 | #tag ViewProperty 59 | Name="Super" 60 | Visible=true 61 | Group="ID" 62 | InitialValue="" 63 | Type="String" 64 | EditorType="" 65 | #tag EndViewProperty 66 | #tag ViewProperty 67 | Name="Left" 68 | Visible=true 69 | Group="Position" 70 | InitialValue="0" 71 | Type="Integer" 72 | EditorType="" 73 | #tag EndViewProperty 74 | #tag ViewProperty 75 | Name="Top" 76 | Visible=true 77 | Group="Position" 78 | InitialValue="0" 79 | Type="Integer" 80 | EditorType="" 81 | #tag EndViewProperty 82 | #tag ViewProperty 83 | Name="ControlCount" 84 | Visible=false 85 | Group="Behavior" 86 | InitialValue="" 87 | Type="Integer" 88 | EditorType="" 89 | #tag EndViewProperty 90 | #tag ViewProperty 91 | Name="Title" 92 | Visible=true 93 | Group="Behavior" 94 | InitialValue="Untitled" 95 | Type="String" 96 | EditorType="MultiLineEditor" 97 | #tag EndViewProperty 98 | #tag ViewProperty 99 | Name="HasNavigationBar" 100 | Visible=true 101 | Group="Behavior" 102 | InitialValue="True" 103 | Type="Boolean" 104 | EditorType="" 105 | #tag EndViewProperty 106 | #tag ViewProperty 107 | Name="Modal" 108 | Visible=false 109 | Group="Behavior" 110 | InitialValue="" 111 | Type="Boolean" 112 | EditorType="" 113 | #tag EndViewProperty 114 | #tag ViewProperty 115 | Name="NavigationBarHeight" 116 | Visible=false 117 | Group="Behavior" 118 | InitialValue="" 119 | Type="Integer" 120 | EditorType="" 121 | #tag EndViewProperty 122 | #tag EndViewBehavior 123 | -------------------------------------------------------------------------------- /Screens/TabPanelScreen.xojo_code: -------------------------------------------------------------------------------- 1 | #tag MobileScreen 2 | Begin TemplateScreenWithBackButton TabPanelScreen 3 | Compatibility = "(TargetConsole and (Target32Bit or Target64Bit)) or (TargetWeb and (Target32Bit or Target64Bit)) or (TargetDesktop and (Target32Bit or Target64Bit)) or (TargetIOS and (Target64Bit)) or (TargetAndroid and (Target64Bit))" 4 | Device = 1 5 | HasBackButton = True 6 | HasNavigationBar= True 7 | Modal = False 8 | Orientation = 0 9 | Title = "Tab Panels" 10 | Begin MobileScrollableArea ScrollableArea1 11 | AccessibilityHint= "" 12 | AccessibilityLabel= "" 13 | Enabled = True 14 | Height = 700 15 | Left = 0 16 | LockBottom = True 17 | LockedInPosition= False 18 | LockLeft = True 19 | LockRight = True 20 | LockTop = True 21 | Scope = 2 22 | ScrollContent = 506877951 23 | Top = 0 24 | Visible = True 25 | Width = 360 26 | End 27 | End 28 | #tag EndMobileScreen 29 | 30 | #tag ScreenCode 31 | #tag EndScreenCode 32 | 33 | #tag ViewBehavior 34 | #tag ViewProperty 35 | Name="HasBackButton" 36 | Visible=true 37 | Group="Behavior" 38 | InitialValue="False" 39 | Type="Boolean" 40 | EditorType="" 41 | #tag EndViewProperty 42 | #tag ViewProperty 43 | Name="Name" 44 | Visible=true 45 | Group="ID" 46 | InitialValue="" 47 | Type="String" 48 | EditorType="" 49 | #tag EndViewProperty 50 | #tag ViewProperty 51 | Name="Index" 52 | Visible=true 53 | Group="ID" 54 | InitialValue="-2147483648" 55 | Type="Integer" 56 | EditorType="" 57 | #tag EndViewProperty 58 | #tag ViewProperty 59 | Name="Super" 60 | Visible=true 61 | Group="ID" 62 | InitialValue="" 63 | Type="String" 64 | EditorType="" 65 | #tag EndViewProperty 66 | #tag ViewProperty 67 | Name="Left" 68 | Visible=true 69 | Group="Position" 70 | InitialValue="0" 71 | Type="Integer" 72 | EditorType="" 73 | #tag EndViewProperty 74 | #tag ViewProperty 75 | Name="Top" 76 | Visible=true 77 | Group="Position" 78 | InitialValue="0" 79 | Type="Integer" 80 | EditorType="" 81 | #tag EndViewProperty 82 | #tag ViewProperty 83 | Name="ControlCount" 84 | Visible=false 85 | Group="Behavior" 86 | InitialValue="" 87 | Type="Integer" 88 | EditorType="" 89 | #tag EndViewProperty 90 | #tag ViewProperty 91 | Name="Title" 92 | Visible=true 93 | Group="Behavior" 94 | InitialValue="Untitled" 95 | Type="String" 96 | EditorType="MultiLineEditor" 97 | #tag EndViewProperty 98 | #tag ViewProperty 99 | Name="HasNavigationBar" 100 | Visible=true 101 | Group="Behavior" 102 | InitialValue="True" 103 | Type="Boolean" 104 | EditorType="" 105 | #tag EndViewProperty 106 | #tag ViewProperty 107 | Name="Modal" 108 | Visible=false 109 | Group="Behavior" 110 | InitialValue="" 111 | Type="Boolean" 112 | EditorType="" 113 | #tag EndViewProperty 114 | #tag ViewProperty 115 | Name="NavigationBarHeight" 116 | Visible=false 117 | Group="Behavior" 118 | InitialValue="" 119 | Type="Integer" 120 | EditorType="" 121 | #tag EndViewProperty 122 | #tag EndViewBehavior 123 | -------------------------------------------------------------------------------- /Screens/TextFieldScreen.xojo_code: -------------------------------------------------------------------------------- 1 | #tag MobileScreen 2 | Begin TemplateScreenWithBackButton TextFieldScreen 3 | Compatibility = "(TargetConsole and (Target32Bit or Target64Bit)) or (TargetWeb and (Target32Bit or Target64Bit)) or (TargetDesktop and (Target32Bit or Target64Bit)) or (TargetIOS and (Target64Bit)) or (TargetAndroid and (Target64Bit))" 4 | Device = 1 5 | HasBackButton = True 6 | HasNavigationBar= True 7 | Modal = False 8 | Orientation = 0 9 | Title = "Text Fields" 10 | Begin MobileScrollableArea ScrollableArea1 11 | AccessibilityHint= "" 12 | AccessibilityLabel= "" 13 | Enabled = True 14 | Height = 700 15 | Left = 0 16 | LockBottom = True 17 | LockedInPosition= False 18 | LockLeft = True 19 | LockRight = True 20 | LockTop = True 21 | Scope = 2 22 | ScrollContent = 1517664255 23 | Top = 0 24 | Visible = True 25 | Width = 360 26 | End 27 | End 28 | #tag EndMobileScreen 29 | 30 | #tag ScreenCode 31 | #tag EndScreenCode 32 | 33 | #tag ViewBehavior 34 | #tag ViewProperty 35 | Name="HasBackButton" 36 | Visible=true 37 | Group="Behavior" 38 | InitialValue="False" 39 | Type="Boolean" 40 | EditorType="" 41 | #tag EndViewProperty 42 | #tag ViewProperty 43 | Name="Name" 44 | Visible=true 45 | Group="ID" 46 | InitialValue="" 47 | Type="String" 48 | EditorType="" 49 | #tag EndViewProperty 50 | #tag ViewProperty 51 | Name="Index" 52 | Visible=true 53 | Group="ID" 54 | InitialValue="-2147483648" 55 | Type="Integer" 56 | EditorType="" 57 | #tag EndViewProperty 58 | #tag ViewProperty 59 | Name="Super" 60 | Visible=true 61 | Group="ID" 62 | InitialValue="" 63 | Type="String" 64 | EditorType="" 65 | #tag EndViewProperty 66 | #tag ViewProperty 67 | Name="Left" 68 | Visible=true 69 | Group="Position" 70 | InitialValue="0" 71 | Type="Integer" 72 | EditorType="" 73 | #tag EndViewProperty 74 | #tag ViewProperty 75 | Name="Top" 76 | Visible=true 77 | Group="Position" 78 | InitialValue="0" 79 | Type="Integer" 80 | EditorType="" 81 | #tag EndViewProperty 82 | #tag ViewProperty 83 | Name="ControlCount" 84 | Visible=false 85 | Group="Behavior" 86 | InitialValue="" 87 | Type="Integer" 88 | EditorType="" 89 | #tag EndViewProperty 90 | #tag ViewProperty 91 | Name="Title" 92 | Visible=true 93 | Group="Behavior" 94 | InitialValue="Untitled" 95 | Type="String" 96 | EditorType="MultiLineEditor" 97 | #tag EndViewProperty 98 | #tag ViewProperty 99 | Name="HasNavigationBar" 100 | Visible=true 101 | Group="Behavior" 102 | InitialValue="True" 103 | Type="Boolean" 104 | EditorType="" 105 | #tag EndViewProperty 106 | #tag ViewProperty 107 | Name="Modal" 108 | Visible=false 109 | Group="Behavior" 110 | InitialValue="" 111 | Type="Boolean" 112 | EditorType="" 113 | #tag EndViewProperty 114 | #tag ViewProperty 115 | Name="NavigationBarHeight" 116 | Visible=false 117 | Group="Behavior" 118 | InitialValue="" 119 | Type="Integer" 120 | EditorType="" 121 | #tag EndViewProperty 122 | #tag EndViewBehavior 123 | -------------------------------------------------------------------------------- /Controls/AppearanceSwitch.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Class 2 | Protected Class AppearanceSwitch 3 | Inherits MobileSwitch 4 | #tag Event 5 | Sub Opening() 6 | If Color.IsDarkMode Then 7 | 8 | Me.SetTrackColorXC(&cB2C5FF00) 9 | Me.SetThumbColorXC(&c182E6000) 10 | 11 | End If 12 | 13 | ' Call Opening-Event. 14 | RaiseEvent Opening 15 | End Sub 16 | #tag EndEvent 17 | 18 | 19 | #tag Hook, Flags = &h0 20 | Event Opening() 21 | #tag EndHook 22 | 23 | 24 | #tag ViewBehavior 25 | #tag ViewProperty 26 | Name="Enabled" 27 | Visible=true 28 | Group="UI Control" 29 | InitialValue="True" 30 | Type="Boolean" 31 | EditorType="" 32 | #tag EndViewProperty 33 | #tag ViewProperty 34 | Name="Visible" 35 | Visible=true 36 | Group="UI Control" 37 | InitialValue="True" 38 | Type="Boolean" 39 | EditorType="" 40 | #tag EndViewProperty 41 | #tag ViewProperty 42 | Name="Name" 43 | Visible=true 44 | Group="ID" 45 | InitialValue="" 46 | Type="String" 47 | EditorType="" 48 | #tag EndViewProperty 49 | #tag ViewProperty 50 | Name="Index" 51 | Visible=true 52 | Group="ID" 53 | InitialValue="-2147483648" 54 | Type="Integer" 55 | EditorType="" 56 | #tag EndViewProperty 57 | #tag ViewProperty 58 | Name="Super" 59 | Visible=true 60 | Group="ID" 61 | InitialValue="" 62 | Type="String" 63 | EditorType="" 64 | #tag EndViewProperty 65 | #tag ViewProperty 66 | Name="Left" 67 | Visible=true 68 | Group="Position" 69 | InitialValue="0" 70 | Type="Integer" 71 | EditorType="" 72 | #tag EndViewProperty 73 | #tag ViewProperty 74 | Name="Top" 75 | Visible=true 76 | Group="Position" 77 | InitialValue="0" 78 | Type="Integer" 79 | EditorType="" 80 | #tag EndViewProperty 81 | #tag ViewProperty 82 | Name="Height" 83 | Visible=true 84 | Group="Position" 85 | InitialValue="30" 86 | Type="Integer" 87 | EditorType="" 88 | #tag EndViewProperty 89 | #tag ViewProperty 90 | Name="Width" 91 | Visible=true 92 | Group="Position" 93 | InitialValue="50" 94 | Type="Integer" 95 | EditorType="" 96 | #tag EndViewProperty 97 | #tag ViewProperty 98 | Name="LockLeft" 99 | Visible=true 100 | Group="Behavior" 101 | InitialValue="" 102 | Type="Boolean" 103 | EditorType="" 104 | #tag EndViewProperty 105 | #tag ViewProperty 106 | Name="LockRight" 107 | Visible=true 108 | Group="Behavior" 109 | InitialValue="" 110 | Type="Boolean" 111 | EditorType="" 112 | #tag EndViewProperty 113 | #tag ViewProperty 114 | Name="LockTop" 115 | Visible=true 116 | Group="Behavior" 117 | InitialValue="" 118 | Type="Boolean" 119 | EditorType="" 120 | #tag EndViewProperty 121 | #tag ViewProperty 122 | Name="LockBottom" 123 | Visible=true 124 | Group="Behavior" 125 | InitialValue="" 126 | Type="Boolean" 127 | EditorType="" 128 | #tag EndViewProperty 129 | #tag ViewProperty 130 | Name="AccessibilityHint" 131 | Visible=true 132 | Group="UI Control" 133 | InitialValue="" 134 | Type="String" 135 | EditorType="MultiLineEditor" 136 | #tag EndViewProperty 137 | #tag ViewProperty 138 | Name="AccessibilityLabel" 139 | Visible=true 140 | Group="UI Control" 141 | InitialValue="" 142 | Type="String" 143 | EditorType="MultiLineEditor" 144 | #tag EndViewProperty 145 | #tag ViewProperty 146 | Name="Value" 147 | Visible=true 148 | Group="Switch" 149 | InitialValue="" 150 | Type="Boolean" 151 | EditorType="" 152 | #tag EndViewProperty 153 | #tag EndViewBehavior 154 | End Class 155 | #tag EndClass 156 | -------------------------------------------------------------------------------- /Controls/TestButton.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Class 2 | Protected Class TestButton 3 | Inherits AppearanceButton 4 | #tag CompatibilityFlags = ( TargetIOS and ( Target64Bit ) ) or ( TargetAndroid and ( Target64Bit ) ) 5 | #tag Event 6 | Sub Pressed() 7 | MessageBox(XojoVersionString) 8 | 9 | ' Call Pressed-Event. 10 | RaiseEvent Pressed 11 | End Sub 12 | #tag EndEvent 13 | 14 | 15 | #tag Hook, Flags = &h0 16 | Event Pressed() 17 | #tag EndHook 18 | 19 | 20 | #tag ViewBehavior 21 | #tag ViewProperty 22 | Name="Name" 23 | Visible=true 24 | Group="ID" 25 | InitialValue="" 26 | Type="String" 27 | EditorType="" 28 | #tag EndViewProperty 29 | #tag ViewProperty 30 | Name="Index" 31 | Visible=true 32 | Group="ID" 33 | InitialValue="-2147483648" 34 | Type="Integer" 35 | EditorType="" 36 | #tag EndViewProperty 37 | #tag ViewProperty 38 | Name="Super" 39 | Visible=true 40 | Group="ID" 41 | InitialValue="" 42 | Type="String" 43 | EditorType="" 44 | #tag EndViewProperty 45 | #tag ViewProperty 46 | Name="Left" 47 | Visible=true 48 | Group="Position" 49 | InitialValue="0" 50 | Type="Integer" 51 | EditorType="" 52 | #tag EndViewProperty 53 | #tag ViewProperty 54 | Name="Top" 55 | Visible=true 56 | Group="Position" 57 | InitialValue="0" 58 | Type="Integer" 59 | EditorType="" 60 | #tag EndViewProperty 61 | #tag ViewProperty 62 | Name="Height" 63 | Visible=true 64 | Group="Position" 65 | InitialValue="44" 66 | Type="Integer" 67 | EditorType="" 68 | #tag EndViewProperty 69 | #tag ViewProperty 70 | Name="Width" 71 | Visible=true 72 | Group="Position" 73 | InitialValue="100" 74 | Type="Integer" 75 | EditorType="" 76 | #tag EndViewProperty 77 | #tag ViewProperty 78 | Name="LockLeft" 79 | Visible=true 80 | Group="Behavior" 81 | InitialValue="" 82 | Type="Boolean" 83 | EditorType="" 84 | #tag EndViewProperty 85 | #tag ViewProperty 86 | Name="LockRight" 87 | Visible=true 88 | Group="Behavior" 89 | InitialValue="" 90 | Type="Boolean" 91 | EditorType="" 92 | #tag EndViewProperty 93 | #tag ViewProperty 94 | Name="LockTop" 95 | Visible=true 96 | Group="Behavior" 97 | InitialValue="" 98 | Type="Boolean" 99 | EditorType="" 100 | #tag EndViewProperty 101 | #tag ViewProperty 102 | Name="LockBottom" 103 | Visible=true 104 | Group="Behavior" 105 | InitialValue="" 106 | Type="Boolean" 107 | EditorType="" 108 | #tag EndViewProperty 109 | #tag ViewProperty 110 | Name="AccessibilityHint" 111 | Visible=true 112 | Group="Behavior" 113 | InitialValue="" 114 | Type="String" 115 | EditorType="MultiLineEditor" 116 | #tag EndViewProperty 117 | #tag ViewProperty 118 | Name="AccessibilityLabel" 119 | Visible=true 120 | Group="Behavior" 121 | InitialValue="" 122 | Type="String" 123 | EditorType="MultiLineEditor" 124 | #tag EndViewProperty 125 | #tag ViewProperty 126 | Name="Enabled" 127 | Visible=true 128 | Group="UI Control" 129 | InitialValue="True" 130 | Type="Boolean" 131 | EditorType="" 132 | #tag EndViewProperty 133 | #tag ViewProperty 134 | Name="Visible" 135 | Visible=true 136 | Group="UI Control" 137 | InitialValue="True" 138 | Type="Boolean" 139 | EditorType="" 140 | #tag EndViewProperty 141 | #tag ViewProperty 142 | Name="Caption" 143 | Visible=true 144 | Group="Button" 145 | InitialValue="Button" 146 | Type="String" 147 | EditorType="MultiLineEditor" 148 | #tag EndViewProperty 149 | #tag ViewProperty 150 | Name="CaptionColor" 151 | Visible=true 152 | Group="Button" 153 | InitialValue="&cffffff" 154 | Type="Color" 155 | EditorType="" 156 | #tag EndViewProperty 157 | #tag EndViewBehavior 158 | End Class 159 | #tag EndClass 160 | -------------------------------------------------------------------------------- /Controls/AppearanceButton.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Class 2 | Protected Class AppearanceButton 3 | Inherits MobileButton 4 | #tag Event 5 | Sub Opening() 6 | If Color.IsDarkMode Then 7 | 8 | Me.SetBackgroundColorXC(&cB2C5FF) 9 | Me.SetCornerRadiusXC(40) 10 | Me.CaptionColor = &c182E60 11 | 12 | End If 13 | 14 | ' Call Opening-Event. 15 | RaiseEvent Opening 16 | End Sub 17 | #tag EndEvent 18 | 19 | 20 | #tag Hook, Flags = &h0 21 | Event Opening() 22 | #tag EndHook 23 | 24 | 25 | #tag ViewBehavior 26 | #tag ViewProperty 27 | Name="Name" 28 | Visible=true 29 | Group="ID" 30 | InitialValue="" 31 | Type="String" 32 | EditorType="" 33 | #tag EndViewProperty 34 | #tag ViewProperty 35 | Name="Index" 36 | Visible=true 37 | Group="ID" 38 | InitialValue="-2147483648" 39 | Type="Integer" 40 | EditorType="" 41 | #tag EndViewProperty 42 | #tag ViewProperty 43 | Name="Super" 44 | Visible=true 45 | Group="ID" 46 | InitialValue="" 47 | Type="String" 48 | EditorType="" 49 | #tag EndViewProperty 50 | #tag ViewProperty 51 | Name="Left" 52 | Visible=true 53 | Group="Position" 54 | InitialValue="0" 55 | Type="Integer" 56 | EditorType="" 57 | #tag EndViewProperty 58 | #tag ViewProperty 59 | Name="Top" 60 | Visible=true 61 | Group="Position" 62 | InitialValue="0" 63 | Type="Integer" 64 | EditorType="" 65 | #tag EndViewProperty 66 | #tag ViewProperty 67 | Name="Height" 68 | Visible=true 69 | Group="Position" 70 | InitialValue="44" 71 | Type="Integer" 72 | EditorType="" 73 | #tag EndViewProperty 74 | #tag ViewProperty 75 | Name="Width" 76 | Visible=true 77 | Group="Position" 78 | InitialValue="100" 79 | Type="Integer" 80 | EditorType="" 81 | #tag EndViewProperty 82 | #tag ViewProperty 83 | Name="LockLeft" 84 | Visible=true 85 | Group="Behavior" 86 | InitialValue="" 87 | Type="Boolean" 88 | EditorType="" 89 | #tag EndViewProperty 90 | #tag ViewProperty 91 | Name="LockRight" 92 | Visible=true 93 | Group="Behavior" 94 | InitialValue="" 95 | Type="Boolean" 96 | EditorType="" 97 | #tag EndViewProperty 98 | #tag ViewProperty 99 | Name="LockTop" 100 | Visible=true 101 | Group="Behavior" 102 | InitialValue="" 103 | Type="Boolean" 104 | EditorType="" 105 | #tag EndViewProperty 106 | #tag ViewProperty 107 | Name="LockBottom" 108 | Visible=true 109 | Group="Behavior" 110 | InitialValue="" 111 | Type="Boolean" 112 | EditorType="" 113 | #tag EndViewProperty 114 | #tag ViewProperty 115 | Name="AccessibilityHint" 116 | Visible=true 117 | Group="UI Control" 118 | InitialValue="" 119 | Type="String" 120 | EditorType="MultiLineEditor" 121 | #tag EndViewProperty 122 | #tag ViewProperty 123 | Name="AccessibilityLabel" 124 | Visible=true 125 | Group="UI Control" 126 | InitialValue="" 127 | Type="String" 128 | EditorType="MultiLineEditor" 129 | #tag EndViewProperty 130 | #tag ViewProperty 131 | Name="Enabled" 132 | Visible=true 133 | Group="UI Control" 134 | InitialValue="True" 135 | Type="Boolean" 136 | EditorType="" 137 | #tag EndViewProperty 138 | #tag ViewProperty 139 | Name="Visible" 140 | Visible=true 141 | Group="UI Control" 142 | InitialValue="True" 143 | Type="Boolean" 144 | EditorType="" 145 | #tag EndViewProperty 146 | #tag ViewProperty 147 | Name="Caption" 148 | Visible=true 149 | Group="Button" 150 | InitialValue="Button" 151 | Type="String" 152 | EditorType="MultiLineEditor" 153 | #tag EndViewProperty 154 | #tag ViewProperty 155 | Name="CaptionColor" 156 | Visible=true 157 | Group="Button" 158 | InitialValue="&cffffff" 159 | Type="Color" 160 | EditorType="" 161 | #tag EndViewProperty 162 | #tag EndViewBehavior 163 | End Class 164 | #tag EndClass 165 | -------------------------------------------------------------------------------- /Screens/Templates/TemplateScreenWithBackButton.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Class 2 | Protected Class TemplateScreenWithBackButton 3 | Inherits TemplateScreen 4 | #tag Event 5 | Sub Opening() 6 | Self.SetBottomAppBarBackgroundColorXC(PrimaryColor) 7 | Self.SetNavigationBarColorXC(PrimaryColor) 8 | 9 | ' Working for API 28+ (Android 9+) 10 | If System.Version.MajorVersion >= 9 Then 11 | 12 | Self.SetNavigationBarDividerColorXC(PrimaryColor) 13 | 14 | End If 15 | 16 | Self.SetNavigationIconXC(App.ChevronLeftPicture) 17 | 18 | Self.StatusBarColor = PrimaryColor 19 | Self.TitleCentered = True 20 | Self.ToolbarColor = StatusBarColor 21 | 22 | RaiseEvent Opening 23 | End Sub 24 | #tag EndEvent 25 | 26 | 27 | #tag Hook, Flags = &h0 28 | Event Opening() 29 | #tag EndHook 30 | 31 | 32 | #tag ComputedProperty, Flags = &h21 33 | #tag Getter 34 | Get 35 | Return If(Color.IsDarkMode, &c1A1B21, Color.White) 36 | End Get 37 | #tag EndGetter 38 | Private PrimaryColor As Color 39 | #tag EndComputedProperty 40 | 41 | 42 | #tag ViewBehavior 43 | #tag ViewProperty 44 | Name="ToolbarColor" 45 | Visible=false 46 | Group="Behavior" 47 | InitialValue="&c000000" 48 | Type="Color" 49 | EditorType="" 50 | #tag EndViewProperty 51 | #tag ViewProperty 52 | Name="TitleCentered" 53 | Visible=false 54 | Group="Behavior" 55 | InitialValue="" 56 | Type="Boolean" 57 | EditorType="" 58 | #tag EndViewProperty 59 | #tag ViewProperty 60 | Name="StatusBarColor" 61 | Visible=false 62 | Group="Behavior" 63 | InitialValue="Color.Clear" 64 | Type="Color" 65 | EditorType="" 66 | #tag EndViewProperty 67 | #tag ViewProperty 68 | Name="Name" 69 | Visible=true 70 | Group="ID" 71 | InitialValue="" 72 | Type="String" 73 | EditorType="" 74 | #tag EndViewProperty 75 | #tag ViewProperty 76 | Name="Index" 77 | Visible=true 78 | Group="ID" 79 | InitialValue="-2147483648" 80 | Type="Integer" 81 | EditorType="" 82 | #tag EndViewProperty 83 | #tag ViewProperty 84 | Name="Super" 85 | Visible=true 86 | Group="ID" 87 | InitialValue="" 88 | Type="String" 89 | EditorType="" 90 | #tag EndViewProperty 91 | #tag ViewProperty 92 | Name="Left" 93 | Visible=true 94 | Group="Position" 95 | InitialValue="0" 96 | Type="Integer" 97 | EditorType="" 98 | #tag EndViewProperty 99 | #tag ViewProperty 100 | Name="Top" 101 | Visible=true 102 | Group="Position" 103 | InitialValue="0" 104 | Type="Integer" 105 | EditorType="" 106 | #tag EndViewProperty 107 | #tag ViewProperty 108 | Name="Title" 109 | Visible=true 110 | Group="Behavior" 111 | InitialValue="Untitled" 112 | Type="String" 113 | EditorType="MultiLineEditor" 114 | #tag EndViewProperty 115 | #tag ViewProperty 116 | Name="HasNavigationBar" 117 | Visible=true 118 | Group="Behavior" 119 | InitialValue="True" 120 | Type="Boolean" 121 | EditorType="" 122 | #tag EndViewProperty 123 | #tag ViewProperty 124 | Name="Modal" 125 | Visible=true 126 | Group="Behavior" 127 | InitialValue="False" 128 | Type="Boolean" 129 | EditorType="" 130 | #tag EndViewProperty 131 | #tag ViewProperty 132 | Name="HasBackButton" 133 | Visible=true 134 | Group="Behavior" 135 | InitialValue="True" 136 | Type="Boolean" 137 | EditorType="" 138 | #tag EndViewProperty 139 | #tag ViewProperty 140 | Name="ControlCount" 141 | Visible=false 142 | Group="Behavior" 143 | InitialValue="" 144 | Type="Integer" 145 | EditorType="" 146 | #tag EndViewProperty 147 | #tag ViewProperty 148 | Name="NavigationBarHeight" 149 | Visible=false 150 | Group="Behavior" 151 | InitialValue="" 152 | Type="Integer" 153 | EditorType="" 154 | #tag EndViewProperty 155 | #tag EndViewBehavior 156 | End Class 157 | #tag EndClass 158 | -------------------------------------------------------------------------------- /Controls/AppearanceProgressBar.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Class 2 | Protected Class AppearanceProgressBar 3 | Inherits MobileProgressBar 4 | #tag Event 5 | Sub Opening() 6 | If Color.IsDarkMode Then 7 | 8 | Me.SetProgressBackgroundTintListXC(&c545764) 9 | Me.SetProgressTintListXC(&cDAE2FF) 10 | 11 | End If 12 | 13 | ' Call Opening-Event. 14 | RaiseEvent Opening 15 | End Sub 16 | #tag EndEvent 17 | 18 | 19 | #tag Hook, Flags = &h0 20 | Event Opening() 21 | #tag EndHook 22 | 23 | 24 | #tag ViewBehavior 25 | #tag ViewProperty 26 | Name="Enabled" 27 | Visible=true 28 | Group="UI Control" 29 | InitialValue="True" 30 | Type="Boolean" 31 | EditorType="" 32 | #tag EndViewProperty 33 | #tag ViewProperty 34 | Name="Visible" 35 | Visible=true 36 | Group="UI Control" 37 | InitialValue="True" 38 | Type="Boolean" 39 | EditorType="" 40 | #tag EndViewProperty 41 | #tag ViewProperty 42 | Name="Name" 43 | Visible=true 44 | Group="ID" 45 | InitialValue="" 46 | Type="String" 47 | EditorType="" 48 | #tag EndViewProperty 49 | #tag ViewProperty 50 | Name="Index" 51 | Visible=true 52 | Group="ID" 53 | InitialValue="" 54 | Type="Integer" 55 | EditorType="" 56 | #tag EndViewProperty 57 | #tag ViewProperty 58 | Name="Super" 59 | Visible=true 60 | Group="ID" 61 | InitialValue="" 62 | Type="String" 63 | EditorType="" 64 | #tag EndViewProperty 65 | #tag ViewProperty 66 | Name="Left" 67 | Visible=true 68 | Group="Position" 69 | InitialValue="" 70 | Type="Integer" 71 | EditorType="" 72 | #tag EndViewProperty 73 | #tag ViewProperty 74 | Name="Top" 75 | Visible=true 76 | Group="Position" 77 | InitialValue="" 78 | Type="Integer" 79 | EditorType="" 80 | #tag EndViewProperty 81 | #tag ViewProperty 82 | Name="Height" 83 | Visible=true 84 | Group="Position" 85 | InitialValue="20" 86 | Type="Integer" 87 | EditorType="" 88 | #tag EndViewProperty 89 | #tag ViewProperty 90 | Name="Width" 91 | Visible=true 92 | Group="Position" 93 | InitialValue="200" 94 | Type="Integer" 95 | EditorType="" 96 | #tag EndViewProperty 97 | #tag ViewProperty 98 | Name="LockLeft" 99 | Visible=true 100 | Group="Behavior" 101 | InitialValue="" 102 | Type="Boolean" 103 | EditorType="" 104 | #tag EndViewProperty 105 | #tag ViewProperty 106 | Name="LockRight" 107 | Visible=true 108 | Group="Behavior" 109 | InitialValue="" 110 | Type="Boolean" 111 | EditorType="" 112 | #tag EndViewProperty 113 | #tag ViewProperty 114 | Name="LockTop" 115 | Visible=true 116 | Group="Behavior" 117 | InitialValue="" 118 | Type="Boolean" 119 | EditorType="" 120 | #tag EndViewProperty 121 | #tag ViewProperty 122 | Name="LockBottom" 123 | Visible=true 124 | Group="Behavior" 125 | InitialValue="" 126 | Type="Boolean" 127 | EditorType="" 128 | #tag EndViewProperty 129 | #tag ViewProperty 130 | Name="AccessibilityHint" 131 | Visible=true 132 | Group="UI Control" 133 | InitialValue="" 134 | Type="String" 135 | EditorType="MultiLineEditor" 136 | #tag EndViewProperty 137 | #tag ViewProperty 138 | Name="AccessibilityLabel" 139 | Visible=true 140 | Group="UI Control" 141 | InitialValue="" 142 | Type="String" 143 | EditorType="MultiLineEditor" 144 | #tag EndViewProperty 145 | #tag ViewProperty 146 | Name="MaximumValue" 147 | Visible=true 148 | Group="Progress Bar" 149 | InitialValue="100" 150 | Type="Double" 151 | EditorType="" 152 | #tag EndViewProperty 153 | #tag ViewProperty 154 | Name="MinimumValue" 155 | Visible=true 156 | Group="Progress Bar" 157 | InitialValue="0" 158 | Type="Double" 159 | EditorType="" 160 | #tag EndViewProperty 161 | #tag ViewProperty 162 | Name="Value" 163 | Visible=true 164 | Group="Progress Bar" 165 | InitialValue="50" 166 | Type="Double" 167 | EditorType="" 168 | #tag EndViewProperty 169 | #tag EndViewBehavior 170 | End Class 171 | #tag EndClass 172 | -------------------------------------------------------------------------------- /Controls/AppearanceSlider.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Class 2 | Protected Class AppearanceSlider 3 | Inherits MobileSlider 4 | #tag Event 5 | Sub Opening() 6 | If Color.IsDarkMode Then 7 | 8 | Me.SetProgressBackgroundTintListXC(&c545764) 9 | Me.SetProgressTintListXC(&cDAE2FF) 10 | Me.SetThumbColorXC(&cDAE2FF) 11 | 12 | End If 13 | 14 | ' Call Opening-Event. 15 | RaiseEvent Opening 16 | End Sub 17 | #tag EndEvent 18 | 19 | 20 | #tag Hook, Flags = &h0 21 | Event Opening() 22 | #tag EndHook 23 | 24 | 25 | #tag ViewBehavior 26 | #tag ViewProperty 27 | Name="Enabled" 28 | Visible=true 29 | Group="UI Control" 30 | InitialValue="True" 31 | Type="Boolean" 32 | EditorType="" 33 | #tag EndViewProperty 34 | #tag ViewProperty 35 | Name="Visible" 36 | Visible=true 37 | Group="UI Control" 38 | InitialValue="True" 39 | Type="Boolean" 40 | EditorType="" 41 | #tag EndViewProperty 42 | #tag ViewProperty 43 | Name="Name" 44 | Visible=true 45 | Group="ID" 46 | InitialValue="" 47 | Type="String" 48 | EditorType="" 49 | #tag EndViewProperty 50 | #tag ViewProperty 51 | Name="Index" 52 | Visible=true 53 | Group="ID" 54 | InitialValue="-2147483648" 55 | Type="Integer" 56 | EditorType="" 57 | #tag EndViewProperty 58 | #tag ViewProperty 59 | Name="Super" 60 | Visible=true 61 | Group="ID" 62 | InitialValue="" 63 | Type="String" 64 | EditorType="" 65 | #tag EndViewProperty 66 | #tag ViewProperty 67 | Name="Left" 68 | Visible=true 69 | Group="Position" 70 | InitialValue="0" 71 | Type="Integer" 72 | EditorType="" 73 | #tag EndViewProperty 74 | #tag ViewProperty 75 | Name="Top" 76 | Visible=true 77 | Group="Position" 78 | InitialValue="0" 79 | Type="Integer" 80 | EditorType="" 81 | #tag EndViewProperty 82 | #tag ViewProperty 83 | Name="Height" 84 | Visible=true 85 | Group="Position" 86 | InitialValue="30" 87 | Type="Integer" 88 | EditorType="" 89 | #tag EndViewProperty 90 | #tag ViewProperty 91 | Name="Width" 92 | Visible=true 93 | Group="Position" 94 | InitialValue="200" 95 | Type="Integer" 96 | EditorType="" 97 | #tag EndViewProperty 98 | #tag ViewProperty 99 | Name="LockLeft" 100 | Visible=true 101 | Group="Behavior" 102 | InitialValue="" 103 | Type="Boolean" 104 | EditorType="" 105 | #tag EndViewProperty 106 | #tag ViewProperty 107 | Name="LockRight" 108 | Visible=true 109 | Group="Behavior" 110 | InitialValue="" 111 | Type="Boolean" 112 | EditorType="" 113 | #tag EndViewProperty 114 | #tag ViewProperty 115 | Name="LockTop" 116 | Visible=true 117 | Group="Behavior" 118 | InitialValue="" 119 | Type="Boolean" 120 | EditorType="" 121 | #tag EndViewProperty 122 | #tag ViewProperty 123 | Name="LockBottom" 124 | Visible=true 125 | Group="Behavior" 126 | InitialValue="" 127 | Type="Boolean" 128 | EditorType="" 129 | #tag EndViewProperty 130 | #tag ViewProperty 131 | Name="AccessibilityHint" 132 | Visible=true 133 | Group="UI Control" 134 | InitialValue="" 135 | Type="String" 136 | EditorType="MultiLineEditor" 137 | #tag EndViewProperty 138 | #tag ViewProperty 139 | Name="AccessibilityLabel" 140 | Visible=true 141 | Group="UI Control" 142 | InitialValue="" 143 | Type="String" 144 | EditorType="MultiLineEditor" 145 | #tag EndViewProperty 146 | #tag ViewProperty 147 | Name="MaximumValue" 148 | Visible=true 149 | Group="Slider" 150 | InitialValue="100" 151 | Type="Double" 152 | EditorType="" 153 | #tag EndViewProperty 154 | #tag ViewProperty 155 | Name="MinimumValue" 156 | Visible=true 157 | Group="Slider" 158 | InitialValue="0" 159 | Type="Double" 160 | EditorType="" 161 | #tag EndViewProperty 162 | #tag ViewProperty 163 | Name="Value" 164 | Visible=true 165 | Group="Slider" 166 | InitialValue="50" 167 | Type="Double" 168 | EditorType="" 169 | #tag EndViewProperty 170 | #tag EndViewBehavior 171 | End Class 172 | #tag EndClass 173 | -------------------------------------------------------------------------------- /Screens/MapScreen.xojo_code: -------------------------------------------------------------------------------- 1 | #tag MobileScreen 2 | Begin TemplateScreenWithBackButton MapScreen 3 | Compatibility = "" 4 | Device = 1 5 | HasBackButton = True 6 | HasNavigationBar= True 7 | Modal = False 8 | Orientation = 0 9 | SupportedOrientation= 0 10 | Title = "Maps" 11 | Begin MobileMapViewer MapViewer1 12 | AccessibilityHint= "" 13 | AccessibilityLabel= "" 14 | Enabled = True 15 | Height = 700 16 | Latitude = 0.0 17 | Left = 0 18 | LockBottom = True 19 | LockedInPosition= False 20 | LockLeft = True 21 | LockRight = True 22 | LockTop = True 23 | Longitude = 0.0 24 | MapType = 0 25 | Scope = 2 26 | Top = 0 27 | TrackMode = 0 28 | Visible = True 29 | Width = 360 30 | ZoomRadius = 200.0 31 | End 32 | End 33 | #tag EndMobileScreen 34 | 35 | #tag ScreenCode 36 | #tag EndScreenCode 37 | 38 | #tag Events MapViewer1 39 | #tag Event 40 | Sub Opening() 41 | Me.SetZoomControlsEnabledXC(False) 42 | End Sub 43 | #tag EndEvent 44 | #tag EndEvents 45 | #tag ViewBehavior 46 | #tag ViewProperty 47 | Name="ToolbarColor" 48 | Visible=false 49 | Group="Behavior" 50 | InitialValue="&c000000" 51 | Type="Color" 52 | EditorType="" 53 | #tag EndViewProperty 54 | #tag ViewProperty 55 | Name="TitleCentered" 56 | Visible=false 57 | Group="Behavior" 58 | InitialValue="" 59 | Type="Boolean" 60 | EditorType="" 61 | #tag EndViewProperty 62 | #tag ViewProperty 63 | Name="StatusBarColor" 64 | Visible=false 65 | Group="Behavior" 66 | InitialValue="Color.Clear" 67 | Type="Color" 68 | EditorType="" 69 | #tag EndViewProperty 70 | #tag ViewProperty 71 | Name="Name" 72 | Visible=true 73 | Group="ID" 74 | InitialValue="" 75 | Type="String" 76 | EditorType="" 77 | #tag EndViewProperty 78 | #tag ViewProperty 79 | Name="Index" 80 | Visible=true 81 | Group="ID" 82 | InitialValue="-2147483648" 83 | Type="Integer" 84 | EditorType="" 85 | #tag EndViewProperty 86 | #tag ViewProperty 87 | Name="Super" 88 | Visible=true 89 | Group="ID" 90 | InitialValue="" 91 | Type="String" 92 | EditorType="" 93 | #tag EndViewProperty 94 | #tag ViewProperty 95 | Name="Left" 96 | Visible=true 97 | Group="Position" 98 | InitialValue="0" 99 | Type="Integer" 100 | EditorType="" 101 | #tag EndViewProperty 102 | #tag ViewProperty 103 | Name="Top" 104 | Visible=true 105 | Group="Position" 106 | InitialValue="0" 107 | Type="Integer" 108 | EditorType="" 109 | #tag EndViewProperty 110 | #tag ViewProperty 111 | Name="ControlCount" 112 | Visible=false 113 | Group="Behavior" 114 | InitialValue="" 115 | Type="Integer" 116 | EditorType="" 117 | #tag EndViewProperty 118 | #tag ViewProperty 119 | Name="Title" 120 | Visible=true 121 | Group="Behavior" 122 | InitialValue="Untitled" 123 | Type="String" 124 | EditorType="MultiLineEditor" 125 | #tag EndViewProperty 126 | #tag ViewProperty 127 | Name="HasNavigationBar" 128 | Visible=true 129 | Group="Behavior" 130 | InitialValue="True" 131 | Type="Boolean" 132 | EditorType="" 133 | #tag EndViewProperty 134 | #tag ViewProperty 135 | Name="Modal" 136 | Visible=true 137 | Group="Behavior" 138 | InitialValue="False" 139 | Type="Boolean" 140 | EditorType="" 141 | #tag EndViewProperty 142 | #tag ViewProperty 143 | Name="NavigationBarHeight" 144 | Visible=false 145 | Group="Behavior" 146 | InitialValue="" 147 | Type="Integer" 148 | EditorType="" 149 | #tag EndViewProperty 150 | #tag ViewProperty 151 | Name="HasBackButton" 152 | Visible=true 153 | Group="Behavior" 154 | InitialValue="False" 155 | Type="Boolean" 156 | EditorType="" 157 | #tag EndViewProperty 158 | #tag ViewProperty 159 | Name="ScaleFactor" 160 | Visible=false 161 | Group="Behavior" 162 | InitialValue="" 163 | Type="Double" 164 | EditorType="" 165 | #tag EndViewProperty 166 | #tag EndViewBehavior 167 | -------------------------------------------------------------------------------- /Screens/ImageScreen.xojo_code: -------------------------------------------------------------------------------- 1 | #tag MobileScreen 2 | Begin TemplateScreenWithBackButton ImageScreen 3 | Compatibility = "(TargetConsole and (Target32Bit or Target64Bit)) or (TargetWeb and (Target32Bit or Target64Bit)) or (TargetDesktop and (Target32Bit or Target64Bit)) or (TargetIOS and (Target64Bit)) or (TargetAndroid and (Target64Bit))" 4 | Device = 1 5 | HasBackButton = True 6 | HasNavigationBar= True 7 | Modal = False 8 | Orientation = 0 9 | Title = "Image Viewers" 10 | Begin MobileScrollableArea ScrollableArea1 11 | AccessibilityHint= "" 12 | AccessibilityLabel= "" 13 | Enabled = True 14 | Height = 700 15 | Left = 0 16 | LockBottom = True 17 | LockedInPosition= False 18 | LockLeft = True 19 | LockRight = True 20 | LockTop = True 21 | Scope = 2 22 | ScrollContent = 966637567 23 | Top = 0 24 | Visible = True 25 | Width = 360 26 | End 27 | End 28 | #tag EndMobileScreen 29 | 30 | #tag ScreenCode 31 | #tag Event 32 | Sub Opening() 33 | NavigationToolbar.AddButton(App.PrintButton) 34 | End Sub 35 | #tag EndEvent 36 | 37 | #tag Event 38 | Sub ToolbarButtonPressed(button As MobileToolbarButton) 39 | Select Case button.Caption 40 | Case "Print" 41 | 42 | ImageContainer(ScrollableArea1.Container).Image1.Image.PrintXC 43 | 44 | End Select 45 | End Sub 46 | #tag EndEvent 47 | 48 | 49 | #tag EndScreenCode 50 | 51 | #tag ViewBehavior 52 | #tag ViewProperty 53 | Name="ToolbarColor" 54 | Visible=false 55 | Group="Behavior" 56 | InitialValue="&c000000" 57 | Type="Color" 58 | EditorType="" 59 | #tag EndViewProperty 60 | #tag ViewProperty 61 | Name="TitleCentered" 62 | Visible=false 63 | Group="Behavior" 64 | InitialValue="" 65 | Type="Boolean" 66 | EditorType="" 67 | #tag EndViewProperty 68 | #tag ViewProperty 69 | Name="StatusBarColor" 70 | Visible=false 71 | Group="Behavior" 72 | InitialValue="Color.Clear" 73 | Type="Color" 74 | EditorType="" 75 | #tag EndViewProperty 76 | #tag ViewProperty 77 | Name="HasBackButton" 78 | Visible=true 79 | Group="Behavior" 80 | InitialValue="False" 81 | Type="Boolean" 82 | EditorType="" 83 | #tag EndViewProperty 84 | #tag ViewProperty 85 | Name="Name" 86 | Visible=true 87 | Group="ID" 88 | InitialValue="" 89 | Type="String" 90 | EditorType="" 91 | #tag EndViewProperty 92 | #tag ViewProperty 93 | Name="Index" 94 | Visible=true 95 | Group="ID" 96 | InitialValue="-2147483648" 97 | Type="Integer" 98 | EditorType="" 99 | #tag EndViewProperty 100 | #tag ViewProperty 101 | Name="Super" 102 | Visible=true 103 | Group="ID" 104 | InitialValue="" 105 | Type="String" 106 | EditorType="" 107 | #tag EndViewProperty 108 | #tag ViewProperty 109 | Name="Left" 110 | Visible=true 111 | Group="Position" 112 | InitialValue="0" 113 | Type="Integer" 114 | EditorType="" 115 | #tag EndViewProperty 116 | #tag ViewProperty 117 | Name="Top" 118 | Visible=true 119 | Group="Position" 120 | InitialValue="0" 121 | Type="Integer" 122 | EditorType="" 123 | #tag EndViewProperty 124 | #tag ViewProperty 125 | Name="ControlCount" 126 | Visible=false 127 | Group="Behavior" 128 | InitialValue="" 129 | Type="Integer" 130 | EditorType="" 131 | #tag EndViewProperty 132 | #tag ViewProperty 133 | Name="Title" 134 | Visible=true 135 | Group="Behavior" 136 | InitialValue="Untitled" 137 | Type="String" 138 | EditorType="MultiLineEditor" 139 | #tag EndViewProperty 140 | #tag ViewProperty 141 | Name="HasNavigationBar" 142 | Visible=true 143 | Group="Behavior" 144 | InitialValue="True" 145 | Type="Boolean" 146 | EditorType="" 147 | #tag EndViewProperty 148 | #tag ViewProperty 149 | Name="Modal" 150 | Visible=false 151 | Group="Behavior" 152 | InitialValue="" 153 | Type="Boolean" 154 | EditorType="" 155 | #tag EndViewProperty 156 | #tag ViewProperty 157 | Name="NavigationBarHeight" 158 | Visible=false 159 | Group="Behavior" 160 | InitialValue="" 161 | Type="Integer" 162 | EditorType="" 163 | #tag EndViewProperty 164 | #tag EndViewBehavior 165 | -------------------------------------------------------------------------------- /Screens/ActivityScreen.xojo_code: -------------------------------------------------------------------------------- 1 | #tag MobileScreen 2 | Begin TemplateScreenWithBackButton ActivityScreen 3 | Compatibility = "" 4 | Device = 1 5 | HasBackButton = True 6 | HasNavigationBar= True 7 | Modal = False 8 | Orientation = 0 9 | SupportedOrientation= 0 10 | Title = "Screens" 11 | Begin MobileScrollableArea ScrollableArea1 12 | AccessibilityHint= "" 13 | AccessibilityLabel= "" 14 | Enabled = True 15 | Height = 700 16 | Left = 0 17 | LockBottom = True 18 | LockedInPosition= False 19 | LockLeft = True 20 | LockRight = True 21 | LockTop = True 22 | Scope = 2 23 | ScrollContent = 724957183 24 | Top = 0 25 | Visible = True 26 | Width = 360 27 | End 28 | End 29 | #tag EndMobileScreen 30 | 31 | #tag ScreenCode 32 | #tag Event 33 | Sub Opening() 34 | Var oBottomToolbarItem1 As New MobileToolbarButton(MobileToolbarButton.Types.Plain, "Add", Picture.SystemImage("arrow_left", 48, If(Color.IsDarkMode, Color.White, &c419CFF))) 35 | Var oBottomToolbarItem2 As New MobileToolbarButton(MobileToolbarButton.Types.Plain, "Remove", Picture.SystemImage("arrow_right", 48, If(Color.IsDarkMode, Color.White, &c419CFF))) 36 | 37 | Self.Toolbar.AddButton(oBottomToolbarItem1) 38 | Self.Toolbar.AddButton(oBottomToolbarItem2) 39 | 40 | Self.SetBottomAppBarMenuAlignmentModeXC(MenuAlignmentModesXC.Start) 41 | End Sub 42 | #tag EndEvent 43 | 44 | 45 | #tag EndScreenCode 46 | 47 | #tag ViewBehavior 48 | #tag ViewProperty 49 | Name="ScaleFactor" 50 | Visible=false 51 | Group="Behavior" 52 | InitialValue="" 53 | Type="Double" 54 | EditorType="" 55 | #tag EndViewProperty 56 | #tag ViewProperty 57 | Name="ToolbarColor" 58 | Visible=false 59 | Group="Behavior" 60 | InitialValue="&c000000" 61 | Type="Color" 62 | EditorType="" 63 | #tag EndViewProperty 64 | #tag ViewProperty 65 | Name="TitleCentered" 66 | Visible=false 67 | Group="Behavior" 68 | InitialValue="" 69 | Type="Boolean" 70 | EditorType="" 71 | #tag EndViewProperty 72 | #tag ViewProperty 73 | Name="StatusBarColor" 74 | Visible=false 75 | Group="Behavior" 76 | InitialValue="Color.Clear" 77 | Type="Color" 78 | EditorType="" 79 | #tag EndViewProperty 80 | #tag ViewProperty 81 | Name="HasBackButton" 82 | Visible=true 83 | Group="Behavior" 84 | InitialValue="False" 85 | Type="Boolean" 86 | EditorType="" 87 | #tag EndViewProperty 88 | #tag ViewProperty 89 | Name="Name" 90 | Visible=true 91 | Group="ID" 92 | InitialValue="" 93 | Type="String" 94 | EditorType="" 95 | #tag EndViewProperty 96 | #tag ViewProperty 97 | Name="Index" 98 | Visible=true 99 | Group="ID" 100 | InitialValue="-2147483648" 101 | Type="Integer" 102 | EditorType="" 103 | #tag EndViewProperty 104 | #tag ViewProperty 105 | Name="Super" 106 | Visible=true 107 | Group="ID" 108 | InitialValue="" 109 | Type="String" 110 | EditorType="" 111 | #tag EndViewProperty 112 | #tag ViewProperty 113 | Name="Left" 114 | Visible=true 115 | Group="Position" 116 | InitialValue="0" 117 | Type="Integer" 118 | EditorType="" 119 | #tag EndViewProperty 120 | #tag ViewProperty 121 | Name="Top" 122 | Visible=true 123 | Group="Position" 124 | InitialValue="0" 125 | Type="Integer" 126 | EditorType="" 127 | #tag EndViewProperty 128 | #tag ViewProperty 129 | Name="ControlCount" 130 | Visible=false 131 | Group="Behavior" 132 | InitialValue="" 133 | Type="Integer" 134 | EditorType="" 135 | #tag EndViewProperty 136 | #tag ViewProperty 137 | Name="Title" 138 | Visible=true 139 | Group="Behavior" 140 | InitialValue="Untitled" 141 | Type="String" 142 | EditorType="MultiLineEditor" 143 | #tag EndViewProperty 144 | #tag ViewProperty 145 | Name="HasNavigationBar" 146 | Visible=true 147 | Group="Behavior" 148 | InitialValue="True" 149 | Type="Boolean" 150 | EditorType="" 151 | #tag EndViewProperty 152 | #tag ViewProperty 153 | Name="Modal" 154 | Visible=false 155 | Group="Behavior" 156 | InitialValue="" 157 | Type="Boolean" 158 | EditorType="" 159 | #tag EndViewProperty 160 | #tag ViewProperty 161 | Name="NavigationBarHeight" 162 | Visible=false 163 | Group="Behavior" 164 | InitialValue="" 165 | Type="Integer" 166 | EditorType="" 167 | #tag EndViewProperty 168 | #tag EndViewBehavior 169 | -------------------------------------------------------------------------------- /Containers/Panel1Container.xojo_code: -------------------------------------------------------------------------------- 1 | #tag MobileContainer 2 | Begin MobileContainer Panel1Container 3 | AccessibilityHint= "" 4 | AccessibilityLabel= "" 5 | Compatibility = "(TargetConsole and (Target32Bit or Target64Bit)) or (TargetWeb and (Target32Bit or Target64Bit)) or (TargetDesktop and (Target32Bit or Target64Bit)) or (TargetIOS and (Target64Bit)) or (TargetAndroid and (Target64Bit))" 6 | Enabled = True 7 | Height = 400 8 | LockBottom = False 9 | LockLeft = True 10 | LockRight = True 11 | LockTop = True 12 | Visible = True 13 | Width = 360 14 | Begin MobileLabel TitleLabel 15 | AccessibilityHint= "" 16 | AccessibilityLabel= "" 17 | Alignment = 1 18 | Enabled = True 19 | Height = 40 20 | Left = 20 21 | LineBreakMode = 0 22 | LockBottom = False 23 | LockedInPosition= False 24 | LockLeft = True 25 | LockRight = True 26 | LockTop = True 27 | Scope = 0 28 | Text = "Container 1" 29 | TextColor = &c00000000 30 | Top = 40 31 | Visible = True 32 | Width = 320 33 | End 34 | End 35 | #tag EndMobileContainer 36 | 37 | #tag ScreenCode 38 | #tag Event 39 | Sub Opening() 40 | Me.SetBackgroundColorXC(&cE2E2E200) 41 | End Sub 42 | #tag EndEvent 43 | 44 | 45 | #tag EndScreenCode 46 | 47 | #tag ViewBehavior 48 | #tag ViewProperty 49 | Name="Index" 50 | Visible=true 51 | Group="ID" 52 | InitialValue="-2147483648" 53 | Type="Integer" 54 | EditorType="" 55 | #tag EndViewProperty 56 | #tag ViewProperty 57 | Name="Name" 58 | Visible=true 59 | Group="ID" 60 | InitialValue="" 61 | Type="String" 62 | EditorType="" 63 | #tag EndViewProperty 64 | #tag ViewProperty 65 | Name="Super" 66 | Visible=true 67 | Group="ID" 68 | InitialValue="" 69 | Type="String" 70 | EditorType="" 71 | #tag EndViewProperty 72 | #tag ViewProperty 73 | Name="Left" 74 | Visible=true 75 | Group="Position" 76 | InitialValue="0" 77 | Type="Integer" 78 | EditorType="" 79 | #tag EndViewProperty 80 | #tag ViewProperty 81 | Name="Top" 82 | Visible=true 83 | Group="Position" 84 | InitialValue="0" 85 | Type="Integer" 86 | EditorType="" 87 | #tag EndViewProperty 88 | #tag ViewProperty 89 | Name="Height" 90 | Visible=true 91 | Group="Position" 92 | InitialValue="400" 93 | Type="Integer" 94 | EditorType="" 95 | #tag EndViewProperty 96 | #tag ViewProperty 97 | Name="Width" 98 | Visible=true 99 | Group="Position" 100 | InitialValue="360" 101 | Type="Integer" 102 | EditorType="" 103 | #tag EndViewProperty 104 | #tag ViewProperty 105 | Name="LockLeft" 106 | Visible=true 107 | Group="Behavior" 108 | InitialValue="" 109 | Type="Boolean" 110 | EditorType="" 111 | #tag EndViewProperty 112 | #tag ViewProperty 113 | Name="LockRight" 114 | Visible=true 115 | Group="Behavior" 116 | InitialValue="" 117 | Type="Boolean" 118 | EditorType="" 119 | #tag EndViewProperty 120 | #tag ViewProperty 121 | Name="LockTop" 122 | Visible=true 123 | Group="Behavior" 124 | InitialValue="" 125 | Type="Boolean" 126 | EditorType="" 127 | #tag EndViewProperty 128 | #tag ViewProperty 129 | Name="LockBottom" 130 | Visible=true 131 | Group="Behavior" 132 | InitialValue="" 133 | Type="Boolean" 134 | EditorType="" 135 | #tag EndViewProperty 136 | #tag ViewProperty 137 | Name="Enabled" 138 | Visible=true 139 | Group="UI Control" 140 | InitialValue="True" 141 | Type="Boolean" 142 | EditorType="" 143 | #tag EndViewProperty 144 | #tag ViewProperty 145 | Name="Visible" 146 | Visible=true 147 | Group="UI Control" 148 | InitialValue="True" 149 | Type="Boolean" 150 | EditorType="" 151 | #tag EndViewProperty 152 | #tag ViewProperty 153 | Name="AccessibilityHint" 154 | Visible=true 155 | Group="UI Control" 156 | InitialValue="" 157 | Type="String" 158 | EditorType="MultiLineEditor" 159 | #tag EndViewProperty 160 | #tag ViewProperty 161 | Name="AccessibilityLabel" 162 | Visible=true 163 | Group="UI Control" 164 | InitialValue="" 165 | Type="String" 166 | EditorType="MultiLineEditor" 167 | #tag EndViewProperty 168 | #tag ViewProperty 169 | Name="ControlCount" 170 | Visible=false 171 | Group="Behavior" 172 | InitialValue="" 173 | Type="Integer" 174 | EditorType="" 175 | #tag EndViewProperty 176 | #tag EndViewBehavior 177 | -------------------------------------------------------------------------------- /Containers/Panel2Container.xojo_code: -------------------------------------------------------------------------------- 1 | #tag MobileContainer 2 | Begin MobileContainer Panel2Container 3 | AccessibilityHint= "" 4 | AccessibilityLabel= "" 5 | Compatibility = "(TargetConsole and (Target32Bit or Target64Bit)) or (TargetWeb and (Target32Bit or Target64Bit)) or (TargetDesktop and (Target32Bit or Target64Bit)) or (TargetIOS and (Target64Bit)) or (TargetAndroid and (Target64Bit))" 6 | Enabled = True 7 | Height = 400 8 | LockBottom = False 9 | LockLeft = True 10 | LockRight = True 11 | LockTop = True 12 | Visible = True 13 | Width = 360 14 | Begin MobileLabel TitleLabel 15 | AccessibilityHint= "" 16 | AccessibilityLabel= "" 17 | Alignment = 1 18 | Enabled = True 19 | Height = 40 20 | Left = 20 21 | LineBreakMode = 0 22 | LockBottom = False 23 | LockedInPosition= False 24 | LockLeft = True 25 | LockRight = True 26 | LockTop = True 27 | Scope = 0 28 | Text = "Container 2" 29 | TextColor = &c00000000 30 | Top = 40 31 | Visible = True 32 | Width = 320 33 | End 34 | End 35 | #tag EndMobileContainer 36 | 37 | #tag ScreenCode 38 | #tag Event 39 | Sub Opening() 40 | Me.SetBackgroundColorXC(&cFFFC7900) 41 | End Sub 42 | #tag EndEvent 43 | 44 | 45 | #tag EndScreenCode 46 | 47 | #tag ViewBehavior 48 | #tag ViewProperty 49 | Name="Index" 50 | Visible=true 51 | Group="ID" 52 | InitialValue="-2147483648" 53 | Type="Integer" 54 | EditorType="" 55 | #tag EndViewProperty 56 | #tag ViewProperty 57 | Name="Name" 58 | Visible=true 59 | Group="ID" 60 | InitialValue="" 61 | Type="String" 62 | EditorType="" 63 | #tag EndViewProperty 64 | #tag ViewProperty 65 | Name="Super" 66 | Visible=true 67 | Group="ID" 68 | InitialValue="" 69 | Type="String" 70 | EditorType="" 71 | #tag EndViewProperty 72 | #tag ViewProperty 73 | Name="Left" 74 | Visible=true 75 | Group="Position" 76 | InitialValue="0" 77 | Type="Integer" 78 | EditorType="" 79 | #tag EndViewProperty 80 | #tag ViewProperty 81 | Name="Top" 82 | Visible=true 83 | Group="Position" 84 | InitialValue="0" 85 | Type="Integer" 86 | EditorType="" 87 | #tag EndViewProperty 88 | #tag ViewProperty 89 | Name="Height" 90 | Visible=true 91 | Group="Position" 92 | InitialValue="400" 93 | Type="Integer" 94 | EditorType="" 95 | #tag EndViewProperty 96 | #tag ViewProperty 97 | Name="Width" 98 | Visible=true 99 | Group="Position" 100 | InitialValue="360" 101 | Type="Integer" 102 | EditorType="" 103 | #tag EndViewProperty 104 | #tag ViewProperty 105 | Name="LockLeft" 106 | Visible=true 107 | Group="Behavior" 108 | InitialValue="" 109 | Type="Boolean" 110 | EditorType="" 111 | #tag EndViewProperty 112 | #tag ViewProperty 113 | Name="LockRight" 114 | Visible=true 115 | Group="Behavior" 116 | InitialValue="" 117 | Type="Boolean" 118 | EditorType="" 119 | #tag EndViewProperty 120 | #tag ViewProperty 121 | Name="LockTop" 122 | Visible=true 123 | Group="Behavior" 124 | InitialValue="" 125 | Type="Boolean" 126 | EditorType="" 127 | #tag EndViewProperty 128 | #tag ViewProperty 129 | Name="LockBottom" 130 | Visible=true 131 | Group="Behavior" 132 | InitialValue="" 133 | Type="Boolean" 134 | EditorType="" 135 | #tag EndViewProperty 136 | #tag ViewProperty 137 | Name="Enabled" 138 | Visible=true 139 | Group="UI Control" 140 | InitialValue="True" 141 | Type="Boolean" 142 | EditorType="" 143 | #tag EndViewProperty 144 | #tag ViewProperty 145 | Name="Visible" 146 | Visible=true 147 | Group="UI Control" 148 | InitialValue="True" 149 | Type="Boolean" 150 | EditorType="" 151 | #tag EndViewProperty 152 | #tag ViewProperty 153 | Name="AccessibilityHint" 154 | Visible=true 155 | Group="UI Control" 156 | InitialValue="" 157 | Type="String" 158 | EditorType="MultiLineEditor" 159 | #tag EndViewProperty 160 | #tag ViewProperty 161 | Name="AccessibilityLabel" 162 | Visible=true 163 | Group="UI Control" 164 | InitialValue="" 165 | Type="String" 166 | EditorType="MultiLineEditor" 167 | #tag EndViewProperty 168 | #tag ViewProperty 169 | Name="ControlCount" 170 | Visible=false 171 | Group="Behavior" 172 | InitialValue="" 173 | Type="Integer" 174 | EditorType="" 175 | #tag EndViewProperty 176 | #tag EndViewBehavior 177 | -------------------------------------------------------------------------------- /Controls/PropertyLabel.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Class 2 | Protected Class PropertyLabel 3 | Inherits AppearanceLabel 4 | #tag CompatibilityFlags = (TargetConsole and (Target32Bit or Target64Bit)) or (TargetWeb and (Target32Bit or Target64Bit)) or (TargetDesktop and (Target32Bit or Target64Bit)) or (TargetIOS and (Target64Bit)) or (TargetAndroid and (Target64Bit)) 5 | #tag Event 6 | Sub Opening() 7 | Me.TextFont = Font.SystemFont(Font.SmallSystemFontSize + 5) 8 | 9 | ' Call Opening-Event. 10 | RaiseEvent Opening 11 | End Sub 12 | #tag EndEvent 13 | 14 | 15 | #tag Hook, Flags = &h0 16 | Event Opening() 17 | #tag EndHook 18 | 19 | 20 | #tag ViewBehavior 21 | #tag ViewProperty 22 | Name="Name" 23 | Visible=true 24 | Group="ID" 25 | InitialValue="" 26 | Type="String" 27 | EditorType="" 28 | #tag EndViewProperty 29 | #tag ViewProperty 30 | Name="Index" 31 | Visible=true 32 | Group="ID" 33 | InitialValue="-2147483648" 34 | Type="Integer" 35 | EditorType="" 36 | #tag EndViewProperty 37 | #tag ViewProperty 38 | Name="Super" 39 | Visible=true 40 | Group="ID" 41 | InitialValue="" 42 | Type="String" 43 | EditorType="" 44 | #tag EndViewProperty 45 | #tag ViewProperty 46 | Name="Left" 47 | Visible=true 48 | Group="Position" 49 | InitialValue="0" 50 | Type="Integer" 51 | EditorType="" 52 | #tag EndViewProperty 53 | #tag ViewProperty 54 | Name="Top" 55 | Visible=true 56 | Group="Position" 57 | InitialValue="0" 58 | Type="Integer" 59 | EditorType="" 60 | #tag EndViewProperty 61 | #tag ViewProperty 62 | Name="Height" 63 | Visible=true 64 | Group="Position" 65 | InitialValue="30" 66 | Type="Integer" 67 | EditorType="" 68 | #tag EndViewProperty 69 | #tag ViewProperty 70 | Name="Width" 71 | Visible=true 72 | Group="Position" 73 | InitialValue="100" 74 | Type="Integer" 75 | EditorType="" 76 | #tag EndViewProperty 77 | #tag ViewProperty 78 | Name="Text" 79 | Visible=true 80 | Group="Text Control" 81 | InitialValue="Untitled" 82 | Type="String" 83 | EditorType="MultiLineEditor" 84 | #tag EndViewProperty 85 | #tag ViewProperty 86 | Name="Alignment" 87 | Visible=true 88 | Group="Text Control" 89 | InitialValue="" 90 | Type="MobileTextControl.Alignments" 91 | EditorType="Enum" 92 | #tag EnumValues 93 | "0 - Left" 94 | "1 - Center" 95 | "2 - Right" 96 | "3 - Justified" 97 | "4 - Natural" 98 | #tag EndEnumValues 99 | #tag EndViewProperty 100 | #tag ViewProperty 101 | Name="TextColor" 102 | Visible=true 103 | Group="Text Control" 104 | InitialValue="&c000000" 105 | Type="Color" 106 | EditorType="" 107 | #tag EndViewProperty 108 | #tag ViewProperty 109 | Name="AccessibilityHint" 110 | Visible=true 111 | Group="UI Control" 112 | InitialValue="" 113 | Type="String" 114 | EditorType="MultiLineEditor" 115 | #tag EndViewProperty 116 | #tag ViewProperty 117 | Name="AccessibilityLabel" 118 | Visible=true 119 | Group="UI Control" 120 | InitialValue="" 121 | Type="String" 122 | EditorType="MultiLineEditor" 123 | #tag EndViewProperty 124 | #tag ViewProperty 125 | Name="LockLeft" 126 | Visible=true 127 | Group="Behavior" 128 | InitialValue="" 129 | Type="Boolean" 130 | EditorType="" 131 | #tag EndViewProperty 132 | #tag ViewProperty 133 | Name="LockRight" 134 | Visible=true 135 | Group="Behavior" 136 | InitialValue="" 137 | Type="Boolean" 138 | EditorType="" 139 | #tag EndViewProperty 140 | #tag ViewProperty 141 | Name="LockTop" 142 | Visible=true 143 | Group="Behavior" 144 | InitialValue="" 145 | Type="Boolean" 146 | EditorType="" 147 | #tag EndViewProperty 148 | #tag ViewProperty 149 | Name="LockBottom" 150 | Visible=true 151 | Group="Behavior" 152 | InitialValue="" 153 | Type="Boolean" 154 | EditorType="" 155 | #tag EndViewProperty 156 | #tag ViewProperty 157 | Name="Enabled" 158 | Visible=true 159 | Group="UI Control" 160 | InitialValue="True" 161 | Type="Boolean" 162 | EditorType="" 163 | #tag EndViewProperty 164 | #tag ViewProperty 165 | Name="Visible" 166 | Visible=true 167 | Group="UI Control" 168 | InitialValue="True" 169 | Type="Boolean" 170 | EditorType="" 171 | #tag EndViewProperty 172 | #tag ViewProperty 173 | Name="LineBreakMode" 174 | Visible=true 175 | Group="Label" 176 | InitialValue="0" 177 | Type="MobileLabel.LineBreakModes" 178 | EditorType="Enum" 179 | #tag EnumValues 180 | "0 - WordWrap" 181 | "1 - CharacterWrap" 182 | "2 - Clip" 183 | "3 - TruncateStart" 184 | "4 - TruncateEnd" 185 | "5 - TruncateMiddle" 186 | #tag EndEnumValues 187 | #tag EndViewProperty 188 | #tag EndViewBehavior 189 | End Class 190 | #tag EndClass 191 | -------------------------------------------------------------------------------- /Controls/AppearanceLabel.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Class 2 | Protected Class AppearanceLabel 3 | Inherits MobileLabel 4 | #tag CompatibilityFlags = ( TargetIOS and ( Target64Bit ) ) or ( TargetAndroid and ( Target64Bit ) ) 5 | #tag Event 6 | Sub Opening() 7 | If Color.IsDarkMode Then 8 | 9 | Me.TextColor = &cF1F0F7 10 | 11 | End If 12 | 13 | ' Call Opening-Event. 14 | RaiseEvent Opening 15 | End Sub 16 | #tag EndEvent 17 | 18 | 19 | #tag Hook, Flags = &h0 20 | Event Opening() 21 | #tag EndHook 22 | 23 | 24 | #tag ViewBehavior 25 | #tag ViewProperty 26 | Name="MaximumCharactersAllowed" 27 | Visible=true 28 | Group="Behavior" 29 | InitialValue="" 30 | Type="Integer" 31 | EditorType="" 32 | #tag EndViewProperty 33 | #tag ViewProperty 34 | Name="Name" 35 | Visible=true 36 | Group="ID" 37 | InitialValue="" 38 | Type="String" 39 | EditorType="" 40 | #tag EndViewProperty 41 | #tag ViewProperty 42 | Name="Index" 43 | Visible=true 44 | Group="ID" 45 | InitialValue="-2147483648" 46 | Type="Integer" 47 | EditorType="" 48 | #tag EndViewProperty 49 | #tag ViewProperty 50 | Name="Super" 51 | Visible=true 52 | Group="ID" 53 | InitialValue="" 54 | Type="String" 55 | EditorType="" 56 | #tag EndViewProperty 57 | #tag ViewProperty 58 | Name="Left" 59 | Visible=true 60 | Group="Position" 61 | InitialValue="0" 62 | Type="Integer" 63 | EditorType="" 64 | #tag EndViewProperty 65 | #tag ViewProperty 66 | Name="Top" 67 | Visible=true 68 | Group="Position" 69 | InitialValue="0" 70 | Type="Integer" 71 | EditorType="" 72 | #tag EndViewProperty 73 | #tag ViewProperty 74 | Name="Height" 75 | Visible=true 76 | Group="Position" 77 | InitialValue="30" 78 | Type="Integer" 79 | EditorType="" 80 | #tag EndViewProperty 81 | #tag ViewProperty 82 | Name="Width" 83 | Visible=true 84 | Group="Position" 85 | InitialValue="100" 86 | Type="Integer" 87 | EditorType="" 88 | #tag EndViewProperty 89 | #tag ViewProperty 90 | Name="Text" 91 | Visible=true 92 | Group="Text Control" 93 | InitialValue="Untitled" 94 | Type="String" 95 | EditorType="MultiLineEditor" 96 | #tag EndViewProperty 97 | #tag ViewProperty 98 | Name="Alignment" 99 | Visible=true 100 | Group="Text Control" 101 | InitialValue="" 102 | Type="MobileTextControl.Alignments" 103 | EditorType="Enum" 104 | #tag EnumValues 105 | "0 - Left" 106 | "1 - Center" 107 | "2 - Right" 108 | "3 - Justified" 109 | "4 - Natural" 110 | #tag EndEnumValues 111 | #tag EndViewProperty 112 | #tag ViewProperty 113 | Name="TextColor" 114 | Visible=true 115 | Group="Text Control" 116 | InitialValue="&c000000" 117 | Type="Color" 118 | EditorType="" 119 | #tag EndViewProperty 120 | #tag ViewProperty 121 | Name="AccessibilityHint" 122 | Visible=true 123 | Group="UI Control" 124 | InitialValue="" 125 | Type="String" 126 | EditorType="MultiLineEditor" 127 | #tag EndViewProperty 128 | #tag ViewProperty 129 | Name="AccessibilityLabel" 130 | Visible=true 131 | Group="UI Control" 132 | InitialValue="" 133 | Type="String" 134 | EditorType="MultiLineEditor" 135 | #tag EndViewProperty 136 | #tag ViewProperty 137 | Name="LockLeft" 138 | Visible=true 139 | Group="Behavior" 140 | InitialValue="" 141 | Type="Boolean" 142 | EditorType="" 143 | #tag EndViewProperty 144 | #tag ViewProperty 145 | Name="LockRight" 146 | Visible=true 147 | Group="Behavior" 148 | InitialValue="" 149 | Type="Boolean" 150 | EditorType="" 151 | #tag EndViewProperty 152 | #tag ViewProperty 153 | Name="LockTop" 154 | Visible=true 155 | Group="Behavior" 156 | InitialValue="" 157 | Type="Boolean" 158 | EditorType="" 159 | #tag EndViewProperty 160 | #tag ViewProperty 161 | Name="LockBottom" 162 | Visible=true 163 | Group="Behavior" 164 | InitialValue="" 165 | Type="Boolean" 166 | EditorType="" 167 | #tag EndViewProperty 168 | #tag ViewProperty 169 | Name="Enabled" 170 | Visible=true 171 | Group="UI Control" 172 | InitialValue="True" 173 | Type="Boolean" 174 | EditorType="" 175 | #tag EndViewProperty 176 | #tag ViewProperty 177 | Name="Visible" 178 | Visible=true 179 | Group="UI Control" 180 | InitialValue="True" 181 | Type="Boolean" 182 | EditorType="" 183 | #tag EndViewProperty 184 | #tag ViewProperty 185 | Name="LineBreakMode" 186 | Visible=true 187 | Group="Label" 188 | InitialValue="0" 189 | Type="MobileLabel.LineBreakModes" 190 | EditorType="Enum" 191 | #tag EnumValues 192 | "0 - WordWrap" 193 | "1 - CharacterWrap" 194 | "2 - Clip" 195 | "3 - TruncateStart" 196 | "4 - TruncateEnd" 197 | "5 - TruncateMiddle" 198 | #tag EndEnumValues 199 | #tag EndViewProperty 200 | #tag EndViewBehavior 201 | End Class 202 | #tag EndClass 203 | -------------------------------------------------------------------------------- /Controls/FontLabel.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Class 2 | Protected Class FontLabel 3 | Inherits AppearanceLabel 4 | #tag CompatibilityFlags = (TargetConsole and (Target32Bit or Target64Bit)) or (TargetWeb and (Target32Bit or Target64Bit)) or (TargetDesktop and (Target32Bit or Target64Bit)) or (TargetIOS and (Target64Bit)) or (TargetAndroid and (Target64Bit)) 5 | #tag Event 6 | Sub Opening() 7 | Var sFontName As String = Me.Text.Lowercase.ReplaceAll(" ", "-") 8 | 9 | Self.TextFont = New Font(sFontName, kFontSize) 10 | 11 | ' Call Opening-Event 12 | RaiseEvent Opening 13 | End Sub 14 | #tag EndEvent 15 | 16 | 17 | #tag Hook, Flags = &h0 18 | Event Opening() 19 | #tag EndHook 20 | 21 | 22 | #tag Constant, Name = kFontSize, Type = Double, Dynamic = False, Default = \"20", Scope = Private 23 | #tag EndConstant 24 | 25 | 26 | #tag ViewBehavior 27 | #tag ViewProperty 28 | Name="Name" 29 | Visible=true 30 | Group="ID" 31 | InitialValue="" 32 | Type="String" 33 | EditorType="" 34 | #tag EndViewProperty 35 | #tag ViewProperty 36 | Name="Index" 37 | Visible=true 38 | Group="ID" 39 | InitialValue="-2147483648" 40 | Type="Integer" 41 | EditorType="" 42 | #tag EndViewProperty 43 | #tag ViewProperty 44 | Name="Super" 45 | Visible=true 46 | Group="ID" 47 | InitialValue="" 48 | Type="String" 49 | EditorType="" 50 | #tag EndViewProperty 51 | #tag ViewProperty 52 | Name="Left" 53 | Visible=true 54 | Group="Position" 55 | InitialValue="0" 56 | Type="Integer" 57 | EditorType="" 58 | #tag EndViewProperty 59 | #tag ViewProperty 60 | Name="Top" 61 | Visible=true 62 | Group="Position" 63 | InitialValue="0" 64 | Type="Integer" 65 | EditorType="" 66 | #tag EndViewProperty 67 | #tag ViewProperty 68 | Name="Height" 69 | Visible=true 70 | Group="Position" 71 | InitialValue="30" 72 | Type="Integer" 73 | EditorType="" 74 | #tag EndViewProperty 75 | #tag ViewProperty 76 | Name="Width" 77 | Visible=true 78 | Group="Position" 79 | InitialValue="100" 80 | Type="Integer" 81 | EditorType="" 82 | #tag EndViewProperty 83 | #tag ViewProperty 84 | Name="Text" 85 | Visible=true 86 | Group="Text Control" 87 | InitialValue="Untitled" 88 | Type="String" 89 | EditorType="MultiLineEditor" 90 | #tag EndViewProperty 91 | #tag ViewProperty 92 | Name="Alignment" 93 | Visible=true 94 | Group="Text Control" 95 | InitialValue="" 96 | Type="MobileTextControl.Alignments" 97 | EditorType="Enum" 98 | #tag EnumValues 99 | "0 - Left" 100 | "1 - Center" 101 | "2 - Right" 102 | "3 - Justified" 103 | "4 - Natural" 104 | #tag EndEnumValues 105 | #tag EndViewProperty 106 | #tag ViewProperty 107 | Name="TextColor" 108 | Visible=true 109 | Group="Text Control" 110 | InitialValue="&c000000" 111 | Type="Color" 112 | EditorType="" 113 | #tag EndViewProperty 114 | #tag ViewProperty 115 | Name="AccessibilityHint" 116 | Visible=true 117 | Group="UI Control" 118 | InitialValue="" 119 | Type="String" 120 | EditorType="MultiLineEditor" 121 | #tag EndViewProperty 122 | #tag ViewProperty 123 | Name="AccessibilityLabel" 124 | Visible=true 125 | Group="UI Control" 126 | InitialValue="" 127 | Type="String" 128 | EditorType="MultiLineEditor" 129 | #tag EndViewProperty 130 | #tag ViewProperty 131 | Name="LockLeft" 132 | Visible=true 133 | Group="Behavior" 134 | InitialValue="" 135 | Type="Boolean" 136 | EditorType="" 137 | #tag EndViewProperty 138 | #tag ViewProperty 139 | Name="LockRight" 140 | Visible=true 141 | Group="Behavior" 142 | InitialValue="" 143 | Type="Boolean" 144 | EditorType="" 145 | #tag EndViewProperty 146 | #tag ViewProperty 147 | Name="LockTop" 148 | Visible=true 149 | Group="Behavior" 150 | InitialValue="" 151 | Type="Boolean" 152 | EditorType="" 153 | #tag EndViewProperty 154 | #tag ViewProperty 155 | Name="LockBottom" 156 | Visible=true 157 | Group="Behavior" 158 | InitialValue="" 159 | Type="Boolean" 160 | EditorType="" 161 | #tag EndViewProperty 162 | #tag ViewProperty 163 | Name="Enabled" 164 | Visible=true 165 | Group="UI Control" 166 | InitialValue="True" 167 | Type="Boolean" 168 | EditorType="" 169 | #tag EndViewProperty 170 | #tag ViewProperty 171 | Name="Visible" 172 | Visible=true 173 | Group="UI Control" 174 | InitialValue="True" 175 | Type="Boolean" 176 | EditorType="" 177 | #tag EndViewProperty 178 | #tag ViewProperty 179 | Name="LineBreakMode" 180 | Visible=true 181 | Group="Label" 182 | InitialValue="0" 183 | Type="MobileLabel.LineBreakModes" 184 | EditorType="Enum" 185 | #tag EnumValues 186 | "0 - WordWrap" 187 | "1 - CharacterWrap" 188 | "2 - Clip" 189 | "3 - TruncateStart" 190 | "4 - TruncateEnd" 191 | "5 - TruncateMiddle" 192 | #tag EndEnumValues 193 | #tag EndViewProperty 194 | #tag EndViewBehavior 195 | End Class 196 | #tag EndClass 197 | -------------------------------------------------------------------------------- /AndroidDesignExtensions/SegmentedButtonXC.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Module 2 | Protected Module SegmentedButtonXC 3 | #tag CompatibilityFlags = ( TargetAndroid and ( Target64Bit ) ) 4 | #tag Method, Flags = &h0, Description = 436C65617273207468652073656C656374696F6E732E205768656E207468652073656C656374696F6E732061726520636C65617265642C206E6F204D6174657269616C427574746F6E20696E20746869732067726F757020697320636865636B656420616E6420676574436865636B6564427574746F6E49647328292072657475726E7320616E20656D707479206C6973742E 5 | Sub ClearCheckedXC(Extends ctrl As MobileSegmentedButton) 6 | #Pragma Unused ctrl 7 | 8 | #If TargetAndroid 9 | 10 | Declare Sub clearChecked Lib kLibMobileSegmentedButton 11 | clearChecked 12 | 13 | #EndIf 14 | End Sub 15 | #tag EndMethod 16 | 17 | #tag Method, Flags = &h0, Description = 52656D6F76657320612072616E6765206F6620766965777320647572696E67206C61796F75742E20546869732069732075736566756C20696620696E20796F7572206F6E4C61796F75742829206D6574686F642C20796F75206E65656420746F2072656D6F7665206D6F72652076696577732E 18 | Sub RemoveSegmentsInRangeXC(Extends ctrl As MobileSegmentedButton, start As Integer, count As Integer) 19 | #Pragma Unused ctrl 20 | 21 | #If TargetAndroid 22 | 23 | Declare Sub removeViewsInLayout Lib kLibMobileSegmentedButton (myStart As Int32, myCount As Int32) 24 | removeViewsInLayout(start, count) 25 | 26 | #Else 27 | 28 | #Pragma Unused start 29 | #Pragma Unused count 30 | 31 | #EndIf 32 | End Sub 33 | #tag EndMethod 34 | 35 | #tag Method, Flags = &h0, Description = 5365747320746865206261636B67726F756E6420636F6C6F72206F662074686520627574746F6E2061742074686520726563656976656420696E6465782E 36 | Sub SetBackgroundColorAtXC(Extends ctrl As MobileSegmentedButton, index As Integer, c As Color) 37 | #Pragma Unused ctrl 38 | 39 | #If TargetAndroid 40 | 41 | Declare Sub setBackgroundColor Lib kLibMobileSegmentedButtonKotlin Alias "getChildAt(myindex.toInt()).setBackgroundColor(mycolor.toInt())" (myIndex As Int32, myColor As Int32) 42 | setBackgroundColor(index, c.ToInteger) 43 | 44 | #Else 45 | 46 | #Pragma Unused index 47 | #Pragma Unused c 48 | 49 | #EndIf 50 | End Sub 51 | #tag EndMethod 52 | 53 | #tag Method, Flags = &h0, Description = 5365747320776865746865722077652070726576656E7420616C6C206368696C6420627574746F6E732066726F6D206265696E6720646573656C65637465642E 54 | Sub SetSelectionRequiredXC(Extends ctrl As MobileSegmentedButton, selectionRequired As Boolean) 55 | #Pragma Unused ctrl 56 | 57 | #If TargetAndroid 58 | 59 | Declare Sub setSelectionRequired Lib kLibMobileSegmentedButton (mySelectionRequired As Boolean) 60 | setSelectionRequired(selectionRequired) 61 | 62 | #Else 63 | 64 | #Pragma Unused selectionRequired 65 | 66 | #EndIf 67 | End Sub 68 | #tag EndMethod 69 | 70 | #tag Method, Flags = &h0, Description = 53657473207768657468657220746869732067726F7570206F6E6C7920616C6C6F777320612073696E676C6520627574746F6E20746F20626520636865636B65642E0A0A43616C6C696E672074686973206D6574686F6420726573756C747320696E20616C6C2074686520627574746F6E7320696E20746869732067726F757020746F206265636F6D6520756E636865636B65642E 71 | Sub SetSingleSelectionXC(Extends ctrl As MobileSegmentedButton, singleSelection As Boolean) 72 | #Pragma Unused ctrl 73 | 74 | #If TargetAndroid 75 | 76 | Declare Sub setSingleSelection Lib kLibMobileSegmentedButton (mySingleSelection As Boolean) 77 | setSingleSelection(singleSelection) 78 | 79 | #Else 80 | 81 | #Pragma Unused singleSelection 82 | 83 | #EndIf 84 | End Sub 85 | #tag EndMethod 86 | 87 | 88 | #tag Constant, Name = kLibMobileSegmentedButton, Type = String, Dynamic = False, Default = \"Object:ctrl:MobileSegmentedButton", Scope = Private 89 | #tag EndConstant 90 | 91 | #tag Constant, Name = kLibMobileSegmentedButtonKotlin, Type = String, Dynamic = False, Default = \"Object:ctrl:MobileSegmentedButton:Kotlin", Scope = Private 92 | #tag EndConstant 93 | 94 | 95 | #tag ViewBehavior 96 | #tag ViewProperty 97 | Name="Name" 98 | Visible=true 99 | Group="ID" 100 | InitialValue="" 101 | Type="String" 102 | EditorType="" 103 | #tag EndViewProperty 104 | #tag ViewProperty 105 | Name="Index" 106 | Visible=true 107 | Group="ID" 108 | InitialValue="-2147483648" 109 | Type="Integer" 110 | EditorType="" 111 | #tag EndViewProperty 112 | #tag ViewProperty 113 | Name="Super" 114 | Visible=true 115 | Group="ID" 116 | InitialValue="" 117 | Type="String" 118 | EditorType="" 119 | #tag EndViewProperty 120 | #tag ViewProperty 121 | Name="Left" 122 | Visible=true 123 | Group="Position" 124 | InitialValue="0" 125 | Type="Integer" 126 | EditorType="" 127 | #tag EndViewProperty 128 | #tag ViewProperty 129 | Name="Top" 130 | Visible=true 131 | Group="Position" 132 | InitialValue="0" 133 | Type="Integer" 134 | EditorType="" 135 | #tag EndViewProperty 136 | #tag EndViewBehavior 137 | End Module 138 | #tag EndModule 139 | -------------------------------------------------------------------------------- /Screens/Templates/TemplateScreen.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Class 2 | Protected Class TemplateScreen 3 | Inherits MobileScreen 4 | #tag Event 5 | Sub Opening() 6 | If Color.IsDarkMode Then 7 | 8 | Self.SetBackgroundColorXC(&c1A1B21) 9 | 10 | End If 11 | 12 | If Not Color.IsDarkMode Then 13 | 14 | ' Set System Bars Text Color to the dark mode one 15 | 16 | Var APIVersionString As String = System.Version.BuildVersion 17 | Var APIVersion As Integer = APIVersionString.ToInteger 18 | 19 | ' Cast Android API Version 20 | Select Case APIVersion 21 | Case Is <= 29 22 | ' Use setSystemUiVisibility() 23 | Self.SetSystemUiVisibilityXC(Self.GetSystemUiVisibilityXC + kSYSTEM_UI_FLAG_LIGHT_STATUS_BAR) 24 | Case Is >= 30 25 | ' Use WindowInsetsController.setSystemBarsAppearance() 26 | Self.SetSystemBarsAppearanceXC(kAPPEARANCE_LIGHT_STATUS_BARS, kAPPEARANCE_LIGHT_STATUS_BARS) 27 | End Select 28 | 29 | End If 30 | 31 | RaiseEvent Opening 32 | 33 | Self.SetMaterialToolbarElevationXC(0) ' remove the toolbars shadow 34 | Self.SetMaterialToolbarBackgroundColorXC(ToolbarColor) 35 | Self.SetTitleCenteredXC(TitleCentered) 36 | Self.SetTitleTextColorXC(If(Color.IsDarkMode, &cF1F0F7, Color.Black)) 37 | Self.SetTitleTextSizeXC(If(Self IsA TemplateScreenWithBackButton, 1, 0), 17.5) 38 | 39 | If StatusBarColor <> Color.Clear Then 40 | 41 | Self.SetStatusBarColorXC(StatusBarColor) 42 | 43 | End If 44 | 45 | For Each ctrl As MobileUIControl In Self.Controls 46 | 47 | If ctrl IsA MobileButton Then 48 | 49 | MobileButton(ctrl).SetElevationXC(0) 50 | 51 | End If 52 | 53 | Next 54 | End Sub 55 | #tag EndEvent 56 | 57 | 58 | #tag Hook, Flags = &h0 59 | Event Opening() 60 | #tag EndHook 61 | 62 | 63 | #tag Property, Flags = &h0 64 | StatusBarColor As Color = Color.Clear 65 | #tag EndProperty 66 | 67 | #tag Property, Flags = &h0 68 | TitleCentered As Boolean 69 | #tag EndProperty 70 | 71 | #tag Property, Flags = &h0 72 | ToolbarColor As Color 73 | #tag EndProperty 74 | 75 | 76 | #tag ViewBehavior 77 | #tag ViewProperty 78 | Name="ScaleFactor" 79 | Visible=false 80 | Group="Behavior" 81 | InitialValue="" 82 | Type="Double" 83 | EditorType="" 84 | #tag EndViewProperty 85 | #tag ViewProperty 86 | Name="Name" 87 | Visible=true 88 | Group="ID" 89 | InitialValue="" 90 | Type="String" 91 | EditorType="" 92 | #tag EndViewProperty 93 | #tag ViewProperty 94 | Name="Index" 95 | Visible=true 96 | Group="ID" 97 | InitialValue="-2147483648" 98 | Type="Integer" 99 | EditorType="" 100 | #tag EndViewProperty 101 | #tag ViewProperty 102 | Name="Super" 103 | Visible=true 104 | Group="ID" 105 | InitialValue="" 106 | Type="String" 107 | EditorType="" 108 | #tag EndViewProperty 109 | #tag ViewProperty 110 | Name="Left" 111 | Visible=true 112 | Group="Position" 113 | InitialValue="0" 114 | Type="Integer" 115 | EditorType="" 116 | #tag EndViewProperty 117 | #tag ViewProperty 118 | Name="Top" 119 | Visible=true 120 | Group="Position" 121 | InitialValue="0" 122 | Type="Integer" 123 | EditorType="" 124 | #tag EndViewProperty 125 | #tag ViewProperty 126 | Name="Title" 127 | Visible=true 128 | Group="Behavior" 129 | InitialValue="Untitled" 130 | Type="String" 131 | EditorType="MultiLineEditor" 132 | #tag EndViewProperty 133 | #tag ViewProperty 134 | Name="HasNavigationBar" 135 | Visible=true 136 | Group="Behavior" 137 | InitialValue="True" 138 | Type="Boolean" 139 | EditorType="" 140 | #tag EndViewProperty 141 | #tag ViewProperty 142 | Name="Modal" 143 | Visible=true 144 | Group="Behavior" 145 | InitialValue="False" 146 | Type="Boolean" 147 | EditorType="" 148 | #tag EndViewProperty 149 | #tag ViewProperty 150 | Name="HasBackButton" 151 | Visible=true 152 | Group="Behavior" 153 | InitialValue="True" 154 | Type="Boolean" 155 | EditorType="" 156 | #tag EndViewProperty 157 | #tag ViewProperty 158 | Name="ControlCount" 159 | Visible=false 160 | Group="Behavior" 161 | InitialValue="" 162 | Type="Integer" 163 | EditorType="" 164 | #tag EndViewProperty 165 | #tag ViewProperty 166 | Name="NavigationBarHeight" 167 | Visible=false 168 | Group="Behavior" 169 | InitialValue="" 170 | Type="Integer" 171 | EditorType="" 172 | #tag EndViewProperty 173 | #tag ViewProperty 174 | Name="ToolbarColor" 175 | Visible=false 176 | Group="Behavior" 177 | InitialValue="&c000000" 178 | Type="Color" 179 | EditorType="" 180 | #tag EndViewProperty 181 | #tag ViewProperty 182 | Name="TitleCentered" 183 | Visible=false 184 | Group="Behavior" 185 | InitialValue="" 186 | Type="Boolean" 187 | EditorType="" 188 | #tag EndViewProperty 189 | #tag ViewProperty 190 | Name="StatusBarColor" 191 | Visible=false 192 | Group="Behavior" 193 | InitialValue="Color.Clear" 194 | Type="Color" 195 | EditorType="" 196 | #tag EndViewProperty 197 | #tag EndViewBehavior 198 | End Class 199 | #tag EndClass 200 | -------------------------------------------------------------------------------- /Controls/AppearanceTextArea.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Class 2 | Protected Class AppearanceTextArea 3 | Inherits MobileTextArea 4 | #tag Event 5 | Sub Opening() 6 | If Color.IsDarkMode Then 7 | 8 | Me.SetBoxBackgroundColorXC(&c2F3036) 9 | 10 | End If 11 | 12 | ' Call Opening-Event. 13 | RaiseEvent Opening 14 | End Sub 15 | #tag EndEvent 16 | 17 | 18 | #tag Hook, Flags = &h0 19 | Event Opening() 20 | #tag EndHook 21 | 22 | 23 | #tag ViewBehavior 24 | #tag ViewProperty 25 | Name="Name" 26 | Visible=true 27 | Group="ID" 28 | InitialValue="" 29 | Type="String" 30 | EditorType="" 31 | #tag EndViewProperty 32 | #tag ViewProperty 33 | Name="Index" 34 | Visible=true 35 | Group="ID" 36 | InitialValue="-2147483648" 37 | Type="Integer" 38 | EditorType="" 39 | #tag EndViewProperty 40 | #tag ViewProperty 41 | Name="Super" 42 | Visible=true 43 | Group="ID" 44 | InitialValue="" 45 | Type="String" 46 | EditorType="" 47 | #tag EndViewProperty 48 | #tag ViewProperty 49 | Name="Left" 50 | Visible=true 51 | Group="Position" 52 | InitialValue="0" 53 | Type="Integer" 54 | EditorType="" 55 | #tag EndViewProperty 56 | #tag ViewProperty 57 | Name="Top" 58 | Visible=true 59 | Group="Position" 60 | InitialValue="0" 61 | Type="Integer" 62 | EditorType="" 63 | #tag EndViewProperty 64 | #tag ViewProperty 65 | Name="Height" 66 | Visible=true 67 | Group="Position" 68 | InitialValue="200" 69 | Type="Integer" 70 | EditorType="" 71 | #tag EndViewProperty 72 | #tag ViewProperty 73 | Name="Width" 74 | Visible=true 75 | Group="Position" 76 | InitialValue="200" 77 | Type="Integer" 78 | EditorType="" 79 | #tag EndViewProperty 80 | #tag ViewProperty 81 | Name="MaximumCharactersAllowed" 82 | Visible=true 83 | Group="Text Control" 84 | InitialValue="" 85 | Type="Integer" 86 | EditorType="" 87 | #tag EndViewProperty 88 | #tag ViewProperty 89 | Name="LockLeft" 90 | Visible=true 91 | Group="Behavior" 92 | InitialValue="" 93 | Type="Boolean" 94 | EditorType="" 95 | #tag EndViewProperty 96 | #tag ViewProperty 97 | Name="LockRight" 98 | Visible=true 99 | Group="Behavior" 100 | InitialValue="" 101 | Type="Boolean" 102 | EditorType="" 103 | #tag EndViewProperty 104 | #tag ViewProperty 105 | Name="LockTop" 106 | Visible=true 107 | Group="Behavior" 108 | InitialValue="" 109 | Type="Boolean" 110 | EditorType="" 111 | #tag EndViewProperty 112 | #tag ViewProperty 113 | Name="LockBottom" 114 | Visible=true 115 | Group="Behavior" 116 | InitialValue="" 117 | Type="Boolean" 118 | EditorType="" 119 | #tag EndViewProperty 120 | #tag ViewProperty 121 | Name="SelectedText" 122 | Visible=false 123 | Group="Behavior" 124 | InitialValue="" 125 | Type="String" 126 | EditorType="MultiLineEditor" 127 | #tag EndViewProperty 128 | #tag ViewProperty 129 | Name="Text" 130 | Visible=true 131 | Group="Text Control" 132 | InitialValue="" 133 | Type="String" 134 | EditorType="MultiLineEditor" 135 | #tag EndViewProperty 136 | #tag ViewProperty 137 | Name="Alignment" 138 | Visible=true 139 | Group="Text Control" 140 | InitialValue="" 141 | Type="MobileTextControl.Alignments" 142 | EditorType="Enum" 143 | #tag EnumValues 144 | "0 - Left" 145 | "1 - Center" 146 | "2 - Right" 147 | "3 - Justified" 148 | "4 - Natural" 149 | #tag EndEnumValues 150 | #tag EndViewProperty 151 | #tag ViewProperty 152 | Name="TextColor" 153 | Visible=true 154 | Group="Text Control" 155 | InitialValue="&c000000" 156 | Type="Color" 157 | EditorType="" 158 | #tag EndViewProperty 159 | #tag ViewProperty 160 | Name="AccessibilityHint" 161 | Visible=true 162 | Group="UI Control" 163 | InitialValue="" 164 | Type="String" 165 | EditorType="MultiLineEditor" 166 | #tag EndViewProperty 167 | #tag ViewProperty 168 | Name="AccessibilityLabel" 169 | Visible=true 170 | Group="UI Control" 171 | InitialValue="" 172 | Type="String" 173 | EditorType="MultiLineEditor" 174 | #tag EndViewProperty 175 | #tag ViewProperty 176 | Name="Enabled" 177 | Visible=true 178 | Group="UI Control" 179 | InitialValue="True" 180 | Type="Boolean" 181 | EditorType="" 182 | #tag EndViewProperty 183 | #tag ViewProperty 184 | Name="Visible" 185 | Visible=true 186 | Group="UI Control" 187 | InitialValue="True" 188 | Type="Boolean" 189 | EditorType="" 190 | #tag EndViewProperty 191 | #tag ViewProperty 192 | Name="AllowSpellChecking" 193 | Visible=true 194 | Group="Text Area" 195 | InitialValue="" 196 | Type="Boolean" 197 | EditorType="" 198 | #tag EndViewProperty 199 | #tag ViewProperty 200 | Name="ReadOnly" 201 | Visible=true 202 | Group="Text Area" 203 | InitialValue="" 204 | Type="Boolean" 205 | EditorType="" 206 | #tag EndViewProperty 207 | #tag ViewProperty 208 | Name="SelectionLength" 209 | Visible=false 210 | Group="Behavior" 211 | InitialValue="" 212 | Type="Integer" 213 | EditorType="" 214 | #tag EndViewProperty 215 | #tag ViewProperty 216 | Name="SelectionStart" 217 | Visible=false 218 | Group="Behavior" 219 | InitialValue="" 220 | Type="Integer" 221 | EditorType="" 222 | #tag EndViewProperty 223 | #tag EndViewBehavior 224 | End Class 225 | #tag EndClass 226 | -------------------------------------------------------------------------------- /Controls/ColorButton.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Class 2 | Protected Class ColorButton 3 | Inherits MobileButton 4 | #tag CompatibilityFlags = ( TargetIOS and ( Target64Bit ) ) or ( TargetAndroid and ( Target64Bit ) ) 5 | #tag Event 6 | Sub Opening() 7 | ' Call Opening-Event 8 | RaiseEvent Opening 9 | 10 | Me.SetCornerRadiusXC(180) 11 | End Sub 12 | #tag EndEvent 13 | 14 | #tag Event 15 | Sub Pressed() 16 | Select Case App.BackgroundMode 17 | Case 0 18 | 19 | App.CurrentScreen.SetStatusBarColorXC(MyColor) 20 | 21 | Case 1 22 | 23 | App.CurrentScreen.SetMaterialToolbarBackgroundColorXC(MyColor) 24 | 25 | Case 2 26 | 27 | ' do nothing 28 | 29 | Case 3 30 | 31 | App.CurrentScreen.SetTitleTextColorXC(MyColor) 32 | 33 | Case 4 34 | 35 | App.CurrentScreen.SetBackgroundColorXC(MyColor) 36 | 37 | Case 5 38 | 39 | ' do nothing 40 | 41 | Case 6 42 | 43 | App.CurrentScreen.SetBottomAppBarBackgroundColorXC(MyColor) 44 | 45 | Case 7 46 | 47 | App.CurrentScreen.SetNavigationBarColorXC(MyColor) 48 | 49 | Case 8 50 | 51 | ' Working for API 28+ (Android 9+) 52 | If System.Version.MajorVersion >= 9 Then 53 | 54 | App.CurrentScreen.SetNavigationBarDividerColorXC(MyColor) 55 | 56 | End If 57 | 58 | End Select 59 | 60 | ' Call Pressed-Event 61 | RaiseEvent Pressed 62 | End Sub 63 | #tag EndEvent 64 | 65 | 66 | #tag Method, Flags = &h0 67 | Sub MyBackgroundColor(Assigns myColor As Color) 68 | Self.MyColor = myColor 69 | Self.SetBackgroundColorXC(myColor) 70 | Self.SetCornerRadiusXC(44) 71 | End Sub 72 | #tag EndMethod 73 | 74 | 75 | #tag Hook, Flags = &h0 76 | Event Opening() 77 | #tag EndHook 78 | 79 | #tag Hook, Flags = &h0 80 | Event Pressed() 81 | #tag EndHook 82 | 83 | 84 | #tag Property, Flags = &h21 85 | Private MyColor As Color 86 | #tag EndProperty 87 | 88 | 89 | #tag ViewBehavior 90 | #tag ViewProperty 91 | Name="Name" 92 | Visible=true 93 | Group="ID" 94 | InitialValue="" 95 | Type="String" 96 | EditorType="" 97 | #tag EndViewProperty 98 | #tag ViewProperty 99 | Name="Index" 100 | Visible=true 101 | Group="ID" 102 | InitialValue="-2147483648" 103 | Type="Integer" 104 | EditorType="" 105 | #tag EndViewProperty 106 | #tag ViewProperty 107 | Name="Super" 108 | Visible=true 109 | Group="ID" 110 | InitialValue="" 111 | Type="String" 112 | EditorType="" 113 | #tag EndViewProperty 114 | #tag ViewProperty 115 | Name="Left" 116 | Visible=true 117 | Group="Position" 118 | InitialValue="0" 119 | Type="Integer" 120 | EditorType="" 121 | #tag EndViewProperty 122 | #tag ViewProperty 123 | Name="Top" 124 | Visible=true 125 | Group="Position" 126 | InitialValue="0" 127 | Type="Integer" 128 | EditorType="" 129 | #tag EndViewProperty 130 | #tag ViewProperty 131 | Name="Height" 132 | Visible=true 133 | Group="Position" 134 | InitialValue="44" 135 | Type="Integer" 136 | EditorType="" 137 | #tag EndViewProperty 138 | #tag ViewProperty 139 | Name="Width" 140 | Visible=true 141 | Group="Position" 142 | InitialValue="100" 143 | Type="Integer" 144 | EditorType="" 145 | #tag EndViewProperty 146 | #tag ViewProperty 147 | Name="LockLeft" 148 | Visible=true 149 | Group="Behavior" 150 | InitialValue="" 151 | Type="Boolean" 152 | EditorType="" 153 | #tag EndViewProperty 154 | #tag ViewProperty 155 | Name="LockRight" 156 | Visible=true 157 | Group="Behavior" 158 | InitialValue="" 159 | Type="Boolean" 160 | EditorType="" 161 | #tag EndViewProperty 162 | #tag ViewProperty 163 | Name="LockTop" 164 | Visible=true 165 | Group="Behavior" 166 | InitialValue="" 167 | Type="Boolean" 168 | EditorType="" 169 | #tag EndViewProperty 170 | #tag ViewProperty 171 | Name="LockBottom" 172 | Visible=true 173 | Group="Behavior" 174 | InitialValue="" 175 | Type="Boolean" 176 | EditorType="" 177 | #tag EndViewProperty 178 | #tag ViewProperty 179 | Name="AccessibilityHint" 180 | Visible=true 181 | Group="Behavior" 182 | InitialValue="" 183 | Type="String" 184 | EditorType="MultiLineEditor" 185 | #tag EndViewProperty 186 | #tag ViewProperty 187 | Name="AccessibilityLabel" 188 | Visible=true 189 | Group="Behavior" 190 | InitialValue="" 191 | Type="String" 192 | EditorType="MultiLineEditor" 193 | #tag EndViewProperty 194 | #tag ViewProperty 195 | Name="Enabled" 196 | Visible=true 197 | Group="UI Control" 198 | InitialValue="True" 199 | Type="Boolean" 200 | EditorType="" 201 | #tag EndViewProperty 202 | #tag ViewProperty 203 | Name="Visible" 204 | Visible=true 205 | Group="UI Control" 206 | InitialValue="True" 207 | Type="Boolean" 208 | EditorType="" 209 | #tag EndViewProperty 210 | #tag ViewProperty 211 | Name="Caption" 212 | Visible=true 213 | Group="Button" 214 | InitialValue="Button" 215 | Type="String" 216 | EditorType="MultiLineEditor" 217 | #tag EndViewProperty 218 | #tag ViewProperty 219 | Name="CaptionColor" 220 | Visible=true 221 | Group="Button" 222 | InitialValue="&cffffff" 223 | Type="Color" 224 | EditorType="" 225 | #tag EndViewProperty 226 | #tag EndViewBehavior 227 | End Class 228 | #tag EndClass 229 | -------------------------------------------------------------------------------- /AndroidDesignExtensions/SwitchXC.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Module 2 | Protected Module SwitchXC 3 | #tag CompatibilityFlags = ( TargetAndroid and ( Target64Bit ) ) 4 | #tag Method, Flags = &h0, Description = 52657475726E7320747275652069662074686973205377697463684D6174657269616C2064656661756C747320746F20636F6C6F72732066726F6D2061204D6174657269616C205468656D652E 5 | Function IsUseMaterialThemeColorsXC(Extends ctrl As MobileSwitch) As Boolean 6 | #Pragma Unused ctrl 7 | 8 | #If TargetAndroid 9 | 10 | Declare Function isUseMaterialThemeColors Lib kLibMobileSwitch As Boolean 11 | Return isUseMaterialThemeColors 12 | 13 | #EndIf 14 | End Function 15 | #tag EndMethod 16 | 17 | #tag Method, Flags = &h0, Description = 5370656369666965732074696E7420636F6C6F7220666F722074686973206472617761626C652E 18 | Sub SetThumbColorXC(Extends ctrl As MobileSwitch, c As Color) 19 | #Pragma Unused ctrl 20 | 21 | #If TargetAndroid 22 | 23 | Declare Sub setTint Lib kLibMobileSwitch Alias "getThumbDrawable()!!.setTint" (myTintColor As Int32) 24 | setTint(c.ToInteger) 25 | 26 | #Else 27 | 28 | #Pragma Unused c 29 | 30 | #EndIf 31 | End Sub 32 | #tag EndMethod 33 | 34 | #tag Method, Flags = &h0, Description = 53657420746865206472617761626C65207573656420666F72207468652073776974636820227468756D6222202D2074686520706965636520746861742074686520757365722063616E20706879736963616C6C7920746F75636820616E64206472616720616C6F6E672074686520747261636B2E 35 | Sub SetThumbXC(Extends ctrl As MobileSwitch, file As FolderItem) 36 | #Pragma Unused ctrl 37 | 38 | #If TargetAndroid 39 | 40 | Declare Sub setThumbDrawable Lib kLibMobileSwitchKotlin Alias "setThumbDrawable(android.graphics.drawable.Drawable.createFromPath(myicon.toString()))" (myIcon As CString) 41 | setThumbDrawable(file.NativePath) 42 | 43 | #Else 44 | 45 | #Pragma Unused file 46 | 47 | #EndIf 48 | End Sub 49 | #tag EndMethod 50 | 51 | #tag Method, Flags = &h0, Description = 53657420746865206472617761626C65207573656420666F72207468652073776974636820227468756D6222202D2074686520706965636520746861742074686520757365722063616E20706879736963616C6C7920746F75636820616E64206472616720616C6F6E672074686520747261636B2E 52 | Sub SetThumbXC(Extends ctrl As MobileSwitch, thumb As Picture) 53 | #Pragma Unused ctrl 54 | 55 | #If TargetAndroid 56 | 57 | Declare Sub setThumbDrawable Lib kLibMobileSwitchKotlin Alias "setThumbDrawable(thumb as android.graphics.drawable.Drawable)" (thumb As Ptr) 58 | setThumbDrawable(thumb.ToDrawable) 59 | 60 | #Else 61 | 62 | #Pragma Unused thumb 63 | 64 | #EndIf 65 | End Sub 66 | #tag EndMethod 67 | 68 | #tag Method, Flags = &h0, Description = 5370656369666965732074696E7420636F6C6F7220666F722074686973206472617761626C652E 69 | Sub SetTrackColorXC(Extends ctrl As MobileSwitch, c As Color) 70 | #Pragma Unused ctrl 71 | 72 | #If TargetAndroid 73 | 74 | Declare Sub setTint Lib kLibMobileSwitch Alias "getTrackDrawable()!!.setTint" (myTintColor As Int32) 75 | setTint(c.ToInteger) 76 | 77 | #Else 78 | 79 | #Pragma Unused c 80 | 81 | #EndIf 82 | End Sub 83 | #tag EndMethod 84 | 85 | #tag Method, Flags = &h0, Description = 466F7263657320746865205377697463684D6174657269616C20746F2075736520636F6C6F72732066726F6D2061204D6174657269616C205468656D652E204F766572726964657320616E79207370656369666965642074696E74206C69737420666F722074686520747261636B20616E64207468756D622E2049662073657420746F2066616C73652C2073657473207468652074696E747320746F206E756C6C2E 86 | Sub SetUseMaterialThemeColorsXC(Extends ctrl As MobileSwitch, useMaterialThemeColors As Boolean) 87 | #Pragma Unused ctrl 88 | 89 | #If TargetAndroid 90 | 91 | Declare Sub setUseMaterialThemeColors Lib kLibMobileSwitch (myUseMaterialThemeColors As Boolean) 92 | setUseMaterialThemeColors(useMaterialThemeColors) 93 | 94 | #Else 95 | 96 | #Pragma Unused useMaterialThemeColors 97 | 98 | #EndIf 99 | End Sub 100 | #tag EndMethod 101 | 102 | 103 | #tag Constant, Name = kLibMobileSwitch, Type = String, Dynamic = False, Default = \"Object:ctrl:MobileSwitch", Scope = Private 104 | #tag EndConstant 105 | 106 | #tag Constant, Name = kLibMobileSwitchKotlin, Type = String, Dynamic = False, Default = \"Object:ctrl:MobileSwitch:Kotlin", Scope = Private 107 | #tag EndConstant 108 | 109 | 110 | #tag ViewBehavior 111 | #tag ViewProperty 112 | Name="Name" 113 | Visible=true 114 | Group="ID" 115 | InitialValue="" 116 | Type="String" 117 | EditorType="" 118 | #tag EndViewProperty 119 | #tag ViewProperty 120 | Name="Index" 121 | Visible=true 122 | Group="ID" 123 | InitialValue="-2147483648" 124 | Type="Integer" 125 | EditorType="" 126 | #tag EndViewProperty 127 | #tag ViewProperty 128 | Name="Super" 129 | Visible=true 130 | Group="ID" 131 | InitialValue="" 132 | Type="String" 133 | EditorType="" 134 | #tag EndViewProperty 135 | #tag ViewProperty 136 | Name="Left" 137 | Visible=true 138 | Group="Position" 139 | InitialValue="0" 140 | Type="Integer" 141 | EditorType="" 142 | #tag EndViewProperty 143 | #tag ViewProperty 144 | Name="Top" 145 | Visible=true 146 | Group="Position" 147 | InitialValue="0" 148 | Type="Integer" 149 | EditorType="" 150 | #tag EndViewProperty 151 | #tag EndViewBehavior 152 | End Module 153 | #tag EndModule 154 | -------------------------------------------------------------------------------- /Screens/FolderScreen.xojo_code: -------------------------------------------------------------------------------- 1 | #tag MobileScreen 2 | Begin TemplateScreenWithBackButton FolderScreen 3 | Compatibility = "" 4 | Device = 1 5 | HasBackButton = True 6 | HasNavigationBar= True 7 | Modal = False 8 | Orientation = 0 9 | Title = "Folders" 10 | Begin AndroidMobileTable Table1 11 | AccessibilityHint= "" 12 | AccessibilityLabel= "" 13 | Enabled = True 14 | HasHeader = False 15 | Header = "" 16 | Height = 700 17 | InitialValue = "" 18 | LastAddedRowIndex= 0 19 | LastRowIndex = 0 20 | Left = 0 21 | LockBottom = True 22 | LockedInPosition= False 23 | LockLeft = True 24 | LockRight = True 25 | LockTop = True 26 | RowCount = 0 27 | Scope = 2 28 | ScrollPosition = 0 29 | SelectedRowIndex= 0 30 | SelectedRowText = "" 31 | SeparatorColor = &c00000000 32 | SeparatorThickness= 0 33 | Top = 0 34 | Visible = True 35 | Width = 360 36 | End 37 | End 38 | #tag EndMobileScreen 39 | 40 | #tag ScreenCode 41 | #tag Method, Flags = &h21 42 | Private Sub AddRow(folder As FolderItem, androidVersion As Integer = -1) 43 | If folder Is Nil Or Not folder.Exists Then Return 44 | 45 | If androidVersion > -1 And System.Version.MajorVersion >= androidVersion Then 46 | 47 | Table1.AddRow(folder.Name + " (Android " + androidVersion.ToString + "+)", "📂" + folder.NativePath) 48 | 49 | Else 50 | 51 | Table1.AddRow(folder.Name, "📂" + folder.NativePath) 52 | 53 | End If 54 | 55 | Table1.RowDetailColorAt(Table1.LastAddedRowIndex) = Color.TextColor 56 | Table1.RowTextColorAt(Table1.LastAddedRowIndex) = If(Color.IsDarkMode, &cF1F0F7, Color.PrimaryThemeColor) 57 | End Sub 58 | #tag EndMethod 59 | 60 | 61 | #tag EndScreenCode 62 | 63 | #tag Events Table1 64 | #tag Event 65 | Sub Opening() 66 | ' Working for API 29+ (Android 10+) 67 | If System.Version.MajorVersion >= 10 And Color.IsDarkMode Then 68 | 69 | Me.SetVerticalScrollbarThumbColor(&c73737D) 70 | 71 | End If 72 | 73 | Me.RowDetailFont = Font.SystemFont(13.5) 74 | Me.RowTextFont = Font.BoldSystemFont 75 | Me.SeparatorColor = If(Color.IsDarkMode, &c21212100, &cCACACC00) 76 | 77 | AddRow(SpecialFolderXC.AlarmsXC) 78 | 79 | ' Working for API 29+ (Android 10+) 80 | If System.Version.MajorVersion >= 10 Then 81 | 82 | AddRow(SpecialFolderXC.AudiobooksXC, 10) 83 | 84 | End If 85 | 86 | AddRow(SpecialFolderXC.DCIMXC) 87 | 88 | AddRow(SpecialFolderXC.DocumentsXC) 89 | 90 | AddRow(SpecialFolderXC.DownloadsXC) 91 | 92 | AddRow(SpecialFolderXC.MoviesXC) 93 | 94 | AddRow(SpecialFolderXC.MusicXC) 95 | 96 | AddRow(SpecialFolderXC.NotificationsXC) 97 | 98 | AddRow(SpecialFolderXC.PicturesXC) 99 | 100 | AddRow(SpecialFolderXC.PodcastsXC) 101 | 102 | ' Working for API 31+ (Android 12+) 103 | If System.Version.MajorVersion >= 12 Then 104 | 105 | AddRow(SpecialFolderXC.RecordingsXC, 12) 106 | 107 | End If 108 | 109 | AddRow(SpecialFolderXC.RingtonesXC) 110 | 111 | ' Working for API 29+ (Android 10+) 112 | If System.Version.MajorVersion >= 10 Then 113 | 114 | AddRow(SpecialFolderXC.ScreenshotsXC) 115 | 116 | End If 117 | End Sub 118 | #tag EndEvent 119 | #tag EndEvents 120 | #tag ViewBehavior 121 | #tag ViewProperty 122 | Name="ToolbarColor" 123 | Visible=false 124 | Group="Behavior" 125 | InitialValue="&c000000" 126 | Type="Color" 127 | EditorType="" 128 | #tag EndViewProperty 129 | #tag ViewProperty 130 | Name="TitleCentered" 131 | Visible=false 132 | Group="Behavior" 133 | InitialValue="" 134 | Type="Boolean" 135 | EditorType="" 136 | #tag EndViewProperty 137 | #tag ViewProperty 138 | Name="StatusBarColor" 139 | Visible=false 140 | Group="Behavior" 141 | InitialValue="Color.Clear" 142 | Type="Color" 143 | EditorType="" 144 | #tag EndViewProperty 145 | #tag ViewProperty 146 | Name="Name" 147 | Visible=true 148 | Group="ID" 149 | InitialValue="" 150 | Type="String" 151 | EditorType="" 152 | #tag EndViewProperty 153 | #tag ViewProperty 154 | Name="Index" 155 | Visible=true 156 | Group="ID" 157 | InitialValue="-2147483648" 158 | Type="Integer" 159 | EditorType="" 160 | #tag EndViewProperty 161 | #tag ViewProperty 162 | Name="Super" 163 | Visible=true 164 | Group="ID" 165 | InitialValue="" 166 | Type="String" 167 | EditorType="" 168 | #tag EndViewProperty 169 | #tag ViewProperty 170 | Name="Left" 171 | Visible=true 172 | Group="Position" 173 | InitialValue="0" 174 | Type="Integer" 175 | EditorType="" 176 | #tag EndViewProperty 177 | #tag ViewProperty 178 | Name="Top" 179 | Visible=true 180 | Group="Position" 181 | InitialValue="0" 182 | Type="Integer" 183 | EditorType="" 184 | #tag EndViewProperty 185 | #tag ViewProperty 186 | Name="ControlCount" 187 | Visible=false 188 | Group="Behavior" 189 | InitialValue="" 190 | Type="Integer" 191 | EditorType="" 192 | #tag EndViewProperty 193 | #tag ViewProperty 194 | Name="Title" 195 | Visible=true 196 | Group="Behavior" 197 | InitialValue="Untitled" 198 | Type="String" 199 | EditorType="MultiLineEditor" 200 | #tag EndViewProperty 201 | #tag ViewProperty 202 | Name="HasNavigationBar" 203 | Visible=true 204 | Group="Behavior" 205 | InitialValue="True" 206 | Type="Boolean" 207 | EditorType="" 208 | #tag EndViewProperty 209 | #tag ViewProperty 210 | Name="Modal" 211 | Visible=true 212 | Group="Behavior" 213 | InitialValue="False" 214 | Type="Boolean" 215 | EditorType="" 216 | #tag EndViewProperty 217 | #tag ViewProperty 218 | Name="NavigationBarHeight" 219 | Visible=false 220 | Group="Behavior" 221 | InitialValue="" 222 | Type="Integer" 223 | EditorType="" 224 | #tag EndViewProperty 225 | #tag ViewProperty 226 | Name="HasBackButton" 227 | Visible=true 228 | Group="Behavior" 229 | InitialValue="False" 230 | Type="Boolean" 231 | EditorType="" 232 | #tag EndViewProperty 233 | #tag EndViewBehavior 234 | -------------------------------------------------------------------------------- /Containers/ScrollableContainer.xojo_code: -------------------------------------------------------------------------------- 1 | #tag MobileContainer 2 | Begin MobileContainer ScrollableContainer 3 | AccessibilityHint= "" 4 | AccessibilityLabel= "" 5 | Compatibility = "(TargetConsole and (Target32Bit or Target64Bit)) or (TargetWeb and (Target32Bit or Target64Bit)) or (TargetDesktop and (Target32Bit or Target64Bit)) or (TargetIOS and (Target64Bit)) or (TargetAndroid and (Target64Bit))" 6 | Enabled = True 7 | Height = 1000 8 | LockBottom = False 9 | LockLeft = True 10 | LockRight = True 11 | LockTop = True 12 | Visible = True 13 | Width = 360 14 | Begin AppearanceLabel Label1 15 | AccessibilityHint= "" 16 | AccessibilityLabel= "" 17 | Alignment = 0 18 | Enabled = True 19 | Height = 40 20 | Left = 20 21 | LineBreakMode = 0 22 | LockBottom = False 23 | LockedInPosition= False 24 | LockLeft = True 25 | LockRight = True 26 | LockTop = True 27 | Scope = 2 28 | Text = "Hello World" 29 | TextColor = &c00000000 30 | Top = 30 31 | Visible = True 32 | Width = 320 33 | End 34 | Begin MobileTextArea TextArea1 35 | AccessibilityHint= "" 36 | AccessibilityLabel= "" 37 | Alignment = 0 38 | Enabled = True 39 | Height = 200 40 | Left = 20 41 | LockBottom = False 42 | LockedInPosition= False 43 | LockLeft = True 44 | LockRight = True 45 | LockTop = True 46 | ReadOnly = False 47 | Scope = 2 48 | SelectedText = "" 49 | SelectionLength = 0 50 | SelectionStart = 0 51 | Text = "" 52 | TextColor = &c00000000 53 | Top = 133 54 | Visible = True 55 | Width = 320 56 | End 57 | Begin MobileDateTimePicker DateTimePicker1 58 | AccessibilityHint= "" 59 | AccessibilityLabel= "" 60 | CaptionColor = &c00000000 61 | DateCaption = "Choose a Date" 62 | DisplayMode = 1 63 | Enabled = True 64 | Height = 44 65 | Left = 20 66 | LockBottom = False 67 | LockedInPosition= False 68 | LockLeft = True 69 | LockRight = True 70 | LockTop = True 71 | Scope = 2 72 | TimeCaption = "Choose a Time" 73 | Top = 926 74 | Visible = True 75 | Width = 320 76 | End 77 | Begin MobileCanvas FixBottomPaddingCanvas 78 | AccessibilityHint= "" 79 | AccessibilityLabel= "" 80 | Enabled = True 81 | Height = 22 82 | Left = 0 83 | LockBottom = False 84 | LockedInPosition= False 85 | LockLeft = True 86 | LockRight = True 87 | LockTop = True 88 | Scope = 2 89 | Top = 978 90 | Visible = True 91 | Width = 360 92 | End 93 | End 94 | #tag EndMobileContainer 95 | 96 | #tag ScreenCode 97 | #tag EndScreenCode 98 | 99 | #tag ViewBehavior 100 | #tag ViewProperty 101 | Name="Index" 102 | Visible=true 103 | Group="ID" 104 | InitialValue="-2147483648" 105 | Type="Integer" 106 | EditorType="" 107 | #tag EndViewProperty 108 | #tag ViewProperty 109 | Name="Name" 110 | Visible=true 111 | Group="ID" 112 | InitialValue="" 113 | Type="String" 114 | EditorType="" 115 | #tag EndViewProperty 116 | #tag ViewProperty 117 | Name="Super" 118 | Visible=true 119 | Group="ID" 120 | InitialValue="" 121 | Type="String" 122 | EditorType="" 123 | #tag EndViewProperty 124 | #tag ViewProperty 125 | Name="Left" 126 | Visible=true 127 | Group="Position" 128 | InitialValue="0" 129 | Type="Integer" 130 | EditorType="" 131 | #tag EndViewProperty 132 | #tag ViewProperty 133 | Name="Top" 134 | Visible=true 135 | Group="Position" 136 | InitialValue="0" 137 | Type="Integer" 138 | EditorType="" 139 | #tag EndViewProperty 140 | #tag ViewProperty 141 | Name="Height" 142 | Visible=true 143 | Group="Position" 144 | InitialValue="400" 145 | Type="Integer" 146 | EditorType="" 147 | #tag EndViewProperty 148 | #tag ViewProperty 149 | Name="Width" 150 | Visible=true 151 | Group="Position" 152 | InitialValue="360" 153 | Type="Integer" 154 | EditorType="" 155 | #tag EndViewProperty 156 | #tag ViewProperty 157 | Name="LockLeft" 158 | Visible=true 159 | Group="Behavior" 160 | InitialValue="" 161 | Type="Boolean" 162 | EditorType="" 163 | #tag EndViewProperty 164 | #tag ViewProperty 165 | Name="LockRight" 166 | Visible=true 167 | Group="Behavior" 168 | InitialValue="" 169 | Type="Boolean" 170 | EditorType="" 171 | #tag EndViewProperty 172 | #tag ViewProperty 173 | Name="LockTop" 174 | Visible=true 175 | Group="Behavior" 176 | InitialValue="" 177 | Type="Boolean" 178 | EditorType="" 179 | #tag EndViewProperty 180 | #tag ViewProperty 181 | Name="LockBottom" 182 | Visible=true 183 | Group="Behavior" 184 | InitialValue="" 185 | Type="Boolean" 186 | EditorType="" 187 | #tag EndViewProperty 188 | #tag ViewProperty 189 | Name="Enabled" 190 | Visible=true 191 | Group="UI Control" 192 | InitialValue="True" 193 | Type="Boolean" 194 | EditorType="" 195 | #tag EndViewProperty 196 | #tag ViewProperty 197 | Name="Visible" 198 | Visible=true 199 | Group="UI Control" 200 | InitialValue="True" 201 | Type="Boolean" 202 | EditorType="" 203 | #tag EndViewProperty 204 | #tag ViewProperty 205 | Name="AccessibilityHint" 206 | Visible=true 207 | Group="UI Control" 208 | InitialValue="" 209 | Type="String" 210 | EditorType="MultiLineEditor" 211 | #tag EndViewProperty 212 | #tag ViewProperty 213 | Name="AccessibilityLabel" 214 | Visible=true 215 | Group="UI Control" 216 | InitialValue="" 217 | Type="String" 218 | EditorType="MultiLineEditor" 219 | #tag EndViewProperty 220 | #tag ViewProperty 221 | Name="ControlCount" 222 | Visible=false 223 | Group="Behavior" 224 | InitialValue="" 225 | Type="Integer" 226 | EditorType="" 227 | #tag EndViewProperty 228 | #tag EndViewBehavior 229 | -------------------------------------------------------------------------------- /Controls/AppearanceTextField.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Class 2 | Protected Class AppearanceTextField 3 | Inherits MobileTextField 4 | #tag CompatibilityFlags = ( TargetIOS and ( Target64Bit ) ) or ( TargetAndroid and ( Target64Bit ) ) 5 | #tag Event 6 | Sub Opening() 7 | If Color.IsDarkMode Then 8 | 9 | Me.SetDefaultHintTextColorXC(&cC5C6D0) 10 | Me.SetHintTextColorXC(&cC5C6D0) 11 | Me.TextColor = &cF1F0F7 12 | Me.SetBoxBackgroundColorXC(&c303034) 13 | 14 | End If 15 | 16 | ' Call Opening-Event. 17 | RaiseEvent Opening 18 | End Sub 19 | #tag EndEvent 20 | 21 | 22 | #tag Hook, Flags = &h0 23 | Event Opening() 24 | #tag EndHook 25 | 26 | 27 | #tag ViewBehavior 28 | #tag ViewProperty 29 | Name="MaximumCharactersAllowed" 30 | Visible=true 31 | Group="Text Control" 32 | InitialValue="" 33 | Type="Integer" 34 | EditorType="" 35 | #tag EndViewProperty 36 | #tag ViewProperty 37 | Name="AllowSpellChecking" 38 | Visible=true 39 | Group="Text Field" 40 | InitialValue="" 41 | Type="Boolean" 42 | EditorType="" 43 | #tag EndViewProperty 44 | #tag ViewProperty 45 | Name="Text" 46 | Visible=true 47 | Group="Text Control" 48 | InitialValue="" 49 | Type="String" 50 | EditorType="MultiLineEditor" 51 | #tag EndViewProperty 52 | #tag ViewProperty 53 | Name="Height" 54 | Visible=true 55 | Group="Position" 56 | InitialValue="44" 57 | Type="Integer" 58 | EditorType="" 59 | #tag EndViewProperty 60 | #tag ViewProperty 61 | Name="Width" 62 | Visible=true 63 | Group="Position" 64 | InitialValue="100" 65 | Type="Integer" 66 | EditorType="" 67 | #tag EndViewProperty 68 | #tag ViewProperty 69 | Name="LockLeft" 70 | Visible=true 71 | Group="Behavior" 72 | InitialValue="" 73 | Type="Boolean" 74 | EditorType="" 75 | #tag EndViewProperty 76 | #tag ViewProperty 77 | Name="LockRight" 78 | Visible=true 79 | Group="Behavior" 80 | InitialValue="" 81 | Type="Boolean" 82 | EditorType="" 83 | #tag EndViewProperty 84 | #tag ViewProperty 85 | Name="LockTop" 86 | Visible=true 87 | Group="Behavior" 88 | InitialValue="" 89 | Type="Boolean" 90 | EditorType="" 91 | #tag EndViewProperty 92 | #tag ViewProperty 93 | Name="LockBottom" 94 | Visible=true 95 | Group="Behavior" 96 | InitialValue="" 97 | Type="Boolean" 98 | EditorType="" 99 | #tag EndViewProperty 100 | #tag ViewProperty 101 | Name="ReadOnly" 102 | Visible=true 103 | Group="Text Field" 104 | InitialValue="" 105 | Type="Boolean" 106 | EditorType="" 107 | #tag EndViewProperty 108 | #tag ViewProperty 109 | Name="SelectedText" 110 | Visible=false 111 | Group="Behavior" 112 | InitialValue="" 113 | Type="String" 114 | EditorType="MultiLineEditor" 115 | #tag EndViewProperty 116 | #tag ViewProperty 117 | Name="SelectionLength" 118 | Visible=false 119 | Group="Behavior" 120 | InitialValue="" 121 | Type="Integer" 122 | EditorType="" 123 | #tag EndViewProperty 124 | #tag ViewProperty 125 | Name="SelectionStart" 126 | Visible=false 127 | Group="Behavior" 128 | InitialValue="" 129 | Type="Integer" 130 | EditorType="" 131 | #tag EndViewProperty 132 | #tag ViewProperty 133 | Name="Enabled" 134 | Visible=true 135 | Group="UI Control" 136 | InitialValue="True" 137 | Type="Boolean" 138 | EditorType="" 139 | #tag EndViewProperty 140 | #tag ViewProperty 141 | Name="Visible" 142 | Visible=true 143 | Group="UI Control" 144 | InitialValue="True" 145 | Type="Boolean" 146 | EditorType="" 147 | #tag EndViewProperty 148 | #tag ViewProperty 149 | Name="Alignment" 150 | Visible=true 151 | Group="Text Control" 152 | InitialValue="Left" 153 | Type="MobileTextControl.Alignments" 154 | EditorType="Enum" 155 | #tag EnumValues 156 | "0 - Left" 157 | "1 - Center" 158 | "2 - Right" 159 | "3 - Justified" 160 | "4 - Natural" 161 | #tag EndEnumValues 162 | #tag EndViewProperty 163 | #tag ViewProperty 164 | Name="TextColor" 165 | Visible=true 166 | Group="Text Control" 167 | InitialValue="&c000000" 168 | Type="Color" 169 | EditorType="" 170 | #tag EndViewProperty 171 | #tag ViewProperty 172 | Name="AccessibilityHint" 173 | Visible=true 174 | Group="UI Control" 175 | InitialValue="" 176 | Type="String" 177 | EditorType="MultiLineEditor" 178 | #tag EndViewProperty 179 | #tag ViewProperty 180 | Name="AccessibilityLabel" 181 | Visible=true 182 | Group="UI Control" 183 | InitialValue="" 184 | Type="String" 185 | EditorType="MultiLineEditor" 186 | #tag EndViewProperty 187 | #tag ViewProperty 188 | Name="InputType" 189 | Visible=true 190 | Group="Text Field" 191 | InitialValue="0" 192 | Type="MobileTextField.InputTypes" 193 | EditorType="Enum" 194 | #tag EnumValues 195 | "0 - Default" 196 | "1 - NumbersAndPunctuation" 197 | "2 - URL" 198 | "3 - Numbers" 199 | "4 - Phone" 200 | "5 - NamePhone" 201 | "6 - Email" 202 | "7 - Decimal" 203 | "8 - Twitter" 204 | "9 - WebSearch" 205 | #tag EndEnumValues 206 | #tag EndViewProperty 207 | #tag ViewProperty 208 | Name="Hint" 209 | Visible=true 210 | Group="Text Field" 211 | InitialValue="" 212 | Type="String" 213 | EditorType="MultiLineEditor" 214 | #tag EndViewProperty 215 | #tag ViewProperty 216 | Name="Password" 217 | Visible=true 218 | Group="Text Field" 219 | InitialValue="" 220 | Type="Boolean" 221 | EditorType="" 222 | #tag EndViewProperty 223 | #tag ViewProperty 224 | Name="Name" 225 | Visible=true 226 | Group="ID" 227 | InitialValue="" 228 | Type="String" 229 | EditorType="" 230 | #tag EndViewProperty 231 | #tag ViewProperty 232 | Name="Index" 233 | Visible=true 234 | Group="ID" 235 | InitialValue="-2147483648" 236 | Type="Integer" 237 | EditorType="" 238 | #tag EndViewProperty 239 | #tag ViewProperty 240 | Name="Super" 241 | Visible=true 242 | Group="ID" 243 | InitialValue="" 244 | Type="String" 245 | EditorType="" 246 | #tag EndViewProperty 247 | #tag ViewProperty 248 | Name="Left" 249 | Visible=true 250 | Group="Position" 251 | InitialValue="0" 252 | Type="Integer" 253 | EditorType="" 254 | #tag EndViewProperty 255 | #tag ViewProperty 256 | Name="Top" 257 | Visible=true 258 | Group="Position" 259 | InitialValue="0" 260 | Type="Integer" 261 | EditorType="" 262 | #tag EndViewProperty 263 | #tag EndViewBehavior 264 | End Class 265 | #tag EndClass 266 | -------------------------------------------------------------------------------- /Screens/SystemImagesScreen.xojo_code: -------------------------------------------------------------------------------- 1 | #tag MobileScreen 2 | Begin TemplateScreenWithBackButton SystemImagesScreen 3 | Compatibility = "(TargetConsole and (Target32Bit or Target64Bit)) or (TargetWeb and (Target32Bit or Target64Bit)) or (TargetDesktop and (Target32Bit or Target64Bit)) or (TargetIOS and (Target64Bit)) or (TargetAndroid and (Target64Bit))" 4 | Device = 1 5 | HasBackButton = True 6 | HasNavigationBar= True 7 | Modal = False 8 | Orientation = 0 9 | SupportedOrientation= 0 10 | Title = "System Images" 11 | Begin AndroidMobileTable Table1 12 | AccessibilityHint= "" 13 | AccessibilityLabel= "" 14 | Enabled = True 15 | HasHeader = False 16 | Header = "" 17 | Height = 662 18 | InitialValue = "" 19 | LastAddedRowIndex= 0 20 | LastRowIndex = 0 21 | Left = 0 22 | LockBottom = True 23 | LockedInPosition= False 24 | LockLeft = True 25 | LockRight = True 26 | LockTop = True 27 | RowCount = 0 28 | Scope = 2 29 | ScrollPosition = 0 30 | SelectedRowIndex= 0 31 | SelectedRowText = "" 32 | SeparatorColor = &c00000000 33 | SeparatorThickness= 0 34 | Top = 38 35 | Visible = True 36 | Width = 360 37 | End 38 | Begin AppearanceLabel CountLabel 39 | AccessibilityHint= "" 40 | AccessibilityLabel= "" 41 | Alignment = 1 42 | Enabled = True 43 | Height = 24 44 | Left = 130 45 | LineBreakMode = 0 46 | LockBottom = False 47 | LockedInPosition= False 48 | LockLeft = True 49 | LockRight = True 50 | LockTop = True 51 | MaximumCharactersAllowed= 0 52 | Scope = 2 53 | Text = "Untitled" 54 | TextColor = &c00000000 55 | TextFont = "" 56 | TextSize = 0 57 | Top = 10 58 | Visible = True 59 | Width = 100 60 | End 61 | End 62 | #tag EndMobileScreen 63 | 64 | #tag ScreenCode 65 | #tag Event 66 | Sub Opening() 67 | LoadSystemImages 68 | End Sub 69 | #tag EndEvent 70 | 71 | 72 | #tag Method, Flags = &h21 73 | Private Sub LoadSystemImages() 74 | For Each sImageName As String In App.SystemImages 75 | 76 | Table1.AddRow(sImageName) 77 | Table1.RowTextColorAt(Table1.LastAddedRowIndex) = If(Color.IsDarkMode, Color.White, Color.Black) 78 | Table1.RowPictureAt(Table1.LastAddedRowIndex) = Picture.SystemImage(sImageName, 48, If(Color.IsDarkMode, Color.White, Color.Black)) 79 | 80 | Next 81 | 82 | CountLabel.Text = App.SystemImages.Count.ToString + " Images" 83 | End Sub 84 | #tag EndMethod 85 | 86 | 87 | #tag EndScreenCode 88 | 89 | #tag Events Table1 90 | #tag Event 91 | Sub Opening() 92 | Me.SetFastScrollAlwaysVisibleXC(True) 93 | Me.SetFastScrollEnabledXC(True) 94 | 95 | ' Working for API 29+ (Android 10+) 96 | If System.Version.MajorVersion >= 10 And Color.IsDarkMode Then 97 | 98 | Me.SetVerticalScrollbarThumbColor(&c73737D) 99 | 100 | End If 101 | 102 | Me.SeparatorColor = If(Color.IsDarkMode, &c21212100, &cCACACC00) 103 | End Sub 104 | #tag EndEvent 105 | #tag Event 106 | Sub SelectionChanged() 107 | Var cb As New Clipboard 108 | 109 | cb.Text = Me.SelectedRowText 110 | cb.Close 111 | 112 | MobilePopupMessage.Show("Copied Image Name '" + Me.SelectedRowText + "' to clipboard.") 113 | End Sub 114 | #tag EndEvent 115 | #tag EndEvents 116 | #tag Events CountLabel 117 | #tag Event 118 | Sub Opening() 119 | Me.TextFont = Font.SystemFont(14) 120 | End Sub 121 | #tag EndEvent 122 | #tag EndEvents 123 | #tag ViewBehavior 124 | #tag ViewProperty 125 | Name="ScaleFactor" 126 | Visible=false 127 | Group="Behavior" 128 | InitialValue="" 129 | Type="Double" 130 | EditorType="" 131 | #tag EndViewProperty 132 | #tag ViewProperty 133 | Name="ToolbarColor" 134 | Visible=false 135 | Group="Behavior" 136 | InitialValue="&c000000" 137 | Type="Color" 138 | EditorType="" 139 | #tag EndViewProperty 140 | #tag ViewProperty 141 | Name="TitleCentered" 142 | Visible=false 143 | Group="Behavior" 144 | InitialValue="" 145 | Type="Boolean" 146 | EditorType="" 147 | #tag EndViewProperty 148 | #tag ViewProperty 149 | Name="StatusBarColor" 150 | Visible=false 151 | Group="Behavior" 152 | InitialValue="Color.Clear" 153 | Type="Color" 154 | EditorType="" 155 | #tag EndViewProperty 156 | #tag ViewProperty 157 | Name="HasBackButton" 158 | Visible=true 159 | Group="Behavior" 160 | InitialValue="False" 161 | Type="Boolean" 162 | EditorType="" 163 | #tag EndViewProperty 164 | #tag ViewProperty 165 | Name="Name" 166 | Visible=true 167 | Group="ID" 168 | InitialValue="" 169 | Type="String" 170 | EditorType="" 171 | #tag EndViewProperty 172 | #tag ViewProperty 173 | Name="Index" 174 | Visible=true 175 | Group="ID" 176 | InitialValue="-2147483648" 177 | Type="Integer" 178 | EditorType="" 179 | #tag EndViewProperty 180 | #tag ViewProperty 181 | Name="Super" 182 | Visible=true 183 | Group="ID" 184 | InitialValue="" 185 | Type="String" 186 | EditorType="" 187 | #tag EndViewProperty 188 | #tag ViewProperty 189 | Name="Left" 190 | Visible=true 191 | Group="Position" 192 | InitialValue="0" 193 | Type="Integer" 194 | EditorType="" 195 | #tag EndViewProperty 196 | #tag ViewProperty 197 | Name="Top" 198 | Visible=true 199 | Group="Position" 200 | InitialValue="0" 201 | Type="Integer" 202 | EditorType="" 203 | #tag EndViewProperty 204 | #tag ViewProperty 205 | Name="ControlCount" 206 | Visible=false 207 | Group="Behavior" 208 | InitialValue="" 209 | Type="Integer" 210 | EditorType="" 211 | #tag EndViewProperty 212 | #tag ViewProperty 213 | Name="Title" 214 | Visible=true 215 | Group="Behavior" 216 | InitialValue="Untitled" 217 | Type="String" 218 | EditorType="MultiLineEditor" 219 | #tag EndViewProperty 220 | #tag ViewProperty 221 | Name="HasNavigationBar" 222 | Visible=true 223 | Group="Behavior" 224 | InitialValue="True" 225 | Type="Boolean" 226 | EditorType="" 227 | #tag EndViewProperty 228 | #tag ViewProperty 229 | Name="Modal" 230 | Visible=false 231 | Group="Behavior" 232 | InitialValue="" 233 | Type="Boolean" 234 | EditorType="" 235 | #tag EndViewProperty 236 | #tag ViewProperty 237 | Name="NavigationBarHeight" 238 | Visible=false 239 | Group="Behavior" 240 | InitialValue="" 241 | Type="Integer" 242 | EditorType="" 243 | #tag EndViewProperty 244 | #tag EndViewBehavior 245 | -------------------------------------------------------------------------------- /Screens/ScrollableAreaScreen.xojo_code: -------------------------------------------------------------------------------- 1 | #tag MobileScreen 2 | Begin TemplateScreenWithBackButton ScrollableAreaScreen 3 | Compatibility = "(TargetConsole and (Target32Bit or Target64Bit)) or (TargetWeb and (Target32Bit or Target64Bit)) or (TargetDesktop and (Target32Bit or Target64Bit)) or (TargetIOS and (Target64Bit)) or (TargetAndroid and (Target64Bit))" 4 | Device = 1 5 | HasBackButton = True 6 | HasNavigationBar= True 7 | Modal = False 8 | Orientation = 0 9 | Title = "Scrollable Areas" 10 | Begin MobileScrollableArea ScrollableArea1 11 | AccessibilityHint= "" 12 | AccessibilityLabel= "" 13 | Enabled = True 14 | Height = 506 15 | Left = 20 16 | LockBottom = True 17 | LockedInPosition= False 18 | LockLeft = True 19 | LockRight = True 20 | LockTop = True 21 | Scope = 2 22 | ScrollContent = 1135702015 23 | Top = 175 24 | Visible = True 25 | Width = 320 26 | End 27 | Begin AppearanceButton SmoothScrollByButton 28 | AccessibilityHint= "" 29 | AccessibilityLabel= "" 30 | Caption = "Smooth Scroll By" 31 | CaptionColor = &cFFFFFF00 32 | Enabled = True 33 | Height = 44 34 | Left = 80 35 | LockBottom = False 36 | LockedInPosition= False 37 | LockLeft = True 38 | LockRight = True 39 | LockTop = True 40 | Scope = 2 41 | Top = 19 42 | Visible = True 43 | Width = 200 44 | End 45 | Begin AppearanceButton SmoothScrollToButton 46 | AccessibilityHint= "" 47 | AccessibilityLabel= "" 48 | Caption = "Smooth Scroll To" 49 | CaptionColor = &cFFFFFF00 50 | Enabled = True 51 | Height = 44 52 | Left = 80 53 | LockBottom = False 54 | LockedInPosition= False 55 | LockLeft = True 56 | LockRight = True 57 | LockTop = True 58 | Scope = 2 59 | Top = 71 60 | Visible = True 61 | Width = 200 62 | End 63 | Begin AppearanceButton ShadowColorButton 64 | AccessibilityHint= "" 65 | AccessibilityLabel= "" 66 | Caption = "Green Shadow" 67 | CaptionColor = &cFFFFFF00 68 | Enabled = True 69 | Height = 44 70 | Left = 80 71 | LockBottom = False 72 | LockedInPosition= False 73 | LockLeft = True 74 | LockRight = True 75 | LockTop = True 76 | Scope = 2 77 | Top = 123 78 | Visible = True 79 | Width = 200 80 | End 81 | End 82 | #tag EndMobileScreen 83 | 84 | #tag ScreenCode 85 | #tag EndScreenCode 86 | 87 | #tag Events ScrollableArea1 88 | #tag Event 89 | Sub Opening() 90 | Me.SetElevationXC(12) 91 | Me.SetBackgroundColorXC(&cAC8E6800) 92 | 93 | ' Working for API 29+ (Android 10+) 94 | If System.Version.MajorVersion >= 10 Then 95 | 96 | Me.SetVerticalScrollbarThumbColor(&c008F0000) 97 | 98 | End If 99 | End Sub 100 | #tag EndEvent 101 | #tag EndEvents 102 | #tag Events SmoothScrollByButton 103 | #tag Event 104 | Sub Pressed() 105 | ScrollableArea1.SmoothScrollByXC(0, 50) 106 | End Sub 107 | #tag EndEvent 108 | #tag EndEvents 109 | #tag Events SmoothScrollToButton 110 | #tag Event 111 | Sub Pressed() 112 | ScrollableArea1.SmoothScrollToXC(0, 400) 113 | End Sub 114 | #tag EndEvent 115 | #tag EndEvents 116 | #tag Events ShadowColorButton 117 | #tag Event 118 | Sub Pressed() 119 | ' Working for API 28+ (Android 9+) 120 | If System.Version.MajorVersion >= 9 Then 121 | 122 | ScrollableArea1.SetOutlineSpotShadowColorXC(&c008F0000) 123 | 124 | End If 125 | End Sub 126 | #tag EndEvent 127 | #tag EndEvents 128 | #tag ViewBehavior 129 | #tag ViewProperty 130 | Name="ToolbarColor" 131 | Visible=false 132 | Group="Behavior" 133 | InitialValue="&c000000" 134 | Type="Color" 135 | EditorType="" 136 | #tag EndViewProperty 137 | #tag ViewProperty 138 | Name="TitleCentered" 139 | Visible=false 140 | Group="Behavior" 141 | InitialValue="" 142 | Type="Boolean" 143 | EditorType="" 144 | #tag EndViewProperty 145 | #tag ViewProperty 146 | Name="StatusBarColor" 147 | Visible=false 148 | Group="Behavior" 149 | InitialValue="Color.Clear" 150 | Type="Color" 151 | EditorType="" 152 | #tag EndViewProperty 153 | #tag ViewProperty 154 | Name="HasBackButton" 155 | Visible=true 156 | Group="Behavior" 157 | InitialValue="False" 158 | Type="Boolean" 159 | EditorType="" 160 | #tag EndViewProperty 161 | #tag ViewProperty 162 | Name="Name" 163 | Visible=true 164 | Group="ID" 165 | InitialValue="" 166 | Type="String" 167 | EditorType="" 168 | #tag EndViewProperty 169 | #tag ViewProperty 170 | Name="Index" 171 | Visible=true 172 | Group="ID" 173 | InitialValue="-2147483648" 174 | Type="Integer" 175 | EditorType="" 176 | #tag EndViewProperty 177 | #tag ViewProperty 178 | Name="Super" 179 | Visible=true 180 | Group="ID" 181 | InitialValue="" 182 | Type="String" 183 | EditorType="" 184 | #tag EndViewProperty 185 | #tag ViewProperty 186 | Name="Left" 187 | Visible=true 188 | Group="Position" 189 | InitialValue="0" 190 | Type="Integer" 191 | EditorType="" 192 | #tag EndViewProperty 193 | #tag ViewProperty 194 | Name="Top" 195 | Visible=true 196 | Group="Position" 197 | InitialValue="0" 198 | Type="Integer" 199 | EditorType="" 200 | #tag EndViewProperty 201 | #tag ViewProperty 202 | Name="ControlCount" 203 | Visible=false 204 | Group="Behavior" 205 | InitialValue="" 206 | Type="Integer" 207 | EditorType="" 208 | #tag EndViewProperty 209 | #tag ViewProperty 210 | Name="Title" 211 | Visible=true 212 | Group="Behavior" 213 | InitialValue="Untitled" 214 | Type="String" 215 | EditorType="MultiLineEditor" 216 | #tag EndViewProperty 217 | #tag ViewProperty 218 | Name="HasNavigationBar" 219 | Visible=true 220 | Group="Behavior" 221 | InitialValue="True" 222 | Type="Boolean" 223 | EditorType="" 224 | #tag EndViewProperty 225 | #tag ViewProperty 226 | Name="Modal" 227 | Visible=false 228 | Group="Behavior" 229 | InitialValue="" 230 | Type="Boolean" 231 | EditorType="" 232 | #tag EndViewProperty 233 | #tag ViewProperty 234 | Name="NavigationBarHeight" 235 | Visible=false 236 | Group="Behavior" 237 | InitialValue="" 238 | Type="Integer" 239 | EditorType="" 240 | #tag EndViewProperty 241 | #tag EndViewBehavior 242 | -------------------------------------------------------------------------------- /Screens/AppScreen.xojo_code: -------------------------------------------------------------------------------- 1 | #tag MobileScreen 2 | Begin TemplateScreenWithBackButton AppScreen 3 | Compatibility = "(TargetConsole and (Target32Bit or Target64Bit)) or (TargetWeb and (Target32Bit or Target64Bit)) or (TargetDesktop and (Target32Bit or Target64Bit)) or (TargetIOS and (Target64Bit)) or (TargetAndroid and (Target64Bit))" 4 | Device = 1 5 | HasBackButton = True 6 | HasNavigationBar= True 7 | Modal = False 8 | Orientation = 0 9 | Title = "Application" 10 | Begin AndroidMobileTable Table1 11 | AccessibilityHint= "" 12 | AccessibilityLabel= "" 13 | Enabled = True 14 | HasHeader = False 15 | Header = "" 16 | Height = 700 17 | InitialValue = "" 18 | LastAddedRowIndex= 0 19 | LastRowIndex = 0 20 | Left = 0 21 | LockBottom = True 22 | LockedInPosition= False 23 | LockLeft = True 24 | LockRight = True 25 | LockTop = True 26 | RowCount = 0 27 | Scope = 2 28 | ScrollPosition = 0 29 | SelectedRowIndex= 0 30 | SelectedRowText = "" 31 | SeparatorColor = &c00000000 32 | SeparatorThickness= 0 33 | Top = 0 34 | Visible = True 35 | Width = 360 36 | End 37 | End 38 | #tag EndMobileScreen 39 | 40 | #tag ScreenCode 41 | #tag Method, Flags = &h21 42 | Private Sub AddRow(value As String, detail As String = "") 43 | Table1.AddRow(value, detail) 44 | Table1.RowDetailColorAt(Table1.LastAddedRowIndex) = Color.TextColor 45 | Table1.RowTextColorAt(Table1.LastAddedRowIndex) = If(Color.IsDarkMode, &cF1F0F7, Color.PrimaryThemeColor) 46 | End Sub 47 | #tag EndMethod 48 | 49 | 50 | #tag EndScreenCode 51 | 52 | #tag Events Table1 53 | #tag Event 54 | Sub Opening() 55 | ' Working for API 29+ (Android 10+) 56 | If System.Version.MajorVersion >= 10 And Color.IsDarkMode Then 57 | 58 | Me.SetVerticalScrollbarThumbColor(&c73737D) 59 | 60 | End If 61 | 62 | Me.RowDetailFont = Font.SystemFont(13.5) 63 | Me.RowTextFont = Font.BoldSystemFont 64 | Me.SeparatorColor = If(Color.IsDarkMode, &c21212100, &cCACACC00) 65 | 66 | AddRow("Scale Factor", ScaleFactorXC.ToString) 67 | 68 | AddRow("Font Scale Factor", FontScaleXC.ToString) 69 | 70 | ' Working for API 30+ (Android 11+) 71 | If System.Version.MajorVersion >= 11 Then 72 | 73 | AddRow("Night Mode Active", IsNightModeActiveXC.ToString) 74 | 75 | End If 76 | 77 | AddRow("Class Name", App.ClassNameXC) 78 | 79 | AddRow("Data Directory", "📂" + App.DataDirXC) 80 | 81 | AddRow("Device Protected Data Directory", "📂" + App.DeviceProtectedDataDirXC) 82 | 83 | AddRow("Cache Directory", "📂" + App.GetCacheDirXC) 84 | 85 | AddRow("Code Cache Directory", "📂" + App.GetCodeCacheDirXC) 86 | 87 | AddRow("Data Directory", "📂" + App.GetDataDirXC) 88 | 89 | AddRow("External Cache Directory", "📂" + App.GetExternalCacheDirXC) 90 | 91 | AddRow("Files Directory", "📂" + App.GetFilesDirXC) 92 | 93 | AddRow("isScreenHdr", App.IsScreenHdrXC.ToString) 94 | 95 | AddRow("isScreenRound", App.IsScreenRoundXC.ToString) 96 | 97 | ' Working for API 27+ (Android 8.1+) 98 | If System.Version.MajorVersion >= 8 And System.Version.MinorVersion >= 1 Then 99 | 100 | AddRow("isVirtualPreload", App.IsVirtualPreloadXC.ToString) 101 | 102 | End If 103 | 104 | AddRow("Minimum SDK Version", App.MinSdkVersionXC.ToString) 105 | 106 | AddRow("Target SDK Version", App.TargetSdkVersionXC.ToString) 107 | 108 | AddRow("Native Library Directory", "📂" + App.NativeLibraryDirXC) 109 | 110 | AddRow("Process Name", App.ProcessNameXC) 111 | 112 | AddRow("Public Source Directory", "📂" + App.PublicSourceDirXC) 113 | 114 | AddRow("Source Directory", "📂" + App.SourceDirXC) 115 | 116 | AddRow("Task Affinity", App.TaskAffinityXC) 117 | 118 | AddRow("UID", App.UidXC.ToString) 119 | End Sub 120 | #tag EndEvent 121 | #tag EndEvents 122 | #tag ViewBehavior 123 | #tag ViewProperty 124 | Name="ToolbarColor" 125 | Visible=false 126 | Group="Behavior" 127 | InitialValue="&c000000" 128 | Type="Color" 129 | EditorType="" 130 | #tag EndViewProperty 131 | #tag ViewProperty 132 | Name="TitleCentered" 133 | Visible=false 134 | Group="Behavior" 135 | InitialValue="" 136 | Type="Boolean" 137 | EditorType="" 138 | #tag EndViewProperty 139 | #tag ViewProperty 140 | Name="StatusBarColor" 141 | Visible=false 142 | Group="Behavior" 143 | InitialValue="Color.Clear" 144 | Type="Color" 145 | EditorType="" 146 | #tag EndViewProperty 147 | #tag ViewProperty 148 | Name="Name" 149 | Visible=true 150 | Group="ID" 151 | InitialValue="" 152 | Type="String" 153 | EditorType="" 154 | #tag EndViewProperty 155 | #tag ViewProperty 156 | Name="Index" 157 | Visible=true 158 | Group="ID" 159 | InitialValue="-2147483648" 160 | Type="Integer" 161 | EditorType="" 162 | #tag EndViewProperty 163 | #tag ViewProperty 164 | Name="Super" 165 | Visible=true 166 | Group="ID" 167 | InitialValue="" 168 | Type="String" 169 | EditorType="" 170 | #tag EndViewProperty 171 | #tag ViewProperty 172 | Name="Left" 173 | Visible=true 174 | Group="Position" 175 | InitialValue="0" 176 | Type="Integer" 177 | EditorType="" 178 | #tag EndViewProperty 179 | #tag ViewProperty 180 | Name="Top" 181 | Visible=true 182 | Group="Position" 183 | InitialValue="0" 184 | Type="Integer" 185 | EditorType="" 186 | #tag EndViewProperty 187 | #tag ViewProperty 188 | Name="ControlCount" 189 | Visible=false 190 | Group="Behavior" 191 | InitialValue="" 192 | Type="Integer" 193 | EditorType="" 194 | #tag EndViewProperty 195 | #tag ViewProperty 196 | Name="Title" 197 | Visible=true 198 | Group="Behavior" 199 | InitialValue="Untitled" 200 | Type="String" 201 | EditorType="MultiLineEditor" 202 | #tag EndViewProperty 203 | #tag ViewProperty 204 | Name="HasNavigationBar" 205 | Visible=true 206 | Group="Behavior" 207 | InitialValue="True" 208 | Type="Boolean" 209 | EditorType="" 210 | #tag EndViewProperty 211 | #tag ViewProperty 212 | Name="Modal" 213 | Visible=true 214 | Group="Behavior" 215 | InitialValue="False" 216 | Type="Boolean" 217 | EditorType="" 218 | #tag EndViewProperty 219 | #tag ViewProperty 220 | Name="NavigationBarHeight" 221 | Visible=false 222 | Group="Behavior" 223 | InitialValue="" 224 | Type="Integer" 225 | EditorType="" 226 | #tag EndViewProperty 227 | #tag ViewProperty 228 | Name="HasBackButton" 229 | Visible=true 230 | Group="Behavior" 231 | InitialValue="False" 232 | Type="Boolean" 233 | EditorType="" 234 | #tag EndViewProperty 235 | #tag EndViewBehavior 236 | -------------------------------------------------------------------------------- /AndroidDesignExtensions/PopupMenuXC.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Module 2 | Protected Module PopupMenuXC 3 | #tag CompatibilityFlags = ( TargetAndroid and ( Target64Bit ) ) 4 | #tag Method, Flags = &h0, Description = 4765742074686520636F6E6669677572656420686F72697A6F6E74616C206F666673657420696E20706978656C7320666F7220746865207370696E6E6572277320706F7075702077696E646F77206F662063686F696365732E204F6E6C792076616C696420696E204D4F44455F44524F50444F574E3B206F74686572206D6F6465732077696C6C2072657475726E20302E 5 | Function GetDropDownHorizontalOffsetXC(Extends ctrl As MobilePopupMenu) As Integer 6 | #Pragma Unused ctrl 7 | 8 | #If TargetAndroid 9 | 10 | Declare Function getDropDownHorizontalOffset Lib kLibMobilePopupMenu As Int32 11 | Return getDropDownHorizontalOffset 12 | 13 | #EndIf 14 | End Function 15 | #tag EndMethod 16 | 17 | #tag Method, Flags = &h0, Description = 4765742074686520636F6E6669677572656420766572746963616C206F666673657420696E20706978656C7320666F7220746865207370696E6E6572277320706F7075702077696E646F77206F662063686F696365732E204F6E6C792076616C696420696E204D4F44455F44524F50444F574E3B206F74686572206D6F6465732077696C6C2072657475726E20302E 18 | Function GetDropDownVerticalOffsetXC(Extends ctrl As MobilePopupMenu) As Integer 19 | #Pragma Unused ctrl 20 | 21 | #If TargetAndroid 22 | 23 | Declare Function getDropDownVerticalOffset Lib kLibMobilePopupMenu As Int32 24 | Return getDropDownVerticalOffset 25 | 26 | #EndIf 27 | End Function 28 | #tag EndMethod 29 | 30 | #tag Method, Flags = &h0, Description = 4765742074686520636F6E66696775726564207769647468206F6620746865207370696E6E6572277320706F7075702077696E646F77206F662063686F6963657320696E20706978656C732E205468652072657475726E65642076616C7565206D617920616C736F206265205669657747726F75702E4C61796F7574506172616D732E4D415443485F504152454E54206D65616E696E672074686520706F7075702077696E646F772077696C6C206D6174636820746865207769647468206F6620746865205370696E6E657220697473656C662C206F72205669657747726F75702E4C61796F7574506172616D732E575241505F434F4E54454E5420746F207772617020746F20746865206D656173757265642073697A65206F6620636F6E7461696E65642064726F70646F776E206C697374206974656D732E 31 | Function GetDropDownWidthXC(Extends ctrl As MobilePopupMenu) As Integer 32 | #Pragma Unused ctrl 33 | 34 | #If TargetAndroid 35 | 36 | Declare Function getDropDownWidth Lib kLibMobilePopupMenu As Int32 37 | Return getDropDownWidth 38 | 39 | #EndIf 40 | End Function 41 | #tag EndMethod 42 | 43 | #tag Method, Flags = &h0, Description = 43616C6C207468697320766965772773204F6E436C69636B4C697374656E65722C20696620697420697320646566696E65642E20506572666F726D7320616C6C206E6F726D616C20616374696F6E73206173736F636961746564207769746820636C69636B696E673A207265706F7274696E67206163636573736962696C697479206576656E742C20706C6179696E67206120736F756E642C206574632E 44 | Function PerformClickXC(Extends ctrl As MobilePopupMenu) As Boolean 45 | #Pragma Unused ctrl 46 | 47 | #If TargetAndroid 48 | 49 | Declare Function performClick Lib kLibMobilePopupMenu As Boolean 50 | Return performClick 51 | 52 | #EndIf 53 | End Function 54 | #tag EndMethod 55 | 56 | #tag Method, Flags = &h0, Description = 536574206120686F72697A6F6E74616C206F666673657420696E20706978656C7320666F7220746865207370696E6E6572277320706F7075702077696E646F77206F662063686F696365732E204F6E6C792076616C696420696E204D4F44455F44524F50444F574E3B2074686973206D6574686F642069732061206E6F2D6F7020696E206F74686572206D6F6465732E 57 | Sub SetDropDownHorizontalOffsetXC(Extends ctrl As MobilePopupMenu, pixels As Integer) 58 | #Pragma Unused ctrl 59 | 60 | #If TargetAndroid 61 | 62 | Declare Sub setDropDownHorizontalOffset Lib kLibMobilePopupMenu (myPixels As Int32) 63 | setDropDownHorizontalOffset(pixels) 64 | 65 | #Else 66 | 67 | #Pragma Unused pixels 68 | 69 | #EndIf 70 | End Sub 71 | #tag EndMethod 72 | 73 | #tag Method, Flags = &h0, Description = 536574206120766572746963616C206F666673657420696E20706978656C7320666F7220746865207370696E6E6572277320706F7075702077696E646F77206F662063686F696365732E204F6E6C792076616C696420696E204D4F44455F44524F50444F574E3B2074686973206D6574686F642069732061206E6F2D6F7020696E206F74686572206D6F6465732E 74 | Sub SetDropDownVerticalOffsetXC(Extends ctrl As MobilePopupMenu, pixels As Integer) 75 | #Pragma Unused ctrl 76 | 77 | #If TargetAndroid 78 | 79 | Declare Sub setDropDownVerticalOffset Lib kLibMobilePopupMenu (myPixels As Int32) 80 | setDropDownVerticalOffset(pixels) 81 | 82 | #Else 83 | 84 | #Pragma Unused pixels 85 | 86 | #EndIf 87 | End Sub 88 | #tag EndMethod 89 | 90 | #tag Method, Flags = &h0, Description = 53657420746865207769647468206F6620746865207370696E6E6572277320706F7075702077696E646F77206F662063686F6963657320696E20706978656C732E20546869732076616C7565206D617920616C736F2062652073657420746F205669657747726F75702E4C61796F7574506172616D732E4D415443485F504152454E5420746F206D6174636820746865207769647468206F6620746865205370696E6E657220697473656C662C206F72205669657747726F75702E4C61796F7574506172616D732E575241505F434F4E54454E5420746F207772617020746F20746865206D656173757265642073697A65206F6620636F6E7461696E65642064726F70646F776E206C697374206974656D732E0A0A4F6E6C792076616C696420696E204D4F44455F44524F50444F574E3B2074686973206D6574686F642069732061206E6F2D6F7020696E206F74686572206D6F6465732E 91 | Sub SetDropDownWidthXC(Extends ctrl As MobilePopupMenu, pixels As Integer) 92 | #Pragma Unused ctrl 93 | 94 | #If TargetAndroid 95 | 96 | Declare Sub setDropDownWidth Lib kLibMobilePopupMenu (myPixels As Int32) 97 | setDropDownWidth(pixels) 98 | 99 | #Else 100 | 101 | #Pragma Unused pixels 102 | 103 | #EndIf 104 | End Sub 105 | #tag EndMethod 106 | 107 | 108 | #tag Constant, Name = kLibMobilePopupMenu, Type = String, Dynamic = False, Default = \"Object:ctrl:MobilePopupMenu", Scope = Private 109 | #tag EndConstant 110 | 111 | 112 | #tag ViewBehavior 113 | #tag ViewProperty 114 | Name="Name" 115 | Visible=true 116 | Group="ID" 117 | InitialValue="" 118 | Type="String" 119 | EditorType="" 120 | #tag EndViewProperty 121 | #tag ViewProperty 122 | Name="Index" 123 | Visible=true 124 | Group="ID" 125 | InitialValue="-2147483648" 126 | Type="Integer" 127 | EditorType="" 128 | #tag EndViewProperty 129 | #tag ViewProperty 130 | Name="Super" 131 | Visible=true 132 | Group="ID" 133 | InitialValue="" 134 | Type="String" 135 | EditorType="" 136 | #tag EndViewProperty 137 | #tag ViewProperty 138 | Name="Left" 139 | Visible=true 140 | Group="Position" 141 | InitialValue="0" 142 | Type="Integer" 143 | EditorType="" 144 | #tag EndViewProperty 145 | #tag ViewProperty 146 | Name="Top" 147 | Visible=true 148 | Group="Position" 149 | InitialValue="0" 150 | Type="Integer" 151 | EditorType="" 152 | #tag EndViewProperty 153 | #tag EndViewBehavior 154 | End Module 155 | #tag EndModule 156 | -------------------------------------------------------------------------------- /AndroidDesignExtensions/MoviePlayerXC.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Module 2 | Protected Module MoviePlayerXC 3 | #tag CompatibilityFlags = ( TargetAndroid and ( Target64Bit ) ) 4 | #tag Method, Flags = &h0 5 | Function CanPauseXC(Extends ctrl As MobileMoviePlayer) As Boolean 6 | #Pragma Unused ctrl 7 | 8 | #If TargetAndroid 9 | 10 | Declare Function canPause Lib kLibMobileMoviePlayer As Boolean 11 | Return canPause 12 | 13 | #EndIf 14 | End Function 15 | #tag EndMethod 16 | 17 | #tag Method, Flags = &h0 18 | Function CanSeekBackwardXC(Extends ctrl As MobileMoviePlayer) As Boolean 19 | #Pragma Unused ctrl 20 | 21 | #If TargetAndroid 22 | 23 | Declare Function canSeekBackward Lib kLibMobileMoviePlayer As Boolean 24 | Return canSeekBackward 25 | 26 | #EndIf 27 | End Function 28 | #tag EndMethod 29 | 30 | #tag Method, Flags = &h0 31 | Function CanSeekForwardXC(Extends ctrl As MobileMoviePlayer) As Boolean 32 | #Pragma Unused ctrl 33 | 34 | #If TargetAndroid 35 | 36 | Declare Function canSeekForward Lib kLibMobileMoviePlayer As Boolean 37 | Return canSeekForward 38 | 39 | #EndIf 40 | End Function 41 | #tag EndMethod 42 | 43 | #tag Method, Flags = &h0 44 | Function GetBufferPercentageXC(Extends ctrl As MobileMoviePlayer) As Integer 45 | #Pragma Unused ctrl 46 | 47 | #If TargetAndroid 48 | 49 | Declare Function getBufferPercentage Lib kLibMobileMoviePlayer As Int32 50 | Return getBufferPercentage 51 | 52 | #EndIf 53 | End Function 54 | #tag EndMethod 55 | 56 | #tag Method, Flags = &h0 57 | Function GetCurrentPositionXC(Extends ctrl As MobileMoviePlayer) As Integer 58 | #Pragma Unused ctrl 59 | 60 | #If TargetAndroid 61 | 62 | Declare Function getCurrentPosition Lib kLibMobileMoviePlayer As Int32 63 | Return getCurrentPosition 64 | 65 | #EndIf 66 | End Function 67 | #tag EndMethod 68 | 69 | #tag Method, Flags = &h0 70 | Function IsPlayingXC(Extends ctrl As MobileMoviePlayer) As Boolean 71 | #Pragma Unused ctrl 72 | 73 | #If TargetAndroid 74 | 75 | Declare Function isPlaying Lib kLibMobileMoviePlayer As Boolean 76 | Return isPlaying 77 | 78 | #EndIf 79 | End Function 80 | #tag EndMethod 81 | 82 | #tag Method, Flags = &h0 83 | Function ResolveAdjustedSizeXC(Extends ctrl As MobileMoviePlayer, desiredSize As Integer, measureSpec As Integer) As Integer 84 | #Pragma Unused ctrl 85 | 86 | #If TargetAndroid 87 | 88 | Declare Function resolveAdjustedSize Lib kLibMobileMoviePlayer (myDesiredSize As Int32, myMeasureSpec As Int32) As Int32 89 | Return resolveAdjustedSize(desiredSize, measureSpec) 90 | 91 | #Else 92 | 93 | #Pragma Unused desiredSize 94 | #Pragma Unused measureSpec 95 | 96 | #EndIf 97 | End Function 98 | #tag EndMethod 99 | 100 | #tag Method, Flags = &h0 101 | Sub ResumeXC(Extends ctrl As MobileMoviePlayer) 102 | #Pragma Unused ctrl 103 | 104 | #If TargetAndroid 105 | 106 | Declare Sub resume Lib kLibMobileMoviePlayer 107 | resume 108 | 109 | #EndIf 110 | End Sub 111 | #tag EndMethod 112 | 113 | #tag Method, Flags = &h0 114 | Sub SeekToXC(Extends ctrl As MobileMoviePlayer, msec As Integer) 115 | #Pragma Unused ctrl 116 | 117 | #If TargetAndroid 118 | 119 | Declare Sub seekTo Lib kLibMobileMoviePlayer (myMsec As Int32) 120 | seekTo(msec) 121 | 122 | #Else 123 | 124 | #Pragma Unused msec 125 | 126 | #EndIf 127 | End Sub 128 | #tag EndMethod 129 | 130 | #tag Method, Flags = &h0, Description = 536574732077686963682074797065206F6620617564696F20666F6375732077696C6C2062652072657175657374656420647572696E672074686520706C61796261636B2C206F7220636F6E6669677572657320706C61796261636B20746F206E6F74207265717565737420617564696F20666F6375732E2056616C69642076616C75657320666F7220666F6375732072657175657374732061726520417564696F4D616E6167657223415544494F464F4355535F4741494E2C20417564696F4D616E6167657223415544494F464F4355535F4741494E5F5452414E5349454E542C20417564696F4D616E6167657223415544494F464F4355535F4741494E5F5452414E5349454E545F4D41595F4455434B2C20616E6420417564696F4D616E6167657223415544494F464F4355535F4741494E5F5452414E5349454E545F4558434C55534956452E204F722075736520417564696F4D616E6167657223415544494F464F4355535F4E4F4E4520746F2065787072657373207468617420617564696F20666F6375732073686F756C64206E6F7420626520726571756573746564207768656E20706C61796261636B207374617274732E20596F752063616E20666F7220696E7374616E6365207573652074686973207768656E20706C6179696E6720612073696C656E7420616E696D6174696F6E207468726F756768207468697320636C6173732C20616E6420796F7520646F6E27742077616E7420746F20616666656374206F7468657220617564696F206170706C69636174696F6E7320706C6179696E6720696E20746865206261636B67726F756E642E 131 | Sub SetAudioFocusRequestXC(Extends ctrl As MobileMoviePlayer, focusGain As Integer) 132 | #Pragma Unused ctrl 133 | 134 | #If TargetAndroid 135 | 136 | Declare Sub setAudioFocusRequest Lib kLibMobileMoviePlayer (myFocusGain As Int32) 137 | setAudioFocusRequest(focusGain) 138 | 139 | #Else 140 | 141 | #Pragma Unused focusGain 142 | 143 | #EndIf 144 | End Sub 145 | #tag EndMethod 146 | 147 | #tag Method, Flags = &h0 148 | Sub StopPlaybackXC(Extends ctrl As MobileMoviePlayer) 149 | #Pragma Unused ctrl 150 | 151 | #If TargetAndroid 152 | 153 | Declare Sub stopPlayback Lib kLibMobileMoviePlayer 154 | stopPlayback 155 | 156 | #EndIf 157 | End Sub 158 | #tag EndMethod 159 | 160 | #tag Method, Flags = &h0 161 | Sub SuspendXC(Extends ctrl As MobileMoviePlayer) 162 | #Pragma Unused ctrl 163 | 164 | #If TargetAndroid 165 | 166 | Declare Sub suspend Lib kLibMobileMoviePlayer 167 | suspend 168 | 169 | #EndIf 170 | End Sub 171 | #tag EndMethod 172 | 173 | 174 | #tag Constant, Name = kLibMobileMoviePlayer, Type = String, Dynamic = False, Default = \"Object:ctrl:MobileMoviePlayer", Scope = Private 175 | #tag EndConstant 176 | 177 | 178 | #tag ViewBehavior 179 | #tag ViewProperty 180 | Name="Name" 181 | Visible=true 182 | Group="ID" 183 | InitialValue="" 184 | Type="String" 185 | EditorType="" 186 | #tag EndViewProperty 187 | #tag ViewProperty 188 | Name="Index" 189 | Visible=true 190 | Group="ID" 191 | InitialValue="-2147483648" 192 | Type="Integer" 193 | EditorType="" 194 | #tag EndViewProperty 195 | #tag ViewProperty 196 | Name="Super" 197 | Visible=true 198 | Group="ID" 199 | InitialValue="" 200 | Type="String" 201 | EditorType="" 202 | #tag EndViewProperty 203 | #tag ViewProperty 204 | Name="Left" 205 | Visible=true 206 | Group="Position" 207 | InitialValue="0" 208 | Type="Integer" 209 | EditorType="" 210 | #tag EndViewProperty 211 | #tag ViewProperty 212 | Name="Top" 213 | Visible=true 214 | Group="Position" 215 | InitialValue="0" 216 | Type="Integer" 217 | EditorType="" 218 | #tag EndViewProperty 219 | #tag EndViewBehavior 220 | End Module 221 | #tag EndModule 222 | -------------------------------------------------------------------------------- /Containers/TabPanelContainer.xojo_code: -------------------------------------------------------------------------------- 1 | #tag MobileContainer 2 | Begin MobileContainer TabPanelContainer 3 | AccessibilityHint= "" 4 | AccessibilityLabel= "" 5 | Compatibility = "(TargetConsole and (Target32Bit or Target64Bit)) or (TargetWeb and (Target32Bit or Target64Bit)) or (TargetDesktop and (Target32Bit or Target64Bit)) or (TargetIOS and (Target64Bit)) or (TargetAndroid and (Target64Bit))" 6 | Enabled = True 7 | Height = 400 8 | LockBottom = False 9 | LockLeft = True 10 | LockRight = True 11 | LockTop = True 12 | Orientation = 0 13 | Visible = True 14 | Width = 360 15 | Begin MobileTabPanel BackgroundColorPanel 16 | AccessibilityHint= "" 17 | AccessibilityLabel= "" 18 | Enabled = True 19 | Height = 140 20 | LastAddedPanelIndex= 0 21 | LayoutTabIndex = 0 22 | Left = 20 23 | LockBottom = False 24 | LockedInPosition= False 25 | LockLeft = True 26 | LockRight = True 27 | LockTop = True 28 | PanelCount = 0 29 | Scope = 2 30 | SelectedPanelIndex= 0 31 | Tabs = "Background\n0\n1309796351\rColor\n0\n91045887" 32 | Top = 30 33 | Visible = True 34 | Width = 320 35 | End 36 | Begin MobileTabPanel TabModePanel 37 | AccessibilityHint= "" 38 | AccessibilityLabel= "" 39 | Enabled = True 40 | Height = 140 41 | LastAddedPanelIndex= 0 42 | LayoutTabIndex = 0 43 | Left = 20 44 | LockBottom = False 45 | LockedInPosition= False 46 | LockLeft = True 47 | LockRight = True 48 | LockTop = True 49 | PanelCount = 0 50 | Scope = 2 51 | SelectedPanelIndex= 0 52 | Tabs = "Tab 1\n0\n1309796351\rTab 2\n0\n91045887\rTab 3\n0\n\rTab 4\n0\n\rTab 5\n0\n\rTab 6\n0\n\rTab 7\n0\n\rTab 8\n0\n" 53 | Top = 195 54 | Visible = True 55 | Width = 320 56 | End 57 | Begin MobileCanvas FixBottomPaddingCanvas 58 | AccessibilityHint= "" 59 | AccessibilityLabel= "" 60 | Enabled = True 61 | Height = 22 62 | Left = 0 63 | LockBottom = False 64 | LockedInPosition= False 65 | LockLeft = True 66 | LockRight = True 67 | LockTop = True 68 | Scope = 2 69 | Top = 348 70 | Visible = True 71 | Width = 360 72 | End 73 | End 74 | #tag EndMobileContainer 75 | 76 | #tag ScreenCode 77 | #tag EndScreenCode 78 | 79 | #tag Events BackgroundColorPanel 80 | #tag Event 81 | Sub Opening() 82 | Me.IconAt(0) = Picture.SystemImage("format_paint", 18, Color.AccentThemeColor) 83 | Me.IconAt(1) = Picture.SystemImage("format_color_fill", 18, Color.AccentThemeColor) 84 | 85 | Me.SetBackgroundColorXC(If(Color.IsDarkMode, &c46464600, &c76D6FF00)) 86 | Me.SetInlineLabelXC(False) 87 | Me.SetTabTextColorsXC(Color.White, Color.AccentThemeColor) 88 | Me.SetSelectedTabIndicatorColorXC(If(Color.IsDarkMode, Color.Red, &c94175100)) 89 | Me.SetSelectedTabIndicatorGravityXC(TabIndicatorGravityXC.Top) 90 | End Sub 91 | #tag EndEvent 92 | #tag EndEvents 93 | #tag Events TabModePanel 94 | #tag Event 95 | Sub Opening() 96 | Me.SetTabTextColorsXC(Color.LightGray, If(Color.IsDarkMode, Color.Orange, Color.Black)) 97 | Me.SetTabModeXC(TabModesXC.Scrollable) 98 | Me.SetTabBackgroundColorAtXC(1, If(Color.IsDarkMode, Color.Yellow, &cFF7E7900)) 99 | Me.SetUnboundedRippleXC(True) 100 | 101 | Me.SetBadgeTextAtXC(0, "Xojo") 102 | 103 | Me.SetBadgeBackgroundColorAtXC(1, &c4F8F0000) 104 | Me.SetBadgeNumberAtXC(1, 12) 105 | Me.SetBadgeTextColorAtXC(1, &c73FA7900) 106 | 107 | Me.SetBadgeAlphaAtXC(3, 125) 108 | Me.SetBadgeNumberAtXC(3, 4) 109 | Me.SetBadgeGravityAtXC(3, BadgeGravityXC.TopStart) 110 | End Sub 111 | #tag EndEvent 112 | #tag EndEvents 113 | #tag ViewBehavior 114 | #tag ViewProperty 115 | Name="Name" 116 | Visible=true 117 | Group="ID" 118 | InitialValue="" 119 | Type="String" 120 | EditorType="" 121 | #tag EndViewProperty 122 | #tag ViewProperty 123 | Name="Index" 124 | Visible=true 125 | Group="ID" 126 | InitialValue="-2147483648" 127 | Type="Integer" 128 | EditorType="" 129 | #tag EndViewProperty 130 | #tag ViewProperty 131 | Name="Super" 132 | Visible=true 133 | Group="ID" 134 | InitialValue="" 135 | Type="String" 136 | EditorType="" 137 | #tag EndViewProperty 138 | #tag ViewProperty 139 | Name="Left" 140 | Visible=true 141 | Group="Position" 142 | InitialValue="0" 143 | Type="Integer" 144 | EditorType="" 145 | #tag EndViewProperty 146 | #tag ViewProperty 147 | Name="Top" 148 | Visible=true 149 | Group="Position" 150 | InitialValue="0" 151 | Type="Integer" 152 | EditorType="" 153 | #tag EndViewProperty 154 | #tag ViewProperty 155 | Name="Height" 156 | Visible=true 157 | Group="Position" 158 | InitialValue="400" 159 | Type="Integer" 160 | EditorType="" 161 | #tag EndViewProperty 162 | #tag ViewProperty 163 | Name="Width" 164 | Visible=true 165 | Group="Position" 166 | InitialValue="360" 167 | Type="Integer" 168 | EditorType="" 169 | #tag EndViewProperty 170 | #tag ViewProperty 171 | Name="LockLeft" 172 | Visible=true 173 | Group="Behavior" 174 | InitialValue="" 175 | Type="Boolean" 176 | EditorType="" 177 | #tag EndViewProperty 178 | #tag ViewProperty 179 | Name="LockRight" 180 | Visible=true 181 | Group="Behavior" 182 | InitialValue="" 183 | Type="Boolean" 184 | EditorType="" 185 | #tag EndViewProperty 186 | #tag ViewProperty 187 | Name="LockTop" 188 | Visible=true 189 | Group="Behavior" 190 | InitialValue="" 191 | Type="Boolean" 192 | EditorType="" 193 | #tag EndViewProperty 194 | #tag ViewProperty 195 | Name="LockBottom" 196 | Visible=true 197 | Group="Behavior" 198 | InitialValue="" 199 | Type="Boolean" 200 | EditorType="" 201 | #tag EndViewProperty 202 | #tag ViewProperty 203 | Name="Enabled" 204 | Visible=true 205 | Group="UI Control" 206 | InitialValue="True" 207 | Type="Boolean" 208 | EditorType="" 209 | #tag EndViewProperty 210 | #tag ViewProperty 211 | Name="Visible" 212 | Visible=true 213 | Group="UI Control" 214 | InitialValue="True" 215 | Type="Boolean" 216 | EditorType="" 217 | #tag EndViewProperty 218 | #tag ViewProperty 219 | Name="AccessibilityHint" 220 | Visible=true 221 | Group="UI Control" 222 | InitialValue="" 223 | Type="String" 224 | EditorType="MultiLineEditor" 225 | #tag EndViewProperty 226 | #tag ViewProperty 227 | Name="AccessibilityLabel" 228 | Visible=true 229 | Group="UI Control" 230 | InitialValue="" 231 | Type="String" 232 | EditorType="MultiLineEditor" 233 | #tag EndViewProperty 234 | #tag ViewProperty 235 | Name="ControlCount" 236 | Visible=false 237 | Group="Behavior" 238 | InitialValue="" 239 | Type="Integer" 240 | EditorType="" 241 | #tag EndViewProperty 242 | #tag EndViewBehavior 243 | -------------------------------------------------------------------------------- /AndroidDesignExtensions/MessageBoxXC.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Module 2 | Protected Module MessageBoxXC 3 | #tag Method, Flags = &h0 4 | Sub SetBackgroundColorXC(Extends ctrl As MobileMessageBox, c As Color) 5 | #Pragma Unused ctrl 6 | 7 | #If TargetAndroid 8 | 9 | Declare Function setBackground Lib "Kotlin" Alias _ 10 | "(ref as com.google.android.material.dialog.MaterialAlertDialogBuilder).setBackground(android.graphics.drawable.ColorDrawable(backgroundcolor.toInt()))" _ 11 | (ref As Ptr, backgroundColor As Int32) As Ptr 12 | Call setBackground(ctrl.Handle, c.ToInteger) 13 | 14 | #Else 15 | 16 | #Pragma Unused c 17 | 18 | #EndIf 19 | End Sub 20 | #tag EndMethod 21 | 22 | #tag Method, Flags = &h0 23 | Sub SetBackgroundInsetBottomXC(Extends ctrl As MobileMessageBox, backgroundInsetBottom As Integer) 24 | #Pragma Unused ctrl 25 | 26 | #If TargetAndroid 27 | 28 | Declare Function setBackgroundInsetBottom Lib "Kotlin" Alias _ 29 | "(ref as com.google.android.material.dialog.MaterialAlertDialogBuilder).setBackgroundInsetBottom(backgroundinsetbottom.toInt())" _ 30 | (ref As Ptr, backgroundInsetBottom As Int32) As Ptr 31 | Call setBackgroundInsetBottom(ctrl.Handle, backgroundInsetBottom) 32 | 33 | #Else 34 | 35 | #Pragma Unused backgroundInsetBottom 36 | 37 | #EndIf 38 | End Sub 39 | #tag EndMethod 40 | 41 | #tag Method, Flags = &h0 42 | Sub SetBackgroundInsetEndXC(Extends ctrl As MobileMessageBox, backgroundInsetEnd As Integer) 43 | #Pragma Unused ctrl 44 | 45 | #If TargetAndroid 46 | 47 | Declare Function setBackgroundInsetEnd Lib "Kotlin" Alias _ 48 | "(ref as com.google.android.material.dialog.MaterialAlertDialogBuilder).setBackgroundInsetEnd(backgroundinsetend.toInt())" _ 49 | (ref As Ptr, backgroundInsetEnd As Int32) As Ptr 50 | Call setBackgroundInsetEnd(ctrl.Handle, backgroundInsetEnd) 51 | 52 | #Else 53 | 54 | #Pragma Unused backgroundInsetEnd 55 | 56 | #EndIf 57 | End Sub 58 | #tag EndMethod 59 | 60 | #tag Method, Flags = &h0 61 | Sub SetBackgroundInsetStartXC(Extends ctrl As MobileMessageBox, backgroundInsetStart As Integer) 62 | #Pragma Unused ctrl 63 | 64 | #If TargetAndroid 65 | 66 | Declare Function setBackgroundInsetStart Lib "Kotlin" Alias _ 67 | "(ref as com.google.android.material.dialog.MaterialAlertDialogBuilder).setBackgroundInsetStart(backgroundinsetstart.toInt())" _ 68 | (ref As Ptr, backgroundInsetStart As Int32) As Ptr 69 | Call setBackgroundInsetStart(ctrl.Handle, backgroundInsetStart) 70 | 71 | #Else 72 | 73 | #Pragma Unused backgroundInsetStart 74 | 75 | #EndIf 76 | End Sub 77 | #tag EndMethod 78 | 79 | #tag Method, Flags = &h0 80 | Sub SetBackgroundInsetTopXC(Extends ctrl As MobileMessageBox, backgroundInsetTop As Integer) 81 | #Pragma Unused ctrl 82 | 83 | #If TargetAndroid 84 | 85 | Declare Function setBackgroundInsetTop Lib "Kotlin" Alias _ 86 | "(ref as com.google.android.material.dialog.MaterialAlertDialogBuilder).setBackgroundInsetTop(backgroundinsettop.toInt())" _ 87 | (ref As Ptr, backgroundInsetTop As Int32) As Ptr 88 | Call setBackgroundInsetTop(ctrl.Handle, backgroundInsetTop) 89 | 90 | #Else 91 | 92 | #Pragma Unused backgroundInsetTop 93 | 94 | #EndIf 95 | End Sub 96 | #tag EndMethod 97 | 98 | #tag Method, Flags = &h0, Description = 5365747320776865746865722074686973206469616C6F672069732063616E63656C61626C65207769746820746865204241434B206B65792E 99 | Sub SetCancelableXC(Extends ctrl As MobileMessageBox, flag As Boolean) 100 | #Pragma Unused ctrl 101 | 102 | #If TargetAndroid 103 | 104 | Declare Function setCancelable Lib "Kotlin" Alias _ 105 | "(ref as com.google.android.material.dialog.MaterialAlertDialogBuilder).setCancelable(flag)" _ 106 | (ref As Ptr, flag As Boolean) As Ptr 107 | Call setCancelable(ctrl.Handle, flag) 108 | 109 | #Else 110 | 111 | #Pragma Unused flag 112 | 113 | #EndIf 114 | End Sub 115 | #tag EndMethod 116 | 117 | #tag Method, Flags = &h0, Description = 5069637475726520746F20757365206173207468652069636F6E206F72204E696C20696620796F7520646F6E27742077616E7420616E2069636F6E2E 118 | Sub SetIconXC(Extends ctrl As MobileMessageBox, icon As Picture) 119 | #Pragma Unused ctrl 120 | 121 | #If TargetAndroid 122 | 123 | Declare Function setIcon Lib "Kotlin" Alias _ 124 | "(ref as com.google.android.material.dialog.MaterialAlertDialogBuilder).setIcon(myicon as android.graphics.drawable.Drawable)" _ 125 | (ref As Ptr, myIcon As Ptr) As Ptr 126 | Call setIcon(ctrl.Handle, icon.ToDrawable) 127 | 128 | #Else 129 | 130 | #Pragma Unused icon 131 | 132 | #EndIf 133 | End Sub 134 | #tag EndMethod 135 | 136 | #tag Method, Flags = &h0 137 | Sub SetNegativeButtonIconXC(Extends ctrl As MobileMessageBox, icon As Picture) 138 | #Pragma Unused ctrl 139 | 140 | #If TargetAndroid 141 | 142 | Declare Function setNegativeButtonIcon Lib "Kotlin" Alias _ 143 | "(ref as com.google.android.material.dialog.MaterialAlertDialogBuilder).setNegativeButtonIcon(myicon as android.graphics.drawable.Drawable)" _ 144 | (ref As Ptr, myIcon As Ptr) As Ptr 145 | Call setNegativeButtonIcon(ctrl.Handle, icon.ToDrawable) 146 | 147 | #Else 148 | 149 | #Pragma Unused icon 150 | 151 | #EndIf 152 | End Sub 153 | #tag EndMethod 154 | 155 | #tag Method, Flags = &h0 156 | Sub SetPositiveButtonIconXC(Extends ctrl As MobileMessageBox, icon As Picture) 157 | #Pragma Unused ctrl 158 | 159 | #If TargetAndroid 160 | 161 | Declare Function setPositiveButtonIcon Lib "Kotlin" Alias _ 162 | "(ref as com.google.android.material.dialog.MaterialAlertDialogBuilder).setPositiveButtonIcon(myicon as android.graphics.drawable.Drawable)" _ 163 | (ref As Ptr, myIcon As Ptr) As Ptr 164 | Call setPositiveButtonIcon(ctrl.Handle, icon.ToDrawable) 165 | 166 | #Else 167 | 168 | #Pragma Unused icon 169 | 170 | #EndIf 171 | End Sub 172 | #tag EndMethod 173 | 174 | 175 | #tag ViewBehavior 176 | #tag ViewProperty 177 | Name="Name" 178 | Visible=true 179 | Group="ID" 180 | InitialValue="" 181 | Type="String" 182 | EditorType="" 183 | #tag EndViewProperty 184 | #tag ViewProperty 185 | Name="Index" 186 | Visible=true 187 | Group="ID" 188 | InitialValue="-2147483648" 189 | Type="Integer" 190 | EditorType="" 191 | #tag EndViewProperty 192 | #tag ViewProperty 193 | Name="Super" 194 | Visible=true 195 | Group="ID" 196 | InitialValue="" 197 | Type="String" 198 | EditorType="" 199 | #tag EndViewProperty 200 | #tag ViewProperty 201 | Name="Left" 202 | Visible=true 203 | Group="Position" 204 | InitialValue="0" 205 | Type="Integer" 206 | EditorType="" 207 | #tag EndViewProperty 208 | #tag ViewProperty 209 | Name="Top" 210 | Visible=true 211 | Group="Position" 212 | InitialValue="0" 213 | Type="Integer" 214 | EditorType="" 215 | #tag EndViewProperty 216 | #tag EndViewBehavior 217 | End Module 218 | #tag EndModule 219 | -------------------------------------------------------------------------------- /AndroidDesignExtensions/LabelXC.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Module 2 | Protected Module LabelXC 3 | #tag CompatibilityFlags = ( TargetAndroid and ( Target64Bit ) ) 4 | #tag Method, Flags = &h0, Description = 476574207468652074797065206F6620746865206564697461626C6520636F6E74656E742E 5 | Function GetInputTypeXC(Extends ctrl As MobileLabel) As Integer 6 | #Pragma Unused ctrl 7 | 8 | #If TargetAndroid 9 | 10 | Declare Function getInputType Lib kLibMobileLabel As Int32 11 | Return getInputType 12 | 13 | #EndIf 14 | End Function 15 | #tag EndMethod 16 | 17 | #tag Method, Flags = &h0, Description = 52657475726E7320776865746865722074686520736F667420696E707574206D6574686F642077696C6C206265206D6164652076697369626C65207768656E2074686973205465787456696577206765747320666F63757365642E205468652064656661756C7420697320747275652E 18 | Function GetShowSoftInputOnFocusXC(Extends ctrl As MobileLabel) As Boolean 19 | #Pragma Unused ctrl 20 | 21 | #If TargetAndroid 22 | 23 | Declare Function getShowSoftInputOnFocus Lib kLibMobileLabel As Boolean 24 | Return getShowSoftInputOnFocus 25 | 26 | #Else 27 | 28 | Return False 29 | 30 | #EndIf 31 | End Function 32 | #tag EndMethod 33 | 34 | #tag Method, Flags = &h0, Description = 53657473207468652072696768742D68616E6420636F6D706F756E64206472617761626C65206F662074686520546578745669657720746F2074686520226572726F72222069636F6E20616E64207365747320616E206572726F72206D65737361676520746861742077696C6C20626520646973706C6179656420696E206120706F707570207768656E207468652054657874566965772068617320666F6375732E205468652069636F6E20616E64206572726F72206D6573736167652077696C6C20626520726573657420746F206E756C6C207768656E20616E79206B6579206576656E7473206361757365206368616E67657320746F20746865205465787456696577277320746578742E20496620746865206572726F72206973206E756C6C2C20746865206572726F72206D65737361676520616E642069636F6E2077696C6C20626520636C65617265642E 35 | Sub SetErrorXC(Extends ctrl As MobileLabel, error As CString) 36 | #Pragma Unused ctrl 37 | 38 | #If TargetAndroid 39 | 40 | Declare Sub setError Lib kLibMobileLabel (myError As CString) 41 | setError(error) 42 | 43 | #Else 44 | 45 | #Pragma Unused error 46 | 47 | #EndIf 48 | End Sub 49 | #tag EndMethod 50 | 51 | #tag Method, Flags = &h0, Description = 536574207468652074797065206F662074686520636F6E74656E742077697468206120636F6E7374616E7420617320646566696E656420666F7220456469746F72496E666F23696E707574547970652E20546869732077696C6C2074616B652063617265206F66206368616E67696E6720746865206B6579206C697374656E65722C2062792063616C6C696E67207365744B65794C697374656E657228616E64726F69642E746578742E6D6574686F642E4B65794C697374656E6572292C20746F206D617463682074686520676976656E20636F6E74656E7420747970652E2049662074686520676976656E20636F6E74656E74207479706520697320456469746F72496E666F23545950455F4E554C4C207468656E206120736F6674206B6579626F6172642077696C6C206E6F7420626520646973706C6179656420666F722074686973207465787420766965772E204E6F7465207468617420746865206D6178696D756D206E756D626572206F6620646973706C61796564206C696E65732028736565207365744D61784C696E657328696E7429292077696C6C206265206D6F64696669656420696620796F75206368616E67652074686520456469746F72496E666F23545950455F544558545F464C41475F4D554C54495F4C494E4520666C6167206F662074686520696E70757420747970652E 52 | Sub SetInputTypeXC(Extends ctrl As MobileLabel, type As Integer) 53 | #Pragma Unused ctrl 54 | 55 | #If TargetAndroid 56 | 57 | Declare Sub setInputType Lib kLibMobileLabel (myType As Int32) 58 | setInputType(type) 59 | 60 | #Else 61 | 62 | #Pragma Unused type 63 | 64 | #EndIf 65 | End Sub 66 | #tag EndMethod 67 | 68 | #tag Method, Flags = &h0, Description = 4769766573207468652074657874206120736861646F77206F66207468652073706563696669656420626C75722072616469757320616E6420636F6C6F722C20746865207370656369666965642064697374616E63652066726F6D2069747320647261776E20706F736974696F6E2E0A0A546865207465787420736861646F772070726F647563656420646F6573206E6F7420696E7465726163742077697468207468652070726F70657274696573206F6E207669657720746861742061726520726573706F6E7369626C6520666F72207265616C2074696D6520736861646F77732C20656C65766174696F6E20616E64207472616E736C6174696F6E5A2E 69 | Sub SetShadowLayerXC(Extends ctrl As MobileLabel, radius As Single, dX As Single, dY As Single, c As Color) 70 | #Pragma Unused ctrl 71 | 72 | #If TargetAndroid 73 | 74 | Declare Sub setShadowLayer Lib kLibMobileLabel (myRadius As Single, mydX As Single, mydY As Single, myColor As Int32) 75 | setShadowLayer(radius, dX, dY, c.ToInteger) 76 | 77 | #Else 78 | 79 | #Pragma Unused radius 80 | #Pragma Unused dX 81 | #Pragma Unused dY 82 | #Pragma Unused c 83 | 84 | #EndIf 85 | End Sub 86 | #tag EndMethod 87 | 88 | #tag Method, Flags = &h0, Description = 5365747320776865746865722074686520736F667420696E707574206D6574686F642077696C6C206265206D6164652076697369626C65207768656E2074686973205465787456696577206765747320666F63757365642E205468652064656661756C7420697320747275652E 89 | Sub SetShowSoftInputOnFocusXC(Extends ctrl As MobileLabel, show As Boolean) 90 | #Pragma Unused ctrl 91 | 92 | #If TargetAndroid 93 | 94 | Declare Sub setShowSoftInputOnFocus Lib kLibMobileLabel (myShow As Boolean) 95 | setShowSoftInputOnFocus(show) 96 | 97 | #Else 98 | 99 | #Pragma Unused show 100 | 101 | #EndIf 102 | End Sub 103 | #tag EndMethod 104 | 105 | #tag Method, Flags = &h0, Description = 5365747320776865746865722074686520636F6E74656E74206F66207468697320766965772069732073656C65637461626C652062792074686520757365722E205468652064656661756C742069732066616C73652C206D65616E696E6720746861742074686520636F6E74656E74206973206E6F742073656C65637461626C652E 106 | Sub SetTextIsSelectableXC(Extends ctrl As MobileLabel, selectable As Boolean) 107 | #Pragma Unused ctrl 108 | 109 | #If TargetAndroid 110 | 111 | Declare Sub setTextIsSelectable Lib kLibMobileLabel (mySelectable As Boolean) 112 | setTextIsSelectable(selectable) 113 | 114 | #Else 115 | 116 | #Pragma Unused selectable 117 | 118 | #EndIf 119 | End Sub 120 | #tag EndMethod 121 | 122 | 123 | #tag Constant, Name = kLibMobileLabel, Type = String, Dynamic = False, Default = \"Object:ctrl:MobileLabel", Scope = Private 124 | #tag EndConstant 125 | 126 | 127 | #tag ViewBehavior 128 | #tag ViewProperty 129 | Name="Name" 130 | Visible=true 131 | Group="ID" 132 | InitialValue="" 133 | Type="String" 134 | EditorType="" 135 | #tag EndViewProperty 136 | #tag ViewProperty 137 | Name="Index" 138 | Visible=true 139 | Group="ID" 140 | InitialValue="-2147483648" 141 | Type="Integer" 142 | EditorType="" 143 | #tag EndViewProperty 144 | #tag ViewProperty 145 | Name="Super" 146 | Visible=true 147 | Group="ID" 148 | InitialValue="" 149 | Type="String" 150 | EditorType="" 151 | #tag EndViewProperty 152 | #tag ViewProperty 153 | Name="Left" 154 | Visible=true 155 | Group="Position" 156 | InitialValue="0" 157 | Type="Integer" 158 | EditorType="" 159 | #tag EndViewProperty 160 | #tag ViewProperty 161 | Name="Top" 162 | Visible=true 163 | Group="Position" 164 | InitialValue="0" 165 | Type="Integer" 166 | EditorType="" 167 | #tag EndViewProperty 168 | #tag EndViewBehavior 169 | End Module 170 | #tag EndModule 171 | -------------------------------------------------------------------------------- /AndroidDesignExtensions/SliderXC.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Module 2 | Protected Module SliderXC 3 | #tag CompatibilityFlags = ( TargetAndroid and ( Target64Bit ) ) 4 | #tag Method, Flags = &h0, Description = 4170706C69657320612074696E7420746F207468652070726F6772657373206261636B67726F756E642C206966206F6E65206578697374732E20446F6573206E6F74206D6F64696679207468652063757272656E742074696E74206D6F64652C20776869636820697320506F72746572447566662E4D6F6465235352435F41544F502062792064656661756C742E0A0A5468652070726F6772657373206261636B67726F756E64206D757374206265207370656369666965642061732061206C61796572207769746820696420522E69642E6261636B67726F756E6420696E2061204C617965724472617761626C652075736564206173207468652070726F6772657373206472617761626C652E0A0A53756273657175656E742063616C6C7320746F2073657450726F67726573734472617761626C6528616E64726F69642E67726170686963732E6472617761626C652E4472617761626C652920776865726520746865206472617761626C6520636F6E7461696E7320612070726F6772657373206261636B67726F756E642077696C6C206175746F6D61746963616C6C79206D757461746520746865206472617761626C6520616E64206170706C7920746865207370656369666965642074696E7420616E642074696E74206D6F6465207573696E67204472617761626C652373657454696E744C69737428436F6C6F7253746174654C697374292E 5 | Sub SetProgressBackgroundTintListXC(Extends ctrl As MobileSlider, c As Color) 6 | #Pragma Unused ctrl 7 | 8 | #If TargetAndroid 9 | 10 | Declare Sub setProgressBackgroundTintList Lib kLibMobileSliderKotlin Alias _ 11 | "setProgressBackgroundTintList(tint as android.content.res.ColorStateList)" (tint As Ptr) 12 | setProgressBackgroundTintList(c.ToColorStateList) 13 | 14 | #EndIf 15 | End Sub 16 | #tag EndMethod 17 | 18 | #tag Method, Flags = &h0, Description = 4170706C69657320612074696E7420746F207468652070726F677265737320696E64696361746F722C206966206F6E65206578697374732C206F7220746F2074686520656E746972652070726F6772657373206472617761626C65206F74686572776973652E20446F6573206E6F74206D6F64696679207468652063757272656E742074696E74206D6F64652C20776869636820697320506F72746572447566662E4D6F6465235352435F494E2062792064656661756C742E0A0A5468652070726F677265737320696E64696361746F722073686F756C64206265207370656369666965642061732061206C61796572207769746820696420522E69642E70726F677265737320696E2061204C617965724472617761626C652075736564206173207468652070726F6772657373206472617761626C652E0A0A53756273657175656E742063616C6C7320746F2073657450726F67726573734472617761626C6528616E64726F69642E67726170686963732E6472617761626C652E4472617761626C65292077696C6C206175746F6D61746963616C6C79206D757461746520746865206472617761626C6520616E64206170706C7920746865207370656369666965642074696E7420616E642074696E74206D6F6465207573696E67204472617761626C652373657454696E744C69737428436F6C6F7253746174654C697374292E 19 | Sub SetProgressTintListXC(Extends ctrl As MobileSlider, c As Color) 20 | #Pragma Unused ctrl 21 | 22 | #If TargetAndroid 23 | 24 | Declare Sub setProgressTintList Lib kLibMobileSliderKotlin Alias _ 25 | "setProgressTintList(tint as android.content.res.ColorStateList)" (tint As Ptr) 26 | setProgressTintList(c.ToColorStateList) 27 | 28 | #EndIf 29 | End Sub 30 | #tag EndMethod 31 | 32 | #tag Method, Flags = &h0, Description = 5370656369666965732074696E7420636F6C6F7220666F722074686973206472617761626C652E 33 | Sub SetThumbColorXC(Extends ctrl As MobileSlider, c As Color) 34 | #Pragma Unused ctrl 35 | 36 | #If TargetAndroid 37 | 38 | Declare Sub setTint Lib kLibMobileSlider Alias "getThumb()!!.setTint" (myTintColor As Int32) 39 | setTint(c.ToInteger) 40 | 41 | #Else 42 | 43 | #Pragma Unused c 44 | 45 | #EndIf 46 | End Sub 47 | #tag EndMethod 48 | 49 | #tag Method, Flags = &h0, Description = 5365747320746865207468756D6220746861742077696C6C20626520647261776E2061742074686520656E64206F66207468652070726F6772657373206D657465722077697468696E20746865205365656B4261722E0A0A496620746865207468756D6220697320612076616C6964206472617761626C652028692E652E206E6F74206E756C6C292C2068616C66206974732077696474682077696C6C206265207573656420617320746865206E6577207468756D62206F666673657420284073656520237365745468756D624F666673657428696E7429292E 50 | Attributes( Deprecated = "SetThumbXC(thumb As Picture)" ) Sub SetThumbXC(Extends ctrl As MobileSlider, file As FolderItem) 51 | #Pragma Unused ctrl 52 | 53 | #If TargetAndroid 54 | 55 | Declare Sub setThumb Lib kLibMobileSliderKotlin Alias "setThumb(android.graphics.drawable.Drawable.createFromPath(myicon.toString()))" (myIcon As CString) 56 | setThumb(file.NativePath) 57 | 58 | #Else 59 | 60 | #Pragma Unused file 61 | 62 | #EndIf 63 | End Sub 64 | #tag EndMethod 65 | 66 | #tag Method, Flags = &h0, Description = 5365747320746865207468756D6220746861742077696C6C20626520647261776E2061742074686520656E64206F66207468652070726F6772657373206D657465722077697468696E20746865205365656B4261722E0A0A496620746865207468756D6220697320612076616C6964206472617761626C652028692E652E206E6F74206E756C6C292C2068616C66206974732077696474682077696C6C206265207573656420617320746865206E6577207468756D62206F666673657420284073656520237365745468756D624F666673657428696E7429292E 67 | Sub SetThumbXC(Extends ctrl As MobileSlider, thumb As Picture) 68 | #Pragma Unused ctrl 69 | 70 | #If TargetAndroid 71 | 72 | Declare Sub setThumb Lib kLibMobileSliderKotlin Alias "setThumb(thumb as android.graphics.drawable.Drawable)" (thumb As Ptr) 73 | setThumb(thumb.ToDrawable) 74 | 75 | #Else 76 | 77 | #Pragma Unused thumb 78 | 79 | #EndIf 80 | End Sub 81 | #tag EndMethod 82 | 83 | #tag Method, Flags = &h0, Description = 5370656369666965732074696E7420636F6C6F7220666F722074686973206472617761626C652E 84 | Sub SetTintXC(Extends ctrl As MobileSlider, c As Color) 85 | #Pragma Unused ctrl 86 | 87 | #If TargetAndroid 88 | 89 | Declare Sub setTint Lib kLibMobileSlider Alias "getProgressDrawable()!!.setTint" (myTintColor As Int32) 90 | setTint(c.ToInteger) 91 | 92 | #Else 93 | 94 | #Pragma Unused c 95 | 96 | #EndIf 97 | End Sub 98 | #tag EndMethod 99 | 100 | 101 | #tag Constant, Name = kLibMobileSlider, Type = String, Dynamic = False, Default = \"Object:ctrl:MobileSlider", Scope = Private 102 | #tag EndConstant 103 | 104 | #tag Constant, Name = kLibMobileSliderKotlin, Type = String, Dynamic = False, Default = \"Object:ctrl:MobileSlider:Kotlin", Scope = Private 105 | #tag EndConstant 106 | 107 | 108 | #tag ViewBehavior 109 | #tag ViewProperty 110 | Name="Name" 111 | Visible=true 112 | Group="ID" 113 | InitialValue="" 114 | Type="String" 115 | EditorType="" 116 | #tag EndViewProperty 117 | #tag ViewProperty 118 | Name="Index" 119 | Visible=true 120 | Group="ID" 121 | InitialValue="-2147483648" 122 | Type="Integer" 123 | EditorType="" 124 | #tag EndViewProperty 125 | #tag ViewProperty 126 | Name="Super" 127 | Visible=true 128 | Group="ID" 129 | InitialValue="" 130 | Type="String" 131 | EditorType="" 132 | #tag EndViewProperty 133 | #tag ViewProperty 134 | Name="Left" 135 | Visible=true 136 | Group="Position" 137 | InitialValue="0" 138 | Type="Integer" 139 | EditorType="" 140 | #tag EndViewProperty 141 | #tag ViewProperty 142 | Name="Top" 143 | Visible=true 144 | Group="Position" 145 | InitialValue="0" 146 | Type="Integer" 147 | EditorType="" 148 | #tag EndViewProperty 149 | #tag EndViewBehavior 150 | End Module 151 | #tag EndModule 152 | -------------------------------------------------------------------------------- /AndroidDesignExtensions/WindowInsetsCompatTypes.xojo_code: -------------------------------------------------------------------------------- 1 | #tag Class 2 | Protected Class WindowInsetsCompatTypes 3 | #tag CompatibilityFlags = ( TargetAndroid and ( Target64Bit ) ) 4 | #tag ComputedProperty, Flags = &h0, CompatibilityFlags = (TargetAndroid and (Target64Bit)), Description = 416E20696E73657473207479706520726570726573656E74696E67207468652077696E646F77206F6620612063617074696F6E206261722E 5 | #tag Getter 6 | Get 7 | #If TargetAndroid 8 | 9 | Declare Function captionBar Lib kLibCoreView Alias "WindowInsetsCompat.Type.captionBar" As Int32 10 | Return captionBar 11 | 12 | #EndIf 13 | End Get 14 | #tag EndGetter 15 | Shared CaptionBar As Integer 16 | #tag EndComputedProperty 17 | 18 | #tag ComputedProperty, Flags = &h0, CompatibilityFlags = (TargetAndroid and (Target64Bit)), Description = 52657475726E7320616E20696E73657473207479706520726570726573656E74696E672074686520617265612074686174207573656420627920446973706C61794375746F7574436F6D7061742E0A0A54686973206973206571756976616C656E7420746F20746865207361666520696E73657473206F6E20676574446973706C61794375746F75742E 19 | #tag Getter 20 | Get 21 | #If TargetAndroid 22 | 23 | Declare Function displayCutout Lib kLibCoreView Alias "WindowInsetsCompat.Type.displayCutout" As Int32 24 | Return displayCutout 25 | 26 | #EndIf 27 | End Get 28 | #tag EndGetter 29 | Shared DisplayCutout As Integer 30 | #tag EndComputedProperty 31 | 32 | #tag ComputedProperty, Flags = &h0, CompatibilityFlags = (TargetAndroid and (Target64Bit)), Description = 416E20696E73657473207479706520726570726573656E74696E67207468652077696E646F77206F6620616E20496E7075744D6574686F642E 33 | #tag Getter 34 | Get 35 | #If TargetAndroid 36 | 37 | Declare Function ime Lib kLibCoreView Alias "WindowInsetsCompat.Type.ime" As Int32 38 | Return ime 39 | 40 | #EndIf 41 | End Get 42 | #tag EndGetter 43 | Shared Ime As Integer 44 | #tag EndComputedProperty 45 | 46 | #tag ComputedProperty, Flags = &h0, CompatibilityFlags = (TargetAndroid and (Target64Bit)) 47 | #tag Getter 48 | Get 49 | #If TargetAndroid 50 | 51 | Declare Function mandatorySystemGestures Lib kLibCoreView Alias "WindowInsetsCompat.Type.mandatorySystemGestures" As Int32 52 | Return mandatorySystemGestures 53 | 54 | #EndIf 55 | End Get 56 | #tag EndGetter 57 | Shared MandatorySystemGestures As Integer 58 | #tag EndComputedProperty 59 | 60 | #tag ComputedProperty, Flags = &h0, CompatibilityFlags = (TargetAndroid and (Target64Bit)), Description = 416E20696E73657473207479706520726570726573656E74696E6720616E792073797374656D206261727320666F72206E617669676174696F6E2E 61 | #tag Getter 62 | Get 63 | #If TargetAndroid 64 | 65 | Declare Function navigationBars Lib kLibCoreView Alias "WindowInsetsCompat.Type.navigationBars" As Int32 66 | Return navigationBars 67 | 68 | #EndIf 69 | End Get 70 | #tag EndGetter 71 | Shared NavigationBars As Integer 72 | #tag EndComputedProperty 73 | 74 | #tag ComputedProperty, Flags = &h0, CompatibilityFlags = (TargetAndroid and (Target64Bit)), Description = 416E20696E73657473207479706520726570726573656E74696E6720616E792073797374656D206261727320666F7220646973706C6179696E67207374617475732E 75 | #tag Getter 76 | Get 77 | #If TargetAndroid 78 | 79 | Declare Function statusBars Lib kLibCoreView Alias "WindowInsetsCompat.Type.statusBars" As Int32 80 | Return statusBars 81 | 82 | #EndIf 83 | End Get 84 | #tag EndGetter 85 | Shared StatusBars As Integer 86 | #tag EndComputedProperty 87 | 88 | #tag ComputedProperty, Flags = &h0, CompatibilityFlags = (TargetAndroid and (Target64Bit)), Description = 416C6C2073797374656D20626172732E20496E636C7564657320737461747573426172732C2063617074696F6E4261722061732077656C6C206173206E617669676174696F6E426172732C20627574206E6F7420696D652E 89 | #tag Getter 90 | Get 91 | #If TargetAndroid 92 | 93 | Declare Function systemBars Lib kLibCoreView Alias "WindowInsetsCompat.Type.systemBars" As Int32 94 | Return systemBars 95 | 96 | #EndIf 97 | End Get 98 | #tag EndGetter 99 | Shared SystemBars As Integer 100 | #tag EndComputedProperty 101 | 102 | #tag ComputedProperty, Flags = &h0, CompatibilityFlags = (TargetAndroid and (Target64Bit)), Description = 52657475726E7320616E20696E73657473207479706520726570726573656E74696E67207468652073797374656D206765737475726520696E736574732E0A0A5468652073797374656D206765737475726520696E7365747320726570726573656E74207468652061726561206F6620612077696E646F772077686572652073797374656D2067657374757265732068617665207072696F7269747920616E64206D617920636F6E73756D6520736F6D65206F7220616C6C20746F75636820696E7075742C20652E672E2064756520746F2074686520612073797374656D20626172206F6363757079696E672069742C206F72206974206265696E6720726573657276656420666F7220746F7563682D6F6E6C792067657374757265732E0A0A53696D706C652074617073206172652067756172616E7465656420746F207265616368207468652077696E646F77206576656E2077697468696E207468652073797374656D206765737475726520696E736574732C206173206C6F6E67206173207468657920617265206F757473696465207468652073797374656D2077696E646F7720696E736574732E0A0A5768656E2053595354454D5F55495F464C41475F4C41594F55545F535441424C45206973207265717565737465642C20616E20696E7365742077696C6C2062652072657475726E6564206576656E207768656E207468652073797374656D2067657374757265732061726520696E6163746976652064756520746F2053595354454D5F55495F464C41475F4C41594F55545F46554C4C53435245454E206F722053595354454D5F55495F464C41475F4C41594F55545F484944455F4E415649474154494F4E2E 103 | #tag Getter 104 | Get 105 | #If TargetAndroid 106 | 107 | Declare Function systemGestures Lib kLibCoreView Alias "WindowInsetsCompat.Type.systemGestures" As Int32 108 | Return systemGestures 109 | 110 | #EndIf 111 | End Get 112 | #tag EndGetter 113 | Shared SystemGestures As Integer 114 | #tag EndComputedProperty 115 | 116 | #tag ComputedProperty, Flags = &h0, CompatibilityFlags = (TargetAndroid and (Target64Bit)) 117 | #tag Getter 118 | Get 119 | #If TargetAndroid 120 | 121 | Declare Function tappableElement Lib kLibCoreView Alias "WindowInsetsCompat.Type.tappableElement" As Int32 122 | Return tappableElement 123 | 124 | #EndIf 125 | End Get 126 | #tag EndGetter 127 | Shared TappableElement As Integer 128 | #tag EndComputedProperty 129 | 130 | 131 | #tag Constant, Name = kLibCoreView, Type = String, Dynamic = False, Default = \"androidx.core.view", Scope = Private 132 | #tag EndConstant 133 | 134 | 135 | #tag ViewBehavior 136 | #tag ViewProperty 137 | Name="Name" 138 | Visible=true 139 | Group="ID" 140 | InitialValue="" 141 | Type="String" 142 | EditorType="" 143 | #tag EndViewProperty 144 | #tag ViewProperty 145 | Name="Index" 146 | Visible=true 147 | Group="ID" 148 | InitialValue="-2147483648" 149 | Type="Integer" 150 | EditorType="" 151 | #tag EndViewProperty 152 | #tag ViewProperty 153 | Name="Super" 154 | Visible=true 155 | Group="ID" 156 | InitialValue="" 157 | Type="String" 158 | EditorType="" 159 | #tag EndViewProperty 160 | #tag ViewProperty 161 | Name="Left" 162 | Visible=true 163 | Group="Position" 164 | InitialValue="0" 165 | Type="Integer" 166 | EditorType="" 167 | #tag EndViewProperty 168 | #tag ViewProperty 169 | Name="Top" 170 | Visible=true 171 | Group="Position" 172 | InitialValue="0" 173 | Type="Integer" 174 | EditorType="" 175 | #tag EndViewProperty 176 | #tag EndViewBehavior 177 | End Class 178 | #tag EndClass 179 | --------------------------------------------------------------------------------